From cbc5b369069a355c3fa9715c059271d45dbb33e0 Mon Sep 17 00:00:00 2001 From: Jakob Haufe Date: Sun, 11 Mar 2012 23:53:29 +0100 Subject: [PATCH] Imported Upstream version 3.0.0 --- AUTHORS | 71 +- COPYING | 912 +- COPYING-DOCS | 386 +- COPYING-LIBGLABELS | 482 - COPYING-LIBS | 165 + COPYING-TEMPLATES | 25 + COPYING.README_FIRST | 46 +- ChangeLog | 26401 ++++++++++++++-- ChangeLog.pre-2.2 | 3891 --- INSTALL | 243 +- Makefile.am | 17 +- Makefile.in | 73 +- NEWS | 86 +- README | 30 +- TODO | 89 +- aclocal.m4 | 2277 +- barcode-0.98/COPYING | 339 - barcode-0.98/ChangeLog | 460 - barcode-0.98/INSTALL | 31 - barcode-0.98/Makefile.am | 73 - barcode-0.98/Makefile.in.dist | 141 - barcode-0.98/README | 93 - barcode-0.98/README.glabels | 7 - barcode-0.98/TODO | 23 - barcode-0.98/barcode.h | 119 - barcode-0.98/barcode.spec | 84 - barcode-0.98/bookland/bookland.py | 884 - barcode-0.98/cmdline.c | 177 - barcode-0.98/cmdline.h | 58 - barcode-0.98/codabar.c | 182 - barcode-0.98/code128.c | 607 - barcode-0.98/code39.c | 173 - barcode-0.98/code93.c | 213 - barcode-0.98/compat/getopt.c | 831 - barcode-0.98/compat/getopt.h | 129 - barcode-0.98/configure | 5197 --- barcode-0.98/configure.in.dist | 65 - barcode-0.98/contrib/barcode-SVG.tar.gz | Bin 2880 -> 0 bytes .../contrib/barcode-SVG.tar.gz.README | 24 - .../contrib/barcode-for-delphi.tar.gz | Bin 19010 -> 0 bytes .../contrib/barcode-for-delphi.tar.gz.README | 10 - barcode-0.98/contrib/barcodeps-0.1.tgz | Bin 2036 -> 0 bytes barcode-0.98/contrib/barcodeps-0.1.tgz.README | 25 - barcode-0.98/contrib/grab-0.0.4.tar.gz | Bin 28320 -> 0 bytes barcode-0.98/contrib/grab-0.0.4.tar.gz.README | 13 - barcode-0.98/debian/README.debian | 9 - barcode-0.98/debian/changelog | 27 - barcode-0.98/debian/control | 14 - barcode-0.98/debian/copyright | 8 - barcode-0.98/debian/dirs | 3 - barcode-0.98/debian/info | 15 - barcode-0.98/debian/rules | 50 - barcode-0.98/doc/Makefile.in | 135 - barcode-0.98/doc/README | 5 - barcode-0.98/doc/barcode.info | 747 - barcode-0.98/doc/barcode.pdf | Bin 192464 -> 0 bytes barcode-0.98/doc/barcode.ps | 2378 -- barcode-0.98/doc/barcodedoc.txt | 734 - barcode-0.98/doc/doc.barcode | 939 - barcode-0.98/doc/infofilter | 16 - barcode-0.98/doc/manpager | 120 - barcode-0.98/doc/mktxt | 38 - barcode-0.98/doc/texi2html | 2021 -- barcode-0.98/ean.c | 774 - barcode-0.98/i25.c | 164 - barcode-0.98/install-sh | 238 - barcode-0.98/library.c | 244 - barcode-0.98/main.c | 604 - barcode-0.98/missing | 198 - barcode-0.98/mkinstalldirs | 40 - barcode-0.98/msi.c | 155 - barcode-0.98/pcl.c | 200 - barcode-0.98/plessey.c | 164 - barcode-0.98/ps.c | 272 - barcode-0.98/sample.c | 98 - config.h.in | 17 +- configure | 11998 +++---- configure.ac | 378 + configure.in | 234 - data/Makefile.am | 9 +- data/Makefile.in | 66 +- data/desktop/Makefile.am | 3 +- data/desktop/Makefile.in | 58 +- ...bels.desktop.in => glabels-3.0.desktop.in} | 8 +- data/dtd/Makefile.am | 9 - data/glade/Makefile.am | 18 - data/glade/merge-properties-dialog.glade | 375 - data/glade/new-label-dialog.glade | 85 - data/glade/object-editor.glade | 3471 -- data/glade/prefs-dialog.glade | 1309 - data/glade/print-custom-widget.glade | 287 - data/glade/property-bar.glade | 375 - data/glade/template-designer.glade | 3445 -- data/glade/wdgt-media-select.glade | 204 - data/glade/wdgt-rotate-label.glade | 39 - data/icons/16x16/Makefile.am | 40 + data/icons/16x16/Makefile.in | 539 + .../16x16/actions/glabels-align-bottom.png | Bin .../16x16/actions/glabels-align-hcenter.png | Bin .../16x16/actions/glabels-align-left.png | Bin .../16x16/actions/glabels-align-right.png | Bin .../icons/16x16/actions/glabels-align-top.png | Bin .../16x16/actions/glabels-align-vcenter.png | Bin .../icons/16x16/actions/glabels-arrow.png | Bin .../icons/16x16/actions/glabels-barcode.png | Bin .../icons/16x16/actions/glabels-box.png | Bin .../16x16/actions/glabels-bucket-fill.png | Bin .../16x16/actions/glabels-center-horiz.png | Bin .../16x16/actions/glabels-center-vert.png | Bin .../icons/16x16/actions/glabels-ellipse.png | Bin .../16x16/actions/glabels-flip-horiz.png | Bin .../icons/16x16/actions/glabels-flip-vert.png | Bin .../icons/16x16/actions/glabels-image.png | Bin .../icons/16x16/actions/glabels-line.png | Bin .../icons/16x16/actions/glabels-merge.png | Bin .../actions/glabels-object-properties.png | Bin .../16x16/actions/glabels-order-bottom.png | Bin .../icons/16x16/actions/glabels-order-top.png | Bin .../icons/16x16/actions/glabels-pencil.png | Bin .../16x16/actions/glabels-rotate-left.png | Bin .../16x16/actions/glabels-rotate-right.png | Bin .../icons/16x16/actions/glabels-text.png | Bin data/icons/16x16/apps/glabels-3.0.png | Bin 0 -> 483 bytes data/icons/22x22/Makefile.am | 11 + data/{dtd => icons/22x22}/Makefile.in | 106 +- data/icons/22x22/apps/glabels-3.0.png | Bin 0 -> 762 bytes data/icons/24x24/Makefile.am | 30 + data/icons/24x24/Makefile.in | 529 + .../icons/24x24/actions/glabels-arrow.png | Bin .../icons/24x24/actions/glabels-barcode.png | Bin .../icons/24x24/actions/glabels-box.png | Bin .../24x24/actions/glabels-bucket-fill.png | Bin .../icons/24x24/actions/glabels-ellipse.png | Bin .../24x24/actions/glabels-hchain-broken.png | Bin .../icons/24x24/actions/glabels-hchain.png | Bin .../icons/24x24/actions/glabels-image.png | Bin .../icons/24x24/actions/glabels-line.png | Bin .../icons/24x24/actions/glabels-merge.png | Bin .../actions/glabels-object-properties.png | Bin .../icons/24x24/actions/glabels-pencil.png | Bin .../icons/24x24/actions/glabels-text.png | Bin .../24x24/actions/glabels-vchain-broken.png | Bin .../icons/24x24/actions/glabels-vchain.png | Bin data/icons/24x24/apps/glabels-3.0.png | Bin 0 -> 762 bytes data/icons/32x32/Makefile.am | 11 + data/{glade => icons/32x32}/Makefile.in | 118 +- data/icons/32x32/apps/glabels-3.0.png | Bin 0 -> 1192 bytes data/icons/48x48/Makefile.am | 16 + data/icons/48x48/Makefile.in | 515 + data/icons/48x48/apps/glabels-3.0.png | Bin 0 -> 1748 bytes .../48x48/mimetypes/application-x-glabels.png | Bin 0 -> 2242 bytes data/icons/Makefile.am | 15 + {src/mygal => data/icons}/Makefile.in | 438 +- data/man/Makefile.am | 3 +- data/man/Makefile.in | 58 +- data/man/glabels-3-batch.1 | 1 + data/man/{glabels.1 => glabels-3.1} | 14 +- data/mime/Makefile.am | 49 +- data/mime/Makefile.in | 167 +- .../{glabels.xml.in => glabels-3.0.xml.in} | 0 data/mime/glabels.applications | 9 - data/mime/glabels.keys | 24 - data/mime/glabels.keys.in | 9 - data/mime/glabels.mime | 2 - data/mime/glabels.xml | 22 - data/pixmaps/Makefile.am | 24 +- data/pixmaps/Makefile.in | 140 +- data/pixmaps/ex-ellipse-size.png | Bin 0 -> 16779 bytes data/pixmaps/glabels-about-logo.png | Bin 7734 -> 0 bytes .../pixmaps/glabels-application-x-glabels.png | Bin 2573 -> 0 bytes data/pixmaps/glabels-logo.png | Bin 0 -> 27117 bytes data/pixmaps/glabels-splash.png | Bin 110600 -> 0 bytes data/pixmaps/glabels.png | Bin 2074 -> 0 bytes data/pixmaps/new-confirm.png | Bin 0 -> 4152 bytes data/pixmaps/new-rotate.png | Bin 0 -> 2790 bytes data/pixmaps/new-select.png | Bin 0 -> 9231 bytes data/pixmaps/template-designer.png | Bin 0 -> 6058 bytes data/schemas/Makefile.am | 23 + data/schemas/Makefile.in | 458 + .../org.gnome.glabels-3.gschema.xml.in | 180 + .../org.gnome.glabels-3.gschema.xml.in.in | 180 + data/templates/Makefile.am | 20 - data/templates/misc-other-templates.xml | 19 - data/ui/Makefile.am | 15 + data/{templates => ui}/Makefile.in | 130 +- data/ui/media-select.ui | 362 + data/ui/merge-properties-dialog.ui | 212 + data/ui/new-label-dialog.ui | 486 + data/ui/object-editor.ui | 2376 ++ data/ui/prefs-dialog.ui | 809 + data/ui/print-op-dialog-custom-widget.ui | 478 + data/ui/property-bar.ui | 237 + data/ui/template-designer.ui | 2448 ++ docs/Makefile.am | 4 +- docs/Makefile.in | 61 +- docs/libglabels/Makefile.am | 4 +- docs/libglabels/Makefile.in | 225 +- docs/libglabels/html/ch01.html | 38 +- docs/libglabels/html/ch02.html | 40 +- docs/libglabels/html/ch03.html | 33 +- docs/libglabels/html/index.html | 45 +- docs/libglabels/html/index.sgml | 387 +- .../html/libglabels-3.0-category.html | 153 + docs/libglabels/html/libglabels-3.0-db.html | 1024 + .../libglabels/html/libglabels-3.0-paper.html | 186 + docs/libglabels/html/libglabels-3.0-str.html | 169 + .../html/libglabels-3.0-template.html | 1891 ++ .../libglabels/html/libglabels-3.0-units.html | 265 + .../html/libglabels-3.0-vendor.html | 145 + .../html/libglabels-3.0-xml-category.html | 132 + .../html/libglabels-3.0-xml-paper.html | 125 + .../html/libglabels-3.0-xml-template.html | 215 + .../html/libglabels-3.0-xml-vendor.html | 126 + docs/libglabels/html/libglabels-3.0-xml.html | 571 + docs/libglabels/html/libglabels-3.0.devhelp | 178 + docs/libglabels/html/libglabels-3.0.devhelp2 | 203 + docs/libglabels/html/libglabels-category.html | 181 - docs/libglabels/html/libglabels-db.html | 1073 - docs/libglabels/html/libglabels-enums.html | 122 - docs/libglabels/html/libglabels-paper.html | 238 - docs/libglabels/html/libglabels-str.html | 112 - docs/libglabels/html/libglabels-template.html | 2229 -- .../html/libglabels-xml-category.html | 160 - .../libglabels/html/libglabels-xml-paper.html | 153 - .../html/libglabels-xml-template.html | 286 - docs/libglabels/html/libglabels-xml.html | 801 - docs/libglabels/html/libglabels.devhelp | 146 - docs/libglabels/html/libglabels.devhelp2 | 164 - docs/libglabels/html/style.css | 207 +- ...els-docs.sgml => libglabels-3.0-docs.sgml} | 6 +- ...rides.txt => libglabels-3.0-overrides.txt} | 0 ...ctions.txt => libglabels-3.0-sections.txt} | 83 +- docs/libglabels/tmpl/category.sgml | 55 - docs/libglabels/tmpl/db.sgml | 314 - docs/libglabels/tmpl/enums.sgml | 33 - docs/libglabels/tmpl/libglabels-unused.sgml | 1519 - docs/libglabels/tmpl/libglabels.sgml | 19 - docs/libglabels/tmpl/paper.sgml | 61 - docs/libglabels/tmpl/str.sgml | 30 - docs/libglabels/tmpl/template.sgml | 532 - docs/libglabels/tmpl/xml-category.sgml | 47 - docs/libglabels/tmpl/xml-paper.sgml | 47 - docs/libglabels/tmpl/xml-template.sgml | 78 - docs/libglabels/tmpl/xml.sgml | 194 - docs/libglabels/xml/api-index-deprecated.xml | 6 - docs/libglabels/xml/api-index-full.xml | 130 - docs/libglabels/xml/category.xml | 121 - docs/libglabels/xml/db.xml | 587 - docs/libglabels/xml/enums.xml | 104 - docs/libglabels/xml/paper.xml | 154 - docs/libglabels/xml/str.xml | 76 - docs/libglabels/xml/template.xml | 1391 - docs/libglabels/xml/xml-category.xml | 103 - docs/libglabels/xml/xml-paper.xml | 96 - docs/libglabels/xml/xml-template.xml | 171 - docs/libglabels/xml/xml.xml | 430 - docs/libglbarcode/Makefile.am | 73 + docs/libglbarcode/Makefile.in | 754 + docs/libglbarcode/html/api.html | 44 + docs/libglbarcode/html/home.png | Bin 0 -> 654 bytes docs/libglbarcode/html/index.html | 46 + docs/libglbarcode/html/index.sgml | 47 + docs/libglbarcode/html/left.png | Bin 0 -> 459 bytes .../libglbarcode-3.0-lgl-barcode-create.html | 122 + ...rcode-3.0-lgl-barcode-render-to-cairo.html | 117 + .../libglbarcode-3.0-lgl-barcode-type.html | 128 + .../html/libglbarcode-3.0-lgl-barcode.html | 923 + .../html/libglbarcode-3.0.devhelp | 39 + .../html/libglbarcode-3.0.devhelp2 | 47 + .../libglbarcode/html/libglbarcode-intro.html | 166 + docs/libglbarcode/html/overview.html | 35 + docs/libglbarcode/html/right.png | Bin 0 -> 472 bytes docs/libglbarcode/html/style.css | 266 + docs/libglbarcode/html/up.png | Bin 0 -> 406 bytes docs/libglbarcode/intro.sgml | 161 + docs/libglbarcode/libglbarcode-3.0-docs.sgml | 31 + .../libglbarcode-3.0-overrides.txt} | 0 .../libglbarcode-3.0-sections.txt | 46 + glabels.spec | 18 +- gnome-doc-utils.make | 28 +- gtk-doc.make | 172 +- help/C/about.page | 43 + help/C/basicusage.page | 90 + help/C/createnew.page | 93 + help/C/customize.page | 129 + help/C/customtemplate.page | 38 + help/C/editprop.page | 238 + help/C/figures/glabels-logo.png | Bin 0 -> 7374 bytes help/C/figures/glabels-template-cd-label.png | Bin 0 -> 18341 bytes help/C/figures/glabels-template-cd.png | Bin 9930 -> 0 bytes .../figures/glabels-template-circle-label.png | Bin 0 -> 12480 bytes .../glabels-template-ellipse-label.png | Bin 0 -> 12842 bytes help/C/figures/glabels-template-label.png | Bin 3115 -> 0 bytes help/C/figures/glabels-template-layout.png | Bin 6012 -> 9638 bytes .../C/figures/glabels-template-rect-label.png | Bin 0 -> 7924 bytes .../introduction-glabels-main-window.png | Bin 0 -> 61674 bytes help/C/figures/main-window-empty.png | Bin 34238 -> 0 bytes help/C/figures/merge-ex1-1.png | Bin 40556 -> 38274 bytes help/C/figures/merge-ex1-2.png | Bin 71610 -> 58969 bytes help/C/figures/merge-ex1-3.png | Bin 35924 -> 43961 bytes help/C/figures/merge-ex1-4.png | Bin 75437 -> 56557 bytes help/C/figures/merge-ex2-1.png | Bin 41226 -> 38405 bytes help/C/figures/merge-ex2-2.png | Bin 65252 -> 55981 bytes help/C/figures/merge-ex2-3.png | Bin 35176 -> 39367 bytes help/C/figures/merge-ex2-4.png | Bin 59967 -> 44112 bytes help/C/figures/merge-ex3-1.png | Bin 50907 -> 0 bytes help/C/figures/merge-ex3-2.png | Bin 65591 -> 0 bytes help/C/figures/object-editor-sidebar.png | Bin 11840 -> 12059 bytes help/C/figures/print-copies.png | Bin 10945 -> 50499 bytes help/C/figures/print-merge.png | Bin 11307 -> 36678 bytes help/C/figures/skip-fields-output.png | Bin 0 -> 29416 bytes help/C/figures/skip-fields-screenshot.png | Bin 0 -> 65017 bytes help/C/glabels.xml | 2251 -- help/C/index.page | 64 + help/C/labelprop.page | 34 + help/C/legal.xml | 76 - help/C/license.page | 59 + help/C/mancreate.page | 774 + help/C/merge-ex1.page | 105 + help/C/merge-ex2.page | 108 + help/C/merge-ex3.page | 109 + help/C/merge-ex4.page | 28 + help/C/merge.page | 37 + help/C/mergefeatures.page | 65 + help/C/multifile.page | 39 + help/C/newlabel.page | 35 + help/C/printfile.page | 118 + help/C/select.page | 129 + help/C/skipfields.page | 57 + help/Makefile.am | 68 +- help/Makefile.in | 151 +- help/cs/about.page | 27 + help/cs/basicusage.page | 62 + help/cs/createnew.page | 57 + help/cs/cs.po | 4714 +-- help/cs/customize.page | 114 + help/cs/customtemplate.page | 27 + help/cs/editprop.page | 167 + help/cs/figures/main-window-empty.png | Bin 38354 -> 0 bytes help/cs/figures/merge-ex1-1.png | Bin 44629 -> 43968 bytes help/cs/figures/merge-ex2-1.png | Bin 48106 -> 49173 bytes help/cs/figures/object-editor-sidebar.png | Bin 33774 -> 16093 bytes help/cs/figures/print-copies.png | Bin 4100 -> 16727 bytes help/cs/figures/print-merge.png | Bin 4338 -> 12080 bytes help/cs/figures/skip-fields-output.png | Bin 0 -> 35459 bytes help/cs/figures/skip-fields-screenshot.png | Bin 0 -> 63361 bytes help/cs/glabels.xml | 1776 -- help/cs/index.page | 47 + help/cs/labelprop.page | 25 + help/cs/license.page | 35 + help/cs/mancreate.page | 693 + help/cs/merge-ex1.page | 72 + help/cs/merge-ex2.page | 75 + help/cs/merge-ex3.page | 72 + help/cs/merge-ex4.page | 24 + help/cs/merge.page | 28 + help/cs/mergefeatures.page | 35 + help/cs/multifile.page | 29 + help/cs/newlabel.page | 25 + help/cs/printfile.page | 86 + help/cs/select.page | 83 + help/cs/skipfields.page | 44 + help/de/about.page | 27 + help/de/basicusage.page | 62 + help/de/createnew.page | 57 + help/de/customize.page | 114 + help/de/customtemplate.page | 27 + help/de/de.po | 4855 +-- help/de/editprop.page | 167 + help/de/figures/merge-ex3-1.png | Bin 53771 -> 0 bytes help/de/figures/merge-ex3-2.png | Bin 67256 -> 0 bytes help/de/glabels.xml | 1776 -- help/de/index.page | 47 + help/de/labelprop.page | 25 + help/de/license.page | 35 + help/de/mancreate.page | 693 + help/de/merge-ex1.page | 72 + help/de/merge-ex2.page | 75 + help/de/merge-ex3.page | 72 + help/de/merge-ex4.page | 24 + help/de/merge.page | 28 + help/de/mergefeatures.page | 35 + help/de/multifile.page | 29 + help/de/newlabel.page | 25 + help/de/printfile.page | 86 + help/de/select.page | 83 + help/de/skipfields.page | 44 + help/es/about.page | 27 + help/es/basicusage.page | 62 + help/es/createnew.page | 57 + help/es/customize.page | 114 + help/es/customtemplate.page | 27 + help/es/editprop.page | 167 + help/es/es.po | 4155 ++- help/es/glabels.xml | 2227 -- help/es/index.page | 47 + help/es/labelprop.page | 25 + help/es/license.page | 35 + help/es/mancreate.page | 693 + help/es/merge-ex1.page | 72 + help/es/merge-ex2.page | 75 + help/es/merge-ex3.page | 72 + help/es/merge-ex4.page | 24 + help/es/merge.page | 28 + help/es/mergefeatures.page | 35 + help/es/multifile.page | 29 + help/es/newlabel.page | 25 + help/es/printfile.page | 86 + help/es/select.page | 83 + help/es/skipfields.page | 44 + help/fr/about.page | 27 + help/fr/basicusage.page | 62 + help/fr/createnew.page | 57 + help/fr/customize.page | 114 + help/fr/customtemplate.page | 27 + help/fr/editprop.page | 167 + help/fr/figures/main-window-empty.png | Bin 32829 -> 0 bytes help/fr/figures/merge-ex1-1.png | Bin 33042 -> 0 bytes help/fr/figures/merge-ex1-2.png | Bin 59141 -> 0 bytes help/fr/figures/merge-ex1-3.png | Bin 28381 -> 0 bytes help/fr/figures/merge-ex1-4.png | Bin 40671 -> 0 bytes help/fr/figures/merge-ex2-1.png | Bin 34309 -> 0 bytes help/fr/figures/merge-ex2-2.png | Bin 56997 -> 0 bytes help/fr/figures/merge-ex2-3.png | Bin 27699 -> 0 bytes help/fr/figures/merge-ex2-4.png | Bin 37839 -> 0 bytes help/fr/figures/object-editor-sidebar.png | Bin 10745 -> 0 bytes help/fr/figures/print-copies.png | Bin 7863 -> 0 bytes help/fr/figures/print-merge.png | Bin 10299 -> 0 bytes help/fr/fr.po | 5014 +-- help/fr/glabels.xml | 1776 -- help/fr/index.page | 47 + help/fr/labelprop.page | 25 + help/fr/license.page | 35 + help/fr/mancreate.page | 694 + help/fr/merge-ex1.page | 72 + help/fr/merge-ex2.page | 75 + help/fr/merge-ex3.page | 72 + help/fr/merge-ex4.page | 24 + help/fr/merge.page | 28 + help/fr/mergefeatures.page | 35 + help/fr/multifile.page | 29 + help/fr/newlabel.page | 25 + help/fr/printfile.page | 86 + help/fr/select.page | 83 + help/fr/skipfields.page | 44 + help/glabels.omf.in | 12 - help/nl/about.page | 41 + help/nl/basicusage.page | 88 + help/nl/createnew.page | 91 + help/nl/customize.page | 127 + help/nl/customtemplate.page | 36 + help/nl/editprop.page | 236 + help/nl/index.page | 62 + help/nl/labelprop.page | 32 + help/nl/license.page | 55 + help/nl/mancreate.page | 770 + help/nl/merge-ex1.page | 103 + help/nl/merge-ex2.page | 106 + help/nl/merge-ex3.page | 107 + help/nl/merge-ex4.page | 26 + help/nl/merge.page | 35 + help/nl/mergefeatures.page | 63 + help/nl/multifile.page | 35 + help/nl/newlabel.page | 33 + help/nl/nl.po | 2476 ++ help/nl/printfile.page | 116 + help/nl/select.page | 127 + help/nl/skipfields.page | 55 + help/sl/about.page | 41 + help/sl/basicusage.page | 88 + help/sl/createnew.page | 91 + help/sl/customize.page | 127 + help/sl/customtemplate.page | 36 + help/sl/editprop.page | 236 + help/sl/index.page | 62 + help/sl/labelprop.page | 32 + help/sl/license.page | 55 + help/sl/mancreate.page | 771 + help/sl/merge-ex1.page | 103 + help/sl/merge-ex2.page | 106 + help/sl/merge-ex3.page | 107 + help/sl/merge-ex4.page | 26 + help/sl/merge.page | 35 + help/sl/mergefeatures.page | 63 + help/sl/multifile.page | 37 + help/sl/newlabel.page | 33 + help/sl/printfile.page | 116 + help/sl/select.page | 127 + help/sl/skipfields.page | 55 + help/sl/sl.po | 1610 + iec16022-0.2.1/BUGS | 6 - iec16022-0.2.1/CHANGELOG | 26 - iec16022-0.2.1/CREDITS | 10 - iec16022-0.2.1/INSTALL | 8 - iec16022-0.2.1/LICENSE | 340 - iec16022-0.2.1/Makefile.am | 35 - iec16022-0.2.1/Makefile.dist | 40 - iec16022-0.2.1/Makefile.in | 551 - iec16022-0.2.1/README | 13 - iec16022-0.2.1/README.glabels | 6 - iec16022-0.2.1/TODO | 9 - iec16022-0.2.1/iec16022.1 | 52 - iec16022-0.2.1/iec16022.c | 462 - iec16022-0.2.1/iec16022ecc200.c | 963 - iec16022-0.2.1/iec16022ecc200.h | 47 - iec16022-0.2.1/image.c | 668 - iec16022-0.2.1/image.h | 49 - iec16022-0.2.1/reedsol.c | 172 - iec16022-0.2.1/reedsol.h | 29 - iec16022-0.2.1/test/testsuite-example.bin | 1 - iec16022-0.2.1/test/testsuite-example.eps | 15 - iec16022-0.2.1/test/testsuite-example.hex | 2 - iec16022-0.2.1/test/testsuite-example.png | Bin 412 -> 0 bytes iec16022-0.2.1/test/testsuite-example.text | 32 - iec16022-0.2.1/test/testsuite.sh | 19 - libglabels/Makefile.am | 94 +- libglabels/Makefile.in | 313 +- libglabels/category.h | 59 - libglabels/db.c | 1615 - libglabels/enums.h | 49 - libglabels/{category.c => lgl-category.c} | 87 +- libglabels/lgl-category.h | 62 + libglabels/lgl-db.c | 2123 ++ libglabels/{db.h => lgl-db.h} | 111 +- libglabels/lgl-paper.c | 147 + libglabels/lgl-paper.h | 70 + libglabels/lgl-str.c | 284 + libglabels/lgl-str.h | 50 + libglabels/lgl-template.c | 1438 + libglabels/{template.h => lgl-template.h} | 264 +- libglabels/lgl-units.c | 261 + libglabels/lgl-units.h | 70 + libglabels/lgl-vendor.c | 128 + libglabels/lgl-vendor.h | 63 + libglabels/lgl-xml-category.c | 185 + libglabels/lgl-xml-category.h | 51 + libglabels/lgl-xml-paper.c | 192 + libglabels/lgl-xml-paper.h | 51 + libglabels/lgl-xml-template.c | 1207 + libglabels/lgl-xml-template.h | 61 + libglabels/lgl-xml-vendor.c | 183 + libglabels/lgl-xml-vendor.h | 51 + libglabels/lgl-xml.c | 524 + libglabels/lgl-xml.h | 119 + ...{libglabels.pc.in => libglabels-3.0.pc.in} | 6 +- libglabels/libglabels-private.h | 53 +- libglabels/libglabels.h | 60 +- libglabels/paper.c | 144 - libglabels/paper.h | 65 - libglabels/str.c | 84 - libglabels/str.h | 41 - libglabels/template.c | 1121 - libglabels/xml-category.c | 169 - libglabels/xml-category.h | 46 - libglabels/xml-paper.c | 176 - libglabels/xml-paper.h | 46 - libglabels/xml-template.c | 984 - libglabels/xml-template.h | 55 - libglabels/xml.c | 539 - libglabels/xml.h | 113 - libglbarcode/Makefile.am | 51 + {barcode-0.98 => libglbarcode}/Makefile.in | 413 +- libglbarcode/lgl-barcode-code39.c | 456 + libglbarcode/lgl-barcode-code39.h | 49 + libglbarcode/lgl-barcode-create.c | 119 + libglbarcode/lgl-barcode-create.h | 52 + libglbarcode/lgl-barcode-onecode.c | 747 + libglbarcode/lgl-barcode-onecode.h | 49 + libglbarcode/lgl-barcode-postnet.c | 277 + libglbarcode/lgl-barcode-postnet.h | 49 + libglbarcode/lgl-barcode-render-to-cairo.c | 346 + libglbarcode/lgl-barcode-render-to-cairo.h | 48 + libglbarcode/lgl-barcode-type.h | 61 + libglbarcode/lgl-barcode.c | 362 + libglbarcode/lgl-barcode.h | 415 + libglbarcode/libglbarcode-3.0.pc.in | 13 + libglbarcode/libglbarcode.h | 47 + ltmain.sh | 3968 ++- po/LINGUAS | 2 + po/POTFILES.in | 376 +- po/POTFILES.skip | 3 + po/ca.po | 3797 ++- po/ca@valencia.po | 3180 ++ po/cs.po | 4236 ++- po/da.po | 4290 ++- po/de.po | 4245 ++- po/eo.po | 4201 ++- po/es.po | 4605 ++- po/fr.po | 5100 ++- po/it.po | 4043 ++- po/ja.po | 4509 ++- po/ko.po | 4999 +-- po/nb.po | 1312 +- po/nl.po | 3563 +++ po/pl.po | 2370 +- po/pt.po | 3852 ++- po/pt_BR.po | 4768 +-- po/ru.po | 3926 ++- po/sl.po | 4161 +-- po/sv.po | 3734 ++- po/zh_CN.po | 3814 ++- po/zh_TW.po | 3867 ++- src/Makefile.am | 219 +- src/Makefile.in | 486 +- src/base64.c | 204 - src/base64.h | 45 - src/bc-backends.c | 864 + src/bc-backends.h | 90 + src/bc-builtin.c | 105 + src/bc-builtin.h | 49 + src/bc-gnubarcode.c | 863 +- src/bc-gnubarcode.h | 44 +- src/bc-iec16022.c | 102 +- src/bc-iec16022.h | 44 +- src/bc-iec18004.c | 166 + src/bc-iec18004.h | 48 + src/bc-postnet.c | 222 - src/bc-postnet.h | 40 - src/bc-zint.c | 231 + src/bc-zint.h | 49 + src/bc.c | 386 - src/bc.h | 90 - src/builder-util.c | 65 + src/builder-util.h | 46 + src/cairo-ellipse-path.c | 33 +- src/cairo-ellipse-path.h | 29 +- src/cairo-label-path.c | 102 +- src/cairo-label-path.h | 33 +- src/cairo-markup-path.c | 128 +- src/cairo-markup-path.h | 31 +- src/color-combo-button.c | 469 + src/color-combo-button.h | 95 + src/color-combo-color-menu-item.c | 170 + src/color-combo-color-menu-item.h | 82 + src/color-combo-menu.c | 456 + src/color-combo-menu.h | 84 + src/color-combo.c | 392 + src/color-combo.h | 94 + src/color-history-model.c | 278 + src/color-history-model.h | 89 + src/color-swatch.c | 253 + src/color-swatch.h | 78 + src/color.c | 63 +- src/color.h | 38 +- src/combo-util.c | 125 + src/combo-util.h | 48 + src/critical-error-handler.c | 39 +- src/critical-error-handler.h | 33 +- src/cursors/Makefile.am | 26 + src/{stock-pixmaps => cursors}/Makefile.in | 170 +- src/cursors/cursor_barcode.png | Bin 0 -> 198 bytes src/cursors/cursor_box.png | Bin 0 -> 200 bytes src/cursors/cursor_ellipse.png | Bin 0 -> 243 bytes src/cursors/cursor_image.png | Bin 0 -> 247 bytes src/cursors/cursor_line.png | Bin 0 -> 198 bytes src/cursors/cursor_pixdata.h | 203 + src/cursors/cursor_text.png | Bin 0 -> 210 bytes src/debug.c | 42 +- src/debug.h | 43 +- src/field-button-menu.c | 234 + src/field-button-menu.h | 82 + src/field-button.c | 391 + src/field-button.h | 91 + src/file-util.c | 120 + src/file-util.h | 49 + src/file.c | 192 +- src/file.h | 31 +- src/font-combo-menu-item.c | 188 + src/font-combo-menu-item.h | 75 + src/font-combo-menu.c | 308 + src/font-combo-menu.h | 83 + src/font-combo.c | 360 + src/font-combo.h | 87 + src/font-history-model.c | 244 + src/font-history-model.h | 89 + src/font-history.c | 67 + src/font-history.h | 50 + src/font-sample.c | 288 + src/font-sample.h | 76 + src/font-util.c | 215 + src/font-util.h | 48 + src/glabels-batch.c | 101 +- src/glabels.c | 147 +- src/hig.h | 35 - src/label-barcode.c | 863 +- src/label-barcode.h | 87 +- src/label-box.c | 225 +- src/label-box.h | 33 +- src/label-ellipse.c | 238 +- src/label-ellipse.h | 33 +- src/label-image.c | 832 +- src/label-image.h | 59 +- src/label-line.c | 162 +- src/label-line.h | 33 +- src/label-object.c | 1069 +- src/label-object.h | 336 +- src/label-text.c | 943 +- src/label-text.h | 72 +- src/label.c | 3273 +- src/label.h | 330 +- src/marshal.c | 41 + src/marshal.h | 11 + src/marshal.list | 2 + src/media-select.c | 1206 + src/media-select.h | 87 + src/merge-evolution.c | 114 +- src/merge-evolution.h | 32 +- src/merge-init.c | 84 +- src/merge-init.h | 30 +- src/merge-properties-dialog.c | 176 +- src/merge-properties-dialog.h | 48 +- src/merge-text.c | 564 +- src/merge-text.h | 31 +- src/merge-vcard.c | 161 +- src/merge-vcard.h | 32 +- src/merge.c | 88 +- src/merge.h | 76 +- src/message-bar.c | 248 + src/message-bar.h | 87 + src/mini-label-preview.c | 306 + src/mini-label-preview.h | 79 + src/mini-preview-pixbuf-cache.c | 70 +- src/mini-preview-pixbuf-cache.h | 38 +- src/mini-preview-pixbuf.c | 31 +- src/mini-preview-pixbuf.h | 31 +- src/mini-preview.c | 1190 + src/mini-preview.h | 132 + src/mygal/Makefile.am | 44 - src/mygal/color-group.c | 333 - src/mygal/color-group.h | 77 - src/mygal/color-palette.c | 661 - src/mygal/color-palette.h | 113 - src/mygal/e-colors.c | 106 - src/mygal/e-colors.h | 47 - src/mygal/e-marshal.list | 51 - src/mygal/e-util.h | 234 - src/mygal/mygal-combo-box.c | 837 - src/mygal/mygal-combo-box.h | 94 - src/mygal/widget-color-combo.c | 338 - src/mygal/widget-color-combo.h | 86 - src/new-label-dialog.c | 570 +- src/new-label-dialog.h | 54 +- src/object-editor-bc-page.c | 459 +- src/object-editor-data-page.c | 128 +- src/object-editor-edit-page.c | 89 +- src/object-editor-fill-page.c | 170 +- src/object-editor-image-page.c | 179 +- src/object-editor-line-page.c | 166 +- src/object-editor-lsize-page.c | 163 +- src/object-editor-position-page.c | 148 +- src/object-editor-private.h | 264 +- src/object-editor-shadow-page.c | 320 +- src/object-editor-size-page.c | 247 +- src/object-editor-text-page.c | 330 +- src/object-editor.c | 1321 +- src/object-editor.h | 275 +- src/pixbuf-cache.c | 42 +- src/pixbuf-cache.h | 34 +- src/pixbuf-util.c | 143 + src/pixbuf-util.h | 49 + src/pixmaps/Makefile.in | 56 +- src/prefs-dialog.c | 337 +- src/prefs-dialog.h | 48 +- src/prefs-model.c | 1152 +- src/prefs-model.h | 208 +- src/prefs.c | 174 +- src/prefs.h | 43 +- src/print-op-dialog.c | 744 + src/print-op-dialog.h | 83 + src/print-op.c | 565 +- src/print-op.h | 111 +- src/print.c | 88 +- src/print.h | 32 +- src/recent.c | 38 +- src/recent.h | 32 +- src/stock-pixmaps/Makefile.am | 95 - src/stock-pixmaps/stockpixbufs.h | 2942 -- src/stock.c | 221 - src/stock.h | 68 - src/str-util.c | 105 + src/str-util.h | 48 + src/svg-cache.c | 313 + src/svg-cache.h | 64 + src/template-designer.c | 928 +- src/template-designer.h | 59 +- src/template-history-model.c | 243 + src/template-history-model.h | 89 + src/template-history.c | 67 + src/template-history.h | 50 + src/text-node.c | 82 +- src/text-node.h | 59 +- src/ui-commands.c | 291 +- src/ui-commands.h | 39 +- src/ui-property-bar.c | 998 +- src/ui-property-bar.h | 51 +- src/ui-sidebar.c | 112 +- src/ui-sidebar.h | 45 +- src/ui-util.c | 39 +- src/ui-util.h | 32 +- src/ui.c | 457 +- src/ui.h | 41 +- src/units-util.c | 120 + src/units-util.h | 50 + src/util.c | 345 - src/util.h | 57 - src/view-barcode.c | 371 +- src/view-barcode.h | 63 +- src/view-box.c | 429 +- src/view-box.h | 62 +- src/view-ellipse.c | 431 +- src/view-ellipse.h | 63 +- src/view-image.c | 360 +- src/view-image.h | 63 +- src/view-line.c | 388 +- src/view-line.h | 63 +- src/view-object.c | 765 - src/view-object.h | 137 - src/view-text.c | 480 +- src/view-text.h | 63 +- src/view.c | 2781 +- src/view.h | 239 +- src/warning-handler.c | 38 +- src/warning-handler.h | 33 +- src/wdgt-chain-button.c | 187 +- src/wdgt-chain-button.h | 55 +- src/wdgt-media-select.c | 878 - src/wdgt-media-select.h | 78 - src/wdgt-mini-preview.c | 724 - src/wdgt-mini-preview.h | 83 - src/wdgt-print-copies.c | 363 - src/wdgt-print-copies.h | 81 - src/wdgt-print-merge.c | 313 - src/wdgt-print-merge.h | 82 - src/wdgt-rotate-label.c | 395 - src/wdgt-rotate-label.h | 74 - src/window.c | 261 +- src/window.h | 46 +- src/xml-label-04.c | 157 +- src/xml-label-04.h | 30 +- src/xml-label.c | 523 +- src/xml-label.h | 32 +- templates/Makefile.am | 39 + templates/Makefile.in | 533 + templates/ascom-iso-templates.xml | 353 + .../avery-iso-templates.xml | 157 +- .../avery-other-templates.xml | 7 +- .../avery-us-templates.xml | 935 +- .../brother-other-templates.xml | 24 +- {data/templates => templates}/categories.xml | 4 + templates/databecker-iso-templates.xml | 100 + templates/dataline-iso-templates.xml | 101 + templates/decadry-iso-templates.xml | 101 + .../dymo-other-templates.xml | 3 +- templates/geha-iso-templates.xml | 418 + .../glabels-3.0.dtd | 115 +- templates/hama-iso-templates.xml | 378 + templates/herma-iso-templates.xml | 408 + templates/jac-iso-templates.xml | 611 + templates/maco-us-templates.xml | 39 + templates/meritline-us-templates.xml | 178 + .../misc-iso-templates.xml | 806 +- templates/misc-other-templates.xml | 51 + .../misc-us-templates.xml | 324 +- {data/templates => templates}/paper-sizes.xml | 12 +- .../pearl-iso-templates.xml | 475 +- templates/uline-us-templates.xml | 30 + templates/vendors.xml | 47 + templates/worldlabel-us-templates.xml | 245 + .../zweckform-iso-templates.xml | 51 +- 869 files changed, 185053 insertions(+), 144082 deletions(-) delete mode 100644 COPYING-LIBGLABELS create mode 100644 COPYING-LIBS create mode 100644 COPYING-TEMPLATES delete mode 100644 ChangeLog.pre-2.2 delete mode 100644 barcode-0.98/COPYING delete mode 100644 barcode-0.98/ChangeLog delete mode 100644 barcode-0.98/INSTALL delete mode 100644 barcode-0.98/Makefile.am delete mode 100644 barcode-0.98/Makefile.in.dist delete mode 100644 barcode-0.98/README delete mode 100644 barcode-0.98/README.glabels delete mode 100644 barcode-0.98/TODO delete mode 100644 barcode-0.98/barcode.h delete mode 100644 barcode-0.98/barcode.spec delete mode 100644 barcode-0.98/bookland/bookland.py delete mode 100644 barcode-0.98/cmdline.c delete mode 100644 barcode-0.98/cmdline.h delete mode 100644 barcode-0.98/codabar.c delete mode 100644 barcode-0.98/code128.c delete mode 100644 barcode-0.98/code39.c delete mode 100644 barcode-0.98/code93.c delete mode 100644 barcode-0.98/compat/getopt.c delete mode 100644 barcode-0.98/compat/getopt.h delete mode 100755 barcode-0.98/configure delete mode 100644 barcode-0.98/configure.in.dist delete mode 100644 barcode-0.98/contrib/barcode-SVG.tar.gz delete mode 100644 barcode-0.98/contrib/barcode-SVG.tar.gz.README delete mode 100644 barcode-0.98/contrib/barcode-for-delphi.tar.gz delete mode 100644 barcode-0.98/contrib/barcode-for-delphi.tar.gz.README delete mode 100644 barcode-0.98/contrib/barcodeps-0.1.tgz delete mode 100644 barcode-0.98/contrib/barcodeps-0.1.tgz.README delete mode 100644 barcode-0.98/contrib/grab-0.0.4.tar.gz delete mode 100644 barcode-0.98/contrib/grab-0.0.4.tar.gz.README delete mode 100644 barcode-0.98/debian/README.debian delete mode 100644 barcode-0.98/debian/changelog delete mode 100644 barcode-0.98/debian/control delete mode 100644 barcode-0.98/debian/copyright delete mode 100644 barcode-0.98/debian/dirs delete mode 100644 barcode-0.98/debian/info delete mode 100755 barcode-0.98/debian/rules delete mode 100644 barcode-0.98/doc/Makefile.in delete mode 100644 barcode-0.98/doc/README delete mode 100644 barcode-0.98/doc/barcode.info delete mode 100644 barcode-0.98/doc/barcode.pdf delete mode 100644 barcode-0.98/doc/barcode.ps delete mode 100644 barcode-0.98/doc/barcodedoc.txt delete mode 100644 barcode-0.98/doc/doc.barcode delete mode 100755 barcode-0.98/doc/infofilter delete mode 100755 barcode-0.98/doc/manpager delete mode 100755 barcode-0.98/doc/mktxt delete mode 100755 barcode-0.98/doc/texi2html delete mode 100644 barcode-0.98/ean.c delete mode 100644 barcode-0.98/i25.c delete mode 100644 barcode-0.98/install-sh delete mode 100644 barcode-0.98/library.c delete mode 100644 barcode-0.98/main.c delete mode 100755 barcode-0.98/missing delete mode 100755 barcode-0.98/mkinstalldirs delete mode 100644 barcode-0.98/msi.c delete mode 100644 barcode-0.98/pcl.c delete mode 100644 barcode-0.98/plessey.c delete mode 100644 barcode-0.98/ps.c delete mode 100644 barcode-0.98/sample.c create mode 100644 configure.ac delete mode 100644 configure.in rename data/desktop/{glabels.desktop.in => glabels-3.0.desktop.in} (63%) delete mode 100644 data/dtd/Makefile.am delete mode 100644 data/glade/Makefile.am delete mode 100644 data/glade/merge-properties-dialog.glade delete mode 100644 data/glade/new-label-dialog.glade delete mode 100644 data/glade/object-editor.glade delete mode 100644 data/glade/prefs-dialog.glade delete mode 100644 data/glade/print-custom-widget.glade delete mode 100644 data/glade/property-bar.glade delete mode 100644 data/glade/template-designer.glade delete mode 100644 data/glade/wdgt-media-select.glade delete mode 100644 data/glade/wdgt-rotate-label.glade create mode 100644 data/icons/16x16/Makefile.am create mode 100644 data/icons/16x16/Makefile.in rename src/stock-pixmaps/stock_align_bottom_16.png => data/icons/16x16/actions/glabels-align-bottom.png (100%) rename src/stock-pixmaps/stock_align_hcenter_16.png => data/icons/16x16/actions/glabels-align-hcenter.png (100%) rename src/stock-pixmaps/stock_align_left_16.png => data/icons/16x16/actions/glabels-align-left.png (100%) rename src/stock-pixmaps/stock_align_right_16.png => data/icons/16x16/actions/glabels-align-right.png (100%) rename src/stock-pixmaps/stock_align_top_16.png => data/icons/16x16/actions/glabels-align-top.png (100%) rename src/stock-pixmaps/stock_align_vcenter_16.png => data/icons/16x16/actions/glabels-align-vcenter.png (100%) rename src/stock-pixmaps/stock_arrow_16.png => data/icons/16x16/actions/glabels-arrow.png (100%) rename src/stock-pixmaps/stock_barcode_16.png => data/icons/16x16/actions/glabels-barcode.png (100%) rename src/stock-pixmaps/stock_box_16.png => data/icons/16x16/actions/glabels-box.png (100%) rename src/stock-pixmaps/stock_bucket_fill_16.png => data/icons/16x16/actions/glabels-bucket-fill.png (100%) rename src/stock-pixmaps/stock_center_horiz_16.png => data/icons/16x16/actions/glabels-center-horiz.png (100%) rename src/stock-pixmaps/stock_center_vert_16.png => data/icons/16x16/actions/glabels-center-vert.png (100%) rename src/stock-pixmaps/stock_ellipse_16.png => data/icons/16x16/actions/glabels-ellipse.png (100%) rename src/stock-pixmaps/stock_flip_horiz_16.png => data/icons/16x16/actions/glabels-flip-horiz.png (100%) rename src/stock-pixmaps/stock_flip_vert_16.png => data/icons/16x16/actions/glabels-flip-vert.png (100%) rename src/stock-pixmaps/stock_image_16.png => data/icons/16x16/actions/glabels-image.png (100%) rename src/stock-pixmaps/stock_line_16.png => data/icons/16x16/actions/glabels-line.png (100%) rename src/stock-pixmaps/stock_merge_16.png => data/icons/16x16/actions/glabels-merge.png (100%) rename src/stock-pixmaps/stock_properties_16.png => data/icons/16x16/actions/glabels-object-properties.png (100%) rename src/stock-pixmaps/stock_order_bottom_16.png => data/icons/16x16/actions/glabels-order-bottom.png (100%) rename src/stock-pixmaps/stock_order_top_16.png => data/icons/16x16/actions/glabels-order-top.png (100%) rename src/stock-pixmaps/stock_pencil_16.png => data/icons/16x16/actions/glabels-pencil.png (100%) rename src/stock-pixmaps/stock_rotate_left_16.png => data/icons/16x16/actions/glabels-rotate-left.png (100%) rename src/stock-pixmaps/stock_rotate_right_16.png => data/icons/16x16/actions/glabels-rotate-right.png (100%) rename src/stock-pixmaps/stock_text_16.png => data/icons/16x16/actions/glabels-text.png (100%) create mode 100644 data/icons/16x16/apps/glabels-3.0.png create mode 100644 data/icons/22x22/Makefile.am rename data/{dtd => icons/22x22}/Makefile.in (80%) create mode 100644 data/icons/22x22/apps/glabels-3.0.png create mode 100644 data/icons/24x24/Makefile.am create mode 100644 data/icons/24x24/Makefile.in rename src/stock-pixmaps/stock_arrow_24.png => data/icons/24x24/actions/glabels-arrow.png (100%) rename src/stock-pixmaps/stock_barcode_24.png => data/icons/24x24/actions/glabels-barcode.png (100%) rename src/stock-pixmaps/stock_box_24.png => data/icons/24x24/actions/glabels-box.png (100%) rename src/stock-pixmaps/stock_bucket_fill_24.png => data/icons/24x24/actions/glabels-bucket-fill.png (100%) rename src/stock-pixmaps/stock_ellipse_24.png => data/icons/24x24/actions/glabels-ellipse.png (100%) rename src/stock-pixmaps/stock_hchain_broken_24.png => data/icons/24x24/actions/glabels-hchain-broken.png (100%) rename src/stock-pixmaps/stock_hchain_24.png => data/icons/24x24/actions/glabels-hchain.png (100%) rename src/stock-pixmaps/stock_image_24.png => data/icons/24x24/actions/glabels-image.png (100%) rename src/stock-pixmaps/stock_line_24.png => data/icons/24x24/actions/glabels-line.png (100%) rename src/stock-pixmaps/stock_merge_24.png => data/icons/24x24/actions/glabels-merge.png (100%) rename src/stock-pixmaps/stock_properties_24.png => data/icons/24x24/actions/glabels-object-properties.png (100%) rename src/stock-pixmaps/stock_pencil_24.png => data/icons/24x24/actions/glabels-pencil.png (100%) rename src/stock-pixmaps/stock_text_24.png => data/icons/24x24/actions/glabels-text.png (100%) rename src/stock-pixmaps/stock_vchain_broken_24.png => data/icons/24x24/actions/glabels-vchain-broken.png (100%) rename src/stock-pixmaps/stock_vchain_24.png => data/icons/24x24/actions/glabels-vchain.png (100%) create mode 100644 data/icons/24x24/apps/glabels-3.0.png create mode 100644 data/icons/32x32/Makefile.am rename data/{glade => icons/32x32}/Makefile.in (80%) create mode 100644 data/icons/32x32/apps/glabels-3.0.png create mode 100644 data/icons/48x48/Makefile.am create mode 100644 data/icons/48x48/Makefile.in create mode 100644 data/icons/48x48/apps/glabels-3.0.png create mode 100644 data/icons/48x48/mimetypes/application-x-glabels.png create mode 100644 data/icons/Makefile.am rename {src/mygal => data/icons}/Makefile.in (54%) create mode 100644 data/man/glabels-3-batch.1 rename data/man/{glabels.1 => glabels-3.1} (93%) rename data/mime/{glabels.xml.in => glabels-3.0.xml.in} (100%) delete mode 100644 data/mime/glabels.applications delete mode 100644 data/mime/glabels.keys delete mode 100644 data/mime/glabels.keys.in delete mode 100644 data/mime/glabels.mime delete mode 100644 data/mime/glabels.xml create mode 100644 data/pixmaps/ex-ellipse-size.png delete mode 100644 data/pixmaps/glabels-about-logo.png delete mode 100644 data/pixmaps/glabels-application-x-glabels.png create mode 100644 data/pixmaps/glabels-logo.png delete mode 100644 data/pixmaps/glabels-splash.png delete mode 100644 data/pixmaps/glabels.png create mode 100644 data/pixmaps/new-confirm.png create mode 100644 data/pixmaps/new-rotate.png create mode 100644 data/pixmaps/new-select.png create mode 100644 data/pixmaps/template-designer.png create mode 100644 data/schemas/Makefile.am create mode 100644 data/schemas/Makefile.in create mode 100644 data/schemas/org.gnome.glabels-3.gschema.xml.in create mode 100644 data/schemas/org.gnome.glabels-3.gschema.xml.in.in delete mode 100644 data/templates/Makefile.am delete mode 100644 data/templates/misc-other-templates.xml create mode 100644 data/ui/Makefile.am rename data/{templates => ui}/Makefile.in (78%) create mode 100644 data/ui/media-select.ui create mode 100644 data/ui/merge-properties-dialog.ui create mode 100644 data/ui/new-label-dialog.ui create mode 100644 data/ui/object-editor.ui create mode 100644 data/ui/prefs-dialog.ui create mode 100644 data/ui/print-op-dialog-custom-widget.ui create mode 100644 data/ui/property-bar.ui create mode 100644 data/ui/template-designer.ui create mode 100644 docs/libglabels/html/libglabels-3.0-category.html create mode 100644 docs/libglabels/html/libglabels-3.0-db.html create mode 100644 docs/libglabels/html/libglabels-3.0-paper.html create mode 100644 docs/libglabels/html/libglabels-3.0-str.html create mode 100644 docs/libglabels/html/libglabels-3.0-template.html create mode 100644 docs/libglabels/html/libglabels-3.0-units.html create mode 100644 docs/libglabels/html/libglabels-3.0-vendor.html create mode 100644 docs/libglabels/html/libglabels-3.0-xml-category.html create mode 100644 docs/libglabels/html/libglabels-3.0-xml-paper.html create mode 100644 docs/libglabels/html/libglabels-3.0-xml-template.html create mode 100644 docs/libglabels/html/libglabels-3.0-xml-vendor.html create mode 100644 docs/libglabels/html/libglabels-3.0-xml.html create mode 100644 docs/libglabels/html/libglabels-3.0.devhelp create mode 100644 docs/libglabels/html/libglabels-3.0.devhelp2 delete mode 100644 docs/libglabels/html/libglabels-category.html delete mode 100644 docs/libglabels/html/libglabels-db.html delete mode 100644 docs/libglabels/html/libglabels-enums.html delete mode 100644 docs/libglabels/html/libglabels-paper.html delete mode 100644 docs/libglabels/html/libglabels-str.html delete mode 100644 docs/libglabels/html/libglabels-template.html delete mode 100644 docs/libglabels/html/libglabels-xml-category.html delete mode 100644 docs/libglabels/html/libglabels-xml-paper.html delete mode 100644 docs/libglabels/html/libglabels-xml-template.html delete mode 100644 docs/libglabels/html/libglabels-xml.html delete mode 100644 docs/libglabels/html/libglabels.devhelp delete mode 100644 docs/libglabels/html/libglabels.devhelp2 rename docs/libglabels/{libglabels-docs.sgml => libglabels-3.0-docs.sgml} (82%) rename docs/libglabels/{libglabels-overrides.txt => libglabels-3.0-overrides.txt} (100%) rename docs/libglabels/{libglabels-sections.txt => libglabels-3.0-sections.txt} (70%) delete mode 100644 docs/libglabels/tmpl/category.sgml delete mode 100644 docs/libglabels/tmpl/db.sgml delete mode 100644 docs/libglabels/tmpl/enums.sgml delete mode 100644 docs/libglabels/tmpl/libglabels-unused.sgml delete mode 100644 docs/libglabels/tmpl/libglabels.sgml delete mode 100644 docs/libglabels/tmpl/paper.sgml delete mode 100644 docs/libglabels/tmpl/str.sgml delete mode 100644 docs/libglabels/tmpl/template.sgml delete mode 100644 docs/libglabels/tmpl/xml-category.sgml delete mode 100644 docs/libglabels/tmpl/xml-paper.sgml delete mode 100644 docs/libglabels/tmpl/xml-template.sgml delete mode 100644 docs/libglabels/tmpl/xml.sgml delete mode 100644 docs/libglabels/xml/api-index-deprecated.xml delete mode 100644 docs/libglabels/xml/api-index-full.xml delete mode 100644 docs/libglabels/xml/category.xml delete mode 100644 docs/libglabels/xml/db.xml delete mode 100644 docs/libglabels/xml/enums.xml delete mode 100644 docs/libglabels/xml/paper.xml delete mode 100644 docs/libglabels/xml/str.xml delete mode 100644 docs/libglabels/xml/template.xml delete mode 100644 docs/libglabels/xml/xml-category.xml delete mode 100644 docs/libglabels/xml/xml-paper.xml delete mode 100644 docs/libglabels/xml/xml-template.xml delete mode 100644 docs/libglabels/xml/xml.xml create mode 100644 docs/libglbarcode/Makefile.am create mode 100644 docs/libglbarcode/Makefile.in create mode 100644 docs/libglbarcode/html/api.html create mode 100644 docs/libglbarcode/html/home.png create mode 100644 docs/libglbarcode/html/index.html create mode 100644 docs/libglbarcode/html/index.sgml create mode 100644 docs/libglbarcode/html/left.png create mode 100644 docs/libglbarcode/html/libglbarcode-3.0-lgl-barcode-create.html create mode 100644 docs/libglbarcode/html/libglbarcode-3.0-lgl-barcode-render-to-cairo.html create mode 100644 docs/libglbarcode/html/libglbarcode-3.0-lgl-barcode-type.html create mode 100644 docs/libglbarcode/html/libglbarcode-3.0-lgl-barcode.html create mode 100644 docs/libglbarcode/html/libglbarcode-3.0.devhelp create mode 100644 docs/libglbarcode/html/libglbarcode-3.0.devhelp2 create mode 100644 docs/libglbarcode/html/libglbarcode-intro.html create mode 100644 docs/libglbarcode/html/overview.html create mode 100644 docs/libglbarcode/html/right.png create mode 100644 docs/libglbarcode/html/style.css create mode 100644 docs/libglbarcode/html/up.png create mode 100644 docs/libglbarcode/intro.sgml create mode 100644 docs/libglbarcode/libglbarcode-3.0-docs.sgml rename docs/{libglabels/libglabels.types => libglbarcode/libglbarcode-3.0-overrides.txt} (100%) create mode 100644 docs/libglbarcode/libglbarcode-3.0-sections.txt create mode 100644 help/C/about.page create mode 100644 help/C/basicusage.page create mode 100644 help/C/createnew.page create mode 100644 help/C/customize.page create mode 100644 help/C/customtemplate.page create mode 100644 help/C/editprop.page create mode 100644 help/C/figures/glabels-logo.png create mode 100644 help/C/figures/glabels-template-cd-label.png delete mode 100644 help/C/figures/glabels-template-cd.png create mode 100644 help/C/figures/glabels-template-circle-label.png create mode 100644 help/C/figures/glabels-template-ellipse-label.png delete mode 100644 help/C/figures/glabels-template-label.png create mode 100644 help/C/figures/glabels-template-rect-label.png create mode 100644 help/C/figures/introduction-glabels-main-window.png delete mode 100644 help/C/figures/main-window-empty.png delete mode 100644 help/C/figures/merge-ex3-1.png delete mode 100644 help/C/figures/merge-ex3-2.png create mode 100644 help/C/figures/skip-fields-output.png create mode 100644 help/C/figures/skip-fields-screenshot.png delete mode 100644 help/C/glabels.xml create mode 100644 help/C/index.page create mode 100644 help/C/labelprop.page delete mode 100644 help/C/legal.xml create mode 100644 help/C/license.page create mode 100644 help/C/mancreate.page create mode 100644 help/C/merge-ex1.page create mode 100644 help/C/merge-ex2.page create mode 100644 help/C/merge-ex3.page create mode 100644 help/C/merge-ex4.page create mode 100644 help/C/merge.page create mode 100644 help/C/mergefeatures.page create mode 100644 help/C/multifile.page create mode 100644 help/C/newlabel.page create mode 100644 help/C/printfile.page create mode 100644 help/C/select.page create mode 100644 help/C/skipfields.page create mode 100644 help/cs/about.page create mode 100644 help/cs/basicusage.page create mode 100644 help/cs/createnew.page create mode 100644 help/cs/customize.page create mode 100644 help/cs/customtemplate.page create mode 100644 help/cs/editprop.page delete mode 100644 help/cs/figures/main-window-empty.png create mode 100644 help/cs/figures/skip-fields-output.png create mode 100644 help/cs/figures/skip-fields-screenshot.png delete mode 100644 help/cs/glabels.xml create mode 100644 help/cs/index.page create mode 100644 help/cs/labelprop.page create mode 100644 help/cs/license.page create mode 100644 help/cs/mancreate.page create mode 100644 help/cs/merge-ex1.page create mode 100644 help/cs/merge-ex2.page create mode 100644 help/cs/merge-ex3.page create mode 100644 help/cs/merge-ex4.page create mode 100644 help/cs/merge.page create mode 100644 help/cs/mergefeatures.page create mode 100644 help/cs/multifile.page create mode 100644 help/cs/newlabel.page create mode 100644 help/cs/printfile.page create mode 100644 help/cs/select.page create mode 100644 help/cs/skipfields.page create mode 100644 help/de/about.page create mode 100644 help/de/basicusage.page create mode 100644 help/de/createnew.page create mode 100644 help/de/customize.page create mode 100644 help/de/customtemplate.page create mode 100644 help/de/editprop.page delete mode 100644 help/de/figures/merge-ex3-1.png delete mode 100644 help/de/figures/merge-ex3-2.png delete mode 100644 help/de/glabels.xml create mode 100644 help/de/index.page create mode 100644 help/de/labelprop.page create mode 100644 help/de/license.page create mode 100644 help/de/mancreate.page create mode 100644 help/de/merge-ex1.page create mode 100644 help/de/merge-ex2.page create mode 100644 help/de/merge-ex3.page create mode 100644 help/de/merge-ex4.page create mode 100644 help/de/merge.page create mode 100644 help/de/mergefeatures.page create mode 100644 help/de/multifile.page create mode 100644 help/de/newlabel.page create mode 100644 help/de/printfile.page create mode 100644 help/de/select.page create mode 100644 help/de/skipfields.page create mode 100644 help/es/about.page create mode 100644 help/es/basicusage.page create mode 100644 help/es/createnew.page create mode 100644 help/es/customize.page create mode 100644 help/es/customtemplate.page create mode 100644 help/es/editprop.page delete mode 100644 help/es/glabels.xml create mode 100644 help/es/index.page create mode 100644 help/es/labelprop.page create mode 100644 help/es/license.page create mode 100644 help/es/mancreate.page create mode 100644 help/es/merge-ex1.page create mode 100644 help/es/merge-ex2.page create mode 100644 help/es/merge-ex3.page create mode 100644 help/es/merge-ex4.page create mode 100644 help/es/merge.page create mode 100644 help/es/mergefeatures.page create mode 100644 help/es/multifile.page create mode 100644 help/es/newlabel.page create mode 100644 help/es/printfile.page create mode 100644 help/es/select.page create mode 100644 help/es/skipfields.page create mode 100644 help/fr/about.page create mode 100644 help/fr/basicusage.page create mode 100644 help/fr/createnew.page create mode 100644 help/fr/customize.page create mode 100644 help/fr/customtemplate.page create mode 100644 help/fr/editprop.page delete mode 100644 help/fr/figures/main-window-empty.png delete mode 100644 help/fr/figures/merge-ex1-1.png delete mode 100644 help/fr/figures/merge-ex1-2.png delete mode 100644 help/fr/figures/merge-ex1-3.png delete mode 100644 help/fr/figures/merge-ex1-4.png delete mode 100644 help/fr/figures/merge-ex2-1.png delete mode 100644 help/fr/figures/merge-ex2-2.png delete mode 100644 help/fr/figures/merge-ex2-3.png delete mode 100644 help/fr/figures/merge-ex2-4.png delete mode 100644 help/fr/figures/object-editor-sidebar.png delete mode 100644 help/fr/figures/print-copies.png delete mode 100644 help/fr/figures/print-merge.png delete mode 100644 help/fr/glabels.xml create mode 100644 help/fr/index.page create mode 100644 help/fr/labelprop.page create mode 100644 help/fr/license.page create mode 100644 help/fr/mancreate.page create mode 100644 help/fr/merge-ex1.page create mode 100644 help/fr/merge-ex2.page create mode 100644 help/fr/merge-ex3.page create mode 100644 help/fr/merge-ex4.page create mode 100644 help/fr/merge.page create mode 100644 help/fr/mergefeatures.page create mode 100644 help/fr/multifile.page create mode 100644 help/fr/newlabel.page create mode 100644 help/fr/printfile.page create mode 100644 help/fr/select.page create mode 100644 help/fr/skipfields.page delete mode 100644 help/glabels.omf.in create mode 100644 help/nl/about.page create mode 100644 help/nl/basicusage.page create mode 100644 help/nl/createnew.page create mode 100644 help/nl/customize.page create mode 100644 help/nl/customtemplate.page create mode 100644 help/nl/editprop.page create mode 100644 help/nl/index.page create mode 100644 help/nl/labelprop.page create mode 100644 help/nl/license.page create mode 100644 help/nl/mancreate.page create mode 100644 help/nl/merge-ex1.page create mode 100644 help/nl/merge-ex2.page create mode 100644 help/nl/merge-ex3.page create mode 100644 help/nl/merge-ex4.page create mode 100644 help/nl/merge.page create mode 100644 help/nl/mergefeatures.page create mode 100644 help/nl/multifile.page create mode 100644 help/nl/newlabel.page create mode 100644 help/nl/nl.po create mode 100644 help/nl/printfile.page create mode 100644 help/nl/select.page create mode 100644 help/nl/skipfields.page create mode 100644 help/sl/about.page create mode 100644 help/sl/basicusage.page create mode 100644 help/sl/createnew.page create mode 100644 help/sl/customize.page create mode 100644 help/sl/customtemplate.page create mode 100644 help/sl/editprop.page create mode 100644 help/sl/index.page create mode 100644 help/sl/labelprop.page create mode 100644 help/sl/license.page create mode 100644 help/sl/mancreate.page create mode 100644 help/sl/merge-ex1.page create mode 100644 help/sl/merge-ex2.page create mode 100644 help/sl/merge-ex3.page create mode 100644 help/sl/merge-ex4.page create mode 100644 help/sl/merge.page create mode 100644 help/sl/mergefeatures.page create mode 100644 help/sl/multifile.page create mode 100644 help/sl/newlabel.page create mode 100644 help/sl/printfile.page create mode 100644 help/sl/select.page create mode 100644 help/sl/skipfields.page create mode 100644 help/sl/sl.po delete mode 100644 iec16022-0.2.1/BUGS delete mode 100644 iec16022-0.2.1/CHANGELOG delete mode 100644 iec16022-0.2.1/CREDITS delete mode 100644 iec16022-0.2.1/INSTALL delete mode 100644 iec16022-0.2.1/LICENSE delete mode 100644 iec16022-0.2.1/Makefile.am delete mode 100644 iec16022-0.2.1/Makefile.dist delete mode 100644 iec16022-0.2.1/Makefile.in delete mode 100644 iec16022-0.2.1/README delete mode 100644 iec16022-0.2.1/README.glabels delete mode 100644 iec16022-0.2.1/TODO delete mode 100644 iec16022-0.2.1/iec16022.1 delete mode 100644 iec16022-0.2.1/iec16022.c delete mode 100644 iec16022-0.2.1/iec16022ecc200.c delete mode 100644 iec16022-0.2.1/iec16022ecc200.h delete mode 100644 iec16022-0.2.1/image.c delete mode 100644 iec16022-0.2.1/image.h delete mode 100644 iec16022-0.2.1/reedsol.c delete mode 100644 iec16022-0.2.1/reedsol.h delete mode 100644 iec16022-0.2.1/test/testsuite-example.bin delete mode 100644 iec16022-0.2.1/test/testsuite-example.eps delete mode 100644 iec16022-0.2.1/test/testsuite-example.hex delete mode 100644 iec16022-0.2.1/test/testsuite-example.png delete mode 100644 iec16022-0.2.1/test/testsuite-example.text delete mode 100755 iec16022-0.2.1/test/testsuite.sh delete mode 100644 libglabels/category.h delete mode 100644 libglabels/db.c delete mode 100644 libglabels/enums.h rename libglabels/{category.c => lgl-category.c} (52%) create mode 100644 libglabels/lgl-category.h create mode 100644 libglabels/lgl-db.c rename libglabels/{db.h => lgl-db.h} (58%) create mode 100644 libglabels/lgl-paper.c create mode 100644 libglabels/lgl-paper.h create mode 100644 libglabels/lgl-str.c create mode 100644 libglabels/lgl-str.h create mode 100644 libglabels/lgl-template.c rename libglabels/{template.h => lgl-template.h} (53%) create mode 100644 libglabels/lgl-units.c create mode 100644 libglabels/lgl-units.h create mode 100644 libglabels/lgl-vendor.c create mode 100644 libglabels/lgl-vendor.h create mode 100644 libglabels/lgl-xml-category.c create mode 100644 libglabels/lgl-xml-category.h create mode 100644 libglabels/lgl-xml-paper.c create mode 100644 libglabels/lgl-xml-paper.h create mode 100644 libglabels/lgl-xml-template.c create mode 100644 libglabels/lgl-xml-template.h create mode 100644 libglabels/lgl-xml-vendor.c create mode 100644 libglabels/lgl-xml-vendor.h create mode 100644 libglabels/lgl-xml.c create mode 100644 libglabels/lgl-xml.h rename libglabels/{libglabels.pc.in => libglabels-3.0.pc.in} (64%) delete mode 100644 libglabels/paper.c delete mode 100644 libglabels/paper.h delete mode 100644 libglabels/str.c delete mode 100644 libglabels/str.h delete mode 100644 libglabels/template.c delete mode 100644 libglabels/xml-category.c delete mode 100644 libglabels/xml-category.h delete mode 100644 libglabels/xml-paper.c delete mode 100644 libglabels/xml-paper.h delete mode 100644 libglabels/xml-template.c delete mode 100644 libglabels/xml-template.h delete mode 100644 libglabels/xml.c delete mode 100644 libglabels/xml.h create mode 100644 libglbarcode/Makefile.am rename {barcode-0.98 => libglbarcode}/Makefile.in (51%) create mode 100644 libglbarcode/lgl-barcode-code39.c create mode 100644 libglbarcode/lgl-barcode-code39.h create mode 100644 libglbarcode/lgl-barcode-create.c create mode 100644 libglbarcode/lgl-barcode-create.h create mode 100644 libglbarcode/lgl-barcode-onecode.c create mode 100644 libglbarcode/lgl-barcode-onecode.h create mode 100644 libglbarcode/lgl-barcode-postnet.c create mode 100644 libglbarcode/lgl-barcode-postnet.h create mode 100644 libglbarcode/lgl-barcode-render-to-cairo.c create mode 100644 libglbarcode/lgl-barcode-render-to-cairo.h create mode 100644 libglbarcode/lgl-barcode-type.h create mode 100644 libglbarcode/lgl-barcode.c create mode 100644 libglbarcode/lgl-barcode.h create mode 100644 libglbarcode/libglbarcode-3.0.pc.in create mode 100644 libglbarcode/libglbarcode.h create mode 100644 po/POTFILES.skip create mode 100644 po/ca@valencia.po create mode 100644 po/nl.po delete mode 100644 src/base64.c delete mode 100644 src/base64.h create mode 100644 src/bc-backends.c create mode 100644 src/bc-backends.h create mode 100644 src/bc-builtin.c create mode 100644 src/bc-builtin.h create mode 100644 src/bc-iec18004.c create mode 100644 src/bc-iec18004.h delete mode 100644 src/bc-postnet.c delete mode 100644 src/bc-postnet.h create mode 100644 src/bc-zint.c create mode 100644 src/bc-zint.h delete mode 100644 src/bc.c delete mode 100644 src/bc.h create mode 100644 src/builder-util.c create mode 100644 src/builder-util.h create mode 100644 src/color-combo-button.c create mode 100644 src/color-combo-button.h create mode 100644 src/color-combo-color-menu-item.c create mode 100644 src/color-combo-color-menu-item.h create mode 100644 src/color-combo-menu.c create mode 100644 src/color-combo-menu.h create mode 100644 src/color-combo.c create mode 100644 src/color-combo.h create mode 100644 src/color-history-model.c create mode 100644 src/color-history-model.h create mode 100644 src/color-swatch.c create mode 100644 src/color-swatch.h create mode 100644 src/combo-util.c create mode 100644 src/combo-util.h create mode 100644 src/cursors/Makefile.am rename src/{stock-pixmaps => cursors}/Makefile.in (71%) create mode 100644 src/cursors/cursor_barcode.png create mode 100644 src/cursors/cursor_box.png create mode 100644 src/cursors/cursor_ellipse.png create mode 100644 src/cursors/cursor_image.png create mode 100644 src/cursors/cursor_line.png create mode 100644 src/cursors/cursor_pixdata.h create mode 100644 src/cursors/cursor_text.png create mode 100644 src/field-button-menu.c create mode 100644 src/field-button-menu.h create mode 100644 src/field-button.c create mode 100644 src/field-button.h create mode 100644 src/file-util.c create mode 100644 src/file-util.h create mode 100644 src/font-combo-menu-item.c create mode 100644 src/font-combo-menu-item.h create mode 100644 src/font-combo-menu.c create mode 100644 src/font-combo-menu.h create mode 100644 src/font-combo.c create mode 100644 src/font-combo.h create mode 100644 src/font-history-model.c create mode 100644 src/font-history-model.h create mode 100644 src/font-history.c create mode 100644 src/font-history.h create mode 100644 src/font-sample.c create mode 100644 src/font-sample.h create mode 100644 src/font-util.c create mode 100644 src/font-util.h delete mode 100644 src/hig.h create mode 100644 src/media-select.c create mode 100644 src/media-select.h create mode 100644 src/message-bar.c create mode 100644 src/message-bar.h create mode 100644 src/mini-label-preview.c create mode 100644 src/mini-label-preview.h create mode 100644 src/mini-preview.c create mode 100644 src/mini-preview.h delete mode 100644 src/mygal/Makefile.am delete mode 100644 src/mygal/color-group.c delete mode 100644 src/mygal/color-group.h delete mode 100644 src/mygal/color-palette.c delete mode 100644 src/mygal/color-palette.h delete mode 100644 src/mygal/e-colors.c delete mode 100644 src/mygal/e-colors.h delete mode 100644 src/mygal/e-marshal.list delete mode 100644 src/mygal/e-util.h delete mode 100644 src/mygal/mygal-combo-box.c delete mode 100644 src/mygal/mygal-combo-box.h delete mode 100644 src/mygal/widget-color-combo.c delete mode 100644 src/mygal/widget-color-combo.h create mode 100644 src/pixbuf-util.c create mode 100644 src/pixbuf-util.h create mode 100644 src/print-op-dialog.c create mode 100644 src/print-op-dialog.h delete mode 100644 src/stock-pixmaps/Makefile.am delete mode 100644 src/stock-pixmaps/stockpixbufs.h delete mode 100644 src/stock.c delete mode 100644 src/stock.h create mode 100644 src/str-util.c create mode 100644 src/str-util.h create mode 100644 src/svg-cache.c create mode 100644 src/svg-cache.h create mode 100644 src/template-history-model.c create mode 100644 src/template-history-model.h create mode 100644 src/template-history.c create mode 100644 src/template-history.h create mode 100644 src/units-util.c create mode 100644 src/units-util.h delete mode 100644 src/util.c delete mode 100644 src/util.h delete mode 100644 src/view-object.c delete mode 100644 src/view-object.h delete mode 100644 src/wdgt-media-select.c delete mode 100644 src/wdgt-media-select.h delete mode 100644 src/wdgt-mini-preview.c delete mode 100644 src/wdgt-mini-preview.h delete mode 100644 src/wdgt-print-copies.c delete mode 100644 src/wdgt-print-copies.h delete mode 100644 src/wdgt-print-merge.c delete mode 100644 src/wdgt-print-merge.h delete mode 100644 src/wdgt-rotate-label.c delete mode 100644 src/wdgt-rotate-label.h create mode 100644 templates/Makefile.am create mode 100644 templates/Makefile.in create mode 100644 templates/ascom-iso-templates.xml rename {data/templates => templates}/avery-iso-templates.xml (76%) rename {data/templates => templates}/avery-other-templates.xml (77%) rename {data/templates => templates}/avery-us-templates.xml (58%) rename {data/templates => templates}/brother-other-templates.xml (55%) rename {data/templates => templates}/categories.xml (75%) create mode 100644 templates/databecker-iso-templates.xml create mode 100644 templates/dataline-iso-templates.xml create mode 100644 templates/decadry-iso-templates.xml rename {data/templates => templates}/dymo-other-templates.xml (98%) create mode 100644 templates/geha-iso-templates.xml rename data/dtd/glabels-2.2.dtd => templates/glabels-3.0.dtd (77%) create mode 100644 templates/hama-iso-templates.xml create mode 100644 templates/herma-iso-templates.xml create mode 100644 templates/jac-iso-templates.xml create mode 100644 templates/maco-us-templates.xml create mode 100644 templates/meritline-us-templates.xml rename {data/templates => templates}/misc-iso-templates.xml (55%) create mode 100644 templates/misc-other-templates.xml rename {data/templates => templates}/misc-us-templates.xml (73%) rename {data/templates => templates}/paper-sizes.xml (81%) rename data/templates/pearl-templates.xml => templates/pearl-iso-templates.xml (52%) create mode 100644 templates/uline-us-templates.xml create mode 100644 templates/vendors.xml create mode 100644 templates/worldlabel-us-templates.xml rename {data/templates => templates}/zweckform-iso-templates.xml (85%) diff --git a/AUTHORS b/AUTHORS index 0a29f97e..68489f48 100644 --- a/AUTHORS +++ b/AUTHORS @@ -6,68 +6,41 @@ Jim Evins Acknowledgments =============== -- The GNU Barcode Library provides a large chunk of the barcode functionality -and is distributed with glabels. See ./barcode-0.98/README for more -information. The author: - - Alessandro Rubini - -- The iec16022 library provides encoding for 2D barcodes. See -iec16022-0.2.1/README for more information. - -- Glabels includes modified versions of several widgets from the GAL library. -These are copyright: - - * Copyright 2000, 2001, Ximian, Inc. - * Copyright 2000, Michael Levy - * Copyright 2001, Almer S. Tigelaar - -- Glabels includes a modified version of the gimpchainbutton widget from the -gimp, as well as several stock icons from the gimp's default theme. -These are copyright: - - * Copyright (C) 1995-1997 Peter Mattis and Spencer Kimball - * Copyright (C) 1999-2000 Sven Neumann - Glabels includes contributions from: + + Mario Blättermann -- Documentation & i18n maintainer Frederic Ruaudel Emmanuel Pacaud Wayne Schuller Austin Henry -- EDS and vcard backends nestor di -- excellent splash screen that first appeared in - 0.4.3: + 0.4.3 Darren Warner Javier Donaire Segarra - Alessandro Zummo + Alessandro Zummo José Dapena Paz Akkana Dag Wieers Mário Meyer Peter Cherriman + Daniel Mueller + Samual Lown + Robin Stuart + + +Glabels includes a modified version of the gimpchainbutton widget from the +gimp, as well as several stock icons from the gimp's default theme. +These are copyright: + + * Copyright (C) 1995-1997 Peter Mattis and Spencer Kimball + * Copyright (C) 1999-2000 Sven Neumann + Translations: - Olivier Berger -- French (original) - Florent Morel -- French (2.0.2) - Claude Paroz -- French (2.1.4) - Marcus Bauer -- German (original) - Christian Neumair -- German (1.89.1) - Mario Blättermann -- German (2.2.5) - Takeshi AIHANA -- Japanese - Paulo Rogério Ormenese -- Brazilian Portuguese - Víctor Moral -- Spanish - sergio rivadero -- Spanish (2.0.3) - Vitaly Lipatov -- Russian - Shell, Hin-lik Hung -- Chinese (TW) - Arkadiusz Lipiec -- Polish - David Makovský (Yakeen) -- Czech - Zbynek Mrkvicka -- Czech (2.0.3) - Mancio -- Italian - Daniele Medri -- Italian (2.0.3) - Antonio C. Codazzi "la Filozofo" -- Esperanto - David Planella -- Catalan - Careon -- Chinese (CN) + See individual po files for credits. + The following people have submitted label templates or information about particular products (I apologize if I have missed anybody): @@ -95,7 +68,6 @@ particular products (I apologize if I have missed anybody): Dan Gray Keith Hudson Tamas Bondar - George Mitchell Erich Pfennig Gwen Patton Miek Gieben @@ -186,6 +158,13 @@ particular products (I apologize if I have missed anybody): Russell Knighton Anthony Mark Morningstar Ian Shuttleworth + Rudolph Leitgeb + E. Travis + Stefan Tauner + Ralf Moll + Kevin Partin + Stuart Coyle + Jean-Philippe Guérard And many others for their many helpful suggestions and bug reports -- thanks. diff --git a/COPYING b/COPYING index d60c31a9..94a9ed02 100644 --- a/COPYING +++ b/COPYING @@ -1,285 +1,626 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. - Preamble + Preamble - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of this License. - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it @@ -287,15 +628,15 @@ free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least +state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) - This program is free software; you can redistribute it and/or modify + 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 2 of the License, or + 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, @@ -304,37 +645,30 @@ the "copyright" line and a pointer to where the full notice is found. 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, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - + along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/COPYING-DOCS b/COPYING-DOCS index b42936be..23fba304 100644 --- a/COPYING-DOCS +++ b/COPYING-DOCS @@ -1,355 +1,61 @@ - GNU Free Documentation License - Version 1.1, March 2000 +Attribution-ShareAlike 3.0 Unported - Copyright (C) 2000 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. +CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM ITS USE. +License +THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. -0. PREAMBLE +BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS. -The purpose of this License is to make a manual, textbook, or other -written document "free" in the sense of freedom: to assure everyone -the effective freedom to copy and redistribute it, with or without -modifying it, either commercially or noncommercially. Secondarily, -this License preserves for the author and publisher a way to get -credit for their work, while not being considered responsible for -modifications made by others. +1. Definitions -This License is a kind of "copyleft", which means that derivative -works of the document must themselves be free in the same sense. It -complements the GNU General Public License, which is a copyleft -license designed for free software. +"Adaptation" means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered an Adaptation for the purpose of this License. +"Collection" means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(f) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined below) for the purposes of this License. +"Creative Commons Compatible License" means a license that is listed at http://creativecommons.org/compatiblelicenses that has been approved by Creative Commons as being essentially equivalent to this License, including, at a minimum, because that license: (i) contains terms that have the same purpose, meaning and effect as the License Elements of this License; and, (ii) explicitly permits the relicensing of adaptations of works made available under that license under this License or a Creative Commons jurisdiction license with the same License Elements as this License. +"Distribute" means to make available to the public the original and copies of the Work or Adaptation, as appropriate, through sale or other transfer of ownership. +"License Elements" means the following high-level license attributes as selected by Licensor and indicated in the title of this License: Attribution, ShareAlike. +"Licensor" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License. +"Original Author" means, in the case of a literary or artistic work, the individual, individuals, entity or entities who created the Work or if no individual or entity can be identified, the publisher; and in addition (i) in the case of a performance the actors, singers, musicians, dancers, and other persons who act, sing, deliver, declaim, play in, interpret or otherwise perform literary or artistic works or expressions of folklore; (ii) in the case of a phonogram the producer being the person or legal entity who first fixes the sounds of a performance or other sounds; and, (iii) in the case of broadcasts, the organization that transmits the broadcast. +"Work" means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work. +"You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation. +"Publicly Perform" means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images. +"Reproduce" means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium. +2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws. -We have designed this License in order to use it for manuals for free -software, because free software needs free documentation: a free -program should come with manuals providing the same freedoms that the -software does. But this License is not limited to software manuals; -it can be used for any textual work, regardless of subject matter or -whether it is published as a printed book. We recommend this License -principally for works whose purpose is instruction or reference. +3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below: +to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections; +to create and Reproduce Adaptations provided that any such Adaptation, including any translation in any medium, takes reasonable steps to clearly label, demarcate or otherwise identify that changes were made to the original Work. For example, a translation could be marked "The original work was translated from English to Spanish," or a modification could indicate "The original work has been modified."; +to Distribute and Publicly Perform the Work including as incorporated in Collections; and, +to Distribute and Publicly Perform Adaptations. +For the avoidance of doubt: -1. APPLICABILITY AND DEFINITIONS +Non-waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; +Waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor waives the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; and, +Voluntary License Schemes. The Licensor waives the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License. +The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats. Subject to Section 8(f), all rights not expressly granted by Licensor are hereby reserved. -This License applies to any manual or other work that contains a -notice placed by the copyright holder saying it can be distributed -under the terms of this License. The "Document", below, refers to any -such manual or work. Any member of the public is a licensee, and is -addressed as "you". +4. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following restrictions: -A "Modified Version" of the Document means any work containing the -Document or a portion of it, either copied verbatim, or with -modifications and/or translated into another language. +You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(c), as requested. If You create an Adaptation, upon notice from any Licensor You must, to the extent practicable, remove from the Adaptation any credit as required by Section 4(c), as requested. +You may Distribute or Publicly Perform an Adaptation only under the terms of: (i) this License; (ii) a later version of this License with the same License Elements as this License; (iii) a Creative Commons jurisdiction license (either this or a later license version) that contains the same License Elements as this License (e.g., Attribution-ShareAlike 3.0 US)); (iv) a Creative Commons Compatible License. If you license the Adaptation under one of the licenses mentioned in (iv), you must comply with the terms of that license. If you license the Adaptation under the terms of any of the licenses mentioned in (i), (ii) or (iii) (the "Applicable License"), you must comply with the terms of the Applicable License generally and the following provisions: (I) You must include a copy of, or the URI for, the Applicable License with every copy of each Adaptation You Distribute or Publicly Perform; (II) You may not offer or impose any terms on the Adaptation that restrict the terms of the Applicable License or the ability of the recipient of the Adaptation to exercise the rights granted to that recipient under the terms of the Applicable License; (III) You must keep intact all notices that refer to the Applicable License and to the disclaimer of warranties with every copy of the Work as included in the Adaptation You Distribute or Publicly Perform; (IV) when You Distribute or Publicly Perform the Adaptation, You may not impose any effective technological measures on the Adaptation that restrict the ability of a recipient of the Adaptation from You to exercise the rights granted to that recipient under the terms of the Applicable License. This Section 4(b) applies to the Adaptation as incorporated in a Collection, but this does not require the Collection apart from the Adaptation itself to be made subject to the terms of the Applicable License. +If You Distribute, or Publicly Perform the Work or any Adaptations or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work; and (iv) , consistent with Ssection 3(b), in the case of an Adaptation, a credit identifying the use of the Work in the Adaptation (e.g., "French translation of the Work by Original Author," or "Screenplay based on original Work by Original Author"). The credit required by this Section 4(c) may be implemented in any reasonable manner; provided, however, that in the case of a Adaptation or Collection, at a minimum such credit will appear, if a credit for all contributing authors of the Adaptation or Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties. +Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Adaptations or Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation. Licensor agrees that in those jurisdictions (e.g. Japan), in which any exercise of the right granted in Section 3(b) of this License (the right to make Adaptations) would be deemed to be a distortion, mutilation, modification or other derogatory action prejudicial to the Original Author's honor and reputation, the Licensor will waive or not assert, as appropriate, this Section, to the fullest extent permitted by the applicable national law, to enable You to reasonably exercise Your right under Section 3(b) of this License (right to make Adaptations) but not otherwise. +5. Representations, Warranties and Disclaimer -A "Secondary Section" is a named appendix or a front-matter section of -the Document that deals exclusively with the relationship of the -publishers or authors of the Document to the Document's overall subject -(or to related matters) and contains nothing that could fall directly -within that overall subject. (For example, if the Document is in part a -textbook of mathematics, a Secondary Section may not explain any -mathematics.) The relationship could be a matter of historical -connection with the subject or with related matters, or of legal, -commercial, philosophical, ethical or political position regarding -them. +UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. -The "Invariant Sections" are certain Secondary Sections whose titles -are designated, as being those of Invariant Sections, in the notice -that says that the Document is released under this License. +6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. -The "Cover Texts" are certain short passages of text that are listed, -as Front-Cover Texts or Back-Cover Texts, in the notice that says that -the Document is released under this License. +7. Termination -A "Transparent" copy of the Document means a machine-readable copy, -represented in a format whose specification is available to the -general public, whose contents can be viewed and edited directly and -straightforwardly with generic text editors or (for images composed of -pixels) generic paint programs or (for drawings) some widely available -drawing editor, and that is suitable for input to text formatters or -for automatic translation to a variety of formats suitable for input -to text formatters. A copy made in an otherwise Transparent file -format whose markup has been designed to thwart or discourage -subsequent modification by readers is not Transparent. A copy that is -not "Transparent" is called "Opaque". +This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Adaptations or Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License. +Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above. +8. Miscellaneous -Examples of suitable formats for Transparent copies include plain -ASCII without markup, Texinfo input format, LaTeX input format, SGML -or XML using a publicly available DTD, and standard-conforming simple -HTML designed for human modification. Opaque formats include -PostScript, PDF, proprietary formats that can be read and edited only -by proprietary word processors, SGML or XML for which the DTD and/or -processing tools are not generally available, and the -machine-generated HTML produced by some word processors for output -purposes only. - -The "Title Page" means, for a printed book, the title page itself, -plus such following pages as are needed to hold, legibly, the material -this License requires to appear in the title page. For works in -formats which do not have any title page as such, "Title Page" means -the text near the most prominent appearance of the work's title, -preceding the beginning of the body of the text. - - -2. VERBATIM COPYING - -You may copy and distribute the Document in any medium, either -commercially or noncommercially, provided that this License, the -copyright notices, and the license notice saying this License applies -to the Document are reproduced in all copies, and that you add no other -conditions whatsoever to those of this License. You may not use -technical measures to obstruct or control the reading or further -copying of the copies you make or distribute. However, you may accept -compensation in exchange for copies. If you distribute a large enough -number of copies you must also follow the conditions in section 3. - -You may also lend copies, under the same conditions stated above, and -you may publicly display copies. - - -3. COPYING IN QUANTITY - -If you publish printed copies of the Document numbering more than 100, -and the Document's license notice requires Cover Texts, you must enclose -the copies in covers that carry, clearly and legibly, all these Cover -Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on -the back cover. Both covers must also clearly and legibly identify -you as the publisher of these copies. The front cover must present -the full title with all words of the title equally prominent and -visible. You may add other material on the covers in addition. -Copying with changes limited to the covers, as long as they preserve -the title of the Document and satisfy these conditions, can be treated -as verbatim copying in other respects. - -If the required texts for either cover are too voluminous to fit -legibly, you should put the first ones listed (as many as fit -reasonably) on the actual cover, and continue the rest onto adjacent -pages. - -If you publish or distribute Opaque copies of the Document numbering -more than 100, you must either include a machine-readable Transparent -copy along with each Opaque copy, or state in or with each Opaque copy -a publicly-accessible computer-network location containing a complete -Transparent copy of the Document, free of added material, which the -general network-using public has access to download anonymously at no -charge using public-standard network protocols. If you use the latter -option, you must take reasonably prudent steps, when you begin -distribution of Opaque copies in quantity, to ensure that this -Transparent copy will remain thus accessible at the stated location -until at least one year after the last time you distribute an Opaque -copy (directly or through your agents or retailers) of that edition to -the public. - -It is requested, but not required, that you contact the authors of the -Document well before redistributing any large number of copies, to give -them a chance to provide you with an updated version of the Document. - - -4. MODIFICATIONS - -You may copy and distribute a Modified Version of the Document under -the conditions of sections 2 and 3 above, provided that you release -the Modified Version under precisely this License, with the Modified -Version filling the role of the Document, thus licensing distribution -and modification of the Modified Version to whoever possesses a copy -of it. In addition, you must do these things in the Modified Version: - -A. Use in the Title Page (and on the covers, if any) a title distinct - from that of the Document, and from those of previous versions - (which should, if there were any, be listed in the History section - of the Document). You may use the same title as a previous version - if the original publisher of that version gives permission. -B. List on the Title Page, as authors, one or more persons or entities - responsible for authorship of the modifications in the Modified - Version, together with at least five of the principal authors of the - Document (all of its principal authors, if it has less than five). -C. State on the Title page the name of the publisher of the - Modified Version, as the publisher. -D. Preserve all the copyright notices of the Document. -E. Add an appropriate copyright notice for your modifications - adjacent to the other copyright notices. -F. Include, immediately after the copyright notices, a license notice - giving the public permission to use the Modified Version under the - terms of this License, in the form shown in the Addendum below. -G. Preserve in that license notice the full lists of Invariant Sections - and required Cover Texts given in the Document's license notice. -H. Include an unaltered copy of this License. -I. Preserve the section entitled "History", and its title, and add to - it an item stating at least the title, year, new authors, and - publisher of the Modified Version as given on the Title Page. If - there is no section entitled "History" in the Document, create one - stating the title, year, authors, and publisher of the Document as - given on its Title Page, then add an item describing the Modified - Version as stated in the previous sentence. -J. Preserve the network location, if any, given in the Document for - public access to a Transparent copy of the Document, and likewise - the network locations given in the Document for previous versions - it was based on. These may be placed in the "History" section. - You may omit a network location for a work that was published at - least four years before the Document itself, or if the original - publisher of the version it refers to gives permission. -K. In any section entitled "Acknowledgements" or "Dedications", - preserve the section's title, and preserve in the section all the - substance and tone of each of the contributor acknowledgements - and/or dedications given therein. -L. Preserve all the Invariant Sections of the Document, - unaltered in their text and in their titles. Section numbers - or the equivalent are not considered part of the section titles. -M. Delete any section entitled "Endorsements". Such a section - may not be included in the Modified Version. -N. Do not retitle any existing section as "Endorsements" - or to conflict in title with any Invariant Section. - -If the Modified Version includes new front-matter sections or -appendices that qualify as Secondary Sections and contain no material -copied from the Document, you may at your option designate some or all -of these sections as invariant. To do this, add their titles to the -list of Invariant Sections in the Modified Version's license notice. -These titles must be distinct from any other section titles. - -You may add a section entitled "Endorsements", provided it contains -nothing but endorsements of your Modified Version by various -parties--for example, statements of peer review or that the text has -been approved by an organization as the authoritative definition of a -standard. - -You may add a passage of up to five words as a Front-Cover Text, and a -passage of up to 25 words as a Back-Cover Text, to the end of the list -of Cover Texts in the Modified Version. Only one passage of -Front-Cover Text and one of Back-Cover Text may be added by (or -through arrangements made by) any one entity. If the Document already -includes a cover text for the same cover, previously added by you or -by arrangement made by the same entity you are acting on behalf of, -you may not add another; but you may replace the old one, on explicit -permission from the previous publisher that added the old one. - -The author(s) and publisher(s) of the Document do not by this License -give permission to use their names for publicity for or to assert or -imply endorsement of any Modified Version. - - -5. COMBINING DOCUMENTS - -You may combine the Document with other documents released under this -License, under the terms defined in section 4 above for modified -versions, provided that you include in the combination all of the -Invariant Sections of all of the original documents, unmodified, and -list them all as Invariant Sections of your combined work in its -license notice. - -The combined work need only contain one copy of this License, and -multiple identical Invariant Sections may be replaced with a single -copy. If there are multiple Invariant Sections with the same name but -different contents, make the title of each such section unique by -adding at the end of it, in parentheses, the name of the original -author or publisher of that section if known, or else a unique number. -Make the same adjustment to the section titles in the list of -Invariant Sections in the license notice of the combined work. - -In the combination, you must combine any sections entitled "History" -in the various original documents, forming one section entitled -"History"; likewise combine any sections entitled "Acknowledgements", -and any sections entitled "Dedications". You must delete all sections -entitled "Endorsements." - - -6. COLLECTIONS OF DOCUMENTS - -You may make a collection consisting of the Document and other documents -released under this License, and replace the individual copies of this -License in the various documents with a single copy that is included in -the collection, provided that you follow the rules of this License for -verbatim copying of each of the documents in all other respects. - -You may extract a single document from such a collection, and distribute -it individually under this License, provided you insert a copy of this -License into the extracted document, and follow this License in all -other respects regarding verbatim copying of that document. - - -7. AGGREGATION WITH INDEPENDENT WORKS - -A compilation of the Document or its derivatives with other separate -and independent documents or works, in or on a volume of a storage or -distribution medium, does not as a whole count as a Modified Version -of the Document, provided no compilation copyright is claimed for the -compilation. Such a compilation is called an "aggregate", and this -License does not apply to the other self-contained works thus compiled -with the Document, on account of their being thus compiled, if they -are not themselves derivative works of the Document. - -If the Cover Text requirement of section 3 is applicable to these -copies of the Document, then if the Document is less than one quarter -of the entire aggregate, the Document's Cover Texts may be placed on -covers that surround only the Document within the aggregate. -Otherwise they must appear on covers around the whole aggregate. - - -8. TRANSLATION - -Translation is considered a kind of modification, so you may -distribute translations of the Document under the terms of section 4. -Replacing Invariant Sections with translations requires special -permission from their copyright holders, but you may include -translations of some or all Invariant Sections in addition to the -original versions of these Invariant Sections. You may include a -translation of this License provided that you also include the -original English version of this License. In case of a disagreement -between the translation and the original English version of this -License, the original English version will prevail. - - -9. TERMINATION - -You may not copy, modify, sublicense, or distribute the Document except -as expressly provided for under this License. Any other attempt to -copy, modify, sublicense or distribute the Document is void, and will -automatically terminate your rights under this License. However, -parties who have received copies, or rights, from you under this -License will not have their licenses terminated so long as such -parties remain in full compliance. - - -10. FUTURE REVISIONS OF THIS LICENSE - -The Free Software Foundation may publish new, revised versions -of the GNU Free Documentation License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. See -http://www.gnu.org/copyleft/. - -Each version of the License is given a distinguishing version number. -If the Document specifies that a particular numbered version of this -License "or any later version" applies to it, you have the option of -following the terms and conditions either of that specified version or -of any later version that has been published (not as a draft) by the -Free Software Foundation. If the Document does not specify a version -number of this License, you may choose any version ever published (not -as a draft) by the Free Software Foundation. - - -ADDENDUM: How to use this License for your documents - -To use this License in a document you have written, include a copy of -the License in the document and put the following copyright and -license notices just after the title page: - - Copyright (c) YEAR YOUR NAME. - Permission is granted to copy, distribute and/or modify this document - under the terms of the GNU Free Documentation License, Version 1.1 - or any later version published by the Free Software Foundation; - with the Invariant Sections being LIST THEIR TITLES, with the - Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. - A copy of the license is included in the section entitled "GNU - Free Documentation License". - -If you have no Invariant Sections, write "with no Invariant Sections" -instead of saying which ones are invariant. If you have no -Front-Cover Texts, write "no Front-Cover Texts" instead of -"Front-Cover Texts being LIST"; likewise for Back-Cover Texts. - -If your document contains nontrivial examples of program code, we -recommend releasing these examples in parallel under your choice of -free software license, such as the GNU General Public License, -to permit their use in free software. +Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License. +Each time You Distribute or Publicly Perform an Adaptation, Licensor offers to the recipient a license to the original Work on the same terms and conditions as the license granted to You under this License. +If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. +No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent. +This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You. +The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law. diff --git a/COPYING-LIBGLABELS b/COPYING-LIBGLABELS deleted file mode 100644 index 161a3d1d..00000000 --- a/COPYING-LIBGLABELS +++ /dev/null @@ -1,482 +0,0 @@ - GNU LIBRARY GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1991 Free Software Foundation, Inc. - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - -[This is the first released version of the library GPL. It is - numbered 2 because it goes with version 2 of the ordinary GPL.] - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -Licenses are intended to guarantee your freedom to share and change -free software--to make sure the software is free for all its users. - - This license, the Library General Public License, applies to some -specially designated Free Software Foundation software, and to any -other libraries whose authors decide to use it. You can use it for -your libraries, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if -you distribute copies of the library, or if you modify it. - - For example, if you distribute copies of the library, whether gratis -or for a fee, you must give the recipients all the rights that we gave -you. You must make sure that they, too, receive or can get the source -code. If you link a program with the library, you must provide -complete object files to the recipients so that they can relink them -with the library, after making changes to the library and recompiling -it. And you must show them these terms so they know their rights. - - Our method of protecting your rights has two steps: (1) copyright -the library, and (2) offer you this license which gives you legal -permission to copy, distribute and/or modify the library. - - Also, for each distributor's protection, we want to make certain -that everyone understands that there is no warranty for this free -library. If the library is modified by someone else and passed on, we -want its recipients to know that what they have is not the original -version, so that any problems introduced by others will not reflect on -the original authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that companies distributing free -software will individually obtain patent licenses, thus in effect -transforming the program into proprietary software. To prevent this, -we have made it clear that any patent must be licensed for everyone's -free use or not licensed at all. - - Most GNU software, including some libraries, is covered by the ordinary -GNU General Public License, which was designed for utility programs. This -license, the GNU Library General Public License, applies to certain -designated libraries. This license is quite different from the ordinary -one; be sure to read it in full, and don't assume that anything in it is -the same as in the ordinary license. - - The reason we have a separate public license for some libraries is that -they blur the distinction we usually make between modifying or adding to a -program and simply using it. Linking a program with a library, without -changing the library, is in some sense simply using the library, and is -analogous to running a utility program or application program. However, in -a textual and legal sense, the linked executable is a combined work, a -derivative of the original library, and the ordinary General Public License -treats it as such. - - Because of this blurred distinction, using the ordinary General -Public License for libraries did not effectively promote software -sharing, because most developers did not use the libraries. We -concluded that weaker conditions might promote sharing better. - - However, unrestricted linking of non-free programs would deprive the -users of those programs of all benefit from the free status of the -libraries themselves. This Library General Public License is intended to -permit developers of non-free programs to use free libraries, while -preserving your freedom as a user of such programs to change the free -libraries that are incorporated in them. (We have not seen how to achieve -this as regards changes in header files, but we have achieved it as regards -changes in the actual functions of the Library.) The hope is that this -will lead to faster development of free libraries. - - The precise terms and conditions for copying, distribution and -modification follow. Pay close attention to the difference between a -"work based on the library" and a "work that uses the library". The -former contains code derived from the library, while the latter only -works together with the library. - - Note that it is possible for a library to be covered by the ordinary -General Public License rather than by this special one. - - GNU LIBRARY GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License Agreement applies to any software library which -contains a notice placed by the copyright holder or other authorized -party saying it may be distributed under the terms of this Library -General Public License (also called "this License"). Each licensee is -addressed as "you". - - A "library" means a collection of software functions and/or data -prepared so as to be conveniently linked with application programs -(which use some of those functions and data) to form executables. - - The "Library", below, refers to any such software library or work -which has been distributed under these terms. A "work based on the -Library" means either the Library or any derivative work under -copyright law: that is to say, a work containing the Library or a -portion of it, either verbatim or with modifications and/or translated -straightforwardly into another language. (Hereinafter, translation is -included without limitation in the term "modification".) - - "Source code" for a work means the preferred form of the work for -making modifications to it. For a library, complete source code means -all the source code for all modules it contains, plus any associated -interface definition files, plus the scripts used to control compilation -and installation of the library. - - Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running a program using the Library is not restricted, and output from -such a program is covered only if its contents constitute a work based -on the Library (independent of the use of the Library in a tool for -writing it). Whether that is true depends on what the Library does -and what the program that uses the Library does. - - 1. You may copy and distribute verbatim copies of the Library's -complete source code as you receive it, in any medium, provided that -you conspicuously and appropriately publish on each copy an -appropriate copyright notice and disclaimer of warranty; keep intact -all the notices that refer to this License and to the absence of any -warranty; and distribute a copy of this License along with the -Library. - - You may charge a fee for the physical act of transferring a copy, -and you may at your option offer warranty protection in exchange for a -fee. - - 2. You may modify your copy or copies of the Library or any portion -of it, thus forming a work based on the Library, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) The modified work must itself be a software library. - - b) You must cause the files modified to carry prominent notices - stating that you changed the files and the date of any change. - - c) You must cause the whole of the work to be licensed at no - charge to all third parties under the terms of this License. - - d) If a facility in the modified Library refers to a function or a - table of data to be supplied by an application program that uses - the facility, other than as an argument passed when the facility - is invoked, then you must make a good faith effort to ensure that, - in the event an application does not supply such function or - table, the facility still operates, and performs whatever part of - its purpose remains meaningful. - - (For example, a function in a library to compute square roots has - a purpose that is entirely well-defined independent of the - application. Therefore, Subsection 2d requires that any - application-supplied function or table used by this function must - be optional: if the application does not supply it, the square - root function must still compute square roots.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Library, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Library, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote -it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Library. - -In addition, mere aggregation of another work not based on the Library -with the Library (or with a work based on the Library) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may opt to apply the terms of the ordinary GNU General Public -License instead of this License to a given copy of the Library. To do -this, you must alter all the notices that refer to this License, so -that they refer to the ordinary GNU General Public License, version 2, -instead of to this License. (If a newer version than version 2 of the -ordinary GNU General Public License has appeared, then you can specify -that version instead if you wish.) Do not make any other change in -these notices. - - Once this change is made in a given copy, it is irreversible for -that copy, so the ordinary GNU General Public License applies to all -subsequent copies and derivative works made from that copy. - - This option is useful when you wish to copy part of the code of -the Library into a program that is not a library. - - 4. You may copy and distribute the Library (or a portion or -derivative of it, under Section 2) in object code or executable form -under the terms of Sections 1 and 2 above provided that you accompany -it with the complete corresponding machine-readable source code, which -must be distributed under the terms of Sections 1 and 2 above on a -medium customarily used for software interchange. - - If distribution of object code is made by offering access to copy -from a designated place, then offering equivalent access to copy the -source code from the same place satisfies the requirement to -distribute the source code, even though third parties are not -compelled to copy the source along with the object code. - - 5. A program that contains no derivative of any portion of the -Library, but is designed to work with the Library by being compiled or -linked with it, is called a "work that uses the Library". Such a -work, in isolation, is not a derivative work of the Library, and -therefore falls outside the scope of this License. - - However, linking a "work that uses the Library" with the Library -creates an executable that is a derivative of the Library (because it -contains portions of the Library), rather than a "work that uses the -library". The executable is therefore covered by this License. -Section 6 states terms for distribution of such executables. - - When a "work that uses the Library" uses material from a header file -that is part of the Library, the object code for the work may be a -derivative work of the Library even though the source code is not. -Whether this is true is especially significant if the work can be -linked without the Library, or if the work is itself a library. The -threshold for this to be true is not precisely defined by law. - - If such an object file uses only numerical parameters, data -structure layouts and accessors, and small macros and small inline -functions (ten lines or less in length), then the use of the object -file is unrestricted, regardless of whether it is legally a derivative -work. (Executables containing this object code plus portions of the -Library will still fall under Section 6.) - - Otherwise, if the work is a derivative of the Library, you may -distribute the object code for the work under the terms of Section 6. -Any executables containing that work also fall under Section 6, -whether or not they are linked directly with the Library itself. - - 6. As an exception to the Sections above, you may also compile or -link a "work that uses the Library" with the Library to produce a -work containing portions of the Library, and distribute that work -under terms of your choice, provided that the terms permit -modification of the work for the customer's own use and reverse -engineering for debugging such modifications. - - You must give prominent notice with each copy of the work that the -Library is used in it and that the Library and its use are covered by -this License. You must supply a copy of this License. If the work -during execution displays copyright notices, you must include the -copyright notice for the Library among them, as well as a reference -directing the user to the copy of this License. Also, you must do one -of these things: - - a) Accompany the work with the complete corresponding - machine-readable source code for the Library including whatever - changes were used in the work (which must be distributed under - Sections 1 and 2 above); and, if the work is an executable linked - with the Library, with the complete machine-readable "work that - uses the Library", as object code and/or source code, so that the - user can modify the Library and then relink to produce a modified - executable containing the modified Library. (It is understood - that the user who changes the contents of definitions files in the - Library will not necessarily be able to recompile the application - to use the modified definitions.) - - b) Accompany the work with a written offer, valid for at - least three years, to give the same user the materials - specified in Subsection 6a, above, for a charge no more - than the cost of performing this distribution. - - c) If distribution of the work is made by offering access to copy - from a designated place, offer equivalent access to copy the above - specified materials from the same place. - - d) Verify that the user has already received a copy of these - materials or that you have already sent this user a copy. - - For an executable, the required form of the "work that uses the -Library" must include any data and utility programs needed for -reproducing the executable from it. However, as a special exception, -the source code distributed need not include anything that is normally -distributed (in either source or binary form) with the major -components (compiler, kernel, and so on) of the operating system on -which the executable runs, unless that component itself accompanies -the executable. - - It may happen that this requirement contradicts the license -restrictions of other proprietary libraries that do not normally -accompany the operating system. Such a contradiction means you cannot -use both them and the Library together in an executable that you -distribute. - - 7. You may place library facilities that are a work based on the -Library side-by-side in a single library together with other library -facilities not covered by this License, and distribute such a combined -library, provided that the separate distribution of the work based on -the Library and of the other library facilities is otherwise -permitted, and provided that you do these two things: - - a) Accompany the combined library with a copy of the same work - based on the Library, uncombined with any other library - facilities. This must be distributed under the terms of the - Sections above. - - b) Give prominent notice with the combined library of the fact - that part of it is a work based on the Library, and explaining - where to find the accompanying uncombined form of the same work. - - 8. You may not copy, modify, sublicense, link with, or distribute -the Library except as expressly provided under this License. Any -attempt otherwise to copy, modify, sublicense, link with, or -distribute the Library is void, and will automatically terminate your -rights under this License. However, parties who have received copies, -or rights, from you under this License will not have their licenses -terminated so long as such parties remain in full compliance. - - 9. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Library or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Library (or any work based on the -Library), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Library or works based on it. - - 10. Each time you redistribute the Library (or any work based on the -Library), the recipient automatically receives a license from the -original licensor to copy, distribute, link with or modify the Library -subject to these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 11. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Library at all. For example, if a patent -license would not permit royalty-free redistribution of the Library by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Library. - -If any portion of this section is held invalid or unenforceable under any -particular circumstance, the balance of the section is intended to apply, -and the section as a whole is intended to apply in other circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 12. If the distribution and/or use of the Library is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Library under this License may add -an explicit geographical distribution limitation excluding those countries, -so that distribution is permitted only in or among countries not thus -excluded. In such case, this License incorporates the limitation as if -written in the body of this License. - - 13. The Free Software Foundation may publish revised and/or new -versions of the Library General Public License from time to time. -Such new versions will be similar in spirit to the present version, -but may differ in detail to address new problems or concerns. - -Each version is given a distinguishing version number. If the Library -specifies a version number of this License which applies to it and -"any later version", you have the option of following the terms and -conditions either of that version or of any later version published by -the Free Software Foundation. If the Library does not specify a -license version number, you may choose any version ever published by -the Free Software Foundation. - - 14. If you wish to incorporate parts of the Library into other free -programs whose distribution conditions are incompatible with these, -write to the author to ask for permission. For software which is -copyrighted by the Free Software Foundation, write to the Free -Software Foundation; we sometimes make exceptions for this. Our -decision will be guided by the two goals of preserving the free status -of all derivatives of our free software and of promoting the sharing -and reuse of software generally. - - NO WARRANTY - - 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO -WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. -EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR -OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY -KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE -LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME -THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN -WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY -AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU -FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR -CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE -LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING -RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A -FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF -SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGES. - - END OF TERMS AND CONDITIONS - - Appendix: How to Apply These Terms to Your New Libraries - - If you develop a new library, and you want it to be of the greatest -possible use to the public, we recommend making it free software that -everyone can redistribute and change. You can do so by permitting -redistribution under these terms (or, alternatively, under the terms of the -ordinary General Public License). - - To apply these terms, attach the following notices to the library. It is -safest to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least the -"copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with this library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, - MA 02111-1307, USA - -Also add information on how to contact you by electronic and paper mail. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the library, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the - library `Frob' (a library for tweaking knobs) written by James Random Hacker. - - , 1 April 1990 - Ty Coon, President of Vice - -That's all there is to it! diff --git a/COPYING-LIBS b/COPYING-LIBS new file mode 100644 index 00000000..cca7fc27 --- /dev/null +++ b/COPYING-LIBS @@ -0,0 +1,165 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/COPYING-TEMPLATES b/COPYING-TEMPLATES new file mode 100644 index 00000000..c25b8263 --- /dev/null +++ b/COPYING-TEMPLATES @@ -0,0 +1,25 @@ +This license applies to the glabels template database, located +in the "templates" subdirectory of the glabels distribution. + +Copyright (c) 2001-2009 Jim Evins + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation +files (the "Software"), to deal in the Software without +restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. diff --git a/COPYING.README_FIRST b/COPYING.README_FIRST index 2d76f43e..755c63a3 100644 --- a/COPYING.README_FIRST +++ b/COPYING.README_FIRST @@ -1,28 +1,38 @@ - The gLabels official distribution is an aggregate of several components. - Each component is licensed as follows +The gLabels official distribution is an aggregate of several components. +Each component is licensed as follows + + +GLABELS: The gLabels application core, and other portions of the official gLabels distribution not explicitly licensed otherwise, are licensed under - the GNU GENERAL PUBLIC LICENSE (GPL); either version 2 of the License, or + the GNU GENERAL PUBLIC LICENSE (GPL); either version 3 of the License, or (at your option) any later version -- see the 'COPYING' file in this directory for details. - The libglabels library, located in the "libglabels/" subdirectory, is - licensed under the GNU LESSER GENERAL PUBLIC LICENSE (LGPL); either - version 2 of the License, or (at your option) any later version -- see - the 'COPYING-LIBGLABELS' in this directory for details. - The gLabels and libglabels documentation, located in the "docs/" and "help/" - subdirectories, is licensed under the GNU FREE DOCUMENTATION LICENSE (GFDL) - with no Invariant Sections; either version 1.1 or (at your option) any - later version -- see 'COPYING-DOCS' in this directory for details. +LIBGLABELS & LIBGLBARCODE: + + The libglabels and libglbarcode libraries, located in the "libglabels/" + and "libglbarcode/" subdirectories respecively, are licensed under the + GNU LESSER GENERAL PUBLIC LICENSE (LGPL); either version 3 of the License, + or (at your option) any later version -- see the 'COPYING-LIBS' in this + directory for details. + + +DOCUMENTATION: - The "barcode-0.98/" and "iec16022-0.2.1/" subdirectories contain 3rd party - libraries, each licensed under the GNU GENERAL PUBLIC LICENSE (GPL); either - version 2 of the License, or (at your option) any later version -- see the - 'LICENSE' or 'COPYING' file in each of these directories for details. + The gLabels, libglabels, and libglbarcode documentation, located in the + "docs/" and "help/" subdirectories, is licensed under the CreativeCommons + Attribution-Share Alike 3.0 Unported license. See 'COPYING-DOCS' in this + directory for details, or visit 'http://creativecommons.org/licenses/by-sa/3.0/'. - The XML files in the "data/templates/" subdirectory constitute the glabels - label database. This database is a simple collection of facts so it is - therefore considered to be public domain and can be used for any purpose. +TEMPLATE DATABASE: + + The XML files in the "templates/" subdirectory constitute the glabels + label database. No copyright is claimed on the facts contained within + the database and can be used for any purpose. However, to clear up any + ambiguity, the DTD file that defines the format of these files is + licensed using the MIT/X license, see 'COPYING-TEMPLATES' in this + directory for details. diff --git a/ChangeLog b/ChangeLog index 6aff45b1..a78e471b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,595 +1,609 @@ -commit 735fbf968d761acb31bee98121686f02cdeab17e +commit d01a448a3e9c0719a2adfb6d51591e78148cfee3 Author: Jim Evins -Date: 2010-04-19 +Date: 2011-05-16 - Preparation for 2.2.8 + Even more preparation for 3.0.0 release. + +M README +M configure.ac + +commit 12e55e8a835df758b00cdf65532978b6bd508ee7 +Author: Jim Evins +Date: 2011-05-16 + + More preparation for 3.0 release M NEWS -M configure.in +M libglabels/lgl-xml.h +M templates/Makefile.am +M templates/ascom-iso-templates.xml +M templates/databecker-iso-templates.xml +M templates/dataline-iso-templates.xml +M templates/geha-iso-templates.xml +R099 templates/glabels-2.3.dtd templates/glabels-3.0.dtd +M templates/hama-iso-templates.xml +M templates/jac-iso-templates.xml +M templates/misc-iso-templates.xml +M templates/pearl-iso-templates.xml + +commit 4c07f4f573f171a64bbe7119d3c97a043123f8b6 +Author: Jim Evins +Date: 2011-05-15 -commit e68a37d0bec952928393abea94326a7ec77b9e38 -Author: Jorge González -Date: 2010-04-11 + Preparation for 3.0 release. + +D MESSAGE-OF-DOOM +M Makefile.am +M configure.ac + +commit 29073d4b56183bcb43dc859d17e7c079482e5a63 +Author: Claude Paroz +Date: 2011-05-05 + + Updated French translation + +M po/fr.po + +commit 6a47b5cdab899590651b0abda7ad34e9f3bcd3e5 +Author: Daniel Mustieles +Date: 2011-04-29 Updated Spanish translation M po/es.po -commit a17439be4a34d934f0bf4a19dc9bfb2967343b32 -Author: Jim Evins -Date: 2010-04-11 +commit ff1569ac39ceb866ead6394033376eff6d2bf940 +Author: Takayuki KUSANO +Date: 2011-04-25 - Remove wasted space in "new label dialog" + Updated Japanese translation - Modified the layout spacing of widgets in the "new label dialog." - This makes - the dialog a little more compact and hopefully fits better on - small screens - such as netbooks. +M po/ja.po -M data/glade/new-label-dialog.glade -M data/glade/wdgt-media-select.glade -M data/glade/wdgt-rotate-label.glade -M src/new-label-dialog.c +commit 186d2516639549c56cb1f513932f23e08eb769bf +Author: Marek Černocký +Date: 2011-04-22 -commit 333e792ab9daa4cb6fba8f19d360ca27d69ebff0 -Author: Jim Evins -Date: 2010-04-11 + Updated Czech screenshot - Add place-holder field to all empty private structures +M help/cs/figures/merge-ex2-1.png - Fixes glabels bug #2981895. This is a work-around for glib bug - #615379. For - objects with no private data, add a place-holder field so that - the private - structure is not of zero length which causes g_new0() to crash in glib - 2.24.0. +commit 63747f9f9684a54cdff32474b8a228d3ab9d1d71 +Author: Marek Černocký +Date: 2011-04-22 -M src/view-barcode.c -M src/view-box.c -M src/view-ellipse.c -M src/view-image.c -M src/view-line.c -M src/view-text.c + Updated Czech screenshot -commit a3275186debbf0f4addf574bf02b789bcf3776ba -Author: Jorge González -Date: 2010-04-07 +M help/cs/figures/merge-ex1-1.png - Updated Spanish translation +commit 3307da9d369704bae244d9501975b6f90caec6c9 +Author: Marek Černocký +Date: 2011-04-22 -M po/es.po + Updated Czech screenshot -commit be60f3c5d947d9ae66ec16f5b61045deb76d1b59 -Author: Filipe Roque -Date: 2010-04-04 +M help/cs/figures/merge-ex3-1.png - Updated Portuguese translation +commit 76ac17d3725ac4ed80e76b9c1e199ac5af80f146 +Author: Marek Černocký +Date: 2011-04-22 -M po/LINGUAS -A po/pt.po + Updated Czech screenshot -commit a26ba4f2eb55cc02f08c1b97fd4c001d3a550fd2 -Author: Jim Evins -Date: 2010-04-03 +M help/cs/figures/merge-ex3-1.png - Added Avery DL33 and look-alike templates. +commit 1e5f1c5c5ecb5733dbfa29a9c81c68613c753c5a +Author: Marek Černocký +Date: 2011-04-22 - DL33 templates provided by Ian Shuttleworth. + Czech screenshot -M AUTHORS -M data/templates/avery-iso-templates.xml -M data/templates/misc-iso-templates.xml +A help/cs/figures/merge-ex3-1.png -commit 675d5a6a13117ca85ebdc292dd931efece55d406 +commit b5f72ac136910eaa830b777a126c097595183df2 Author: Marek Černocký -Date: 2010-03-28 +Date: 2011-04-22 - Update Czech translation + Updated Czech translation M po/cs.po -commit ad36a71e24d395d641bf495dda96b8dea994d2df -Author: Andrej ŽnidarÅ¡ič -Date: 2010-03-28 +commit 43b1ee240a0eefdc0c30391d21bf0bf15fca0891 +Author: Marek Černocký +Date: 2011-04-22 - Updated Slovenian translation + Updated Czech screenshot -M po/sl.po +M help/cs/figures/object-editor-sidebar.png -commit 67becb0c44760f68ad5c014866a53707e8ef4630 -Author: Jorge González -Date: 2010-03-21 +commit 986b010c2b29f4937ed0fa5bc4eb61704c8ac9e1 +Author: Marek Černocký +Date: 2011-04-22 - Updated Spanish translation + Updated Czech screenshot -M po/es.po +M help/cs/figures/object-editor-sidebar.png -commit 1dd629c4b88056fd0ae51ce9c1b2b0921286fb98 -Author: Mario Blättermann -Date: 2010-03-20 +commit 677a726bcd9c8bcd55e573c35ba288c63c521598 +Author: Marek Černocký +Date: 2011-04-22 - Updated German translation + Updated Czech screenshot -M po/de.po +M help/cs/figures/skip-fields-screenshot.png -commit bf78adcbbfd7e8fa51308e0fd64c22d6b07754bc -Author: Bruno Brouard -Date: 2010-03-17 +commit 1e9b39dad778cd4ebfac00372bd54f46e973ec09 +Author: Marek Černocký +Date: 2011-04-22 - Updated French translation + Updated Czech screenshot -M po/fr.po +M help/cs/figures/skip-fields-screenshot.png -commit 6414ee7cd3975db6e7a7fe65b51ec7918ddcd7d6 -Author: Jorge González -Date: 2010-03-17 +commit 15b8149e3d0c08e32554c2fe20a78eb53774cde6 +Author: Marek Černocký +Date: 2011-04-22 - Updated Spanish translation + Updated Czech screenshot -M po/es.po +M help/cs/figures/print-merge.png -commit 21ce5c207013d6ee8f28aa02b4db5894422b8942 -Author: Jim Evins -Date: 2010-03-16 +commit 6ca652b51d095de7e0eaa92bfeee0f230c3d1dca +Author: Marek Černocký +Date: 2011-04-22 - Catching up on template submissions. + Updated Czech screenshot -M AUTHORS -M data/templates/misc-iso-templates.xml -M data/templates/misc-us-templates.xml -M data/templates/pearl-templates.xml +M help/cs/figures/print-copies.png -commit 1a7125903c076189372671b3b1c699bd1a4322c6 -Author: Kjartan Maraas -Date: 2010-03-15 +commit 91557a5e46e0ce14b5365212d9280d9e258141b5 +Author: Marek Černocký +Date: 2011-04-22 - Add Norwegian language entry. + Unused Czech screenshot -M po/LINGUAS +D help/cs/figures/main-window-empty.png -commit 501e409e1565d6aaf75fd6125eca323b4fe081f0 -Author: Kjartan Maraas -Date: 2010-03-15 +commit 47891355ecebefb5ae826a2a3f0dfba3a1386e63 +Author: Marek Černocký +Date: 2011-04-22 - Added Norwegian bokmÃ¥l translation + Czech screenshot -A po/nb.po +A help/cs/figures/skip-fields-screenshot.png -commit 99ac6500e2ce897708ac228b4684d3608576b931 -Author: Jorge González -Date: 2010-03-07 +commit 500279e89312f9ae2090a89a3feb24fc35b84c10 +Author: Marek Černocký +Date: 2011-04-21 - Updated Spanish translation + Czech screenshot -M po/es.po +A help/cs/figures/skip-fields-output.png -commit c53c6d83333de1ab2d77f1e81e1d151509f7a1d4 -Author: Takeshi AIHANA -Date: 2010-03-06 +commit 22acea090ca313b616ebb0c90fcf5846d3885447 +Author: Marek Černocký +Date: 2011-04-21 - Updated Japanese translation + Updated Czech translation -M po/ja.po +M help/cs/cs.po -commit c142345372faa68185cd5bbeba4e6192d72599ce -Author: Jim Evins -Date: 2010-03-02 +commit e17dffc422199abd882d4448a4d8fe5672989636 +Author: Marek Černocký +Date: 2011-04-19 - Preparation for 2.2.7 + Updated Czech translation - Updated NEWS. Updated version information in configure.in. - Added pearl - templates to makefile. +M help/cs/cs.po -M NEWS -M configure.in -M data/templates/Makefile.am -D help/glabels-help.pot +commit bf73db190505f297c640bb76ccdde3895f613681 +Author: Marek Černocký +Date: 2011-04-18 + + Updated Czech translation + +M po/cs.po -commit c866fbe3c5dd5cdea13efad8107a7d1a82b5a172 +commit edc606015a0252f66a57c332dd6524c48e2653d4 Author: Mario Blättermann -Date: 2010-03-02 +Date: 2011-04-17 - Fixed some bugs in template data + [l10n] Updated German translation -M data/templates/pearl-templates.xml +M po/de.po -commit ca13ecdc3455f0cca218671dfc9c0a31500a264a -Author: Andrej ŽnidarÅ¡ič -Date: 2010-02-28 +commit ec58a44af91d79d9be9fe63f7814327602ba5cd7 +Author: Marek Černocký +Date: 2011-04-17 - Updated Slovenian translation + Updated Czech translation -M po/sl.po +M po/cs.po -commit 7dbee475634553b69ce7dd934608c7a35da59aa2 -Author: Mario Blättermann -Date: 2010-02-27 +commit 6141161e4a031f6b15de83379f6f690096eaa524 +Author: Jim Evins +Date: 2011-04-16 - Added Staples STAP14 Mailing Labels + Reorganization of object alignment menus -M data/templates/misc-iso-templates.xml + Object alignment menus have been reorganized and menu items renamed to + remove any ambiguity as to what horizontal versus vertical alignment + mean. The new labels and organization attempt to be consistent with + other graphic applications. -commit e3cb29b2d6c93547112146696b8adb0c35387b6e -Author: Joe Hansen -Date: 2010-02-23 +M src/ui.c - Updated Danish translation +commit 51b590ea08683c08ab39366970c140b1fc6f5eef +Author: Takayoshi OKANO +Date: 2011-04-14 -A po/da.po + Updated Japanese translation -commit de137c4bcf7eb19551ce1478f9929891781ef86f -Author: Kenneth Nielsen -Date: 2010-02-23 +M po/ja.po - Added da to list of languages +commit 64d6190bf896630e8c1cafb61bd6132b3e453592 +Author: Daniel Mustieles +Date: 2011-04-03 -M po/LINGUAS + Updated Spanish translation -commit aa892ac85b64ba0f069cc8d0e178faef4eb3de05 -Author: Marek Černocký -Date: 2010-02-21 +M help/es/es.po + +commit 68d10df024493df3045b4a5ebbd88f76ddbb6f45 +Author: Mario Blättermann +Date: 2011-03-03 - Update Czech translation + Some corrections to the newest Kores template -M help/cs/cs.po +M templates/misc-iso-templates.xml +M templates/vendors.xml -commit 4cf933c8d8e1f74e61fac64b3cfd954c51029b4b -Author: Jorge González -Date: 2010-02-19 +commit ae2c5aa93dcdc9f93de163c6d598373062b15669 +Author: Jean-Philippe Guérard +Date: 2011-03-03 - Added initial Spanish translation + Added Korres template -A help/es/es.po +M AUTHORS +M templates/misc-iso-templates.xml -commit 31cb90be5f9219e04e06f33c72e4269c03154873 -Author: Jorge González -Date: 2010-02-19 +commit 67785b3fe46e285c80b5c312aedcda7daff29192 +Author: Daniel Mustieles +Date: 2011-02-27 - Added es to DOC_LINGUAS + Updated Spanish translation -M help/Makefile.am +M help/es/es.po -commit ca216db75311bda7b80e08409b33212729d8a8ff -Author: Petr Kovar -Date: 2010-02-18 +commit 66d2aa8ed705bbb573571e8ea16328cfbae56731 +Author: Jim Evins +Date: 2011-02-26 - Fix Czech translation by Marek Cernocky + Don't require windowing system for glabels-batch. -M po/cs.po + Use gtk_init_check() instead of gtk_init() to initialize GTK. -commit 59ce2a62e8ff923d6348f84b9e3e0cff59b10e87 -Author: Petr Kovar -Date: 2010-02-18 +M src/glabels-batch.c - Add Czech help translation by Marek Cernocky +commit 7e55002270dda25fc70c379be19396f449d5aa89 +Author: Daniel Mustieles +Date: 2011-02-22 -M help/Makefile.am -A help/cs/cs.po -A help/cs/figures/main-window-empty.png -A help/cs/figures/merge-ex1-1.png -A help/cs/figures/merge-ex1-2.png -A help/cs/figures/merge-ex1-3.png -A help/cs/figures/merge-ex1-4.png -A help/cs/figures/merge-ex2-1.png -A help/cs/figures/merge-ex2-2.png -A help/cs/figures/merge-ex2-3.png -A help/cs/figures/merge-ex2-4.png -A help/cs/figures/object-editor-sidebar.png -A help/cs/figures/print-copies.png -A help/cs/figures/print-merge.png + Updated Spanish translation + +M help/es/es.po -commit f428dd10c86b1102e96fe76ff0c62d209d6c2923 +commit bd3208b5cac24a8d6f231a72ed45bb0e73d1bb6e Author: Jim Evins -Date: 2010-02-15 +Date: 2011-02-21 - Create a default frame if missing from template file + Modified CSV parser. - When parsing a template node, if there is no recognized frame node - (e.g. - Label-rectangle), a default full-page frame with a 1x1 layout - is created. - This prevents potential crashes if sharing a user '.glabels' directory - with future versions of glabels with new frame types, or in the - case of - typos for hand generated templates. + Modified CSV parser to more closely follow the format outlined in + RFC 4180. + The primary difference is that quoted text cannot be embedded in + the middle + of a field. I.e. the quotes (") should envelope the entire field. + Legacy + "escape" rules still apply. -M libglabels/xml-template.c +M src/merge-text.c -commit 8ce4aff951c126566870d3417aeadcf385ca5886 -Author: Mario Blättermann -Date: 2010-02-13 +commit 61a7ec1126f33c26dcb57fb3423df70df32b8e71 +Author: Daniel Mustieles +Date: 2011-02-20 - Added URL for Geha Z53 again + Updated Spanish translation -M data/templates/misc-iso-templates.xml +M help/es/es.po -commit c990e078f09bfa3bcee172459e883c1231b458b6 -Author: Mario Blättermann -Date: 2010-02-13 +commit 92192b1e5c37f4a0d2bdf363d80d0c380c4b56a4 +Author: Daniel Mustieles +Date: 2011-02-20 - Removed URL from template due to gettext errors + Updated Spanish translation -M data/templates/misc-iso-templates.xml +M po/es.po -commit 610cdbbecd84ed54b2aa082c2781be2f0aae3289 +commit 7dd57e55560e8132dd9d251c640061bbfc235c32 Author: Mario Blättermann -Date: 2010-02-13 +Date: 2011-02-14 - Added PEARL templates + Added Avery template M AUTHORS -A data/templates/pearl-templates.xml +M templates/avery-iso-templates.xml -commit 921c7bc0ab840288787d50ffdde15065f5a610ee +commit d1ccf52d5d0ebdd533ad0692e5e375ee90444b63 Author: Mario Blättermann -Date: 2010-02-13 +Date: 2011-02-12 - Added Geha Z53 template + Added Merax template M AUTHORS -M data/templates/misc-iso-templates.xml - -commit 548abc9542516724ee8029c7186280cb171b085c -Author: Petr Kovar -Date: 2010-02-11 +M templates/misc-other-templates.xml +M templates/vendors.xml - Update Czech translation by Marek Cernocky +commit f9dd2935eefff13bbdcff719801feca62aa8c95a +Author: Daniel Mustieles +Date: 2011-02-07 -M po/cs.po + Updated Spanish translation -commit a309766e4e90d164e487ebc1978f92fbedbb536c -Author: Mario Blättermann -Date: 2010-02-09 +M help/es/es.po - Updated German translation +commit 240cc08cb6b9a9350ea358fb4828f32a5001c16a +Author: Daniel Mustieles +Date: 2011-02-06 -M po/de.po + Updated Spanish translation -commit 6ac473f54bf654ebed0e3eaf94769130b74edd1a -Author: Mario Blättermann -Date: 2010-02-09 +M po/es.po - Updated German translation +commit d0ec06d8c6f4ec8c3fa26fa946991aa5e904d162 +Author: Daniel Mustieles +Date: 2011-02-05 -M po/de.po + Updated Spanish translation -commit 01b54d65f1bc32538314f01cbe89d89b2d0baa77 -Author: Jim Evins -Date: 2010-02-06 +M help/es/es.po - Relax libxml limits when parsing label files +commit 8481ea582aa78a7973d8199062cb3737ad75b07e +Author: Mario Blättermann +Date: 2011-02-03 - Glabels bug #2940758. Back port from master: Use XML_PARSE_HUGE - parser option - so that we can handle large text nodes, such as encoded images. This - modification is only applied if libxml 2.7+ is available, as to - not introduce - new dependencies. + [l10n] Added nl to DOC_LINGUAS -M configure.in -M src/Makefile.am -M src/xml-label.c +M help/Makefile.am -commit 78329ea6424b52a3e8236b69afebc2eddc6386db +commit f8d673a02c64aaffd27304d7b3a50cc26bf55754 Author: Mario Blättermann -Date: 2010-01-16 +Date: 2011-02-03 - Updated German doc translation + [l10n] Added initial Dutch doc translation to prevent translating + actually untranslatable strings -M help/de/de.po +A help/nl/nl.po -commit 8bc29ac0910c02eba94f9ccd5042c07cb415b7f3 -Author: Petr Kovar -Date: 2010-01-13 +commit 3840d11039df4c6834a4675d7e0a5b6a47ec5d7e +Author: Mario Blättermann +Date: 2011-02-03 - Updated Czech translation by Marek Cernocky + [l10n] Updated Dutch translation -M po/cs.po +M po/nl.po -commit e5ecd2b4e597bf2e509d4c285f59420322dad390 -Author: Claude Paroz -Date: 2010-01-09 +commit 3943dd1240c9a6ef449fccfd52e7302baf9c5ae4 +Author: Bruno Brouard +Date: 2011-02-02 - Add fr to DOC_LINGUAS variable + Updated French doc translation -M help/Makefile.am +M help/fr/fr.po -commit a4758401a939c804a3a026f5c5bcf2deb1f8f7c1 -Author: Claude Paroz -Date: 2010-01-09 +commit 124cff7d1682058043276ce0ee4845010e25b43a +Author: Bruno Brouard +Date: 2011-02-02 + + Updated French Doc Translation + + Gérard Baylard and Bruno Brouard + +D help/fr/figures/main-window-empty.png +D help/fr/figures/merge-ex1-1.png +D help/fr/figures/merge-ex1-2.png +D help/fr/figures/merge-ex1-3.png +D help/fr/figures/merge-ex1-4.png +D help/fr/figures/merge-ex2-1.png +D help/fr/figures/merge-ex2-2.png +D help/fr/figures/merge-ex2-3.png +D help/fr/figures/merge-ex2-4.png +D help/fr/figures/object-editor-sidebar.png +D help/fr/figures/print-copies.png +D help/fr/figures/print-merge.png +M help/fr/fr.po + +commit 0bd38baa90a0f44b58d90bb4c02abd73b84f0f51 +Author: Mario Blättermann +Date: 2011-01-29 - Add French translation of manual + [l10n] Updated German translation - Contributed by Alain Lojewski and Claude Paroz +M po/de.po -A help/fr/figures/main-window-empty.png -A help/fr/figures/merge-ex1-1.png -A help/fr/figures/merge-ex1-2.png -A help/fr/figures/merge-ex1-3.png -A help/fr/figures/merge-ex1-4.png -A help/fr/figures/merge-ex2-1.png -A help/fr/figures/merge-ex2-2.png -A help/fr/figures/merge-ex2-3.png -A help/fr/figures/merge-ex2-4.png -A help/fr/figures/object-editor-sidebar.png -A help/fr/figures/print-copies.png -A help/fr/figures/print-merge.png -A help/fr/fr.po +commit ddbff2b17acd43e4e9c67a40158c4d884a8d611e +Author: Marek Černocký +Date: 2011-01-29 -commit 908f97ce93793c1ad05e15b1ad9c788dab587a17 -Author: Matej Urbančič -Date: 2009-12-17 + Updated Czech translation - Added sl for Slovenian translation +M po/cs.po -M po/LINGUAS +commit 94e5539014882d3974c84eef6b2fa13acf60dbe1 +Author: Daniel Mustieles +Date: 2011-01-27 -commit b0e6dea0d9c9b2ca0e1e1ba0650cbe990bce1c29 -Author: Andrej ŽnidarÅ¡ič -Date: 2009-12-17 + Updated Spanish translation - Updated Slovenian translation +M help/es/es.po -A po/sl.po +commit 63cb045c9cc3abbe2af6a62166b891a417ce17f8 +Author: Daniel Mustieles +Date: 2011-01-27 -commit 8f4713e9aec5e19ad382d6493119f6cea812ced4 -Author: Jim Evins -Date: 2009-11-18 + Updated Spanish translation - Fixed focus behavior of view canvas +M po/es.po - Fixes bug #2899305. Don't just automatically steal focus when - entering - canvas. Require a click to get focus back. +commit c839157ab3638b4935a8a4021855515d83b07f2b +Author: Mario Blättermann +Date: 2011-01-26 -M src/view.c + Added acknowledgement for template submission -commit 1f24fba0eafc5f5e13c4e27cc315ac13cd450bbc -Author: Jim Evins -Date: 2009-11-10 +M AUTHORS - Preparation for 2.2.6 +commit 714ed64ebe1bef13073168e78b9a9a86bb2588dc +Author: Mario Blättermann +Date: 2011-01-26 - Updated NEWS and configure.in. + Added Brother template, changed obsolete part numbers -M NEWS -M configure.in +M templates/brother-other-templates.xml -commit 6f8023f3f90e360ed1911aaf95ab07dd9d1fd00d -Author: Jim Evins -Date: 2009-11-05 +commit cb3d9f9aa69b717f6f6d2870b2eb7aa9bc37215a +Author: Daniel Mustieles +Date: 2011-01-19 - Automatically generate ChangeLog when building dist + Updated Spanish translation - Automatically generate ChangeLog when building distributions. - Archived - pre 2.2 ChangeLog entries. +M help/es/es.po -M .gitignore -M ChangeLog -C090 ChangeLog ChangeLog.pre-2.2 -M Makefile.am +commit 6c28e77fb42ad477370cdd4e104c2a05981951f3 +Author: Daniel Mustieles +Date: 2011-01-16 -commit 9542ced852f02b4ded00a923ea99bbfc5262234b -Author: Jim Evins -Date: 2009-11-05 + Updated Spanish translation - Caught up on user submitted templates. +M po/es.po - Added user submitted templates and acknowledgements. +commit ebe69bb2755eef349159e9ccfbdc34c1906038e1 +Author: Daniel Mustieles +Date: 2011-01-13 -M AUTHORS -M data/templates/misc-iso-templates.xml -M data/templates/zweckform-iso-templates.xml + Updated Spanish translation -commit a2ad57fa1a0c1e826ff1b758a3baeed263d4b1a8 -Author: Jim Evins -Date: 2009-11-04 +M help/es/es.po - Fixed merge inconsistencies and crash +commit 69517f49cd41645693dc186f791a7a32203d92ba +Author: Wouter Bolsterlee +Date: 2011-01-08 - merge.c: - Fixed crash when trying to print when a "key" radio has been - selected - but no key has been selected yet. + Added Dutch translation by Mario Blättermann and Hannie Dumoleyn - object-editor-*-page.c: - Fixed potential inconsistencies with "key" radio buttons when - a merge - source has not been selected but the field indicates that it is - using a - merge key. This can happen when opening a glabels file that - has a merg - type not supported by the current instance of glabels. +M po/LINGUAS +A po/nl.po - xml-label.c: - Also when parsing a merge field that has a merge type not - supported, - don't continue parsing it. +commit 9b82ba17efaef7634a4be9fef0dd90313ed8e3b1 +Author: Daniel Mustieles +Date: 2011-01-06 -M src/merge.c -M src/object-editor-bc-page.c -M src/object-editor-data-page.c -M src/object-editor-fill-page.c -M src/object-editor-image-page.c -M src/object-editor-line-page.c -M src/object-editor-shadow-page.c -M src/object-editor-text-page.c -M src/xml-label.c + Updated Spanish translation -commit 4cbc3bf59c5b3f2fe8310a87a19c86f414e2e0ae -Author: Mario Blättermann -Date: 2009-11-04 +M help/es/es.po - Updated German translation +commit 87b856938c42a25544aa0d7fcc93ad34f008e935 +Author: Daniel Mustieles +Date: 2011-01-03 -M po/de.po + Updated Spanish translation -commit 50e804b0aae8214a4354d084e36be88eace03f67 -Author: Mario Blättermann -Date: 2009-11-04 +M help/es/es.po - Updated German translation +commit b4de56df5fa411a7e79333ab4df8e3f2422be099 +Author: Jim Evins +Date: 2011-01-03 -M po/de.po + More preparation for 2.3.1 + +M NEWS + +commit bb1bd1a68c5d188ccad3c0fd49a65b5d57566e96 +Author: Claude Paroz +Date: 2011-01-02 + + Updated French translation -commit 499d70c757fe12219337e2ec9da267b723a1004c +M po/fr.po + +commit 4d5ca3f941c77b9a2a8829dd6748e3a063072317 +Author: Joe Hansen +Date: 2011-01-02 + + Updated Danish translation + +M po/da.po + +commit 40710db147d8b45e7aea4fe050bf0fec909e80ba Author: Mario Blättermann -Date: 2009-11-04 +Date: 2011-01-02 - Updated German doc translation + [l10n] Updated German doc translation M help/de/de.po -commit 7e1940ad444877f6fe17cff8befd469e4ee22ee8 -Author: Mario Blättermann -Date: 2009-11-04 +commit 8fe15148b83c12d1f67631198edc1d83393f1b99 +Author: Jim Evins +Date: 2011-01-01 - Forgotten to add before + Preparation for 2.3.1 -A help/de/figures/merge-ex3-1.png -A help/de/figures/merge-ex3-2.png +M configure.ac -commit f01319ec821d3a3a0463010ca001eaf883cfd98a -Author: Mario Blättermann -Date: 2009-11-04 +commit 378e18ebc7c08075fa0d66abc136335d9d1ab4dd +Author: Daniel Mustieles +Date: 2010-12-29 - New screenshots + Updated Spanish translation -M help/C/figures/merge-ex3-1.png -M help/C/figures/merge-ex3-2.png +M help/es/es.po -commit 4b24ee895b75d59225bedee6ee6a1140a54eebcb -Author: Mario Blättermann -Date: 2009-11-04 +commit 677ce8eedc473d132ca15fef0e92d8d7dcfe1003 +Author: Jim Evins +Date: 2010-12-27 - Updated German doc translation + Some cleanup of built-in barcode code. -M po/de.po + - Validate data rather than filtering it into something canonical + - Reconcile style and design patterns between all built-in backends -commit b9b0ec1e9eaedcf92ac4a2600d2e09a3a9f466c8 -Author: Daniel Nylander -Date: 2009-11-04 +M libglbarcode/lgl-barcode-code39.c +M libglbarcode/lgl-barcode-onecode.c +M libglbarcode/lgl-barcode-postnet.c - Updated Swedish translation +commit e23b1e0e460896905eed8c4c8c1ce7dc4a06b6d6 +Author: Petr Kovar +Date: 2010-12-27 -M po/sv.po + Update Czech translation by Marek Cernocky + + Reviewed by Petr Kovar. + +M po/cs.po -commit d0777b14a00530d90dab29e85aabad7b6ff57b67 +commit 73897c1e98299fff6a935757ede72b32cb838637 Author: Jim Evins -Date: 2009-11-03 +Date: 2010-12-26 - Updated documentation for 2.2.6 + Updated help screenshots. - - Added an example for doing document merge from evolution data - server. (Mario Blättermann) - - Updated most screenshots to 2.2.6 with Clearlooks theme. - - Minor corrections + Updated screenshots in help to be consistent with current development + version of glabels. Updated help text to be consistent with the new + screenshots. -A .gitignore -M help/C/figures/main-window-empty.png +M help/C/editprop.page +M help/C/figures/introduction-glabels-main-window.png +D help/C/figures/main-window-empty.png M help/C/figures/merge-ex1-1.png M help/C/figures/merge-ex1-2.png M help/C/figures/merge-ex1-3.png @@ -600,211 +614,6110 @@ M help/C/figures/merge-ex2-3.png M help/C/figures/merge-ex2-4.png A help/C/figures/merge-ex3-1.png A help/C/figures/merge-ex3-2.png +A help/C/figures/merge-ex3-3.png +A help/C/figures/merge-ex3-4.png M help/C/figures/object-editor-sidebar.png M help/C/figures/print-copies.png M help/C/figures/print-merge.png -M help/C/glabels.xml -M help/Makefile.am +M help/C/merge-ex1.page +M help/C/merge-ex2.page +M help/C/merge-ex3.page -commit 8fe92bd1ae20ab937f2a5de135c80d92e4c685eb +commit 2fde09a614399ab805e94b036ac367beaa5a16c9 Author: Jim Evins -Date: 2009-10-25 +Date: 2010-12-24 - Start new path when drawing round labels + Fix crash when encountering an invalid barcode backend - Start new path when drawing round labels. This fixes a bug, where - if the - top most object is a text object, an extras line would be drawn. + A file may have been saved from an instance of glabels that had + a backend + enabled that is not enabled in the current instance of glabels. + This fix + accounts for this. It is also possible that the glabels file + was created + manually with an invalid backend ID or a typo. -M src/cairo-label-path.c +M src/bc-backends.c +M src/bc-backends.h +M src/xml-label.c -commit d55ffd2866c5d6a20c1236f087b18316989c87dd -Author: Jim Evins -Date: 2009-10-25 +commit a0156d27b51928bea9acda121ab616a571b47836 +Author: Daniel Mustieles +Date: 2010-12-24 + + Updated Spanish translation - Fixed incorrect storage of glPrefsModel's base object +M help/es/es.po - Parent object was declared as a pointer, so there was not enough - room for - the parent/base object. This potentially could have caused havoc - with this - object. +commit 4967753a46173c4123e9cd958b2d1af0076be352 +Author: Daniel Mustieles +Date: 2010-12-24 -M src/prefs-model.h + Updated Spanish translation + +M po/es.po -commit 33821ebe5b65a8191215646fab2be577854bfb17 +commit fb9fc961547a370f916b4a263d8ecca3d39077d4 Author: Mario Blättermann -Date: 2009-10-10 +Date: 2010-12-23 - Converted translations to UTF-8 + Some ideas for the future -M po/pl.po -M po/pt_BR.po +M TODO -commit 69e71bfe60909459ed177b767b40f0940824ad6b -Author: Daniel Nylander -Date: 2009-10-06 +commit 1df0cd9751734cc89f71f849ecb434f8804633c1 +Author: Daniel Mustieles +Date: 2010-12-23 - Added Swedish translation + Updated Spanish translation -M po/LINGUAS -A po/sv.po +M help/es/es.po + +commit cfd6986162064bb23ef223372735c9dfc2b140a7 +Author: Daniel Mustieles +Date: 2010-12-23 + + Updated Spanish translation + +M po/es.po + +commit 78173bdf8d3a32bb7d7c01567c47a3c0a7200f57 +Author: Daniel Mustieles +Date: 2010-12-22 + + Updated Spanish translation + +M help/es/es.po + +commit 3d0f7724236b654adf326a926837428bba8d09d0 +Author: Daniel Mustieles +Date: 2010-12-22 + + Updated Spanish translation -commit e04fe3a1a5b378412eb153350e2fb2b8a22eb8b1 +M po/es.po + +commit 91dae28aba1ee42a015a2d5594d6f916affaa957 Author: Mario Blättermann -Date: 2009-10-06 +Date: 2010-12-22 - Converted polish translation to UTF-8 + Added Dataline templates -M po/pl.po +M templates/dataline-iso-templates.xml -commit 37b8623b1615da2b54cf2b22444f89c3e36b429d -Author: Claude Paroz -Date: 2009-10-06 +commit c88852dd70f0ac735515cc9cc26ab1803a257832 +Author: Mario Blättermann +Date: 2010-12-22 - Convert zh_TW translation to UTF-8 + Added JAC templates -M po/LINGUAS -R089 po/zh_TW.Big5.po po/zh_TW.po +M po/de.po +M templates/jac-iso-templates.xml -commit 885961d5ac802bf487d34b400679b2f15855d1e4 +commit 4d3bc4e4a59890004ec9d0eb7964e37f26813208 Author: Mario Blättermann -Date: 2009-10-06 +Date: 2010-12-21 - Updated German translation + [l10n] Updated German translation M po/de.po -commit 3a3f0f3859c7ddeeeb9b2251fddf2c066ee9ca99 +commit 3f0a08e40ffb1efa553a8cfd3fdf55cb1f821c98 +Author: Mario Blättermann +Date: 2010-12-21 + + Added Hama templates. Hama is now fully covered. + +M templates/hama-iso-templates.xml + +commit 7db09dd9f349eba5e276fe0f2c4795339320504e +Author: Mario Blättermann +Date: 2010-12-20 + + Removed comment which prevents intltool from running properly + +M templates/meritline-us-templates.xml + +commit 4a60da1dfe64df62cc7b8b01d709deeb893b1a5f +Author: Mario Blättermann +Date: 2010-12-20 + + Added Meritline templates + +M po/POTFILES.in +M templates/Makefile.am +A templates/meritline-us-templates.xml +M templates/misc-us-templates.xml + +commit 8c1f05cfb999c20d1cc8821fa60d8ad68568ba9c +Author: Mario Blättermann +Date: 2010-12-20 + + Moved Dataline template to its own file + +M po/POTFILES.in +M templates/Makefile.am +A templates/dataline-iso-templates.xml +M templates/misc-iso-templates.xml +M templates/vendors.xml + +commit 554266756a638ad0ee161decfe07bb86b8bc4b3f Author: Jim Evins -Date: 2009-10-05 +Date: 2010-12-19 - Moved files to top-level of branch. + Fix vertical expansion of various widgets - Moved files to top-level directory of glabels_2_2 branch. This is - an artifact - of the old SVN layout. Fixed problems with zh_CN.po that prevented - push. + Gtk3 has new behavior for expansion of widgets. This commit turns + off vertical + expansion for various widgets created with builder UI files. + These properties + have been added manually to these files, so they could be easily + wiped out + by editing them with glade. -R100 glabels2/help/de/de.po help/de/de.po -R100 glabels2/help/de/figures/main-window-empty.png -help/de/figures/main-window-empty.png -R100 glabels2/help/de/figures/merge-ex1-1.png -help/de/figures/merge-ex1-1.png -R100 glabels2/help/de/figures/merge-ex1-2.png -help/de/figures/merge-ex1-2.png -R100 glabels2/help/de/figures/merge-ex1-3.png -help/de/figures/merge-ex1-3.png -R100 glabels2/help/de/figures/merge-ex1-4.png -help/de/figures/merge-ex1-4.png -R100 glabels2/help/de/figures/merge-ex2-1.png -help/de/figures/merge-ex2-1.png -R100 glabels2/help/de/figures/merge-ex2-2.png -help/de/figures/merge-ex2-2.png -R100 glabels2/help/de/figures/merge-ex2-3.png -help/de/figures/merge-ex2-3.png -R100 glabels2/help/de/figures/merge-ex2-4.png -help/de/figures/merge-ex2-4.png -R100 glabels2/help/de/figures/object-editor-sidebar.png -help/de/figures/object-editor-sidebar.png -R100 glabels2/help/de/figures/print-copies.png -help/de/figures/print-copies.png -R100 glabels2/help/de/figures/print-merge.png -help/de/figures/print-merge.png -R100 glabels2/help/glabels-help.pot help/glabels-help.pot -R100 glabels2/help/glabels.omf.in help/glabels.omf.in -R100 glabels2/po/LINGUAS po/LINGUAS -R100 glabels2/po/ca.po po/ca.po -R099 glabels2/po/zh_CN.po po/zh_CN.po +M data/ui/object-editor.ui +M data/ui/print-op-dialog-custom-widget.ui -commit 484197466a1ddace52d14046709ad6e8c4f17bbc -Merge: 9ebfc49 d3a7257 +commit 4f37ea189b9cc80ef25d608c024273a345970722 Author: Jim Evins -Date: 2009-09-28 +Date: 2010-12-19 + + Some coding style cleanup. + +M libglabels/lgl-template.h +M libglabels/lgl-units.h +M libglbarcode/lgl-barcode-render-to-cairo.c +M libglbarcode/lgl-barcode.h +M src/bc-builtin.c +M src/bc-gnubarcode.c +M src/bc-iec16022.c +M src/bc-iec18004.c +M src/bc-zint.c +M src/color-combo-button.c +M src/color-combo-color-menu-item.c +M src/color-combo-menu.c +M src/color-combo.c +M src/color-history-model.c +M src/color-swatch.c +M src/debug.h +M src/field-button-menu.c +M src/field-button.c +M src/font-combo-menu-item.c +M src/font-combo-menu.c +M src/font-combo.c +M src/font-history-model.c +M src/font-sample.c +M src/label-barcode.c +M src/label-box.c +M src/label-ellipse.c +M src/label-image.c +M src/label-line.c +M src/label-object.c +M src/label-object.h +M src/label-text.c +M src/label.c +M src/media-select.c +M src/merge-evolution.c +M src/merge-properties-dialog.c +M src/merge-text.c +M src/merge-vcard.c +M src/merge.c +M src/merge.h +M src/message-bar.c +M src/mini-label-preview.c +M src/mini-preview.c +M src/new-label-dialog.c +M src/object-editor.c +M src/prefs-dialog.c +M src/prefs-model.c +M src/print-op-dialog.c +M src/print-op.c +M src/print.c +M src/template-designer.c +M src/template-history-model.c +M src/ui-property-bar.c +M src/ui-sidebar.c +M src/view.c +M src/view.h +M src/wdgt-chain-button.c +M src/window.c +M src/xml-label.h + +commit 791f29c01c646eaebc443c5220405d399b6082cb +Author: Jim Evins +Date: 2010-12-18 + + Coding style cleanup. + +M libglabels/lgl-category.c +M libglabels/lgl-category.h +M libglabels/lgl-db.c +M libglabels/lgl-paper.c +M libglabels/lgl-paper.h +M libglabels/lgl-str.c +M libglabels/lgl-template.c +M libglabels/lgl-template.h +M libglabels/lgl-units.c +M libglabels/lgl-units.h +M libglabels/lgl-vendor.c +M libglabels/lgl-vendor.h +M libglabels/lgl-xml-category.c +M libglabels/lgl-xml-paper.c +M libglabels/lgl-xml-template.c +M libglabels/lgl-xml-template.h +M libglabels/lgl-xml-vendor.c +M libglabels/lgl-xml.c +M libglabels/lgl-xml.h + +commit 5c6f4d559896d7290d8877651d60010eefc1c6bb +Author: Jim Evins +Date: 2010-12-18 + + Renamed libglabels source files to have "lgl-" prefix. + + Improve odds that source files (headers in particular) remain + unique. + +M docs/libglabels/libglabels-3.0-sections.txt +M libglabels/Makefile.am +R096 libglabels/category.c libglabels/lgl-category.c +R095 libglabels/category.h libglabels/lgl-category.h +R099 libglabels/db.c libglabels/lgl-db.c +R097 libglabels/db.h libglabels/lgl-db.h +R097 libglabels/paper.c libglabels/lgl-paper.c +R096 libglabels/paper.h libglabels/lgl-paper.h +R098 libglabels/str.c libglabels/lgl-str.c +R094 libglabels/str.h libglabels/lgl-str.h +R099 libglabels/template.c libglabels/lgl-template.c +R099 libglabels/template.h libglabels/lgl-template.h +R098 libglabels/units.c libglabels/lgl-units.c +R096 libglabels/units.h libglabels/lgl-units.h +R096 libglabels/vendor.c libglabels/lgl-vendor.c +R095 libglabels/vendor.h libglabels/lgl-vendor.h +R097 libglabels/xml-category.c libglabels/lgl-xml-category.c +R092 libglabels/xml-category.h libglabels/lgl-xml-category.h +R097 libglabels/xml-paper.c libglabels/lgl-xml-paper.c +R092 libglabels/xml-paper.h libglabels/lgl-xml-paper.h +R099 libglabels/xml-template.c libglabels/lgl-xml-template.c +R094 libglabels/xml-template.h libglabels/lgl-xml-template.h +R096 libglabels/xml-vendor.c libglabels/lgl-xml-vendor.c +R092 libglabels/xml-vendor.h libglabels/lgl-xml-vendor.h +R099 libglabels/xml.c libglabels/lgl-xml.c +R096 libglabels/xml.h libglabels/lgl-xml.h +M libglabels/libglabels-private.h +M libglabels/libglabels.h +M po/POTFILES.in + +commit a20a5bbf88612bd6ef88e7eeb022fca824905da8 +Author: Jim Evins +Date: 2010-12-18 + + Fixed potential memory leak. + +M libglbarcode/lgl-barcode-code39.c + +commit 429d875df7f9ed902b5a15d017e37eef49336326 +Author: Mario Blättermann +Date: 2010-12-17 + + Updated Southworth template - Merge original SVN glabels-2_2 branch into glabels_2_2 +M templates/misc-us-templates.xml - Restored history past 2.2.5 release that was lost when originally - creating - branch from SVN. +commit 38e921a6bcc6a016accbdb6337f26df5244c4e62 +Author: Mario Blättermann +Date: 2010-12-17 + + Updated Sigel template + +M templates/misc-iso-templates.xml + +commit 303ba997361a9d120a4cb91246811e7f9502bcba +Author: Mario Blättermann +Date: 2010-12-17 + + Added Sigel template + +M templates/misc-iso-templates.xml + +commit 39b99eeb9bc19230899c9bc7014198f8bfebe1c6 +Author: Mario Blättermann +Date: 2010-12-17 + + Added note about DECAdry templates + +M templates/decadry-iso-templates.xml + +commit 5dcf1c0c74a81c457207ce1ddfa7768a70e7c5ff +Author: Mario Blättermann +Date: 2010-12-17 + + Added a product_url + +M templates/misc-us-templates.xml + +commit 1a5eccae2505e61059f59be8774b252548a6491c +Author: Mario Blättermann +Date: 2010-12-17 + + Added Ascom templates + +M templates/ascom-iso-templates.xml + +commit 3bcf37e19f90aaa61ae5a0b2092583c438c4973e +Author: Mario Blättermann +Date: 2010-12-17 + + Added Ascom file + +A templates/ascom-iso-templates.xml + +commit 2b1ed215968487da9ac7c0ceb7123028a8729b6e +Author: Mario Blättermann +Date: 2010-12-17 + + Moved Ascom template to its own file + +M po/POTFILES.in +M templates/Makefile.am +M templates/misc-iso-templates.xml + +commit ac9f784be20aa4878cf45ceefb7f9a6d23568301 +Author: Daniel Mustieles +Date: 2010-12-15 + + Updated Spanish translation + +M po/es.po -commit 9ebfc492936b30b4095ae458278e63c51caf3f67 +commit 01be49583ebeab6d38905fd6c08e6db614bdcdba +Author: Mario Blättermann +Date: 2010-12-13 + + Added Herma templates + +M templates/herma-iso-templates.xml + +commit 1c923cfa68fb0277fd732fa870ca89a67916d21a +Author: Mario Blättermann +Date: 2010-12-12 + + [l10n] Updated German translation + +M po/de.po + +commit 4ebb369584f6ae3efa6db7a95b32514c1cfa00e4 +Author: Mario Blättermann +Date: 2010-12-12 + + Added hint about Ascom labels + +M templates/misc-iso-templates.xml + +commit ed47bfc6fecd57b6db3b1f1903c4dd60925a6cb7 +Author: Mario Blättermann +Date: 2010-12-12 + + Added Ascom URL + +M templates/vendors.xml + +commit 86b68f3318b926e1873bd5832b932975368bc11a Author: Jim Evins -Date: 2009-09-26 +Date: 2010-12-11 - Reorganized glabels_2_2 branch so that it is the top-level glabels - directory, - instead of having a glabels2 subdirectory. + Cleanup of ui files. -R100 glabels2/AUTHORS AUTHORS -R100 glabels2/COPYING COPYING -R100 glabels2/COPYING-DOCS COPYING-DOCS -R100 glabels2/COPYING-LIBGLABELS COPYING-LIBGLABELS -R100 glabels2/COPYING.README_FIRST COPYING.README_FIRST -R100 glabels2/ChangeLog ChangeLog -R100 glabels2/INSTALL INSTALL -R100 glabels2/Makefile.am Makefile.am -R100 glabels2/NEWS NEWS -R100 glabels2/README README -R100 glabels2/TODO TODO -R100 glabels2/autogen.sh autogen.sh -R100 glabels2/barcode-0.98/COPYING barcode-0.98/COPYING -R100 glabels2/barcode-0.98/ChangeLog barcode-0.98/ChangeLog -R100 glabels2/barcode-0.98/INSTALL barcode-0.98/INSTALL -R100 glabels2/barcode-0.98/Makefile.am barcode-0.98/Makefile.am -R100 glabels2/barcode-0.98/Makefile.in.dist + Regenerated ui files using glade from jhbuild. + +M data/ui/media-select.ui +M data/ui/merge-properties-dialog.ui +M data/ui/new-label-dialog.ui +M data/ui/object-editor.ui +M data/ui/prefs-dialog.ui +M data/ui/print-op-dialog-custom-widget.ui +M data/ui/property-bar.ui +M data/ui/template-designer.ui + +commit 5860b2b1dc85039d79a40502c2b3fa7e4843d7ee +Author: Daniel Mustieles +Date: 2010-12-11 + + Updated Spanish translation + +M po/es.po + +commit 0e29ea75a7daf3d3b1adc40aa5348adbdafc428c +Author: Mario Blättermann +Date: 2010-12-11 + + Make all g_warning and g_message untranslatable + +M libglabels/template.c +M libglabels/xml-template.c + +commit 8963061c3080ead1a2000f829d506f6d510943bf +Author: Jim Evins +Date: 2010-12-10 + + Disconnect prefs changed callback when destroying view. + + This fixes a crash when changing prefs after deleting a window. + +M src/view.c + +commit c6ccdd681e8f32471c0cb51030869416d7534d45 +Author: Mario Blättermann +Date: 2010-12-10 + + Removed duplicate template + +M templates/herma-iso-templates.xml + +commit 4f12b28e6f0d77a360b74ee57db15612cafbf098 +Author: Mario Blättermann +Date: 2010-12-10 + + Make all g_warning and g_message untranslatable for better bug + handling + +M src/merge-evolution.c +M src/xml-label-04.c +M src/xml-label.c + +commit 5bd9bc4fc3b3ab019b8e290d7ae48bd3a63cd320 +Author: Jim Evins +Date: 2010-12-09 + + Cleanup some '-Wall' warnings. + +M libglabels/db.c +M src/color-swatch.c +M src/font-sample.c +M src/label-barcode.c + +commit 90b87092927aa6b706a7a220b81cf8ef14e81e48 +Author: Mario Blättermann +Date: 2010-12-09 + + Added more Herma templates + +M templates/herma-iso-templates.xml + +commit d1e3f397bb25c41ee43584c7929a3d976b9dbdae +Author: Mario Blättermann +Date: 2010-12-09 + + [l10n] Updated German translation + +M po/de.po + +commit 318d394fed4e29e0793d3467f057b850185a28b8 +Author: Mario Blättermann +Date: 2010-12-09 + + Added more Hama templates + +M templates/hama-iso-templates.xml + +commit bc208ecf065133508b0d121ce3aab2bd2d4c3df2 +Author: Mario Blättermann +Date: 2010-12-09 + + Added missing underscore + +M templates/jac-iso-templates.xml + +commit 345ff45db2e8c21a4e8df1243ae96960cd46e49a +Author: Mario Blättermann +Date: 2010-12-09 + + [l10n] Updated German translation + +M po/de.po + +commit 9eaaa7570f8290b890f546f4c20625fe2f50dd44 +Author: Mario Blättermann +Date: 2010-12-09 + + Added more Hama templates + +M templates/hama-iso-templates.xml + +commit f8a50b04009496d09fabfb418e91ae15c648c38d +Author: Mario Blättermann +Date: 2010-12-09 + + Fixed bug in Geha templates + +M templates/geha-iso-templates.xml + +commit 2ebcd4192a7fcb70e4b0a778b3902c4e524af991 +Author: Mario Blättermann +Date: 2010-12-09 + + [l10n] Updated German translation + +M po/de.po + +commit 2edf2ba85b43199407eea3a1421b9c5d6ea0a4bd +Author: Mario Blättermann +Date: 2010-12-09 + + Added some equivalent templates + +M templates/hama-iso-templates.xml + +commit 4bd003abfb60e80544e6d824dfccf2d7cbc1ac2a +Author: Mario Blättermann +Date: 2010-12-09 + + Added more Hama products, added a new category »photo« and assigned + it to some products + +M help/C/mancreate.page +M templates/categories.xml +M templates/geha-iso-templates.xml +M templates/hama-iso-templates.xml +M templates/pearl-iso-templates.xml + +commit 36f4649ebd535aae1cbeb43553d04434fc1d806f +Author: Mario Blättermann +Date: 2010-12-09 + + Added Hama template page + +A templates/hama-iso-templates.xml + +commit 0c6ebf2102d079a4480ba06aaf1842f71e1a234a +Author: Mario Blättermann +Date: 2010-12-09 + + Initial page for Hama templates + +M po/POTFILES.in +M templates/Makefile.am +M templates/jac-iso-templates.xml +M templates/vendors.xml + +commit a125051c16605b2247acd7b539897c491e296edd +Author: Mario Blättermann +Date: 2010-12-09 + + Added hint about data for creating Geha templates + +M templates/geha-iso-templates.xml + +commit e9f7e82b1c50b54c3556db73c2d0d240ffb91171 +Author: Mario Blättermann +Date: 2010-12-09 + + [l10n] Updated German translation + +M po/de.po + +commit f79686873af4021a7c794e5830c9ae08f81bf0f8 +Author: Mario Blättermann +Date: 2010-12-09 + + Added missing underscores for translations + +M templates/geha-iso-templates.xml + +commit 39731183520b9da4382589c8857cba02190c1450 +Author: Mario Blättermann +Date: 2010-12-09 + + Added new Geha template. All current Geha templates are now present. + +M templates/geha-iso-templates.xml + +commit c89c44f2580acde5cf1f00ac0ea3d21c04de9b9c +Author: Mario Blättermann +Date: 2010-12-09 + + Added lost OMF file again + +A help/glabels.omf.in + +commit f5c5ab05261c857f5c5730dab51a47e06c3890f9 +Author: Mario Blättermann +Date: 2010-12-09 + + Reorganized the PEARL templates + +M templates/pearl-iso-templates.xml + +commit ddcfb2dc3030a9fd3a3baf31b7c044b3ee5ce842 +Author: Mario Blättermann +Date: 2010-12-09 + + [l10n] Updated German doc translation + +M help/de/de.po + +commit 81d3f3f11939e6feba33cfe6db56529e2ed7f2fd +Author: Jim Evins +Date: 2010-12-07 + + Cleanup of "Manually creating new templates" page. + +M help/C/mancreate.page + +commit 02525ecebbfac77a732cf30354f00da86a10aef1 +Author: Mario Blättermann +Date: 2010-12-07 + + Removed duplicate meta tag + +M templates/geha-iso-templates.xml + +commit eac7f6ae1d9aa4059d7f5955fa7be1627d5b3170 +Author: Mario Blättermann +Date: 2010-12-07 + + [l10n] Updated German translation + +M po/de.po + +commit 9429e4d84e437e5996e4f9d3841eb98fca91f567 +Author: Mario Blättermann +Date: 2010-12-07 + + Added more Geha templates + +M templates/geha-iso-templates.xml + +commit 0dc2f0a1cfcef51429248c80522723a1a5a0b71b +Author: Jim Evins +Date: 2010-12-07 + + Optimize loading of barcode styles. + + Only load barcode styles into object editor combo box if backend + ID has + changed. Otherwise, skip loading. This seems to be a very expensive + operation and would manifest itself as sluggish resizes of barcodes. + +M src/object-editor-bc-page.c +M src/object-editor-private.h +M src/object-editor.c + +commit 01b6f0b41fc8ab4f24f3bbb49daeb9d537c53189 +Author: Jim Evins +Date: 2010-12-07 + + Some optimization of barcode updates. + + Keep a cached copy of the display glBarcode, so that it does not + need to be + regenerated on every update. + +M src/label-barcode.c +M src/label-object.c +M src/label-object.h + +commit c64827154b26e3cae7ba3f60e175ca38e242e2bd +Author: Jim Evins +Date: 2010-12-07 + + Optimized the handling of moved objects. + + Created a separate "moved" signal for objects, so that we don't + waste time + updating unrelated controls in the object editor. This currently + is most + visible with barcode objects. + +M src/label-object.c +M src/label-object.h +M src/label.c +M src/object-editor.c + +commit 6e818159dd6c0f7107c9ecac8fcebb44bdbb1ad4 +Author: Mario Blättermann +Date: 2010-12-06 + + Added missing filename to POTFILES.in + +M po/POTFILES.in + +commit 1be777aae8bae2c1119b0cb5829f2da801548e45 +Author: Mario Blättermann +Date: 2010-12-06 + + Added more Geha templates + +M templates/geha-iso-templates.xml + +commit 63ac5e48f813c53f5b3b8bf698ae01c72daa9be3 +Author: Mario Blättermann +Date: 2010-12-06 + + Moved Geha template to its own file + +M templates/Makefile.am +A templates/geha-iso-templates.xml +M templates/misc-iso-templates.xml + +commit 4b278cb83e512bdc271373e152018f17e980baae +Author: Jim Evins +Date: 2010-12-05 + + Created smaller logo for manual title. + +M help/C/figures/glabels-logo.png + +commit cd75de36caeb263c82800231e2510f1cabadc04c +Author: Jim Evins +Date: 2010-12-05 + + Cleanup of some documentation artifacts. + + - Removed omf file from help/. + - Removed docs/libgl*/tmpl/libgl*-unused.sgml which are automatically + generated. + - Removed documentation refs to lgl_db_get_template_list_unique() + which has + been recently removed from libglabels. + - Updated .gitignore. + +M .gitignore +M docs/libglabels/libglabels-3.0-sections.txt +M docs/libglabels/tmpl/db.sgml +D docs/libglabels/tmpl/libglabels-3.0-unused.sgml +D docs/libglbarcode/tmpl/libglbarcode-3.0-unused.sgml +D help/glabels-3.0.omf.in +M libglabels/db.c + +commit 60519e8f9b7be15d5988b03c1a95cea45ca00657 +Author: Mario Blättermann +Date: 2010-12-05 + + [l10n] Updated German doc translation + +M help/de/de.po + +commit 4e51ab44ec19ac818a5b8d36f2720d1469c20f7c +Author: Daniel Mustieles +Date: 2010-12-05 + + Updated Spanish translation + +M help/es/es.po + +commit 5bdab116303bdcdc011657030a3813c364e319ed +Author: Mario Blättermann +Date: 2010-12-05 + + Fixed wrong template numbers + +M templates/herma-iso-templates.xml + +commit 350bb1773bd34fb92c111e231d774ea173615594 +Author: Jim Evins +Date: 2010-12-04 + + Search both ~/.glabels and ${XDG_CONFIG_HOME}/libglabels/templates. + + Keep ~/.glabels as an alternate location for user defined templates. + This + directory would hold manually created templates as well as template + designer + templates from previous versions. The new template designer will + manage + its templates in ${XDG_CONFIG_HOME}/libglabels/templates. + +M libglabels/db.c +M libglabels/template.c +M libglabels/xml-template.c + +commit f20a898ceef00151fd13afbf04c6961cff39ffe9 +Author: Mario Blättermann +Date: 2010-12-04 + + Added namespace declaration + +M help/C/mancreate.page + +commit ff2e814d1014d59ee701a8d6f47df81fe782eeb4 +Author: Mario Blättermann +Date: 2010-12-04 + + Added its: to the untranslatable strings + +M help/C/mancreate.page + +commit d086e015fc2e516ac10bcf2915e36164acf03afa +Author: Mario Blättermann +Date: 2010-12-04 + + Added markup for non-translatable items + +M help/C/mancreate.page + +commit 9f338207d5ec3a847a65d191c44e78055b3983df +Author: Jim Evins +Date: 2010-12-04 + + Removed artifact of template aliases. + +M libglabels/db.c +M libglabels/db.h +M src/mini-preview-pixbuf-cache.c + +commit dc41a686c30e7e80eb3e54cacba4c2af94e678f8 +Author: Jim Evins +Date: 2010-12-03 + + Add some selection slop to barcode and text objects + + Add a 4 pixel slop area around barcode lines and text glyphs in + object_at + methods of barcode and text objects. This will hopefully make + selecting + these objects less frustrating while still allowing selection of + background + objects through the negative space of these objects. + +M src/label-barcode.c +M src/label-text.c + +commit 17fbc0ff3528298065c3df6dce0f38bfd8972899 +Author: Daniel Mustieles +Date: 2010-12-02 + + Updated Spanish translation + +M help/es/es.po + +commit 952e6c14ad7a544a6bf820801fa40fb7b6b222b2 +Author: Daniel Mustieles +Date: 2010-12-02 + + Updated Spanish translation + +M help/es/es.po +M po/es.po + +commit ffaf06a95c635ef26335da26d63a74511068e03c +Author: Mario Blättermann +Date: 2010-12-02 + + [l10n] Some cleanup + +M help/de/de.po + +commit c3ef406eccdd4eb9d6e5651c72766a0292ab1d57 +Author: Mario Blättermann +Date: 2010-12-02 + + [l10n] Updated German doc translation + +M help/de/de.po + +commit cccabeafc0c73e4ec1698bb9569f03621a58af71 +Author: Mario Blättermann +Date: 2010-12-02 + + Fixed typo + +M help/C/multifile.page + +commit 5f1338e0bb4df1ac40b26b89c6c49a319de94287 +Author: Mario Blättermann +Date: 2010-12-02 + + Made email links clickable + +M help/C/about.page +M help/C/mancreate.page + +commit 3e42b1117fb1c4251a22873436412f9e07c5e7c1 +Author: Mario Blättermann +Date: 2010-12-01 + + [l10n] Updated German doc translation + +M help/de/de.po + +commit 4ea2ba2bcf00a753ee4e061af1bd8b02742f6753 +Author: Mario Blättermann +Date: 2010-12-01 + + Added note about available categories + +M help/C/mancreate.page + +commit cae9d526245a50b945404d0fffa4722a33323a0b +Author: Mario Blättermann +Date: 2010-12-01 + + Added new template equivalents again + +M templates/herma-iso-templates.xml + +commit 6dc9e7bcbac90c94e3af34eabcabe08e3abeceb5 +Author: Mario Blättermann +Date: 2010-12-01 + + Added new template equivalents + +M templates/herma-iso-templates.xml + +commit a82d4a9a8badd982f39b0a16b52c1459c3604390 +Author: Mario Blättermann +Date: 2010-11-30 + + [l10n] Updated German translation + +M po/de.po + +commit 5447097d6fb8b640873327611f607f1fbab82bb6 +Author: Mario Blättermann +Date: 2010-11-30 + + Added new category and assigned some templates to this category + +M templates/categories.xml +M templates/pearl-iso-templates.xml + +commit ace7ef5e6b10569d736ad2cdf4718b6aeab5198c +Author: Mario Blättermann +Date: 2010-11-30 + + [i18n] Added new templates and some cleanup + +M templates/herma-iso-templates.xml + +commit 1c5a40ac06c7fd9f809974784c83205af2890a38 +Author: Mario Blättermann +Date: 2010-11-30 + + [i18n] Added new templates + +M templates/herma-iso-templates.xml + +commit 0dfe4457223fae2d4b21c758fde905d4f8e78ea3 +Author: Jim Evins +Date: 2010-11-28 + + Fixed malformed XML file. + +M templates/misc-iso-templates.xml + +commit 043939ac8cf4396319cec17b871d9f4c891a34ab +Author: Mario Blättermann +Date: 2010-11-27 + + Added more templates + +M templates/herma-iso-templates.xml + +commit f3c77ad8a3482627572448d65df2e756763c9e90 +Author: Mario Blättermann +Date: 2010-11-27 + + Moved DataBecker templates to their own file, added one more template + +M po/POTFILES.in +M templates/Makefile.am +A templates/databecker-iso-templates.xml +M templates/misc-iso-templates.xml + +commit d48275b51809ebfc4aa926e311470e0d8032e067 +Author: Jim Evins +Date: 2010-11-27 + + Added URL tooltips to links. + +M src/new-label-dialog.c + +commit 30916207aa15fde60417267c059340d88a193602 +Author: Daniel Mustieles +Date: 2010-11-27 + + Updated Spanish translation + +M help/es/es.po + +commit ec3dbcf7eaf48d6f9ec266075fdf67d54011c23f +Author: Daniel Mustieles +Date: 2010-11-27 + + Updated Spanish translation + +M po/es.po + +commit f8095371bfa8914605162aa3ea34fd99cd4ad8cc +Author: Jim Evins +Date: 2010-11-27 + + Improve selection of barcode objects. + + Allow selection of barcode objects by clicking on the alternate + text when + a valid barcode cannot be displayed. + +M src/label-barcode.c + +commit 7c8701b3c9063510e362d8a0a786976ddca570e7 +Author: Jim Evins +Date: 2010-11-26 + + Fixed problem with creation of 1st barcode, again. + + Previous fix only temporarily masked the problem. The problem is that + the first time the barcode tabs are made visible, the digits spin + button + would emit a "changed" signal. The fix is to connect to the + "value-changed" + signal instead. + + This commit also includes replacing the stop_signals flag with + explicit + signal blockers. + +M src/object-editor-bc-page.c +M src/object-editor-data-page.c +M src/object-editor-fill-page.c +M src/object-editor-image-page.c +M src/object-editor-line-page.c +M src/object-editor-lsize-page.c +M src/object-editor-position-page.c +M src/object-editor-private.h +M src/object-editor-shadow-page.c +M src/object-editor-size-page.c +M src/object-editor-text-page.c +M src/object-editor.c + +commit c0905027d4dd2667ed738c6679fdf657e9d4cf40 +Author: Mario Blättermann +Date: 2010-11-26 + + [l10n] Updated German translation + +M po/de.po + +commit ab4e9596763ea64304efc2fe962344b5cc61587c +Author: Jim Evins +Date: 2010-11-26 + + Added note to template designer. + + Added note to template designer about the possibility of more + than 2 layouts. + +M data/ui/template-designer.ui + +commit aae747108292ab75611e891ffecfcad89382ccdc +Author: Mario Blättermann +Date: 2010-11-26 + + [l10n] Updated German translation + +M po/de.po + +commit ed3c4f8c1e2df4b740698425a15a3ad8080c5335 +Author: Mario Blättermann +Date: 2010-11-26 + + Added Sattleford VM-6084 label, added new category for elliptical + labels + +M templates/categories.xml +M templates/pearl-iso-templates.xml + +commit 63396b3df293ba68fbe6a2507b97e74201c1794f +Author: Mario Blättermann +Date: 2010-11-26 + + Added more vendor definitions and URLs + +M templates/vendors.xml + +commit 3cae5b04317e8b1ad5069bee713254b5c4f51125 +Author: Mario Blättermann +Date: 2010-11-26 + + [l10n] Updated German translation + +M po/de.po + +commit 30419b26c459fd1a9339c1c8a0341fc43ea7308f +Author: Jim Evins +Date: 2010-11-25 + + Cleanup of build system. + + - 'make distcheck' is now successful + - Removed several old artifacts + +M .gitignore +M Makefile.am +M configure.ac +M data/desktop/Makefile.am +M data/mime/Makefile.am +M po/POTFILES.in +A po/POTFILES.skip +M src/Makefile.am + +commit f9d15efd6543ae69c821010751ef960d97877349 +Author: Jim Evins +Date: 2010-11-25 + + Remove deprecated alias node support for templates. + + Removed support for the "Alias" node in templates. For backwards + compatibility alias nodes will be skipped over. This greatly + simplifies + the iteration through the template database, since all templates are + fully realized. + +M docs/libglabels/libglabels-3.0-sections.txt +M docs/libglabels/tmpl/db.sgml +M docs/libglabels/tmpl/libglabels-3.0-unused.sgml +M docs/libglabels/tmpl/template.sgml +M help/C/mancreate.page +M libglabels/db.c +M libglabels/template.c +M libglabels/template.h +M libglabels/xml-template.c +M src/mini-preview-pixbuf-cache.c +M templates/glabels-2.3.dtd + +commit 5003bd33e74c1de3fbe3dd7b5b206aff61f78658 +Author: Jim Evins +Date: 2010-11-25 + + Cleanup of template database. + + - Alphabetized the templates in the misc-*-templates.xml files. + - Replaced the last of the deprecated "Alias" tags. + - Added TODO comments for questionable part #s and vendors. + +M templates/avery-iso-templates.xml +M templates/misc-iso-templates.xml +M templates/misc-other-templates.xml +M templates/misc-us-templates.xml + +commit 79dbb3d7444f6fc13d114dbf4cc7070ced271398 +Author: Jim Evins +Date: 2010-11-24 + + Cleanup of template database. + + - Moved "DECAdry" templates to their own file. + - Replaced some deprecated "Alias" tags. + +M po/POTFILES.in +M templates/Makefile.am +M templates/avery-iso-templates.xml +A templates/decadry-iso-templates.xml +M templates/misc-iso-templates.xml +M templates/zweckform-iso-templates.xml + +commit 71819034a8140dcad8731d9095f018d683b27340 +Author: Jim Evins +Date: 2010-11-24 + + Cleanup of template database. + + - Moved "Herma" templates to their own file. + - Replaced some deprecated "Alias" tags. + +M po/POTFILES.in +M templates/Makefile.am +M templates/avery-iso-templates.xml +A templates/herma-iso-templates.xml +M templates/misc-iso-templates.xml +M templates/zweckform-iso-templates.xml + +commit 9c7681dc51320c27dab08bea3f89c3fbc45946a4 +Author: Mario Blättermann +Date: 2010-11-22 + + Added new template file to POTFILES.in + +M po/POTFILES.in + +commit f5cfd2233e03d2d2b0d3f4fee300ad3da2f9ca17 +Author: Mario Blättermann +Date: 2010-11-21 + + Added new template file to Makefile.am + +M templates/Makefile.am + +commit 3b110fd933a9ab9f666b74e22af9c33827c23a4e +Author: Mario Blättermann +Date: 2010-11-21 + + Removed product_url from JAC templates and added it to vendors.xml + +M templates/jac-iso-templates.xml +M templates/vendors.xml + +commit 6971f7336af7c5dbfa3fd6a329e7e483983915b2 +Author: Mario Blättermann +Date: 2010-11-21 + + Fixed misplaced tags in JAC templates + +M templates/jac-iso-templates.xml + +commit 0a8ecfa00185f5cd5a90a01955e26870b48169bf +Author: Mario Blättermann +Date: 2010-11-21 + + Moved JAC templates to their own file + +A templates/jac-iso-templates.xml +M templates/misc-iso-templates.xml + +commit 702554106de4ada46d566028a0f768ed6582e88b +Author: Mario Blättermann +Date: 2010-11-21 + + [l10n] Updated German doc translation + +M help/de/de.po + +commit 0586a73c43cda8e82f0198e61164d86b15391452 +Author: Mario Blättermann +Date: 2010-11-21 + + [l10n] Updated German translation + +M po/de.po + +commit 2391bd0de7d31abc0a3bb5bdf95ae6481e4275eb +Author: Jim Evins +Date: 2010-11-21 + + Added confirmation dialog to custom template delete button. + +M src/media-select.c + +commit a35071a7dd2b561b6cf479c46639fa62fbefb045 +Author: Jim Evins +Date: 2010-11-20 + + Fixed problem with creation of 1st barcode. + + A change signal is apparently being delayed until the actual widget is + being realized as a result of the gtk_widget_show of the object editor + notebook. The proper fix is to use actual signal blockers rather than + the simple "stop_signals" flag, since the flags assume callbacks are + always called inline rather than being called asynchronously. + +M src/object-editor-bc-page.c +M src/object-editor.c + +commit 860dea63a5a9389d42605bc759892428ad3e94d2 +Author: Jim Evins +Date: 2010-11-20 + + Removed pre-libglbarcode artifacts. + +M po/POTFILES.in +D src/bc.c +D src/bc.h + +commit 86f26962cab620b73bdf6f42dcd9ebb31e58ab82 +Author: Daniel Mustieles +Date: 2010-11-20 + + Updated Spanish translation + +M help/es/es.po +M po/es.po + +commit 3d7aa37f0eba1c52a959e07b4e53efb8377b838a +Author: Jim Evins +Date: 2010-11-18 + + Documentation cleanup. + + Bug sf#3110768: duplicate choice in editprop.page. + Bug sf#3110794: incorrect wording in customize.page. + Bug sf#3110801: incorrect wording in customize.page. + Bug sf#3110918: docbook artifacts in link tags in createnew.page. + Bug sf#3110930: misplaced tags in about.page. + Bug sf#3111019: spelling mistake in editprop.page. + +M help/C/about.page +M help/C/createnew.page +M help/C/customize.page +M help/C/editprop.page + +commit b1fd31ae78a8dd346fb48d7f7588274b68820179 +Author: Jim Evins +Date: 2010-11-16 + + Cleanup of mancreate.page. + + Bug sf#3110232: Remove docbook artifacts (replaced docbook tags w/ + mallard tags. + Bug sf#3110286: Fixed cut&paste error. + Bug sf#3110291: Fixed spelling mistake (height, not heigth). + +M help/C/mancreate.page + +commit 8f7f0191cb2f4962064a62b240eed926b150df17 +Author: Mario Blättermann +Date: 2010-11-15 + + [l10n] Updated German translation + +M po/de.po + +commit 76fd27c54a401448d1795491e958f8b379bc20ab +Author: Mario Blättermann +Date: 2010-11-15 + + Fixed typo + +M data/schemas/org.gnome.glabels-3.gschema.xml.in.in + +commit 99f337b4c2de88c4cfaf3cc9def3253484ab2c39 +Author: Mario Blättermann +Date: 2010-11-15 + + Removed last addition again + +M po/POTFILES.in + +commit fdf16d572cd58dcf8e8d3b18e2bf68b7583225c4 +Author: Mario Blättermann +Date: 2010-11-15 + + Added another missing filename to POTFILES.in + +M po/POTFILES.in + +commit 94b0bf095d42e68c3d6dea64cac99f87964a11e4 +Author: Mario Blättermann +Date: 2010-11-15 + + Added missing filename to POTFILES.in + +M po/POTFILES.in + +commit 9453143c64d5bbfde9c156c3b5a379eeb124f863 +Merge: 61404cf 6e743df +Author: Jim Evins +Date: 2010-11-14 + + Merge branch 'gtk3' + +commit 6e743df0f244177ac9e503c6114b344e0052b71c +Author: Jim Evins +Date: 2010-11-14 + + Fixed stupid typo. + + Must of been temporary insanity. I had replaced a g_unlink with + a g_free + a while back. Hanging my head in shame. + +M libglabels/db.c + +commit f29bc31c9132bc604d60d7c96cac6b0ef5056a74 +Author: Jim Evins +Date: 2010-11-14 + + Fixed typo. + +M src/template-designer.c + +commit 52446a0a719433f54f4983aabbc9caff685797c7 +Author: Jim Evins +Date: 2010-11-14 + + Make sure merge source is shown. + +M data/ui/merge-properties-dialog.ui +M src/merge-properties-dialog.c + +commit 61404cf7270a415c3ed1a185dcefd905bde8dc07 +Author: Mario Blättermann +Date: 2010-11-14 + + Added some more JAC templates + +M templates/misc-iso-templates.xml + +commit 92965dc1eafa2019bd2c69e921c499eb734cc8d9 +Author: Mario Blättermann +Date: 2010-11-14 + + Added some JAC templates + +M templates/misc-iso-templates.xml + +commit 88f44555402d9a405cbbff6ac57bb463e2ee18f0 +Author: Jim Evins +Date: 2010-11-12 + + Fix for some gtk3 widget layout issues. + +M data/ui/object-editor.ui +M src/ui-sidebar.c + +commit e29469011998fbbabe950f4ead5b9b081aeb6375 +Author: Jim Evins +Date: 2010-11-11 + + Remove artifacts from old manual. + +D help/C/glabels-3.0.xml +D help/C/legal.xml +M help/Makefile.am +M src/ui-commands.c + +commit 45b59e5b4316338dde419f17a3fdb88575b6de02 +Author: Jim Evins +Date: 2010-11-10 + + Update licensing information. + + - Docs are now licensed by the CC Attribution-Share Alike 3.0 + Unported license + - Libglbarcode is relicensed by the LGPL3+ + +M COPYING-DOCS +R100 COPYING-LIBGLABELS COPYING-LIBS +M COPYING.README_FIRST +M libglbarcode/lgl-barcode-code39.c +M libglbarcode/lgl-barcode-code39.h +M libglbarcode/lgl-barcode-create.c +M libglbarcode/lgl-barcode-create.h +M libglbarcode/lgl-barcode-onecode.c +M libglbarcode/lgl-barcode-onecode.h +M libglbarcode/lgl-barcode-postnet.c +M libglbarcode/lgl-barcode-postnet.h +M libglbarcode/lgl-barcode-render-to-cairo.c +M libglbarcode/lgl-barcode-render-to-cairo.h +M libglbarcode/lgl-barcode-type.h +M libglbarcode/lgl-barcode.c +M libglbarcode/lgl-barcode.h + +commit eda073e8e2563046b8c199372033d013a4697f25 +Author: Jim Evins +Date: 2010-11-09 + + Yet another logo update. + +M data/pixmaps/glabels-logo.png +M help/C/figures/glabels-logo.png +M help/C/index.page + +commit c57137558f60775a8a2205e127c2079f286d4625 +Author: Jim Evins +Date: 2010-11-09 + + Use GtkComboBoxText + +M data/ui/media-select.ui +M data/ui/merge-properties-dialog.ui +M data/ui/object-editor.ui +M data/ui/template-designer.ui +M src/combo-util.c +M src/combo-util.h +M src/media-select.c +M src/merge-properties-dialog.c +M src/object-editor-bc-page.c +M src/object-editor-private.h +M src/object-editor.c +M src/print-op-dialog.c +M src/template-designer.c + +commit 52214490bb8d25cd754cb40a274ac9ff36ba60d3 +Author: Daniel Mustieles +Date: 2010-11-09 + + Updated Spanish translation + +M help/es/es.po + +commit d405bc913b1d7d23ff12f92f6ef6323d15a4610d +Author: Jim Evins +Date: 2010-11-07 + + Initial documentation for libglbarcode. + +M .gitignore +M configure.ac +M docs/Makefile.am +A docs/libglbarcode/Makefile.am +A docs/libglbarcode/intro.sgml +A docs/libglbarcode/libglbarcode-3.0-docs.sgml +A docs/libglbarcode/libglbarcode-3.0-overrides.txt +A docs/libglbarcode/libglbarcode-3.0-sections.txt +A docs/libglbarcode/libglbarcode-3.0.types +A docs/libglbarcode/tmpl/lgl-barcode-create.sgml +A docs/libglbarcode/tmpl/lgl-barcode-render-to-cairo.sgml +A docs/libglbarcode/tmpl/lgl-barcode-type.sgml +A docs/libglbarcode/tmpl/lgl-barcode.sgml +A docs/libglbarcode/tmpl/libglbarcode-3.0-unused.sgml +M libglbarcode/lgl-barcode-create.c +M libglbarcode/lgl-barcode-render-to-cairo.c +M libglbarcode/lgl-barcode-type.h +M libglbarcode/lgl-barcode.c +M libglbarcode/lgl-barcode.h +M libglbarcode/libglbarcode-3.0.pc.in +M libglbarcode/libglbarcode.h + +commit ff1457fe9ff2f87815dcbbdc927f409a0a20a1fd +Author: Daniel Mustieles +Date: 2010-11-03 + + Updated Spanish translation + +M help/es/es.po + +commit 57f251a8d3ef3592e0856eb3c8916ca7c464f324 +Author: Bruno Brouard +Date: 2010-11-01 + + Updated French translation + +M po/fr.po + +commit b8fc8ef5359af7b42d3bd0493c1adcf8236086db +Author: Mario Blättermann +Date: 2010-11-01 + + Added ca@valencia to LINGUAS + +M po/LINGUAS + +commit 81941432d20338b56011444017b01799320a6e97 +Author: Jim Evins +Date: 2010-10-31 + + Refinements to barcode objects + - Draw outline around barcode objects. + - Use a more sophisticated test for determining if cursor is on + a barcode + object: test against lines and glyphs instead of simple bounds + test. The + test will also indicate that cursor is on the object if it is on the + selection outline. Similar to text objects. + +M libglbarcode/lgl-barcode-render-to-cairo.c +M libglbarcode/lgl-barcode-render-to-cairo.h +M src/label-barcode.c + +commit 9c8e77f5735b97af445de3a5a8926535535c10f8 +Author: Mario Blättermann +Date: 2010-10-31 + + [l10n] Updated German doc translation + +M help/de/de.po + +commit 576d435eba3d25c70329798a29ce99b7934b0582 +Author: Mario Blättermann +Date: 2010-10-31 + + Removed introduction.page + +D help/C/introduction.page + +commit 9da0eeeabc8554a3e84a4718fe08c43ec4848333 +Author: Mario Blättermann +Date: 2010-10-31 + + Moved introduction to index.page + +M help/C/index.page + +commit ba922c500a1875be6abd70cbacf946a00d375c2b +Author: Mario Blättermann +Date: 2010-10-31 + + Added names of new files + +M po/POTFILES.in + +commit 3f4f1213f12fc5be87547cfb82239c3f9c32c19f +Author: Mario Blättermann +Date: 2010-10-31 + + Removed names of no longer existing files + +M po/POTFILES.in + +commit 411560a0b6eb8057add9b6862bc477cb00600e14 +Author: Carles Ferrando +Date: 2010-10-31 + + [l10n] Added Catalan (Valencia) translation + +A po/ca@valencia.po + +commit edaa3e0b6dec8f8ba81c05b5a196a90b1ebb1ca2 +Author: Jim Evins +Date: 2010-10-30 + + Refactored core barcode subsystem. + + - Created new libglbarcode library + - Moved core barcode structure into library + - Moved cairo rendering of barcode into library + - Moved built-in barcodes to library + - Resurrected Code39 support (from wayback in glabels 0.1.x) + + - Backend "glue" remains in glabels proper + +M .gitignore +M Makefile.am +M configure.ac +A libglbarcode/Makefile.am +A libglbarcode/lgl-barcode-code39.c +C076 src/bc-iec18004.h libglbarcode/lgl-barcode-code39.h +A libglbarcode/lgl-barcode-create.c +C060 src/bc-iec18004.h libglbarcode/lgl-barcode-create.h +R085 src/bc-onecode.c libglbarcode/lgl-barcode-onecode.c +C064 src/bc-onecode.h libglbarcode/lgl-barcode-onecode.h +A libglbarcode/lgl-barcode-postnet.c +C060 src/bc-onecode.h libglbarcode/lgl-barcode-postnet.h +A libglbarcode/lgl-barcode-render-to-cairo.c +C075 src/bc-onecode.h libglbarcode/lgl-barcode-render-to-cairo.h +R063 src/bc-onecode.h libglbarcode/lgl-barcode-type.h +A libglbarcode/lgl-barcode.c +A libglbarcode/lgl-barcode.h +A libglbarcode/libglbarcode-3.0.pc.in +R067 src/bc-postnet.h libglbarcode/libglbarcode.h +M src/Makefile.am +M src/bc-backends.c +M src/bc-backends.h +A src/bc-builtin.c +C087 src/bc-iec18004.h src/bc-builtin.h +M src/bc-gnubarcode.c +M src/bc-gnubarcode.h +M src/bc-iec16022.c +M src/bc-iec16022.h +M src/bc-iec18004.c +M src/bc-iec18004.h +D src/bc-postnet.c +M src/bc-zint.c +M src/bc-zint.h +M src/label-barcode.c + +commit 227f04fc6321c2e05aa216cafcac42d6c682a83f +Author: Daniel Mustieles +Date: 2010-10-28 + + Updated Spanish translation + +M help/es/es.po + +commit c9171d11050f595055ba17e53a906e27ad8d28d0 +Author: Petr Kovar +Date: 2010-10-28 + + Update Czech translation by Marek Cernocky + +M po/cs.po + +commit ebd747a78e20c7839bc05dfccbae19730772d2c2 +Author: Mario Blättermann +Date: 2010-10-26 + + Removed dupicate name + +M AUTHORS + +commit 8018996159a5af3bb20149c6eb9f327367dd50d9 +Author: Mario Blättermann +Date: 2010-10-26 + + Added missing name for template contributor + +M AUTHORS + +commit f8a80d9fb9e73780c408971458be49affec9ba3c +Author: Jim Evins +Date: 2010-10-25 + + Tweak template designer. + + - Added figure for ellipse size page. + - Removed translatable attribute to "ellipse_page" label which + is never + exposed to the user interface. + +M data/pixmaps/Makefile.am +A data/pixmaps/ex-ellipse-size.png +M data/ui/template-designer.ui + +commit d04b523c567a0961a6378921d1ec6adfa810ff71 +Author: Daniel Nylander +Date: 2010-10-25 + + Updated Swedish translation + +M po/sv.po + +commit 002b014d22c4ab4e655a53e4382db94aee637a56 +Author: Daniel Nylander +Date: 2010-10-25 + + Updated Swedish translation + +M po/sv.po + +commit b6c503e318bb31b37e83100975ca4795553cb50f +Author: Mario Blättermann +Date: 2010-10-25 + + [l10n] Updated German translation + +M po/de.po + +commit 5f3fe187983bddfe3f74eb9b2b5fd9654e827741 +Author: Daniel Mustieles +Date: 2010-10-25 + + Updated Spanish translation + +M po/es.po + +commit a1a1ba75805a6b52d44edca62f1a46758f5edcef +Author: Jim Evins +Date: 2010-10-24 + + Added support for elliptical labels to template designer. + +M data/ui/template-designer.ui +M src/template-designer.c + +commit edb718146f4462962f7f8d945e3f4e94a267e128 +Author: Mario Blättermann +Date: 2010-10-24 + + Added JAC 987349 template + +M templates/misc-iso-templates.xml + +commit 655d3876f4dc85d543757da4ddcb5a7f859d5d68 +Author: Mario Blättermann +Date: 2010-10-24 + + [i18n] Updated German doc translation + +M help/de/de.po + +commit 123e40341b75ed9908bf8efe93e7730e8ad7bcd3 +Author: Mario Blättermann +Date: 2010-10-24 + + Fixed some bad formattings in page files + +M help/C/about.page +M help/C/mancreate.page +M help/C/merge-ex1.page +M help/C/merge-ex2.page +M help/C/merge-ex3.page +M help/C/multifile.page + +commit 9e1ffae4ad71013013ffda810938560270aeb0a9 +Author: Mario Blättermann +Date: 2010-10-24 + + [i18n] Updated German doc translation + +M help/de/de.po + +commit e76ba5917c22a48071dbfd7ca1d57dd15aecc33e +Author: Mario Blättermann +Date: 2010-10-24 + + [i18n] Updated German doc translation + +M help/de/de.po + +commit 6c64505b7ff37d2f07768509f8c0ea47d37a04c7 +Author: Mario Blättermann +Date: 2010-10-23 + + [i18n] Updated German translation + +M po/de.po + +commit e1a86d815851f2d9ea8ab8986779d9b5f2d942e5 +Author: Jim Evins +Date: 2010-10-23 + + Added note about rotating objects. + +M help/C/editprop.page + +commit 45a1bf10d41bc020a9e8438d2bd49d9383ef537e +Author: Jim Evins +Date: 2010-10-23 + + Updated glabels logo yet again. + + Updated logo based on the new-label-dialog image rather than the + simple + "gLabels" text which is more appropriate for a web-page title rather + than a graphical logo which always sits next to the text "glabels" + anyway. + +M data/pixmaps/glabels-logo.png +M help/C/figures/glabels-logo.png + +commit d57e4b8adf4369742323f2a8098cdd996a8c0b99 +Author: Mario Blättermann +Date: 2010-06-10 + + Updated German doc translation + +M help/de/de.po + +commit f0459b79dae33f354121d4b9d3138e63bfc1a93e +Author: Jim Evins +Date: 2010-06-09 + + Extended introduction + + Extended introduction and moved to its own page. + Added logo for index page (used current web logo for now). + +A help/C/figures/glabels-logo.png +A help/C/figures/introduction-glabels-main-window.png +M help/C/index.page +A help/C/introduction.page + +commit e88a0125b560cbdd3fcc2eb9e991fae45555013f +Author: Jim Evins +Date: 2010-05-31 + + Updated manual template creation page. + + Updated text to reflect changes in current development version of + glabels. Updated and added figures. + +A help/C/figures/glabels-template-cd-label.png +D help/C/figures/glabels-template-cd.png +A help/C/figures/glabels-template-circle-label.png +A help/C/figures/glabels-template-ellipse-label.png +D help/C/figures/glabels-template-label.png +M help/C/figures/glabels-template-layout.png +A help/C/figures/glabels-template-rect-label.png +M help/C/mancreate.page + +commit 5325e8976aeb992aebe7d1f725fdcb9ee4d0df2d +Author: Mario Blättermann +Date: 2010-05-30 + + Added missing filename for page file in Makefile.am + +M help/Makefile.am + +commit 6a502e49f1219d69fdd1a9ac38263cdbb05f2944 +Author: Jim Evins +Date: 2010-05-29 + + Added page on skipping empty address fields. + +M help/C/about.page +A help/C/figures/skip-fields-output.png +A help/C/figures/skip-fields-screenshot.png +A help/C/skipfields.page + +commit 3c8c219808431f0e4b3054ca7011a50196048a86 +Author: Mario Blättermann +Date: 2010-05-28 + + Fixed bug in Makefile.am + +M help/Makefile.am + +commit a963feda67b0b24510679fdfeb66631fdc5fc36d +Author: Mario Blättermann +Date: 2010-05-28 + + Added new filenames to Makefile.am + +M help/Makefile.am + +commit c8cc8d439836b01b925067e15f3f5cda60c606b8 +Author: Mario Blättermann +Date: 2010-05-28 + + Changed license to Creative Commons + +M help/glabels-3.0.omf.in + +commit 073fcd34a90b522980a96d7a1b41f1be3ccdee08 +Author: Mario Blättermann +Date: 2010-05-28 + + Added page files for the new manual + +A help/C/about.page +A help/C/basicusage.page +A help/C/createnew.page +A help/C/customize.page +A help/C/customtemplate.page +A help/C/editprop.page +A help/C/index.page +A help/C/labelprop.page +A help/C/license.page +A help/C/mancreate.page +A help/C/merge-ex1.page +A help/C/merge-ex2.page +A help/C/merge-ex3.page +A help/C/merge-ex4.page +A help/C/merge.page +A help/C/mergefeatures.page +A help/C/multifile.page +A help/C/newlabel.page +A help/C/printfile.page +A help/C/select.page + +commit b071ef81f3bb86f042a317dd509b10f2f52aaefb +Author: Jim Evins +Date: 2010-10-22 + + Added native OneCode barcode backend. + +M src/Makefile.am +M src/bc-backends.c +A src/bc-onecode.c +A src/bc-onecode.h + +commit 4ccc7568162606b01eda07d20b1c6f3596a18250 +Author: Matej Urbančič +Date: 2010-10-22 + + Added sl for Slovenian translation + +M help/Makefile.am + +commit 8db3ca50ad72ff6f748c7025b94b6dd9228c0088 +Author: Matej Urbančič +Date: 2010-10-22 + + Added Slovenian translation + +A help/sl/sl.po + +commit 8f1058a9430b0f464f2f8bbb5ca7198db06370cf +Author: Daniel Mustieles +Date: 2010-10-21 + + Updated Spanish translation + +M help/es/es.po + +commit 323db1068fec3f9e29b243526532f8db56b083bb +Author: Jim Evins +Date: 2010-10-17 + + Do not expand object editor vertically. + + Gtk3 has new behavior for expansion of widgets. This commit takes + care of + the most obvious case of this new behavior. Additional cases still + need to + be addressed in the object-editor.ui file. + +M src/ui-sidebar.c + +commit 6560b886953a6147b9cd4bca2f797c694fb18f2d +Author: Jim Evins +Date: 2010-10-17 + + Removed gtk_status_bar_set_has_resize_grip(). + + Resize grip in Gtk3 has been moved from GtkStatusBar to GtkWindow. + Glabels + also no longer explicitly turns the resize grip off. + +M src/window.c + +commit d70695c6d164015b9502592107e256b7bc020a88 +Author: Andrej ŽnidarÅ¡ič +Date: 2010-10-15 + + Updated Slovenian translation + +M po/sl.po + +commit 7e864db86631552f49edd0b014fb197e75d6007f +Author: Daniel Mustieles +Date: 2010-10-11 + + Updated Spanish translation + +M po/es.po + +commit b2b3f6be7f95887f10f9bd7d64b0251f4cef1f70 +Author: Mario Blättermann +Date: 2010-10-10 + + [i18n] Updated German translation + +M po/de.po + +commit 0faa416ed1eae948d13d23269fba55ed04bfbea4 +Author: Mario Blättermann +Date: 2010-10-10 + + Added some new templates + +M templates/pearl-iso-templates.xml + +commit e4f1404d031e896bf56e9ac857a913110b4e1477 +Author: Jim Evins +Date: 2010-10-05 + + Cleanup of chain button. + + - Convert to new drawing model for bracket lines + - Use "changes-allow" and "changes-prevent" lock images + - Use toggle button to indicate state (in addition to image) + +M data/ui/object-editor.ui +M src/object-editor-size-page.c +M src/wdgt-chain-button.c + +commit 799a7f4911e9abd575c2b7683750aeca1b905ca8 +Author: Jim Evins +Date: 2010-10-04 + + Fix drawing problems with view.c + + - Create separate cairo_t from bin_window and draw into it. + - For manual updates, create allocation rectangle manually + +M .gitignore +M src/view.c + +commit dd7c11af6233329e7f0a05947167dfd8debc3dea +Author: Jim Evins +Date: 2010-10-03 + + Initial port to GTK3. + + Still has update and drawing problems with view.c. + +M configure.ac +M src/Makefile.am +M src/color-swatch.c +A src/cursors/Makefile.am +A src/cursors/cursor_barcode.png +A src/cursors/cursor_box.png +A src/cursors/cursor_ellipse.png +A src/cursors/cursor_image.png +A src/cursors/cursor_line.png +A src/cursors/cursor_text.png +M src/font-sample.c +M src/media-select.c +M src/merge-properties-dialog.c +M src/mini-label-preview.c +M src/mini-preview.c +M src/prefs-dialog.c +M src/view-barcode.c +M src/view-box.c +M src/view-ellipse.c +M src/view-image.c +M src/view-line.c +M src/view-text.c +M src/view.c +M src/wdgt-chain-button.c +M src/window.c + +commit a0e160ca8b5dd417430b42f1984ed3ceafbca6bd +Author: Jim Evins +Date: 2010-10-02 + + Merge changes from gsettings branch. + +M configure.ac +M data/Makefile.am +A data/schemas/Makefile.am +A data/schemas/org.gnome.glabels-3.gschema.xml.in.in +M src/color-history-model.c +M src/font-history-model.c +M src/prefs-model.c +M src/template-history-model.c +M src/ui.c + +commit 2cc9977dd9fb2e069b9dac4439af952c2f2c15ee +Author: Jim Evins +Date: 2010-09-27 + + Better test for libzint. + +M configure.ac + +commit 8404402282b56b1bee08f5115bf43c21fa10574e +Author: Daniel Mustieles +Date: 2010-09-26 + + Updated Spanish translation + +M po/es.po + +commit 9a9188f05d74896575aaf2060866dbfb20723058 +Author: Mario Blättermann +Date: 2010-09-26 + + Added Best Office 75753 template + +M templates/misc-iso-templates.xml + +commit 1c886494fe294fd145d7b6234786dbf32b75f6c7 +Author: Antonio Fernandes C. Neto +Date: 2010-09-22 + + Updated Brazilian Portuguese translation + +M po/pt_BR.po + +commit 3f02585e277e869df63e78dcc538f1b21964e7fe +Author: Joe Hansen +Date: 2010-09-19 + + Updated Danish translation + +M po/da.po + +commit bce03e38fb47839357147cff6526acefc67e313a +Author: Petr Kovar +Date: 2010-09-10 + + Update Czech translation by Marek Cernocky + +M po/cs.po + +commit cacd288f41657322697972dd2c478fbab72e7536 +Author: Mario Blättermann +Date: 2010-09-09 + + Fixed small typo + +M src/ui-commands.c + +commit aaf2b3ed072e8a9eacbd0f382bd2af62a6072af3 +Author: Daniel Mustieles +Date: 2010-09-06 + + Updated Spanish translation + +M po/es.po + +commit aeb33f64541ad5c39bcc62a0fe94cb1e992a63f0 +Author: Jim Evins +Date: 2010-09-05 + + Added logo for template designer druid. + +M data/pixmaps/Makefile.am +A data/pixmaps/template-designer.png +M src/template-designer.c + +commit 9667f709d131a52eca55c5a8400f20d4084a1409 +Author: Jim Evins +Date: 2010-09-05 + + Manage mimetype icon with other theme friendly icons. + +M data/icons/48x48/Makefile.am +R100 data/pixmaps/application-x-glabels.png +data/icons/48x48/mimetypes/application-x-glabels.png +M data/pixmaps/Makefile.am + +commit 065ffb88346791da881cfed8a06343c6b6e4b50c +Author: Jim Evins +Date: 2010-09-05 + + Theme friendly, glabels specific, action icons. + +M configure.ac +M data/icons/16x16/Makefile.am +R100 src/stock-pixmaps/stock_align_bottom_16.png +data/icons/16x16/actions/glabels-align-bottom.png +R100 src/stock-pixmaps/stock_align_hcenter_16.png +data/icons/16x16/actions/glabels-align-hcenter.png +R100 src/stock-pixmaps/stock_align_left_16.png +data/icons/16x16/actions/glabels-align-left.png +R100 src/stock-pixmaps/stock_align_right_16.png +data/icons/16x16/actions/glabels-align-right.png +R100 src/stock-pixmaps/stock_align_top_16.png +data/icons/16x16/actions/glabels-align-top.png +R100 src/stock-pixmaps/stock_align_vcenter_16.png +data/icons/16x16/actions/glabels-align-vcenter.png +R100 src/stock-pixmaps/stock_arrow_16.png +data/icons/16x16/actions/glabels-arrow.png +R100 src/stock-pixmaps/stock_barcode_16.png +data/icons/16x16/actions/glabels-barcode.png +R100 src/stock-pixmaps/stock_box_16.png +data/icons/16x16/actions/glabels-box.png +R100 src/stock-pixmaps/stock_bucket_fill_16.png +data/icons/16x16/actions/glabels-bucket-fill.png +R100 src/stock-pixmaps/stock_center_horiz_16.png +data/icons/16x16/actions/glabels-center-horiz.png +R100 src/stock-pixmaps/stock_center_vert_16.png +data/icons/16x16/actions/glabels-center-vert.png +R100 src/stock-pixmaps/stock_ellipse_16.png +data/icons/16x16/actions/glabels-ellipse.png +R100 src/stock-pixmaps/stock_flip_horiz_16.png +data/icons/16x16/actions/glabels-flip-horiz.png +R100 src/stock-pixmaps/stock_flip_vert_16.png +data/icons/16x16/actions/glabels-flip-vert.png +R100 src/stock-pixmaps/stock_image_16.png +data/icons/16x16/actions/glabels-image.png +R100 src/stock-pixmaps/stock_line_16.png +data/icons/16x16/actions/glabels-line.png +R100 src/stock-pixmaps/stock_merge_16.png +data/icons/16x16/actions/glabels-merge.png +R100 src/stock-pixmaps/stock_properties_16.png +data/icons/16x16/actions/glabels-object-properties.png +R100 src/stock-pixmaps/stock_order_bottom_16.png +data/icons/16x16/actions/glabels-order-bottom.png +R100 src/stock-pixmaps/stock_order_top_16.png +data/icons/16x16/actions/glabels-order-top.png +R100 src/stock-pixmaps/stock_pencil_16.png +data/icons/16x16/actions/glabels-pencil.png +R100 src/stock-pixmaps/stock_rotate_left_16.png +data/icons/16x16/actions/glabels-rotate-left.png +R100 src/stock-pixmaps/stock_rotate_right_16.png +data/icons/16x16/actions/glabels-rotate-right.png +R100 src/stock-pixmaps/stock_text_16.png +data/icons/16x16/actions/glabels-text.png +M data/icons/24x24/Makefile.am +R100 src/stock-pixmaps/stock_arrow_24.png +data/icons/24x24/actions/glabels-arrow.png +R100 src/stock-pixmaps/stock_barcode_24.png +data/icons/24x24/actions/glabels-barcode.png +R100 src/stock-pixmaps/stock_box_24.png +data/icons/24x24/actions/glabels-box.png +R100 src/stock-pixmaps/stock_bucket_fill_24.png +data/icons/24x24/actions/glabels-bucket-fill.png +R100 src/stock-pixmaps/stock_ellipse_24.png +data/icons/24x24/actions/glabels-ellipse.png +R100 src/stock-pixmaps/stock_hchain_broken_24.png +data/icons/24x24/actions/glabels-hchain-broken.png +R100 src/stock-pixmaps/stock_hchain_24.png +data/icons/24x24/actions/glabels-hchain.png +R100 src/stock-pixmaps/stock_image_24.png +data/icons/24x24/actions/glabels-image.png +R100 src/stock-pixmaps/stock_line_24.png +data/icons/24x24/actions/glabels-line.png +R100 src/stock-pixmaps/stock_merge_24.png +data/icons/24x24/actions/glabels-merge.png +R100 src/stock-pixmaps/stock_properties_24.png +data/icons/24x24/actions/glabels-object-properties.png +R100 src/stock-pixmaps/stock_pencil_24.png +data/icons/24x24/actions/glabels-pencil.png +R100 src/stock-pixmaps/stock_text_24.png +data/icons/24x24/actions/glabels-text.png +R100 src/stock-pixmaps/stock_vchain_broken_24.png +data/icons/24x24/actions/glabels-vchain-broken.png +R100 src/stock-pixmaps/stock_vchain_24.png +data/icons/24x24/actions/glabels-vchain.png +M po/POTFILES.in +M src/Makefile.am +M src/color-combo-button.c +M src/color-combo-button.h +M src/glabels.c +M src/object-editor.c +D src/stock-pixmaps/Makefile.am +D src/stock.c +D src/stock.h +M src/ui-property-bar.c +M src/ui-sidebar.c +M src/ui.c +M src/wdgt-chain-button.c + +commit ece7eac613951c98d90cb698497576a110265a21 +Author: Jim Evins +Date: 2010-09-04 + + Additional ignore pattern. + +M .gitignore + +commit 3fd4017b3e2461638683b3753b96c7484e7d4ed2 +Author: Jim Evins +Date: 2010-09-04 + + Theme friendly app icons. + +M configure.ac +M data/Makefile.am +A data/icons/16x16/Makefile.am +A data/icons/16x16/apps/glabels-3.0.png +A data/icons/22x22/Makefile.am +A data/icons/22x22/apps/glabels-3.0.png +A data/icons/24x24/Makefile.am +A data/icons/24x24/apps/glabels-3.0.png +A data/icons/32x32/Makefile.am +A data/icons/32x32/apps/glabels-3.0.png +A data/icons/48x48/Makefile.am +A data/icons/48x48/apps/glabels-3.0.png +A data/icons/Makefile.am +M data/pixmaps/Makefile.am +D data/pixmaps/glabels-3.0.png +M src/Makefile.am +M src/glabels-batch.c +M src/glabels.c +M src/template-designer.c + +commit acadb7b8e069be9c8a95502191771b6466ddaedf +Author: Jim Evins +Date: 2010-09-03 + + New logo and tweaking of about dialog. + +M data/pixmaps/Makefile.am +D data/pixmaps/glabels-about-logo.png +A data/pixmaps/glabels-logo.png +D data/pixmaps/glabels-splash.png +M src/ui-commands.c + +commit 8b85d5b2506945a45411f160ec2d6afc8d184499 +Author: Jim Evins +Date: 2010-09-03 + + Removed remaining artifacts from old hig module. + +M data/ui/merge-properties-dialog.ui +M po/POTFILES.in +M src/Makefile.am +D src/hig.h +M src/merge-properties-dialog.c +M src/prefs-dialog.c + +commit de714c6562a0cf92eadc8430da644117e948a422 +Author: Mario Blättermann +Date: 2010-09-03 + + [i18n] Updated German translation + +M po/de.po + +commit 9e1e6e9b3e8f03a95a949d612e6f6f7846f95a1e +Author: Andrej ŽnidarÅ¡ič +Date: 2010-09-03 + + Updated Slovenian translation + +M po/sl.po + +commit 05e9418eb30b1702a10a8662c83da7904d60151a +Author: Jim Evins +Date: 2010-09-02 + + Update POTFILES.in after merge and update AUTHORS. + +M AUTHORS +M po/POTFILES.in + +commit 6c9d844640ff7c481eaa1962aff3bdebd0c2c0ff +Merge: 7e03137 e681454 +Author: Jim Evins +Date: 2010-09-02 + + Merge branch 'zint' + +commit e68145406dd9ea1326cace7341fa736e8e065bff +Author: Jim Evins +Date: 2010-08-31 + + Fix maximum size of object editor sidebar at initialization. + + Kludge: Load barcode styles for each backend type at initialization, + so that + when they are loaded for real, the maximum size of the widget has + already been + established and doesn't cause the object editor to change size. + +M data/ui/object-editor.ui +M src/object-editor-bc-page.c + +commit a8d633c591f7cb28150ab85ae6b0feac1856335c +Author: Jim Evins +Date: 2010-08-31 + + Encapsulate barcode style in single struct. + + Encapsulate barcode style into a single struct and related + clean-up. + +M src/label-barcode.c +M src/label-barcode.h +M src/merge-evolution.c +M src/merge-text.c +M src/merge-vcard.c +M src/merge.c +M src/merge.h +M src/object-editor-bc-page.c +M src/object-editor-private.h +M src/object-editor.c +M src/text-node.c +M src/text-node.h +M src/xml-label-04.c +M src/xml-label.c + +commit a6f3364c48c13198e6583701cff3ba8f1e0230aa +Author: Jim Evins +Date: 2010-08-29 + + Allow user selection of barcode backend. + + - User can now select which backend to use for a particular barcode. + - This prevents one implementation from eclipsing another. + - For backwards compatability, do best guess at backend. + +M data/ui/object-editor.ui +M src/bc-backends.c +M src/bc-backends.h +M src/label-barcode.c +M src/label-barcode.h +M src/object-editor-bc-page.c +M src/object-editor-private.h +M src/object-editor.c +M src/xml-label-04.c +M src/xml-label.c +M templates/glabels-2.3.dtd + +commit 2ef27d0e798c9c6f72c946ed502bc7d670ab4a07 +Author: Robin Stuart +Date: 2010-08-21 + + Added support for Maxicode barcodes using the libzint backend. + +M src/bc-backends.c +M src/bc-zint.c +M src/bc.c +M src/bc.h +M src/label-barcode.c + +commit 7e031374c3c42b858eb321a5cbaf63ffa7d9cd3e +Author: Andrej ŽnidarÅ¡ič +Date: 2010-08-18 + + Updated Slovenian translation + +M po/sl.po + +commit e805759afe8c7c0c410516f387ee76cb37f23827 +Author: Marek Černocký +Date: 2010-08-11 + + Updated Czech translation + +M po/cs.po + +commit 1f0f30a0aa1e81d2b347d61acdf114d7d4041c64 +Author: Andrej ŽnidarÅ¡ič +Date: 2010-08-08 + + Updated Slovenian translation + +M po/sl.po + +commit 16ac39db3608aed0d6859b8472c32fa1da6fd48b +Author: Mario Blättermann +Date: 2010-08-06 + + [i18n] Updated German translation + +M po/de.po + +commit e8c1b3f843997bbdb508e32bd951732ef8ffbc17 +Author: Daniel Mustieles +Date: 2010-08-05 + + Updated Spanish translation + +M po/es.po + +commit 432cc50d56107d94a59269345df985dd75976ffb +Author: Jim Evins +Date: 2010-08-02 + + Added user submitted templates. + + Added templates submitted by Rudolph Leitgeb and E. Travis. + Also cleaned up + avery-iso-templates.xml file. + +M AUTHORS +M templates/avery-iso-templates.xml +M templates/misc-us-templates.xml + +commit 2e156f680d5f563ed3b050dbfe6f6d3d30a5e826 +Author: Jim Evins +Date: 2010-07-14 + + Cleanup zint backend settings and flags. + +M src/bc-backends.c + +commit b5865243f8cb28214bfed442ee5d7cbee2967bc2 +Author: Jim Evins +Date: 2010-07-11 + + More refactoring of barcode subsystem. + + Create a clear separation between the intermediate barcode format and + the management of the barcode backends. + +M src/Makefile.am +A src/bc-backends.c +A src/bc-backends.h +M src/bc-gnubarcode.c +M src/bc-iec16022.c +M src/bc-iec18004.c +M src/bc-postnet.c +M src/bc-zint.c +M src/bc.c +M src/bc.h +M src/label-barcode.c +M src/label-barcode.h +M src/object-editor-bc-page.c +M src/object-editor.h + +commit 6717882e759c320e468683f8c69cf8af1281d91b +Author: Jim Evins +Date: 2010-07-11 + + Refactoring of barcode structure. + + Minor refactoring of API to barcode structure. + +M src/bc-gnubarcode.c +M src/bc-iec16022.c +M src/bc-iec18004.c +M src/bc-postnet.c +M src/bc-zint.c +M src/bc.c +M src/bc.h +M src/label-barcode.c + +commit f6a1818fe2e0975dc664a1863594f3ed371e0937 +Author: Andrej ŽnidarÅ¡ič +Date: 2010-07-10 + + Updated Slovenian translation + +M po/sl.po + +commit 8d2a845d489a74468776034fdab4a2e377ecffaa +Author: Daniel Mustieles +Date: 2010-07-10 + + Updated Spanish translation + +M po/es.po + +commit b012b9c74def1a87e21e678486eeb4debeaf23be +Author: Jim Evins +Date: 2010-07-10 + + Improved centering of barcode text. + + Don't try to calculate x offset using hardcoded fixed character + width, which + does not work properly for proportional fonts. Use the origin + provided by + zint (wich is at the horizontal center) and use pango to calculate + the offset + at render time. + +M src/bc-zint.c +M src/bc.h +M src/label-barcode.c + +commit 61aa9b8dce8e6143eba39b368897a5f1a39a8e29 +Author: Jim Evins +Date: 2010-07-10 + + Update po files to allow me to push this branch. + +M po/ca.po +M po/cs.po +M po/da.po +M po/de.po +M po/eo.po +M po/es.po +M po/fr.po +M po/it.po +M po/ja.po +M po/ko.po +M po/nb.po +M po/pl.po +M po/pt.po +M po/pt_BR.po +M po/ru.po +M po/sl.po +M po/sv.po +M po/zh_CN.po +M po/zh_TW.po +M src/Makefile.am + +commit e43f6397f295172646ed67456799c1fe6cbfb94a +Author: Jim Evins +Date: 2010-07-09 + + Added new barcode drawing primitives. + + Added a "Box" and a "String" barcode drawing primitives. The box + primitive + should be more natural for drawing actual boxes instead of lines. + The string + primitive allows an entire string to be rendered with a single + interaction with + pango and cairo, rather than an interaction for each character. + There is no + need to try to implement kerning since pango will take care of the + string as + a single layout. + +M src/bc-zint.c +M src/bc.c +M src/bc.h +M src/label-barcode.c + +commit f2ced22e6919c5311fb0467e0f07874d9e28e16d +Author: Jim Evins +Date: 2010-07-09 + + Fixed width behavior of object editor. + + I had neglected to add the barcode page to the appropriate size + group. Longer + names in the zint backend caused the style combobox to be the long + pole in + the tent, causing the width of the object editor to fluctuate when + selecting + and un-selecting barcode objects. + +M data/ui/object-editor.ui + +commit 7e6b5431df2e8eed3152fb33db25c856dfc2a20b +Author: Jim Evins +Date: 2010-07-08 + + Revert "Fix for batch output" + + This reverts commit 03d80812158823eb8ad7184d1c7629b64daaecb5. + +M src/label-text.c + +commit dd0b78bdd763b8f47b1031b478c6b2b57119fff3 +Author: Sam Lown +Date: 2010-07-08 + + Fix for batch output + +M src/label-text.c + +commit 8b662f5b767bb4172e4b1911ecb304bd0b4c5b40 +Author: Sam Lown +Date: 2010-07-07 + + Freeing memory in xml and adding poor mans kerning to bc-zint + +M src/bc-zint.c +M src/xml-label.c + +commit e9f492c8fc1638bc9a0a7014653e54306c7e974e +Author: Sam Lown +Date: 2010-07-07 + + Using regexp to remove white space from text instead of detecting + newlines in xml + +M src/xml-label.c + +commit a3fd97c6757a71f8761f76bb28c356ca425148c2 +Author: Sam Lown +Date: 2010-07-07 + + Getting GS1-128 to behave as expected + +M src/bc.c + +commit 9d21b20ed765ef3f924a9ee48158cde94f707022 +Author: Sam Lown +Date: 2010-07-06 + + Adding Robin's changes for latest Zint + +M src/bc-zint.c +M src/bc.c + +commit f3219c0e3e7800336ac13b8fbd8f62371c2398bb +Author: Sam Lown +Date: 2010-06-13 + + Provides barcode even if invalid for correct sizing + +M src/bc-zint.c + +commit 65dd24369545da8bd2a698fa72f08fac40cd2d37 +Author: Sam Lown +Date: 2010-06-12 + + Minor alteration for GS1-128 length@ + +M src/bc.c + +commit 769479af3289ee847ccea3145d91d15a80482b69 +Author: Sam Lown +Date: 2010-06-11 + + Updating for Zint strings and fixed dimensions + +M src/bc-zint.c +M src/bc.c + +commit e1e80392cc40e87cd673e1d55a450d393432c240 +Author: Sam Lown +Date: 2010-05-30 + + Alterations to zint rendering + +M src/bc-zint.c + +commit 6220643a6116d965c08e17da3f35acd66698be1d +Author: Sam Lown +Date: 2010-05-30 + + Modified Zint support to use rendered data rather than encoded + +M src/bc-zint.c + +commit b8b660ce6a19fd5c32d2311a6afe873c10f399c2 +Author: Sam Lown +Date: 2010-05-17 + + Forwardporting changes for zint barcode support + +M src/Makefile.am +M src/bc-zint.c + +commit bc70724dbf60a6d2ee2f393b1252aed167e07823 +Author: Jim Evins +Date: 2010-07-08 + + Initialize font-history subsystem in glabels-batch. + +M src/glabels-batch.c + +commit 6b6ff9ba800dde3f3954f36743e390dac8200b22 +Author: Mario Blättermann +Date: 2010-07-07 + + [i18n] Updated German translation + +M po/de.po + +commit 0d5e8e336aa6d3b76470c8b396e442e0e7f2dd83 +Author: Jim Evins +Date: 2010-07-06 + + String cleanup. + + Removed pango markup from translatable strings. Fixed word order + assumption + with use of standalone "per sheet" string. + +M data/ui/merge-properties-dialog.ui +M data/ui/object-editor.ui +M data/ui/prefs-dialog.ui +M data/ui/print-op-dialog-custom-widget.ui +M libglabels/template.c +M src/template-designer.c + +commit 09b643f62fc415b50a6d85079e0e503b6bd8f2a6 +Author: Jim Evins +Date: 2010-07-06 + + Fixed a few -Wall warnings. + +M src/label-image.c +M src/svg-cache.c + +commit 669df86b2593b4a6ba19b0fa58092f19fabf32b3 +Author: Mario Blättermann +Date: 2010-07-05 + + [i18n] Updated German translation + +M po/de.po + +commit b2ef908e8f1f0ae8daf7a08a82ff9c3e3128f06d +Author: Andrej ŽnidarÅ¡ič +Date: 2010-07-04 + + Updated Slovenian translation + +M po/sl.po + +commit 3e365e5f9187a12fbf0e29d4d3804cab0261e8e9 +Author: Jim Evins +Date: 2010-07-02 + + Add native support for SVG images. + + Rather than just rasterizing SVG files into GdkPixbufs, use RSVG + to handle + SVG files directly -- preserving the original file as inline data. + +M configure.ac +M po/POTFILES.in +M src/Makefile.am +M src/debug.c +M src/debug.h +M src/file-util.c +M src/file-util.h +M src/label-image.c +M src/label-image.h +M src/label.c +M src/label.h +M src/object-editor.c +A src/svg-cache.c +A src/svg-cache.h +M src/xml-label.c +M templates/glabels-2.3.dtd + +commit 85c5b1fa0d48486d3985c43cd0272a3d5d0753c7 +Author: Daniel Mustieles +Date: 2010-06-16 + + Updated Spanish translation + +M po/es.po + +commit 907a32752b637186451c56cc79fa19b35e7e33e2 +Author: Jim Evins +Date: 2010-06-12 + + Add shadow property to image objects. + + Added shadow support to image objects. Shadow is created from + the image's + alpha channel, so the shadow will work properly for images with + transparent + backgrounds. More work needs to be done to better optimize the + performance. + +M src/Makefile.am +M src/label-image.c +M src/object-editor.c +A src/pixbuf-util.c +A src/pixbuf-util.h + +commit 3f4bd5d778015e524870eeb8bf89ad5bd615eabe +Author: Jim Evins +Date: 2010-06-12 + + Cleanup of shadows for boxes and ellipses. + + Do a more intelligent job of drawing shadows for boxes and ellipses. + Instead + of just blindly drawing a fill shadow and an outline shadow, choose + to draw + one or the other and adjust size of shadow appropriately. + +M data/ui/object-editor.ui +M src/label-box.c +M src/label-ellipse.c + +commit fe7a2fbf407047c5d69ccc93e9d5a6cb92d08871 +Author: Jim Evins +Date: 2010-06-11 + + Do not explicitly set sidebar size. + + Use 2 sizegroups to automatically fix sidebar size based on the size + of the widgets it contains -- even hidden ones. The width was + previously + set explicitly to prevent the sidebar from changing size whenever + objects + are selected and unselected. This has been problematic for + compatability + with different themes, fonts, and translations. + +M data/ui/object-editor.ui +M src/object-editor.c +M src/ui-sidebar.c + +commit 1382ac85c0d0516a9760db1f52173a6d3f0563e5 +Author: Andrej ŽnidarÅ¡ič +Date: 2010-06-11 + + Updated Slovenian translation + +M po/sl.po + +commit 8aa1c5b131e6ee24c2f1c54be23239f062c91a65 +Author: Mario Blättermann +Date: 2010-06-10 + + Updated German translation + +M po/de.po + +commit 2dc9de0c566a201d49f436fa6831dec403603f2e +Author: Jim Evins +Date: 2010-06-09 + + Added text merge backend for semicolon separated values + + Feature request #3013910. Added entry for a text merge backend using + a semicolon as delimiter. + +M src/merge-init.c + +commit 59eac573a766dce34876713953efd5a147fd0222 +Author: Jim Evins +Date: 2010-06-06 + + Some final preparation for 2.3.0. + +M NEWS +M configure.ac + +commit 245b69b5ed745eea8509133fd5c49a8bdde8082f +Author: Christian Persch +Date: 2010-06-05 + + Speed up large barcodes + + g_list_append() is evil. Just use prepend(). + +M src/bc.c + +commit 3cc1494b4838d0aa4c6b4fb35f15a80b44a69071 +Author: Jim Evins +Date: 2010-06-05 + + Some preparation for 2.3.0 release + +M AUTHORS +M NEWS +M configure.ac + +commit b27f91e7105e2a28ca1f7377d67ee20ccd7ec994 +Author: Michel Recondo +Date: 2010-06-05 + + Updated Brazilian Portuguese translation + + Reviewed by Henrique Machado + +M po/pt_BR.po + +commit 3c200d2279f57999de42fb211ed878de3a62ad5b +Author: Jim Evins +Date: 2010-06-04 + + Updated libglabels documentation. + +M docs/libglabels/libglabels-3.0-sections.txt +M docs/libglabels/tmpl/category.sgml +M docs/libglabels/tmpl/db.sgml +M docs/libglabels/tmpl/paper.sgml +M docs/libglabels/tmpl/str.sgml +M docs/libglabels/tmpl/template.sgml +M docs/libglabels/tmpl/units.sgml +M docs/libglabels/tmpl/vendor.sgml +M docs/libglabels/tmpl/xml-category.sgml +M docs/libglabels/tmpl/xml-paper.sgml +M docs/libglabels/tmpl/xml-template.sgml +M docs/libglabels/tmpl/xml-vendor.sgml +M docs/libglabels/tmpl/xml.sgml +M libglabels/db.c +M libglabels/str.c + +commit 424d8c45333504425cebb58d97b1f9e58e45a473 +Author: Jim Evins +Date: 2010-06-02 + + Fixed a few -Wall warnings + +M libglabels/db.c +M src/file-util.c +M src/merge.c +M src/str-util.c + +commit 10d31988ea2247e420f2622043fb8586bc839ed9 +Author: Jim Evins +Date: 2010-06-02 + + Updated NEWS for upcoming 2.3.0 release. + +M NEWS + +commit a05703c9967c8bca38785a8c4872bf6ab266f57c +Author: Jim Evins +Date: 2010-05-31 + + Updated DTD. + +M templates/glabels-2.3.dtd + +commit 55b7dda6b69c4f1a25734152fd6b69b72ee3f385 +Author: Jim Evins +Date: 2010-05-30 + + Fix selection problem. + + Clear existing paths before creating new test paths. This would + occasionally + cause the wrong object to be selected because the in_fill or in_stroke + tests would be satisfied using left-over paths from previous tests. + +M src/label-barcode.c +M src/label-box.c +M src/label-ellipse.c +M src/label-image.c +M src/label-line.c +M src/label-text.c + +commit c555edf9c5195b45812383d699e6021417dd96cd +Author: Joe Hansen +Date: 2010-05-30 + + Updated Danish translation + +M po/da.po + +commit 1ce273bf46b7e199600e5332d2ee13a2e4aea241 +Author: Daniel Mustieles +Date: 2010-05-30 + + Updated Spanish translation + +M po/es.po + +commit 1990055cc0190e23fc0796ff04c00678b68faba3 +Author: Jim Evins +Date: 2010-05-29 + + Tweak rendering of color swatches and font samples. + +M src/color-swatch.c +M src/font-sample.c + +commit 06f27cce690f6ee0a498a05ae16d4eeb96cf20c1 +Author: Jim Evins +Date: 2010-05-29 + + Explicitly link with libm. + +M src/Makefile.am + +commit 1d85e165dcfedb28327b8e79bd91bdbb02e1f6e6 +Author: Andrej ŽnidarÅ¡ič +Date: 2010-05-28 + + Updated Slovenian translation + +M po/sl.po + +commit bb8763ff8f3d739280dafbde15e27622fa08148a +Author: Daniel Mustieles +Date: 2010-05-28 + + Updated Spanish translation + +M po/es.po + +commit 88decad7363f3e3d13ca34fd6e956ed9bd197a11 +Author: Claude Paroz +Date: 2010-05-27 + + Updated French translation + + Contributed by Claude Paroz and Gérard Baylard + +M po/fr.po + +commit 26990ef637b55a385c9b61308bc6ecbb9234334b +Author: Jim Evins +Date: 2010-05-26 + + Some minor barcode cleanup + + - Added DEBUG_BARCODE so that verbosity on stdout of new libzint + backend + can be controlled. + - Removed artifact comments and some minor formatting changes + in libzint + backend. + - In object editor, make preview format track the number of digits + in the + digits spinbox in real-time. + +M src/bc-zint.c +M src/bc.c +M src/debug.c +M src/debug.h +M src/object-editor-bc-page.c + +commit c22727a27e8ab935eeaf4ef2a0d5119212597406 +Author: Daniel Mustieles +Date: 2010-05-26 + + Updated Spanish translation + +M po/es.po + +commit 4071ed90076bb15c831435063b2b6bce0cbbe00e +Author: Mario Blättermann +Date: 2010-05-25 + + Updated German translation + +M po/de.po + +commit 29d57a7936c1d39db31fd5e952bda32f13331ac1 +Author: Jim Evins +Date: 2010-05-24 + + Additional translator hints. + + - Fixed a couple of strings that should not have been marked + translatable. + - Added comments for "Fixed", "Other", "None", and "No match." + - Attempted to disambiguate 3 different occurances of "Any" + +M data/ui/new-label-dialog.ui +M data/ui/object-editor.ui +M libglabels/db.c +M libglabels/template.c +M src/media-select.c +M src/merge-properties-dialog.c +M src/merge.c + +commit eb650e1275a4a9f54ef05c97933646ec37fc7d56 +Author: Jim Evins +Date: 2010-05-24 + + Use a translator comment rather than context. + +M src/mini-preview.c + +commit d9f004626ba7f8a8870c3265c89863b569357556 +Author: Jim Evins +Date: 2010-05-24 + + Added context for "Up" string + +M src/mini-preview.c + +commit 51181713e931b531cb595dffe2c7fc742155b687 +Author: Jim Evins +Date: 2010-05-24 + + Removed "translatable" attribute from unused builder strings + + Removed "translatable" attribute from unused builder strings. + These strings + are an artifact of how I organized the individual pages for + GtkAssistants + in GtkNotebooks in glade. + +M data/ui/new-label-dialog.ui +M data/ui/template-designer.ui + +commit 21115bdb38a0b6ffc93cfa6c6611dc071cb3812a +Author: Takeshi AIHANA +Date: 2010-05-24 + + Updated Japanese translation, taken from the 2_2 branch + +M po/ja.po + +commit b039cb00f971a74d9add15fbeecadfa37de698f7 +Author: Mario Blättermann +Date: 2010-05-24 + + Updated German translation + +M po/de.po + +commit 3144ddc46eea2ac6e74887a6229981491da10aa0 +Author: Mario Blättermann +Date: 2010-05-24 + + Made PEARL label descriptions translatable + +M po/POTFILES.in + +commit b0ef76a570d6af52af44dbe0014ebe559720058c +Author: Mario Blättermann +Date: 2010-05-24 + + Added more labels + +M templates/pearl-iso-templates.xml + +commit 0c89cdc382cd774da88e0b065fc0b6851aacbdf1 +Author: Jim Evins +Date: 2010-05-24 + + Properly mark strings as no-c-format + + Properly mark non-c-format strings containing '%' as no-c-format. + - Added "xgettext: no-c-format" comments as suggested by Claude + Paroz. + - Removed backslashes ('\') from my ignorant attempt to address this. + +M src/color-combo-menu.c + +commit 30d4df7681459d895ef5c09e2e43ba88c0e72785 +Author: Jim Evins +Date: 2010-05-22 + + Minor refactoring of glBarcode structure. + + Minor refactoring of glBarcode structure in preparation of support for + more exotic barcode shapes. + +M src/bc-gnubarcode.c +M src/bc-iec16022.c +M src/bc-iec18004.c +M src/bc-postnet.c +M src/bc-zint.c +M src/bc.c +M src/bc.h +M src/label-barcode.c + +commit ee2801d56d29e847b90849f95a14e2cab518718d +Author: Jim Evins +Date: 2010-05-17 + + Autosize zint barcode when w == 0 && h == 0. + +M src/bc-zint.c + +commit 0f73f8658931299b97a4e9126622014e7d86e9ed +Author: Sam Lown +Date: 2010-05-17 + + Added libzint as a barcode backend. + + Added libzint as a barcode backend. Currently only implements the + GS1-128 barcode. + +M configure.ac +M src/Makefile.am +A src/bc-zint.c +A src/bc-zint.h +M src/bc.c + +commit 94475149f8f8568f62723cb2428ce11d76243f1b +Author: Jim Evins +Date: 2010-05-16 + + Allow for small error in comparison of dimensions. + + In lgl_template_are_templates_identical(), allow for a small + error when + comparing dimensions. Set EPSILON to 0.5pt, which is aproximately + 0.007in or 0.2mm. + +M libglabels/template.c + +commit a4d7958651c3cd53424b8ca74b314b8bd71a055f +Author: Jim Evins +Date: 2010-05-15 + + Use g_get_user_config_dir() to locate custom templates. + + Use g_get_user_config_dir() to locate custom template. By default + this + means that custom templates will be stored at + ~/.config/libglabels/templates + instead of ~/.glabels. + + Also automatically migrate user custom templates to the new location + when + run for the first time. + +M libglabels/Makefile.am +M libglabels/db.c +M libglabels/libglabels-private.h + +commit a8fe0a4371351910d70fc66f71b347ba904fafa0 +Author: Jim Evins +Date: 2010-05-15 + + Update TODO file. + +M TODO + +commit 25a0745280c5b37d702bca540a0bc1f78ac8270e +Author: Mario Blättermann +Date: 2010-05-15 + + Updated German translation + +M po/de.po + +commit 634f1afa97ecae4589fb82d130de78b0b2724db0 +Author: Mario Blättermann +Date: 2010-05-15 + + Fixed filenames in POTFILES.in + +M po/POTFILES.in + +commit 25af4f2b739108625226db78aebe4b206535bacb +Author: Daniel Mustieles +Date: 2010-05-15 + + Updated Spanish translation + +M po/es.po + +commit d88c0c2aa50950095fbff6fef46732d586333522 +Author: Jim Evins +Date: 2010-05-12 + + Renamed builder files to use '.ui' extension. + +M configure.ac +M data/Makefile.am +D data/builder/Makefile.am +A data/ui/Makefile.am +R100 data/builder/media-select.builder data/ui/media-select.ui +R100 data/builder/merge-properties-dialog.builder +data/ui/merge-properties-dialog.ui +R100 data/builder/new-label-dialog.builder +data/ui/new-label-dialog.ui +R100 data/builder/object-editor.builder data/ui/object-editor.ui +R100 data/builder/prefs-dialog.builder data/ui/prefs-dialog.ui +R100 data/builder/print-op-dialog-custom-widget.builder +data/ui/print-op-dialog-custom-widget.ui +R100 data/builder/property-bar.builder data/ui/property-bar.ui +R100 data/builder/template-designer.builder +data/ui/template-designer.ui +M src/media-select.c +M src/merge-properties-dialog.c +M src/new-label-dialog.c +M src/object-editor.c +M src/prefs-dialog.c +M src/print-op-dialog.c +M src/template-designer.c +M src/ui-property-bar.c + +commit 4d51e31d5f526b0885b25be6f94624e5ea4ff1f7 +Author: Jim Evins +Date: 2010-05-11 + + Reconciled font size limits in separate spinboxes. + +M data/builder/object-editor.builder + +commit f470b3aa6484c6c56cc98d451c6f57708aaf4d53 +Author: Jim Evins +Date: 2010-05-10 + + Refinements to text objects + + - Draw outline around text objects. + - Use a more sophisticated test for determining if cursor is on a text + object: test against glyphs instead of simple bounds test. + The test will + also indicate that cursor is on the object if it is on the + selection outline. + - Do word wrap instead of character wrap. + +M src/label-text.c + +commit edff98c6ae5250858a3e376a992ba84265a93d6c +Author: Jim Evins +Date: 2010-05-07 + + Added several vendor URLs. + +M templates/vendors.xml + +commit 206b483f611441d18db5360800975f2f0d35014b +Author: Jim Evins +Date: 2010-05-05 + + Added sanity tests to template parser + + When parsing a template node, if there is no recognized frame node + (e.g. + Label-rectangle), a default full-page frame with a 1x1 layout + is created. + Likewise, if a frame has no layout, a default 1x1 layout is created. + This prevents potential crashes due to typos in the case of typos in + hand generated templates. + +M libglabels/str.c +M libglabels/xml-template.c + +commit 6509948cb27c7c76349350e1b84aaaf4a52c7e59 +Author: Jim Evins +Date: 2010-05-02 + + Added Avery 8658 family of templates. + + Added Avery 8658 family of templates, submitted by Nigel Titley. + +M templates/avery-iso-templates.xml + +commit 7d926a37cc8956753d610140fc301b845e3a7de9 +Author: Jim Evins +Date: 2010-05-02 + + Do a better job of rounding in lgl_str_format_fraction(). + + When a number is determined to be "close enough" to being an integer, + don't + just simply cast the number to get the integer value. + +M libglabels/str.c + +commit 8df8aedaf99f072cb2739fbbdcfa3440acd415eb +Author: Jim Evins +Date: 2010-05-01 + + Removed obsolete workaround. + + Removed obsolete workaround for Pango Bug#341481. This is now + fixed in + recent versions of Pango. + +M src/label-text.c + +commit 8fb4c72166b2052b31bc9b5f02e63c6ae5886a82 +Author: Jim Evins +Date: 2010-04-29 + + Minor Cleanup + +M libglabels/db.c +M src/new-label-dialog.c + +commit e322da91fe4a9bdabbc35e1e146e1dada04d6288 +Author: Jim Evins +Date: 2010-04-25 + + Added "Up" label to orientation arrow. + + Added an "Up" label to the orientation arrow in the 1st label in the + mini preview. Use theme base color for arrow and label. Don't draw + arrow if w == h. + +M src/mini-preview.c + +commit 7381cfd88fa386dc1fc3a7cce0d0aaac9c4dce45 +Author: Jim Evins +Date: 2010-04-21 + + Added test for duplicate templates + + Added test for duplicate pre-defined templates. Removed duplicate + template in pearl-iso-templates.xml. Also added lgl_template_print() + for + debugging purposes. + +M libglabels/db.c +M libglabels/template.c +M libglabels/template.h +M templates/pearl-iso-templates.xml + +commit 0633489db60773e6e61914d978d9f64bae0fbf13 +Author: Jim Evins +Date: 2010-04-20 + + Added decorations to "new label" dialog + + Added new images to decorate each page of the "new label" + dialog/wizard. + +M data/pixmaps/Makefile.am +A data/pixmaps/new-confirm.png +A data/pixmaps/new-rotate.png +A data/pixmaps/new-select.png +M src/new-label-dialog.c + +commit 58982c93787c62d55e343f6b316643fe5d4f05d6 +Author: Jim Evins +Date: 2010-04-18 + + Added ability to edit user-defined templates + +M libglabels/db.c +M libglabels/db.h +M src/media-select.c +M src/mini-preview-pixbuf-cache.c +M src/mini-preview-pixbuf-cache.h +M src/template-designer.c +M src/template-designer.h + +commit 08f8cffbc138c302c502b08c4464462d19532bcf +Author: Jim Evins +Date: 2010-04-04 + + Changed packing style for media select widget + + Changed packing style for media select widget so that it will expand + both horizontally and vertically with new label dialog. + +M data/builder/media-select.builder +M data/builder/new-label-dialog.builder + +commit 3ebe5807c5895cd9ca91233813ad11a9a0916698 +Author: Jim Evins +Date: 2010-04-03 + + Allow "new label" and "properties" dialogs to be resizable. + +M src/file.c + +commit 1404fad764041cd32b156e43fb3a6417d9e140d9 +Author: Filipe Roque +Date: 2010-04-04 + + Updated Portuguese translation + +M po/LINGUAS +A po/pt.po + +commit 253e63d0a170859aeae433afb94c8df9908f2e92 +Author: Jim Evins +Date: 2010-04-03 + + Added Avery DL33 and look-alike templates. + + DL33 templates provided by Ian Shuttleworth. + +M AUTHORS +M templates/avery-iso-templates.xml +M templates/misc-iso-templates.xml + +commit 8bbf05ef33758514b23fdd31ed5b0e4d5f128396 +Author: Jim Evins +Date: 2010-03-31 + + Fixed selection problem with media select widget + + Fixed selection problem with media select widget by removing cut&paste + artifact from last update to this widget. + +M src/media-select.c + +commit 712fd7eb1a39500a22196feef726d4fb26cf1acb +Author: Mario Blättermann +Date: 2010-03-29 + + Updated German translation + +M po/de.po + +commit 07cc165a7d57312cffee8b56a318fe4a597cdb83 +Author: Jim Evins +Date: 2010-03-28 + + Added "custom" tab to media select widget + + Added "custom" tab to media select widget. In this tab, the user can + launch the template designer or delete an existing user-defined + template. + Added notification callbacks to libglabels db subsystem so that the + media select widget will automatically update when user-defined + templates + are added or deleted. The "edit" button does not do anything yet. + + Also did some visual cleanup to the new label dialog. + + Also include ../libglabels in SUBDIRS in src/ so that libglabels can + be rebuilt from src/ directory. + +M data/builder/media-select.builder +M data/builder/new-label-dialog.builder +M libglabels/db.c +M libglabels/db.h +M src/Makefile.am +M src/media-select.c + +commit 270bb68dcf6c6e02af8643bec6e9b82a80542c91 +Author: Andrej ŽnidarÅ¡ič +Date: 2010-03-21 + + Updated Slovenian translation + +M po/sl.po + +commit cce75a2b36bd94b7771c779c0f0d7b9dd30813b9 +Author: Jim Evins +Date: 2010-03-21 + + Added new file to POTFILES.in from last commit. + +M po/POTFILES.in + +commit 0a83046c78acea94d80fe2aea239a220445410ab +Author: Jim Evins +Date: 2010-03-21 + + Yet another new "New Label Dialog" + + Re-designed the "New label dialog" again. This time as a "wizard" or + GtkAssistant. This is an attempt to keep the easy navigation of the + 2.2.x dialog, to keep the added meta data and preview of the latest + incarnation, and to maintain a compact dialog that should work + on fairly + small displays such on netbooks (probably not hand-helds still). + +M data/builder/Makefile.am +A data/builder/media-select.builder +M data/builder/new-label-dialog.builder +M po/POTFILES.in +M src/Makefile.am +M src/file.c +D src/media-combo-menu-item.c +D src/media-combo-menu-item.h +D src/media-combo-menu.c +D src/media-combo-menu.h +D src/media-combo.c +D src/media-combo.h +A src/media-select.c +A src/media-select.h +M src/new-label-dialog.c +M src/new-label-dialog.h +D src/rotate-label-button.c +D src/rotate-label-button.h + +commit fd8e5102e03cf35277af2a99a15d5b5402de5b77 +Author: Mario Blättermann +Date: 2010-03-20 + + Updated German translation + +M po/de.po + +commit 0f42e39d7e5cacf48e972b50b882fd955288ffaf +Author: Jim Evins +Date: 2010-03-18 + + Escape URLs in markup. + + Escape URLs in vendor and product markup. Also rearranged the layout + of the + new "new label" dialog -- I am still not happy with navigating + the templates + with this new dialog. I will probably try for a hybrid between + this and + the 2.2.x dialog. + +M data/builder/new-label-dialog.builder +M src/new-label-dialog.c + +commit 1d1965d625e85601514f7c6dcf5ef53a34859e5d +Author: Jim Evins +Date: 2010-03-17 + + Added missing file from last commit. + +A templates/pearl-iso-templates.xml + +commit 3cc850d2ede031b82a21781c029370407b90a980 +Author: Jim Evins +Date: 2010-03-17 + + Reconciled label database with 2.2 branch + + Merged recent template additions from 2.2 branch + some cleanup. + +M AUTHORS +M templates/Makefile.am +M templates/glabels-2.3.dtd +M templates/misc-iso-templates.xml + +commit 7356e898494b7d68c0fc9063f2ec0fdb867bf471 +Author: Jim Evins +Date: 2010-03-16 + + Catching up on template submissions. + +M AUTHORS +M templates/misc-iso-templates.xml +M templates/misc-us-templates.xml + +commit fad9e52268012e6e046cd989d708026d6a244e70 +Author: Kjartan Maraas +Date: 2010-03-15 + + Add Norwegian language entry. + +M po/LINGUAS + +commit 5c38897c7d89d517c010e1f8a2271e55bc7f31d3 +Author: Kjartan Maraas +Date: 2010-03-15 + + Added Norwegian bokmÃ¥l translation + +A po/nb.po + +commit 7c7efdf6f7d84030b13761f460eeef61ae0c2fc3 +Author: Jim Evins +Date: 2010-03-13 + + Make fractions more readable + + Use Unicode superscripts and subscripts to format fractions. + Should be + more readable than the uggly 1_5/8. + +M libglabels/str.c + +commit 84dfd774bae16f8bdc9dde21baabd41cc7638dd0 +Author: Jim Evins +Date: 2010-03-13 + + Some new label dialog cleanup + + Draw arrow in mini preview relative to first label, not the entire + sheet. + This should be more obvious what the arrow is indicating, before + it could + have been interpreted as the feed direction. + + Don't put an empty line at the end of the list of similar templates. + +M src/mini-preview.c +M src/new-label-dialog.c + +commit 4abc5d0a6552b48c0190e5a2baff4a6eb14b9281 +Author: Jim Evins +Date: 2010-03-10 + + Reconciled POTFILES.in with last commit. + +M po/POTFILES.in + +commit 44ad3d257b9594674604fa82215e72759b40de11 +Author: Jim Evins +Date: 2010-03-10 + + Created new "New label dialog" + + Created a new re-designed "New label dialog." The dialog now shows + meta-data + for the selected template, including hyperlinks to vendor and product + websites, if available. The new dialog is more compact and thus + should + be usable on small displays such as netbooks (probably not + hand-helds). + + The menu is somewhat clumbsy to navigate still -- will need to + reorganize + to make navigation easier and more intuitive. + +M data/builder/Makefile.am +D data/builder/media-select.builder +A data/builder/new-label-dialog.builder +M libglabels/db.c +M libglabels/db.h +M libglabels/str.c +M libglabels/str.h +M libglabels/template.c +M libglabels/template.h +M src/Makefile.am +A src/media-combo-menu-item.c +A src/media-combo-menu-item.h +A src/media-combo-menu.c +A src/media-combo-menu.h +A src/media-combo.c +A src/media-combo.h +D src/media-select.c +D src/media-select.h +M src/mini-preview.c +M src/mini-preview.h +M src/new-label-dialog.c +M src/rotate-label-button.c +M src/str-util.c +M src/str-util.h + +commit d94c47da20d726831e16f8cd720d64d26ce85d2b +Author: Jim Evins +Date: 2010-03-02 + + Minor Cleanup + +M COPYING.README_FIRST +M README +M configure.ac +M libglabels/xml-template.c +M libglabels/xml-vendor.c +M src/cairo-label-path.c +M src/cairo-markup-path.c +M src/label-line.c +M src/label-text.c +M src/template-designer.c +M templates/avery-iso-templates.xml +M templates/avery-other-templates.xml +M templates/avery-us-templates.xml +M templates/brother-other-templates.xml +M templates/categories.xml +M templates/dymo-other-templates.xml +M templates/maco-us-templates.xml +M templates/misc-iso-templates.xml +M templates/misc-other-templates.xml +M templates/misc-us-templates.xml +M templates/paper-sizes.xml +M templates/uline-us-templates.xml +M templates/vendors.xml +M templates/worldlabel-us-templates.xml +M templates/zweckform-iso-templates.xml + +commit 4aa7c2ac0a4578c2213b8964dff098f039eef703 +Author: Jim Evins +Date: 2010-02-28 + + Cleanup of libglabels documentation. + + Added documentation for new functionality in 3.0, including the vendor + database and a new "natural order" compare function for sorting + part numbers. + +M docs/libglabels/libglabels-3.0-docs.sgml +M docs/libglabels/libglabels-3.0-sections.txt +M docs/libglabels/tmpl/db.sgml +M docs/libglabels/tmpl/str.sgml +M docs/libglabels/tmpl/template.sgml +A docs/libglabels/tmpl/vendor.sgml +A docs/libglabels/tmpl/xml-vendor.sgml +M libglabels/str.c +M libglabels/template.c +M libglabels/vendor.c +M libglabels/xml-template.c + +commit 12f3f040b340c30188e4953b9f6a51263206f8ab +Author: Jim Evins +Date: 2010-02-28 + + Updated libglabels documentation to support parallel installation + +M .gitignore +M docs/libglabels/Makefile.am +R094 docs/libglabels/libglabels-docs.sgml +docs/libglabels/libglabels-3.0-docs.sgml +R100 docs/libglabels/libglabels-overrides.txt +docs/libglabels/libglabels-3.0-overrides.txt +R099 docs/libglabels/libglabels-sections.txt +docs/libglabels/libglabels-3.0-sections.txt +R100 docs/libglabels/libglabels.types +docs/libglabels/libglabels-3.0.types +R100 docs/libglabels/tmpl/libglabels-unused.sgml +docs/libglabels/tmpl/libglabels-3.0-unused.sgml +M docs/libglabels/tmpl/template.sgml +M docs/libglabels/tmpl/units.sgml + +commit 7838152cdfea71a3676e40593ab4cb4a30484ffe +Author: Jim Evins +Date: 2010-02-28 + + Additional changes to support parallel installation + + Changed GETTEXT_PACKAGE to glabels-3.0 and renamed help files + to support + parallel installation with other versions of glabels. + +M .gitignore +M configure.ac +R100 help/C/glabels.xml help/C/glabels-3.0.xml +M help/Makefile.am +R100 help/glabels.omf.in help/glabels-3.0.omf.in +M po/POTFILES.in +M src/ui-commands.c + +commit 69f4e1fc6a8a731d8a73e020810aef5a895fba5b +Author: Jim Evins +Date: 2010-02-26 + + Cleanup of mime support + + Removed old mime support files. Renamed mime icon file. + +M .gitignore +M Makefile.am +M data/mime/Makefile.am +R100 data/mime/glabels.xml.in data/mime/glabels-3.0.xml.in +D data/mime/glabels.applications +D data/mime/glabels.keys.in +D data/mime/glabels.mime +M data/pixmaps/Makefile.am +R100 data/pixmaps/glabels-3.0-application-x-glabels.png +data/pixmaps/application-x-glabels.png + +commit 65b8b97bc7fece41dcbba69f4ef4533c4fc6b2e5 +Author: Jim Evins +Date: 2010-02-25 + + Updated mimetype icon. + + Updated mimetype icon to look more modern. + +M data/pixmaps/glabels-3.0-application-x-glabels.png + +commit 5f40d24d1843a5b124c9f638bf9d57e7fead5b4f +Author: Jim Evins +Date: 2010-02-24 + + Rename executables and key files to support parallel installation + + Renamed glabels and glabels-batch to glabels-3 and glabels-3-batch + to support + parallel installation with other versions of glabels. Also renamed + and + reconciled man pages and icon files. + +M .gitignore +M data/desktop/Makefile.am +R073 data/desktop/glabels.desktop.in +data/desktop/glabels-3.0.desktop.in +M data/man/Makefile.am +A data/man/glabels-3-batch.1 +R095 data/man/glabels.1 data/man/glabels-3.1 +M data/mime/glabels.keys.in +M data/pixmaps/Makefile.am +R100 data/pixmaps/glabels-application-x-glabels.png +data/pixmaps/glabels-3.0-application-x-glabels.png +R100 data/pixmaps/glabels.png data/pixmaps/glabels-3.0.png +M src/Makefile.am +M src/glabels.c +M src/template-designer.c + +commit a68f91d57b2eac4a624a0e0c632338b88581d23d +Author: Jim Evins +Date: 2010-02-24 + + Rename glabels data directory to support parallel installation. + + Renamed glabels data directory from glabels to glabels-3.0 to + ultimately + support parallel installation with older versions of glabels. + +M configure.ac +M data/builder/Makefile.am +M data/pixmaps/Makefile.am +M libglabels/Makefile.am +M libglabels/libglabels-3.0.pc.in +M src/Makefile.am +M src/glabels.c +M src/media-select.c +M src/merge-properties-dialog.c +M src/object-editor.c +M src/prefs-dialog.c +M src/print-op-dialog.c +M src/template-designer.c +M src/ui-commands.c +M src/ui-property-bar.c +M templates/Makefile.am + +commit c69edbd06103ad457c2fa87369094f17d7fa9030 +Author: Jim Evins +Date: 2010-02-23 + + Make libglabels parallel installable with other versions + + Made libglabels install as libglabels-3.0 to support parallel + installation + with earlier versions. Performed some related cleanup associated with + this move, including installing libglabels.h into + include/libglabels-3.0 + and installing all other include files in + include/libglabels-3.0/libglabels/. + + More work is still need to support parallel installation of the + glabels + application. + +M .gitignore +D INSTALL +M autogen.sh +R079 configure.in configure.ac +M data/desktop/Makefile.am +M data/mime/Makefile.am +M libglabels/Makefile.am +R066 libglabels/libglabels.pc.in libglabels/libglabels-3.0.pc.in +M src/Makefile.am +M src/combo-util.c +M src/file.c +M src/font-history-model.c +M src/font-util.c +M src/glabels-batch.c +M src/glabels.c +M src/media-select.c +M src/merge-evolution.c +M src/merge.c +M src/mini-label-preview.c +M src/mini-preview-pixbuf-cache.c +M src/mini-preview.c +M src/prefs-model.c +M src/prefs.c +M src/print-op.c +M src/print.c +M src/rotate-label-button.c +M src/template-designer.c +M src/template-history-model.c +M src/xml-label-04.c +M src/xml-label.c +M templates/Makefile.am + +commit 50f04182df385b4d535ea22de6b8b44c1545f53d +Author: Joe Hansen +Date: 2010-02-23 + + Updated Danish translation + +A po/da.po + +commit 242db8f321477a9cb3a904928a65aeec0fc292b3 +Author: Kenneth Nielsen +Date: 2010-02-23 + + Added da to list of languages + +M po/LINGUAS + +commit 4c65998c8e09c354a93180a39fd35406c28b7dfd +Author: Jorge González +Date: 2010-02-19 + + Added es to DOC_LINGUAS + +M help/Makefile.am + +commit 855164906135d8bf586776b628a4e758f9bf8dbe +Author: Jorge González +Date: 2010-02-19 + + Added initial Spanish translation + +A help/es/es.po + +commit fc936bcec26a162cbef176125c9ddafa34fa0074 +Author: Petr Kovar +Date: 2010-02-18 + + Fix Czech translation by Marek Cernocky + +M po/cs.po + +commit 9959f357a8ab37756c08ef5d63cac2213ab56897 +Author: Petr Kovar +Date: 2010-02-18 + + Add Czech help translation by Marek Cernocky + +M help/Makefile.am +A help/cs/cs.po +A help/cs/figures/main-window-empty.png +A help/cs/figures/merge-ex1-1.png +A help/cs/figures/merge-ex1-2.png +A help/cs/figures/merge-ex1-3.png +A help/cs/figures/merge-ex1-4.png +A help/cs/figures/merge-ex2-1.png +A help/cs/figures/merge-ex2-2.png +A help/cs/figures/merge-ex2-3.png +A help/cs/figures/merge-ex2-4.png +A help/cs/figures/object-editor-sidebar.png +A help/cs/figures/print-copies.png +A help/cs/figures/print-merge.png + +commit eb35f13b2425449c6ec18b5ac5e3dd43169c3256 +Author: Andrej ŽnidarÅ¡ič +Date: 2010-02-12 + + Updated Slovenian translation + +M po/sl.po + +commit fb41df013f26d24c2cb6d395446a7d142716977b +Author: Petr Kovar +Date: 2010-02-11 + + Update Czech translation by Marek Cernocky + +M po/cs.po + +commit 8f71968174b552bd57d342f2deebf58ef8d2ca81 +Author: Jim Evins +Date: 2010-02-03 + + Added support for elliptical labels and markup + + Added support for elliptical labels. + Added support for elliptical markup lines. + +M docs/libglabels/tmpl/template.sgml +M docs/libglabels/tmpl/xml-template.sgml +M libglabels/template.c +M libglabels/template.h +M libglabels/xml-template.c +M src/cairo-label-path.c +M src/cairo-markup-path.c +M templates/glabels-2.3.dtd + +commit 1dd19c88400a07af8f9eb33e05d967d19da91b08 +Author: Jim Evins +Date: 2010-01-28 + + Tweaks to glView. + + - Draw drop shadow behind label. + - Fixed starting grid lines on round labels. + - Adjust grid spacing based on selected units: + Inches -> 0.125 in + mm -> 5 mm + Points -> 10 pt + +M src/units-util.c +M src/units-util.h +M src/view.c +M src/view.h + +commit 8fe68d63b2acb46a133e9e643d45657faf54ee50 +Author: Jim Evins +Date: 2010-01-24 + + Fixed NULL warning when copying uninitialized barcode objects. + + Make sure both arguments to g_ascii_strcasecmp() are non NULL. + +M src/label-barcode.c + +commit 52e8083629f0a9316b7df2bf6b400de8d6bc260e +Author: Jim Evins +Date: 2010-01-24 + + Update TODO list based on current status and plans. + +M TODO + +commit efcdc61b8111ba20416592f02da224468cb5c616 +Author: Mario Blättermann +Date: 2010-01-20 + + Updated German translation + +M po/de.po + +commit a490fde76c660355393bebff2fe48ec4daa3bfd7 +Author: Jim Evins +Date: 2010-01-18 + + Don't allow message bars to stack up in media select widget. + + Remove old glMessageBar when attempting to load glMediaSelect + tree views. + This will make sure if a new glMessageBar is needed, it won't + just stack + up old message bars. + +M src/media-select.c + +commit c840dc081304d5f1b6bba2009324c83dea0d0d7f +Author: Jim Evins +Date: 2010-01-18 + + Cleanup and addition of label templates. + + Reconciled Worldlabel part numbers with current online information. + Added + some additional templates and their Avery look-alikes. + +M templates/avery-us-templates.xml +M templates/worldlabel-us-templates.xml + +commit 938da1f73ef790eb1691d0037ba0686cfececee5 +Author: Mario Blättermann +Date: 2010-01-15 + + Added fr to DOC_LINGUAS + +M help/Makefile.am + +commit 0a1c588f5bb1766a5daef21d0427b37c11489ea6 +Author: Mario Blättermann +Date: 2010-01-14 + + Removed trailing whitespaces from POTFILES.in + +M po/POTFILES.in + +commit d49f1149ff6d35d100444b198d532f84c26ccfc3 +Author: Mario Blättermann +Date: 2010-01-14 + + Added missing template files to POTFILES.in + +M po/POTFILES.in + +commit 73581f4f9b30bd423f930c3fa1bc3942bb5694fd +Author: Petr Kovar +Date: 2010-01-13 + + Updated Czech translation by Marek Cernocky + +M po/cs.po + +commit 9b783558c733321de3e7be150cf3cbf21ddfa985 +Author: Claude Paroz +Date: 2010-01-09 + + Add French translation of manual + + Contributed by Alain Lojewski and Claude Paroz + +A help/fr/figures/main-window-empty.png +A help/fr/figures/merge-ex1-1.png +A help/fr/figures/merge-ex1-2.png +A help/fr/figures/merge-ex1-3.png +A help/fr/figures/merge-ex1-4.png +A help/fr/figures/merge-ex2-1.png +A help/fr/figures/merge-ex2-2.png +A help/fr/figures/merge-ex2-3.png +A help/fr/figures/merge-ex2-4.png +A help/fr/figures/object-editor-sidebar.png +A help/fr/figures/print-copies.png +A help/fr/figures/print-merge.png +A help/fr/fr.po + +commit 091eea6d387183ae34da9a59dbe6ce784e15e544 +Author: Jim Evins +Date: 2010-01-06 + + Delay freeing of pixbuf cache in gl_label_finalize() + + Make sure all objects have been unreferenced before freeing pixbuf + cache -- + including copies in undo/redo stacks. + +M src/label.c + +commit 9f99c2dc866740bf252fa6f0e6e28d165ae3606f +Author: Jim Evins +Date: 2010-01-03 + + Use "natural" sorting order for part numbers + + Use a "natural" sorting order for part numbers. I.e. numeric + portions are + sorted numerically rather than character by character, such that + "A20" will precede "A100". + + Also found and fixed a couple minor inconsistencies in the template + data base + while debugging the new sorting code. + +M libglabels/db.c +M libglabels/str.c +M libglabels/str.h +M templates/avery-other-templates.xml +M templates/avery-us-templates.xml + +commit 90cd31f442b5d0d115ea72fe828414ad32c9e944 +Author: Jim Evins +Date: 2009-12-30 + + Reorganizing template database + + Split out uline-us-templates.xml from avery-us-templates.xml. + Also removed + the single "IP Invent It!" alias. I could not find this brand online + -- I + assume it was a mis-identification -- this was a single alias for + full-sheet + labels which is so generic anyway. + +M templates/Makefile.am +M templates/avery-us-templates.xml +C053 templates/vendors.xml templates/uline-us-templates.xml +M templates/vendors.xml + +commit a5de57d22d62436c5d1014d376ecd22dff8c7853 +Author: Jim Evins +Date: 2009-12-30 + + Reorganizing label database + + Reorganized avery-us-templates.xml to remove deprecated Alias tags. + Also, + split out separate worldlabel-us-templates.xml and + maco-us-templates.xml + files. + +M templates/Makefile.am +M templates/avery-us-templates.xml +A templates/maco-us-templates.xml +A templates/worldlabel-us-templates.xml + +commit f09e62c27585cbf067d6bae33ecd4496d17b1ebc +Author: Mario Blättermann +Date: 2009-12-28 + + Updated German translation + +M po/de.po + +commit b0fcb9d96c1719d1841294dc76f81893c600ace9 +Author: Jim Evins +Date: 2009-12-26 + + Handle zoom-to-fit properly for unrealized view + + Delay calculations in gl_view_zoom_to_fit() if window has not been + realized + yet. Do calculations in realize callback. + +M src/view.c + +commit 03609218a247efb40b71dc10827feff80c05dce2 +Author: Jim Evins +Date: 2009-12-23 + + Fixed typo + + Fixed typo. + +M src/label.c + +commit 73b70cb6f49f732eb826f145cd1c229f707abc7f +Author: Jim Evins +Date: 2009-12-22 + + Added undo/redo feature + + Checkpoint the label state before each user initiated change. These + checkpoint states are kept on an undo stack. As the user pops items + from the undo stack, the current state is pushed onto a redo stack. + +M src/file.c +M src/glabels-batch.c +M src/label-barcode.c +M src/label-barcode.h +M src/label-box.c +M src/label-box.h +M src/label-ellipse.c +M src/label-ellipse.h +M src/label-image.c +M src/label-image.h +M src/label-line.c +M src/label-line.h +M src/label-object.c +M src/label-object.h +M src/label-text.c +M src/label-text.h +M src/label.c +M src/label.h +M src/merge-properties-dialog.c +M src/object-editor.c +M src/template-designer.c +M src/ui-commands.c +M src/ui-commands.h +M src/ui-property-bar.c +M src/ui.c +M src/view-barcode.c +M src/view-box.c +M src/view-ellipse.c +M src/view-image.c +M src/view-line.c +M src/view-text.c +M src/view.c +M src/window.c +M src/xml-label-04.c +M src/xml-label.c + +commit ab665830afa2c549d3b3d76a5a3f20affcc69f57 +Author: Jim Evins +Date: 2009-12-17 + + Refactored MediaSelect code + + - Renamed glWdgtMediaSelect to glMediaSelect + - Created new glMessageBar widget derived from GtkInfoBar -- API + is modelled + after GtkMessageDialog. Used this new widget to provide + notification + of empty search results in the 2 glMediaSelect tabs. + - Simple code formatting changes. + +M data/builder/Makefile.am +R084 data/builder/wdgt-media-select.builder +data/builder/media-select.builder +M po/POTFILES.in +M src/Makefile.am +R069 src/wdgt-media-select.c src/media-select.c +A src/media-select.h +A src/message-bar.c +A src/message-bar.h +M src/new-label-dialog.c +D src/wdgt-media-select.h + +commit d677458f28c10fe6e0a5663a67aa8edd87424e36 +Author: Jim Evins +Date: 2009-12-16 + + Minor cleanup. + + Removed extra includes. + +M src/view-barcode.h +M src/view-box.h +M src/view-ellipse.h +M src/view-image.h +M src/view-line.h +M src/view-text.h + +commit 3bd29145040c79580b03e4e0e430afd6164ef806 +Author: Matej Urbančič +Date: 2009-12-17 + + Added sl for Slovenian translation + +M po/LINGUAS + +commit ee83ad3f392f9bbf630cbf32fdeac436a78f391b +Author: Andrej ŽnidarÅ¡ič +Date: 2009-12-17 + + Updated Slovenian translation + +A po/sl.po + +commit cbfbbff95d01ff6daffbb24159aa6fa0a4ae2e1c +Author: Jim Evins +Date: 2009-12-15 + + Use glFieldButton instead of GtkComboBox for field selection + + Extended glFieldButton so that it could be used instead of a + GtkComboBox + for field selectors in the object editor. This unifies the dropdown + style + with the "Insert field" button on the text editor page. + +M data/builder/object-editor.builder +M src/field-button.c +M src/field-button.h +M src/object-editor-bc-page.c +M src/object-editor-data-page.c +M src/object-editor-fill-page.c +M src/object-editor-image-page.c +M src/object-editor-line-page.c +M src/object-editor-private.h +M src/object-editor-shadow-page.c +M src/object-editor-text-page.c +M src/object-editor.c + +commit 1bddb489410c3e82ced613cd500080c5e0e94790 +Author: Jim Evins +Date: 2009-12-15 + + Minor cleanup of label.c + + Removed unused variables. Added a couple explicit casts. + +M src/label.c + +commit 0f2ea2061dd8f4e957c9b5241842de578cb78d0b +Author: Jim Evins +Date: 2009-12-13 + + Fixed crash when manipulating barcode + + Failed to initialize line_color_node for barcodes in + object_changed_cb(). + +M src/object-editor.c + +commit be84e5a72c2ffc412fcf7905115a78b8faa6820b +Author: Jim Evins +Date: 2009-12-12 + + Always show images for object menuitems + + Because of the visual nature of the actions of these menuitems, + the visual + cues provided by these icons should help improve the ability to + find the + correct menuitem -- I know it does for me ( I don't always know + my left + from my right :-)) + +M src/ui.c + +commit 4e81eb872bef66a6b76e9ffd74c09a83323f802e +Author: Jim Evins +Date: 2009-12-12 + + Refactored Cut/Copy/Paste code + + Now offers everything (glabels xml, text, or image) on the standard + clipboard. + Will now paste text or images from other programs as new objects. + +M src/label-image.c +M src/label-image.h +M src/label-object.c +M src/label-object.h +M src/label-text.c +M src/label-text.h +M src/label.c +M src/label.h +M src/ui-commands.c +M src/ui.h +M src/window.c + +commit 3444d934754fcc305af29a8c05f19792c77b89e2 +Author: Alessandro Zummo +Date: 2009-12-08 + + Allow merge source to be stdin + + Use the filename "-" to indicate that the merge source is to be + taken from + standard input (stdin). This is primarily intended for the + glabels-batch + program. + +M src/merge-text.c + +commit 85bfb8a64853db59f56410670675015a8aa716e5 +Author: Alessandro Zummo +Date: 2009-12-08 + + Fix glabels-batch crash + + The template_history subsystem needs to be initialized. + +M AUTHORS +M src/glabels-batch.c + +commit 02157b5db05cdf1cca285454c83bccb909ee99b8 +Author: Jim Evins +Date: 2009-12-07 + + Install correct DTD file + + Reconciled templates/Makefile.am with recent name change of DTD file. + +M templates/Makefile.am + +commit 2d0ad672af26c3bc863e0a56a65a6be89944ced8 +Author: Jim Evins +Date: 2009-12-06 + + Libglabels mods to support reorganization of template database + + Added "equiv" attribute to "Template" tag. The "equiv" attribute + works + differently than the "Alias" tag: instead of defining a simple + alias for + the current template struct, it says to use the equivalent part as the + prototype for this template. The template could override (or append) + unique meta data for this part number. The "Alias" tag is still + supported, + but is deprecated. + + Added a "product_url" attribute to the "Meta" tag. + + Added a "vendor.xml" file which contains a database of vendors + and their + primary url. This file has only been populated with a few examples + so far. + + A new DTD file has been created to describe the above changes. + + The "Avery 5160" family in "avery-us-templates.xml", has been + organized in + the new scheme as an example. + +M libglabels/Makefile.am +M libglabels/db.c +M libglabels/db.h +M libglabels/libglabels-private.h +M libglabels/template.c +M libglabels/template.h +A libglabels/vendor.c +C059 libglabels/libglabels-private.h libglabels/vendor.h +M libglabels/xml-template.c +M libglabels/xml-template.h +A libglabels/xml-vendor.c +C061 libglabels/libglabels-private.h libglabels/xml-vendor.h +M templates/Makefile.am +M templates/avery-us-templates.xml +R091 templates/glabels-2.2.dtd templates/glabels-2.3.dtd +A templates/vendors.xml + +commit 5f45a608055226f06cd013a414439293174121f4 +Author: Jim Evins +Date: 2009-12-03 + + Improved object editor default page selection + + Whenever the object is changed, an attempt is made to either keep + the same + page active or if that page is no longer visible, set to the first + visible + page. + +M src/object-editor.c + +commit 520ea9f42482012404000e7eebe436c94bca4440 +Author: Jim Evins +Date: 2009-12-03 + + Follow focus when setting sensitivity of selection verbs + + The previous commit did not completely work right. Selection verb + sensitivity now follows the focus of the glView widget. + +M src/ui.c +M src/ui.h +M src/window.c + +commit 8ae9003ee19f2c508452ca5a8534af6caf7a6b11 +Author: Mario Blättermann +Date: 2009-12-03 + + Updated German translation + +M po/de.po + +commit 2d0b321b49e0dcf8701d000bc2c5f9f4673689f8 +Author: Jim Evins +Date: 2009-12-02 + + Don't intercept copy/paste operations intended for other widgets + + Fixes bugs 1683799, 2833194 and probably 1978142. Only enable + copy/paste + verbs if the focused widget is the glView. Otherwise let these + operations + propagate to the focused widget to be handled natively. + +M .gitignore +M src/label.c +M src/label.h +M src/ui-commands.c +M src/ui.c +M src/ui.h +M src/window.c + +commit 9ad72e4b3df7122496e84af4bbc1013738145f5b +Author: Jim Evins +Date: 2009-12-02 + + Control sensitivity of paste verb + + Track the availability of data on the private glabels clipboard + to control + the sensitivity of the paste verb. + +M src/ui.c +M src/ui.h +M src/window.c + +commit c7934cf38d69f29e539a4110de36e88c8ed070bb +Author: Jim Evins +Date: 2009-12-02 + + Some string cleanup + + - Replaced "x" with UTF D7 "TIMES" symbol in dimension strings + - Separated "diameter" into its own translatable string + +M src/wdgt-media-select.c + +commit ff3a495ea186e7ff5d68a589312b3e2ef5c7d35e +Author: Jim Evins +Date: 2009-12-02 + + Refactored glLabel and glView + + Refactored glLabel and glView code: + + - Moved selection tracking and storage of current label defaults from + glView to glLabel. + + - Removed complexity of synchronizing lists of labels between + glView and + glLabel. + + - Current defaults for new objects are now kept in glLabel, + not glView. + + - Now follows a more faithful MVC pattern. As a consequence, the + Object editor and property bar are now fully independent views of + glLabel and do not need to be aware of glView at all. + + - Refactoring reduced total SLOC count by about 1100 lines of code. + + - This should potentially simplify the addition of an Undo/Redo + capability, because selections and object lists do not need + to be kept synchronized. + +M .gitignore +M data/builder/object-editor.builder +M po/POTFILES.in +M src/Makefile.am +M src/cairo-label-path.c +M src/cairo-label-path.h +M src/cairo-markup-path.c +M src/color-swatch.c +M src/file.c +M src/glabels-batch.c +M src/label-barcode.c +M src/label-box.c +M src/label-ellipse.c +M src/label-image.c +M src/label-line.c +M src/label-object.c +M src/label-object.h +M src/label-text.c +M src/label-text.h +M src/label.c +M src/label.h +M src/object-editor-bc-page.c +M src/object-editor-data-page.c +M src/object-editor-fill-page.c +M src/object-editor-image-page.c +M src/object-editor-line-page.c +M src/object-editor-lsize-page.c +M src/object-editor-private.h +M src/object-editor-shadow-page.c +M src/object-editor-size-page.c +M src/object-editor-text-page.c +M src/object-editor.c +M src/object-editor.h +M src/print-op-dialog.c +M src/print-op.c +M src/print.c +M src/ui-commands.c +M src/ui-property-bar.c +M src/ui-property-bar.h +M src/ui-sidebar.c +M src/ui-sidebar.h +M src/ui.c +M src/view-barcode.c +M src/view-barcode.h +M src/view-box.c +M src/view-box.h +M src/view-ellipse.c +M src/view-ellipse.h +M src/view-image.c +M src/view-image.h +M src/view-line.c +M src/view-line.h +D src/view-object.c +D src/view-object.h +M src/view-text.c +M src/view-text.h +M src/view.c +M src/view.h +M src/window.c +M src/window.h +M src/xml-label.c + +commit 280d7ace9c2dd028515ecad81b4003109ef1b5d3 +Author: Mario Blättermann +Date: 2009-12-02 + + Updated German translation + +M po/de.po + +commit 82bdbd24494f2351389c3e2eceef20e21ac93f46 +Author: Jim Evins +Date: 2009-11-22 + + Added additional file to .gitignore. + +M .gitignore + +commit b87405cab3c8fba70b5261280b5ed1e3de0871bd +Author: Jim Evins +Date: 2009-11-22 + + Use accessor functions instead direct access + + Replaced direct access of widget fields with accessor functions. + This round + catches flags and allocations which now have accessor functions in + Gtk 2.18. + As a result, the master branch now requires Gtk-2.18/GNOME-2.28. + +M configure.in +D docs/libglabels/libglabels-decl-list.txt +M src/color-combo-button.c +M src/color-combo.c +M src/color-swatch.c +M src/field-button.c +M src/font-combo.c +M src/font-sample.c +M src/glabels-batch.c +M src/merge-text.c +M src/mini-label-preview.c +M src/mini-preview.c +M src/object-editor-edit-page.c +M src/view.c +M src/wdgt-chain-button.c + +commit 841296e9d9882d93af94b8dc08765a42c9a3bb9e +Author: Jim Evins +Date: 2009-11-18 + + Updated AUTHORS and .gitignore + + Added Mario to AUTHORS so that he gets proper credit. + + Added another pattern to .gitignore. + +M .gitignore +M AUTHORS + +commit d6fb9999d0996c1c3528de406e486efce5bb5511 +Author: Jim Evins +Date: 2009-11-18 + + Fixed focus behavior of view canvas + + Fixes bug #2899305. Don't just automatically steal focus when + entering + canvas. Require a click to get focus back. + +M src/view.c + +commit 971a85643f25304fe1eda917f4771cd498a0d89c +Author: Jim Evins +Date: 2009-11-17 + + Reference glabels.org website + + Change all references to the glabels.sourceforge.net website to the + glabels.org alias. Change namespace for 2.3 development version to + glabels.org/xmlns/2.3/. + +M MESSAGE-OF-DOOM +M README +M data/man/glabels.1 +M glabels.doap +M libglabels/xml.h +M src/ui-commands.c +M src/xml-label.c + +commit 0f07e3243d10acd2343adbc711bee89baf568023 +Author: Jim Evins +Date: 2009-11-08 + + Expose all supported fields in vcard backend + + The original version of the vcard merge backend only supported + 3 hard-coded + fields. This modification exposes all supported fields, via the + libebook + API. It also uses the "pretty names" for field names, exactly as the + evolution merge backend does. + + An "off-by-one" error in the evolution merge backend has also been + fixed -- + exposing one more field. + +M src/merge-evolution.c +M src/merge-vcard.c + +commit 474a40371a2adeadb61ae710c52f5591b7363093 +Author: Jim Evins +Date: 2009-11-07 + + Removed unused defines + + Removed unused defines from INCLUDES. + +M libglabels/Makefile.am +M src/Makefile.am + +commit 06b2f56f9594ec0bde746aab774ccb4aa33b9dbf +Author: Jim Evins +Date: 2009-11-07 + + Added support for Code93 barcode. + + Added glue to support for Code93 barcode, which is already supported + by + the GNU Barcode Library. + +M src/bc-gnubarcode.c +M src/bc.c + +commit fc18f8be1747cb29d33ee7bdf05b354318778017 +Author: Jim Evins +Date: 2009-11-05 + + Automatically generate ChangeLog when building dist + + Automatically generate ChangeLog when building distributions using + 'git log'. + +M .gitignore +M ChangeLog +M Makefile.am + +commit a2b827198e23b23ed064b822c9331813758c2856 +Author: Jim Evins +Date: 2009-11-05 + + Caught up on user submitted templates. + + Added user submitted templates and acknowledgements. + +M AUTHORS +M templates/misc-iso-templates.xml +M templates/zweckform-iso-templates.xml + +commit 8016d6f4fe8f4970ce615d53d2d541be6afef850 +Author: Jim Evins +Date: 2009-11-04 + + Fixed merge inconsistencies and crash + + merge.c: + Fixed crash when trying to print when a "key" radio has been + selected + but no key has been selected yet. + + object-editor-*-page.c: + Fixed potential inconsistencies with "key" radio buttons when + a merge + source has not been selected but the field indicates that it is + using a + merge key. This can happen when opening a glabels file that + has a merge + type not supported by the current instance of glabels. + + xml-label.c: + Also when parsing a merge field that has a merge type not + supported, + don't continue parsing it. + +M src/merge.c +M src/object-editor-bc-page.c +M src/object-editor-data-page.c +M src/object-editor-fill-page.c +M src/object-editor-image-page.c +M src/object-editor-line-page.c +M src/object-editor-shadow-page.c +M src/object-editor-text-page.c +M src/xml-label.c + +commit dcf2b94b88479c283abdf7b65affd77ea5919ce9 +Author: Jim Evins +Date: 2009-11-03 + + Don't allow clipping to affect outlines + + Remove clipping region before printing outlines of labels. + +M src/print.c + +commit 6cd2cf8a1b548608959dac94229c634e1f3a0f7e +Author: Jim Evins +Date: 2009-11-03 + + Clip to outline restored + + During my last commit & push, I left the clip to outline line + commented out + which is an artifact of my testing. + +M src/print.c + +commit e0db4b1264c2d87b82092987dc4a5d0d803f352c +Author: Jim Evins +Date: 2009-11-03 + + Added simple envelope support + + Added several envelope sizes to page-sizes.xml. Also reversed + the rotation + direction when printing rotated labels to better match the + orientation of + envelope feeders. + +M src/print.c +M templates/paper-sizes.xml + +commit 97c5b449004606b377f8a75ec65c56019e118882 +Author: Mario Blättermann +Date: 2009-11-03 + + Updated German translation + +M po/de.po + +commit 397ea71c27af9920b71c3fbf197ffe8a10d6583b +Author: Jim Evins +Date: 2009-10-30 + + Copy all fields when duplicating glMergeText object. + + Copy n_fields_max field when duplicating glMergeText object. + +M src/merge-text.c + +commit 8fd8b99f7edf0decfc3ea58fa5931c853c96fd0e +Author: Jim Evins +Date: 2009-10-29 + + Harvest line 1 of CSVs for field names + + Added capability to text merge backend to harvest line 1 for field + names (keys). + +M src/merge-init.c +M src/merge-text.c +M src/merge-text.h + +commit 19428af40ad4f1c6c5fc947046429bf22ca4a13b +Author: Jim Evins +Date: 2009-10-26 + + Make libglabels include guards more unique + + Renamed libglabels include guards to be more unique. For example, + the include + guard for xml.h was renamed from __XML_H__ to __LGL_XML_H__, which + is less + likely to collide with other similarly named macros. + +M libglabels/category.h +M libglabels/db.h +M libglabels/paper.h +M libglabels/str.h +M libglabels/template.h +M libglabels/xml-category.h +M libglabels/xml-paper.h +M libglabels/xml-template.h +M libglabels/xml.h + +commit ab8bb6ad208670b587d23f55c9edb5ba8c754050 +Author: Jim Evins +Date: 2009-10-26 + + Improved menu positioning functions + + Use requisition instead of allocation for menu size (the allocation + does not + exist for a newly realized menu, so the position is not always + right the + first time it is popped up, causing a mangled menu position with ugly + scroll buttons.) + + Query for the actual screen of "this" instead of blindly using + the default + screen. + +M src/color-combo-button.c +M src/color-combo.c +M src/field-button.c +M src/font-combo.c + +commit 4d71d3f3e3cc8300be41c58867f9386d53e4b760 +Author: Jim Evins +Date: 2009-10-25 + + Refactored glPrefsModel; Added Units module to libglabels + + Refactored glPrefsModel, reconciling its style with glFontsHistory, + etc. + + Added Units module to libglabels, consolidating most utilities + associated + with units into this module. Also created a units-util module in + glabels for utilities that do not belong in libglabels. + +M docs/libglabels/libglabels-decl-list.txt +M docs/libglabels/libglabels-docs.sgml +M docs/libglabels/libglabels-sections.txt +D docs/libglabels/libglabels-undocumented.txt +D docs/libglabels/tmpl/enums.sgml +M docs/libglabels/tmpl/libglabels-unused.sgml +M docs/libglabels/tmpl/paper.sgml +A docs/libglabels/tmpl/units.sgml +M libglabels/Makefile.am +M libglabels/libglabels.h +A libglabels/units.c +R070 libglabels/enums.h libglabels/units.h +M libglabels/xml.c +M libglabels/xml.h +M po/POTFILES.in +M src/Makefile.am +M src/cairo-label-path.c +M src/font-combo-menu.c +M src/font-history-model.c +M src/glabels.c +M src/object-editor-bc-page.c +M src/object-editor-fill-page.c +M src/object-editor-line-page.c +M src/object-editor-lsize-page.c +M src/object-editor-position-page.c +M src/object-editor-shadow-page.c +M src/object-editor-size-page.c +M src/object-editor-text-page.c +M src/prefs-dialog.c +M src/prefs-model.c +M src/prefs-model.h +M src/prefs.c +M src/prefs.h +M src/recent.c +M src/template-designer.c +M src/ui-commands.c +M src/ui-property-bar.c +M src/ui.c +C052 src/prefs.c src/units-util.c +C066 src/prefs.h src/units-util.h +M src/view.c +M src/wdgt-media-select.c +M src/window.c +M src/xml-label.c + +commit 3b8bb98a84de015cdc937f7e2b767e4c1f11f4ee +Author: Jim Evins +Date: 2009-10-24 + + Removed unused variables + + Removed unused variables from draw_text_real(). + +M src/label-text.c + +commit ebe7c16c62c4d724b2a09b51c8a7c72c42cb0960 +Author: Jim Evins +Date: 2009-10-24 + + Created new glTemplateHistoryModel + + Pulled recent template history from glPrefsModel and created + a separate + glTemplateHistoryModel object to track this history. Based on + glFontHistoryModel. + +M .gitignore +M po/POTFILES.in +M src/Makefile.am +M src/glabels-batch.c +M src/glabels.c +M src/label.c +M src/prefs-model.c +M src/prefs-model.h +M src/prefs.c +M src/prefs.h +A src/template-history-model.c +A src/template-history-model.h +A src/template-history.c +C060 src/prefs.h src/template-history.h +M src/wdgt-media-select.c + +commit 87e9f1324b388483e0078ebcccda4ffa30687bd2 +Author: Jim Evins +Date: 2009-10-24 + + Use GConf to store custom color history + + Renamed glColorComboHistory to glColorHistoryModel and reconciled + style + with glFontHistoryModel. glColorHistoryModel now front-ends GConf + to store + custom color history between sessions. + +M po/POTFILES.in +M src/Makefile.am +D src/color-combo-history.c +D src/color-combo-history.h +M src/color-combo-menu.c +C062 src/font-history-model.c src/color-history-model.c +A src/color-history-model.h +M src/font-history-model.c +M src/font-history-model.h + +commit b69e6e688733168b847f4c0785f75e21b5f77dfd +Author: Jim Evins +Date: 2009-10-24 + + Use GConf to store font history + + glFontHistoryModel now front-ends GConf to store font history between + sessions. Also, don't store default font family when creating a blank + label text object. + +M src/font-combo-menu.c +M src/font-history-model.c +M src/font-history-model.h +M src/font-util.c +M src/font-util.h +M src/label-text.c + +commit b0a92a3f0b9855585fb7fe856483d2e8cece64f7 +Author: Jim Evins +Date: 2009-10-22 + + Added font history + + Added font history object. Setting/changing fonts in text objects + updates + this object. The glFontCombMenu tracks this object to keep its recent + fonts submenu up-to-date. + +M po/POTFILES.in +M src/Makefile.am +M src/font-combo-menu.c +A src/font-history-model.c +A src/font-history-model.h +A src/font-history.c +A src/font-history.h +M src/glabels-batch.c +M src/glabels.c +M src/label-text.c + +commit 1a23b8164c972458c3a434e892c6810939ac424b +Author: Jim Evins +Date: 2009-10-21 + + Make glFieldButtonMenu multi-columned for large number of keys. + + Make glFieldButtonMenu multi-columned for large number of keys. + I don't know + why, but I need to unrealize the old menu whenever reloading a new + set of + keys -- otherwise, the new menu would not render properly. + + Also, cleared the CAN_FOCUS and CAN_DEFAULT bits for the instance in + the object editor text edit page, so that it would not steal the focus + from the text editor. + +M src/field-button-menu.c +M src/object-editor-edit-page.c + +commit f83b6537a0fdf8f6f25483ab691a76923c10508a +Author: Jim Evins +Date: 2009-10-20 + + Minor cleanup of glFieldButton widgets + + Free proper data in gl_field_button_menu_finalize(). Minor formatting + cleanup. + +M src/field-button-menu.c +M src/field-button-menu.h +M src/field-button.c + +commit 797627cec95e55d0305a0b7aa81811cd5be291a4 +Author: Jim Evins +Date: 2009-10-19 + + Create new glFieldButton widget family + + Created new glFieldButton widget family modelled after glFontCombo. + This + widget is for inserting merge fields into text. This button will + pop-up + a menu containing possible field keys. The button attempts to + place the + menu intelligently, rather than simply where the button was pressed. + + Renamed glWdgtMergeMenu to glFieldButtonMenu. + +M data/builder/object-editor.builder +M po/POTFILES.in +M src/Makefile.am +M src/debug.c +M src/debug.h +R060 src/wdgt-merge-menu.c src/field-button-menu.c +A src/field-button-menu.h +A src/field-button.c +A src/field-button.h +M src/object-editor-edit-page.c +M src/object-editor-private.h +M src/object-editor.c +D src/wdgt-merge-menu.h + +commit aac305dceb30dcc44e50917da3350fca428ef5d4 +Author: Jim Evins +Date: 2009-10-18 + + Cleanup of configure.in + + More minor cleanup of configure.in. My iec16022 patch was accepted + upstream + and there was a new release -- update required version. Added URLs to + configure.in to inform packagers where to obtain upstream libraries. + Updated + README to document these optional dependencies. + +M README +M configure.in +M src/Makefile.am + +commit 0060d0193ece855c41a9d079e074fd659d406256 +Author: Jim Evins +Date: 2009-10-17 + + Refine glFontComboMenuItem tooltip sample text. + + Refine sample text used in tooltip for glFontComboMenuItem. + The sample + alphabet, numbers and special symbols text is now localized. + Also used + Pango to get a localized sample string such as "The quick brown + fox..." + +M src/font-combo-menu-item.c + +commit 360d5b047a6eb4855bd4018f05bd083b465ed084 +Author: Jim Evins +Date: 2009-10-11 + + Cleanup of configure.in + + Minor cleanup of configure.in. Assumes libiec16022 will be installed + along + with a pkg-config file -- patch to upstream has been submitted -- + we shall + see. + +M configure.in + +commit 95316ca98ce80e0569ec66b66e8d4efa2a11a737 +Author: Jim Evins +Date: 2009-10-11 + + Added .gitignore + + Added .gitignore file to cleanup cruft reported by "git status" + +A .gitignore + +commit 480d31eff113c6a5136f56654bdbed67805c269c +Author: Jim Evins +Date: 2009-10-11 + + Use accessor functions instead direct access + + Replaced several occurances of directly accessing widget fields + with the + use of accessor functions. This round hit primarily windows, + bin_windows + and styles. Still need to address flags and allocations when GTK + has the + needed accessors. + +M src/color-combo-button.c +M src/color-combo.c +M src/color-swatch.c +M src/font-combo.c +M src/font-sample.c +M src/mini-label-preview.c +M src/mini-preview.c +M src/view.c +M src/wdgt-chain-button.c + +commit f9d1fc9b35f9c3b9005340f954298aaf5f6623a0 +Author: Mario Blättermann +Date: 2009-10-10 + + Converted pl.po to UTF-8 again + +M po/pl.po + +commit 98c57ae33f847d1e97be507fdb4efcc09d680d2e +Author: Mario Blättermann +Date: 2009-10-10 + + Converted pt_BR.po to UTF-8 + +M po/pt_BR.po + +commit dc43c1b38e3fa9f5dd0e6627e07a059ccd808fb2 +Author: Mario Blättermann +Date: 2009-10-10 + + Updated NEWS + +M NEWS + +commit cf622f9277e6db8bc641b7c39a53163712bdd064 +Author: Jim Evins +Date: 2009-10-08 + + Use accessor functions instead direct access + + Replaced several occurances of directly accessing widget fields + with the + use of accessor functions. This round only hit some of the + low-hanging + fruit -- several modules still contain many such accesses. + +M src/color-combo-menu.c +M src/combo-util.c +M src/merge-properties-dialog.c +M src/new-label-dialog.c +M src/prefs-dialog.c + +commit 67a64dea73deedfc465df50fd92442a460fa5f42 +Author: Jim Evins +Date: 2009-10-07 + + Removed 3rd-party libraries + + The 3rd-party libraries used as barcode backends are no longer + redistributed + with gLabels. These libraries are now optional external dependencies, + so if + one is not present it will not be used. + + FIXME: the datamatrix IEC 16022 library is not installed by default + by the + official iec16022 tarball. + +M AUTHORS +M COPYING.README_FIRST +M Makefile.am +D bc-backends/Makefile.am +D bc-backends/barcode-0.98/COPYING +D bc-backends/barcode-0.98/ChangeLog +D bc-backends/barcode-0.98/INSTALL +D bc-backends/barcode-0.98/Makefile.am +D bc-backends/barcode-0.98/Makefile.in.dist +D bc-backends/barcode-0.98/README +D bc-backends/barcode-0.98/README.glabels +D bc-backends/barcode-0.98/TODO +D bc-backends/barcode-0.98/barcode.h +D bc-backends/barcode-0.98/barcode.spec +D bc-backends/barcode-0.98/bookland/bookland.py +D bc-backends/barcode-0.98/cmdline.c +D bc-backends/barcode-0.98/cmdline.h +D bc-backends/barcode-0.98/codabar.c +D bc-backends/barcode-0.98/code128.c +D bc-backends/barcode-0.98/code39.c +D bc-backends/barcode-0.98/code93.c +D bc-backends/barcode-0.98/compat/getopt.c +D bc-backends/barcode-0.98/compat/getopt.h +D bc-backends/barcode-0.98/configure +D bc-backends/barcode-0.98/configure.in.dist +D bc-backends/barcode-0.98/contrib/barcode-SVG.tar.gz +D bc-backends/barcode-0.98/contrib/barcode-SVG.tar.gz.README +D bc-backends/barcode-0.98/contrib/barcode-for-delphi.tar.gz +D bc-backends/barcode-0.98/contrib/barcode-for-delphi.tar.gz.README +D bc-backends/barcode-0.98/contrib/barcodeps-0.1.tgz +D bc-backends/barcode-0.98/contrib/barcodeps-0.1.tgz.README +D bc-backends/barcode-0.98/contrib/grab-0.0.4.tar.gz +D bc-backends/barcode-0.98/contrib/grab-0.0.4.tar.gz.README +D bc-backends/barcode-0.98/debian/README.debian +D bc-backends/barcode-0.98/debian/changelog +D bc-backends/barcode-0.98/debian/control +D bc-backends/barcode-0.98/debian/copyright +D bc-backends/barcode-0.98/debian/dirs +D bc-backends/barcode-0.98/debian/info +D bc-backends/barcode-0.98/debian/rules +D bc-backends/barcode-0.98/doc/Makefile.in +D bc-backends/barcode-0.98/doc/README +D bc-backends/barcode-0.98/doc/barcode.info +D bc-backends/barcode-0.98/doc/barcode.pdf +D bc-backends/barcode-0.98/doc/barcode.ps +D bc-backends/barcode-0.98/doc/barcodedoc.txt +D bc-backends/barcode-0.98/doc/doc.barcode +D bc-backends/barcode-0.98/doc/infofilter +D bc-backends/barcode-0.98/doc/manpager +D bc-backends/barcode-0.98/doc/mktxt +D bc-backends/barcode-0.98/doc/texi2html +D bc-backends/barcode-0.98/ean.c +D bc-backends/barcode-0.98/i25.c +D bc-backends/barcode-0.98/install-sh +D bc-backends/barcode-0.98/library.c +D bc-backends/barcode-0.98/main.c +D bc-backends/barcode-0.98/missing +D bc-backends/barcode-0.98/mkinstalldirs +D bc-backends/barcode-0.98/msi.c +D bc-backends/barcode-0.98/pcl.c +D bc-backends/barcode-0.98/plessey.c +D bc-backends/barcode-0.98/ps.c +D bc-backends/barcode-0.98/sample.c +D bc-backends/iec16022-0.2.1/BUGS +D bc-backends/iec16022-0.2.1/CHANGELOG +D bc-backends/iec16022-0.2.1/CREDITS +D bc-backends/iec16022-0.2.1/INSTALL +D bc-backends/iec16022-0.2.1/LICENSE +D bc-backends/iec16022-0.2.1/Makefile.am +D bc-backends/iec16022-0.2.1/Makefile.dist +D bc-backends/iec16022-0.2.1/README +D bc-backends/iec16022-0.2.1/README.glabels +D bc-backends/iec16022-0.2.1/TODO +D bc-backends/iec16022-0.2.1/iec16022.1 +D bc-backends/iec16022-0.2.1/iec16022.c +D bc-backends/iec16022-0.2.1/iec16022ecc200.c +D bc-backends/iec16022-0.2.1/iec16022ecc200.h +D bc-backends/iec16022-0.2.1/image.c +D bc-backends/iec16022-0.2.1/image.h +D bc-backends/iec16022-0.2.1/reedsol.c +D bc-backends/iec16022-0.2.1/reedsol.h +D bc-backends/iec16022-0.2.1/test/testsuite-example.bin +D bc-backends/iec16022-0.2.1/test/testsuite-example.eps +D bc-backends/iec16022-0.2.1/test/testsuite-example.hex +D bc-backends/iec16022-0.2.1/test/testsuite-example.png +D bc-backends/iec16022-0.2.1/test/testsuite-example.text +D bc-backends/iec16022-0.2.1/test/testsuite.sh +D bc-backends/qrencode-3.1.0/COPYING +D bc-backends/qrencode-3.1.0/ChangeLog +D bc-backends/qrencode-3.1.0/Doxyfile +D bc-backends/qrencode-3.1.0/Makefile.am +D bc-backends/qrencode-3.1.0/Makefile.am.dist +D bc-backends/qrencode-3.1.0/Makefile.in.dist +D bc-backends/qrencode-3.1.0/NEWS +D bc-backends/qrencode-3.1.0/README +D bc-backends/qrencode-3.1.0/README.glabels +D bc-backends/qrencode-3.1.0/TODO +D bc-backends/qrencode-3.1.0/acinclude.m4 +D bc-backends/qrencode-3.1.0/aclocal.m4 +D bc-backends/qrencode-3.1.0/autogen.sh +D bc-backends/qrencode-3.1.0/bitstream.c +D bc-backends/qrencode-3.1.0/bitstream.h +D bc-backends/qrencode-3.1.0/config.h.in +D bc-backends/qrencode-3.1.0/configure +D bc-backends/qrencode-3.1.0/configure.ac.dist +D bc-backends/qrencode-3.1.0/libqrencode.pc.in +D bc-backends/qrencode-3.1.0/mask.c +D bc-backends/qrencode-3.1.0/mask.h +D bc-backends/qrencode-3.1.0/qrenc.c +D bc-backends/qrencode-3.1.0/qrencode.1.in +D bc-backends/qrencode-3.1.0/qrencode.c +D bc-backends/qrencode-3.1.0/qrencode.h +D bc-backends/qrencode-3.1.0/qrencode.spec +D bc-backends/qrencode-3.1.0/qrencode.spec.in +D bc-backends/qrencode-3.1.0/qrencode_inner.h +D bc-backends/qrencode-3.1.0/qrinput.c +D bc-backends/qrencode-3.1.0/qrinput.h +D bc-backends/qrencode-3.1.0/qrspec.c +D bc-backends/qrencode-3.1.0/qrspec.h +D bc-backends/qrencode-3.1.0/rscode.c +D bc-backends/qrencode-3.1.0/rscode.h +D bc-backends/qrencode-3.1.0/split.c +D bc-backends/qrencode-3.1.0/split.h +D bc-backends/qrencode-3.1.0/tests/Makefile.am +D bc-backends/qrencode-3.1.0/tests/Makefile.in +D bc-backends/qrencode-3.1.0/tests/common.h +D bc-backends/qrencode-3.1.0/tests/create_frame_pattern.c +D bc-backends/qrencode-3.1.0/tests/frame +D bc-backends/qrencode-3.1.0/tests/prof_qrencode.c +D bc-backends/qrencode-3.1.0/tests/test_all.sh +D bc-backends/qrencode-3.1.0/tests/test_bitstream.c +D bc-backends/qrencode-3.1.0/tests/test_estimatebit.c +D bc-backends/qrencode-3.1.0/tests/test_monkey.c +D bc-backends/qrencode-3.1.0/tests/test_qrencode.c +D bc-backends/qrencode-3.1.0/tests/test_qrinput.c +D bc-backends/qrencode-3.1.0/tests/test_qrspec.c +D bc-backends/qrencode-3.1.0/tests/test_rs.c +D bc-backends/qrencode-3.1.0/tests/test_split.c +D bc-backends/qrencode-3.1.0/tests/view_qrcode.c +D bc-backends/qrencode-3.1.0/use/compile +D bc-backends/qrencode-3.1.0/use/config.guess +D bc-backends/qrencode-3.1.0/use/config.sub +D bc-backends/qrencode-3.1.0/use/depcomp +D bc-backends/qrencode-3.1.0/use/install-sh +D bc-backends/qrencode-3.1.0/use/ltmain.sh +D bc-backends/qrencode-3.1.0/use/missing +M configure.in +M po/POTFILES.in +M src/Makefile.am +M src/bc-gnubarcode.c +M src/bc-iec16022.c +M src/bc-iec18004.c +M src/bc.c + +commit 1d8d113699adea7360355c7cef8ad539825829e0 +Author: Jim Evins +Date: 2009-10-06 + + Fixed some gettext problems + + color-combo-menu.c: + - escape "%" in strings so that they are not interpreted as + c-format + conversions. + - call gettext() on color names initialized in table. + bc.c: + - call gettext() on barcode names initialized in table. + property-bar.builder: + - moved "Font family" tooltip to correct field for translation. + +M data/builder/property-bar.builder +M src/bc.c +M src/color-combo-menu.c + +commit 48fe1b343471e074156ea342ded7faaaca390c40 +Author: Jim Evins +Date: 2009-10-06 + + Added information for translators to HACKING + + Added information for translators to the HACKING file. + +M HACKING + +commit 1a23afe96b3503f6d19a871623d31ce9eb4177e7 +Author: Mario Blättermann +Date: 2009-10-06 + + Converted polish translation to UTF-8 + +M po/pl.po + +commit 7b88300bed91c62816557772cfa263604aa209d2 +Author: Mario Blättermann +Date: 2009-10-06 + + Added missing filename + +M po/POTFILES.in + +commit d5ae0b083b9f9ba9f39cc302b233eb44bab1ff65 +Author: Claude Paroz +Date: 2009-10-06 + + Convert zh_TW translation to UTF-8 + +M po/LINGUAS +R089 po/zh_TW.Big5.po po/zh_TW.po + +commit 05f3749a2034521a14d229ca11cde7c91051cec2 +Author: Mario Blättermann +Date: 2009-10-06 + + Updated German translation + +M po/de.po + +commit f6f8ebf5318cf00d7735a7dc87885373677370c1 +Author: Mario Blättermann +Date: 2009-10-06 + + Updated German translation + +M po/de.po + +commit 23449d845bce7cdde774e1dc006814ce08280f59 +Author: Mario Blättermann +Date: 2009-10-06 + + Updated German doc translation + +M po/de.po + +commit 0bc48aa862b0a2f01b6c222aab279cb6f35a4f35 +Author: Daniel Nylander +Date: 2009-10-06 + + Added Swedish translation + +M po/LINGUAS +A po/sv.po + +commit a869e748bc106014e98749786471aef0198725ef +Author: Jim Evins +Date: 2009-10-05 + + Adding MAINTAINERS and HACKING files. + + Added MAINTAINERS and HACKING files. Updated glabels.doap to + reconcile with new MAINTAINERS file. Updated TODO file bringing + up-to-date with the current roadmap. + +A HACKING +A MAINTAINERS +M TODO +M glabels.doap + +commit 6684593a76fba89a941edcf8991d45f0c5521ecc +Author: Jim Evins +Date: 2009-10-05 + + Adding glabels.doap + + Adding glabels.doap file for gnome Git repository. + +A glabels.doap + +commit d8ea0137a6f1aa1924f62a64c2a83e048a79f0ce +Author: Mario Blättermann +Date: 2009-09-29 + + Removed non-existent filenames from po/POTFILES.in + +M po/POTFILES.in + +commit 743c111fc1f7f0a698c459d0ef387f5591112d36 +Author: Mario Blättermann +Date: 2009-09-29 + + Removed non-existent filenames from po/POTFILES.in + +M po/de.po + +commit 73e7592ce7bc2ad65ebeb85b7f17f0ef10bd8f3c +Author: Jim Evins +Date: 2009-09-28 + + Removed gtk-doc.make. + + Removed the gtk-doc.make file, since it gets regenerated anyway. + +D gtk-doc.make + +commit d45bb113212523705e156d79044849b08025f305 +Author: Jim Evins +Date: 2009-09-27 + + Relocated barcode backends. + + Moved 3rd party barcode backends to a new bc-backends/ subdirectory. + +M COPYING.README_FIRST +M Makefile.am +A bc-backends/Makefile.am +R100 barcode-0.98/COPYING bc-backends/barcode-0.98/COPYING +R100 barcode-0.98/ChangeLog bc-backends/barcode-0.98/ChangeLog +R100 barcode-0.98/INSTALL bc-backends/barcode-0.98/INSTALL +R100 barcode-0.98/Makefile.am +bc-backends/barcode-0.98/Makefile.am +R100 barcode-0.98/Makefile.in.dist +bc-backends/barcode-0.98/Makefile.in.dist +R100 barcode-0.98/README bc-backends/barcode-0.98/README +R100 barcode-0.98/README.glabels +bc-backends/barcode-0.98/README.glabels +R100 barcode-0.98/TODO bc-backends/barcode-0.98/TODO +R100 barcode-0.98/barcode.h bc-backends/barcode-0.98/barcode.h +R100 barcode-0.98/barcode.spec +bc-backends/barcode-0.98/barcode.spec +R100 barcode-0.98/bookland/bookland.py +bc-backends/barcode-0.98/bookland/bookland.py +R100 barcode-0.98/cmdline.c bc-backends/barcode-0.98/cmdline.c +R100 barcode-0.98/cmdline.h bc-backends/barcode-0.98/cmdline.h +R100 barcode-0.98/codabar.c bc-backends/barcode-0.98/codabar.c +R100 barcode-0.98/code128.c bc-backends/barcode-0.98/code128.c +R100 barcode-0.98/code39.c bc-backends/barcode-0.98/code39.c +R100 barcode-0.98/code93.c bc-backends/barcode-0.98/code93.c +R100 barcode-0.98/compat/getopt.c +bc-backends/barcode-0.98/compat/getopt.c +R100 barcode-0.98/compat/getopt.h +bc-backends/barcode-0.98/compat/getopt.h +R100 barcode-0.98/configure bc-backends/barcode-0.98/configure +R100 barcode-0.98/configure.in.dist +bc-backends/barcode-0.98/configure.in.dist +R100 barcode-0.98/contrib/barcode-SVG.tar.gz +bc-backends/barcode-0.98/contrib/barcode-SVG.tar.gz +R100 barcode-0.98/contrib/barcode-SVG.tar.gz.README +bc-backends/barcode-0.98/contrib/barcode-SVG.tar.gz.README +R100 barcode-0.98/contrib/barcode-for-delphi.tar.gz +bc-backends/barcode-0.98/contrib/barcode-for-delphi.tar.gz +R100 barcode-0.98/contrib/barcode-for-delphi.tar.gz.README +bc-backends/barcode-0.98/contrib/barcode-for-delphi.tar.gz.README +R100 barcode-0.98/contrib/barcodeps-0.1.tgz +bc-backends/barcode-0.98/contrib/barcodeps-0.1.tgz +R100 barcode-0.98/contrib/barcodeps-0.1.tgz.README +bc-backends/barcode-0.98/contrib/barcodeps-0.1.tgz.README +R100 barcode-0.98/contrib/grab-0.0.4.tar.gz +bc-backends/barcode-0.98/contrib/grab-0.0.4.tar.gz +R100 barcode-0.98/contrib/grab-0.0.4.tar.gz.README +bc-backends/barcode-0.98/contrib/grab-0.0.4.tar.gz.README +R100 barcode-0.98/debian/README.debian +bc-backends/barcode-0.98/debian/README.debian +R100 barcode-0.98/debian/changelog +bc-backends/barcode-0.98/debian/changelog +R100 barcode-0.98/debian/control +bc-backends/barcode-0.98/debian/control +R100 barcode-0.98/debian/copyright +bc-backends/barcode-0.98/debian/copyright +R100 barcode-0.98/debian/dirs +bc-backends/barcode-0.98/debian/dirs +R100 barcode-0.98/debian/info +bc-backends/barcode-0.98/debian/info +R100 barcode-0.98/debian/rules +bc-backends/barcode-0.98/debian/rules +R100 barcode-0.98/doc/Makefile.in +bc-backends/barcode-0.98/doc/Makefile.in +R100 barcode-0.98/doc/README bc-backends/barcode-0.98/doc/README +R100 barcode-0.98/doc/barcode.info +bc-backends/barcode-0.98/doc/barcode.info +R100 barcode-0.98/doc/barcode.pdf +bc-backends/barcode-0.98/doc/barcode.pdf +R100 barcode-0.98/doc/barcode.ps +bc-backends/barcode-0.98/doc/barcode.ps +R100 barcode-0.98/doc/barcodedoc.txt +bc-backends/barcode-0.98/doc/barcodedoc.txt +R100 barcode-0.98/doc/doc.barcode +bc-backends/barcode-0.98/doc/doc.barcode +R100 barcode-0.98/doc/infofilter +bc-backends/barcode-0.98/doc/infofilter +R100 barcode-0.98/doc/manpager +bc-backends/barcode-0.98/doc/manpager +R100 barcode-0.98/doc/mktxt bc-backends/barcode-0.98/doc/mktxt +R100 barcode-0.98/doc/texi2html +bc-backends/barcode-0.98/doc/texi2html +R100 barcode-0.98/ean.c bc-backends/barcode-0.98/ean.c +R100 barcode-0.98/i25.c bc-backends/barcode-0.98/i25.c +R100 barcode-0.98/install-sh bc-backends/barcode-0.98/install-sh +R100 barcode-0.98/library.c bc-backends/barcode-0.98/library.c +R100 barcode-0.98/main.c bc-backends/barcode-0.98/main.c +R100 barcode-0.98/missing bc-backends/barcode-0.98/missing +R100 barcode-0.98/mkinstalldirs +bc-backends/barcode-0.98/mkinstalldirs +R100 barcode-0.98/msi.c bc-backends/barcode-0.98/msi.c +R100 barcode-0.98/pcl.c bc-backends/barcode-0.98/pcl.c +R100 barcode-0.98/plessey.c bc-backends/barcode-0.98/plessey.c +R100 barcode-0.98/ps.c bc-backends/barcode-0.98/ps.c +R100 barcode-0.98/sample.c bc-backends/barcode-0.98/sample.c +R100 iec16022-0.2.1/BUGS bc-backends/iec16022-0.2.1/BUGS +R100 iec16022-0.2.1/CHANGELOG +bc-backends/iec16022-0.2.1/CHANGELOG +R100 iec16022-0.2.1/CREDITS bc-backends/iec16022-0.2.1/CREDITS +R100 iec16022-0.2.1/INSTALL bc-backends/iec16022-0.2.1/INSTALL +R100 iec16022-0.2.1/LICENSE bc-backends/iec16022-0.2.1/LICENSE +R100 iec16022-0.2.1/Makefile.am +bc-backends/iec16022-0.2.1/Makefile.am +R100 iec16022-0.2.1/Makefile.dist +bc-backends/iec16022-0.2.1/Makefile.dist +R100 iec16022-0.2.1/README bc-backends/iec16022-0.2.1/README +R100 iec16022-0.2.1/README.glabels +bc-backends/iec16022-0.2.1/README.glabels +R100 iec16022-0.2.1/TODO bc-backends/iec16022-0.2.1/TODO +R100 iec16022-0.2.1/iec16022.1 +bc-backends/iec16022-0.2.1/iec16022.1 +R100 iec16022-0.2.1/iec16022.c +bc-backends/iec16022-0.2.1/iec16022.c +R100 iec16022-0.2.1/iec16022ecc200.c +bc-backends/iec16022-0.2.1/iec16022ecc200.c +R100 iec16022-0.2.1/iec16022ecc200.h +bc-backends/iec16022-0.2.1/iec16022ecc200.h +R100 iec16022-0.2.1/image.c bc-backends/iec16022-0.2.1/image.c +R100 iec16022-0.2.1/image.h bc-backends/iec16022-0.2.1/image.h +R100 iec16022-0.2.1/reedsol.c +bc-backends/iec16022-0.2.1/reedsol.c +R100 iec16022-0.2.1/reedsol.h +bc-backends/iec16022-0.2.1/reedsol.h +R100 iec16022-0.2.1/test/testsuite-example.bin +bc-backends/iec16022-0.2.1/test/testsuite-example.bin +R100 iec16022-0.2.1/test/testsuite-example.eps +bc-backends/iec16022-0.2.1/test/testsuite-example.eps +R100 iec16022-0.2.1/test/testsuite-example.hex +bc-backends/iec16022-0.2.1/test/testsuite-example.hex +R100 iec16022-0.2.1/test/testsuite-example.png +bc-backends/iec16022-0.2.1/test/testsuite-example.png +R100 iec16022-0.2.1/test/testsuite-example.text +bc-backends/iec16022-0.2.1/test/testsuite-example.text +R100 iec16022-0.2.1/test/testsuite.sh +bc-backends/iec16022-0.2.1/test/testsuite.sh +R100 qrencode-3.1.0/COPYING bc-backends/qrencode-3.1.0/COPYING +R100 qrencode-3.1.0/ChangeLog +bc-backends/qrencode-3.1.0/ChangeLog +R100 qrencode-3.1.0/Doxyfile bc-backends/qrencode-3.1.0/Doxyfile +R100 qrencode-3.1.0/Makefile.am +bc-backends/qrencode-3.1.0/Makefile.am +R100 qrencode-3.1.0/Makefile.am.dist +bc-backends/qrencode-3.1.0/Makefile.am.dist +R100 qrencode-3.1.0/Makefile.in.dist +bc-backends/qrencode-3.1.0/Makefile.in.dist +R100 qrencode-3.1.0/NEWS bc-backends/qrencode-3.1.0/NEWS +R100 qrencode-3.1.0/README bc-backends/qrencode-3.1.0/README +R100 qrencode-3.1.0/README.glabels +bc-backends/qrencode-3.1.0/README.glabels +R100 qrencode-3.1.0/TODO bc-backends/qrencode-3.1.0/TODO +R100 qrencode-3.1.0/acinclude.m4 +bc-backends/qrencode-3.1.0/acinclude.m4 +R100 qrencode-3.1.0/aclocal.m4 +bc-backends/qrencode-3.1.0/aclocal.m4 +R100 qrencode-3.1.0/autogen.sh +bc-backends/qrencode-3.1.0/autogen.sh +R100 qrencode-3.1.0/bitstream.c +bc-backends/qrencode-3.1.0/bitstream.c +R100 qrencode-3.1.0/bitstream.h +bc-backends/qrencode-3.1.0/bitstream.h +R100 qrencode-3.1.0/config.h.in +bc-backends/qrencode-3.1.0/config.h.in +R100 qrencode-3.1.0/configure +bc-backends/qrencode-3.1.0/configure +R100 qrencode-3.1.0/configure.ac.dist +bc-backends/qrencode-3.1.0/configure.ac.dist +R100 qrencode-3.1.0/libqrencode.pc.in +bc-backends/qrencode-3.1.0/libqrencode.pc.in +R100 qrencode-3.1.0/mask.c bc-backends/qrencode-3.1.0/mask.c +R100 qrencode-3.1.0/mask.h bc-backends/qrencode-3.1.0/mask.h +R100 qrencode-3.1.0/qrenc.c bc-backends/qrencode-3.1.0/qrenc.c +R100 qrencode-3.1.0/qrencode.1.in +bc-backends/qrencode-3.1.0/qrencode.1.in +R100 qrencode-3.1.0/qrencode.c +bc-backends/qrencode-3.1.0/qrencode.c +R100 qrencode-3.1.0/qrencode.h +bc-backends/qrencode-3.1.0/qrencode.h +R100 qrencode-3.1.0/qrencode.spec +bc-backends/qrencode-3.1.0/qrencode.spec +R100 qrencode-3.1.0/qrencode.spec.in +bc-backends/qrencode-3.1.0/qrencode.spec.in +R100 qrencode-3.1.0/qrencode_inner.h +bc-backends/qrencode-3.1.0/qrencode_inner.h +R100 qrencode-3.1.0/qrinput.c +bc-backends/qrencode-3.1.0/qrinput.c +R100 qrencode-3.1.0/qrinput.h +bc-backends/qrencode-3.1.0/qrinput.h +R100 qrencode-3.1.0/qrspec.c bc-backends/qrencode-3.1.0/qrspec.c +R100 qrencode-3.1.0/qrspec.h bc-backends/qrencode-3.1.0/qrspec.h +R100 qrencode-3.1.0/rscode.c bc-backends/qrencode-3.1.0/rscode.c +R100 qrencode-3.1.0/rscode.h bc-backends/qrencode-3.1.0/rscode.h +R100 qrencode-3.1.0/split.c bc-backends/qrencode-3.1.0/split.c +R100 qrencode-3.1.0/split.h bc-backends/qrencode-3.1.0/split.h +R100 qrencode-3.1.0/tests/Makefile.am +bc-backends/qrencode-3.1.0/tests/Makefile.am +R100 qrencode-3.1.0/tests/Makefile.in +bc-backends/qrencode-3.1.0/tests/Makefile.in +R100 qrencode-3.1.0/tests/common.h +bc-backends/qrencode-3.1.0/tests/common.h +R100 qrencode-3.1.0/tests/create_frame_pattern.c +bc-backends/qrencode-3.1.0/tests/create_frame_pattern.c +R100 qrencode-3.1.0/tests/frame +bc-backends/qrencode-3.1.0/tests/frame +R100 qrencode-3.1.0/tests/prof_qrencode.c +bc-backends/qrencode-3.1.0/tests/prof_qrencode.c +R100 qrencode-3.1.0/tests/test_all.sh +bc-backends/qrencode-3.1.0/tests/test_all.sh +R100 qrencode-3.1.0/tests/test_bitstream.c +bc-backends/qrencode-3.1.0/tests/test_bitstream.c +R100 qrencode-3.1.0/tests/test_estimatebit.c +bc-backends/qrencode-3.1.0/tests/test_estimatebit.c +R100 qrencode-3.1.0/tests/test_monkey.c +bc-backends/qrencode-3.1.0/tests/test_monkey.c +R100 qrencode-3.1.0/tests/test_qrencode.c +bc-backends/qrencode-3.1.0/tests/test_qrencode.c +R100 qrencode-3.1.0/tests/test_qrinput.c +bc-backends/qrencode-3.1.0/tests/test_qrinput.c +R100 qrencode-3.1.0/tests/test_qrspec.c +bc-backends/qrencode-3.1.0/tests/test_qrspec.c +R100 qrencode-3.1.0/tests/test_rs.c +bc-backends/qrencode-3.1.0/tests/test_rs.c +R100 qrencode-3.1.0/tests/test_split.c +bc-backends/qrencode-3.1.0/tests/test_split.c +R100 qrencode-3.1.0/tests/view_qrcode.c +bc-backends/qrencode-3.1.0/tests/view_qrcode.c +R100 qrencode-3.1.0/use/compile +bc-backends/qrencode-3.1.0/use/compile +R100 qrencode-3.1.0/use/config.guess +bc-backends/qrencode-3.1.0/use/config.guess +R100 qrencode-3.1.0/use/config.sub +bc-backends/qrencode-3.1.0/use/config.sub +R100 qrencode-3.1.0/use/depcomp +bc-backends/qrencode-3.1.0/use/depcomp +R100 qrencode-3.1.0/use/install-sh +bc-backends/qrencode-3.1.0/use/install-sh +R100 qrencode-3.1.0/use/ltmain.sh +bc-backends/qrencode-3.1.0/use/ltmain.sh +R100 qrencode-3.1.0/use/missing +bc-backends/qrencode-3.1.0/use/missing +M configure.in +M src/Makefile.am + +commit 39f4c44e000d410b4f63ab1fcdc4b04273ff0a83 +Author: Jim Evins +Date: 2009-09-26 + + Organized master branch to be top-level directory for glabels, + instead of + having a glabels2 sub-directory. + +R100 glabels2/AUTHORS AUTHORS +R100 glabels2/COPYING COPYING +R100 glabels2/COPYING-DOCS COPYING-DOCS +R100 glabels2/COPYING-LIBGLABELS COPYING-LIBGLABELS +R100 glabels2/COPYING-TEMPLATES COPYING-TEMPLATES +R100 glabels2/COPYING.README_FIRST COPYING.README_FIRST +R100 glabels2/ChangeLog ChangeLog +R100 glabels2/INSTALL INSTALL +R100 glabels2/MESSAGE-OF-DOOM MESSAGE-OF-DOOM +R100 glabels2/Makefile.am Makefile.am +R100 glabels2/NEWS NEWS +R100 glabels2/README README +R100 glabels2/TODO TODO +R100 glabels2/autogen.sh autogen.sh +R100 glabels1/barcode-0.98/COPYING barcode-0.98/COPYING +R100 glabels1/barcode-0.98/ChangeLog barcode-0.98/ChangeLog +R100 glabels1/barcode-0.98/INSTALL barcode-0.98/INSTALL +R100 glabels2/barcode-0.98/Makefile.am barcode-0.98/Makefile.am +R100 glabels2/barcode-0.98/Makefile.in.dist barcode-0.98/Makefile.in.dist -R100 glabels2/barcode-0.98/README barcode-0.98/README +R100 glabels1/barcode-0.98/README barcode-0.98/README R100 glabels2/barcode-0.98/README.glabels barcode-0.98/README.glabels -R100 glabels2/barcode-0.98/TODO barcode-0.98/TODO -R100 glabels2/barcode-0.98/barcode.h barcode-0.98/barcode.h -R100 glabels2/barcode-0.98/barcode.spec barcode-0.98/barcode.spec -R100 glabels2/barcode-0.98/bookland/bookland.py +R100 glabels1/barcode-0.98/TODO barcode-0.98/TODO +R100 glabels1/barcode-0.98/barcode.h barcode-0.98/barcode.h +R100 glabels1/barcode-0.98/barcode.spec barcode-0.98/barcode.spec +R100 glabels1/barcode-0.98/bookland/bookland.py barcode-0.98/bookland/bookland.py -R100 glabels2/barcode-0.98/cmdline.c barcode-0.98/cmdline.c -R100 glabels2/barcode-0.98/cmdline.h barcode-0.98/cmdline.h -R100 glabels2/barcode-0.98/codabar.c barcode-0.98/codabar.c -R100 glabels2/barcode-0.98/code128.c barcode-0.98/code128.c -R100 glabels2/barcode-0.98/code39.c barcode-0.98/code39.c -R100 glabels2/barcode-0.98/code93.c barcode-0.98/code93.c -R100 glabels2/barcode-0.98/compat/getopt.c +R100 glabels1/barcode-0.98/cmdline.c barcode-0.98/cmdline.c +R100 glabels1/barcode-0.98/cmdline.h barcode-0.98/cmdline.h +R100 glabels1/barcode-0.98/codabar.c barcode-0.98/codabar.c +R100 glabels1/barcode-0.98/code128.c barcode-0.98/code128.c +R100 glabels1/barcode-0.98/code39.c barcode-0.98/code39.c +R100 glabels1/barcode-0.98/code93.c barcode-0.98/code93.c +R100 glabels1/barcode-0.98/compat/getopt.c barcode-0.98/compat/getopt.c -R100 glabels2/barcode-0.98/compat/getopt.h +R100 glabels1/barcode-0.98/compat/getopt.h barcode-0.98/compat/getopt.h R100 glabels2/barcode-0.98/configure barcode-0.98/configure R100 glabels2/barcode-0.98/configure.in.dist barcode-0.98/configure.in.dist -R100 glabels2/barcode-0.98/contrib/barcode-SVG.tar.gz +R100 glabels1/barcode-0.98/contrib/barcode-SVG.tar.gz barcode-0.98/contrib/barcode-SVG.tar.gz -R100 glabels2/barcode-0.98/contrib/barcode-SVG.tar.gz.README +R100 glabels1/barcode-0.98/contrib/barcode-SVG.tar.gz.README barcode-0.98/contrib/barcode-SVG.tar.gz.README -R100 glabels2/barcode-0.98/contrib/barcode-for-delphi.tar.gz +R100 glabels1/barcode-0.98/contrib/barcode-for-delphi.tar.gz barcode-0.98/contrib/barcode-for-delphi.tar.gz -R100 glabels2/barcode-0.98/contrib/barcode-for-delphi.tar.gz.README +R100 glabels1/barcode-0.98/contrib/barcode-for-delphi.tar.gz.README barcode-0.98/contrib/barcode-for-delphi.tar.gz.README -R100 glabels2/barcode-0.98/contrib/barcodeps-0.1.tgz +R100 glabels1/barcode-0.98/contrib/barcodeps-0.1.tgz barcode-0.98/contrib/barcodeps-0.1.tgz -R100 glabels2/barcode-0.98/contrib/barcodeps-0.1.tgz.README +R100 glabels1/barcode-0.98/contrib/barcodeps-0.1.tgz.README barcode-0.98/contrib/barcodeps-0.1.tgz.README -R100 glabels2/barcode-0.98/contrib/grab-0.0.4.tar.gz +R100 glabels1/barcode-0.98/contrib/grab-0.0.4.tar.gz barcode-0.98/contrib/grab-0.0.4.tar.gz -R100 glabels2/barcode-0.98/contrib/grab-0.0.4.tar.gz.README +R100 glabels1/barcode-0.98/contrib/grab-0.0.4.tar.gz.README barcode-0.98/contrib/grab-0.0.4.tar.gz.README -R100 glabels2/barcode-0.98/debian/README.debian +R100 glabels1/barcode-0.98/debian/README.debian barcode-0.98/debian/README.debian -R100 glabels2/barcode-0.98/debian/changelog +R100 glabels1/barcode-0.98/debian/changelog barcode-0.98/debian/changelog -R100 glabels2/barcode-0.98/debian/control +R100 glabels1/barcode-0.98/debian/control barcode-0.98/debian/control -R100 glabels2/barcode-0.98/debian/copyright +R100 glabels1/barcode-0.98/debian/copyright barcode-0.98/debian/copyright -R100 glabels2/barcode-0.98/debian/dirs barcode-0.98/debian/dirs -R100 glabels2/barcode-0.98/debian/info barcode-0.98/debian/info -R100 glabels2/barcode-0.98/debian/rules barcode-0.98/debian/rules -R100 glabels2/barcode-0.98/doc/Makefile.in +R100 glabels1/barcode-0.98/debian/dirs barcode-0.98/debian/dirs +R100 glabels1/barcode-0.98/debian/info barcode-0.98/debian/info +R100 glabels1/barcode-0.98/debian/rules barcode-0.98/debian/rules +R100 glabels1/barcode-0.98/doc/Makefile.in barcode-0.98/doc/Makefile.in -R100 glabels2/barcode-0.98/doc/README barcode-0.98/doc/README +R100 glabels1/barcode-0.98/doc/README barcode-0.98/doc/README R100 glabels2/barcode-0.98/doc/barcode.info barcode-0.98/doc/barcode.info R100 glabels2/barcode-0.98/doc/barcode.pdf @@ -813,51 +6726,45 @@ R100 glabels2/barcode-0.98/doc/barcode.ps barcode-0.98/doc/barcode.ps R100 glabels2/barcode-0.98/doc/barcodedoc.txt barcode-0.98/doc/barcodedoc.txt -R100 glabels2/barcode-0.98/doc/doc.barcode +R100 glabels1/barcode-0.98/doc/doc.barcode barcode-0.98/doc/doc.barcode -R100 glabels2/barcode-0.98/doc/infofilter +R100 glabels1/barcode-0.98/doc/infofilter barcode-0.98/doc/infofilter -R100 glabels2/barcode-0.98/doc/manpager barcode-0.98/doc/manpager -R100 glabels2/barcode-0.98/doc/mktxt barcode-0.98/doc/mktxt -R100 glabels2/barcode-0.98/doc/texi2html barcode-0.98/doc/texi2html -R100 glabels2/barcode-0.98/ean.c barcode-0.98/ean.c -R100 glabels2/barcode-0.98/i25.c barcode-0.98/i25.c -R100 glabels2/barcode-0.98/install-sh barcode-0.98/install-sh -R100 glabels2/barcode-0.98/library.c barcode-0.98/library.c -R100 glabels2/barcode-0.98/main.c barcode-0.98/main.c +R100 glabels1/barcode-0.98/doc/manpager barcode-0.98/doc/manpager +R100 glabels1/barcode-0.98/doc/mktxt barcode-0.98/doc/mktxt +R100 glabels1/barcode-0.98/doc/texi2html barcode-0.98/doc/texi2html +R100 glabels1/barcode-0.98/ean.c barcode-0.98/ean.c +R100 glabels1/barcode-0.98/i25.c barcode-0.98/i25.c +R100 glabels1/barcode-0.98/install-sh barcode-0.98/install-sh +R100 glabels1/barcode-0.98/library.c barcode-0.98/library.c +R100 glabels1/barcode-0.98/main.c barcode-0.98/main.c R100 glabels2/barcode-0.98/missing barcode-0.98/missing -R100 glabels2/barcode-0.98/mkinstalldirs barcode-0.98/mkinstalldirs -R100 glabels2/barcode-0.98/msi.c barcode-0.98/msi.c -R100 glabels2/barcode-0.98/pcl.c barcode-0.98/pcl.c -R100 glabels2/barcode-0.98/plessey.c barcode-0.98/plessey.c -R100 glabels2/barcode-0.98/ps.c barcode-0.98/ps.c -R100 glabels2/barcode-0.98/sample.c barcode-0.98/sample.c +R100 glabels1/mkinstalldirs barcode-0.98/mkinstalldirs +R100 glabels1/barcode-0.98/msi.c barcode-0.98/msi.c +R100 glabels1/barcode-0.98/pcl.c barcode-0.98/pcl.c +R100 glabels1/barcode-0.98/plessey.c barcode-0.98/plessey.c +R100 glabels1/barcode-0.98/ps.c barcode-0.98/ps.c +R100 glabels1/barcode-0.98/sample.c barcode-0.98/sample.c R100 glabels2/configure.in configure.in R100 glabels2/data/Makefile.am data/Makefile.am +R100 glabels2/data/builder/Makefile.am data/builder/Makefile.am +R100 glabels2/data/builder/merge-properties-dialog.builder +data/builder/merge-properties-dialog.builder +R100 glabels2/data/builder/object-editor.builder +data/builder/object-editor.builder +R100 glabels2/data/builder/prefs-dialog.builder +data/builder/prefs-dialog.builder +R100 glabels2/data/builder/print-op-dialog-custom-widget.builder +data/builder/print-op-dialog-custom-widget.builder +R100 glabels2/data/builder/property-bar.builder +data/builder/property-bar.builder +R100 glabels2/data/builder/template-designer.builder +data/builder/template-designer.builder +R100 glabels2/data/builder/wdgt-media-select.builder +data/builder/wdgt-media-select.builder R100 glabels2/data/desktop/Makefile.am data/desktop/Makefile.am R100 glabels2/data/desktop/glabels.desktop.in data/desktop/glabels.desktop.in -R100 glabels2/data/dtd/Makefile.am data/dtd/Makefile.am -R100 glabels2/data/dtd/glabels-2.2.dtd data/dtd/glabels-2.2.dtd -R100 glabels2/data/glade/Makefile.am data/glade/Makefile.am -R100 glabels2/data/glade/merge-properties-dialog.glade -data/glade/merge-properties-dialog.glade -R100 glabels2/data/glade/new-label-dialog.glade -data/glade/new-label-dialog.glade -R100 glabels2/data/glade/object-editor.glade -data/glade/object-editor.glade -R100 glabels2/data/glade/prefs-dialog.glade -data/glade/prefs-dialog.glade -R100 glabels2/data/glade/print-custom-widget.glade -data/glade/print-custom-widget.glade -R100 glabels2/data/glade/property-bar.glade -data/glade/property-bar.glade -R100 glabels2/data/glade/template-designer.glade -data/glade/template-designer.glade -R100 glabels2/data/glade/wdgt-media-select.glade -data/glade/wdgt-media-select.glade -R100 glabels2/data/glade/wdgt-rotate-label.glade -data/glade/wdgt-rotate-label.glade R100 glabels2/data/man/Makefile.am data/man/Makefile.am R100 glabels2/data/man/glabels.1 data/man/glabels.1 R100 glabels2/data/mime/Makefile.am data/mime/Makefile.am @@ -884,29 +6791,6 @@ data/pixmaps/glabels-application-x-glabels.png R100 glabels2/data/pixmaps/glabels-splash.png data/pixmaps/glabels-splash.png R100 glabels2/data/pixmaps/glabels.png data/pixmaps/glabels.png -R100 glabels2/data/templates/Makefile.am data/templates/Makefile.am -R100 glabels2/data/templates/avery-iso-templates.xml -data/templates/avery-iso-templates.xml -R100 glabels2/data/templates/avery-other-templates.xml -data/templates/avery-other-templates.xml -R100 glabels2/data/templates/avery-us-templates.xml -data/templates/avery-us-templates.xml -R100 glabels2/data/templates/brother-other-templates.xml -data/templates/brother-other-templates.xml -R100 glabels2/data/templates/categories.xml -data/templates/categories.xml -R100 glabels2/data/templates/dymo-other-templates.xml -data/templates/dymo-other-templates.xml -R100 glabels2/data/templates/misc-iso-templates.xml -data/templates/misc-iso-templates.xml -R100 glabels2/data/templates/misc-other-templates.xml -data/templates/misc-other-templates.xml -R100 glabels2/data/templates/misc-us-templates.xml -data/templates/misc-us-templates.xml -R100 glabels2/data/templates/paper-sizes.xml -data/templates/paper-sizes.xml -R100 glabels2/data/templates/zweckform-iso-templates.xml -data/templates/zweckform-iso-templates.xml R100 glabels2/docs/Makefile.am docs/Makefile.am R100 glabels2/docs/libglabels/Makefile.am docs/libglabels/Makefile.am @@ -947,8 +6831,289 @@ docs/libglabels/tmpl/xml-template.sgml R100 glabels2/docs/libglabels/tmpl/xml.sgml docs/libglabels/tmpl/xml.sgml R100 glabels2/glabels.spec.in glabels.spec.in +D glabels1/ABOUT-NLS +D glabels1/AUTHORS +D glabels1/COPYING +D glabels1/ChangeLog +D glabels1/INSTALL +D glabels1/Makefile.am +D glabels1/NEWS +D glabels1/README +D glabels1/TODO +D glabels1/acconfig.h +D glabels1/aclocal.m4 +D glabels1/autogen.sh +D glabels1/barcode-0.98/Makefile.in +D glabels1/barcode-0.98/configure +D glabels1/barcode-0.98/configure.in +D glabels1/barcode-0.98/doc/barcode.info +D glabels1/barcode-0.98/doc/barcode.pdf +D glabels1/barcode-0.98/doc/barcode.ps +D glabels1/barcode-0.98/doc/barcodedoc.txt +D glabels1/config.h.in +D glabels1/configure.in +D glabels1/data/predefined-labels.template +D glabels1/doc/C/Makefile.am +D glabels1/doc/C/Makefile.in +D glabels1/doc/C/glabels.sgml +D glabels1/doc/C/glabels/index.html +D glabels1/doc/C/glabels/ln7.html +D glabels1/doc/C/topic.dat +D glabels1/doc/Makefile.am +D glabels1/doc/Makefile.in +D glabels1/glabels.desktop +D glabels1/glabels.spec.in +D glabels1/install-sh +D glabels1/intl/ChangeLog +D glabels1/intl/Makefile.in +D glabels1/intl/VERSION +D glabels1/intl/bindtextdom.c +D glabels1/intl/cat-compat.c +D glabels1/intl/dcgettext.c +D glabels1/intl/dgettext.c +D glabels1/intl/explodename.c +D glabels1/intl/finddomain.c +D glabels1/intl/gettext.c +D glabels1/intl/gettext.h +D glabels1/intl/gettextP.h +D glabels1/intl/hash-string.h +D glabels1/intl/intl-compat.c +D glabels1/intl/l10nflist.c +D glabels1/intl/libgettext.h +D glabels1/intl/linux-msg.sed +D glabels1/intl/loadinfo.h +D glabels1/intl/loadmsgcat.c +D glabels1/intl/localealias.c +D glabels1/intl/po2tbl.sed.in +D glabels1/intl/textdomain.c +D glabels1/intl/xopen-msg.sed +D glabels1/macros/Makefile.am +D glabels1/macros/Makefile.in +D glabels1/macros/aclocal-include.m4 +D glabels1/macros/autogen.sh +D glabels1/macros/compiler-flags.m4 +D glabels1/macros/curses.m4 +D glabels1/macros/gnome-bonobo-check.m4 +D glabels1/macros/gnome-common.m4 +D glabels1/macros/gnome-fileutils.m4 +D glabels1/macros/gnome-gettext.m4 +D glabels1/macros/gnome-ghttp-check.m4 +D glabels1/macros/gnome-gnorba-check.m4 +D glabels1/macros/gnome-guile-checks.m4 +D glabels1/macros/gnome-libgtop-check.m4 +D glabels1/macros/gnome-objc-checks.m4 +D glabels1/macros/gnome-orbit-check.m4 +D glabels1/macros/gnome-print-check.m4 +D glabels1/macros/gnome-pthread-check.m4 +D glabels1/macros/gnome-support.m4 +D glabels1/macros/gnome-undelfs.m4 +D glabels1/macros/gnome-vfs.m4 +D glabels1/macros/gnome-x-checks.m4 +D glabels1/macros/gnome-xml-check.m4 +D glabels1/macros/gnome.m4 +D glabels1/macros/linger.m4 +D glabels1/macros/need-declaration.m4 +D glabels1/missing +D glabels1/pixmaps/glabels-about-logo.png +D glabels1/pixmaps/glabels-icon.png +D glabels1/pixmaps/glabels-logo.png +D glabels1/po/ChangeLog +D glabels1/po/Makefile.in.in +D glabels1/po/POTFILES.in +D glabels1/po/cat-id-tbl.c +D glabels1/po/de.po +D glabels1/po/es.po +D glabels1/po/fr.po +D glabels1/po/glabels.pot +D glabels1/po/ja.po +D glabels1/po/pl.po +D glabels1/po/pt_BR.po +D glabels1/po/ru.po +D glabels1/po/stamp-cat-id +D glabels1/po/zh_TW.Big5.po +D glabels1/src/Makefile.am +D glabels1/src/bc.c +D glabels1/src/bc.h +D glabels1/src/bc_gnubarcode.c +D glabels1/src/bc_gnubarcode.h +D glabels1/src/bc_postnet.c +D glabels1/src/bc_postnet.h +D glabels1/src/debug.h +D glabels1/src/display.c +D glabels1/src/display.h +D glabels1/src/edit.c +D glabels1/src/edit.h +D glabels1/src/file.c +D glabels1/src/file.h +D glabels1/src/glabels.c +D glabels1/src/glabels_batch.c +D glabels1/src/gnome-canvas-hacktext.h +D glabels1/src/hack.c +D glabels1/src/hack.h +D glabels1/src/highlight.c +D glabels1/src/highlight.h +D glabels1/src/item.c +D glabels1/src/item.h +D glabels1/src/item_barcode.c +D glabels1/src/item_barcode.h +D glabels1/src/item_box.c +D glabels1/src/item_box.h +D glabels1/src/item_ellipse.c +D glabels1/src/item_ellipse.h +D glabels1/src/item_image.c +D glabels1/src/item_image.h +D glabels1/src/item_line.c +D glabels1/src/item_line.h +D glabels1/src/item_text.c +D glabels1/src/item_text.h +D glabels1/src/label.c +D glabels1/src/label.h +D glabels1/src/mdi.c +D glabels1/src/mdi.h +D glabels1/src/media_select.c +D glabels1/src/media_select.h +D glabels1/src/menu.c +D glabels1/src/menu.h +D glabels1/src/merge.c +D glabels1/src/merge.h +D glabels1/src/merge_properties.c +D glabels1/src/merge_properties.h +D glabels1/src/merge_text.c +D glabels1/src/merge_text.h +D glabels1/src/merge_ui.c +D glabels1/src/merge_ui.h +D glabels1/src/merge_ui_text.c +D glabels1/src/merge_ui_text.h +D glabels1/src/mini_preview.c +D glabels1/src/mini_preview.h +D glabels1/src/pixmaps/Makefile.am +D glabels1/src/pixmaps/arrow.xpm +D glabels1/src/pixmaps/barcode.xpm +D glabels1/src/pixmaps/box.xpm +D glabels1/src/pixmaps/cursor_zoomin.xbm +D glabels1/src/pixmaps/cursor_zoomin_mask.xbm +D glabels1/src/pixmaps/cursor_zoomout.xbm +D glabels1/src/pixmaps/cursor_zoomout_mask.xbm +D glabels1/src/pixmaps/ellipse.xpm +D glabels1/src/pixmaps/image.xpm +D glabels1/src/pixmaps/line.xpm +D glabels1/src/pixmaps/merge.xpm +D glabels1/src/pixmaps/text.xpm +D glabels1/src/pixmaps/zoom1to1.xpm +D glabels1/src/pixmaps/zoomin.xpm +D glabels1/src/pixmaps/zoomout.xpm +D glabels1/src/prefs.c +D glabels1/src/prefs.h +D glabels1/src/print.c +D glabels1/src/print.h +D glabels1/src/print_copies.c +D glabels1/src/print_copies.h +D glabels1/src/print_dialog.c +D glabels1/src/print_dialog.h +D glabels1/src/print_merge.c +D glabels1/src/print_merge.h +D glabels1/src/prop_bc.c +D glabels1/src/prop_bc.h +D glabels1/src/prop_bc_data.c +D glabels1/src/prop_bc_data.h +D glabels1/src/prop_bc_style.c +D glabels1/src/prop_bc_style.h +D glabels1/src/prop_fill.c +D glabels1/src/prop_fill.h +D glabels1/src/prop_line.c +D glabels1/src/prop_line.h +D glabels1/src/prop_position.c +D glabels1/src/prop_position.h +D glabels1/src/prop_size.c +D glabels1/src/prop_size.h +D glabels1/src/prop_text.c +D glabels1/src/prop_text.h +D glabels1/src/prop_text_entry.c +D glabels1/src/prop_text_entry.h +D glabels1/src/prop_vector.c +D glabels1/src/prop_vector.h +D glabels1/src/propertybox.c +D glabels1/src/propertybox.h +D glabels1/src/rotate_select.c +D glabels1/src/rotate_select.h +D glabels1/src/splash.c +D glabels1/src/splash.h +D glabels1/src/stock.c +D glabels1/src/stock.h +D glabels1/src/template.c +D glabels1/src/template.h +D glabels1/src/text_node.c +D glabels1/src/text_node.h +D glabels1/src/tools.c +D glabels1/src/tools.h +D glabels1/src/util.c +D glabels1/src/util.h +D glabels1/stamp-h.in +D glabels2/barcode-0.98/COPYING +D glabels2/barcode-0.98/ChangeLog +D glabels2/barcode-0.98/INSTALL +D glabels2/barcode-0.98/README +D glabels2/barcode-0.98/TODO +D glabels2/barcode-0.98/barcode.h +D glabels2/barcode-0.98/barcode.spec +D glabels2/barcode-0.98/bookland/bookland.py +D glabels2/barcode-0.98/cmdline.c +D glabels2/barcode-0.98/cmdline.h +D glabels2/barcode-0.98/codabar.c +D glabels2/barcode-0.98/code128.c +D glabels2/barcode-0.98/code39.c +D glabels2/barcode-0.98/code93.c +D glabels2/barcode-0.98/compat/getopt.c +D glabels2/barcode-0.98/compat/getopt.h +D glabels2/barcode-0.98/contrib/barcode-SVG.tar.gz +D glabels2/barcode-0.98/contrib/barcode-SVG.tar.gz.README +D glabels2/barcode-0.98/contrib/barcode-for-delphi.tar.gz +D glabels2/barcode-0.98/contrib/barcode-for-delphi.tar.gz.README +D glabels2/barcode-0.98/contrib/barcodeps-0.1.tgz +D glabels2/barcode-0.98/contrib/barcodeps-0.1.tgz.README +D glabels2/barcode-0.98/contrib/grab-0.0.4.tar.gz +D glabels2/barcode-0.98/contrib/grab-0.0.4.tar.gz.README +D glabels2/barcode-0.98/debian/README.debian +D glabels2/barcode-0.98/debian/changelog +D glabels2/barcode-0.98/debian/control +D glabels2/barcode-0.98/debian/copyright +D glabels2/barcode-0.98/debian/dirs +D glabels2/barcode-0.98/debian/info +D glabels2/barcode-0.98/debian/rules +D glabels2/barcode-0.98/doc/Makefile.in +D glabels2/barcode-0.98/doc/README +D glabels2/barcode-0.98/doc/doc.barcode +D glabels2/barcode-0.98/doc/infofilter +D glabels2/barcode-0.98/doc/manpager +D glabels2/barcode-0.98/doc/mktxt +D glabels2/barcode-0.98/doc/texi2html +D glabels2/barcode-0.98/ean.c +D glabels2/barcode-0.98/i25.c +D glabels2/barcode-0.98/install-sh +D glabels2/barcode-0.98/library.c +D glabels2/barcode-0.98/main.c +D glabels2/barcode-0.98/mkinstalldirs +D glabels2/barcode-0.98/msi.c +D glabels2/barcode-0.98/pcl.c +D glabels2/barcode-0.98/plessey.c +D glabels2/barcode-0.98/ps.c +D glabels2/barcode-0.98/sample.c +D glabels2/src/pixmaps/checkerboard.xpm +D glabels2/src/pixmaps/collate.xpm +D glabels2/src/pixmaps/cursor_barcode.xbm +D glabels2/src/pixmaps/cursor_barcode_mask.xbm +D glabels2/src/pixmaps/cursor_box.xbm +D glabels2/src/pixmaps/cursor_box_mask.xbm +D glabels2/src/pixmaps/cursor_ellipse.xbm +D glabels2/src/pixmaps/cursor_ellipse_mask.xbm +D glabels2/src/pixmaps/cursor_image.xbm +D glabels2/src/pixmaps/cursor_image_mask.xbm +D glabels2/src/pixmaps/cursor_line.xbm +D glabels2/src/pixmaps/cursor_line_mask.xbm +D glabels2/src/pixmaps/cursor_text.xbm +D glabels2/src/pixmaps/cursor_text_mask.xbm +D glabels2/src/pixmaps/nocollate.xpm R100 glabels2/gtk-doc.make gtk-doc.make -R100 glabels2/help/C/Makefile.am help/C/Makefile.am R100 glabels2/help/C/figures/glabels-template-cd.png help/C/figures/glabels-template-cd.png R100 glabels2/help/C/figures/glabels-template-label.png @@ -979,10 +7144,35 @@ R100 glabels2/help/C/figures/print-copies.png help/C/figures/print-copies.png R100 glabels2/help/C/figures/print-merge.png help/C/figures/print-merge.png -R100 glabels2/help/C/glabels-C.omf help/C/glabels-C.omf R100 glabels2/help/C/glabels.xml help/C/glabels.xml R100 glabels2/help/C/legal.xml help/C/legal.xml R100 glabels2/help/Makefile.am help/Makefile.am +R100 glabels2/help/de/de.po help/de/de.po +R100 glabels2/help/de/figures/main-window-empty.png +help/de/figures/main-window-empty.png +R100 glabels2/help/de/figures/merge-ex1-1.png +help/de/figures/merge-ex1-1.png +R100 glabels2/help/de/figures/merge-ex1-2.png +help/de/figures/merge-ex1-2.png +R100 glabels2/help/de/figures/merge-ex1-3.png +help/de/figures/merge-ex1-3.png +R100 glabels2/help/de/figures/merge-ex1-4.png +help/de/figures/merge-ex1-4.png +R100 glabels2/help/de/figures/merge-ex2-1.png +help/de/figures/merge-ex2-1.png +R100 glabels2/help/de/figures/merge-ex2-2.png +help/de/figures/merge-ex2-2.png +R100 glabels2/help/de/figures/merge-ex2-3.png +help/de/figures/merge-ex2-3.png +R100 glabels2/help/de/figures/merge-ex2-4.png +help/de/figures/merge-ex2-4.png +R100 glabels2/help/de/figures/object-editor-sidebar.png +help/de/figures/object-editor-sidebar.png +R100 glabels2/help/de/figures/print-copies.png +help/de/figures/print-copies.png +R100 glabels2/help/de/figures/print-merge.png +help/de/figures/print-merge.png +R100 glabels2/help/glabels.omf.in help/glabels.omf.in R100 glabels2/iec16022-0.2.1/BUGS iec16022-0.2.1/BUGS R100 glabels2/iec16022-0.2.1/CHANGELOG iec16022-0.2.1/CHANGELOG R100 glabels2/iec16022-0.2.1/CREDITS iec16022-0.2.1/CREDITS @@ -1042,7 +7232,9 @@ R100 glabels2/libglabels/xml-template.c libglabels/xml-template.c R100 glabels2/libglabels/xml-template.h libglabels/xml-template.h R100 glabels2/libglabels/xml.c libglabels/xml.c R100 glabels2/libglabels/xml.h libglabels/xml.h +R100 glabels2/po/LINGUAS po/LINGUAS R100 glabels2/po/POTFILES.in po/POTFILES.in +R100 glabels2/po/ca.po po/ca.po R100 glabels2/po/cs.po po/cs.po R100 glabels2/po/de.po po/de.po R100 glabels2/po/eo.po po/eo.po @@ -1054,34 +7246,153 @@ R100 glabels2/po/ko.po po/ko.po R100 glabels2/po/pl.po po/pl.po R100 glabels2/po/pt_BR.po po/pt_BR.po R100 glabels2/po/ru.po po/ru.po +R100 glabels2/po/zh_CN.po po/zh_CN.po R100 glabels2/po/zh_TW.Big5.po po/zh_TW.Big5.po +R100 glabels2/qrencode-3.1.0/COPYING qrencode-3.1.0/COPYING +R100 glabels2/qrencode-3.1.0/ChangeLog qrencode-3.1.0/ChangeLog +R100 glabels2/qrencode-3.1.0/Doxyfile qrencode-3.1.0/Doxyfile +R100 glabels2/qrencode-3.1.0/Makefile.am qrencode-3.1.0/Makefile.am +R100 glabels2/qrencode-3.1.0/Makefile.am.dist +qrencode-3.1.0/Makefile.am.dist +R100 glabels2/qrencode-3.1.0/Makefile.in.dist +qrencode-3.1.0/Makefile.in.dist +R100 glabels2/qrencode-3.1.0/NEWS qrencode-3.1.0/NEWS +R100 glabels2/qrencode-3.1.0/README qrencode-3.1.0/README +R100 glabels2/qrencode-3.1.0/README.glabels +qrencode-3.1.0/README.glabels +R100 glabels2/qrencode-3.1.0/TODO qrencode-3.1.0/TODO +R100 glabels2/qrencode-3.1.0/acinclude.m4 +qrencode-3.1.0/acinclude.m4 +R100 glabels2/qrencode-3.1.0/aclocal.m4 qrencode-3.1.0/aclocal.m4 +R100 glabels2/qrencode-3.1.0/autogen.sh qrencode-3.1.0/autogen.sh +R100 glabels2/qrencode-3.1.0/bitstream.c qrencode-3.1.0/bitstream.c +R100 glabels2/qrencode-3.1.0/bitstream.h qrencode-3.1.0/bitstream.h +R100 glabels2/qrencode-3.1.0/config.h.in qrencode-3.1.0/config.h.in +R100 glabels2/qrencode-3.1.0/configure qrencode-3.1.0/configure +R100 glabels2/qrencode-3.1.0/configure.ac.dist +qrencode-3.1.0/configure.ac.dist +R100 glabels2/qrencode-3.1.0/libqrencode.pc.in +qrencode-3.1.0/libqrencode.pc.in +R100 glabels2/qrencode-3.1.0/mask.c qrencode-3.1.0/mask.c +R100 glabels2/qrencode-3.1.0/mask.h qrencode-3.1.0/mask.h +R100 glabels2/qrencode-3.1.0/qrenc.c qrencode-3.1.0/qrenc.c +R100 glabels2/qrencode-3.1.0/qrencode.1.in +qrencode-3.1.0/qrencode.1.in +R100 glabels2/qrencode-3.1.0/qrencode.c qrencode-3.1.0/qrencode.c +R100 glabels2/qrencode-3.1.0/qrencode.h qrencode-3.1.0/qrencode.h +R100 glabels2/qrencode-3.1.0/qrencode.spec +qrencode-3.1.0/qrencode.spec +R100 glabels2/qrencode-3.1.0/qrencode.spec.in +qrencode-3.1.0/qrencode.spec.in +R100 glabels2/qrencode-3.1.0/qrencode_inner.h +qrencode-3.1.0/qrencode_inner.h +R100 glabels2/qrencode-3.1.0/qrinput.c qrencode-3.1.0/qrinput.c +R100 glabels2/qrencode-3.1.0/qrinput.h qrencode-3.1.0/qrinput.h +R100 glabels2/qrencode-3.1.0/qrspec.c qrencode-3.1.0/qrspec.c +R100 glabels2/qrencode-3.1.0/qrspec.h qrencode-3.1.0/qrspec.h +R100 glabels2/qrencode-3.1.0/rscode.c qrencode-3.1.0/rscode.c +R100 glabels2/qrencode-3.1.0/rscode.h qrencode-3.1.0/rscode.h +R100 glabels2/qrencode-3.1.0/split.c qrencode-3.1.0/split.c +R100 glabels2/qrencode-3.1.0/split.h qrencode-3.1.0/split.h +R100 glabels2/qrencode-3.1.0/tests/Makefile.am +qrencode-3.1.0/tests/Makefile.am +R100 glabels2/qrencode-3.1.0/tests/Makefile.in +qrencode-3.1.0/tests/Makefile.in +R100 glabels2/qrencode-3.1.0/tests/common.h +qrencode-3.1.0/tests/common.h +R100 glabels2/qrencode-3.1.0/tests/create_frame_pattern.c +qrencode-3.1.0/tests/create_frame_pattern.c +R100 glabels2/qrencode-3.1.0/tests/frame qrencode-3.1.0/tests/frame +R100 glabels2/qrencode-3.1.0/tests/prof_qrencode.c +qrencode-3.1.0/tests/prof_qrencode.c +R100 glabels2/qrencode-3.1.0/tests/test_all.sh +qrencode-3.1.0/tests/test_all.sh +R100 glabels2/qrencode-3.1.0/tests/test_bitstream.c +qrencode-3.1.0/tests/test_bitstream.c +R100 glabels2/qrencode-3.1.0/tests/test_estimatebit.c +qrencode-3.1.0/tests/test_estimatebit.c +R100 glabels2/qrencode-3.1.0/tests/test_monkey.c +qrencode-3.1.0/tests/test_monkey.c +R100 glabels2/qrencode-3.1.0/tests/test_qrencode.c +qrencode-3.1.0/tests/test_qrencode.c +R100 glabels2/qrencode-3.1.0/tests/test_qrinput.c +qrencode-3.1.0/tests/test_qrinput.c +R100 glabels2/qrencode-3.1.0/tests/test_qrspec.c +qrencode-3.1.0/tests/test_qrspec.c +R100 glabels2/qrencode-3.1.0/tests/test_rs.c +qrencode-3.1.0/tests/test_rs.c +R100 glabels2/qrencode-3.1.0/tests/test_split.c +qrencode-3.1.0/tests/test_split.c +R100 glabels2/qrencode-3.1.0/tests/view_qrcode.c +qrencode-3.1.0/tests/view_qrcode.c +R100 glabels2/qrencode-3.1.0/use/compile qrencode-3.1.0/use/compile +R100 glabels2/qrencode-3.1.0/use/config.guess +qrencode-3.1.0/use/config.guess +R100 glabels2/qrencode-3.1.0/use/config.sub +qrencode-3.1.0/use/config.sub +R100 glabels2/qrencode-3.1.0/use/depcomp qrencode-3.1.0/use/depcomp +R100 glabels2/qrencode-3.1.0/use/install-sh +qrencode-3.1.0/use/install-sh +R100 glabels2/qrencode-3.1.0/use/ltmain.sh +qrencode-3.1.0/use/ltmain.sh +R100 glabels2/qrencode-3.1.0/use/missing qrencode-3.1.0/use/missing R100 glabels2/src/Makefile.am src/Makefile.am -R100 glabels2/src/base64.c src/base64.c -R100 glabels2/src/base64.h src/base64.h R100 glabels2/src/bc-gnubarcode.c src/bc-gnubarcode.c R100 glabels2/src/bc-gnubarcode.h src/bc-gnubarcode.h R100 glabels2/src/bc-iec16022.c src/bc-iec16022.c R100 glabels2/src/bc-iec16022.h src/bc-iec16022.h +R100 glabels2/src/bc-iec18004.c src/bc-iec18004.c +R100 glabels2/src/bc-iec18004.h src/bc-iec18004.h R100 glabels2/src/bc-postnet.c src/bc-postnet.c R100 glabels2/src/bc-postnet.h src/bc-postnet.h R100 glabels2/src/bc.c src/bc.c R100 glabels2/src/bc.h src/bc.h +R100 glabels2/src/builder-util.c src/builder-util.c +R100 glabels2/src/builder-util.h src/builder-util.h R100 glabels2/src/cairo-ellipse-path.c src/cairo-ellipse-path.c R100 glabels2/src/cairo-ellipse-path.h src/cairo-ellipse-path.h R100 glabels2/src/cairo-label-path.c src/cairo-label-path.c R100 glabels2/src/cairo-label-path.h src/cairo-label-path.h R100 glabels2/src/cairo-markup-path.c src/cairo-markup-path.c R100 glabels2/src/cairo-markup-path.h src/cairo-markup-path.h +R100 glabels2/src/color-combo-button.c src/color-combo-button.c +R100 glabels2/src/color-combo-button.h src/color-combo-button.h +R100 glabels2/src/color-combo-color-menu-item.c +src/color-combo-color-menu-item.c +R100 glabels2/src/color-combo-color-menu-item.h +src/color-combo-color-menu-item.h +R100 glabels2/src/color-combo-history.c src/color-combo-history.c +R100 glabels2/src/color-combo-history.h src/color-combo-history.h +R100 glabels2/src/color-combo-menu.c src/color-combo-menu.c +R100 glabels2/src/color-combo-menu.h src/color-combo-menu.h +R100 glabels2/src/color-combo.c src/color-combo.c +R100 glabels2/src/color-combo.h src/color-combo.h +R100 glabels2/src/color-swatch.c src/color-swatch.c +R100 glabels2/src/color-swatch.h src/color-swatch.h R100 glabels2/src/color.c src/color.c R100 glabels2/src/color.h src/color.h +R100 glabels2/src/combo-util.c src/combo-util.c +R100 glabels2/src/combo-util.h src/combo-util.h R100 glabels2/src/critical-error-handler.c src/critical-error-handler.c R100 glabels2/src/critical-error-handler.h src/critical-error-handler.h R100 glabels2/src/debug.c src/debug.c R100 glabels2/src/debug.h src/debug.h +R100 glabels2/src/file-util.c src/file-util.c +R100 glabels2/src/file-util.h src/file-util.h R100 glabels2/src/file.c src/file.c R100 glabels2/src/file.h src/file.h +R100 glabels2/src/font-combo-menu-item.c src/font-combo-menu-item.c +R100 glabels2/src/font-combo-menu-item.h src/font-combo-menu-item.h +R100 glabels2/src/font-combo-menu.c src/font-combo-menu.c +R100 glabels2/src/font-combo-menu.h src/font-combo-menu.h +R100 glabels2/src/font-combo.c src/font-combo.c +R100 glabels2/src/font-combo.h src/font-combo.h +R100 glabels2/src/font-sample.c src/font-sample.c +R100 glabels2/src/font-sample.h src/font-sample.h +R100 glabels2/src/font-util.c src/font-util.c +R100 glabels2/src/font-util.h src/font-util.h R100 glabels2/src/glabels-batch.c src/glabels-batch.c R100 glabels2/src/glabels.c src/glabels.c R100 glabels2/src/hig.h src/hig.h @@ -1116,29 +7427,16 @@ R100 glabels2/src/merge-vcard.c src/merge-vcard.c R100 glabels2/src/merge-vcard.h src/merge-vcard.h R100 glabels2/src/merge.c src/merge.c R100 glabels2/src/merge.h src/merge.h +R100 glabels2/src/mini-label-preview.c src/mini-label-preview.c +R100 glabels2/src/mini-label-preview.h src/mini-label-preview.h R100 glabels2/src/mini-preview-pixbuf-cache.c src/mini-preview-pixbuf-cache.c R100 glabels2/src/mini-preview-pixbuf-cache.h src/mini-preview-pixbuf-cache.h R100 glabels2/src/mini-preview-pixbuf.c src/mini-preview-pixbuf.c R100 glabels2/src/mini-preview-pixbuf.h src/mini-preview-pixbuf.h -R100 glabels2/src/mygal/Makefile.am src/mygal/Makefile.am -R100 glabels2/src/mygal/color-group.c src/mygal/color-group.c -R100 glabels2/src/mygal/color-group.h src/mygal/color-group.h -R100 glabels2/src/mygal/color-palette.c src/mygal/color-palette.c -R100 glabels2/src/mygal/color-palette.h src/mygal/color-palette.h -R100 glabels2/src/mygal/e-colors.c src/mygal/e-colors.c -R100 glabels2/src/mygal/e-colors.h src/mygal/e-colors.h -R100 glabels2/src/mygal/e-marshal.list src/mygal/e-marshal.list -R100 glabels2/src/mygal/e-util.h src/mygal/e-util.h -R100 glabels2/src/mygal/mygal-combo-box.c -src/mygal/mygal-combo-box.c -R100 glabels2/src/mygal/mygal-combo-box.h -src/mygal/mygal-combo-box.h -R100 glabels2/src/mygal/widget-color-combo.c -src/mygal/widget-color-combo.c -R100 glabels2/src/mygal/widget-color-combo.h -src/mygal/widget-color-combo.h +R100 glabels2/src/mini-preview.c src/mini-preview.c +R100 glabels2/src/mini-preview.h src/mini-preview.h R100 glabels2/src/new-label-dialog.c src/new-label-dialog.c R100 glabels2/src/new-label-dialog.h src/new-label-dialog.h R100 glabels2/src/object-editor-bc-page.c @@ -1170,45 +7468,49 @@ R100 glabels2/src/object-editor.h src/object-editor.h R100 glabels2/src/pixbuf-cache.c src/pixbuf-cache.c R100 glabels2/src/pixbuf-cache.h src/pixbuf-cache.h R100 glabels2/src/pixmaps/Makefile.am src/pixmaps/Makefile.am -R100 glabels2/src/pixmaps/checkerboard.xpm +R100 glabels1/src/pixmaps/checkerboard.xpm src/pixmaps/checkerboard.xpm -R100 glabels2/src/pixmaps/collate.xpm src/pixmaps/collate.xpm -R100 glabels2/src/pixmaps/cursor_barcode.xbm +R100 glabels1/src/pixmaps/collate.xpm src/pixmaps/collate.xpm +R100 glabels1/src/pixmaps/cursor_barcode.xbm src/pixmaps/cursor_barcode.xbm -R100 glabels2/src/pixmaps/cursor_barcode_mask.xbm +R100 glabels1/src/pixmaps/cursor_barcode_mask.xbm src/pixmaps/cursor_barcode_mask.xbm -R100 glabels2/src/pixmaps/cursor_box.xbm src/pixmaps/cursor_box.xbm -R100 glabels2/src/pixmaps/cursor_box_mask.xbm +R100 glabels1/src/pixmaps/cursor_box.xbm src/pixmaps/cursor_box.xbm +R100 glabels1/src/pixmaps/cursor_box_mask.xbm src/pixmaps/cursor_box_mask.xbm -R100 glabels2/src/pixmaps/cursor_ellipse.xbm +R100 glabels1/src/pixmaps/cursor_ellipse.xbm src/pixmaps/cursor_ellipse.xbm -R100 glabels2/src/pixmaps/cursor_ellipse_mask.xbm +R100 glabels1/src/pixmaps/cursor_ellipse_mask.xbm src/pixmaps/cursor_ellipse_mask.xbm -R100 glabels2/src/pixmaps/cursor_image.xbm +R100 glabels1/src/pixmaps/cursor_image.xbm src/pixmaps/cursor_image.xbm -R100 glabels2/src/pixmaps/cursor_image_mask.xbm +R100 glabels1/src/pixmaps/cursor_image_mask.xbm src/pixmaps/cursor_image_mask.xbm -R100 glabels2/src/pixmaps/cursor_line.xbm +R100 glabels1/src/pixmaps/cursor_line.xbm src/pixmaps/cursor_line.xbm -R100 glabels2/src/pixmaps/cursor_line_mask.xbm +R100 glabels1/src/pixmaps/cursor_line_mask.xbm src/pixmaps/cursor_line_mask.xbm -R100 glabels2/src/pixmaps/cursor_text.xbm +R100 glabels1/src/pixmaps/cursor_text.xbm src/pixmaps/cursor_text.xbm -R100 glabels2/src/pixmaps/cursor_text_mask.xbm +R100 glabels1/src/pixmaps/cursor_text_mask.xbm src/pixmaps/cursor_text_mask.xbm -R100 glabels2/src/pixmaps/nocollate.xpm src/pixmaps/nocollate.xpm +R100 glabels1/src/pixmaps/nocollate.xpm src/pixmaps/nocollate.xpm R100 glabels2/src/prefs-dialog.c src/prefs-dialog.c R100 glabels2/src/prefs-dialog.h src/prefs-dialog.h R100 glabels2/src/prefs-model.c src/prefs-model.c R100 glabels2/src/prefs-model.h src/prefs-model.h R100 glabels2/src/prefs.c src/prefs.c R100 glabels2/src/prefs.h src/prefs.h +R100 glabels2/src/print-op-dialog.c src/print-op-dialog.c +R100 glabels2/src/print-op-dialog.h src/print-op-dialog.h R100 glabels2/src/print-op.c src/print-op.c R100 glabels2/src/print-op.h src/print-op.h R100 glabels2/src/print.c src/print.c R100 glabels2/src/print.h src/print.h R100 glabels2/src/recent.c src/recent.c R100 glabels2/src/recent.h src/recent.h +R100 glabels2/src/rotate-label-button.c src/rotate-label-button.c +R100 glabels2/src/rotate-label-button.h src/rotate-label-button.h R100 glabels2/src/stock-pixmaps/Makefile.am src/stock-pixmaps/Makefile.am R100 glabels2/src/stock-pixmaps/stock_align_bottom_16.png @@ -1293,6 +7595,8 @@ R100 glabels2/src/stock-pixmaps/stock_vchain_broken_24.png src/stock-pixmaps/stock_vchain_broken_24.png R100 glabels2/src/stock.c src/stock.c R100 glabels2/src/stock.h src/stock.h +R100 glabels2/src/str-util.c src/str-util.c +R100 glabels2/src/str-util.h src/str-util.h R100 glabels2/src/template-designer.c src/template-designer.c R100 glabels2/src/template-designer.h src/template-designer.h R100 glabels2/src/text-node.c src/text-node.c @@ -1307,8 +7611,6 @@ R100 glabels2/src/ui-util.c src/ui-util.c R100 glabels2/src/ui-util.h src/ui-util.h R100 glabels2/src/ui.c src/ui.c R100 glabels2/src/ui.h src/ui.h -R100 glabels2/src/util.c src/util.c -R100 glabels2/src/util.h src/util.h R100 glabels2/src/view-barcode.c src/view-barcode.c R100 glabels2/src/view-barcode.h src/view-barcode.h R100 glabels2/src/view-box.c src/view-box.c @@ -1331,1461 +7633,17384 @@ R100 glabels2/src/wdgt-chain-button.c src/wdgt-chain-button.c R100 glabels2/src/wdgt-chain-button.h src/wdgt-chain-button.h R100 glabels2/src/wdgt-media-select.c src/wdgt-media-select.c R100 glabels2/src/wdgt-media-select.h src/wdgt-media-select.h -R100 glabels2/src/wdgt-mini-preview.c src/wdgt-mini-preview.c -R100 glabels2/src/wdgt-mini-preview.h src/wdgt-mini-preview.h -R100 glabels2/src/wdgt-print-copies.c src/wdgt-print-copies.c -R100 glabels2/src/wdgt-print-copies.h src/wdgt-print-copies.h -R100 glabels2/src/wdgt-print-merge.c src/wdgt-print-merge.c -R100 glabels2/src/wdgt-print-merge.h src/wdgt-print-merge.h -R100 glabels2/src/wdgt-rotate-label.c src/wdgt-rotate-label.c -R100 glabels2/src/wdgt-rotate-label.h src/wdgt-rotate-label.h +R100 glabels2/src/wdgt-merge-menu.c src/wdgt-merge-menu.c +R100 glabels2/src/wdgt-merge-menu.h src/wdgt-merge-menu.h R100 glabels2/src/window.c src/window.c R100 glabels2/src/window.h src/window.h R100 glabels2/src/xml-label-04.c src/xml-label-04.c R100 glabels2/src/xml-label-04.h src/xml-label-04.h R100 glabels2/src/xml-label.c src/xml-label.c R100 glabels2/src/xml-label.h src/xml-label.h +R100 glabels2/templates/Makefile.am templates/Makefile.am +R100 glabels2/templates/avery-iso-templates.xml +templates/avery-iso-templates.xml +R100 glabels2/templates/avery-other-templates.xml +templates/avery-other-templates.xml +R100 glabels2/templates/avery-us-templates.xml +templates/avery-us-templates.xml +R100 glabels2/templates/brother-other-templates.xml +templates/brother-other-templates.xml +R100 glabels2/templates/categories.xml templates/categories.xml +R100 glabels2/templates/dymo-other-templates.xml +templates/dymo-other-templates.xml +R100 glabels2/templates/glabels-2.2.dtd templates/glabels-2.2.dtd +R100 glabels2/templates/misc-iso-templates.xml +templates/misc-iso-templates.xml +R100 glabels2/templates/misc-other-templates.xml +templates/misc-other-templates.xml +R100 glabels2/templates/misc-us-templates.xml +templates/misc-us-templates.xml +R100 glabels2/templates/paper-sizes.xml templates/paper-sizes.xml +R100 glabels2/templates/zweckform-iso-templates.xml +templates/zweckform-iso-templates.xml +D web/common_php.inc +D web/contact/index.php +D web/css/glabels.css +D web/doc/glabels-2.0.dtd.txt +D web/doc/glabels-2.2.dtd.txt +D web/doc/index.php +D web/doc/install-src/index.php +D web/doc/templates-2.0/glabels-template-cd.png +D web/doc/templates-2.0/glabels-template-label.png +D web/doc/templates-2.0/glabels-template-layout.png +D web/doc/templates-2.0/index.php +D web/doc/templates-2.2/glabels-template-cd.png +D web/doc/templates-2.2/glabels-template-label.png +D web/doc/templates-2.2/glabels-template-layout.png +D web/doc/templates-2.2/index.php +D web/download/index.php +D web/faq/index.php +D web/faq/q1.3-output.png +D web/faq/q1.3-screenshot.png +D web/images/button-bg.png +D web/images/corner-bl.png +D web/images/corner-br.png +D web/images/corner-tl.png +D web/images/corner-tr.png +D web/images/glabels-title-140.png +D web/images/pixel-null.png +D web/index.php +D web/links/index.php +D web/news/index.php +D web/screenshots/191-screenshot-main-grid-thumb.png +D web/screenshots/191-screenshot-main-grid.png +D web/screenshots/191-screenshot-main-thumb.png +D web/screenshots/191-screenshot-main.png +D web/screenshots/191-screenshot-new-thumb.png +D web/screenshots/191-screenshot-new.png +D web/screenshots/191-screenshot-print-merge-thumb.png +D web/screenshots/191-screenshot-print-merge.png +D web/screenshots/191-screenshot-print-simple-thumb.png +D web/screenshots/191-screenshot-print-simple.png +D web/screenshots/192-screenshot-thumb.png +D web/screenshots/192-screenshot.png +D web/screenshots/193-screenshot-main-thumb.png +D web/screenshots/193-screenshot-main.png +D web/screenshots/193-screenshot-new-thumb.png +D web/screenshots/193-screenshot-new.png +D web/screenshots/193-screenshot-preview-thumb.png +D web/screenshots/193-screenshot-preview.png +D web/screenshots/193-screenshot-print-thumb.png +D web/screenshots/193-screenshot-print.png +D web/screenshots/220-screenshot-main-thumb.png +D web/screenshots/220-screenshot-main.png +D web/screenshots/220-screenshot-new-thumb.png +D web/screenshots/220-screenshot-new.png +D web/screenshots/220-screenshot-preview-thumb.png +D web/screenshots/220-screenshot-preview.png +D web/screenshots/220-screenshot-print-thumb.png +D web/screenshots/220-screenshot-print.png +D web/screenshots/glabels1-screenshot-thumb.jpg +D web/screenshots/glabels1-screenshot.jpg +D web/screenshots/glabels1-screenshot.png +D web/screenshots/index.php +D web/source/glabels-0.1.0.tar.gz +D web/source/glabels-0.1.1.tar.gz +D web/source/glabels-0.1.2.tar.gz +D web/source/glabels-0.1.3.tar.gz +D web/source/glabels-0.1.4.tar.gz +D web/source/glabels-0.1.5.tar.gz +D web/source/glabels-0.2.0.tar.gz +D web/source/glabels-0.2.1.tar.gz +D web/source/glabels-0.2.2.tar.gz +D web/source/glabels-0.2.3.tar.gz +D web/source/glabels-0.2.4.tar.gz +D web/source/glabels-0.3.0.tar.gz +D web/source/glabels-0.3.1.tar.gz +D web/source/glabels-0.3.2.tar.gz +D web/source/glabels-0.3.3.tar.gz +D web/source/glabels-0.3.4.tar.gz +D web/source/glabels-0.4.0.tar.gz +D web/source/glabels-0.4.1.tar.gz +D web/source/glabels-0.4.2.tar.gz +D web/source/glabels-0.4.3.tar.gz +D web/source/glabels-0.4.4.tar.gz +D web/source/glabels-0.4.5.tar.gz +D web/source/glabels-0.4.6.tar.gz +D web/source/glabels-1.89.0.tar.gz +D web/source/glabels-1.89.1.tar.gz +D web/source/glabels-1.89.2.tar.gz +D web/source/glabels-1.90.0.tar.gz +D web/source/glabels-1.91.0.tar.gz +D web/source/glabels-1.91.1.tar.gz +D web/source/glabels-1.92.0.tar.gz +D web/source/glabels-1.92.1.tar.gz +D web/source/glabels-1.92.2.tar.gz +D web/source/glabels-1.92.3.tar.gz +D web/source/glabels-1.93.0.tar.gz +D web/source/glabels-1.93.1.tar.gz +D web/source/glabels-1.93.2.tar.gz +D web/source/glabels-1.93.3.tar.gz +D web/tango-icons/applications-development.png +D web/tango-icons/applications-internet.png +D web/tango-icons/dialog-information.png +D web/tango-icons/emblem-photos.png +D web/tango-icons/help-browser.png +D web/tango-icons/internet-news-reader.png +D web/tango-icons/package-x-generic.png +D web/tango-icons/system-users.png + +commit afa4a2a62381d2502254a8928216f11509aa1b7d +Author: Jim Evins +Date: 2009-09-23 + + 2009-09-22 Jim Evins + + * po/POTFILES.in: + * src/Makefile.am: + * src/builder-util.c: + * src/builder-util.h: + * src/combo-util.c: + * src/combo-util.h: + * src/file-util.c: + * src/file-util.h: + * src/str-util.c: + * src/str-util.h: + Split "catch all" util module into separate modules + for different + domains of utilities. + * src/file.c: (gl_file_open_real), (save_as_response): + * src/glabels-batch.c: (main): + * src/label.c: (gl_label_get_short_name): + * src/merge-properties-dialog.c: + (gl_merge_properties_dialog_init), + (gl_merge_properties_dialog_construct): + * src/new-label-dialog.c: + * src/object-editor-bc-page.c: (gl_object_editor_prepare_bc_page), + (gl_object_editor_set_bc_style), (gl_object_editor_set_bc_color): + * src/object-editor-data-page.c: + (gl_object_editor_prepare_data_page), (gl_object_editor_set_data): + * src/object-editor-edit-page.c: + (gl_object_editor_prepare_edit_page): + * src/object-editor-fill-page.c: + (gl_object_editor_prepare_fill_page), + (gl_object_editor_set_fill_color): + * src/object-editor-image-page.c: + (gl_object_editor_prepare_image_page), + (gl_object_editor_set_image): + * src/object-editor-line-page.c: + (gl_object_editor_prepare_line_page), + (gl_object_editor_set_line_color): + * src/object-editor-lsize-page.c: + (gl_object_editor_prepare_lsize_page): + * src/object-editor-position-page.c: + (gl_object_editor_prepare_position_page): + * src/object-editor-shadow-page.c: + (gl_object_editor_prepare_shadow_page), + (gl_object_editor_set_shadow_color): + * src/object-editor-size-page.c: + (gl_object_editor_prepare_size_page): + * src/object-editor-text-page.c: + (gl_object_editor_prepare_text_page), + (gl_object_editor_set_text_color): + * src/object-editor.c: (gl_object_editor_init), + (gl_object_editor_set_key_names): + * src/prefs-dialog.c: (gl_prefs_dialog_construct), + (construct_locale_page), (construct_object_page): + * src/prefs-model.c: (gl_prefs_model_save_settings), + (gl_prefs_model_load_settings): + * src/print-op-dialog.c: (create_custom_widget_cb): + * src/template-designer.c: (construct_start_page), + (construct_name_page), (construct_pg_size_page), + (construct_shape_page), (construct_rect_size_page), + (construct_round_size_page), (construct_cd_size_page), + (construct_nlayouts_page), (construct_layout_page), + (construct_finish_page): + * src/ui-property-bar.c: (gl_ui_property_bar_construct): + * src/wdgt-media-select.c: (gl_wdgt_media_select_construct), + (gl_wdgt_media_select_set_filter_parameters), + (get_label_size_desc): + * src/window.c: (gl_window_new_from_file): + * src/xml-label-04.c: (xml04_parse_text_props): + * src/xml-label.c: (xml_parse_object_text), + (xml_parse_toplevel_span), (xml_create_object_text), + (xml_create_toplevel_span): + Reconciled all references to old utils module with + new domain + specific utilities modules. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@895 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/po/POTFILES.in +M glabels2/src/Makefile.am +A glabels2/src/builder-util.c +A glabels2/src/builder-util.h +A glabels2/src/combo-util.c +A glabels2/src/combo-util.h +A glabels2/src/file-util.c +A glabels2/src/file-util.h +M glabels2/src/file.c +M glabels2/src/glabels-batch.c +M glabels2/src/label.c +M glabels2/src/merge-properties-dialog.c +M glabels2/src/new-label-dialog.c +M glabels2/src/object-editor-bc-page.c +M glabels2/src/object-editor-data-page.c +M glabels2/src/object-editor-edit-page.c +M glabels2/src/object-editor-fill-page.c +M glabels2/src/object-editor-image-page.c +M glabels2/src/object-editor-line-page.c +M glabels2/src/object-editor-lsize-page.c +M glabels2/src/object-editor-position-page.c +M glabels2/src/object-editor-shadow-page.c +M glabels2/src/object-editor-size-page.c +M glabels2/src/object-editor-text-page.c +M glabels2/src/object-editor.c +M glabels2/src/prefs-dialog.c +M glabels2/src/prefs-model.c +M glabels2/src/print-op-dialog.c +A glabels2/src/str-util.c +A glabels2/src/str-util.h +M glabels2/src/template-designer.c +M glabels2/src/ui-property-bar.c +D glabels2/src/util.c +D glabels2/src/util.h +M glabels2/src/wdgt-media-select.c +M glabels2/src/window.c +M glabels2/src/xml-label-04.c +M glabels2/src/xml-label.c + +commit b837823b737bdc2dd87ccc7d16e48d8079ed04e4 +Author: Jim Evins +Date: 2009-09-23 + + 2009-09-22 Jim Evins + + * po/POTFILES.in: + Include all (src/*.[ch]) source files. + * data/builder/merge-properties-dialog.builder: + * src/merge-properties-dialog.c: + (gl_merge_properties_dialog_init), + (gl_merge_properties_dialog_construct), (type_changed_cb): + - OK button now has default focus. + - Some formatting cleanup. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@894 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/data/builder/merge-properties-dialog.builder +M glabels2/po/POTFILES.in +M glabels2/src/merge-properties-dialog.c + +commit c41ee6a35575304bc9a08337f75b7e2a1c658e7e +Author: Jim Evins +Date: 2009-09-21 + + 2009-09-21 Jim Evins + + * po/POTFILES.in: + * data/builder/Makefile.am: + * data/builder/new-label-dialog.builder: + Removed trivial builder file for new label dialog. + * data/builder/wdgt-media-select.builder: + Changed focus behavior of widgets. + * src/new-label-dialog.c: (gl_new_label_dialog_init), + (gl_new_label_dialog_construct): + - Removed use of trivial builder file -- populate + explicitely. + - Moved population code to init. + - OK button now has default focus. + - Some formatting cleanup. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@893 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/data/builder/Makefile.am +D glabels2/data/builder/new-label-dialog.builder +M glabels2/data/builder/wdgt-media-select.builder +M glabels2/po/POTFILES.in +M glabels2/src/new-label-dialog.c + +commit bbbf408cc04af2b04aea5c0607e780cb1f6a70f0 +Author: Mario Blättermann +Date: 2009-09-20 + + *po/de.po: Updated German translation + + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@892 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/po/de.po + +commit 8faa3c122a93e40e4d296af10155542818b4666e +Author: Jim Evins +Date: 2009-09-19 + + 2009-09-19 Jim Evins + + * COPYING: + Updated to GPL3 text. + * COPYING-LIBGLABELS: + Updated to LGPL3 text. + * COPYING-TEMPLATES: + New MIT/X license file for templates subdirectory. + * COPYING.README_FIRST: + Updated licensing information. + * templates/Makefile.am: + * templates/avery-iso-templates.xml: + * templates/avery-other-templates.xml: + * templates/avery-us-templates.xml: + * templates/brother-other-templates.xml: + * templates/categories.xml: + * templates/dymo-other-templates.xml: + * templates/glabels-2.2.dtd: + * templates/misc-iso-templates.xml: + * templates/misc-other-templates.xml: + * templates/misc-us-templates.xml: + * templates/paper-sizes.xml: + * templates/zweckform-iso-templates.xml: + - Added MIT/X license notice to database files. + - Moved from data subdirectory. + * configure.in: + * po/POTFILES.in: + * Makefile.am: + * data/Makefile.am: + Updated to reflect above move. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@891 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/COPYING +M glabels2/COPYING-LIBGLABELS +A glabels2/COPYING-TEMPLATES +M glabels2/COPYING.README_FIRST +M glabels2/ChangeLog +M glabels2/Makefile.am +M glabels2/configure.in +M glabels2/data/Makefile.am +D glabels2/data/dtd/Makefile.am +D glabels2/data/templates/avery-other-templates.xml +D glabels2/data/templates/categories.xml +D glabels2/data/templates/misc-other-templates.xml +M glabels2/po/POTFILES.in +R079 glabels2/data/templates/Makefile.am +glabels2/templates/Makefile.am +R092 glabels2/data/templates/avery-iso-templates.xml +glabels2/templates/avery-iso-templates.xml +A glabels2/templates/avery-other-templates.xml +R096 glabels2/data/templates/avery-us-templates.xml +glabels2/templates/avery-us-templates.xml +R064 glabels2/data/templates/brother-other-templates.xml +glabels2/templates/brother-other-templates.xml +A glabels2/templates/categories.xml +R078 glabels2/data/templates/dymo-other-templates.xml +glabels2/templates/dymo-other-templates.xml +R093 glabels2/data/dtd/glabels-2.2.dtd +glabels2/templates/glabels-2.2.dtd +R096 glabels2/data/templates/misc-iso-templates.xml +glabels2/templates/misc-iso-templates.xml +A glabels2/templates/misc-other-templates.xml +R090 glabels2/data/templates/misc-us-templates.xml +glabels2/templates/misc-us-templates.xml +R071 glabels2/data/templates/paper-sizes.xml +glabels2/templates/paper-sizes.xml +R090 glabels2/data/templates/zweckform-iso-templates.xml +glabels2/templates/zweckform-iso-templates.xml + +commit cc737549c143021a3463c490c6122261717b918c +Author: Jim Evins +Date: 2009-09-19 + + 2009-09-19 Jim Evins + + * libglabels/category.c: + * libglabels/category.h: + * libglabels/db.c: + * libglabels/db.h: + * libglabels/enums.h: + * libglabels/libglabels-private.h: + * libglabels/libglabels.h: + * libglabels/paper.c: + * libglabels/paper.h: + * libglabels/str.c: + * libglabels/str.h: + * libglabels/template.c: + * libglabels/template.h: + * libglabels/xml-category.c: + * libglabels/xml-category.h: + * libglabels/xml-paper.c: + * libglabels/xml-paper.h: + * libglabels/xml-template.c: + * libglabels/xml-template.h: + * libglabels/xml.c: + * libglabels/xml.h: + - Cleaned up GTK/GLIB includes. + - Updated license notification to LGPL3+. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@890 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/libglabels/category.c +M glabels2/libglabels/category.h +M glabels2/libglabels/db.c +M glabels2/libglabels/db.h +M glabels2/libglabels/enums.h +M glabels2/libglabels/libglabels-private.h +M glabels2/libglabels/libglabels.h +M glabels2/libglabels/paper.c +M glabels2/libglabels/paper.h +M glabels2/libglabels/str.c +M glabels2/libglabels/str.h +M glabels2/libglabels/template.c +M glabels2/libglabels/template.h +M glabels2/libglabels/xml-category.c +M glabels2/libglabels/xml-category.h +M glabels2/libglabels/xml-paper.c +M glabels2/libglabels/xml-paper.h +M glabels2/libglabels/xml-template.c +M glabels2/libglabels/xml-template.h +M glabels2/libglabels/xml.c +M glabels2/libglabels/xml.h + +commit 728c32fbe052cd712c75a0e6abd857b9edad0769 +Author: Jim Evins +Date: 2009-09-19 + + 2009-09-18 Jim Evins + + * po/POTFILES.in: + Added missing file. + * src/mini-preview.h: + * src/mini-preview.c: (gl_mini_preview_class_init), + (gl_mini_preview_finalize), (gl_mini_preview_set_by_name), + (gl_mini_preview_highlight_range), (gl_mini_preview_set_label), + (gl_mini_preview_set_page), (gl_mini_preview_set_n_sheets), + (gl_mini_preview_set_n_copies), (gl_mini_preview_set_first), + (gl_mini_preview_set_last), (gl_mini_preview_set_collate_flag), + (gl_mini_preview_set_outline_flag), + (gl_mini_preview_set_reverse_flag), + (gl_mini_preview_set_crop_marks_flag), (button_release_event_cb), + (expose_event_cb), (redraw), (draw), (draw_labels), + (draw_rich_preview): + Added rich preview capability to mini preview. + * src/print-op-dialog.c: (create_custom_widget_cb), + (simple_sheets_radio_cb), (simple_first_spin_cb), + (simple_last_spin_cb), (preview_pressed_cb), + (preview_released_cb), + (merge_spin_cb), (merge_collate_check_cb), (preview_clicked_cb), + (option_toggled_cb): + Use new rich preview capability of mini preview in + print dialog. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@889 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/po/POTFILES.in +M glabels2/src/mini-preview.c +M glabels2/src/mini-preview.h +M glabels2/src/print-op-dialog.c + +commit 8ab36a60a289ee05a68bff6e0057fcfedbc707f6 +Author: Mario Blättermann +Date: 2009-09-18 + + po/POTFILES.in: Removed name of no longer existant file + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@888 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/po/POTFILES.in + +commit 25a36cf2b7d91c7578d40b141b6810e5f635b629 +Author: Jim Evins +Date: 2009-09-18 + + 2009-09-17 Jim Evins + + * src/stock.c: (add_icons), (add_button_icon): + Use proper free function for GtkIconSource + (gtk_icon_source_free() not g_free()). + Patch provided by Christian Persch . + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@886 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/stock.c + +commit 7e55e35f41dbbbbb2dcf285fa5fbcc9007628457 +Author: Jim Evins +Date: 2009-09-18 + + 2009-09-17 Jim Evins + + * libglabels/category.h: + * libglabels/db.h: + * libglabels/paper.h: + * libglabels/template.h: + * libglabels/xml-category.h: + * libglabels/xml-paper.h: + * libglabels/xml.h: + Cleaned up GTK/GLIB includes. + * src/bc-gnubarcode.c: + * src/bc-gnubarcode.h: + * src/bc-iec16022.c: + * src/bc-iec16022.h: + * src/bc-iec18004.c: + * src/bc-iec18004.h: + * src/bc-postnet.c: + * src/bc-postnet.h: + * src/bc.c: + * src/bc.h: + * src/cairo-ellipse-path.c: + * src/cairo-ellipse-path.h: + * src/cairo-label-path.c: + * src/cairo-label-path.h: + * src/cairo-markup-path.c: + * src/cairo-markup-path.h: + * src/color-combo-button.c: + * src/color-combo-button.h: + * src/color-combo-color-menu-item.c: + * src/color-combo-color-menu-item.h: + * src/color-combo-history.c: + * src/color-combo-menu.c: + * src/color-combo-menu.h: + * src/color-combo.c: + * src/color-combo.h: + * src/color-swatch.c: + * src/color-swatch.h: + * src/color.c: + * src/color.h: + * src/critical-error-handler.c: + * src/critical-error-handler.h: + * src/debug.c: + * src/debug.h: + * src/file.c: + * src/file.h: + * src/font-combo-menu-item.c: + * src/font-combo-menu-item.h: + * src/font-combo-menu.c: + * src/font-combo-menu.h: + * src/font-combo.c: + * src/font-combo.h: + * src/font-sample.h: + * src/font-util.c: + * src/font-util.h: + * src/glabels-batch.c: + * src/glabels.c: + * src/hig.h: + * src/label-barcode.c: + * src/label-barcode.h: + * src/label-box.c: + * src/label-box.h: + * src/label-ellipse.c: + * src/label-ellipse.h: + * src/label-image.c: + * src/label-image.h: + * src/label-line.c: + * src/label-line.h: + * src/label-object.c: + * src/label-object.h: + * src/label-text.c: + * src/label-text.h: + * src/label.c: + * src/label.h: + * src/merge-evolution.c: + * src/merge-evolution.h: + * src/merge-init.c: + * src/merge-init.h: + * src/merge-properties-dialog.c: + * src/merge-properties-dialog.h: + * src/merge-text.c: + * src/merge-text.h: + * src/merge-vcard.c: + * src/merge-vcard.h: + * src/merge.c: + * src/merge.h: + * src/mini-label-preview.c: + * src/mini-label-preview.h: + * src/mini-preview-pixbuf-cache.c: + * src/mini-preview-pixbuf-cache.h: + * src/mini-preview-pixbuf.c: + * src/mini-preview-pixbuf.h: + * src/mini-preview.c: + * src/new-label-dialog.c: + * src/new-label-dialog.h: + * src/object-editor-bc-page.c: + * src/object-editor-data-page.c: + * src/object-editor-fill-page.c: + * src/object-editor-image-page.c: + * src/object-editor-line-page.c: + * src/object-editor-lsize-page.c: + * src/object-editor-position-page.c: + * src/object-editor-private.h: + * src/object-editor-shadow-page.c: + * src/object-editor-size-page.c: + * src/object-editor-text-page.c: + * src/object-editor.c: + * src/object-editor.h: + * src/pixbuf-cache.c: + * src/pixbuf-cache.h: + * src/prefs-dialog.c: + * src/prefs-dialog.h: + * src/prefs-model.c: + * src/prefs-model.h: + * src/prefs.c: + * src/prefs.h: + * src/print-op-dialog.c: + * src/print-op.c: + * src/print-op.h: + * src/print.c: + * src/print.h: + * src/recent.c: + * src/recent.h: + * src/rotate-label-button.c: + * src/rotate-label-button.h: + * src/stock.c: + * src/stock.h: + * src/template-designer.c: + * src/template-designer.h: + * src/text-node.c: + * src/text-node.h: + * src/ui-commands.c: + * src/ui-commands.h: + * src/ui-property-bar.c: + * src/ui-property-bar.h: + * src/ui-sidebar.c: + * src/ui-sidebar.h: + * src/ui-util.c: + * src/ui-util.h: + * src/ui.c: + * src/ui.h: + * src/util.c: + * src/util.h: + * src/view-barcode.c: + * src/view-barcode.h: + * src/view-box.c: + * src/view-box.h: + * src/view-ellipse.c: + * src/view-ellipse.h: + * src/view-image.c: + * src/view-image.h: + * src/view-line.c: + * src/view-line.h: + * src/view-object.c: + * src/view-object.h: + * src/view-text.c: + * src/view-text.h: + * src/view.c: + * src/view.h: + * src/warning-handler.c: + * src/warning-handler.h: + * src/wdgt-chain-button.c: + * src/wdgt-chain-button.h: + * src/wdgt-media-select.c: + * src/wdgt-media-select.h: + * src/wdgt-merge-menu.c: + * src/wdgt-merge-menu.h: + * src/window.c: + * src/window.h: + * src/xml-label-04.c: + * src/xml-label-04.h: + * src/xml-label.c: + * src/xml-label.h: + Cleaned up GTK/GLIB includes. + Updated remainder of notices to GPL3+. + Simple formatting cleanup. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@885 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/libglabels/category.h +M glabels2/libglabels/db.h +M glabels2/libglabels/paper.h +M glabels2/libglabels/template.h +M glabels2/libglabels/xml-category.h +M glabels2/libglabels/xml-paper.h +M glabels2/libglabels/xml.h +M glabels2/src/bc-gnubarcode.c +M glabels2/src/bc-gnubarcode.h +M glabels2/src/bc-iec16022.c +M glabels2/src/bc-iec16022.h +M glabels2/src/bc-iec18004.c +M glabels2/src/bc-iec18004.h +M glabels2/src/bc-postnet.c +M glabels2/src/bc-postnet.h +M glabels2/src/bc.c +M glabels2/src/bc.h +M glabels2/src/cairo-ellipse-path.c +M glabels2/src/cairo-ellipse-path.h +M glabels2/src/cairo-label-path.c +M glabels2/src/cairo-label-path.h +M glabels2/src/cairo-markup-path.c +M glabels2/src/cairo-markup-path.h +M glabels2/src/color-combo-button.c +M glabels2/src/color-combo-button.h +M glabels2/src/color-combo-color-menu-item.c +M glabels2/src/color-combo-color-menu-item.h +M glabels2/src/color-combo-history.c +M glabels2/src/color-combo-menu.c +M glabels2/src/color-combo-menu.h +M glabels2/src/color-combo.c +M glabels2/src/color-combo.h +M glabels2/src/color-swatch.c +M glabels2/src/color-swatch.h +M glabels2/src/color.c +M glabels2/src/color.h +M glabels2/src/critical-error-handler.c +M glabels2/src/critical-error-handler.h +M glabels2/src/debug.c +M glabels2/src/debug.h +M glabels2/src/file.c +M glabels2/src/file.h +M glabels2/src/font-combo-menu-item.c +M glabels2/src/font-combo-menu-item.h +M glabels2/src/font-combo-menu.c +M glabels2/src/font-combo-menu.h +M glabels2/src/font-combo.c +M glabels2/src/font-combo.h +M glabels2/src/font-sample.h +M glabels2/src/font-util.c +M glabels2/src/font-util.h +M glabels2/src/glabels-batch.c +M glabels2/src/glabels.c +M glabels2/src/hig.h +M glabels2/src/label-barcode.c +M glabels2/src/label-barcode.h +M glabels2/src/label-box.c +M glabels2/src/label-box.h +M glabels2/src/label-ellipse.c +M glabels2/src/label-ellipse.h +M glabels2/src/label-image.c +M glabels2/src/label-image.h +M glabels2/src/label-line.c +M glabels2/src/label-line.h +M glabels2/src/label-object.c +M glabels2/src/label-object.h +M glabels2/src/label-text.c +M glabels2/src/label-text.h +M glabels2/src/label.c +M glabels2/src/label.h +M glabels2/src/merge-evolution.c +M glabels2/src/merge-evolution.h +M glabels2/src/merge-init.c +M glabels2/src/merge-init.h +M glabels2/src/merge-properties-dialog.c +M glabels2/src/merge-properties-dialog.h +M glabels2/src/merge-text.c +M glabels2/src/merge-text.h +M glabels2/src/merge-vcard.c +M glabels2/src/merge-vcard.h +M glabels2/src/merge.c +M glabels2/src/merge.h +M glabels2/src/mini-label-preview.c +M glabels2/src/mini-label-preview.h +M glabels2/src/mini-preview-pixbuf-cache.c +M glabels2/src/mini-preview-pixbuf-cache.h +M glabels2/src/mini-preview-pixbuf.c +M glabels2/src/mini-preview-pixbuf.h +M glabels2/src/mini-preview.c +M glabels2/src/new-label-dialog.c +M glabels2/src/new-label-dialog.h +M glabels2/src/object-editor-bc-page.c +M glabels2/src/object-editor-data-page.c +M glabels2/src/object-editor-fill-page.c +M glabels2/src/object-editor-image-page.c +M glabels2/src/object-editor-line-page.c +M glabels2/src/object-editor-lsize-page.c +M glabels2/src/object-editor-position-page.c +M glabels2/src/object-editor-private.h +M glabels2/src/object-editor-shadow-page.c +M glabels2/src/object-editor-size-page.c +M glabels2/src/object-editor-text-page.c +M glabels2/src/object-editor.c +M glabels2/src/object-editor.h +M glabels2/src/pixbuf-cache.c +M glabels2/src/pixbuf-cache.h +M glabels2/src/prefs-dialog.c +M glabels2/src/prefs-dialog.h +M glabels2/src/prefs-model.c +M glabels2/src/prefs-model.h +M glabels2/src/prefs.c +M glabels2/src/prefs.h +M glabels2/src/print-op-dialog.c +M glabels2/src/print-op.c +M glabels2/src/print-op.h +M glabels2/src/print.c +M glabels2/src/print.h +M glabels2/src/recent.c +M glabels2/src/recent.h +M glabels2/src/rotate-label-button.c +M glabels2/src/rotate-label-button.h +M glabels2/src/stock.c +M glabels2/src/stock.h +M glabels2/src/template-designer.c +M glabels2/src/template-designer.h +M glabels2/src/text-node.c +M glabels2/src/text-node.h +M glabels2/src/ui-commands.c +M glabels2/src/ui-commands.h +M glabels2/src/ui-property-bar.c +M glabels2/src/ui-property-bar.h +M glabels2/src/ui-sidebar.c +M glabels2/src/ui-sidebar.h +M glabels2/src/ui-util.c +M glabels2/src/ui-util.h +M glabels2/src/ui.c +M glabels2/src/ui.h +M glabels2/src/util.c +M glabels2/src/util.h +M glabels2/src/view-barcode.c +M glabels2/src/view-barcode.h +M glabels2/src/view-box.c +M glabels2/src/view-box.h +M glabels2/src/view-ellipse.c +M glabels2/src/view-ellipse.h +M glabels2/src/view-image.c +M glabels2/src/view-image.h +M glabels2/src/view-line.c +M glabels2/src/view-line.h +M glabels2/src/view-object.c +M glabels2/src/view-object.h +M glabels2/src/view-text.c +M glabels2/src/view-text.h +M glabels2/src/view.c +M glabels2/src/view.h +M glabels2/src/warning-handler.c +M glabels2/src/warning-handler.h +M glabels2/src/wdgt-chain-button.c +M glabels2/src/wdgt-chain-button.h +M glabels2/src/wdgt-media-select.c +M glabels2/src/wdgt-media-select.h +M glabels2/src/wdgt-merge-menu.c +M glabels2/src/wdgt-merge-menu.h +M glabels2/src/window.c +M glabels2/src/window.h +M glabels2/src/xml-label-04.c +M glabels2/src/xml-label-04.h +M glabels2/src/xml-label.c +M glabels2/src/xml-label.h + +commit 83898579197af3dbe8fecb57c729770cd7e34694 +Author: Mario Blättermann +Date: 2009-09-16 + + de.po: Updated German translation + POTFILES.in: Removed filenames which are no longer available + + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@884 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/po/POTFILES.in +M glabels2/po/de.po + +commit a1f61988eb85f9133482e6f8fa6232600f897b1c +Author: Jim Evins +Date: 2009-09-13 + + 2009-09-13 Jim Evins + + Refactored print operation subsystem. + + * src/print-op.c: + * src/print-op.h: + Basic GtkPrintOperation based class. Does not instantiate + custom widgets, so it can be used by glabels-batch without + the additional overhead. + * src/print-op-dialog.c: + * src/print-op-dialog.h: + New object derived from glPrintOp. This one is intended + to be used as a dialog and installs custom widgets. + glWdgtPrintCopies and glWdgtPrintMerge have been merged + into this object. + * src/wdgt-print-copies.c: + * src/wdgt-print-copies.h: + * src/wdgt-print-merge.c: + * src/wdgt-print-merge.h: + Deleted. + * src/Makefile.am: + Modified to reflect above additions and deletions. + * src/mini-preview.c: (gl_mini_preview_construct), + (gl_mini_preview_set_template), (set_transform_and_get_scale), + (button_press_event_cb), (motion_notify_event_cb), (draw): + Now scales with allocation. + * src/glabels-batch.c: (main): + * src/template-designer.c: (print_test_cb): + * src/ui-commands.c: (gl_ui_cmd_file_print): + Use above modifications. + * data/builder/print-op-dialog-custom-widget.builder: + New builder file for glPrintOpDialog custom widgets. + * data/builder/print-custom-widget.builder: + Deleted. + * data/builder/Makefile.am: + Modified to reflect above addition and deletion. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@883 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/data/builder/Makefile.am +D glabels2/data/builder/print-custom-widget.builder +A glabels2/data/builder/print-op-dialog-custom-widget.builder +M glabels2/src/Makefile.am +M glabels2/src/glabels-batch.c +M glabels2/src/mini-preview.c +A glabels2/src/print-op-dialog.c +A glabels2/src/print-op-dialog.h +M glabels2/src/print-op.c +M glabels2/src/print-op.h +M glabels2/src/template-designer.c +M glabels2/src/ui-commands.c +D glabels2/src/wdgt-print-copies.c +D glabels2/src/wdgt-print-copies.h +D glabels2/src/wdgt-print-merge.c +D glabels2/src/wdgt-print-merge.h + +commit 96a9288a2f2f9b72daf98f7a768d0e37345dcc9e +Author: Jim Evins +Date: 2009-09-11 + + 2009-09-10 Jim Evins + + * src/Makefile.am: + * src/mini-label-preview.c: + * src/mini-label-preview.h: + Created new glMiniLabelPreview widget to support + glRotateLabelButton. + * src/rotate-label-button.c: + * src/rotate-label-button.h: + Renamed glWdgtRotateLabel to glRotateLabelButton. + * src/new-label-dialog.c: (gl_new_label_dialog_construct), + (template_changed_cb), (gl_new_label_dialog_get_rotate_state), + (gl_new_label_dialog_set_rotate_state): + Propogated above renaming. + * src/mini-preview.c: (gl_mini_preview_set_template), (draw), + (draw_shadow), (draw_paper), (draw_labels): + Use GtkStyle for colors instead of hardcoded ones. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@882 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/Makefile.am +A glabels2/src/mini-label-preview.c +A glabels2/src/mini-label-preview.h +M glabels2/src/mini-preview.c +M glabels2/src/new-label-dialog.c +A glabels2/src/rotate-label-button.c +A glabels2/src/rotate-label-button.h +D glabels2/src/wdgt-rotate-label.c +D glabels2/src/wdgt-rotate-label.h + +commit cedd2451f2f2a5d8d3ca52c74659ce6597dce235 +Author: Jim Evins +Date: 2009-09-10 + + 2009-09-09 Jim Evins + + * configure.in: + * Makefile.am: + * src/Makefile.am: + * src/stock-pixmaps/Makefile.am: + * qrencode-3.1.0/Makefile.am + * data/desktop/glabels.desktop.in: + * docs/libglabels/libglabels-decl-list.txt: + Various build system fixes and cleanup. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@880 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/Makefile.am +M glabels2/barcode-0.98/Makefile.am +M glabels2/configure.in +M glabels2/data/desktop/glabels.desktop.in +M glabels2/docs/libglabels/libglabels-decl-list.txt +D glabels2/help/C/Makefile.am +M glabels2/help/Makefile.am +M glabels2/qrencode-3.1.0/Makefile.am +M glabels2/src/Makefile.am +M glabels2/src/stock-pixmaps/Makefile.am + +commit 245cb815f5a040b97443fff0229afd0d74711a5c +Author: Jim Evins +Date: 2009-09-09 + + 2009-09-08 Jim Evins + + * src/font-util.c: (gl_font_util_validate_family): + * src/font-util.h: + Added gl_font_util_validate_family(). + * src/font-combo.c: (gl_font_combo_class_init), + (gl_font_combo_new), (gl_font_combo_set_family): + Use gl_font_util_validate_family() when setting family. + * src/label-text.c: (set_font_family): + * src/prefs-dialog.c: (construct_object_page), + (update_object_page_from_prefs): + * src/ui-property-bar.c: (gl_ui_property_bar_construct), + (reset_to_default_properties): + * src/object-editor-text-page.c: + (gl_object_editor_prepare_text_page), + (gl_object_editor_set_font_family): + Removed code obsoleted by the addition of + gl_font_util_validate_family(). + * src/color-swatch.c: (gl_color_swatch_class_init), + (style_set_cb), + (draw_swatch): + * src/font-sample.c: (gl_font_sample_class_init), (style_set_cb), + (draw_sample): + Added handler for style_set event. + * src/color-combo-button.c: (gl_color_combo_button_class_init): + * src/color-combo-color-menu-item.c: + (gl_color_combo_color_menu_item_class_init): + * src/color-combo-history.c: (gl_color_combo_history_class_init): + * src/color-combo-menu.c: (map_event_cb): + * src/color-combo.c: (gl_color_combo_class_init), + (gl_color_combo_new): + * src/font-combo-menu-item.c: + (gl_font_combo_menu_item_class_init): + * src/font-combo-menu.c: (gl_font_combo_menu_class_init): + * src/wdgt-rotate-label.c: (create_pixbuf): + Various cleanups -- mostly removing unused variables. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@877 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/color-combo-button.c +M glabels2/src/color-combo-color-menu-item.c +M glabels2/src/color-combo-history.c +M glabels2/src/color-combo-menu.c +M glabels2/src/color-combo.c +M glabels2/src/color-swatch.c +M glabels2/src/font-combo-menu-item.c +M glabels2/src/font-combo-menu.c +M glabels2/src/font-combo.c +M glabels2/src/font-sample.c +M glabels2/src/font-util.c +M glabels2/src/font-util.h +M glabels2/src/label-text.c +M glabels2/src/object-editor-text-page.c +M glabels2/src/prefs-dialog.c +M glabels2/src/ui-property-bar.c +M glabels2/src/wdgt-rotate-label.c + +commit fabfeed962240d2d0a128576218b690564470b50 +Author: Mario Blättermann +Date: 2009-09-08 + + Updated German doc translation, added screenshots + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@876 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/help/de/de.po +A glabels2/help/de/figures/main-window-empty.png +A glabels2/help/de/figures/merge-ex1-1.png +A glabels2/help/de/figures/merge-ex1-2.png +A glabels2/help/de/figures/merge-ex1-3.png +A glabels2/help/de/figures/merge-ex1-4.png +A glabels2/help/de/figures/merge-ex2-1.png +A glabels2/help/de/figures/merge-ex2-2.png +A glabels2/help/de/figures/merge-ex2-3.png +A glabels2/help/de/figures/merge-ex2-4.png +A glabels2/help/de/figures/object-editor-sidebar.png +A glabels2/help/de/figures/print-copies.png +A glabels2/help/de/figures/print-merge.png + +commit c5a7ae0d233eb95f7ef7424f38d99ffb6a8cc555 +Author: Jim Evins +Date: 2009-09-08 + + 2009-09-07 Jim Evins + + Created new glFontCombo widget family subsystem + minor + refinements to glColorCombo + widget family. + + * src/color-combo-button.c: + * src/color-combo-button.h: + Renamed ColorButton to ColorComboButton. + * src/color.h: + Added GL_COLOR_WHITE macro. + * src/color-combo.c: (gl_color_combo_init): + Minor cleanup. + * src/Makefile.am: + * src/font-combo.c: + * src/font-combo.h: + * src/font-combo-menu.c: + * src/font-combo-menu.h: + * src/font-combo-menu-item.c: + * src/font-combo-menu-item.h: + * src/font-sample.c: + * src/font-sample.h: + * src/font-util.c: + * src/font-util.h: + New FontCombo subsystem. + * src/util.c: + * src/util.h: + Moved font functions to font-util.[ch]. + * data/builder/object-editor.builder: + * data/builder/prefs-dialog.builder: + * data/builder/property-bar.builder: + * src/label-text.c: (set_font_family): + * src/object-editor-private.h: + * src/object-editor-text-page.c: + (gl_object_editor_prepare_text_page), + (gl_object_editor_set_font_family), + (gl_object_editor_get_font_family): + * src/prefs-dialog.c: (construct_object_page), + (update_object_page_from_prefs), (update_prefs_from_object_page): + * src/ui-property-bar.c: (gl_ui_property_bar_construct), + (reset_to_default_properties), (update_text_properties), + (update_fill_color), (update_line_color), + (font_family_changed_cb), + (text_color_changed_cb), (fill_color_changed_cb), + (line_color_changed_cb): + Incorporated new FontCombo subsystem. + * po/POTFILES.in: + Reconciled with above changes/additions. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@872 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/data/builder/object-editor.builder +M glabels2/data/builder/prefs-dialog.builder +M glabels2/data/builder/property-bar.builder +M glabels2/po/POTFILES.in +M glabels2/src/Makefile.am +D glabels2/src/color-button.h +R078 glabels2/src/color-button.c glabels2/src/color-combo-button.c +A glabels2/src/color-combo-button.h +M glabels2/src/color-combo.c +M glabels2/src/color.h +A glabels2/src/font-combo-menu-item.c +A glabels2/src/font-combo-menu-item.h +A glabels2/src/font-combo-menu.c +A glabels2/src/font-combo-menu.h +C059 glabels2/src/color-combo.c glabels2/src/font-combo.c +A glabels2/src/font-combo.h +A glabels2/src/font-sample.c +A glabels2/src/font-sample.h +A glabels2/src/font-util.c +A glabels2/src/font-util.h +M glabels2/src/label-text.c +M glabels2/src/object-editor-private.h +M glabels2/src/object-editor-text-page.c +M glabels2/src/prefs-dialog.c +M glabels2/src/ui-property-bar.c +M glabels2/src/util.c +M glabels2/src/util.h + +commit 40b43703976586165fbf035c0419b5c6e687efc2 +Author: Jim Evins +Date: 2009-09-06 + + 2009-09-06 Jim Evins + + * src/color-button.c: (gl_color_button_finalize): + Unreference menu in finalize. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@871 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/color-button.c + +commit 036015bb9ed3b53bf85f25ed3b17a4886bdeedbc +Author: Jim Evins +Date: 2009-09-06 + + Added link to glabels-commit mail list. + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@870 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M web/contact/index.php + +commit 2e3f514405a35f35f7e29c839e2360ab924894a7 +Author: Jim Evins +Date: 2009-09-06 + + 2009-09-06 Jim Evins + + Some major refinements to the glColorCombo family of widgets. + + * src/Makefile.am: + * src/color-button.c: + * src/color-button.h: + New widget: glColorButton. This widget is a button + that applies + the currently selected color with a ColorCombo type + dropdown button + to change that selected color. This is basically the old + glColorCombo widget. + * src/color-combo.c: (gl_color_combo_init), + (gl_color_combo_finalize), (gl_color_combo_new), + (button_press_event_cb), (menu_color_changed_cb), + (menu_selection_done_cb): + * src/color-combo.h: + The glColorCombo widget has been modified to be a + single button + that is only used to change the selected color. + * src/color-swatch.c: (gl_color_swatch_init), (expose_event_cb): + Draw on parent containers window to allow an effective + transparency. + * src/object-editor-bc-page.c: (gl_object_editor_prepare_bc_page): + * src/object-editor-fill-page.c: + (gl_object_editor_prepare_fill_page): + * src/object-editor-line-page.c: + (gl_object_editor_prepare_line_page): + * src/object-editor-shadow-page.c: + (gl_object_editor_prepare_shadow_page): + * src/object-editor-text-page.c: + (gl_object_editor_prepare_text_page): + * src/prefs-dialog.c: (construct_object_page): + Change how ColorCombos are packed so that they don't + expand to fill hbox. + * src/ui-property-bar.c: (gl_ui_property_bar_construct), + (reset_to_default_properties), (update_text_properties), + (update_fill_color), (update_line_color), (text_color_changed_cb), + (fill_color_changed_cb), (line_color_changed_cb), + (set_doc_items_sensitive), (set_text_items_sensitive), + (set_fill_items_sensitive), (set_line_color_items_sensitive): + The property bar now uses the new glColorButton instead of + glColorCombo. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@869 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/Makefile.am +C068 glabels2/src/color-combo.c glabels2/src/color-button.c +C053 glabels2/src/color-combo.h glabels2/src/color-button.h +M glabels2/src/color-combo.c +M glabels2/src/color-combo.h +M glabels2/src/color-swatch.c +M glabels2/src/object-editor-bc-page.c +M glabels2/src/object-editor-fill-page.c +M glabels2/src/object-editor-line-page.c +M glabels2/src/object-editor-shadow-page.c +M glabels2/src/object-editor-text-page.c +M glabels2/src/prefs-dialog.c +M glabels2/src/ui-property-bar.c + +commit 1029782c2edff08531e703a61527eaa8a09f9633 +Author: Jim Evins +Date: 2009-09-03 + + 2009-09-02 Jim Evins + + * src/Makefile.am: + * src/wdgt-mini-preview.c: + * src/wdgt-mini-preview.h: + * src/mini-preview.h: + * src/mini-preview.c: + - Renamed WdgtMiniPreview to MiniPreview. + - Style cleanup. + - Modified to draw to parent window to be effectively + transparent. + - Updated license notification to gpl3+. + * src/template-designer.c: (construct_layout_page), + (layout_page_prepare_cb), (layout_page_changed_cb): + * src/wdgt-print-copies.c: (gl_wdgt_print_copies_construct), + (sheets_radio_cb), (first_spin_cb), (last_spin_cb), + (preview_pressed): + * src/wdgt-print-merge.c: (gl_wdgt_print_merge_construct), + (spin_cb), (preview_clicked), (gl_wdgt_print_merge_set_copies): + - Reconciled with rename above. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@868 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/Makefile.am +R058 glabels2/src/wdgt-mini-preview.c +glabels2/src/mini-preview.c +A glabels2/src/mini-preview.h +M glabels2/src/template-designer.c +D glabels2/src/wdgt-mini-preview.h +M glabels2/src/wdgt-print-copies.c +M glabels2/src/wdgt-print-merge.c + +commit d780283920166f23fb7fdbe1d7f0385b692f0d4c +Author: Jim Evins +Date: 2009-09-02 + + 2009-09-01 Jim Evins + + * data/builder/object-editor.builder: + Fixed errant expansion of tab. + * src/bc-gnubarcode.c: (gl_barcode_gnubarcode_new): + * src/bc-postnet.c: (gl_barcode_postnet_new): + * src/bc.c: (id_to_index), (name_to_index): + * src/label-barcode.c: (gl_label_barcode_set_props): + * src/label-text.c: (set_font_family): + * src/merge-properties-dialog.c: + (gl_merge_properties_dialog_construct): + * src/merge.c: (gl_merge_description_to_name): + * src/new-label-dialog.c: + * src/object-editor-edit-page.c: + * src/object-editor-image-page.c: (update_preview_cb): + * src/object-editor-lsize-page.c: + * src/object-editor-position-page.c: + * src/object-editor-size-page.c: + * src/object-editor.c: (gl_object_editor_new): + * src/prefs-dialog.c: (update_locale_page_from_prefs): + * src/prefs-model.c: (string_to_units): + * src/print-op.c: (create_custom_widget_cb): + * src/template-designer.c: (gl_template_designer_init), + (pg_size_page_changed_cb), (build_template): + * src/ui-commands.c: (gl_ui_cmd_help_about): + * src/xml-label.c: (xml_parse_pixdata): + Fixed various deprecations as of Gtk-2.16. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@867 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/data/builder/object-editor.builder +M glabels2/src/bc-gnubarcode.c +M glabels2/src/bc-postnet.c +M glabels2/src/bc.c +M glabels2/src/label-barcode.c +M glabels2/src/label-text.c +M glabels2/src/merge-properties-dialog.c +M glabels2/src/merge.c +M glabels2/src/new-label-dialog.c +M glabels2/src/object-editor-edit-page.c +M glabels2/src/object-editor-image-page.c +M glabels2/src/object-editor-lsize-page.c +M glabels2/src/object-editor-position-page.c +M glabels2/src/object-editor-size-page.c +M glabels2/src/object-editor.c +M glabels2/src/prefs-dialog.c +M glabels2/src/prefs-model.c +M glabels2/src/print-op.c +M glabels2/src/template-designer.c +M glabels2/src/ui-commands.c +M glabels2/src/xml-label.c + +commit 7bc8e820df3c2380479df0f93601466d981e2295 +Author: Jim Evins +Date: 2009-09-02 + + Adding missing Changelog and removed files that should not have been + checked in. + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@866 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +A glabels2/qrencode-3.1.0/ChangeLog +D glabels2/qrencode-3.1.0/Makefile +D glabels2/qrencode-3.1.0/Makefile.in + +commit 6f54e1fc51bfe8c0cbe60ab7c321320eda020323 +Author: Jim Evins +Date: 2009-09-01 + + 2009-08-31 Jim Evins + + * po/fr.po: + Updated french translation (Claude Paroz) + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@865 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/po/fr.po + +commit d701d4f532af82224b880a18ab89cb8d6c1f65fa +Author: Jim Evins +Date: 2009-09-01 + + 2009-08-31 Jim Evins + + * data/builder/property-bar.builder: + Make sure event box does not obscure tool bar background. + * src/Makefile.am: + * src/color-swatch.c: + * src/color-swatch.h: + New color swatch widget. + * src/color-combo-color-menu-item.c: + (gl_color_combo_color_menu_item_init), + (gl_color_combo_color_menu_item_new), + (gl_color_combo_color_menu_item_set_color): + * src/color-combo.c: (gl_color_combo_init), + (gl_color_combo_finalize), (gl_color_combo_new), + (gl_color_combo_set_color), (menu_color_changed_cb): + Updated to use new color swatch widget. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@863 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/data/builder/property-bar.builder +M glabels2/src/Makefile.am +M glabels2/src/color-combo-color-menu-item.c +M glabels2/src/color-combo.c +A glabels2/src/color-swatch.c +A glabels2/src/color-swatch.h + +commit 216c039e5797b6c3bada83668ec7227728a070f3 +Author: Jim Evins +Date: 2009-08-27 + + 2009-08-26 Jim Evins + + * po/POTFILES.in: + Explicitely mark file types. Removed unneeded file from + libbarcode. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@862 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/po/POTFILES.in + +commit cbfdf9f8ce58c238a8eb5535c617599ad5570d1f +Author: Jim Evins +Date: 2009-08-23 + + 2009-08-23 Jim Evins + + * data/builder/Makefile.am: + * data/builder/merge-properties-dialog.builder: + * data/builder/merge-properties-dialog.glade: + * data/builder/new-label-dialog.builder: + * data/builder/new-label-dialog.glade: + * data/builder/object-editor.builder: + * data/builder/object-editor.glade: + * data/builder/prefs-dialog.builder: + * data/builder/prefs-dialog.glade: + * data/builder/print-custom-widget.builder: + * data/builder/print-custom-widget.glade: + * data/builder/property-bar.builder: + * data/builder/property-bar.glade: + * data/builder/template-designer.builder: + * data/builder/template-designer.glade: + * data/builder/wdgt-media-select.builder: + * data/builder/wdgt-media-select.glade: + * po/POTFILES.in: + * src/merge-properties-dialog.c: + (gl_merge_properties_dialog_finalize), + (gl_merge_properties_dialog_construct): + * src/new-label-dialog.c: (gl_new_label_dialog_finalize), + (gl_new_label_dialog_construct): + * src/object-editor-bc-page.c: (gl_object_editor_prepare_bc_page): + * src/object-editor-data-page.c: + (gl_object_editor_prepare_data_page): + * src/object-editor-edit-page.c: + (gl_object_editor_prepare_edit_page): + * src/object-editor-fill-page.c: + (gl_object_editor_prepare_fill_page): + * src/object-editor-image-page.c: + (gl_object_editor_prepare_image_page): + * src/object-editor-line-page.c: + (gl_object_editor_prepare_line_page): + * src/object-editor-lsize-page.c: + (gl_object_editor_prepare_lsize_page): + * src/object-editor-position-page.c: + (gl_object_editor_prepare_position_page): + * src/object-editor-private.h: + * src/object-editor-shadow-page.c: + (gl_object_editor_prepare_shadow_page): + * src/object-editor-size-page.c: + (gl_object_editor_prepare_size_page): + * src/object-editor-text-page.c: + (gl_object_editor_prepare_text_page): + * src/object-editor.c: (gl_object_editor_init), + (gl_object_editor_finalize): + * src/prefs-dialog.c: (gl_prefs_dialog_init), + (gl_prefs_dialog_finalize), (gl_prefs_dialog_construct), + (construct_locale_page), (construct_object_page): + * src/print-op.c: (gl_print_op_finalize), + (gl_print_op_set_settings), (create_custom_widget_cb): + * src/template-designer.c: (gl_template_designer_init), + (gl_template_designer_finalize), (construct_start_page), + (construct_name_page), (construct_pg_size_page), + (construct_shape_page), (construct_rect_size_page), + (construct_round_size_page), (construct_cd_size_page), + (construct_nlayouts_page), (construct_layout_page), + (construct_finish_page): + * src/ui-property-bar.c: (gl_ui_property_bar_finalize), + (gl_ui_property_bar_construct): + * src/wdgt-media-select.c: (gl_wdgt_media_select_finalize), + (gl_wdgt_media_select_construct): + Builder files no longer built from glade files. + Also did some + cleanup on formatting and update license notifications + to GPL3+. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@861 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/data/builder/Makefile.am +A glabels2/data/builder/merge-properties-dialog.builder +D glabels2/data/builder/merge-properties-dialog.glade +A glabels2/data/builder/new-label-dialog.builder +D glabels2/data/builder/new-label-dialog.glade +A glabels2/data/builder/object-editor.builder +D glabels2/data/builder/object-editor.glade +A glabels2/data/builder/prefs-dialog.builder +D glabels2/data/builder/prefs-dialog.glade +A glabels2/data/builder/print-custom-widget.builder +D glabels2/data/builder/print-custom-widget.glade +A glabels2/data/builder/property-bar.builder +D glabels2/data/builder/property-bar.glade +A glabels2/data/builder/template-designer.builder +D glabels2/data/builder/template-designer.glade +A glabels2/data/builder/wdgt-media-select.builder +D glabels2/data/builder/wdgt-media-select.glade +M glabels2/po/POTFILES.in +M glabels2/src/merge-properties-dialog.c +M glabels2/src/new-label-dialog.c +M glabels2/src/object-editor-bc-page.c +M glabels2/src/object-editor-data-page.c +M glabels2/src/object-editor-edit-page.c +M glabels2/src/object-editor-fill-page.c +M glabels2/src/object-editor-image-page.c +M glabels2/src/object-editor-line-page.c +M glabels2/src/object-editor-lsize-page.c +M glabels2/src/object-editor-position-page.c +M glabels2/src/object-editor-private.h +M glabels2/src/object-editor-shadow-page.c +M glabels2/src/object-editor-size-page.c +M glabels2/src/object-editor-text-page.c +M glabels2/src/object-editor.c +M glabels2/src/prefs-dialog.c +M glabels2/src/print-op.c +M glabels2/src/template-designer.c +M glabels2/src/ui-property-bar.c +M glabels2/src/wdgt-media-select.c + +commit 6f1394ef48f3a3fd4efb06247cced9db2fdb6d54 +Author: Jim Evins +Date: 2009-08-14 + + 2009-08-13 Jim Evins + + * src/color-combo-color-menu-item.c: + (gl_color_combo_color_menu_item_init), + (gl_color_combo_color_menu_item_new), + (gl_color_combo_color_menu_item_set_color): + Explicitly request size of menu item and enlarge color + swatch. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@860 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/color-combo-color-menu-item.c + +commit 29355781ab15fccd774aba068d4965f07d75f8ca +Author: Jim Evins +Date: 2009-08-14 + + Fixed typo in header. + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@859 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M web/common_php.inc + +commit 6f7963a0bf6a6e0c6dac3d94475cd56c71b220bf +Author: Jim Evins +Date: 2009-08-12 + + 2009-08-12 Jim Evins + + * src/label-text.c: (buffer_changed_cb), (draw_object), + (draw_shadow), (draw_text_real): + * src/label-text.h: + Moved common code from draw_object() and draw_shadow() to + draw_text_real(). Also cleaned up formatting and updated + license notification to GPL3+. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@858 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/label-text.c +M glabels2/src/label-text.h + +commit ef5fdef2965be8977c6814148d1fe6241be8b446 +Author: Alexandre Prokoudine +Date: 2009-07-29 + + Updated and fixed Russian translation + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@857 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/po/ru.po + +commit 2d2bbdf3aadf183a122a7e26f39a2e10814edaa9 +Author: Jim Evins +Date: 2009-07-27 + + 2009-07-26 Jim Evins + + * AUTHORS: + * COPYING.README_FIRST: + * Makefile.am: + * configure.in: + * qrencode-3.1.0/* + Added 3rd party qrencode library. + * src/Makefile.am: + * src/bc-iec18004.c: (gl_barcode_iec18004_new), (render_iec18004): + * src/bc-iec18004.h: + * src/bc.c: + Added IEC18004 (QRCode) 2 dimensional barcode backend. + Patch provided by Daniel Mueller . + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@856 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/AUTHORS +M glabels2/COPYING.README_FIRST +M glabels2/ChangeLog +M glabels2/Makefile.am +M glabels2/configure.in +M glabels2/gtk-doc.make +A glabels2/qrencode-3.1.0/COPYING +A glabels2/qrencode-3.1.0/Doxyfile +A glabels2/qrencode-3.1.0/Makefile +A glabels2/qrencode-3.1.0/Makefile.am +A glabels2/qrencode-3.1.0/Makefile.am.dist +A glabels2/qrencode-3.1.0/Makefile.in +A glabels2/qrencode-3.1.0/Makefile.in.dist +A glabels2/qrencode-3.1.0/NEWS +A glabels2/qrencode-3.1.0/README +A glabels2/qrencode-3.1.0/README.glabels +A glabels2/qrencode-3.1.0/TODO +A glabels2/qrencode-3.1.0/acinclude.m4 +A glabels2/qrencode-3.1.0/aclocal.m4 +A glabels2/qrencode-3.1.0/autogen.sh +A glabels2/qrencode-3.1.0/bitstream.c +A glabels2/qrencode-3.1.0/bitstream.h +A glabels2/qrencode-3.1.0/config.h.in +A glabels2/qrencode-3.1.0/configure +A glabels2/qrencode-3.1.0/configure.ac.dist +A glabels2/qrencode-3.1.0/libqrencode.pc.in +A glabels2/qrencode-3.1.0/mask.c +A glabels2/qrencode-3.1.0/mask.h +A glabels2/qrencode-3.1.0/qrenc.c +A glabels2/qrencode-3.1.0/qrencode.1.in +A glabels2/qrencode-3.1.0/qrencode.c +A glabels2/qrencode-3.1.0/qrencode.h +A glabels2/qrencode-3.1.0/qrencode.spec +A glabels2/qrencode-3.1.0/qrencode.spec.in +A glabels2/qrencode-3.1.0/qrencode_inner.h +A glabels2/qrencode-3.1.0/qrinput.c +A glabels2/qrencode-3.1.0/qrinput.h +A glabels2/qrencode-3.1.0/qrspec.c +A glabels2/qrencode-3.1.0/qrspec.h +A glabels2/qrencode-3.1.0/rscode.c +A glabels2/qrencode-3.1.0/rscode.h +A glabels2/qrencode-3.1.0/split.c +A glabels2/qrencode-3.1.0/split.h +A glabels2/qrencode-3.1.0/tests/Makefile.am +A glabels2/qrencode-3.1.0/tests/Makefile.in +A glabels2/qrencode-3.1.0/tests/common.h +A glabels2/qrencode-3.1.0/tests/create_frame_pattern.c +A glabels2/qrencode-3.1.0/tests/frame +A glabels2/qrencode-3.1.0/tests/prof_qrencode.c +A glabels2/qrencode-3.1.0/tests/test_all.sh +A glabels2/qrencode-3.1.0/tests/test_bitstream.c +A glabels2/qrencode-3.1.0/tests/test_estimatebit.c +A glabels2/qrencode-3.1.0/tests/test_monkey.c +A glabels2/qrencode-3.1.0/tests/test_qrencode.c +A glabels2/qrencode-3.1.0/tests/test_qrinput.c +A glabels2/qrencode-3.1.0/tests/test_qrspec.c +A glabels2/qrencode-3.1.0/tests/test_rs.c +A glabels2/qrencode-3.1.0/tests/test_split.c +A glabels2/qrencode-3.1.0/tests/view_qrcode.c +A glabels2/qrencode-3.1.0/use/compile +A glabels2/qrencode-3.1.0/use/config.guess +A glabels2/qrencode-3.1.0/use/config.sub +A glabels2/qrencode-3.1.0/use/depcomp +A glabels2/qrencode-3.1.0/use/install-sh +A glabels2/qrencode-3.1.0/use/ltmain.sh +A glabels2/qrencode-3.1.0/use/missing +M glabels2/src/Makefile.am +A glabels2/src/bc-iec18004.c +A glabels2/src/bc-iec18004.h +M glabels2/src/bc.c + +commit eedb5bf0e10f9fa4feb1137381f2aa2e5cf33f28 +Author: Jim Evins +Date: 2009-07-26 + + 2009-07-25 Jim Evins + + * src/xml-label.c: (gl_xml_label_open): + Relax limits when parsing file. Allows large embedded + image + files. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@855 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/xml-label.c + +commit 568ea135699a47a3286106356fb9928ad10adc5f +Author: Jim Evins +Date: 2009-07-20 + + Added compiling-from-source directions. + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@854 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M web/doc/index.php +A web/doc/install-src/index.php +M web/download/index.php +M web/index.php +M web/links/index.php +M web/news/index.php + +commit 0e0af532e4b99123832cefa84e54d395c949f336 +Author: Jim Evins +Date: 2009-05-20 + + 2009-05-19 Jim Evins + + * configure.in: + * po/LINGUAS: + Moved translation list from configure.in to po/LINGUAS. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@852 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/configure.in +A glabels2/po/LINGUAS + +commit de5160282bb632146ffe6810f845dcea4cb22e2f +Author: Jim Evins +Date: 2009-05-20 + + 2009-05-19 Jim Evins + + * configure.in: + * po/zh_CN.po: + New Chinese translation (Careon + ). + * AUTHORS: + Added above translation to acknowledgements. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@851 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/AUTHORS +M glabels2/ChangeLog +M glabels2/configure.in +A glabels2/po/zh_CN.po + +commit fac890372fff6be2410f3d0bac332fac8aba3c76 +Author: Jim Evins +Date: 2009-05-18 + + 2009-05-18 Jim Evins + + * src/prefs-model.c: (gl_prefs_model_load_settings): + Make an educated guess at locale settings when run for the + first time. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@849 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/prefs-model.c + +commit 6fb8d93a2091a644e15ce3b2a8760a037aa1f224 +Author: Jim Evins +Date: 2009-05-18 + + 2009-05-17 Jim Evins + + * help/de/de.po: + * help/glabels.omf.in: + Adding missing files from last checkin. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@846 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +D glabels2/help/C/glabels-C.omf +A glabels2/help/de/de.po +A glabels2/help/glabels.omf.in + +commit 37a920e876ef4e7c019554be12caec3ff17bd030 +Author: Jim Evins +Date: 2009-05-18 + + 2009-05-17 Jim Evins + + * Makefile.am: + * configure.in: + * help/C/glabels-C.omf: + * help/C/glabels.xml: + * help/Makefile.am: + * po/de.po: + Updated german translation, gnome-doc-utils support and + german translation of glabels manual (Mario Blättermann). + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@845 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/Makefile.am +M glabels2/configure.in +M glabels2/help/C/glabels-C.omf +M glabels2/help/C/glabels.xml +M glabels2/help/Makefile.am +M glabels2/po/de.po + +commit dd9de9b237713197a38a600b167e2463f8391a25 +Author: Jim Evins +Date: 2009-05-02 + + 2009-05-01 Jim Evins + + * AUTHORS: + * configure.in: + * po/ca.po: + Added catalan translation (David Planella). + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@843 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/AUTHORS +M glabels2/ChangeLog +M glabels2/configure.in +A glabels2/po/ca.po + +commit 53eaba2de44181026372fd2e512021ff4ab01ac6 +Author: Jim Evins +Date: 2009-04-30 + + 2009-04-29 Jim Evins + + * data/templates/avery-iso-templates.xml: + * data/templates/misc-iso-templates.xml: + * data/templates/misc-us-templates.xml: + Caught up on user submitted templates. + * AUTHORS: + Acknowledgements for above templates. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@838 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/AUTHORS +M glabels2/ChangeLog +M glabels2/data/templates/avery-iso-templates.xml +M glabels2/data/templates/misc-iso-templates.xml +M glabels2/data/templates/misc-us-templates.xml + +commit 88df0a84494022b59684c6fc997fcc001905cffc +Author: Jim Evins +Date: 2009-04-30 + + 2009-04-29 Jim Evins + + * po/POTFILES.in: + * po/de.po: + Updated german translation (Mario Blättermann). + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@835 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +D glabels2/po/ChangeLog +M glabels2/po/POTFILES.in +M glabels2/po/de.po + +commit 3d49690351c8f4fa5a46e15208a71e26de9e045e +Author: Jim Evins +Date: 2009-04-20 + + Updated links. + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@832 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M web/links/index.php + +commit 80018e80624e22e2d44239f4fd07401acfbb19ad +Author: Jim Evins +Date: 2009-04-12 + + Website updates. + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@831 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M web/download/index.php +M web/links/index.php + +commit 27432959aa92808be3edff2a3317cad6341f57ec +Author: Jim Evins +Date: 2009-03-25 + + Added links to getdeb packages. + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@830 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M web/download/index.php +M web/links/index.php + +commit a861bd74a69cf6163be77d42e0d888f55e2aba4b +Author: Jim Evins +Date: 2009-03-23 + + 2009-03-23 Jim Evins + + * src/glabels-batch.c: (main): + * src/glabels.c: (main): + Tidy up help option output. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@829 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/glabels-batch.c +M glabels2/src/glabels.c + +commit 4aad2f4999b238fe83a47ea51e1f2b0b24ac7fb8 +Author: Jim Evins +Date: 2009-02-28 + + 2009-02-28 Jim Evins + + reviewed by: + + * src/Makefile.am: + * src/base64.c: + * src/base64.h: + Deleted base64 module. + * src/xml-label.c: (xml_parse_pixdata), (xml_create_pixdata): + Use glib for base64 support. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@828 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/Makefile.am +D glabels2/src/base64.c +D glabels2/src/base64.h +M glabels2/src/xml-label.c + +commit 7c94e09d4f2968f4699ed6b91f5dbfd18d43ff1a +Author: Jim Evins +Date: 2009-02-23 + + 2009-02-22 Jim Evins + + * src/merge-properties-dialog.h: + * src/new-label-dialog.h: + * src/object-editor.h: + * src/prefs-dialog.h: + * src/print-op.h: + * src/template-designer.h: + Corrected cut&paste errors. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@827 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/merge-properties-dialog.h +M glabels2/src/new-label-dialog.h +M glabels2/src/object-editor.h +M glabels2/src/prefs-dialog.h +M glabels2/src/print-op.h +M glabels2/src/template-designer.h + +commit 4e719ff243581797720031f50cfa33c835552931 +Author: Jim Evins +Date: 2009-02-22 + + 2009-02-21 JimEvins + + * src/prefs-model.c: (gl_prefs_model_save_settings), + (gl_prefs_model_load_settings): + * src/prefs-model.h: + * src/ui-commands.c: + * src/ui-property-bar.c: + * src/ui.c: (view_ui_item_toggled_cb), + (set_app_main_toolbar_style), (set_app_drawing_toolbar_style): + Removed tooltip toggling capability, which wasn't working + anyway. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@826 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/prefs-model.c +M glabels2/src/prefs-model.h +M glabels2/src/ui-commands.c +M glabels2/src/ui-property-bar.c +M glabels2/src/ui.c + +commit e66208f5c1f1573ab4aa75e0fb734d01ab2688bf +Author: Jim Evins +Date: 2009-02-21 + + 2009-02-21 JimEvins + + * README: + * configure.in: + * data/builder/object-editor.glade: + * data/builder/prefs-dialog.glade: + * data/builder/property-bar.glade: + * data/builder/template-designer.glade: + * gtk-doc.make: + * src/color-combo-color-menu-item.c: + * src/color-combo-color-menu-item.h: + * src/color-combo-menu.h: + * src/glabels-batch.c: (main): + * src/glabels.c: (main): + * src/merge-properties-dialog.h: + * src/new-label-dialog.h: + * src/object-editor-lsize-page.c: + (gl_object_editor_prepare_lsize_page), (lsize_prefs_changed_cb): + * src/object-editor.h: + * src/prefs-dialog.h: + * src/print-op.h: + * src/template-designer.h: + * src/ui-commands.c: (gl_ui_cmd_view_property_bar_tips_toggle), + (gl_ui_cmd_help_contents), (gl_ui_cmd_help_about): + * src/ui-property-bar.c: + * src/ui-property-bar.h: + * src/ui-sidebar.c: (gl_ui_sidebar_construct), + (selection_changed_cb): + * src/ui-sidebar.h: + * src/view.h: + * src/wdgt-media-select.h: + * src/wdgt-merge-menu.h: + * src/wdgt-mini-preview.c: (gl_wdgt_mini_preview_class_init): + * src/wdgt-mini-preview.h: + * src/wdgt-print-copies.c: (gl_wdgt_print_copies_construct): + * src/wdgt-print-copies.h: + * src/wdgt-print-merge.c: (gl_wdgt_print_merge_construct): + * src/wdgt-print-merge.h: + * src/wdgt-rotate-label.h: + * src/window.h: + Removed final dependencies on libgnome and libgnomeui. + Removed all currently deprecated symbols as of GTK 2.14. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@825 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/README +M glabels2/configure.in +M glabels2/data/builder/object-editor.glade +M glabels2/data/builder/prefs-dialog.glade +M glabels2/data/builder/property-bar.glade +M glabels2/data/builder/template-designer.glade +M glabels2/gtk-doc.make +M glabels2/src/color-combo-color-menu-item.c +M glabels2/src/color-combo-color-menu-item.h +M glabels2/src/color-combo-menu.h +M glabels2/src/glabels-batch.c +M glabels2/src/glabels.c +M glabels2/src/merge-properties-dialog.h +M glabels2/src/new-label-dialog.h +M glabels2/src/object-editor-lsize-page.c +M glabels2/src/object-editor.h +M glabels2/src/prefs-dialog.h +M glabels2/src/print-op.h +M glabels2/src/template-designer.h +M glabels2/src/ui-commands.c +M glabels2/src/ui-property-bar.c +M glabels2/src/ui-property-bar.h +M glabels2/src/ui-sidebar.c +M glabels2/src/ui-sidebar.h +M glabels2/src/view.h +M glabels2/src/wdgt-media-select.h +M glabels2/src/wdgt-merge-menu.h +M glabels2/src/wdgt-mini-preview.c +M glabels2/src/wdgt-mini-preview.h +M glabels2/src/wdgt-print-copies.c +M glabels2/src/wdgt-print-copies.h +M glabels2/src/wdgt-print-merge.c +M glabels2/src/wdgt-print-merge.h +M glabels2/src/wdgt-rotate-label.h +M glabels2/src/window.h + +commit 3d4a88e43b50dc93d7a5159c7655204c98ecdd6e +Author: Jim Evins +Date: 2009-02-11 + + Make sure all pages still validate. + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@824 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M web/common_php.inc +M web/contact/index.php +M web/download/index.php +M web/faq/index.php +M web/index.php +M web/news/index.php + +commit 785f385b0a34cb02732bbd48d483988c75a0c651 +Author: Jim Evins +Date: 2009-01-08 + + 2009-01-07 Jim Evins + + * src/critical-error-handler.c: (critical_error_handler): + * src/ui-commands.c: (gl_ui_cmd_help_contents): + * src/warning-handler.c: (warning_handler): + * src/view.c: (selection_received_cb): + Compile without warning with additional CFLAGS of + -O1 -Wall -Wformat=2. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@823 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/critical-error-handler.c +M glabels2/src/ui-commands.c +M glabels2/src/view.c +M glabels2/src/warning-handler.c + +commit dc8b4a0f9fe720d384aaaf4811a8a990c3a7bbda +Author: Jim Evins +Date: 2009-01-03 + + 2009-01-02 Jim Evins + + * COPYING.README_FIRST: + Fixed typo. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@821 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/COPYING.README_FIRST +M glabels2/ChangeLog + +commit fc11548527b8363cf1595da581fd46a6574f4116 +Author: Jim Evins +Date: 2008-12-28 + + 2008-12-27 Jim Evins + + * data/templates/avery-iso-templates.xml: + * data/templates/avery-other-templates.xml: + * data/templates/avery-us-templates.xml: + * data/templates/brother-other-templates.xml: + * data/templates/misc-iso-templates.xml: + * data/templates/misc-other-templates.xml: + * data/templates/zweckform-iso-templates.xml: + Make sure all descriptions are marked as translatable. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@819 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/data/templates/avery-iso-templates.xml +M glabels2/data/templates/avery-other-templates.xml +M glabels2/data/templates/avery-us-templates.xml +M glabels2/data/templates/brother-other-templates.xml +M glabels2/data/templates/misc-iso-templates.xml +M glabels2/data/templates/misc-other-templates.xml +M glabels2/data/templates/zweckform-iso-templates.xml + +commit 4d4d318a5e7b1a78263d289bae0c41fda99d74b2 +Author: Jim Evins +Date: 2008-12-28 + + 2008-12-27 Jim Evins + + * de.po: + Updated german translation (Mario Blättermann) + * AUTHORS: + Updated credits to reflect above translation. + * data/builder/object-editor.glade: + * data/builder/prefs-dialog.glade: + * data/builder/template-designer.glade: + Removed "translatable" attribute from whitespace strings, + which are used only to help layout. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@817 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/AUTHORS +M glabels2/ChangeLog +M glabels2/data/builder/object-editor.glade +M glabels2/data/builder/prefs-dialog.glade +M glabels2/data/builder/template-designer.glade +M glabels2/po/de.po + +commit 324bdb14055546411bd9909753677fa91b22a4c4 +Author: Jim Evins +Date: 2008-12-22 + + Release 2.2.4 + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@815 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M web/download/index.php +M web/index.php +M web/news/index.php + +commit c5c822b536c68e3820e2d435634f1c4407ede1e9 +Author: Jim Evins +Date: 2008-12-22 + + 2008-12-21 Jim Evins + + * data/templates/avery-us-templates.xml: + * data/templates/misc-iso-templates.xml: + A couple of recent template submissions. + * AUTHORS: + Acknowledgements for above templates. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@811 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/AUTHORS +M glabels2/ChangeLog +M glabels2/data/templates/avery-us-templates.xml +M glabels2/data/templates/misc-iso-templates.xml + +commit 7f533d981565aecf7c4ec7f47743b5197e4ea2af +Author: Jim Evins +Date: 2008-12-21 + + 2008-12-21 Jim Evins + + * src/view.c: (motion_notify_event_cb), (button_press_event_cb): + Don't check for handles on aggregate selections. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@809 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/view.c + +commit 1da3c68162b4aa96021c1d51d6dece3a630a968a +Author: Jim Evins +Date: 2008-12-21 + + Updated development version requirements. + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@807 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M web/download/index.php + +commit 43adc6cb0e93d294807ff2a6b0e180807983d7da +Author: Jim Evins +Date: 2008-12-20 + + 2008-12-20 Jim Evins + + * configure.in: + Updated prerequisite library versions required. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@806 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/configure.in + +commit 60afedc9a3de0a1de48b79664299f71384ca2a25 +Author: Jim Evins +Date: 2008-12-19 + + Updated FAQ. + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@805 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M web/faq/index.php + +commit 5f5fc0b681e7db77307f05ee7fcc7e2236f12467 +Author: Jim Evins +Date: 2008-12-19 + + 2008-12-18 Jim Evins + + * src/view.c: (selection_received_cb): + Fixed paste bug that caused a duplicate phantom + view_object to be created for + each new label_object. This is because the view now + (as of r673) the view + monitiors the label for new objects and creates + view_objects automatically. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@804 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/view.c + +commit 31bd44a96ae5c7f2687d2c37f037a386a087ad17 +Author: Jim Evins +Date: 2008-12-15 + + 2008-12-14 Jim Evins + + * src/ui.c: (gl_ui_new): + Bug #2395628. Fixed i18n for application shell. + * po/POTFILES.in: + Bug #2395628. Reconciled POTFILES.in with current files. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@801 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/po/POTFILES.in +M glabels2/src/ui.c + +commit 65526d446c2fcef33bd5f786601e312e566b6de9 +Author: Jim Evins +Date: 2008-12-15 + + 2008-12-14 Jim Evins + + * configure.in: + Bug #2316013. Added PKG_PROG_PKG_CONFIG. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@799 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/configure.in + +commit ae5381bcfb4cfef51379bdd7df40fd461aa0f0d5 +Author: Jim Evins +Date: 2008-12-01 + + Added link to another linux.com artical. + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@797 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M web/links/index.php + +commit f76b27f1dae279463613e58ea6082f6a6711d2e5 +Author: Jim Evins +Date: 2008-11-16 + + 2008-11-15 Jim Evins + + * libglabels/db.c: (lgl_db_register_template): + * libglabels/xml-template.c: + (lgl_xml_template_parse_template_node): + * src/glabels-batch.c: + * src/view-text.c: (gl_view_text_create_button_press_event): + Fixed several issues such as possible use of uninitialized + variables found with "-O1 -Wall". + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@796 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/libglabels/db.c +M glabels2/libglabels/xml-template.c +M glabels2/src/glabels-batch.c +M glabels2/src/view-text.c + +commit b8f1816d53df85e2234b374bf64bbd84249fe667 +Author: Jim Evins +Date: 2008-11-10 + + 2008-11-09 Jim Evins + + * data/templates/misc-iso-templates.xml: + Another user submitted template. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@794 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/data/templates/misc-iso-templates.xml + +commit 20ce4c33fcd64fecba7e403f127ba0c42743c397 +Author: Jim Evins +Date: 2008-10-31 + + Added link to nice blog. + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@792 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M web/links/index.php + +commit 263be22ce938c604d9de9a20650bcef888f720fd +Author: Jim Evins +Date: 2008-10-31 + + Website changes from last release. + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@791 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M web/download/index.php +M web/index.php +M web/news/index.php + +commit 3a0de14d527a044a6ab3f67436df74e4fb5b5c7c +Author: Jim Evins +Date: 2008-10-28 + + 2008-10-27 Jim Evins + + * data/templates/avery-us-templates.xml: + * data/templates/misc-iso-templates.xml: + * data/templates/zweckform-iso-templates.xml: + Caught up on user submitted templates. + * AUTHORS: + Acknowledgements for above templates. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@790 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/AUTHORS +M glabels2/ChangeLog +M glabels2/data/templates/avery-us-templates.xml +M glabels2/data/templates/misc-iso-templates.xml +M glabels2/data/templates/zweckform-iso-templates.xml + +commit c9e2de5f7326b9bd172268da0584d6c6e31a7e03 +Author: Jim Evins +Date: 2008-10-24 + + 2008-10-23 Jim Evins + + * src/label-text.c: (set_font_family): + * src/object-editor-text-page.c: + (gl_object_editor_prepare_text_page), + (gl_object_editor_set_font_family): + * src/prefs-dialog.c: (construct_object_page), + (update_object_page_from_prefs): + * src/ui-property-bar.c: (gl_ui_property_bar_construct), + (reset_to_default_properties): + * src/util.c: (gl_util_get_font_family_list): + * src/util.h: + Bug #1902275 and Bug #2186214. Cache font list so that + it is not re-created + everytime the list is requested. + * src/object-editor-text-page.c: + (gl_object_editor_set_font_family): + Don't change font-family if it hasn't actually changed. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@788 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/label-text.c +M glabels2/src/object-editor-text-page.c +M glabels2/src/prefs-dialog.c +M glabels2/src/ui-property-bar.c +M glabels2/src/util.c +M glabels2/src/util.h + +commit dbd84afd35a3b583955817558d598183eadec95f +Author: Jim Evins +Date: 2008-10-20 + + 2008-10-19 Jim Evins + + * data/builder/object-editor.glade: + Some tweaking of builder/glade widgets. + + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@786 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/data/builder/object-editor.glade + +commit 0dc8ff1f3ef7c7659bc25f59d9a3e364d9214746 +Author: Jim Evins +Date: 2008-10-18 + + 2008-10-18 Jim Evins + + Migrated all use of libglade to GtkBuilder. + + * data/glade/Makefile.am: + * data/glade/merge-properties-dialog.glade: + * data/glade/new-label-dialog.glade: + * data/glade/object-editor.glade: + * data/glade/prefs-dialog.glade: + * data/glade/print-custom-widget.glade: + * data/glade/property-bar.glade: + * data/glade/template-designer.glade: + * data/glade/wdgt-media-select.glade: + Removed data/glade directory. + * data/builder/Makefile.am: + * data/builder/merge-properties-dialog.glade: + * data/builder/new-label-dialog.glade: + * data/builder/object-editor.glade: + * data/builder/prefs-dialog.glade: + * data/builder/print-custom-widget.glade: + * data/builder/property-bar.glade: + * data/builder/template-designer.glade: + * data/builder/wdgt-media-select.glade: + Added data/builder directory. + * configure.in: + * data/Makefile.am: + * src/Makefile.am: + Change glade to builder. + * src/merge-properties-dialog.c: + (gl_merge_properties_dialog_finalize), + (gl_merge_properties_dialog_construct): + * src/new-label-dialog.c: (gl_new_label_dialog_finalize), + (gl_new_label_dialog_construct): + * src/object-editor-bc-page.c: (gl_object_editor_prepare_bc_page): + * src/object-editor-data-page.c: + (gl_object_editor_prepare_data_page): + * src/object-editor-edit-page.c: + (gl_object_editor_prepare_edit_page): + * src/object-editor-fill-page.c: + (gl_object_editor_prepare_fill_page): + * src/object-editor-image-page.c: + (gl_object_editor_prepare_image_page): + * src/object-editor-line-page.c: + (gl_object_editor_prepare_line_page): + * src/object-editor-lsize-page.c: + (gl_object_editor_prepare_lsize_page): + * src/object-editor-position-page.c: + (gl_object_editor_prepare_position_page): + * src/object-editor-private.h: + * src/object-editor-shadow-page.c: + (gl_object_editor_prepare_shadow_page): + * src/object-editor-size-page.c: + (gl_object_editor_prepare_size_page): + * src/object-editor-text-page.c: + (gl_object_editor_prepare_text_page): + * src/object-editor.c: (gl_object_editor_init): + * src/prefs-dialog.c: (gl_prefs_dialog_init), + (gl_prefs_dialog_construct), (construct_locale_page), + (construct_object_page): + * src/print-op.c: (gl_print_op_finalize), + (create_custom_widget_cb): + * src/template-designer.c: (gl_template_designer_class_init), + (gl_template_designer_finalize), (gl_template_designer_construct), + (construct_start_page), (construct_name_page), + (construct_pg_size_page), (construct_shape_page), + (construct_rect_size_page), (construct_round_size_page), + (construct_cd_size_page), (construct_nlayouts_page), + (construct_layout_page), (construct_finish_page): + * src/template-designer.h: + * src/ui-property-bar.c: (gl_ui_property_bar_init), + (gl_ui_property_bar_finalize), (gl_ui_property_bar_new), + (gl_ui_property_bar_construct), (reset_to_default_properties), + (gl_ui_property_bar_set_view), (gl_ui_property_bar_set_tooltips), + (update_text_properties), (update_fill_color), + (update_line_color), + (update_line_width), (selection_changed_cb), + (font_family_changed_cb), (font_size_changed_cb), + (text_color_changed_cb), (fill_color_changed_cb), + (line_color_changed_cb), (line_width_changed_cb), + (font_bold_toggled_cb), (font_italic_toggled_cb), + (text_align_toggled_cb), (set_doc_items_sensitive), + (set_text_items_sensitive), (set_fill_items_sensitive), + (set_line_color_items_sensitive), + (set_line_width_items_sensitive): + * src/ui-property-bar.h: + * src/util.c: (gl_util_get_builder_widgets): + * src/util.h: + * src/wdgt-media-select.c: (gl_wdgt_media_select_finalize), + (gl_wdgt_media_select_construct): + Migration of glade to builder. + * src/color.h: + New macros for color combo initialization. + * TODO: + Added idea for internal merge database. + * docs/libglabels/libglabels-undocumented.txt: + * docs/libglabels/tmpl/paper.sgml: + * gtk-doc.make: + Automagic. + + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@785 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/TODO +M glabels2/configure.in +M glabels2/data/Makefile.am +A glabels2/data/builder/Makefile.am +R100 glabels2/data/glade/merge-properties-dialog.glade +glabels2/data/builder/merge-properties-dialog.glade +R100 glabels2/data/glade/new-label-dialog.glade +glabels2/data/builder/new-label-dialog.glade +R097 glabels2/data/glade/object-editor.glade +glabels2/data/builder/object-editor.glade +R096 glabels2/data/glade/prefs-dialog.glade +glabels2/data/builder/prefs-dialog.glade +R100 glabels2/data/glade/print-custom-widget.glade +glabels2/data/builder/print-custom-widget.glade +R089 glabels2/data/glade/property-bar.glade +glabels2/data/builder/property-bar.glade +R099 glabels2/data/glade/template-designer.glade +glabels2/data/builder/template-designer.glade +R100 glabels2/data/glade/wdgt-media-select.glade +glabels2/data/builder/wdgt-media-select.glade +D glabels2/data/glade/Makefile.am +M glabels2/docs/libglabels/libglabels-undocumented.txt +M glabels2/docs/libglabels/tmpl/paper.sgml +M glabels2/gtk-doc.make +M glabels2/src/Makefile.am +M glabels2/src/color.h +M glabels2/src/merge-properties-dialog.c +M glabels2/src/new-label-dialog.c +M glabels2/src/object-editor-bc-page.c +M glabels2/src/object-editor-data-page.c +M glabels2/src/object-editor-edit-page.c +M glabels2/src/object-editor-fill-page.c +M glabels2/src/object-editor-image-page.c +M glabels2/src/object-editor-line-page.c +M glabels2/src/object-editor-lsize-page.c +M glabels2/src/object-editor-position-page.c +M glabels2/src/object-editor-private.h +M glabels2/src/object-editor-shadow-page.c +M glabels2/src/object-editor-size-page.c +M glabels2/src/object-editor-text-page.c +M glabels2/src/object-editor.c +M glabels2/src/prefs-dialog.c +M glabels2/src/print-op.c +M glabels2/src/template-designer.c +M glabels2/src/template-designer.h +M glabels2/src/ui-property-bar.c +M glabels2/src/ui-property-bar.h +M glabels2/src/util.c +M glabels2/src/util.h +M glabels2/src/wdgt-media-select.c + +commit 7ef35253c18443a10f4f38d53143341c09c06015 +Author: Jim Evins +Date: 2008-10-12 + + 2008-10-12 Jim Evins + + * src/mygal/Makefile.am: + * src/mygal/color-group.c: + * src/mygal/color-group.h: + * src/mygal/color-palette.c: + * src/mygal/color-palette.h: + * src/mygal/e-colors.c: + * src/mygal/e-colors.h: + * src/mygal/e-marshal.list: + * src/mygal/e-util.h: + * src/mygal/mygal-combo-box.c: + * src/mygal/mygal-combo-box.h: + * src/mygal/widget-color-combo.c: + * src/mygal/widget-color-combo.h: + * AUTHORS: + * configure.in: + Deleted mygal. + * src/color-combo.c: + * src/color-combo.h: + * src/color-combo-color-menu-item.c: + * src/color-combo-color-menu-item.h: + * src/color-combo-history.c: + * src/color-combo-history.h: + * src/color-combo-menu.c: + * src/color-combo-menu.h: + * src/marshal.list: + * src/util.c: + * src/util.h: + * src/Makefile.am: + Created new glColorCombo widget. + * src/object-editor-bc-page.c: + * src/object-editor-edit-page.c: + * src/object-editor-fill-page.c: + * src/object-editor-line-page.c: + * src/object-editor-shadow-page.c: + * src/object-editor-text-page.c: + * src/object-editor.c: + * src/prefs-dialog.c: + * src/ui-property-bar.c: + Replaced use of mygal color combo with new glColorCombo + widget. + + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@784 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/AUTHORS +M glabels2/ChangeLog +M glabels2/configure.in +M glabels2/src/Makefile.am +A glabels2/src/color-combo-color-menu-item.c +A glabels2/src/color-combo-color-menu-item.h +A glabels2/src/color-combo-history.c +A glabels2/src/color-combo-history.h +A glabels2/src/color-combo-menu.c +A glabels2/src/color-combo-menu.h +A glabels2/src/color-combo.c +A glabels2/src/color-combo.h +M glabels2/src/marshal.list +D glabels2/src/mygal/Makefile.am +D glabels2/src/mygal/color-group.c +D glabels2/src/mygal/color-group.h +D glabels2/src/mygal/color-palette.c +D glabels2/src/mygal/color-palette.h +D glabels2/src/mygal/e-colors.c +D glabels2/src/mygal/e-colors.h +D glabels2/src/mygal/e-marshal.list +D glabels2/src/mygal/e-util.h +D glabels2/src/mygal/mygal-combo-box.c +D glabels2/src/mygal/mygal-combo-box.h +D glabels2/src/mygal/widget-color-combo.c +D glabels2/src/mygal/widget-color-combo.h +M glabels2/src/object-editor-bc-page.c +M glabels2/src/object-editor-edit-page.c +M glabels2/src/object-editor-fill-page.c +M glabels2/src/object-editor-line-page.c +M glabels2/src/object-editor-shadow-page.c +M glabels2/src/object-editor-text-page.c +M glabels2/src/object-editor.c +M glabels2/src/prefs-dialog.c +M glabels2/src/ui-property-bar.c +M glabels2/src/util.c +M glabels2/src/util.h + +commit 6accda9df32944d48b5e8556c5b7d4fd6e37b485 +Author: Jim Evins +Date: 2008-08-30 + + 2008-08-29 Jim Evins + + * src/file.c: (gl_file_open), (gl_file_save_as): + Bug #2069668. Corrected button order in Open and + "Save as" + dialogs. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@783 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/file.c + +commit 7b353782309c9627b471bd5928d836e4ed380e9b +Author: Jim Evins +Date: 2008-08-17 + + 2008-08-17 Jim Evins + + * data/dtd/glabels-2.2.dtd: + * data/templates/paper-sizes.xml: + * libglabels/db.c: (lgl_db_init): + * libglabels/paper.c: (lgl_paper_new), (lgl_paper_dup), + (lgl_paper_free): + * libglabels/paper.h: + * libglabels/xml-paper.c: (lgl_xml_paper_parse_paper_node): + * src/print-op.c: (set_page_size): + Bug #2049431. Always explicitely set page size. + Added pwg_size field (PWG 5101.1-2002 + size specification) to the libglabels paper database to + allow the page size to be + communicated to GtkPrintOp un-ambiguously. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@777 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/data/dtd/glabels-2.2.dtd +M glabels2/data/templates/paper-sizes.xml +M glabels2/libglabels/db.c +M glabels2/libglabels/paper.c +M glabels2/libglabels/paper.h +M glabels2/libglabels/xml-paper.c +M glabels2/src/print-op.c + +commit a4e50ffadf1d9aaf6d3fdd6fa88a4a144652be70 +Author: Jim Evins +Date: 2008-07-26 + + 2008-07-25 Jim Evins + + * src/object-editor-size-page.c: (size_reset_cb), + (gl_object_editor_set_max_size): + Bug #1993550. Set size limits based on longest side + of label. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@776 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/object-editor-size-page.c + +commit d842a8e3b41ef987d9f402f80a5ea19f2cc8528f +Author: Jim Evins +Date: 2008-07-20 + + 2008-07-19 Jim Evins + + * configure.in: + * src/mygal/Makefile.am: + Make sure libtool handles library dependencies for mygal + properly. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@774 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/configure.in +M glabels2/src/mygal/Makefile.am + +commit c046a8d5f2adcabf208bf344ae2d49b2c35d9563 +Author: Jim Evins +Date: 2008-05-22 + + 2008-05-21 Jim Evins + + * src/glabels-batch.c: (main): + Bug #1968653. Initialize prefs subsystem. + + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@772 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/glabels-batch.c + +commit a3fb8ada88270c000ca8ed92552df8bd73e43b81 +Author: Jim Evins +Date: 2008-05-10 + + 2008-05-09 Jim Evins + + * data/glade/object-editor.glade: + Bug #1959135. A couple of radio buttons somehow became + ungrouped. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@769 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/data/glade/object-editor.glade + +commit 85c07ac71aaff4903c38f816ae77c5932754512b +Author: Jim Evins +Date: 2008-04-08 + + 2008-04-07 Jim Evins + + * src/wdgt-rotate-label.h: + * src/wdgt-rotate-label.c: (gl_wdgt_rotate_label_init), + (gl_wdgt_rotate_label_new), (toggled_cb), (create_pixbuf), + (gl_wdgt_rotate_label_get_state), + (gl_wdgt_rotate_label_set_state), + (gl_wdgt_rotate_label_set_template_name): + Modified wdgt-rotate-label to better indicate the + rotation choices. + * data/glade/Makefile.am: + * data/glade/wdgt-rotate-label.glade: + Deleted wdgt-rotate-label.glade. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@768 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/data/glade/Makefile.am +D glabels2/data/glade/wdgt-rotate-label.glade +M glabels2/src/wdgt-rotate-label.c +M glabels2/src/wdgt-rotate-label.h + +commit cec0279eb60ae357ff93ef662a432b979160a303 +Author: Jim Evins +Date: 2008-04-05 + + 2008-04-04 Jim Evins + + * data/templates/brother-other-templates.xml: + Added categories to existing templates. + * data/templates/misc-other-templates.xml: + Moved dymo templates to their own file. + * data/templates/Makefile.am: + * data/templates/dymo-other-templates.xml: + Additional dymo templates provided by Harald Welte + . + * AUTHORS: + Acknowledgement for above templates. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@767 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +A glabels2/data/templates/dymo-other-templates.xml + +commit 49497c2580870b2a1b2364e4da33e4587efae50a +Author: Jim Evins +Date: 2008-04-05 + + 2008-04-04 Jim Evins + + * data/templates/brother-other-templates.xml: + Added categories to existing templates. + * data/templates/misc-other-templates.xml: + Moved dymo templates to their own file. + * data/templates/Makefile.am: + * data/templates/dymo-other-templates.xml: + Additional dymo templates provided by Harald Welte + . + * AUTHORS: + Acknowledgement for above templates. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@766 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/AUTHORS +M glabels2/ChangeLog +M glabels2/data/templates/Makefile.am +M glabels2/data/templates/brother-other-templates.xml +M glabels2/data/templates/misc-other-templates.xml + +commit 0bd0009193b9e28d4ddf96028399f038996d15d5 +Author: Jim Evins +Date: 2008-03-25 + + 2008-03-24 Jim Evins + + * src/xml-label.c: (xml_doc_to_label): + Bug #1872584. Don't refuse to parse label file if + namespace is + unrecognized -- it may be from a newer version of glabels. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@763 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/xml-label.c + +commit 5f3c093d8b3d6aeef8a9e477481b0bdc7728c65b +Author: Jim Evins +Date: 2008-03-16 + + 2008-03-15 Jim Evins + + * data/templates/Makefile.am: + * data/templates/brother-other-templates.xml: + Added brother templates. + * src/cairo-markup-path.c: (gl_cairo_markup_margin_rect_path), + (gl_cairo_markup_margin_cd_path): + * src/view.c: (draw_markup_layer): + Fixed markup drawing errors when label is rotated. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@762 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/data/templates/Makefile.am +A glabels2/data/templates/brother-other-templates.xml +M glabels2/src/cairo-markup-path.c +M glabels2/src/view.c + +commit ffb3bb596fd074d8aff5d967f0468d7c47769510 +Author: Jim Evins +Date: 2008-03-04 + + 2008-03-03 Jim Evins + + * configure.in: + * ko.po: + Added korean translation provided by xein@naver.com. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@760 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/configure.in +A glabels2/po/ko.po + +commit eb9b5b77918c0ca267429d15417370a7af529cbb +Author: Jim Evins +Date: 2008-02-23 + + Release 2.2.2 + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@756 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M web/download/index.php +M web/index.php +M web/news/index.php + +commit 22ec28c04b44a74d3dfe10f5667bde6d36637df3 +Author: Jim Evins +Date: 2008-02-22 + + 2008-02-21 Jim Evins + + * src/ui.c: + Fixed typo that prevented "Save" from being deactivated + when + document is not modified. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@755 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/ui.c + +commit 23cbe3a3256f0edd295a7d4fc0c92c2de23e5e9c +Author: Jim Evins +Date: 2008-02-19 + + 2008-02-18 Jim Evins + + * src/prefs-model.c: (gl_prefs_model_save_settings), + (gl_prefs_model_load_settings): + Set default units for file output. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@752 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/prefs-model.c + +commit 4618bceeaf24715211c17ca9585e7a807b4df814 +Author: Jim Evins +Date: 2008-02-18 + + 2008-02-18 Jim Evins + + * help/C/glabels.xml: + Fixed example template. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@750 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/help/C/glabels.xml + +commit 41999df6e9a40596e0e6986813b70f3f360c9b0e +Author: Jim Evins +Date: 2008-02-17 + + 2008-02-16 Jim Evins + + * AUTHORS: + * data/templates/avery-iso-templates.xml: + * data/templates/avery-us-templates.xml: + * data/templates/misc-iso-templates.xml: + * data/templates/misc-us-templates.xml: + Caught up on user submitted templates. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@748 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/AUTHORS +M glabels2/ChangeLog +M glabels2/data/templates/avery-iso-templates.xml +M glabels2/data/templates/avery-us-templates.xml +M glabels2/data/templates/misc-iso-templates.xml +M glabels2/data/templates/misc-us-templates.xml + +commit 9e0bdc8ba7b36e33843fa7ba8baf496db7a41b88 +Author: Jim Evins +Date: 2008-02-05 + + 2008-02-04 Jim Evins + + * src/view-image.c: (update_object_from_editor_cb): + Bug #1886438. Don't update the image size unless it + is actually + triggered by a change in image source. The result of + this bug + was that any attempt to edit the size spinboxes, + immediately + reset the size. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@746 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/view-image.c + +commit 91d37cb324c418683201aa5c25bd013789286831 +Author: Jim Evins +Date: 2008-02-03 + + 2008-02-03 Jim Evins + + * src/label-image.c: (gl_label_image_class_init), (set_size): + Enforce minimum size for images. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@743 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/label-image.c + +commit d9e0dd7675822598ed33528baa97c41d68b617e2 +Author: Jim Evins +Date: 2008-02-03 + + 2008-02-03 Jim Evins + + * src/object-editor-edit-page.c: (field_selected_cb): + * src/object-editor-lsize-page.c: + (gl_object_editor_set_max_lsize): + * src/object-editor-private.h: + * src/object-editor-shadow-page.c: + (gl_object_editor_set_max_shadow_offset): + * src/object-editor-size-page.c: (gl_object_editor_set_max_size): + * src/object-editor.c: (gl_object_editor_finalize), + (gl_object_editor_new), (gl_object_notebook_construct_valist), + (label_changed_cb): + * src/object-editor.h: + * src/ui-sidebar.c: (gl_ui_sidebar_construct): + * src/view-barcode.c: (construct_properties_editor): + * src/view-box.c: (construct_properties_editor): + * src/view-ellipse.c: (construct_properties_editor): + * src/view-image.c: (construct_properties_editor): + * src/view-line.c: (construct_properties_editor): + * src/view-object.c: (gl_view_object_finalize): + * src/view-text.c: (construct_properties_editor), + Move update_editor_from_label callback from individual + view objects + to the object editor, so that signals can be disconnected + when + object editor is finalized. + * src/view-text.c: (gl_view_text_create_button_press_event): + Fixed bug that caused multiple view objects to be created + for a + single text object. This bug would manifest itself as + a crash + when deleting multi-object selections which included + text objects. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@741 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/object-editor-edit-page.c +M glabels2/src/object-editor-lsize-page.c +M glabels2/src/object-editor-private.h +M glabels2/src/object-editor-shadow-page.c +M glabels2/src/object-editor-size-page.c +M glabels2/src/object-editor.c +M glabels2/src/object-editor.h +M glabels2/src/ui-sidebar.c +M glabels2/src/view-barcode.c +M glabels2/src/view-box.c +M glabels2/src/view-ellipse.c +M glabels2/src/view-image.c +M glabels2/src/view-line.c +M glabels2/src/view-object.c +M glabels2/src/view-text.c + +commit b4714e50f777fe29eb16a2d729e8b5692ade6c88 +Author: Jim Evins +Date: 2008-02-02 + + 2008-02-02 Jim Evins + + * src/Makefile.am: + * src/wdgt-merge-menu.c: + * src/wdgt-merge-menu.h: + * src/debug.c: (gl_debug_init): + * src/debug.h: + * src/marshal.list: + New merge menu widget. + * data/glade/object-editor.glade: + * src/object-editor-private.h: + * src/object-editor.c: (gl_object_editor_set_key_names): + * src/object-editor-edit-page.c: + (gl_object_editor_prepare_edit_page), (field_selected_cb), + (insert_button_cb): + Simplified UI for inserting fields into text objects + by launching + a merge menu and directly inserting fields from the menu. + No more + selecting field in combobox, then pressing insert button. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@740 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/data/glade/object-editor.glade +M glabels2/src/Makefile.am +M glabels2/src/debug.c +M glabels2/src/debug.h +M glabels2/src/marshal.list +M glabels2/src/object-editor-edit-page.c +M glabels2/src/object-editor-private.h +M glabels2/src/object-editor.c +A glabels2/src/wdgt-merge-menu.c +A glabels2/src/wdgt-merge-menu.h + +commit b9efddafae059c1834ee10d3d7aedf9a23a1aea9 +Author: Jim Evins +Date: 2008-02-01 + + 2008-01-31 Jim Evins + + * src/label-barcode.c: (draw_object): + Fixed rendering problem when "Invalid data" is displayed + when text + object is lower in stacking order. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@738 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/label-barcode.c + +commit 34ce1482d3abe34922ef9bc8d0173ec98c74f1c0 +Author: Jim Evins +Date: 2008-01-31 + + 2008-01-30 Jim Evins + + * src/label-text.c: (get_size), (draw_object), (draw_shadow): + Don't turn off cairo_hint_metrics. This causes serious + issues with + bitmap fonts. + + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@736 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/label-text.c + +commit c3eb26e0dc3c7c4ae2dfd150d15ac2dfdda751b2 +Author: Jim Evins +Date: 2008-01-30 + + 2008-01-29 Jim Evins + + * src/print-op.c: (gl_print_op_construct), + (gl_print_op_construct_batch), (set_page_size): + Explicitly set page size for "other" page sizes. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@734 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/print-op.c + +commit 30a30cddd30848ddb8c27bd3883e355c5f455aee +Author: Jim Evins +Date: 2008-01-26 + + 2008-01-25 Jim Evins + + * src/bc.c: + Fixed Code128C backend parameters. + * src/label-barcode.c: (get_size): + Bug #1766425. If barcode is not renderable with either + input data or default data, use a default size. Also + fixed small leak. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@733 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/bc.c +M glabels2/src/label-barcode.c + +commit f92a36a65a99196ea77369e36306ef012713c1f0 +Author: Jim Evins +Date: 2008-01-23 + + Release 2.2.1 + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@729 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M web/download/index.php +M web/index.php +M web/news/index.php + +commit b3284942b4787e79360f989f39573cf4db05be2b +Author: Jim Evins +Date: 2008-01-17 + + 2008-01-16 Jim Evins + + * src/print.c: (print_label): + Bug #1872568. Don't apply special transforms (rotate and + mirror) to clipping region or outline. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@727 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/print.c + +commit 4fc7a95ffe11cda0bdfd9074cb8ee5d41e6d4434 +Author: Jim Evins +Date: 2008-01-02 + + 2008-01-01 Jim Evins + + * src/util.c: + Sort font lists alphabetically. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@725 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/util.c + +commit 2405b022fb9d95b98b20ad37de761fdb885b3d86 +Author: Jim Evins +Date: 2008-01-02 + + 2008-01-01 Jim Evins + + * src/merge-evolution.c: + Do a case-insensitive sort. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@723 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/merge-evolution.c + +commit 0f866d1aacfc4da617ae484b6c0873ff08909b6e +Author: Jim Evins +Date: 2008-01-02 + + 2008-01-01 Jim Evins + + * src/merge-evolution.c: + Sort evolution by "file_under" field. Original patch + provided + by Peter Cherriman + in + Patch #1860423. + * AUTHORS: + Added acknowledgement for above patch. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@721 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/AUTHORS +M glabels2/ChangeLog +M glabels2/src/merge-evolution.c + +commit 2c6f4ad2ae25e3feb6bec338a727689663479fbf +Author: Jim Evins +Date: 2008-01-02 + + 2008-01-01 Jim Evins + + * NEWS: + * configure.in: + * glabels.spec.in: + Reconcile with 2.2 branch. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@719 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/NEWS +M glabels2/configure.in +M glabels2/glabels.spec.in + +commit 2dc21eca4a51c1e9a96a2ad2b8a308b75b8450a5 +Author: Jim Evins +Date: 2007-12-26 + + Prep for 2.2.0 release. + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@716 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +A web/doc/glabels-2.2.dtd.txt +M web/doc/index.php +A web/doc/templates-2.2/glabels-template-cd.png +A web/doc/templates-2.2/glabels-template-label.png +A web/doc/templates-2.2/glabels-template-layout.png +A web/doc/templates-2.2/index.php +M web/download/index.php +M web/index.php +M web/links/index.php +M web/news/index.php +A web/screenshots/220-screenshot-main-thumb.png +A web/screenshots/220-screenshot-main.png +A web/screenshots/220-screenshot-new-thumb.png +A web/screenshots/220-screenshot-new.png +A web/screenshots/220-screenshot-preview-thumb.png +A web/screenshots/220-screenshot-preview.png +A web/screenshots/220-screenshot-print-thumb.png +A web/screenshots/220-screenshot-print.png +M web/screenshots/index.php + +commit 8836dd00ecb2dca5462442a6149872ec84d9efdc +Author: Jim Evins +Date: 2007-12-22 + + 2007-12-21 Jim Evins + + * COPYING.LIBGLABELS: + * COPYING.README_FIRST: + * README: + Updating license information to make more complete and + understandable. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@711 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +R100 glabels2/COPYING.LIBGLABELS glabels2/COPYING-LIBGLABELS +A glabels2/COPYING.README_FIRST +M glabels2/ChangeLog +M glabels2/README + +commit 5375ec7401a13e0749329bc34d912cbffbee2b6f +Author: Jim Evins +Date: 2007-12-16 + + 2007-12-16 Jim Evins + + * configure.in: + Updated version to 2.pre2. + * help/C/glabels.xml: + Updated documentation. + * src/ui-commands.c: (gl_ui_cmd_help_about): + Updated copyright string. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@710 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/configure.in +M glabels2/help/C/glabels.xml +M glabels2/src/ui-commands.c + +commit 63153b839d3534ecd8f8761ffa78963a1b9a3918 +Author: Jim Evins +Date: 2007-12-16 + + 2007-12-15 Jim Evins + + * data/glade/object-editor.glade: + Removed any GtkTable that contained a GtkComboBox because + the size of + the combo box was not constrained properly. This + sacrifices the nice + orderly labels for combo boxes that don't extend beyond + the edge of the + window. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@709 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/data/glade/object-editor.glade + +commit a80d06dfd7b2b2a0ad6fefb8930bf29e0da47bd8 +Author: Jim Evins +Date: 2007-12-15 + + 2007-12-15 Jim Evins + + * libglabels/db.c: (lgl_db_lookup_template_from_name): + * src/object-editor.c: (gl_object_editor_finalize): + * src/wdgt-media-select.c: (gl_wdgt_media_select_finalize): + Fixed several small memory leaks. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@708 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/libglabels/db.c +M glabels2/src/object-editor.c +M glabels2/src/wdgt-media-select.c + +commit 910f142b0201ac95fa7c62bf6d1a658e16093f16 +Author: Jim Evins +Date: 2007-12-15 + + 2007-12-14 Jim Evins + + * libglabels/db.c: + Optimize template search by name by using a GHashTable. + * src/mini-preview-pixbuf-cache.c: + * src/mini-preview-pixbuf-cache.h: + Store one pixbuf per template, but use a key for each + alias. + * src/wdgt-media-select.c: + Optimize loading of tree data, thus optimizing the + "new label" dialog. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@707 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/libglabels/db.c +M glabels2/src/mini-preview-pixbuf-cache.c +M glabels2/src/mini-preview-pixbuf-cache.h +M glabels2/src/wdgt-media-select.c + +commit 56efcf961c8dad206f835cb6eaa27621a837e457 +Author: Jim Evins +Date: 2007-12-13 + + 2007-12-12 Jim Evins + + * data/templates/avery-us-templates.xml: + More templates and aliases. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@706 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/data/templates/avery-us-templates.xml + +commit b84fefc66d9297af2c7987605fba5df694273907 +Author: Jim Evins +Date: 2007-12-09 + + Updated download links. + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@705 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M web/common_php.inc + +commit 2a503f794c163ad0f8d540e205ecdc689d0d59f0 +Author: Jim Evins +Date: 2007-12-09 + + Release 2.1.5 + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@702 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M web/download/index.php +M web/index.php +M web/news/index.php + +commit 67f66fd47238547b043f41b566b5176a2512a8b1 +Author: Jim Evins +Date: 2007-12-09 + + 2007-12-08 Jim Evins + + * TODO: + More prep for 2.1.5/2.2.0. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@701 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/TODO + +commit e40a0e4b96767ad3e127dd5a8698a842faa79013 +Author: Jim Evins +Date: 2007-12-09 + + 2007-12-08 Jim Evins + + * NEWS: + * README: + * TODO: + * configure.in: + Preparation for 2.1.5. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@700 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/NEWS +M glabels2/README +M glabels2/TODO +M glabels2/configure.in + +commit 61ce763cb6817e0d22b262d9933a3d5d32cd945f +Author: Jim Evins +Date: 2007-12-08 + + 2007-12-08 Jim Evins + + * docs/libglabels/libglabels-decl-list.txt: + * docs/libglabels/libglabels-docs.sgml: + * docs/libglabels/libglabels-sections.txt: + * docs/libglabels/libglabels-undocumented.txt: + * docs/libglabels/tmpl/db.sgml: + * docs/libglabels/tmpl/str.sgml: + * libglabels/str.c: + Documentation cleanup for libglabels. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@699 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/docs/libglabels/libglabels-decl-list.txt +M glabels2/docs/libglabels/libglabels-docs.sgml +M glabels2/docs/libglabels/libglabels-sections.txt +M glabels2/docs/libglabels/libglabels-undocumented.txt +M glabels2/docs/libglabels/tmpl/db.sgml +A glabels2/docs/libglabels/tmpl/str.sgml +M glabels2/libglabels/str.c + +commit f5cdac62dc40e5f8d3e2f0d33fe645c098d68f06 +Author: Jim Evins +Date: 2007-12-02 + + Fixed capitalization. + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@698 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M web/links/index.php + +commit 9e63a7ba6a5af8eeac9bf7a008050c3072f35c9c +Author: Jim Evins +Date: 2007-12-02 + + Added missing title image. Small edits to links and download pages. + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@697 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M web/download/index.php +A web/images/glabels-title-140.png +D web/images/glabels-title-140.png.good +M web/links/index.php + +commit 7fc2595f019ca9b9e4ddc8bf04173489c42dada8 +Author: Jim Evins +Date: 2007-11-30 + + 2007-11-29 Jim Evins + + * libglabels/db.h: + * libglabels/db.c: + Added lgl_db_does_template_name_exist(). + In lgl_db_lookup_template_from_name() substitute + brand/part of new template from + requested alias. + * src/prefs-model.c: + Proof read recent templates -- make sure they still exist. + * src/wdgt-media-select.c: + Default to "search all templates" tab if no recent + templates found. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@696 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/libglabels/db.c +M glabels2/libglabels/db.h +M glabels2/src/prefs-model.c +M glabels2/src/wdgt-media-select.c + +commit 7d3d00e59c9deac3590b2e0cd5b756e66945de9b +Author: Jim Evins +Date: 2007-11-28 + + 2007-11-28 Jim Evins + + * data/glade/wdgt-media-select.glade: + * src/wdgt-media-select.c: + Added tabbed notebook to allow selection of recent + template versus searching the + entire database. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@695 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/data/glade/wdgt-media-select.glade +M glabels2/src/wdgt-media-select.c + +commit 5aca44500cc85783f61bd7a572c38645f8513cc0 +Author: Jim Evins +Date: 2007-11-27 + + 2007-11-26 Jim Evins + + * libglabels/Makefile.am: + * libglabels/libglabels.h: + Make str.h public. + * src/label.c: + * src/prefs-dialog.c: + * src/prefs-model.c: + * src/prefs-model.h: + * src/prefs.c: + * src/prefs.h: + Added tracking of recently used templates. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@694 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/libglabels/Makefile.am +M glabels2/libglabels/libglabels.h +M glabels2/src/label.c +M glabels2/src/prefs-dialog.c +M glabels2/src/prefs-model.c +M glabels2/src/prefs-model.h +M glabels2/src/prefs.c +M glabels2/src/prefs.h + +commit f16056b8177404142111d3355fa5a3b94839b1d8 +Author: Jim Evins +Date: 2007-11-21 + + 2007-11-20 Jim Evins + + * data/glade/template-designer.glade: + * src/template-designer.c: + Added warning icon when match brand and part match an + existing template. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@693 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/data/glade/template-designer.glade +M glabels2/src/template-designer.c + +commit 58279423cfb4c6fa816d19f7078fdf1e111fbc55 +Author: Jim Evins +Date: 2007-11-19 + + 2007-11-18 Jim Evins + + * libglabels/Makefile.am: + * libglabels/str.h: + * libglabels/str.c: + Added lgl_str_utf8_casecmp(). + * libglabels/libglabels-private.h: + Use lgl_str_utf8_casecmp() for UTF8_EQUAL macro -- + do case insensitive comparisons. + * libglabels/db.c: (lgl_db_get_brand_list): + Use lgl_str_utf8_casecmp() to determine if we have seen + brand before when building + brand list. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@692 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/libglabels/Makefile.am +M glabels2/libglabels/db.c +M glabels2/libglabels/libglabels-private.h +A glabels2/libglabels/str.c +C055 glabels2/libglabels/libglabels-private.h +glabels2/libglabels/str.h + +commit ac41c67c4089c1303453fee8efe5c5e97acbc1bd +Author: Jim Evins +Date: 2007-11-19 + + 2007-11-18 Jim Evins + + * data/glade/template-designer.glade: + * src/template-designer.c: + Don't advance past name page, if brand and part match + an existing template. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@691 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/data/glade/template-designer.glade +M glabels2/src/template-designer.c + +commit 8afdc497ab84d6fb788e9822a15c24320d686fbe +Author: Jim Evins +Date: 2007-11-18 + + 2007-11-18 Jim Evins + + * libglabels/db.c: (lgl_db_register_template), (read_templates): + When registering a new template, don't add to "User + defined" category before + writing to file. Add to "User defined" category when + reading from "~/.glabels" + directory instead. This will allow legacy templates + (and manually created + templates) to be automatically added to the "user defined" + category. + * libglabels/xml-template.c: + (lgl_xml_template_create_template_node): + Fixed typo/bug causing brand to be wrong. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@690 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/libglabels/db.c +M glabels2/libglabels/xml-template.c + +commit ab3ea131f3061e41dd0753167ce5493ecca205ad +Author: Jim Evins +Date: 2007-11-17 + + 2007-11-16 Jim Evins + + * libglabels/db.c: + * libglabels/db.h: + Added return codes to lgl_db_register_template(). + Added lgl_db_does_template_exist() + function. Automatically create "User defined" category + and add to all user + registered templates. + * libglabels/xml-template.c: + * libglabels/xml-template.h: + Return number of bytes written from + lgl_xml_template_write_templates_to_file() and + lgl_xml_template_write_template_to_file(). + * docs/libglabels/libglabels-decl-list.txt: + * docs/libglabels/libglabels-sections.txt: + * docs/libglabels/libglabels-undocumented.txt: + * docs/libglabels/tmpl/db.sgml: + * docs/libglabels/tmpl/xml-template.sgml: + Update documentation to reflect above changes. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@689 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/docs/libglabels/libglabels-decl-list.txt +M glabels2/docs/libglabels/libglabels-sections.txt +M glabels2/docs/libglabels/libglabels-undocumented.txt +M glabels2/docs/libglabels/tmpl/db.sgml +M glabels2/docs/libglabels/tmpl/xml-template.sgml +M glabels2/libglabels/db.c +M glabels2/libglabels/db.h +M glabels2/libglabels/xml-template.c +M glabels2/libglabels/xml-template.h + +commit 1843beacf1f7d4c2954fe21a60d8c95ce8dcec79 +Author: Jim Evins +Date: 2007-10-29 + + 2007-10-28 Jim Evins + + * libglabels/xml-template.c: + Remove any leading white space from part #s when parsing + old names. + * src/mini-preview-pixbuf-cache.c: + If name isn't in cache add it. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@688 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/libglabels/xml-template.c +M glabels2/src/mini-preview-pixbuf-cache.c + +commit c4087c54cb13e22815a28921fdcc214b0b5c122c +Author: Jim Evins +Date: 2007-10-27 + + 2007-10-26 Jim Evins + + * libglabels/Makefile.am: + * libglabels/category.c: + * libglabels/category.h: + * libglabels/db.c: + * libglabels/db.h: + * libglabels/libglabels-private.h: + * libglabels/libglabels.h: + * libglabels/paper.c: + * libglabels/paper.h: + * libglabels/template.c: + * libglabels/template.h: + * libglabels/xml-template.c: + Another pass at screwing with the libglabels API. + Moved all + database related stuff to db.[ch]. + * docs/libglabels/libglabels-decl-list.txt: + * docs/libglabels/libglabels-docs.sgml: + * docs/libglabels/libglabels-sections.txt: + * docs/libglabels/libglabels-undocumented.txt: + * docs/libglabels/tmpl/category.sgml: + * docs/libglabels/tmpl/db.sgml: + * docs/libglabels/tmpl/init.sgml: + * docs/libglabels/tmpl/libglabels-unused.sgml: + * docs/libglabels/tmpl/paper.sgml: + * docs/libglabels/tmpl/template-construction.sgml: + * docs/libglabels/tmpl/template-db.sgml: + * docs/libglabels/tmpl/template-misc.sgml: + * docs/libglabels/tmpl/template-struct.sgml: + * docs/libglabels/tmpl/template.sgml: + Updated documentation to reflect above changes to + libglabels API. + * src/file.c: + * src/glabels-batch.c: + * src/glabels.c: + * src/mini-preview-pixbuf-cache.c: + * src/prefs-model.c: + * src/print.c: + * src/template-designer.c: + * src/wdgt-media-select.c: + * src/wdgt-mini-preview.c: + * src/wdgt-rotate-label.c: + * src/xml-label-04.c: + * src/xml-label.c: + Reconciled usage with above libglabels API changes. + + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@687 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/docs/libglabels/libglabels-decl-list.txt +M glabels2/docs/libglabels/libglabels-docs.sgml +M glabels2/docs/libglabels/libglabels-sections.txt +M glabels2/docs/libglabels/libglabels-undocumented.txt +M glabels2/docs/libglabels/tmpl/category.sgml +A glabels2/docs/libglabels/tmpl/db.sgml +D glabels2/docs/libglabels/tmpl/init.sgml +M glabels2/docs/libglabels/tmpl/libglabels-unused.sgml +M glabels2/docs/libglabels/tmpl/paper.sgml +D glabels2/docs/libglabels/tmpl/template-construction.sgml +D glabels2/docs/libglabels/tmpl/template-db.sgml +D glabels2/docs/libglabels/tmpl/template-misc.sgml +R074 glabels2/docs/libglabels/tmpl/template-struct.sgml +glabels2/docs/libglabels/tmpl/template.sgml +M glabels2/libglabels/Makefile.am +M glabels2/libglabels/category.c +M glabels2/libglabels/category.h +A glabels2/libglabels/db.c +A glabels2/libglabels/db.h +D glabels2/libglabels/init.c +D glabels2/libglabels/init.h +M glabels2/libglabels/libglabels-private.h +M glabels2/libglabels/libglabels.h +M glabels2/libglabels/paper.c +M glabels2/libglabels/paper.h +M glabels2/libglabels/template.c +M glabels2/libglabels/template.h +M glabels2/libglabels/xml-template.c +M glabels2/src/file.c +M glabels2/src/glabels-batch.c +M glabels2/src/glabels.c +M glabels2/src/mini-preview-pixbuf-cache.c +M glabels2/src/prefs-model.c +M glabels2/src/print.c +M glabels2/src/template-designer.c +M glabels2/src/wdgt-media-select.c +M glabels2/src/wdgt-mini-preview.c +M glabels2/src/wdgt-rotate-label.c +M glabels2/src/xml-label-04.c +M glabels2/src/xml-label.c + +commit 4b0f2e892f20e124d2897ac071832b1bc256eb25 +Author: Jim Evins +Date: 2007-10-21 + + Removing xv detritus. + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@686 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +D web/images/.xvpics/button-bg.png +D web/images/.xvpics/corner-bl-1.png +D web/images/.xvpics/corner-br-1.png +D web/images/.xvpics/corner-tl-1.png +D web/images/.xvpics/corner-tr-1.png +D web/images/.xvpics/glabels-title-140.png +D web/images/.xvpics/glabels-title-clean1-140-1.png +D web/images/.xvpics/pixel-null.png +D web/screenshots/.xvpics/191-screenshot-main-grid-thumb.png +D web/screenshots/.xvpics/191-screenshot-main-thumb.png +D web/screenshots/.xvpics/191-screenshot-new-thumb.png +D web/screenshots/.xvpics/191-screenshot-print-merge-thumb.png +D web/screenshots/.xvpics/191-screenshot-print-simple-thumb.png +D web/screenshots/.xvpics/192screenshot-tumb.png +D web/screenshots/.xvpics/193-screenshot-main-thumb.png +D web/screenshots/.xvpics/193-screenshot-new-thumb.png +D web/screenshots/.xvpics/193-screenshot-preview-thumb.png +D web/screenshots/.xvpics/193-screenshot-print-thumb.png +D web/screenshots/.xvpics/glabels-screenshot-1-50%.png +D web/screenshots/.xvpics/glabels-screenshot-1-640x480.png + +commit a84e23b3e38a8c6fc710759cd3cbf74deedec5d7 +Author: Jim Evins +Date: 2007-10-21 + + Initial checkin of website. + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@685 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +A web/common_php.inc +A web/contact/index.php +A web/css/glabels.css +A web/doc/glabels-2.0.dtd.txt +A web/doc/index.php +A web/doc/templates-2.0/glabels-template-cd.png +A web/doc/templates-2.0/glabels-template-label.png +A web/doc/templates-2.0/glabels-template-layout.png +A web/doc/templates-2.0/index.php +A web/download/index.php +A web/faq/index.php +A web/faq/q1.3-output.png +A web/faq/q1.3-screenshot.png +A web/images/.xvpics/button-bg.png +A web/images/.xvpics/corner-bl-1.png +A web/images/.xvpics/corner-br-1.png +A web/images/.xvpics/corner-tl-1.png +A web/images/.xvpics/corner-tr-1.png +A web/images/.xvpics/glabels-title-140.png +A web/images/.xvpics/glabels-title-clean1-140-1.png +A web/images/.xvpics/pixel-null.png +A web/images/button-bg.png +A web/images/corner-bl.png +A web/images/corner-br.png +A web/images/corner-tl.png +A web/images/corner-tr.png +A web/images/glabels-title-140.png.good +A web/images/pixel-null.png +A web/index.php +A web/links/index.php +A web/news/index.php +A web/screenshots/.xvpics/191-screenshot-main-grid-thumb.png +A web/screenshots/.xvpics/191-screenshot-main-thumb.png +A web/screenshots/.xvpics/191-screenshot-new-thumb.png +A web/screenshots/.xvpics/191-screenshot-print-merge-thumb.png +A web/screenshots/.xvpics/191-screenshot-print-simple-thumb.png +A web/screenshots/.xvpics/192screenshot-tumb.png +A web/screenshots/.xvpics/193-screenshot-main-thumb.png +A web/screenshots/.xvpics/193-screenshot-new-thumb.png +A web/screenshots/.xvpics/193-screenshot-preview-thumb.png +A web/screenshots/.xvpics/193-screenshot-print-thumb.png +A web/screenshots/.xvpics/glabels-screenshot-1-50%.png +A web/screenshots/.xvpics/glabels-screenshot-1-640x480.png +A web/screenshots/191-screenshot-main-grid-thumb.png +A web/screenshots/191-screenshot-main-grid.png +A web/screenshots/191-screenshot-main-thumb.png +A web/screenshots/191-screenshot-main.png +A web/screenshots/191-screenshot-new-thumb.png +A web/screenshots/191-screenshot-new.png +A web/screenshots/191-screenshot-print-merge-thumb.png +A web/screenshots/191-screenshot-print-merge.png +A web/screenshots/191-screenshot-print-simple-thumb.png +A web/screenshots/191-screenshot-print-simple.png +A web/screenshots/192-screenshot-thumb.png +A web/screenshots/192-screenshot.png +A web/screenshots/193-screenshot-main-thumb.png +A web/screenshots/193-screenshot-main.png +A web/screenshots/193-screenshot-new-thumb.png +A web/screenshots/193-screenshot-new.png +A web/screenshots/193-screenshot-preview-thumb.png +A web/screenshots/193-screenshot-preview.png +A web/screenshots/193-screenshot-print-thumb.png +A web/screenshots/193-screenshot-print.png +A web/screenshots/glabels1-screenshot-thumb.jpg +A web/screenshots/glabels1-screenshot.jpg +A web/screenshots/glabels1-screenshot.png +A web/screenshots/index.php +A web/source/glabels-0.1.0.tar.gz +A web/source/glabels-0.1.1.tar.gz +A web/source/glabels-0.1.2.tar.gz +A web/source/glabels-0.1.3.tar.gz +A web/source/glabels-0.1.4.tar.gz +A web/source/glabels-0.1.5.tar.gz +A web/source/glabels-0.2.0.tar.gz +A web/source/glabels-0.2.1.tar.gz +A web/source/glabels-0.2.2.tar.gz +A web/source/glabels-0.2.3.tar.gz +A web/source/glabels-0.2.4.tar.gz +A web/source/glabels-0.3.0.tar.gz +A web/source/glabels-0.3.1.tar.gz +A web/source/glabels-0.3.2.tar.gz +A web/source/glabels-0.3.3.tar.gz +A web/source/glabels-0.3.4.tar.gz +A web/source/glabels-0.4.0.tar.gz +A web/source/glabels-0.4.1.tar.gz +A web/source/glabels-0.4.2.tar.gz +A web/source/glabels-0.4.3.tar.gz +A web/source/glabels-0.4.4.tar.gz +A web/source/glabels-0.4.5.tar.gz +A web/source/glabels-0.4.6.tar.gz +A web/source/glabels-1.89.0.tar.gz +A web/source/glabels-1.89.1.tar.gz +A web/source/glabels-1.89.2.tar.gz +A web/source/glabels-1.90.0.tar.gz +A web/source/glabels-1.91.0.tar.gz +A web/source/glabels-1.91.1.tar.gz +A web/source/glabels-1.92.0.tar.gz +A web/source/glabels-1.92.1.tar.gz +A web/source/glabels-1.92.2.tar.gz +A web/source/glabels-1.92.3.tar.gz +A web/source/glabels-1.93.0.tar.gz +A web/source/glabels-1.93.1.tar.gz +A web/source/glabels-1.93.2.tar.gz +A web/source/glabels-1.93.3.tar.gz +A web/tango-icons/applications-development.png +A web/tango-icons/applications-internet.png +A web/tango-icons/dialog-information.png +A web/tango-icons/emblem-photos.png +A web/tango-icons/help-browser.png +A web/tango-icons/internet-news-reader.png +A web/tango-icons/package-x-generic.png +A web/tango-icons/system-users.png + +commit 251a5dee819b418665ab35f0438fd86f43ba7335 +Author: Jim Evins +Date: 2007-10-21 + + 2007-10-21 Jim Evins + + * data/glade/wdgt-media-select.glade: + * src/wdgt-media-select.c: + Added brand to filter settings. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@684 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/data/glade/wdgt-media-select.glade +M glabels2/src/wdgt-media-select.c + +commit 387dce347efdd1ca66fb73d6e44c26e1aa6d93e0 +Author: Jim Evins +Date: 2007-10-21 + + 2007-10-21 Jim Evins + + * data/dtd/glabels-2.2.dtd: + Forgot to replace Alias name attribute with brand and + part attributes. + * data/templates/avery-iso-templates.xml: + * data/templates/avery-other-templates.xml: + * data/templates/avery-us-templates.xml: + * data/templates/misc-iso-templates.xml: + * data/templates/misc-other-templates.xml: + * data/templates/misc-us-templates.xml: + * data/templates/zweckform-iso-templates.xml: + Replaced all name attributes with brand/part attribute + pairs. + + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@683 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/data/dtd/glabels-2.2.dtd +M glabels2/data/templates/avery-iso-templates.xml +M glabels2/data/templates/avery-other-templates.xml +M glabels2/data/templates/avery-us-templates.xml +M glabels2/data/templates/misc-iso-templates.xml +M glabels2/data/templates/misc-other-templates.xml +M glabels2/data/templates/misc-us-templates.xml +M glabels2/data/templates/zweckform-iso-templates.xml + +commit 2e4ddae04caaf2ab9a5dea48d2c5961aeaf081a7 +Author: Jim Evins +Date: 2007-10-21 + + 2007-10-20 Jim Evins + + * src/stock-pixmaps/*.png + Updated icons to use Tango color palette. + + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@682 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/stock-pixmaps/stock_align_bottom_16.png +M glabels2/src/stock-pixmaps/stock_align_hcenter_16.png +M glabels2/src/stock-pixmaps/stock_align_left_16.png +M glabels2/src/stock-pixmaps/stock_align_right_16.png +M glabels2/src/stock-pixmaps/stock_align_top_16.png +M glabels2/src/stock-pixmaps/stock_align_vcenter_16.png +M glabels2/src/stock-pixmaps/stock_box_16.png +M glabels2/src/stock-pixmaps/stock_box_24.png +M glabels2/src/stock-pixmaps/stock_bucket_fill_16.png +M glabels2/src/stock-pixmaps/stock_bucket_fill_24.png +M glabels2/src/stock-pixmaps/stock_ellipse_16.png +M glabels2/src/stock-pixmaps/stock_ellipse_24.png +M glabels2/src/stock-pixmaps/stock_image_24.png +M glabels2/src/stock-pixmaps/stock_merge_16.png +M glabels2/src/stock-pixmaps/stock_merge_24.png +M glabels2/src/stock-pixmaps/stock_order_bottom_16.png +M glabels2/src/stock-pixmaps/stock_order_top_16.png +M glabels2/src/stock-pixmaps/stock_properties_16.png +M glabels2/src/stock-pixmaps/stock_properties_24.png + +commit a068fff04513122c2b6c7d039aeb9987b19350e2 +Author: Jim Evins +Date: 2007-10-20 + + 2007-10-20 Jim Evins + + * data/dtd/Makefile.am: + * data/dtd/glabels-2.0.dtd: + * data/dtd/glabels-2.2.dtd: + Rename glabels-2.0.dtd to glabels-2.2.dtd. Added brand + and part attributes to + template node. + * libglabels/template.c: + * libglabels/template.h: + * libglabels/xml-template.c: + * libglabels/xml.h: + Added brand and part attributes to template and alias + structures and nodes. + * src/file.c: + * src/label.c: + * src/mini-preview-pixbuf-cache.c: + * src/template-designer.c: + * src/wdgt-media-select.c: + Use modified libglabels API. + * docs/libglabels/libglabels-decl-list.txt: + * docs/libglabels/libglabels-sections.txt: + * docs/libglabels/libglabels-undocumented.txt: + * docs/libglabels/tmpl/template-construction.sgml: + * docs/libglabels/tmpl/template-db.sgml: + * docs/libglabels/tmpl/template-struct.sgml: + Update libglabels documentation to reflect above + modifications. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@681 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/data/dtd/Makefile.am +R098 glabels2/data/dtd/glabels-2.0.dtd +glabels2/data/dtd/glabels-2.2.dtd +M glabels2/docs/libglabels/libglabels-decl-list.txt +M glabels2/docs/libglabels/libglabels-sections.txt +M glabels2/docs/libglabels/libglabels-undocumented.txt +M glabels2/docs/libglabels/tmpl/template-construction.sgml +M glabels2/docs/libglabels/tmpl/template-db.sgml +M glabels2/docs/libglabels/tmpl/template-struct.sgml +M glabels2/libglabels/template.c +M glabels2/libglabels/template.h +M glabels2/libglabels/xml-template.c +M glabels2/libglabels/xml.h +M glabels2/src/file.c +M glabels2/src/label.c +M glabels2/src/mini-preview-pixbuf-cache.c +M glabels2/src/template-designer.c +M glabels2/src/wdgt-media-select.c + +commit 830b1c677df8aef20f24fa11c5dfc3591bf068ee +Author: Jim Evins +Date: 2007-10-15 + + 2007-10-14 Jim Evins + + * docs/libglabels/libglabels-decl-list.txt: + * docs/libglabels/libglabels-sections.txt: + * docs/libglabels/libglabels-undocumented.txt: + * docs/libglabels/tmpl/category.sgml: + * libglabels/category.c: + * libglabels/category.h: + Added lgl_category_get_id_list() and + lgl_category_free_id_list() to have + parity with paper functions. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@680 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/docs/libglabels/libglabels-decl-list.txt +M glabels2/docs/libglabels/libglabels-sections.txt +M glabels2/docs/libglabels/libglabels-undocumented.txt +M glabels2/docs/libglabels/tmpl/category.sgml +M glabels2/libglabels/category.c +M glabels2/libglabels/category.h + +commit 1ec161acb06ebf7440a74f4cf46d927a379980c3 +Author: Jim Evins +Date: 2007-10-13 + + 2007-10-12 Jim Evins + + * docs/libglabels/libglabels-decl-list.txt: + * docs/libglabels/libglabels-sections.txt: + * docs/libglabels/libglabels-undocumented.txt: + * docs/libglabels/tmpl/category.sgml: + * docs/libglabels/tmpl/enums.sgml: + * docs/libglabels/tmpl/libglabels-unused.sgml: + * docs/libglabels/tmpl/paper.sgml: + * docs/libglabels/tmpl/template-struct.sgml: + * libglabels/init.c: + * libglabels/template.c: + * libglabels/template.h: + Another pass at fleshing out the libglabels documentation. + * src/cairo-label-path.c: + * src/cairo-markup-path.c: + * src/label.c: + * src/mini-preview-pixbuf.c: + * src/print-op.c: + * src/print.c: + * src/view.c: + * src/wdgt-media-select.c: + * src/wdgt-mini-preview.c: + * src/wdgt-print-copies.c: + * src/wdgt-print-merge.c: + * src/wdgt-rotate-label.c: + Removed lgl_template_get_first_frame() from libglabels + API and all references. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@679 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/docs/libglabels/libglabels-decl-list.txt +M glabels2/docs/libglabels/libglabels-sections.txt +M glabels2/docs/libglabels/libglabels-undocumented.txt +M glabels2/docs/libglabels/tmpl/category.sgml +M glabels2/docs/libglabels/tmpl/enums.sgml +M glabels2/docs/libglabels/tmpl/libglabels-unused.sgml +M glabels2/docs/libglabels/tmpl/paper.sgml +M glabels2/docs/libglabels/tmpl/template-struct.sgml +M glabels2/libglabels/init.c +M glabels2/libglabels/template.c +M glabels2/libglabels/template.h +M glabels2/src/cairo-label-path.c +M glabels2/src/cairo-markup-path.c +M glabels2/src/label.c +M glabels2/src/mini-preview-pixbuf.c +M glabels2/src/print-op.c +M glabels2/src/print.c +M glabels2/src/view.c +M glabels2/src/wdgt-media-select.c +M glabels2/src/wdgt-mini-preview.c +M glabels2/src/wdgt-print-copies.c +M glabels2/src/wdgt-print-merge.c +M glabels2/src/wdgt-rotate-label.c + +commit 7b4ddd14f3013baa2e305a7d8f724ac5bedea6e1 +Author: Jim Evins +Date: 2007-10-12 + + 2007-10-11 Jim Evins + * configure.in: + Extended checks for deprecated symbols. + * libglabels/template.c: + Removed g_strcasecmp references, which are deprecated. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@678 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/configure.in +M glabels2/libglabels/template.c + +commit d04a1b6e0b58d4b4e97836c936a38c1a9c8039e0 +Author: Jim Evins +Date: 2007-10-10 + + 2007-10-09 Jim Evins + + * src/merge-evolution.c: + Create address book if it does not exist. Also, be more + robust about handling + error conditions -- don't just assume GError has been set. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@677 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/merge-evolution.c + +commit bd566146fa954271ebcb3536251c5c521f0a9e87 +Author: Jim Evins +Date: 2007-10-08 + + 2007-10-08 Jim Evins + + * libglabels/template.c: + * libglabels/xml-template.c: + * src/template-designer.c: + Missed some symbols with libglabels API work + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@676 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/libglabels/template.c +M glabels2/libglabels/xml-template.c +M glabels2/src/template-designer.c + +commit 52befabc0173ee7dcd6e4e662cc60e57c7240c98 +Author: Jim Evins +Date: 2007-10-02 + + 2007-10-01 Jim Evins + + * docs/libglabels/libglabels-decl-list.txt: + * docs/libglabels/libglabels-docs.sgml: + * docs/libglabels/libglabels-sections.txt: + * docs/libglabels/libglabels-undocumented.txt: + * docs/libglabels/tmpl/category.sgml: + * docs/libglabels/tmpl/enums.sgml: + * docs/libglabels/tmpl/init.sgml: + * docs/libglabels/tmpl/libglabels-unused.sgml: + * docs/libglabels/tmpl/paper.sgml: + * docs/libglabels/tmpl/template-construction.sgml: + * docs/libglabels/tmpl/template-db.sgml: + * docs/libglabels/tmpl/template-misc.sgml: + * docs/libglabels/tmpl/template-struct.sgml: + * docs/libglabels/tmpl/template.sgml: + * docs/libglabels/tmpl/xml-category.sgml: + * docs/libglabels/tmpl/xml-template.sgml: + * libglabels/category.h: + * libglabels/init.c: + * libglabels/libglabels-private.h: + * libglabels/paper.h: + * libglabels/template.c: + * libglabels/template.h: + * libglabels/xml-template.h: + Basic documentation framework for libglabels updated. + This still needs some + fleshing out. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@675 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/docs/libglabels/libglabels-decl-list.txt +M glabels2/docs/libglabels/libglabels-docs.sgml +M glabels2/docs/libglabels/libglabels-sections.txt +M glabels2/docs/libglabels/libglabels-undocumented.txt +A glabels2/docs/libglabels/tmpl/category.sgml +M glabels2/docs/libglabels/tmpl/enums.sgml +M glabels2/docs/libglabels/tmpl/init.sgml +M glabels2/docs/libglabels/tmpl/libglabels-unused.sgml +M glabels2/docs/libglabels/tmpl/paper.sgml +A glabels2/docs/libglabels/tmpl/template-construction.sgml +A glabels2/docs/libglabels/tmpl/template-db.sgml +C050 glabels2/docs/libglabels/tmpl/init.sgml +glabels2/docs/libglabels/tmpl/template-misc.sgml +A glabels2/docs/libglabels/tmpl/template-struct.sgml +D glabels2/docs/libglabels/tmpl/template.sgml +A glabels2/docs/libglabels/tmpl/xml-category.sgml +M glabels2/docs/libglabels/tmpl/xml-template.sgml +M glabels2/libglabels/category.h +M glabels2/libglabels/init.c +M glabels2/libglabels/libglabels-private.h +M glabels2/libglabels/paper.h +M glabels2/libglabels/template.c +M glabels2/libglabels/template.h +M glabels2/libglabels/xml-template.h + +commit c1dd8eca6b4bdb77ba47a74b0bc760cb90ecbf7a +Author: Jim Evins +Date: 2007-09-27 + + 2007-09-27 Jim Evins + + * docs/libglabels/libglabels-decl-list.txt: + * docs/libglabels/libglabels-docs.sgml: + * docs/libglabels/libglabels-sections.txt: + * docs/libglabels/libglabels-undocumented.txt: + * docs/libglabels/tmpl/enums.sgml: + * docs/libglabels/tmpl/init.sgml: + * docs/libglabels/tmpl/libglabels-unused.sgml: + * docs/libglabels/tmpl/paper.sgml: + * docs/libglabels/tmpl/template.sgml: + * docs/libglabels/tmpl/xml-paper.sgml: + * docs/libglabels/tmpl/xml-template.sgml: + * docs/libglabels/tmpl/xml.sgml: + * libglabels/Makefile.am: + * libglabels/category.c: + * libglabels/category.h: + * libglabels/enums.h: + * libglabels/init.c: + * libglabels/init.h: + * libglabels/libglabels-private.h: + * libglabels/libglabels.h: + * libglabels/paper.c: + * libglabels/paper.h: + * libglabels/template.c: + * libglabels/template.h: + * libglabels/xml-category.c: + * libglabels/xml-category.h: + * libglabels/xml-paper.c: + * libglabels/xml-paper.h: + * libglabels/xml-template.c: + * libglabels/xml-template.h: + * libglabels/xml.c: + * libglabels/xml.h: + * src/cairo-label-path.c: + * src/cairo-label-path.h: + * src/cairo-markup-path.c: + * src/cairo-markup-path.h: + * src/file.c: + * src/glabels-batch.c: + * src/glabels.c: + * src/label-object.c: + * src/label.c: + * src/label.h: + * src/mini-preview-pixbuf-cache.c: + * src/mini-preview-pixbuf.c: + * src/mini-preview-pixbuf.h: + * src/prefs-dialog.c: + * src/prefs-model.c: + * src/prefs-model.h: + * src/prefs.c: + * src/prefs.h: + * src/print-op.c: + * src/print.c: + * src/template-designer.c: + * src/view-barcode.c: + * src/view-box.c: + * src/view-ellipse.c: + * src/view-image.c: + * src/view-line.c: + * src/view.c: + * src/wdgt-media-select.c: + * src/wdgt-mini-preview.c: + * src/wdgt-mini-preview.h: + * src/wdgt-print-copies.c: + * src/wdgt-print-merge.c: + * src/wdgt-rotate-label.c: + * src/xml-label-04.c: + * src/xml-label.c: + Major cleanup of libglabels API -- this breaks API + compatibility with older + development and stable versions -- as far as I know, + there are currently + no external users of this library yet. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@674 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/docs/libglabels/libglabels-decl-list.txt +M glabels2/docs/libglabels/libglabels-docs.sgml +M glabels2/docs/libglabels/libglabels-sections.txt +M glabels2/docs/libglabels/libglabels-undocumented.txt +M glabels2/docs/libglabels/tmpl/enums.sgml +A glabels2/docs/libglabels/tmpl/init.sgml +M glabels2/docs/libglabels/tmpl/libglabels-unused.sgml +M glabels2/docs/libglabels/tmpl/paper.sgml +M glabels2/docs/libglabels/tmpl/template.sgml +M glabels2/docs/libglabels/tmpl/xml-paper.sgml +M glabels2/docs/libglabels/tmpl/xml-template.sgml +M glabels2/docs/libglabels/tmpl/xml.sgml +M glabels2/libglabels/Makefile.am +M glabels2/libglabels/category.c +M glabels2/libglabels/category.h +M glabels2/libglabels/enums.h +A glabels2/libglabels/init.c +C066 glabels2/libglabels/libglabels.h glabels2/libglabels/init.h +M glabels2/libglabels/libglabels-private.h +M glabels2/libglabels/libglabels.h +M glabels2/libglabels/paper.c +M glabels2/libglabels/paper.h +M glabels2/libglabels/template.c +M glabels2/libglabels/template.h +M glabels2/libglabels/xml-category.c +M glabels2/libglabels/xml-category.h +M glabels2/libglabels/xml-paper.c +M glabels2/libglabels/xml-paper.h +M glabels2/libglabels/xml-template.c +M glabels2/libglabels/xml-template.h +M glabels2/libglabels/xml.c +M glabels2/libglabels/xml.h +M glabels2/src/cairo-label-path.c +M glabels2/src/cairo-label-path.h +M glabels2/src/cairo-markup-path.c +M glabels2/src/cairo-markup-path.h +M glabels2/src/file.c +M glabels2/src/glabels-batch.c +M glabels2/src/glabels.c +M glabels2/src/label-object.c +M glabels2/src/label.c +M glabels2/src/label.h +M glabels2/src/mini-preview-pixbuf-cache.c +M glabels2/src/mini-preview-pixbuf.c +M glabels2/src/mini-preview-pixbuf.h +M glabels2/src/prefs-dialog.c +M glabels2/src/prefs-model.c +M glabels2/src/prefs-model.h +M glabels2/src/prefs.c +M glabels2/src/prefs.h +M glabels2/src/print-op.c +M glabels2/src/print.c +M glabels2/src/template-designer.c +M glabels2/src/view-barcode.c +M glabels2/src/view-box.c +M glabels2/src/view-ellipse.c +M glabels2/src/view-image.c +M glabels2/src/view-line.c +M glabels2/src/view.c +M glabels2/src/wdgt-media-select.c +M glabels2/src/wdgt-mini-preview.c +M glabels2/src/wdgt-mini-preview.h +M glabels2/src/wdgt-print-copies.c +M glabels2/src/wdgt-print-merge.c +M glabels2/src/wdgt-rotate-label.c +M glabels2/src/xml-label-04.c +M glabels2/src/xml-label.c + +commit be11ca532e497806c00fa59c084b0710668226f8 +Author: Jim Evins +Date: 2007-09-15 + + 2007-09-14 Jim Evins + + * src/marshal.list: + * src/label.c: + * src/label.h: + * src/label-object.c: + * src/label-object.h: + * src/label-barcode.c: + * src/label-ellipse.c: + * src/view.c: + * src/view-object.c: + * src/view-barcode.c: + * src/view-box.c: + * src/view-ellipse.c: + * src/view-image.c: + * src/view-line.c: + * src/view-text.c: + Better separation of model from view. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@673 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/label-barcode.c +M glabels2/src/label-ellipse.c +M glabels2/src/label-object.c +M glabels2/src/label-object.h +M glabels2/src/label.c +M glabels2/src/label.h +M glabels2/src/marshal.list +M glabels2/src/view-barcode.c +M glabels2/src/view-box.c +M glabels2/src/view-ellipse.c +M glabels2/src/view-image.c +M glabels2/src/view-line.c +M glabels2/src/view-object.c +M glabels2/src/view-text.c +M glabels2/src/view.c + +commit 9fe68ac1e34bd2d8067d7ba1b11d199d789e6c43 +Author: Jim Evins +Date: 2007-08-22 + + 2007-08-21 Jim Evins + + * src/print-op.c: (create_custom_widget_cb): + Fix problem with force_outline_flag -- don't override + with default. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@672 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/print-op.c + +commit eadd088d7026e249e02e8e72aadc5e24ef2d6669 +Author: Jim Evins +Date: 2007-08-22 + + 2007-08-21 Jim Evins + + * data/dtd/glabels-2.0.dtd: + * libglabels/template.c: + * libglabels/template.h: + * libglabels/xml-template.c: + * src/cairo-markup-path.c: + Added "Markup-rect" element to template format. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@671 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/data/dtd/glabels-2.0.dtd +M glabels2/libglabels/template.c +M glabels2/libglabels/template.h +M glabels2/libglabels/xml-template.c +M glabels2/src/cairo-markup-path.c + +commit f4b0642bf5404f4000d1a5931e24343fc3c39a53 +Author: Jim Evins +Date: 2007-08-22 + + 2007-08-21 Jim Evins + + * configure.in: + Changed version to 2.1.pre5svn. + * src/view.c: (draw_markup_layer): + Do a stroke for each markup path, otherwise multiple + markups + get connected. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@670 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/configure.in +M glabels2/src/view.c + +commit 0add4c0381f437d2ddd4ea70b4af9e496f36fb3f +Author: Jim Evins +Date: 2007-08-18 + + 2007-08-17 Jim Evins + + * configure.in: + Bump libglabels revision numbers for 2.1.4 release. + + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@667 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/configure.in + +commit c37dbc205f6a08254456ca5e6eabf5ddda0c2e85 +Author: Jim Evins +Date: 2007-08-17 + + 2007-08-16 Jim Evins + + * Makefile.am: + Include subdir iec16022-0.2.1. + * NEWS: + * configure.in: + * glabels.spec.in: + Preparation for 2.1.4. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@666 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/Makefile.am +M glabels2/NEWS +M glabels2/configure.in +M glabels2/docs/libglabels/libglabels-decl-list.txt +M glabels2/docs/libglabels/libglabels-undocumented.txt +M glabels2/docs/libglabels/tmpl/enums.sgml +M glabels2/docs/libglabels/tmpl/libglabels-unused.sgml +M glabels2/docs/libglabels/tmpl/libglabels.sgml +M glabels2/docs/libglabels/tmpl/paper.sgml +M glabels2/docs/libglabels/tmpl/template.sgml +M glabels2/docs/libglabels/tmpl/xml-paper.sgml +M glabels2/docs/libglabels/tmpl/xml-template.sgml +M glabels2/docs/libglabels/tmpl/xml.sgml +M glabels2/glabels.spec.in + +commit 23849ca81b5519a810303a58f5fc9c1786f8183c +Author: Jim Evins +Date: 2007-08-11 + + 2007-08-11 Jim Evins + + * po/POTFILES.in: + Updated file list. + * configure.in: + * po/eo.po: + Added Esperanto translation. Provided by Antonio C. + Codazzi "la Filozofo" . + * po/fr.po: + Updated French translation. Provided by Claude Paroz + . + * AUTHORS: + Updated to reflect above translations. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@665 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/AUTHORS +M glabels2/ChangeLog +M glabels2/configure.in +M glabels2/po/POTFILES.in +A glabels2/po/eo.po +M glabels2/po/fr.po + +commit 41fd335f6a64f47c220865ce5e4ea993f3aed19f +Author: Jim Evins +Date: 2007-08-11 + + 2007-08-11 Jim Evins + + * AUTHORS: + * data/templates/avery-iso-templates.xml: + * data/templates/avery-us-templates.xml: + * data/templates/misc-iso-templates.xml: + * data/templates/misc-other-templates.xml: + * data/templates/misc-us-templates.xml: + * data/templates/zweckform-iso-templates.xml: + Caught up with backlog of template submissions. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@664 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/AUTHORS +M glabels2/ChangeLog +M glabels2/data/templates/avery-iso-templates.xml +M glabels2/data/templates/avery-us-templates.xml +M glabels2/data/templates/misc-iso-templates.xml +M glabels2/data/templates/misc-other-templates.xml +M glabels2/data/templates/misc-us-templates.xml +M glabels2/data/templates/zweckform-iso-templates.xml + +commit 4d42d2cdb0267a4a7a702ddea96ad03afe5774ce +Author: Jim Evins +Date: 2007-08-11 + + 2007-08-10 Jim Evins + + * src/bc-postnet.c: (gl_barcode_postnet_new): + * src/bc.c: + Added support for Brazilian CEPNet barcodes. This is + simply an + instance of the US POSTNET format with 8 digits. + Patch supplied + by Mário Meyer in bug # 1768792. + * AUTHORS: + Updated acknowledgments to reflect above patch and + recent shuffling + of underlying technology. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@663 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/AUTHORS +M glabels2/ChangeLog +M glabels2/src/bc-postnet.c +M glabels2/src/bc.c + +commit c6ae0e48ca2e5c3675d863a3f0ff82c54b952400 +Author: Jim Evins +Date: 2007-08-10 + + Some updates to TODO. + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@662 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/TODO + +commit 71660d95ad493fc253582ef351fdffe5a143ed99 +Author: Jim Evins +Date: 2007-05-13 + + 2007-05-13 Jim Evins + + * src/merge-text.c: (parse_line), (parse_field): + Remove leading and trailing spaces from CSV fields, + unless quoted. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@661 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/merge-text.c + +commit 76cb751459575fbd6a6ccfbd26aac9cb28bcb974 +Author: Jim Evins +Date: 2007-05-10 + + 2007-05-09 Jim Evins + + * src/object-editor-bc-page.c: + * src/object-editor-data-page.c: + * src/object-editor-fill-page.c: + * src/object-editor-image-page.c: + * src/object-editor-line-page.c: + * src/object-editor-lsize-page.c: + * src/object-editor-position-page.c: + * src/object-editor-private.h: + * src/object-editor-shadow-page.c: + * src/object-editor-size-page.c: + * src/object-editor-text-page.c: + * src/object-editor.c: + * src/prefs-dialog.c: + * src/template-designer.c: + * src/ui-property-bar.c: + * src/wdgt-media-select.c: + Replaced signal block/unblock pairs with simple flags. + This reduces + some code clutter, hopefully making it easier to read. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@660 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/object-editor-bc-page.c +M glabels2/src/object-editor-data-page.c +M glabels2/src/object-editor-fill-page.c +M glabels2/src/object-editor-image-page.c +M glabels2/src/object-editor-line-page.c +M glabels2/src/object-editor-lsize-page.c +M glabels2/src/object-editor-position-page.c +M glabels2/src/object-editor-private.h +M glabels2/src/object-editor-shadow-page.c +M glabels2/src/object-editor-size-page.c +M glabels2/src/object-editor-text-page.c +M glabels2/src/object-editor.c +M glabels2/src/prefs-dialog.c +M glabels2/src/template-designer.c +M glabels2/src/ui-property-bar.c +M glabels2/src/wdgt-media-select.c + +commit 63c94320e22a52c443f063092dee5256042eff52 +Author: Jim Evins +Date: 2007-05-05 + + 2007-05-05 Jim Evins + + * src/template-designer.c: (apply_cb): + Add new template to mini-preview pixbuf cache. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@659 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/template-designer.c + +commit 0e067c75fb73a72914d789d2922a3828523c11a8 +Author: Jim Evins +Date: 2007-05-03 + + 2007-05-03 Jim Evins + + * src/label-image.c: (gl_label_image_init), (draw_object): + Scale default pixbuf up, to prevent bluring. + Use cairo_fill to + render image. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@658 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/label-image.c + +commit d82e7fed684814b37b3306114b66faaaa2336a1b +Author: Jim Evins +Date: 2007-05-03 + + 2007-05-02 Jim Evins + + * src/view.c: (draw_select_region_layer), + (motion_notify_event_cb), + (button_release_event_cb): + Removed attempt at rendering optimization by clipping + the updates + to areas affected -- this actually seemed to hurt update + performance. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@657 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/view.c + +commit 6c00fe9f6e32f702f5887d6145f8b88e2e09de3d +Author: Jim Evins +Date: 2007-05-01 + + 2007-04-30 Jim Evins + + * src/color.h: + * src/color.c: (gl_color_shadow), (gl_color_node_new_default), + (gl_color_node_equal), (gl_color_node_expand): + * src/label-barcode.c: (draw_object): + * src/label-box.c: (draw_object), (draw_shadow): + * src/label-ellipse.c: (draw_object), (draw_shadow): + * src/label-line.c: (draw_object), (draw_shadow): + * src/label-text.c: (draw_object), (draw_shadow): + * src/wdgt-mini-preview.c: (draw_shadow), (draw_labels): + * src/wdgt-rotate-label.c: (drawingarea_update): + Some cleanup to color related code. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@656 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/color.c +M glabels2/src/color.h +M glabels2/src/label-barcode.c +M glabels2/src/label-box.c +M glabels2/src/label-ellipse.c +M glabels2/src/label-line.c +M glabels2/src/label-text.c +M glabels2/src/wdgt-mini-preview.c +M glabels2/src/wdgt-rotate-label.c + +commit 4ca379add847194fa1375fe127e9800367f655e1 +Author: Jim Evins +Date: 2007-05-01 + + 2007-04-30 Jim Evins + + * src/label.h: + Added glLabelRegion structure type. + * src/label-object.c: (gl_label_object_get_extent): + * src/label-object.h: + Modified gl_label_object_get_extent() to fill in a + glLabelRegion struct. + * src/view.h: + * src/view.c: (gl_view_update_region), (draw_select_region_layer), + (gl_view_select_region), (gl_view_align_selection_left), + (gl_view_align_selection_right), + (gl_view_align_selection_hcenter), + (gl_view_align_selection_top), (gl_view_align_selection_bottom), + (gl_view_align_selection_vcenter), + (gl_view_center_selection_horiz), (gl_view_center_selection_vert), + (gl_view_move_selection), (gl_view_can_selection_text), + (motion_notify_event_cb), (button_press_event_cb), + (button_release_event_cb): + - Reconcile with new gl_label_object_get_extent() API. + - Use glLabelRegion for view->select_region. + - Added gl_view_update_region() to clip updates to region. + - Use gl_view_update_region() during manipulation of + view->select_region. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@655 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/label-object.c +M glabels2/src/label-object.h +M glabels2/src/label.h +M glabels2/src/view.c +M glabels2/src/view.h + +commit b6893fe7ca71c477320ba676d3805e8561d393ad +Author: Jim Evins +Date: 2007-04-27 + + 2007-04-26 Jim Evins + + * src/mini-preview-pixbuf.c: (draw_paper), (draw_label_outlines), + (draw_label_outline): + * src/print.c: (print_crop_marks), (draw_outline): + * src/view-object.c: (gl_view_object_draw_handles): + * src/view.c: (draw_bg_layer), (draw_grid_layer), + (draw_markup_layer), (draw_fg_layer), (draw_select_region_layer): + * src/wdgt-mini-preview.c: (draw_paper), (draw_labels): + * src/wdgt-rotate-label.c: (drawingarea_update): + Added defines for various magic numbers. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@654 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/mini-preview-pixbuf.c +M glabels2/src/print.c +M glabels2/src/view-object.c +M glabels2/src/view.c +M glabels2/src/wdgt-mini-preview.c +M glabels2/src/wdgt-rotate-label.c + +commit 9f454a0a6e7c34a33cbe829be4cfd5374a4cde9a +Author: Jim Evins +Date: 2007-04-26 + + 2007-04-25 Jim Evins + + * src/label-text.c: (get_size), (draw_object), (draw_shadow): + Scale text down. Cairo seems to render text too large. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@653 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/label-text.c + +commit 06ddcbb495e31a450b36bd7a90b7760d5ca9553a +Author: Jim Evins +Date: 2007-04-25 + + 2007-04-25 Jim Evins + + * src/view.h: + * src/view.c: (gl_view_update), (expose_cb), + (motion_notify_event_cb), (button_press_event_cb), + (button_release_event_cb): + - Try not to let updates get backed up. + - Grab pointer when doing any drag operations. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@652 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/view.c +M glabels2/src/view.h + +commit 50418d4af1223ea832c83b09ac0e67027f97fd78 +Author: Jim Evins +Date: 2007-04-12 + + 2007-04-11 Jim Evins + + * src/cairo-label-path.c: (gl_cairo_label_path), + (gl_cairo_rect_label_path), (gl_cairo_round_label_path), + (gl_cairo_cd_label_path): + * src/cairo-label-path.h: + * src/mini-preview-pixbuf.c: (draw_paper), (draw_label_outlines), + (draw_label_outline): + * src/print.c: (draw_outline), (clip_to_outline): + * src/view.c: (draw_bg_layer), (draw_fg_layer): + * src/wdgt-mini-preview.c: (draw_labels): + * src/wdgt-rotate-label.c: (drawingarea_update): + Modified to universally use gl_cairo_label_path() to + create paths + for labels. Added shadow to mini preview in rotate + widget. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@651 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/cairo-label-path.c +M glabels2/src/cairo-label-path.h +M glabels2/src/mini-preview-pixbuf.c +M glabels2/src/print.c +M glabels2/src/view.c +M glabels2/src/wdgt-mini-preview.c +M glabels2/src/wdgt-rotate-label.c + +commit 964caeca001e6f6b7c26d5beb6dc5cc34b7debba +Author: Jim Evins +Date: 2007-04-10 + + 2007-04-10 Jim Evins + + * libglabels/template.h: + * libglabels/template.c: (gl_template_get_name_list_unique), + (gl_template_get_name_list_all), (gl_template_from_name): + Modified libglabels to allow you to get a list of all + template names + including all aliases or just a list of primary names + of each unique + template. + * src/Makefile.am: + * src/file.c: (gl_file_properties): + * src/glabels.c: (main): + * src/mini-preview-pixbuf-cache.h: + * src/mini-preview-pixbuf-cache.c: + * src/wdgt-media-select.c: (gl_wdgt_media_select_construct), + (filter_changed_cb), (load_list): + Added mini-preview pixbuf cache, so that only one + mini-preview is + needed for a unique template and gets reused for all + aliases. These + pixbufs will also live for the life of the program so + they are not + rebuilt everytime a new label dialog is invoked. + * src/mini-preview-pixbuf.c: (draw_paper), + (draw_rect_label_outline), (draw_round_label_outline), + (draw_cd_label_outline): + Removed some comment artifacts. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@650 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/libglabels/template.c +M glabels2/libglabels/template.h +M glabels2/src/Makefile.am +M glabels2/src/file.c +M glabels2/src/glabels.c +A glabels2/src/mini-preview-pixbuf-cache.c +A glabels2/src/mini-preview-pixbuf-cache.h +M glabels2/src/mini-preview-pixbuf.c +M glabels2/src/wdgt-media-select.c + +commit b84b6dc42d8058bf402d94381a1c04f000b1eaa5 +Author: Jim Evins +Date: 2007-04-05 + + 2007-04-04 Jim Evins + + * src/mini-preview-pixbuf.c: (gl_mini_preview_pixbuf_new), + (draw_paper), (draw_label_outlines), (draw_rect_label_outline), + (draw_round_label_outline), (draw_cd_label_outline): + * src/wdgt-media-select.c: (load_list): + * src/wdgt-rotate-label.c: (draw_cd_label_outline): + Cosmetic enhancments to mini previews. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@649 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/mini-preview-pixbuf.c +M glabels2/src/wdgt-media-select.c +M glabels2/src/wdgt-rotate-label.c + +commit 1be928597fdd42d641cc0a04d772e82254e54483 +Author: Jim Evins +Date: 2007-04-05 + + 2007-04-04 Jim Evins + + * src/ui-property-bar.c: (gl_ui_property_bar_finalize), + (gl_ui_property_bar_construct): + Save copy of GladeXML tree so that we don't lose tooltips. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@648 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/ui-property-bar.c + +commit 9b65ed5d46a7f5dc3c4e8f2aedc0e770d98652a1 +Author: Jim Evins +Date: 2007-04-03 + + 2007-04-02 Jim Evins + + * src/merge-properties-dialog.c: + * src/new-label-dialog.c: + * src/object-editor.c: + * src/prefs-dialog.c: + * src/print-op.c: + * src/template-designer.c: + * src/ui-property-bar.c: + * src/wdgt-media-select.c: + * src/wdgt-rotate-label.c: + Fixed several memory leaks. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@647 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/merge-properties-dialog.c +M glabels2/src/new-label-dialog.c +M glabels2/src/object-editor.c +M glabels2/src/prefs-dialog.c +M glabels2/src/print-op.c +M glabels2/src/template-designer.c +M glabels2/src/ui-property-bar.c +M glabels2/src/wdgt-media-select.c +M glabels2/src/wdgt-rotate-label.c + +commit 9ee204c455957fe69435d198bfe5dea1a76c4dcf +Author: Jim Evins +Date: 2007-04-02 + + 2007-04-01 Jim Evins + + * src/label-text.c: (gl_label_text_init), (copy), + (gl_label_text_set_lines), (buffer_changed_cb), (get_size), + (set_font_family), (set_font_size), (set_font_weight), + (set_font_italic_flag), (set_text_alignment), + (set_text_line_spacing): + Cache object size, so that expensive extent calculations + are only done + when needed. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@646 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/label-text.c + +commit f1f7eedc35c3d9b79d20df87a3bd9fa04d5f4801 +Author: Jim Evins +Date: 2007-03-31 + + 2007-03-30 Jim Evins + + * src/prefs-model.c: (gl_prefs_model_load_settings): + Default to an unlimited list of recent documents, since + this parameter + seems to be pre-filter anyway. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@645 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/prefs-model.c + +commit 2bc6be422a9c43e13323282eac6561a1dc0a040a +Author: Jim Evins +Date: 2007-03-31 + + 2007-03-30 Jim Evins + + * src/label-box.c: (draw_shadow): + * src/label-ellipse.c: (draw_shadow): + Added missing shadow fill. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@644 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/label-box.c +M glabels2/src/label-ellipse.c + +commit 509bffa75a8b51d08dfd2103c309492c73572fa1 +Author: Jim Evins +Date: 2007-03-29 + + 2007-03-28 Jim Evins + + * src/ui-commands.c: (gl_ui_cmd_file_print): + Unreferencing the print operation sometimes crashes. + Just don't do it + right now. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@643 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/ui-commands.c + +commit 98764f06e25c92bfbd923aaa2b0733ac5a98b888 +Author: Jim Evins +Date: 2007-03-29 + + 2007-03-28 Jim Evins + + * src/print-op.c: (gl_print_op_construct), + (gl_print_op_get_settings), (gl_print_op_set_settings), + (gl_print_op_free_settings), (create_custom_widget_cb): + * src/print-op.h: + * src/ui-commands.c: (gl_ui_cmd_file_print): + * src/window.c: (gl_window_init): + * src/window.h: + Save print settings and custom settings between print + operations + on the same window. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@642 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/print-op.c +M glabels2/src/print-op.h +M glabels2/src/ui-commands.c +M glabels2/src/window.c +M glabels2/src/window.h + +commit a25478bf5ee5750eace1a8e62017dac72ecf908d +Author: Jim Evins +Date: 2007-03-25 + + 2007-03-24 Jim Evins + + * src/object-editor-image-page.c: + (gl_object_editor_prepare_image_page), + (gl_object_editor_set_image), (img_selection_changed_cb): + Workaround for GtkFileChooserButton bug # 327243. + This the root + cause for gLabels bug # 1192884. I have actually observed + 3 delayed + "selection-changed" signals -- the first 2 return NULL -- + this is + what caused the image to reset to the default followed + by setting + it back to the original image, trying to fit it into a + new bounding + box. This sequence of events is much more evident with + the new + cairo rendering. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@641 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/object-editor-image-page.c + +commit 80da57dd539f5b6d5118703b7b005740561b645a +Author: Jim Evins +Date: 2007-03-24 + + 2007-03-23 Jim Evins + + Merged all changes from experimental cairo branch to trunk. + Trunk no longer depends on libgnomecanvas or libgnomeprint[ui]. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@639 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/configure.in +M glabels2/src/Makefile.am +M glabels2/src/base64.c +M glabels2/src/bc-iec16022.c +A glabels2/src/cairo-ellipse-path.c +C070 glabels2/src/xml-label-191.h glabels2/src/cairo-ellipse-path.h +A glabels2/src/cairo-label-path.c +C069 glabels2/src/xml-label-191.h glabels2/src/cairo-label-path.h +A glabels2/src/cairo-markup-path.c +R067 glabels2/src/xml-label-191.h glabels2/src/cairo-markup-path.h +D glabels2/src/canvas-hacktext.c +D glabels2/src/canvas-hacktext.h +M glabels2/src/color.c +M glabels2/src/debug.c +M glabels2/src/debug.h +M glabels2/src/file.c +M glabels2/src/glabels-batch.c +M glabels2/src/glabels.c +M glabels2/src/label-barcode.c +M glabels2/src/label-box.c +M glabels2/src/label-ellipse.c +M glabels2/src/label-image.c +M glabels2/src/label-line.c +M glabels2/src/label-object.c +M glabels2/src/label-object.h +M glabels2/src/label-text.c +M glabels2/src/label-text.h +M glabels2/src/label.c +M glabels2/src/label.h +M glabels2/src/merge-properties-dialog.c +M glabels2/src/merge.c +M glabels2/src/new-label-dialog.c +M glabels2/src/object-editor-bc-page.c +M glabels2/src/object-editor-data-page.c +M glabels2/src/object-editor-edit-page.c +M glabels2/src/object-editor-fill-page.c +M glabels2/src/object-editor-image-page.c +M glabels2/src/object-editor-line-page.c +M glabels2/src/object-editor-private.h +M glabels2/src/object-editor-shadow-page.c +M glabels2/src/object-editor-text-page.c +M glabels2/src/object-editor.c +M glabels2/src/pixbuf-cache.c +M glabels2/src/print-op.c +M glabels2/src/print.c +M glabels2/src/recent.c +M glabels2/src/stock.c +M glabels2/src/template-designer.c +M glabels2/src/text-node.c +M glabels2/src/ui-commands.c +M glabels2/src/ui-property-bar.c +M glabels2/src/ui.c +M glabels2/src/view-barcode.c +M glabels2/src/view-barcode.h +M glabels2/src/view-box.c +M glabels2/src/view-box.h +M glabels2/src/view-ellipse.c +M glabels2/src/view-ellipse.h +D glabels2/src/view-highlight.c +D glabels2/src/view-highlight.h +M glabels2/src/view-image.c +M glabels2/src/view-image.h +M glabels2/src/view-line.c +M glabels2/src/view-line.h +M glabels2/src/view-object.c +M glabels2/src/view-object.h +M glabels2/src/view-text.c +M glabels2/src/view-text.h +M glabels2/src/view.c +M glabels2/src/view.h +M glabels2/src/wdgt-media-select.c +M glabels2/src/wdgt-print-copies.c +M glabels2/src/wdgt-print-merge.c +M glabels2/src/window.c +M glabels2/src/xml-label-04.c +D glabels2/src/xml-label-191.c +M glabels2/src/xml-label.c + +commit d105b1574ae720348f30ca814fb494e4d44fd344 +Author: Jim Evins +Date: 2007-02-18 + + 2007-02-18 Jim Evins + + * src/bc.h: + GNOME_FONT_BOOK changed to PANGO_WEIGHT_NORMAL. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@615 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/bc.h + +commit 70d3926fcf186c46f553e1ea58a1072a9ab4c68f +Author: Jim Evins +Date: 2007-02-14 + + 2007-02-14 Jim Evins + + * src/base64.c: + * src/base64.h: + * src/bc-gnubarcode.c: + * src/bc-gnubarcode.h: + * src/bc-postnet.c: + * src/bc-postnet.h: + * src/bc.c: + * src/bc.h: + * src/canvas-hacktext.c: + * src/canvas-hacktext.h: + * src/debug.c: + * src/debug.h: + * src/file.c: + * src/file.h: + * src/glabels.c: + * src/hig.h: + * src/label-barcode.c: + * src/label-barcode.h: + * src/label-box.c: + * src/label-box.h: + * src/label-ellipse.c: + * src/label-ellipse.h: + * src/label-image.c: + * src/label-image.h: + * src/label-line.c: + * src/label-line.h: + * src/label-object.c: + * src/label-object.h: + * src/label-text.c: + * src/label-text.h: + * src/label.c: + * src/label.h: + * src/merge-evolution.c: + * src/merge-evolution.h: + * src/merge-init.c: + * src/merge-init.h: + * src/merge-properties-dialog.c: + * src/merge-properties-dialog.h: + * src/merge-text.c: + * src/merge-text.h: + * src/merge-vcard.c: + * src/merge-vcard.h: + * src/merge.c: + * src/merge.h: + * src/mini-preview-pixbuf.h: + * src/new-label-dialog.c: + * src/new-label-dialog.h: + * src/object-editor-bc-page.c: + * src/object-editor-data-page.c: + * src/object-editor-edit-page.c: + * src/object-editor-fill-page.c: + * src/object-editor-image-page.c: + * src/object-editor-line-page.c: + * src/object-editor-lsize-page.c: + * src/object-editor-position-page.c: + * src/object-editor-private.h: + * src/object-editor-size-page.c: + * src/object-editor-text-page.c: + * src/object-editor.c: + * src/object-editor.h: + * src/pixbuf-cache.c: + * src/pixbuf-cache.h: + * src/prefs-dialog.c: + * src/prefs-dialog.h: + * src/prefs-model.c: + * src/prefs-model.h: + * src/prefs.c: + * src/prefs.h: + * src/print-op.c: + * src/stock.c: + * src/stock.h: + * src/template-designer.c: + * src/text-node.c: + * src/text-node.h: + * src/ui-commands.c: + * src/ui-commands.h: + * src/ui-property-bar.c: + * src/ui-property-bar.h: + * src/ui-sidebar.c: + * src/ui-sidebar.h: + * src/ui-util.c: + * src/ui-util.h: + * src/ui.c: + * src/ui.h: + * src/util.c: + * src/util.h: + * src/view-barcode.c: + * src/view-barcode.h: + * src/view-box.c: + * src/view-box.h: + * src/view-ellipse.c: + * src/view-ellipse.h: + * src/view-highlight.c: + * src/view-highlight.h: + * src/view-image.c: + * src/view-image.h: + * src/view-line.c: + * src/view-line.h: + * src/view-object.c: + * src/view-object.h: + * src/view-text.c: + * src/view-text.h: + * src/view.c: + * src/view.h: + * src/wdgt-chain-button.c: + * src/wdgt-chain-button.h: + * src/wdgt-media-select.c: + * src/wdgt-mini-preview.c: + * src/wdgt-print-copies.c: + * src/wdgt-print-copies.h: + * src/wdgt-print-merge.c: + * src/wdgt-print-merge.h: + * src/wdgt-rotate-label.c: + * src/window.h: + * src/xml-label-04.c: + * src/xml-label-04.h: + * src/xml-label-191.c: + * src/xml-label-191.h: + * src/xml-label.c: + * src/xml-label.h: + + Assorted superficial cleanup. Including: + - Use G_DEFINE_TYPE for all objects. + - Reconcile style of all class initializer functions + - Reconcile style of all finalize functions + - Add emacs mode line to all source files + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@614 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/base64.c +M glabels2/src/base64.h +M glabels2/src/bc-gnubarcode.c +M glabels2/src/bc-gnubarcode.h +M glabels2/src/bc-postnet.c +M glabels2/src/bc-postnet.h +M glabels2/src/bc.c +M glabels2/src/bc.h +M glabels2/src/canvas-hacktext.c +M glabels2/src/canvas-hacktext.h +M glabels2/src/debug.c +M glabels2/src/debug.h +M glabels2/src/file.c +M glabels2/src/file.h +M glabels2/src/glabels.c +M glabels2/src/hig.h +M glabels2/src/label-barcode.c +M glabels2/src/label-barcode.h +M glabels2/src/label-box.c +M glabels2/src/label-box.h +M glabels2/src/label-ellipse.c +M glabels2/src/label-ellipse.h +M glabels2/src/label-image.c +M glabels2/src/label-image.h +M glabels2/src/label-line.c +M glabels2/src/label-line.h +M glabels2/src/label-object.c +M glabels2/src/label-object.h +M glabels2/src/label-text.c +M glabels2/src/label-text.h +M glabels2/src/label.c +M glabels2/src/label.h +M glabels2/src/merge-evolution.c +M glabels2/src/merge-evolution.h +M glabels2/src/merge-init.c +M glabels2/src/merge-init.h +M glabels2/src/merge-properties-dialog.c +M glabels2/src/merge-properties-dialog.h +M glabels2/src/merge-text.c +M glabels2/src/merge-text.h +M glabels2/src/merge-vcard.c +M glabels2/src/merge-vcard.h +M glabels2/src/merge.c +M glabels2/src/merge.h +M glabels2/src/mini-preview-pixbuf.h +M glabels2/src/new-label-dialog.c +M glabels2/src/new-label-dialog.h +M glabels2/src/object-editor-bc-page.c +M glabels2/src/object-editor-data-page.c +M glabels2/src/object-editor-edit-page.c +M glabels2/src/object-editor-fill-page.c +M glabels2/src/object-editor-image-page.c +M glabels2/src/object-editor-line-page.c +M glabels2/src/object-editor-lsize-page.c +M glabels2/src/object-editor-position-page.c +M glabels2/src/object-editor-private.h +M glabels2/src/object-editor-size-page.c +M glabels2/src/object-editor-text-page.c +M glabels2/src/object-editor.c +M glabels2/src/object-editor.h +M glabels2/src/pixbuf-cache.c +M glabels2/src/pixbuf-cache.h +M glabels2/src/prefs-dialog.c +M glabels2/src/prefs-dialog.h +M glabels2/src/prefs-model.c +M glabels2/src/prefs-model.h +M glabels2/src/prefs.c +M glabels2/src/prefs.h +M glabels2/src/print-op.c +M glabels2/src/stock.c +M glabels2/src/stock.h +M glabels2/src/template-designer.c +M glabels2/src/text-node.c +M glabels2/src/text-node.h +M glabels2/src/ui-commands.c +M glabels2/src/ui-commands.h +M glabels2/src/ui-property-bar.c +M glabels2/src/ui-property-bar.h +M glabels2/src/ui-sidebar.c +M glabels2/src/ui-sidebar.h +M glabels2/src/ui-util.c +M glabels2/src/ui-util.h +M glabels2/src/ui.c +M glabels2/src/ui.h +M glabels2/src/util.c +M glabels2/src/util.h +M glabels2/src/view-barcode.c +M glabels2/src/view-barcode.h +M glabels2/src/view-box.c +M glabels2/src/view-box.h +M glabels2/src/view-ellipse.c +M glabels2/src/view-ellipse.h +M glabels2/src/view-highlight.c +M glabels2/src/view-highlight.h +M glabels2/src/view-image.c +M glabels2/src/view-image.h +M glabels2/src/view-line.c +M glabels2/src/view-line.h +M glabels2/src/view-object.c +M glabels2/src/view-object.h +M glabels2/src/view-text.c +M glabels2/src/view-text.h +M glabels2/src/view.c +M glabels2/src/view.h +M glabels2/src/wdgt-chain-button.c +M glabels2/src/wdgt-chain-button.h +M glabels2/src/wdgt-media-select.c +M glabels2/src/wdgt-mini-preview.c +M glabels2/src/wdgt-print-copies.c +M glabels2/src/wdgt-print-copies.h +M glabels2/src/wdgt-print-merge.c +M glabels2/src/wdgt-print-merge.h +M glabels2/src/wdgt-rotate-label.c +M glabels2/src/window.c +M glabels2/src/window.h +M glabels2/src/xml-label-04.c +M glabels2/src/xml-label-04.h +M glabels2/src/xml-label-191.c +M glabels2/src/xml-label-191.h +M glabels2/src/xml-label.c +M glabels2/src/xml-label.h + +commit 665381a70f6353b094d0b1a1c4307b70a6e2b1be +Author: Jim Evins +Date: 2007-02-07 + + 2007-02-06 Jim Evins + + Assorted cleanup and removal of deprecated items. + + * src/splash.c: + * src/splash.h: + * src/Makefile.am: + Removed annoying splash screen. + * src/glabels-batch.c: (main): + * src/glabels.c: (main): + Converted from popt to GOption. + * src/object-editor-shadow-page.c: + (gl_object_editor_set_shadow_state): + Removed deprecated method on GtkToggleButton. + * src/ui-commands.c: (gl_ui_cmd_help_about): + Removed dependency on libgnomui/qnome-url.h. + * src/template-designer.c: + Removed dependency on libgnome/gnome-program.h. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@613 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/Makefile.am +M glabels2/src/glabels-batch.c +M glabels2/src/glabels.c +M glabels2/src/object-editor-shadow-page.c +D glabels2/src/splash.c +D glabels2/src/splash.h +M glabels2/src/template-designer.c +M glabels2/src/ui-commands.c + +commit 0e1789c306720da62df98918ddd2b9d724f446dd +Author: Jim Evins +Date: 2007-02-05 + + 2007-02-04 Jim Evins + + * src/color.c: + * src/color.h: + * src/prefs-model.c: + * src/print.c: (draw_text_object): + * src/wdgt-mini-preview.c: (gl_wdgt_mini_preview_construct): + Removed GnomeCanvas artifacts from color.[ch] and + related modules. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@612 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/color.c +M glabels2/src/color.h +M glabels2/src/prefs-model.c +M glabels2/src/print.c +M glabels2/src/wdgt-mini-preview.c + +commit 8fba57d0f464c7fc6c08145ce8dc6f70eb693ac9 +Author: Jim Evins +Date: 2007-02-05 + + 2007-02-04 Jim Evins + + * src/wdgt-mini-preview.c: + * src/wdgt-mini-preview.h: + Ported widget from GnomeCanvas to Cairo. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@611 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/wdgt-mini-preview.c +M glabels2/src/wdgt-mini-preview.h + +commit be3e30869fa93195007e75dc2646887490a8776a +Author: Jim Evins +Date: 2007-02-03 + + 2007-02-03 Jim Evins + + * data/glade/template-designer.glade: + * src/template-designer.c: + * src/template-designer.h: + Ported GnomeDruid to GtkAssistant. Since libglade + does not + yet support the GtkAssistant and we derive directly from + the Assistant, the pages are layed out in a GtkNotebook in + the glade description -- we then append each page to the + assistant. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@610 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/data/glade/template-designer.glade +M glabels2/src/template-designer.c +M glabels2/src/template-designer.h + +commit ab68c667d1b265e30fb49264231c48158904922f +Author: Jim Evins +Date: 2007-01-26 + + 2007-01-25 Jim Evins + + * data/glade/object-editor.glade: + Added dummy page to notebook, to prevent shadow page from + becoming the default current page at creation. + * src/view-box.c: (construct_properties_editor): + * src/view-ellipse.c: (construct_properties_editor): + * src/view-line.c: (construct_properties_editor): + * src/view-text.c: (construct_properties_editor): + Reconciled order of params. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@609 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/data/glade/object-editor.glade +M glabels2/src/view-box.c +M glabels2/src/view-ellipse.c +M glabels2/src/view-line.c +M glabels2/src/view-text.c + +commit ac594875e6e9bd1725ce7c1a2035b2b14ae4cf83 +Author: Jim Evins +Date: 2007-01-20 + + 2007-01-19 Jim Evins + + * src/label-barcode.h: + * src/label-object.c: (gl_label_object_set_font_weight), + (gl_label_object_set_text_alignment), + (gl_label_object_get_font_weight), + (gl_label_object_get_text_alignment): + * src/label-object.h: + * src/label-text.c: (gl_label_text_instance_init), (copy), + (get_size), (set_font_family), (set_font_weight), + (set_text_alignment), (get_font_weight), (get_text_alignment): + * src/label-text.h: + * src/object-editor-text-page.c: + (gl_object_editor_prepare_text_page), + (gl_object_editor_set_font_family), + (gl_object_editor_set_font_weight), + (gl_object_editor_get_font_weight), + (gl_object_editor_set_text_alignment), + (gl_object_editor_get_text_alignment), + (gl_object_editor_set_text_color): + * src/object-editor.h: + * src/prefs-dialog.c: (construct_object_page), + (update_object_page_from_prefs), (update_prefs_from_object_page): + * src/prefs-model.c: (gl_prefs_model_save_settings), + (gl_prefs_model_load_settings): + * src/prefs-model.h: + * src/print.c: (draw_text_object): + * src/ui-property-bar.c: (gl_ui_property_bar_construct), + (reset_to_default_properties), (update_text_properties), + (font_bold_toggled_cb), (text_align_toggled_cb): + * src/ui-sidebar.c: + * src/util.c: (gl_util_align_to_string), + (gl_util_string_to_align), + (gl_util_weight_to_string), (gl_util_string_to_weight), + (gl_util_get_font_family_list), (gl_util_font_family_list_free): + * src/util.h: + * src/view-text.c: (update_object_from_editor_cb), + (update_editor_from_object_cb), (draw_hacktext), (draw_cursor): + * src/view.c: (gl_view_set_selection_text_alignment), + (gl_view_set_default_text_alignment), + (gl_view_get_default_text_alignment): + * src/view.h: + * src/xml-label-04.c: (xml04_parse_text_props): + * src/xml-label-191.c: (xml191_parse_text_props): + * src/xml-label.c: (xml_parse_object_text), + (xml_parse_toplevel_span), (xml_create_object_text), + (xml_create_toplevel_span): + Converted all model internals to Pango. GnomeFont + remains in + view until GnomeCanvas can be replaced with a cairo-based canvas. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@608 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/label-barcode.h +M glabels2/src/label-object.c +M glabels2/src/label-object.h +M glabels2/src/label-text.c +M glabels2/src/label-text.h +M glabels2/src/object-editor-text-page.c +M glabels2/src/object-editor.h +M glabels2/src/prefs-dialog.c +M glabels2/src/prefs-model.c +M glabels2/src/prefs-model.h +M glabels2/src/print.c +M glabels2/src/ui-property-bar.c +M glabels2/src/ui-sidebar.c +M glabels2/src/util.c +M glabels2/src/util.h +M glabels2/src/view-text.c +M glabels2/src/view.c +M glabels2/src/view.h +M glabels2/src/xml-label-04.c +M glabels2/src/xml-label-191.c +M glabels2/src/xml-label.c + +commit 151648533ca01ebdc95b8c28bb261ab8f4cdce50 +Author: Jim Evins +Date: 2007-01-17 + + 2007-01-17 Jim Evins + + * src/Makefile.am: + * src/hig.c: + Deleted hig.c. + * src/hig.h: + * src/wdgt-print-copies.c: (gl_wdgt_print_copies_get_type), + (gl_wdgt_print_copies_construct): + * src/wdgt-print-copies.h: + * src/wdgt-print-merge.c: (gl_wdgt_print_merge_get_type), + (gl_wdgt_print_merge_construct): + * src/wdgt-print-merge.h: + Removed all remaining HIG wrapper widgets. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@607 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/Makefile.am +D glabels2/src/hig.c +M glabels2/src/hig.h +M glabels2/src/wdgt-print-copies.c +M glabels2/src/wdgt-print-copies.h +M glabels2/src/wdgt-print-merge.c +M glabels2/src/wdgt-print-merge.h + +commit f628d64bc327e037fa58c8c11f7919b62b182cb6 +Author: Jim Evins +Date: 2007-01-17 + + 2007-01-16 Jim Evins + + * src/Makefile.am: + * src/print-dialog.c: + * src/print-dialog.h: + * src/print-op.c: + * src/print-op.h: + * src/template-designer.c: (print_test_cb): + * src/ui-commands.c: (gl_ui_cmd_file_print): + * src/print.c: + Renamed PrintDialog to PrintOp. Added constructor + for batch + printing. + * src/glabels-batch.c: (main): + Converted to use new PrintOp object for printing. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@606 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/Makefile.am +M glabels2/src/glabels-batch.c +D glabels2/src/print-dialog.c +D glabels2/src/print-dialog.h +A glabels2/src/print-op.c +A glabels2/src/print-op.h +M glabels2/src/print.c +M glabels2/src/template-designer.c +M glabels2/src/ui-commands.c + +commit 4c211331406f4acb734bbc70bf9fc713e0afb196 +Author: Jim Evins +Date: 2007-01-16 + + 2007-01-15 Jim Evins + + * data/glade/Makefile.am: + * data/glade/print-custom-widget.glade: + * src/print-dialog.c: + * src/print-dialog.h: + * src/print.c: + * src/print.h: + * src/template-designer.c: (print_test_cb): + * src/ui-commands.c: (gl_ui_cmd_file_print): + * src/wdgt-print-merge.c: (gl_wdgt_print_merge_get_copies): + * src/wdgt-print-merge.h: + * src/window.c: (gl_window_init): + * src/window.h: + Initial conversion to GtkPrintOperation. + Still to do: + - Remove font and other libgnomeprint[ui] from elsewhere + - Add batch initialization of print operation + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@605 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/data/glade/Makefile.am +A glabels2/data/glade/print-custom-widget.glade +M glabels2/src/print-dialog.c +M glabels2/src/print-dialog.h +M glabels2/src/print.c +M glabels2/src/print.h +M glabels2/src/template-designer.c +M glabels2/src/ui-commands.c +M glabels2/src/wdgt-print-merge.c +M glabels2/src/wdgt-print-merge.h +M glabels2/src/window.c +M glabels2/src/window.h + +commit eb45e319f0ff83b292a56474ff2c1ba5137f51f5 +Author: Jim Evins +Date: 2007-01-09 + + 2007-01-08 Jim Evins + * configure.in: + Updated dependencies. Set version to 2.1.pre4cvs. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@604 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/configure.in + +commit f36c9e446e0640cbf78b76117d3fa254181b7882 +Author: Jim Evins +Date: 2007-01-04 + + 2007-01-03 Jim Evins + + * src/recent-files/* + Removed EggRecent stuff. + * configure.in: + * src/Makefile.am: + * src/file.c: + * src/recent.c: + * src/recent.h: + * src/ui-commands.c: + * src/ui-commands.h: + * src/ui.c: + Ported from EggRecent to GtkRecentManager. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@603 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/configure.in +M glabels2/src/Makefile.am +M glabels2/src/file.c +D glabels2/src/recent-files/Makefile.am +D glabels2/src/recent-files/egg-recent-item.c +D glabels2/src/recent-files/egg-recent-item.h +D glabels2/src/recent-files/egg-recent-model.c +D glabels2/src/recent-files/egg-recent-model.h +D glabels2/src/recent-files/egg-recent-util.c +D glabels2/src/recent-files/egg-recent-util.h +D glabels2/src/recent-files/egg-recent-view-uimanager.c +D glabels2/src/recent-files/egg-recent-view-uimanager.h +D glabels2/src/recent-files/egg-recent-view.c +D glabels2/src/recent-files/egg-recent-view.h +D glabels2/src/recent-files/egg-recent.h +D glabels2/src/recent-files/update-from-egg.sh +M glabels2/src/recent.c +M glabels2/src/recent.h +M glabels2/src/ui-commands.c +M glabels2/src/ui-commands.h +M glabels2/src/ui.c + +commit 8d177160daf7c299b803331e03b3b429070cb1eb +Author: Jim Evins +Date: 2007-01-03 + + 2007-01-02 Jim Evins + + * configure.in: + * iec16022-0.2.1/BUGS: + * iec16022-0.2.1/CHANGELOG: + * iec16022-0.2.1/CREDITS: + * iec16022-0.2.1/INSTALL: + * iec16022-0.2.1/LICENSE: + * iec16022-0.2.1/Makefile.am: + * iec16022-0.2.1/Makefile.dist: + * iec16022-0.2.1/README: + * iec16022-0.2.1/README.glabels: + * iec16022-0.2.1/TODO: + * iec16022-0.2.1/iec16022.1: + * iec16022-0.2.1/iec16022.c: + * iec16022-0.2.1/iec16022ecc200.c: + * iec16022-0.2.1/iec16022ecc200.h: + * iec16022-0.2.1/image.c: + * iec16022-0.2.1/image.h: + * iec16022-0.2.1/reedsol.c: + * iec16022-0.2.1/reedsol.h: + * iec16022-0.2.1/test/testsuite-example.bin: + * iec16022-0.2.1/test/testsuite-example.eps: + * iec16022-0.2.1/test/testsuite-example.hex: + * iec16022-0.2.1/test/testsuite-example.png: + * iec16022-0.2.1/test/testsuite-example.text: + * iec16022-0.2.1/test/testsuite.sh: + Include modified copy of iec16022-0.2.1 to provide + encoding + support for datamatrix 2D barcodes. + * src/Makefile.am: + * src/bc-iec16022.c: + * src/bc-iec16022.h: + * src/bc.c: + Added initial datamatrix 2D barcode backend to barcode + code. + * INSTALL: + * gtk-doc.make: + Automatic updates to later versions of these files. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@602 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/INSTALL +M glabels2/configure.in +M glabels2/gtk-doc.make +A glabels2/iec16022-0.2.1/BUGS +A glabels2/iec16022-0.2.1/CHANGELOG +A glabels2/iec16022-0.2.1/CREDITS +A glabels2/iec16022-0.2.1/INSTALL +A glabels2/iec16022-0.2.1/LICENSE +A glabels2/iec16022-0.2.1/Makefile.am +A glabels2/iec16022-0.2.1/Makefile.dist +A glabels2/iec16022-0.2.1/README +A glabels2/iec16022-0.2.1/README.glabels +A glabels2/iec16022-0.2.1/TODO +A glabels2/iec16022-0.2.1/iec16022.1 +A glabels2/iec16022-0.2.1/iec16022.c +A glabels2/iec16022-0.2.1/iec16022ecc200.c +A glabels2/iec16022-0.2.1/iec16022ecc200.h +A glabels2/iec16022-0.2.1/image.c +A glabels2/iec16022-0.2.1/image.h +A glabels2/iec16022-0.2.1/reedsol.c +A glabels2/iec16022-0.2.1/reedsol.h +A glabels2/iec16022-0.2.1/test/testsuite-example.bin +A glabels2/iec16022-0.2.1/test/testsuite-example.eps +A glabels2/iec16022-0.2.1/test/testsuite-example.hex +A glabels2/iec16022-0.2.1/test/testsuite-example.png +A glabels2/iec16022-0.2.1/test/testsuite-example.text +A glabels2/iec16022-0.2.1/test/testsuite.sh +M glabels2/src/Makefile.am +A glabels2/src/bc-iec16022.c +A glabels2/src/bc-iec16022.h +M glabels2/src/bc.c + +commit 468fd00dc4fcec77d28301274de4c50ebd4afaeb +Author: Jim Evins +Date: 2006-11-28 + + 2006-11-28 Jim Evins + + * data/templates/avery-iso-templates.xml: + * data/templates/avery-us-templates.xml: + * data/templates/categories.xml: + * data/templates/misc-iso-templates.xml: + * data/templates/misc-us-templates.xml: + * data/templates/zweckform-iso-templates.xml: + More categorization. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@597 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/data/templates/avery-iso-templates.xml +M glabels2/data/templates/avery-us-templates.xml +M glabels2/data/templates/categories.xml +M glabels2/data/templates/misc-iso-templates.xml +M glabels2/data/templates/misc-us-templates.xml +M glabels2/data/templates/zweckform-iso-templates.xml + +commit 0348e755ccc6e81d040771bfbdff6ccd081908ff +Author: Jim Evins +Date: 2006-09-13 + + 2006-09-12 Jim Evins + + * data/dtd/glabels-2.0.dtd: + * data/templates/Makefile.am: + * data/templates/avery-iso-templates.xml: + * data/templates/avery-other-templates.xml: + * data/templates/avery-us-templates.xml: + * data/templates/categories.xml: + * data/templates/misc-iso-templates.xml: + * data/templates/misc-other-templates.xml: + * data/templates/zweckform-iso-templates.xml: + * data/glade/Makefile.am: + * data/glade/new-label-dialog.glade: + * data/glade/wdgt-media-select.glade: + * data/glade/wdgt-rotate-label.glade: + * libglabels/Makefile.am: + * libglabels/category.c: + * libglabels/category.h: + * libglabels/libglabels.h: + * libglabels/paper.c: + * libglabels/template.c: + * libglabels/template.h: + * libglabels/xml-category.c: + * libglabels/xml-category.h: + * libglabels/xml-template.c: + Added support for category meta data. + * src/Makefile.am: + * src/file.c: + * src/mini-preview-pixbuf.c: + * src/mini-preview-pixbuf.h: + * src/new-label-dialog.c: + * src/new-label-dialog.h: + * src/wdgt-media-select.c: + * src/wdgt-media-select.h: + * src/wdgt-rotate-label.c: + * src/wdgt-rotate-label.h: + New "new label" dialog. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@596 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/data/dtd/glabels-2.0.dtd +M glabels2/data/glade/Makefile.am +A glabels2/data/glade/new-label-dialog.glade +A glabels2/data/glade/wdgt-media-select.glade +A glabels2/data/glade/wdgt-rotate-label.glade +M glabels2/data/templates/Makefile.am +M glabels2/data/templates/avery-iso-templates.xml +M glabels2/data/templates/avery-other-templates.xml +M glabels2/data/templates/avery-us-templates.xml +A glabels2/data/templates/categories.xml +M glabels2/data/templates/misc-iso-templates.xml +M glabels2/data/templates/misc-other-templates.xml +M glabels2/data/templates/zweckform-iso-templates.xml +M glabels2/gtk-doc.make +M glabels2/libglabels/Makefile.am +A glabels2/libglabels/category.c +A glabels2/libglabels/category.h +M glabels2/libglabels/libglabels.h +M glabels2/libglabels/paper.c +M glabels2/libglabels/template.c +M glabels2/libglabels/template.h +A glabels2/libglabels/xml-category.c +C059 glabels2/libglabels/libglabels.h +glabels2/libglabels/xml-category.h +M glabels2/libglabels/xml-template.c +M glabels2/src/Makefile.am +M glabels2/src/file.c +A glabels2/src/mini-preview-pixbuf.c +A glabels2/src/mini-preview-pixbuf.h +A glabels2/src/new-label-dialog.c +A glabels2/src/new-label-dialog.h +M glabels2/src/wdgt-media-select.c +M glabels2/src/wdgt-media-select.h +M glabels2/src/wdgt-rotate-label.c +M glabels2/src/wdgt-rotate-label.h + +commit 1667e133aa695fd8dd6a4475267e030699013804 +Author: Jim Evins +Date: 2006-05-27 + + 2006-05-27 Jim Evins + + * NEWS: + * autogen.sh: + * configure.in: + Preparation for 2.1.3. + * acinclude.m4: + * omf.make: + * xmldocs.make: + Removed. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@592 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/NEWS +D glabels2/acinclude.m4 +M glabels2/autogen.sh +M glabels2/configure.in +D glabels2/omf.make +D glabels2/xmldocs.make + +commit 1089d9b2f104ef8d172aa3304ff7e90c88b2d68c +Author: Jim Evins +Date: 2006-05-23 + + 2006-05-22 Jim Evins + + * src/print.c: (draw_barcode_object): + Don't print "Invalid barcode data" if data field is empty. + Patch provided + by Darren Warner . + Fixes Bug #1479839. + * AUTHORS: + Added acknowledgment for above patch. + * src/bc-gnubarcode.c: (gl_barcode_gnubarcode_new): + * src/bc-postnet.c: (postnet_code): + Removed "Invalid barcode data" warnings from stderr. + * src/view-barcode.c: (draw_barcode): + Draw box around barcode extent if data empty or invalid. + Center a + message whether the data is empty or invalid in box. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@591 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/AUTHORS +M glabels2/ChangeLog +M glabels2/src/bc-gnubarcode.c +M glabels2/src/bc-postnet.c +M glabels2/src/print.c +M glabels2/src/view-barcode.c + +commit ba2b25fb9ca6a4182e5503df8da832a3db0493d8 +Author: Jim Evins +Date: 2006-05-22 + + 2006-05-22 Jim Evins + + * src/print.c: (draw_text_object): + Check shadow state when printing text. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@590 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/print.c + +commit e846c1338e1a2608bf23eaceac97bb1f9a0e850e +Author: Jim Evins +Date: 2006-05-20 + + 2006-05-20 Jim Evins + + * src/ui-commands.c: (gl_ui_cmd_view_grid_toggle), + (gl_ui_cmd_view_markup_toggle): + Fixed crash when grid or markup have been toggled + off during + a previous session. Bug #1434324. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@589 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/ui-commands.c + +commit 888d81773c18187b4a66047121b9c75bdfdabde1 +Author: Jim Evins +Date: 2006-04-06 + + 2006-04-05 Jim Evins + + * src/object-editor.c: (gl_object_editor_set_key_names): + Fixed potential crash when freeing empty key list. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@588 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/object-editor.c + +commit aebddd9d6b63a0a09277fa0d5d57f29765ce3923 +Author: Jim Evins +Date: 2006-03-12 + + 2006-03-11 Jim Evins + + * src/print.c: (draw_text_object): + * src/view-text.c: (gl_view_text_new), + (construct_properties_editor), (update_object_from_editor_cb), + (update_editor_from_object_cb), (update_editor_from_label_cb), + (draw_hacktext): + Added shadow support to text object. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@587 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/print.c +M glabels2/src/view-text.c + +commit 5cc9f150f427f0b4e9cb70bd1b5a3cbd1818418d +Author: Jim Evins +Date: 2006-02-18 + + 2006-02-18 Jim Evins + + * src/print.c: (draw_line_object): + * src/view-line.c: (gl_view_line_new), + (construct_properties_editor), + (update_canvas_item_from_object_cb), + (update_object_from_editor_cb), (update_editor_from_object_cb), + (update_editor_from_label_cb): + Added shadow support to line object. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@586 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/print.c +M glabels2/src/view-line.c + +commit dbcb557b5640362136324341b71a8d05ea87a476 +Author: Jim Evins +Date: 2006-02-17 + + 2006-02-16 Jim Evins + + * src/view-box.c: + Comment changes. + * src/print.c: (draw_ellipse_object): + * src/view-ellipse.c: (gl_view_ellipse_new), + (construct_properties_editor), + (update_canvas_item_from_object_cb), + (update_object_from_editor_cb), (update_editor_from_object_cb), + (update_editor_from_label_cb): + Added shadow support to ellipse object. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@585 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/print.c +M glabels2/src/view-box.c +M glabels2/src/view-ellipse.c + +commit 31c2b2eec7aee4e95da2b4b14f15b3cb0313fb34 +Author: Jim Evins +Date: 2006-02-16 + + 2006-02-15 Jim Evins + + * src/label-object.c: + Changed default shadow offsets. + * src/view-box.c: (gl_view_box_new): + Simplified gl_view_box_new() so that is does not + duplicate code + in update_canvas_item_from_object_cb(). + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@584 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/label-object.c +M glabels2/src/view-box.c + +commit 4a68c33f4b10396ae9835a73db093b1b3c855446 +Author: Jim Evins +Date: 2006-02-08 + + 2006-02-07 Jim Evins + + * data/glade/object-editor.glade: + Fixed color groups of color combos. + * src/color.h: + Added default shadow color. + * src/object-editor.c: (gl_object_editor_construct_color_combo): + Added shadow color group. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@583 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/data/glade/object-editor.glade +M glabels2/src/color.h +M glabels2/src/object-editor.c + +commit 98beec748e072395765a1b648b6c77cae18fa8da +Author: Jim Evins +Date: 2006-02-07 + + 2006-02-06 Jim Evins + + * src/object-editor-shadow-page.c: + Forgot to add this file. + * src/view-box.c: (gl_view_box_new), + (update_canvas_item_from_object_cb), + (update_editor_from_label_cb): + Update limits on shadow offset spinbuttons. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@582 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +A glabels2/src/object-editor-shadow-page.c +M glabels2/src/view-box.c + +commit 40e256fa0bafd52f616ee3c6696efe6702d256f9 +Author: Jim Evins +Date: 2006-01-20 + + 2006-01-19 Jim Evins + + * src/merge-evolution.c: (gl_merge_evolution_get_key_list): + Initialize key_list to NULL. Only lucky that this worked + at all -- will + probably crash for many people. + * data/glade/object-editor.glade: + * src/Makefile.am: + * src/color.c: + * src/color.h: + * src/label-object.c: + * src/label-object.h: + * src/object-editor-fill-page.c: + * src/object-editor-private.h: + * src/object-editor.c: + * src/object-editor.h: + * src/xml-label.c: + Created infrastructure for shadow support. + * src/view-box.c: + * src/print.c: + Initial shadow support in box object only. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@581 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/data/glade/object-editor.glade +M glabels2/src/Makefile.am +M glabels2/src/color.c +M glabels2/src/color.h +M glabels2/src/label-object.c +M glabels2/src/label-object.h +M glabels2/src/merge-evolution.c +M glabels2/src/object-editor-fill-page.c +M glabels2/src/object-editor-private.h +M glabels2/src/object-editor.c +M glabels2/src/object-editor.h +M glabels2/src/print.c +M glabels2/src/view-box.c +M glabels2/src/xml-label.c + +commit af70df1732fa8a56a2ff3319ed2ee4c255c72c61 +Author: Jim Evins +Date: 2006-01-05 + + 2006-01-05 Jim Evins + + * src/merge-properties-dialog.c: (src_changed_cb): + Be extra paranoid before calling strcmp(). + * src/merge.c: (gl_merge_set_src): + Don't make (merge == NULL) a critical error. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@580 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/merge-properties-dialog.c +M glabels2/src/merge.c + +commit bb0499ec358adc1cc8e0fe1ed0c53b420f99aa12 +Author: Jim Evins +Date: 2005-12-22 + + 2005-12-22 Jim Evins + + * src/glabels-batch.c: (main): + Compile warning free with gcc 4.0. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@569 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/glabels-batch.c + +commit 58c00e66b430132afeb2cdfd1411668a9c5646cd +Author: Jim Evins +Date: 2005-12-22 + + 2005-12-21 Jim Evins + + * glabels.spec.in: + Updated example RPM spec file. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@568 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/docs/libglabels/libglabels-decl-list.txt +M glabels2/glabels.spec.in + +commit 3c89931fbeec7d5de710bf1c9b03e01e25c8c157 +Author: Jim Evins +Date: 2005-12-22 + + * NEWS: + * configure.in: + Preparation for 2.1.2. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@567 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/NEWS +M glabels2/configure.in + +commit 1dd5d023b5989dda77cd4afe03b6a321ae4f78fb +Author: Jim Evins +Date: 2005-12-21 + + 2005-12-20 Jim Evins + + * src/Makefile.am: + Define unique G_LOG_DOMAIN for glabels. + * src/critical-error-handler.c: (gl_critical_error_handler_init): + * src/warning-handler.c: (gl_warning_handler_init), + (warning_handler): + Register for G_LOG_DOMAIN instead of NULL. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@566 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/Makefile.am +M glabels2/src/critical-error-handler.c +M glabels2/src/warning-handler.c + +commit fc0b866a373a89285aa1d507d412b5a9d8e9d12d +Author: Jim Evins +Date: 2005-12-10 + + 2005-12-10 Jim Evins + + * src/merge-evolution.c: + * src/merge-vcard.c: + Fixed indentation. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@565 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/merge-evolution.c +M glabels2/src/merge-vcard.c + +commit 9e26662eaa578f1d48636e503ceee998f192c8cd +Author: Jim Evins +Date: 2005-12-09 + + 2005-12-08 Jim Evins + + * libglabels/paper.c: (read_paper_files_from_dir): + * libglabels/template.c: (gl_template_register), + (read_template_files_from_dir): + * libglabels/xml-paper.c: (gl_xml_paper_read_papers_from_file), + (gl_xml_paper_parse_papers_doc): + * libglabels/xml-template.c: + (gl_xml_template_read_templates_from_file), + (gl_xml_template_parse_templates_doc), + (gl_xml_template_parse_template_node), + (xml_parse_label_rectangle_node), (xml_parse_label_round_node), + (xml_parse_label_cd_node), (xml_parse_layout_node), + (xml_parse_markup_margin_node), (xml_parse_markup_line_node), + (xml_parse_markup_circle_node), + (gl_xml_template_write_templates_to_file), + (xml_create_label_node): + * libglabels/xml.c: (gl_xml_get_prop_length): + Re-classified g_warnings to g_messages. + * src/Makefile.am: + * src/glabels.c: (main): + * src/warning-handler.c: (gl_warning_handler_init), + (warning_handler): + * src/warning-handler.h: + Added warning message handler to make sure the user is + presented with appropriate non-fatal errors. + * src/critical-error-handler.c: (critical_error_handler): + Changed exit to abort. + * src/bc-gnubarcode.c: (gl_barcode_gnubarcode_new), + (render_pass1): + * src/bc-postnet.c: (postnet_code): + * src/bc.c: (id_to_index), (name_to_index): + * src/merge.c: (gl_merge_register_backend), (gl_merge_new): + * src/object-editor.c: (gl_object_notebook_construct_valist): + * src/prefs-dialog.c: (update_locale_page_from_prefs): + * src/prefs.c: (gl_prefs_get_units_per_point), + (gl_prefs_get_units_precision), (gl_prefs_get_units_step_size), + (gl_prefs_get_units_string): + * src/print.c: (draw_outline), (clip_to_outline), + (clip_punchouts): + * src/splash.c: (gl_splash): + * src/ui-commands.c: (gl_ui_cmd_help_contents): + * src/view-highlight.c: (gl_view_highlight_new), + (highlight_resizable_box_construct), (object_changed_cb), + (view_scale_changed_cb): + * src/view.c: (draw_label_layer), (draw_bg_fg_layers), + (draw_markup_layer), (draw_markup_margin), + (gl_view_object_create_mode), (canvas_event), + (selection_received_cb): + * src/wdgt-mini-preview.c: (mini_outline_list_new): + * src/wdgt-rotate-label.c: (mini_preview_canvas_update): + * src/xml-label-04.c: (gl_xml_label_04_parse), + (xml04_parse_media_description), (xml04_parse_text_props), + (xml04_parse_barcode_props): + * src/xml-label-191.c: (gl_xml_label_191_parse), + (xml191_parse_objects), (xml191_parse_object), + (xml191_parse_text_props), (xml191_parse_image_props), + (xml191_parse_barcode_props), (xml191_parse_data), + (xml191_parse_sheet), (xml191_parse_label), (xml191_parse_layout), + (xml191_parse_markup): + * src/xml-label.c: (gl_xml_label_open), + (gl_xml_label_open_buffer), + (xml_doc_to_label), (xml_parse_label), (xml_parse_objects), + (xml_parse_object_text), (xml_parse_object_image), + (xml_parse_object_barcode), (xml_parse_data), + (xml_parse_toplevel_span), (gl_xml_label_save), + (xml_create_objects): + Re-classified g_warnings to g_messages. + * src/merge-evolution.c: (gl_merge_evolution_open), + (gl_merge_evolution_close), (gl_merge_evolution_get_record): + Use g_warning to output errors encountered while + communicating with the evolution data server + instead of embedding them in the data. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@564 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/libglabels/paper.c +M glabels2/libglabels/template.c +M glabels2/libglabels/xml-paper.c +M glabels2/libglabels/xml-template.c +M glabels2/libglabels/xml.c +M glabels2/src/Makefile.am +M glabels2/src/bc-gnubarcode.c +M glabels2/src/bc-postnet.c +M glabels2/src/bc.c +M glabels2/src/critical-error-handler.c +M glabels2/src/glabels.c +M glabels2/src/merge-evolution.c +M glabels2/src/merge.c +M glabels2/src/object-editor.c +M glabels2/src/prefs-dialog.c +M glabels2/src/prefs.c +M glabels2/src/print.c +M glabels2/src/splash.c +M glabels2/src/ui-commands.c +M glabels2/src/view-highlight.c +M glabels2/src/view.c +C064 glabels2/src/critical-error-handler.c +glabels2/src/warning-handler.c +A glabels2/src/warning-handler.h +M glabels2/src/wdgt-mini-preview.c +M glabels2/src/wdgt-rotate-label.c +M glabels2/src/xml-label-04.c +M glabels2/src/xml-label-191.c +M glabels2/src/xml-label.c + +commit 599f3be4bcea39fb4da1ee940be7d566abd1abef +Author: Jim Evins +Date: 2005-12-09 + + 2005-12-08 Jim Evins + + * libglabels/libglabels-private.h: + Set G_LOG_DOMAIN + * libglabels/paper.c: (read_papers): + * libglabels/template.c: (read_templates): + Made appropriate warnings critical. + * src/Makefile.am: + * src/critical-error-handler.h: + * src/critical-error-handler.c: (gl_critical_error_handler_init), + (critical_error_handler): + Created critical error handler. + * src/glabels.c: (main): + Register critical error handler. + * src/merge-properties-dialog.c: + (gl_merge_properties_dialog_init): + * src/object-editor.c: (gl_object_editor_init): + * src/prefs-dialog.c: (gl_prefs_dialog_init): + * src/template-designer.c: (gl_template_designer_init): + * src/ui-property-bar.c: (gl_ui_property_bar_instance_init): + Made appropriate warnings critical. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@563 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/libglabels/libglabels-private.h +M glabels2/libglabels/paper.c +M glabels2/libglabels/template.c +M glabels2/src/Makefile.am +A glabels2/src/critical-error-handler.c +A glabels2/src/critical-error-handler.h +M glabels2/src/glabels.c +M glabels2/src/merge-properties-dialog.c +M glabels2/src/object-editor.c +M glabels2/src/prefs-dialog.c +M glabels2/src/template-designer.c +M glabels2/src/ui-property-bar.c + +commit e44d2f82ab2179a7c5003d0efd852345c97e2d40 +Author: Jim Evins +Date: 2005-11-27 + + 2005-11-27 Jim Evins + + * src/merge-evolution.c: (gl_merge_evolution_get_key_list), + (gl_merge_evolution_get_primary_key), + (gl_merge_evolution_get_record): + Don't create "record_key" pseudo-key. Don't populate + fields with null data. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@562 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/merge-evolution.c + +commit 25379fe60c61d9a7ba38a4fee58457dda8f0f1ac +Author: Jim Evins +Date: 2005-11-26 + + 2005-11-25 Jim Evins + + * src/merge-evolution.c: (gl_merge_evolution_finalize), + (gl_merge_evolution_get_key_list), (gl_merge_evolution_open), + (gl_merge_evolution_get_record), (gl_merge_evolution_copy), + (free_field_list): + Query EDS for all supported fields. Patch provided by + Austin Henry . + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@561 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/merge-evolution.c + +commit 648ed6853c2c7dd6e94af0db1a3d6c1b92643a73 +Author: Jim Evins +Date: 2005-10-30 + + 2005-10-29 Jim Evins + + * src/glabels.c: (main): + * src/label-barcode.c: (gl_label_barcode_finalize): + * src/label-text.c: (gl_label_text_finalize), (set_font_family): + * src/label.c: (gl_label_instance_init), (gl_label_finalize): + * src/object-editor.c: (gl_object_editor_finalize): + Another pass at valgrinding -- plugged several memory + leaks. + * src/view-text.c: (gl_view_text_new), + (update_canvas_item_from_object_cb), (draw_hacktext): + Commented out artifacts of edit-in-place code. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@560 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/glabels.c +M glabels2/src/label-barcode.c +M glabels2/src/label-text.c +M glabels2/src/label.c +M glabels2/src/object-editor.c +M glabels2/src/view-text.c + +commit 76fd90ffd79f73f4d8cd9acc009696a12db77e1e +Author: Jim Evins +Date: 2005-10-28 + + 2005-10-28 Jim Evins + + * src/canvas-hacktext.c: (gl_canvas_hacktext_set_arg): + Fixed use of uninitialized variable. Caught by + d binderman . + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@559 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/canvas-hacktext.c + +commit 71e143d2eec8f00cc33b766b6e5dabdf117425ce +Author: Jim Evins +Date: 2005-10-28 + + 2005-10-27 Jim Evins + + * src/merge-evolution.c: (gl_merge_evolution_get_record): + * src/merge-vcard.c: (gl_merge_vcard_get_record), + (parse_next_vcard): + Additional cleanup of EDS and vcard backends. Provided by + Austin Henry . + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@558 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/merge-evolution.c +M glabels2/src/merge-vcard.c + +commit 6564675732a6cf86f70960aa83070cc64e940235 +Author: Jim Evins +Date: 2005-10-25 + + 2005-10-24 Jim Evins + + * AUTHORS: + * src/Makefile.am: + * src/merge-evolution.c: + * src/merge-evolution.h: + * src/merge-init.c: (gl_merge_init): + * src/merge-properties-dialog.c: (type_changed_cb): + * src/merge-vcard.c: + * src/merge-vcard.h: + * src/ui-commands.c: (gl_ui_cmd_help_about): + Added Evolution Data Server and VCard merge backends. + Original patch + provided by Austin Henry . + * configure.in: + Only support EDS and VCard backends if libebook is + installed. Allow + user to disable support, even if installed. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@557 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/AUTHORS +M glabels2/ChangeLog +M glabels2/configure.in +M glabels2/src/Makefile.am +A glabels2/src/merge-evolution.c +A glabels2/src/merge-evolution.h +M glabels2/src/merge-init.c +M glabels2/src/merge-properties-dialog.c +A glabels2/src/merge-vcard.c +A glabels2/src/merge-vcard.h +M glabels2/src/ui-commands.c + +commit 1b1e0d9590f300773c89589eab03c4f8a5db3f45 +Author: Jim Evins +Date: 2005-10-24 + + 2005-10-24 Jim Evins + + * AUTHORS: + * data/templates/avery-iso-templates.xml: + * data/templates/avery-us-templates.xml: + * data/templates/misc-iso-templates.xml: + * data/templates/zweckform-iso-templates.xml: + Collected all template changes and submissions since last + release. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@556 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/AUTHORS +M glabels2/ChangeLog +M glabels2/data/templates/avery-iso-templates.xml +M glabels2/data/templates/avery-us-templates.xml +M glabels2/data/templates/misc-iso-templates.xml +M glabels2/data/templates/zweckform-iso-templates.xml + +commit 2bd3499f59f15f1ba3d83aca12dc895ede9c9fcc +Author: Jim Evins +Date: 2005-10-24 + + 2005-10-23 Jim Evins + + * configure.in: + * data/mime/Makefile.am: + Added configure options to disable update-mime-database + and + update-desktop-database as part of the install. Patch + provided by Leonardo Boshell (qhoracio@sourceforge.net). + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@555 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/configure.in +M glabels2/data/mime/Makefile.am +M glabels2/gtk-doc.make + +commit ec932804d8b229fff5fea65452a4f6d0982e7cb1 +Author: Jim Evins +Date: 2005-10-23 + + 2005-10-23 Jim Evins + + * libglabels/xml.h: + * libglabels/xml.c: (gl_xml_get_prop_string), + (gl_xml_get_prop_i18n_string), (gl_xml_set_prop_string), + (gl_xml_is_node), (gl_xml_get_node_content): + Added new XML utility functions. + * libglabels/xml-paper.c: + * libglabels/xml-template.c: + * src/xml-label.c: + Cleanup by using new xml utilities created above. + * libglabels/paper.c: (gl_paper_free): + * src/file.c: (new_response): + * src/object-editor-image-page.c: (add_image_filters_to_chooser): + * src/pixbuf-cache.c: (gl_pixbuf_cache_add_pixbuf), + (gl_pixbuf_cache_get_pixbuf): + * src/ui-property-bar.c: + (gl_ui_property_bar_construct_color_combo): + * src/view-highlight.c: (gl_view_highlight_finalize): + * src/view-image.c: (update_object_from_editor_cb): + * src/view.c: (gl_view_finalize), (draw_bg_fg_layers), + (draw_bg_fg_rounded_rect), (draw_bg_fg_round), (draw_bg_fg_cd), + (draw_bg_fg_cd_bc), (draw_markup_layer), (draw_markup_margin), + (draw_markup_margin_rect), (draw_markup_margin_rounded_rect), + (draw_markup_margin_round), (draw_markup_margin_cd), + (draw_markup_margin_cd_bc): + * src/wdgt-mini-preview.c: (mini_outline_list_new): + * src/wdgt-rotate-label.c: (gl_wdgt_rotate_label_finalize): + Plugged various memory leaks located with valgrind. + * src/view-image.c: (update_canvas_item_from_object_cb): + Don't allow a width or height of zero when drawing pixbuf. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@554 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/libglabels/paper.c +M glabels2/libglabels/xml-paper.c +M glabels2/libglabels/xml-template.c +M glabels2/libglabels/xml.c +M glabels2/libglabels/xml.h +M glabels2/src/file.c +M glabels2/src/object-editor-image-page.c +M glabels2/src/pixbuf-cache.c +M glabels2/src/ui-property-bar.c +M glabels2/src/view-highlight.c +M glabels2/src/view-image.c +M glabels2/src/view.c +M glabels2/src/wdgt-mini-preview.c +M glabels2/src/wdgt-rotate-label.c +M glabels2/src/xml-label.c + +commit cba39e6ae22742514a61a6c822d26f83613e45a7 +Author: Jim Evins +Date: 2005-10-23 + + 2005-10-22 Jim Evins + + * libglabels/xml-paper.c: + * libglabels/xml-template.c: + * libglabels/xml.c: + * src/base64.c: + * src/bc-gnubarcode.c: + * src/canvas-hacktext.c: + * src/label-text.c: + * src/object-editor-data-page.c: + * src/print-dialog.c: + * src/print.c: + * src/recent.c: + * src/template-designer.c: + * src/text-node.c: + * src/ui-property-bar.c: + * src/ui.c: + * src/view-barcode.c: + * src/view-box.c: + * src/view-ellipse.c: + * src/view-image.c: + * src/view-line.c: + * src/view-text.c: + * src/view.c: + * src/wdgt-media-select.c: + * src/xml-label-04.c: + * src/xml-label-191.c: + * src/xml-label.c: + Modified to compile warning free with gcc-4.0. Mostly + casting to change signedness of characters. Did not + attack gnu-barcode library yet. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@553 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/libglabels/xml-paper.c +M glabels2/libglabels/xml-template.c +M glabels2/libglabels/xml.c +M glabels2/src/base64.c +M glabels2/src/bc-gnubarcode.c +M glabels2/src/canvas-hacktext.c +M glabels2/src/label-text.c +M glabels2/src/object-editor-data-page.c +M glabels2/src/print-dialog.c +M glabels2/src/print.c +M glabels2/src/recent.c +M glabels2/src/template-designer.c +M glabels2/src/text-node.c +M glabels2/src/ui-property-bar.c +M glabels2/src/ui.c +M glabels2/src/view-barcode.c +M glabels2/src/view-box.c +M glabels2/src/view-ellipse.c +M glabels2/src/view-image.c +M glabels2/src/view-line.c +M glabels2/src/view-text.c +M glabels2/src/view.c +M glabels2/src/wdgt-media-select.c +M glabels2/src/xml-label-04.c +M glabels2/src/xml-label-191.c +M glabels2/src/xml-label.c + +commit afd036875ddd1bc5ca13c3b1ac353f81187df194 +Author: Jim Evins +Date: 2005-10-22 + + 2005-10-22 Jim Evins + + * src/glabels.c: (main): + * src/splash.c: (gl_splash): + Removed some small memory leaks. + * gtk-doc.make: + Added. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@552 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +A glabels2/gtk-doc.make +M glabels2/src/glabels.c +M glabels2/src/splash.c + +commit 39d8141f74f981643811f13b1fb09b5f6339b57f +Author: Jim Evins +Date: 2005-09-20 + + 2005-09-19 Jim Evins + + * data/glade/property-bar.glade: + Remove items from font_family_combo. This prevents the + double entry after adding text model and list of fonts. + * src/ui-property-bar.c: (reset_to_default_properties): + Free font_family_list. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@551 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/data/glade/property-bar.glade +M glabels2/src/ui-property-bar.c + +commit da392ae3611dbf3b5cfb3bc89e6ccfa652e47380 +Author: Jim Evins +Date: 2005-07-02 + + 2005-07-01 Jim Evins + + * po/it.po: + Updated italian translation (Daniele Medri) + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@550 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/po/it.po + +commit ae2bf27499f3e297a2bd73f20ca9697a67bd1006 +Author: Jim Evins +Date: 2005-06-26 + + I guess I need it after all -- however, it needs to be empty. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@545 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +A glabels2/docs/libglabels/libglabels.types + +commit 243b3dc521a2fc222d31bd139abac37bd0adef1b +Author: Jim Evins +Date: 2005-06-26 + + 2005-06-26 Jim Evins + + * docs/libglabels/libglabels-decl-list.txt: + Somehow never got checked in before. + * docs/libglabels/libglabels.types: + Removed -- don't need it afterall. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@544 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +A glabels2/docs/libglabels/libglabels-decl-list.txt +D glabels2/docs/libglabels/libglabels.types + +commit c4eb1a543ab5897431bc2a4796785c4aca7bfe9b +Author: Jim Evins +Date: 2005-06-21 + + 2005-06-20 Jim Evins + + * NEWS: + Final prep for 2.1.1 release. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@543 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/NEWS + +commit 0e3ae99f1dfcb00a6e6e5f320f1159b732960b73 +Author: Jim Evins +Date: 2005-06-21 + + 2005-06-20 Jim Evins + + * configure.in: + Final preps for 2.1.1 release. + * docs/libglabels/libglabels.types: + Somehow never got checked in before. + * po/POTFILES.in: + Bring up-to-date with recent reorg of ui code. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@542 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/configure.in +A glabels2/docs/libglabels/libglabels.types +M glabels2/po/POTFILES.in + +commit 266a744f8ad5d09df9daa095adab2f7b76f69bec +Author: Jim Evins +Date: 2005-06-19 + + 2005-06-19 Jim Evins + + * src/template-designer.c: (construct_layout_page): + Removed attempt to match background color of mini preview + widget to + background. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@540 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/template-designer.c + +commit 3c72bfece4ac69e74d1de4b7c2abd7cd94d2a548 +Author: Jim Evins +Date: 2005-06-18 + + 2005-06-17 Jim Evins + + * help/C/figures/merge-ex2-4.png: + * help/C/glabels.xml: + Fixed spelling error. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@539 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/help/C/figures/merge-ex2-4.png +M glabels2/help/C/glabels.xml + +commit 4e3e2f3a70c4670eb2dc905aafa743efa546c404 +Author: Jim Evins +Date: 2005-06-14 + + 2005-06-13 Jim Evins + + * help/C/figures/merge-ex1-1.png: + * help/C/figures/merge-ex1-2.png: + * help/C/figures/merge-ex1-3.png: + * help/C/figures/merge-ex1-4.png: + * help/C/figures/merge-ex2-1.png: + * help/C/figures/merge-ex2-2.png: + * help/C/figures/merge-ex2-3.png: + * help/C/figures/merge-ex2-4.png: + Added figures for document merge tutorial. + * help/C/glabels.xml: + Added document merge tutorial. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@538 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +A glabels2/help/C/figures/merge-ex1-1.png +A glabels2/help/C/figures/merge-ex1-2.png +A glabels2/help/C/figures/merge-ex1-3.png +A glabels2/help/C/figures/merge-ex1-4.png +A glabels2/help/C/figures/merge-ex2-1.png +A glabels2/help/C/figures/merge-ex2-2.png +A glabels2/help/C/figures/merge-ex2-3.png +A glabels2/help/C/figures/merge-ex2-4.png +M glabels2/help/C/glabels.xml + +commit 541b2920873eb6bfe225e8a7c573e41917c5dae5 +Author: Jim Evins +Date: 2005-05-20 + + 2005-05-19 Jim Evins + + * data/glade/merge-properties-dialog.glade: + Fixed irregular spacing. + * src/merge-properties-dialog.c: + (gl_merge_properties_dialog_init), + (gl_merge_properties_dialog_construct): + Set outer padding and remove separator. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@536 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/data/glade/merge-properties-dialog.glade +M glabels2/src/merge-properties-dialog.c + +commit 43beed37015c722577065ec11a431f75651b8199 +Author: Jim Evins +Date: 2005-05-19 + + 2005-05-18 Jim Evins + + * src/hig.h: + * src/hig.c: + Removed glHigDialog class. + * src/file.c: (gl_file_new), (create_new_dialog_widgets), + (gl_file_properties), (create_properties_dialog_widgets): + * src/prefs-dialog.h: + * src/prefs-dialog.c: (gl_prefs_dialog_get_type), + (gl_prefs_dialog_init), (gl_prefs_dialog_construct): + * src/print-dialog.h: + * src/prefs-dialog.h: + * src/print-dialog.c: (gl_print_dialog_get_type), + (gl_print_dialog_init), (gl_print_dialog_construct): + Replaced all instances of glHigDialog with GtkDialog. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@535 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/file.c +M glabels2/src/hig.c +M glabels2/src/hig.h +M glabels2/src/prefs-dialog.c +M glabels2/src/prefs-dialog.h +M glabels2/src/print-dialog.c +M glabels2/src/print-dialog.h + +commit b75ae61753d37cd5b74f393cfb8a207d0e0ae3bc +Author: Jim Evins +Date: 2005-05-18 + + 2005-05-17 Jim Evins + + * src/hig.h: + * src/hig.c: + Removed HigAlert class since it is obsoleted by the + GtkMessageDialog class. + * src/file.c: (open_response), (gl_file_open_real), + (gl_file_save), + (save_as_response), (gl_file_close): + Replaced all instances of HigAlert widgets with + GtkMessageDialog widgets. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@534 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/file.c +M glabels2/src/hig.c +M glabels2/src/hig.h + +commit da21e95810774f0c12cca0694d7c444a1c5dd3f2 +Author: Jim Evins +Date: 2005-05-16 + + 2005-05-15 Jim Evins + + * src/ui-commands.h: + * src/ui-util.c: + * src/ui-util.h: + * src/ui.c: + * src/ui.h: + * src/view.c: + * src/window.c: + * src/window.h: + A little code reformatting -- no functional changes. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@533 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/ui-commands.h +M glabels2/src/ui-util.c +M glabels2/src/ui-util.h +M glabels2/src/ui.c +M glabels2/src/ui.h +M glabels2/src/view.c +M glabels2/src/window.c +M glabels2/src/window.h + +commit cfdd17795f804b342a1551d517a44ae60f47e917 +Author: Jim Evins +Date: 2005-05-15 + + 2005-05-14 Jim Evins + + * src/Makefile.am: + Removed obsolete macros. + * src/marshal.list: + Added marshalling template to support new view signal: + "context_menu_activate." + * src/view.h: + * src/view.c: (gl_view_class_init), (gl_view_construct), + (canvas_event_arrow_mode): + - Removed hardcoded context menus and added new signal + "context_menu_activate" + to push this up to the uimanager. + - Removed merge properties and print dialogs so that + they can be managed with + the window by the uimanager. + * src/merge-properties-dialog.h: + * src/merge-properties-dialog.c: (gl_merge_properties_dialog_new), + (gl_merge_properties_dialog_construct): + Changed calling convention of + gl_merge_properties_dialog_new() to use + glLabel and GtkWindow instead of view to make more + consistent with other + dialogs. + * src/print-dialog.h: + * src/print-dialog.c: (gl_print_dialog_new), + (gl_print_dialog_construct): + Removed last artifact of libbonoboui. + * src/ui-commands.c: (gl_ui_cmd_file_print), + (gl_ui_cmd_objects_merge_properties), (gl_ui_cmd_help_about): + Reconciled style for launching dialogs. + * src/ui.c: (gl_ui_new): + Added context menus to ui manager. + * src/view-object.c: (item_event_arrow_mode): + No longer try to select objects with right-click. + * src/window.h: + * src/window.c: (gl_window_init), (gl_window_set_label), + (context_menu_activate_cb): + Context menus and all dialogs are now managed in a + consistent way in window + by the ui manager. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@532 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/Makefile.am +M glabels2/src/marshal.list +M glabels2/src/merge-properties-dialog.c +M glabels2/src/merge-properties-dialog.h +M glabels2/src/print-dialog.c +M glabels2/src/print-dialog.h +M glabels2/src/ui-commands.c +M glabels2/src/ui.c +M glabels2/src/view-object.c +M glabels2/src/view.c +M glabels2/src/view.h +M glabels2/src/window.c +M glabels2/src/window.h + +commit 843936402808e55c2be7970c22ecbaaafe2f7f73 +Author: Jim Evins +Date: 2005-05-12 + + 2005-05-11 Jim Evins + + * src/window.h: + * src/window.c: (gl_window_init), (gl_window_destroy): + * src/ui.c: (gl_ui_new), (gl_ui_unref), (recent_tooltip_func): + * src/ui-commands.c: (gl_ui_cmd_file_open_recent): + Moved management of recent_view back from window.c to + ui.c -- it just feels + better there. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@531 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/ui-commands.c +M glabels2/src/ui.c +M glabels2/src/window.c +M glabels2/src/window.h + +commit 1479a95e84b51da3faee9a7a263c032b19afc3e4 +Author: Jim Evins +Date: 2005-05-11 + + 2005-05-10 Jim Evins + + * src/window.h: + * src/window.c: (gl_window_init): + * src/ui.h: + * src/ui.c: (gl_ui_new), (connect_proxy_cb), + (disconnect_proxy_cb), + (menu_item_select_cb), (menu_item_deselect_cb): + Added GtkStatusbar which displays menu tooltips. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@530 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/ui.c +M glabels2/src/ui.h +M glabels2/src/window.c +M glabels2/src/window.h + +commit 6f2f4ee62487d346746d5fe8b8ed2801a72ce90b +Author: Jim Evins +Date: 2005-05-09 + + 2005-05-09 Jim Evins + + Replaced libbonoboui with GtkUIManager for creation of basic + user interface menus + and toolbars. + + * configure.in: + * glabels.spec.in: + Removed dependencies on libbonoboui. + * data/Makefile.am: + * data/ui/Makefile.am: + * data/ui/glabels-ui.xml: + Removed data/ui directory. + * data/glade/Makefile.am: + * data/property-bar.glade: + Added glade description of property-bar for new libglade + implementation + of glUIPropertyBar. + * src/Makefile.am: + * src/commands.h: + * src/commands.c: + * src/tools.h: + * src/tools.c: + * src/ui-commands.h: + * src/ui-commands.c: + Replaced commands.[ch] and tools.[ch] with the single + ui-commands.[ch] module + since the distinction between "commands" and "tools" + is no longer that clear. + * src/file.h: + * src/file.c: + Modified to expect glWindow instead of GtkWindow. + gl_file_open_recent() + no longer has knowledge of eggRecent*. + * src/glabels.c: (main): + Removed libbonobo initialization and replaced bonobo_main + loop with gtk_main + loop. + * src/object-editor.c: (gl_object_editor_init): + Make sure notebook does not respond to a "show_all" + on the parent. + * src/recent-files/Makefile.am: + * src/recent-files/*.[ch] + Updated from latest version of libegg which now has a + view based on + GtkUIManager. Removed unused bonobo and gtk views. + * src/ui-property-bar.h: + * src/ui-property-bar.c: + New implementation based on libglade. + * src/ui-sidebar.h: + * src/ui-sidebar.c: + Sidebar is now simply a GtkWidget and does not expect + to be a part of + a libbonoboui interface. + * src/ui-util.h: + * src/ui-util.c: + * src/ui.h: + * src/ui.c: + Converted for use with GtkUIManager. + * src/window.h: + * src/window.c: + Now derived from GtkWindow instead of BonoboWindow and + uses GtkUIManager + to create menus and toolbars. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@529 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/configure.in +M glabels2/data/Makefile.am +M glabels2/data/glade/Makefile.am +A glabels2/data/glade/property-bar.glade +D glabels2/data/ui/Makefile.am +D glabels2/data/ui/glabels-ui.xml +M glabels2/glabels.spec.in +M glabels2/src/Makefile.am +D glabels2/src/commands.c +D glabels2/src/commands.h +M glabels2/src/file.c +M glabels2/src/file.h +M glabels2/src/glabels.c +M glabels2/src/object-editor.c +M glabels2/src/recent-files/Makefile.am +M glabels2/src/recent-files/egg-recent-item.c +M glabels2/src/recent-files/egg-recent-item.h +M glabels2/src/recent-files/egg-recent-model.c +M glabels2/src/recent-files/egg-recent-util.c +D glabels2/src/recent-files/egg-recent-view-bonobo.c +D glabels2/src/recent-files/egg-recent-view-bonobo.h +D glabels2/src/recent-files/egg-recent-view-gtk.c +D glabels2/src/recent-files/egg-recent-view-gtk.h +A glabels2/src/recent-files/egg-recent-view-uimanager.c +A glabels2/src/recent-files/egg-recent-view-uimanager.h +M glabels2/src/recent-files/egg-recent-view.c +M glabels2/src/recent-files/egg-recent.h +D glabels2/src/tools.c +D glabels2/src/tools.h +A glabels2/src/ui-commands.c +A glabels2/src/ui-commands.h +M glabels2/src/ui-property-bar.c +M glabels2/src/ui-property-bar.h +M glabels2/src/ui-sidebar.c +M glabels2/src/ui-sidebar.h +M glabels2/src/ui-util.c +M glabels2/src/ui-util.h +M glabels2/src/ui.c +M glabels2/src/ui.h +M glabels2/src/window.c +M glabels2/src/window.h + +commit 15816dc54a53451be050144db535e67af6db88f8 +Author: Jim Evins +Date: 2005-04-26 + + 2005-04-25 Jim Evins + + * data/templates/misc-iso-templates.xml: + Added Fellows 04715 template provided by Steve Saxon. + * AUTHORS: + Updated acknowledgement for above. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@528 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/AUTHORS +M glabels2/ChangeLog +M glabels2/data/templates/misc-iso-templates.xml + +commit 6bb6a3435ecfd07583605dda070accf9996ec165 +Author: Jim Evins +Date: 2005-04-24 + + 2005-04-23 Jim Evins + + * src/util.c: (gl_util_combo_box_set_strings): + Make sure to clear model before loading a new list + of strings. + * src/wdgt-media-select.h: + * src/wdgt-media-select.c: (gl_wdgt_media_select_instance_init), + (gl_wdgt_media_select_construct), (page_size_combo_changed_cb), + (template_combo_changed_cb), (prefs_changed_cb), + (gl_wdgt_media_select_get_name), (gl_wdgt_media_select_set_name), + (gl_wdgt_media_select_get_page_size), + (gl_wdgt_media_select_set_page_size): + Replaced the deprecated GtkCombo widget with the new + GtkComboBox. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@527 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/util.c +M glabels2/src/wdgt-media-select.c +M glabels2/src/wdgt-media-select.h + +commit caf7fa47549bd5e82771dae7352a3e9df54876a5 +Author: Jim Evins +Date: 2005-04-22 + + 2005-04-21 Jim Evins + + * data/glade/template-designer.glade: + * src/template-designer.c: (construct_pg_size_page), + (pg_size_page_changed_cb), (build_template): + Replaced the deprecated GtkCombo widget with the new + GtkComboBox. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@526 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/data/glade/template-designer.glade +M glabels2/src/template-designer.c + +commit e95389e41390751097436307edb19d49963e3e59 +Author: Jim Evins +Date: 2005-04-21 + + 2005-04-20 Jim Evins + + * data/glade/prefs-dialog.glade: + * src/prefs-dialog.c: (construct_object_page), + (update_object_page_from_prefs), (update_prefs_from_object_page): + Replaced the deprecated GtkCombo widget with the new + GtkComboBox. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@525 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/data/glade/prefs-dialog.glade +M glabels2/src/prefs-dialog.c + +commit 2c6b6469e0956561eed729f5d56865456abfec50 +Author: Jim Evins +Date: 2005-04-20 + + 2005-04-19 Jim Evins + + * data/glade/object-editor.glade: + * src/object-editor-bc-page.c: (gl_object_editor_prepare_bc_page), + (style_changed_cb), (gl_object_editor_set_bc_style), + (gl_object_editor_get_bc_style), (gl_object_editor_set_bc_color), + (gl_object_editor_get_bc_color): + * src/object-editor-data-page.c: + (gl_object_editor_prepare_data_page), (gl_object_editor_set_data), + (gl_object_editor_get_data): + * src/object-editor-edit-page.c: + (gl_object_editor_prepare_edit_page), (insert_button_cb): + * src/object-editor-fill-page.c: + (gl_object_editor_prepare_fill_page), + (gl_object_editor_set_fill_color), + (gl_object_editor_get_fill_color): + * src/object-editor-image-page.c: + (gl_object_editor_prepare_image_page), + (gl_object_editor_set_image), (gl_object_editor_get_image): + * src/object-editor-line-page.c: + (gl_object_editor_prepare_line_page), + (gl_object_editor_set_line_color), + (gl_object_editor_get_line_color): + * src/object-editor-private.h: + * src/object-editor-text-page.c: + (gl_object_editor_prepare_text_page), + (gl_object_editor_set_font_family), + (gl_object_editor_get_font_family), + (gl_object_editor_set_text_color), + (gl_object_editor_get_text_color): + * src/object-editor.c: (gl_object_editor_set_key_names): + * src/ui-sidebar.c: + In the object editor: replaced all instances of the + deprecated + GtkCombo widget with the new GtkComboBox. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@524 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/data/glade/object-editor.glade +M glabels2/src/object-editor-bc-page.c +M glabels2/src/object-editor-data-page.c +M glabels2/src/object-editor-edit-page.c +M glabels2/src/object-editor-fill-page.c +M glabels2/src/object-editor-image-page.c +M glabels2/src/object-editor-line-page.c +M glabels2/src/object-editor-private.h +M glabels2/src/object-editor-text-page.c +M glabels2/src/object-editor.c +M glabels2/src/ui-sidebar.c + +commit 39acef8eb6f976d76c3c7f4cce0a2b546467e2e5 +Author: Jim Evins +Date: 2005-04-19 + + 2005-04-18 Jim Evins + + * src/stock.c: + Neglected to save this one in previous checkin to support + header cleanup. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@523 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/stock.c + +commit 174223a5516fbfc5e3b4a865b8310b51bed3dee2 +Author: Jim Evins +Date: 2005-04-18 + + 2005-04-17 Jim Evins + + * libglabels/libglabels-private.h: + * libglabels/paper.c: + * libglabels/paper.h: + * libglabels/template.c: + * libglabels/template.h: + * libglabels/xml-paper.c: + * libglabels/xml-paper.h: + * libglabels/xml-template.c: + * libglabels/xml.c: + * libglabels/xml.h: + * src/base64.c: + * src/base64.h: + * src/bc-gnubarcode.c: + * src/bc-postnet.c: + * src/bc.c: + * src/bc.h: + * src/commands.c: + * src/debug.c: + * src/debug.h: + * src/file.c: + * src/file.h: + * src/hig.c: + * src/hig.h: + * src/label-barcode.c: + * src/label-box.c: + * src/label-ellipse.c: + * src/label-image.c: + * src/label-image.h: + * src/label-line.c: + * src/label-object.c: + * src/label-text.c: + * src/label-text.h: + * src/label.c: + * src/merge-properties-dialog.c: + * src/object-editor-bc-page.c: + * src/object-editor-data-page.c: + * src/object-editor-edit-page.c: + * src/object-editor-fill-page.c: + * src/object-editor-image-page.c: + * src/object-editor-line-page.c: + * src/object-editor-lsize-page.c: + * src/object-editor-position-page.c: + * src/object-editor-private.h: + * src/object-editor-size-page.c: + * src/object-editor-text-page.c: + * src/object-editor.c: + * src/object-editor.h: + * src/pixbuf-cache.h: + * src/prefs-dialog.c: + * src/prefs-dialog.h: + * src/prefs-model.c: + * src/prefs-model.h: + * src/prefs.c: + * src/print-dialog.c: + * src/print-dialog.h: + * src/print.c: + * src/print.h: + * src/recent.c: + * src/recent.h: + * src/splash.c: + * src/splash.h: + * src/stock.h: + * src/template-designer.c: + * src/template-designer.h: + * src/text-node.h: + * src/tools.c: + * src/ui-property-bar.c: (gl_ui_property_bar_construct): + * src/ui-sidebar.c: + * src/ui-util.c: + * src/ui.c: + * src/util.c: + * src/util.h: + * src/view-barcode.c: + * src/view-box.c: + * src/view-ellipse.c: + * src/view-highlight.c: + * src/view-highlight.h: + * src/view-image.c: + * src/view-line.c: + * src/view-object.c: + * src/view-object.h: + * src/view-text.c: + * src/view.c: + * src/view.h: + * src/wdgt-chain-button.c: + * src/wdgt-media-select.c: + * src/wdgt-media-select.h: + * src/wdgt-mini-preview.c: + * src/wdgt-mini-preview.h: + * src/wdgt-print-copies.c: + * src/wdgt-print-copies.h: + * src/wdgt-print-merge.c: + * src/wdgt-print-merge.h: + * src/wdgt-rotate-label.c: + * src/wdgt-rotate-label.h: + * src/window.c: + * src/window.h: + * src/xml-label-04.c: + * src/xml-label-191.c: + * src/xml-label.c: + Cleanup of header files: + - all header files are now stand-alone, verified by + including + first in corresponding "c" files + - replaced blanket includes of gnome, gtk, and glib with + targetted includes + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@522 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/libglabels/libglabels-private.h +M glabels2/libglabels/paper.c +M glabels2/libglabels/paper.h +M glabels2/libglabels/template.c +M glabels2/libglabels/template.h +M glabels2/libglabels/xml-paper.c +M glabels2/libglabels/xml-paper.h +M glabels2/libglabels/xml-template.c +M glabels2/libglabels/xml.c +M glabels2/libglabels/xml.h +M glabels2/src/base64.c +M glabels2/src/base64.h +M glabels2/src/bc-gnubarcode.c +M glabels2/src/bc-postnet.c +M glabels2/src/bc.c +M glabels2/src/bc.h +M glabels2/src/commands.c +M glabels2/src/debug.c +M glabels2/src/debug.h +M glabels2/src/file.c +M glabels2/src/file.h +M glabels2/src/hig.c +M glabels2/src/hig.h +M glabels2/src/label-barcode.c +M glabels2/src/label-box.c +M glabels2/src/label-ellipse.c +M glabels2/src/label-image.c +M glabels2/src/label-image.h +M glabels2/src/label-line.c +M glabels2/src/label-object.c +M glabels2/src/label-text.c +M glabels2/src/label-text.h +M glabels2/src/label.c +M glabels2/src/merge-properties-dialog.c +M glabels2/src/object-editor-bc-page.c +M glabels2/src/object-editor-data-page.c +M glabels2/src/object-editor-edit-page.c +M glabels2/src/object-editor-fill-page.c +M glabels2/src/object-editor-image-page.c +M glabels2/src/object-editor-line-page.c +M glabels2/src/object-editor-lsize-page.c +M glabels2/src/object-editor-position-page.c +M glabels2/src/object-editor-private.h +M glabels2/src/object-editor-size-page.c +M glabels2/src/object-editor-text-page.c +M glabels2/src/object-editor.c +M glabels2/src/object-editor.h +M glabels2/src/pixbuf-cache.h +M glabels2/src/prefs-dialog.c +M glabels2/src/prefs-dialog.h +M glabels2/src/prefs-model.c +M glabels2/src/prefs-model.h +M glabels2/src/prefs.c +M glabels2/src/print-dialog.c +M glabels2/src/print-dialog.h +M glabels2/src/print.c +M glabels2/src/print.h +M glabels2/src/recent.c +M glabels2/src/recent.h +M glabels2/src/splash.c +M glabels2/src/splash.h +M glabels2/src/stock.h +M glabels2/src/template-designer.c +M glabels2/src/template-designer.h +M glabels2/src/text-node.h +M glabels2/src/tools.c +M glabels2/src/ui-property-bar.c +M glabels2/src/ui-sidebar.c +M glabels2/src/ui-util.c +M glabels2/src/ui.c +M glabels2/src/util.c +M glabels2/src/util.h +M glabels2/src/view-barcode.c +M glabels2/src/view-box.c +M glabels2/src/view-ellipse.c +M glabels2/src/view-highlight.c +M glabels2/src/view-highlight.h +M glabels2/src/view-image.c +M glabels2/src/view-line.c +M glabels2/src/view-object.c +M glabels2/src/view-object.h +M glabels2/src/view-text.c +M glabels2/src/view.c +M glabels2/src/view.h +M glabels2/src/wdgt-chain-button.c +M glabels2/src/wdgt-media-select.c +M glabels2/src/wdgt-media-select.h +M glabels2/src/wdgt-mini-preview.c +M glabels2/src/wdgt-mini-preview.h +M glabels2/src/wdgt-print-copies.c +M glabels2/src/wdgt-print-copies.h +M glabels2/src/wdgt-print-merge.c +M glabels2/src/wdgt-print-merge.h +M glabels2/src/wdgt-rotate-label.c +M glabels2/src/wdgt-rotate-label.h +M glabels2/src/window.c +M glabels2/src/window.h +M glabels2/src/xml-label-04.c +M glabels2/src/xml-label-191.c +M glabels2/src/xml-label.c + +commit 8b5703b7bbbbb9c7bd88090bc6d3b58aee4e99f8 +Author: Jim Evins +Date: 2005-04-16 + + 2005-04-16 Jim Evins + + * data/glade/Makefile.am: + * data/glade/merge-properties-dialog.glade: + Added merge properties dialog glade description file. + * src/merge-properties-dialog.h: + * src/merge-properties-dialog.c: + (gl_merge_properties_dialog_get_type), + (gl_merge_properties_dialog_init), + (gl_merge_properties_dialog_finalize), + (gl_merge_properties_dialog_new), + (gl_merge_properties_dialog_construct), (type_changed_cb), + (src_changed_cb), (response_cb), (load_tree), + (record_select_toggled_cb), (select_all_button_clicked_cb), + (unselect_all_button_clicked_cb): + Modified merge properties dialog to use libglade. Added + "select all" and "unselect all" buttons. + * src/merge-text.c: (parse_line): + Handle empty lines better. + * src/merge.c: (gl_merge_eval_key): + Evaluate the key whether the record is selected or not. + * src/util.h: + * src/util.c: (gl_util_combo_box_add_text_model): + Since libglade does not use the gtk_combo_box_new_text() + constructor for GtkComboBoxes, a utility function + was created + to add an appropriate text model to a GtkComboBox. + * src/view.c: (gl_view_edit_merge_props): + Removed unnecessary "show all's". + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@521 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/data/glade/Makefile.am +A glabels2/data/glade/merge-properties-dialog.glade +M glabels2/src/merge-properties-dialog.c +M glabels2/src/merge-properties-dialog.h +M glabels2/src/merge-text.c +M glabels2/src/merge.c +M glabels2/src/util.c +M glabels2/src/util.h +M glabels2/src/view.c + +commit 7013c7014cd9f41690563913707fcfa25dfce5d6 +Author: Jim Evins +Date: 2005-04-16 + + 2005-04-15 Jim Evins + + * po/ru.po: + Updated russian translation (Vitaly Lipatov) + * data/templates/misc-iso-templates.xml: + Added templates for russian business cards provided by + Vitaly Lipatov. + * AUTHORS: + Updated acknowledgements for above. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@520 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/AUTHORS +M glabels2/ChangeLog +M glabels2/data/templates/misc-iso-templates.xml +M glabels2/po/ru.po + +commit d420b4bf2aa0b8ae7fc109fa795504ce7ea3309f +Author: Jim Evins +Date: 2005-04-16 + + 2005-04-15 Jim Evins + + * data/templates/avery-us-templates.xml: + Added Avery 5388 and 5389 templates provided by Peter + L. Berghold. + * data/templates/misc-iso-templates.xml: + Added Ryman standard CD/DVD template, provided by + Dan Clark. + * AUTHORS: + Added acknowledgements for above. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@518 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/AUTHORS +M glabels2/ChangeLog +M glabels2/data/templates/avery-us-templates.xml +M glabels2/data/templates/misc-iso-templates.xml + +commit cceb27eeb72f647452215fb4bf724f2946428a46 +Author: Jim Evins +Date: 2005-04-10 + + 2005-04-10 Jim Evins + + * libglabels/xml-paper.c: (gl_xml_paper_parse_paper_node): + * libglabels/xml-template.c: + (gl_xml_template_parse_template_node), + (xml_parse_label_rectangle_node), (xml_parse_label_round_node), + (xml_parse_label_cd_node), (xml_parse_alias_node): + * libglabels/xml.c: (gl_xml_get_prop_double), + (gl_xml_get_prop_boolean), (gl_xml_get_prop_int), + (gl_xml_get_prop_uint), (gl_xml_get_prop_length): + * src/xml-label-04.c: (xml04_parse_media_description), + (xml04_parse_text_props), (xml04_parse_barcode_props), + (xml04_parse_merge_properties): + * src/xml-label-191.c: (xml191_parse_object), + (xml191_parse_text_props), (xml191_parse_barcode_props), + (xml191_parse_merge_fields), (xml191_parse_pixdata), + (xml191_parse_sheet), (xml191_parse_label), (xml191_parse_markup), + (xml191_parse_alias): + * src/xml-label.c: (xml_parse_object_text), + (xml_parse_object_barcode), (xml_parse_merge_fields), + (xml_parse_pixdata), (xml_parse_toplevel_span): + Make sure to use xmlFree for anything obtained from libxml + in case libxml and glib use different memory management + space. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@516 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/libglabels/xml-paper.c +M glabels2/libglabels/xml-template.c +M glabels2/libglabels/xml.c +M glabels2/src/xml-label-04.c +M glabels2/src/xml-label-191.c +M glabels2/src/xml-label.c + +commit 21cb58ded51cba453457ac6c47517b32f5915f59 +Author: Jim Evins +Date: 2005-04-09 + + 2005-04-08 Jim Evins + + * src/util.h: + * src/util.c: (gl_util_combo_box_set_strings), (search_text_func), + (gl_util_combo_box_set_active_text): + Added utility functions to simplify working with + GtkComboBox + widgets in GTK-2.6. + * src/ui-property-bar.h: + * src/ui-property-bar.c: (gl_ui_property_bar_construct), + (reset_to_default_properties), (update_text_properties), + (font_family_changed_cb): + Replaced deprecated GtkCombo with GtkComboBox. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@515 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/ui-property-bar.c +M glabels2/src/ui-property-bar.h +M glabels2/src/util.c +M glabels2/src/util.h + +commit d99e9af35cbdba98f6919c63e1d6e6755e2ab66f +Author: Jim Evins +Date: 2005-04-04 + + 2005-04-03 Jim Evins + + * src/Makefile.am: + * src/wdgt-image-select.h: + * src/wdgt-image-select.c: + Removed obsolete wdgt-image-select.[ch] files. + * libglabels/paper.c: (gl_paper_dup): + Fixed rename of parameter introduced during documentation + updates. + * data/glade/object-editor.glade: + * src/object-editor-image-page.c: + (gl_object_editor_prepare_image_page), (img_radio_toggled_cb), + (gl_object_editor_set_image), (gl_object_editor_get_image), + (update_preview_cb), (add_image_filters_to_chooser): + * src/object-editor-private.h: + Replaced deprecated GnomePixmapEntry with + GtkFileChooserButton. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@514 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/data/glade/object-editor.glade +M glabels2/libglabels/paper.c +M glabels2/src/Makefile.am +M glabels2/src/object-editor-image-page.c +M glabels2/src/object-editor-private.h +D glabels2/src/wdgt-image-select.c +D glabels2/src/wdgt-image-select.h + +commit 18e4f3780c76fb968f4ba57636b8c1ec66804b91 +Author: Jim Evins +Date: 2005-04-03 + + 2005-04-02 Jim Evins + + * src/mygal/mygal-combo-box.c: (deactivate_arrow), + (mygal_combo_box_popup_hide_unconditional), + (mygal_combo_box_popup_hide), (mygal_combo_box_popup_display), + (mygal_combo_toggle_pressed), (mygal_combo_box_init), + (mygal_combo_popup_tear_off), (mygal_combo_set_tearoff_state), + (mygal_combo_tearoff_bg_copy), (mygal_combo_popup_reparent), + (cb_tearable_button_release), (mygal_combo_box_set_tearable): + Renamed all internal gtk_combo functions to mygal_combo + to prevent namespace confusion. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@513 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/mygal/mygal-combo-box.c + +commit 27bba0435e5a44ee0a63086c01872eaf070ce3d0 +Author: Jim Evins +Date: 2005-04-03 + + 2005-04-02 Jim Evins + + * src/mygal/color-palette.c: (color_palette_change_custom_color), + (cust_color_set), (color_palette_setup): + * src/mygal/color-palette.h: + Replaced deprecated GnomeColorPicker with GtkColorButton. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@512 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/mygal/color-palette.c +M glabels2/src/mygal/color-palette.h + +commit 7fcb67653dc29f7449baa7f069c3d4bb2ecdd7e9 +Author: Jim Evins +Date: 2005-04-03 + + * docs/libglabels/libglabels-sections.txt: + * docs/libglabels/libglabels-undocumented.txt: + * docs/libglabels/tmpl/enums.sgml: + * docs/libglabels/tmpl/paper.sgml: + * docs/libglabels/tmpl/xml-paper.sgml: + * docs/libglabels/tmpl/xml-template.sgml: + * libglabels/enums.h: + * libglabels/paper.c: (gl_paper_dup): + * libglabels/paper.h: + * libglabels/xml-paper.c: + * libglabels/xml-template.c: + More documentation updates for libglabels. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@511 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/docs/libglabels/libglabels-sections.txt +M glabels2/docs/libglabels/libglabels-undocumented.txt +M glabels2/docs/libglabels/tmpl/enums.sgml +M glabels2/docs/libglabels/tmpl/paper.sgml +M glabels2/docs/libglabels/tmpl/xml-paper.sgml +M glabels2/docs/libglabels/tmpl/xml-template.sgml +M glabels2/libglabels/enums.h +M glabels2/libglabels/paper.c +M glabels2/libglabels/paper.h +M glabels2/libglabels/xml-paper.c +M glabels2/libglabels/xml-template.c + +commit 4b3e8b953927a4350334909c55d0aa790591e3f3 +Author: Jim Evins +Date: 2005-03-24 + + 2005-03-23 Jim Evins + + * INSTALL: + Automatically updated. + * Makefile.am: + * autogen.sh: + * configure.in: + * docs/Makefile.am: + * docs/libglabels/Makefile.am: + * docs/libglabels/libglabels-docs.sgml: + * docs/libglabels/libglabels-sections.txt: + * docs/libglabels/libglabels-undocumented.txt: + * docs/libglabels/tmpl/enums.sgml: + * docs/libglabels/tmpl/libglabels-unused.sgml: + * docs/libglabels/tmpl/libglabels.sgml: + * docs/libglabels/tmpl/paper.sgml: + * docs/libglabels/tmpl/template.sgml: + * docs/libglabels/tmpl/xml-paper.sgml: + * docs/libglabels/tmpl/xml-template.sgml: + * docs/libglabels/tmpl/xml.sgml: + Added basic gtk-doc stuff to support documenting + libglabels + API. + * libglabels/xml.c: + Updated function comments with gtk-doc markup. + * missing: + Removed. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@510 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/INSTALL +M glabels2/Makefile.am +M glabels2/autogen.sh +M glabels2/configure.in +A glabels2/docs/Makefile.am +A glabels2/docs/libglabels/Makefile.am +A glabels2/docs/libglabels/libglabels-docs.sgml +A glabels2/docs/libglabels/libglabels-overrides.txt +A glabels2/docs/libglabels/libglabels-sections.txt +A glabels2/docs/libglabels/libglabels-undocumented.txt +A glabels2/docs/libglabels/tmpl/enums.sgml +A glabels2/docs/libglabels/tmpl/libglabels-unused.sgml +A glabels2/docs/libglabels/tmpl/libglabels.sgml +A glabels2/docs/libglabels/tmpl/paper.sgml +A glabels2/docs/libglabels/tmpl/template.sgml +A glabels2/docs/libglabels/tmpl/xml-paper.sgml +A glabels2/docs/libglabels/tmpl/xml-template.sgml +A glabels2/docs/libglabels/tmpl/xml.sgml +M glabels2/libglabels/xml.c +D glabels2/missing + +commit bf335f6190c755edecd76daa222ddf818c3962f7 +Author: Jim Evins +Date: 2005-03-23 + + 2005-03-22 Jim Evins + + Since the development version now requires gtk-2.6/gnome-2.10, I + have made a first pass at removing deprecations. + + * configure.in: + * libglabels/Makefile.am: + * src/Makefile.am: + Added configure option to turn on X_DISABLE_DEPRECATED + flags. + Also removed all remnants of HAVE_FILECHOOSER. + * src/file.c: (gl_file_open_real): + Removed code for old GtkFileSelection. + * libglabels/libglabels-private.h: + * libglabels/paper.c: + * libglabels/template.c: + * libglabels/xml-paper.c: + * libglabels/xml-template.c: + * libglabels/xml.c: + * src/bc.c: + * src/file.c: + * src/glabels-batch.c: + * src/glabels.c: + * src/label.c: + * src/merge-init.c: + * src/merge-properties-dialog.c: + * src/merge.c: + * src/object-editor.c: + * src/prefs-dialog.c: + * src/prefs.c: + * src/print-dialog.c: + * src/print.c: + * src/stock.c: + * src/template-designer.c: + * src/ui-property-bar.c: + * src/ui-sidebar.c: + * src/view-barcode.c: + * src/view-box.c: + * src/view-ellipse.c: + * src/view-image.c: + * src/view-line.c: + * src/view-text.c: + * src/view.c: + * src/wdgt-image-select.c: + * src/wdgt-media-select.c: + * src/wdgt-print-copies.c: + * src/wdgt-print-merge.c: + * src/wdgt-rotate-label.c: + * src/window.c: + * src/xml-label-04.c: + * src/xml-label-191.c: + * src/xml-label.c: + Added '#include " where needed. + Removed any unused '#include "s. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@509 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/configure.in +M glabels2/libglabels/Makefile.am +M glabels2/libglabels/libglabels-private.h +M glabels2/libglabels/paper.c +M glabels2/libglabels/template.c +M glabels2/libglabels/xml-paper.c +M glabels2/libglabels/xml-template.c +M glabels2/libglabels/xml.c +M glabels2/src/Makefile.am +M glabels2/src/bc.c +M glabels2/src/file.c +M glabels2/src/glabels-batch.c +M glabels2/src/glabels.c +M glabels2/src/label.c +M glabels2/src/merge-init.c +M glabels2/src/merge-properties-dialog.c +M glabels2/src/merge.c +M glabels2/src/object-editor.c +M glabels2/src/prefs-dialog.c +M glabels2/src/prefs.c +M glabels2/src/print-dialog.c +M glabels2/src/print.c +M glabels2/src/stock.c +M glabels2/src/template-designer.c +M glabels2/src/ui-property-bar.c +M glabels2/src/ui-sidebar.c +M glabels2/src/view-barcode.c +M glabels2/src/view-box.c +M glabels2/src/view-ellipse.c +M glabels2/src/view-image.c +M glabels2/src/view-line.c +M glabels2/src/view-text.c +M glabels2/src/view.c +M glabels2/src/wdgt-image-select.c +M glabels2/src/wdgt-media-select.c +M glabels2/src/wdgt-print-copies.c +M glabels2/src/wdgt-print-merge.c +M glabels2/src/wdgt-rotate-label.c +M glabels2/src/window.c +M glabels2/src/xml-label-04.c +M glabels2/src/xml-label-191.c +M glabels2/src/xml-label.c + +commit c5beb442f3f9bb114d6da1e6bc47785cff1e3e9c +Author: Jim Evins +Date: 2005-03-23 + + 2005-03-22 Jim Evins + + * src/commands.c: (activate_url), (gl_cmd_help_about): + Replaced GnomeAbout with GtkAboutDialog. Therefore the + development version of glabels now depends on GTK 2.6 and + GNOME 2.10. + * configure.in: + Updated library dependencies. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@508 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/configure.in +M glabels2/src/commands.c + +commit 578df4908bb69264be20b4e887782ff1276bb2e8 +Author: Jim Evins +Date: 2005-03-01 + + 2005-02-28 Jim Evins + + * AUTHORS: + * data/templates/misc-iso-templates.xml: + Added 'Ednet 45021' template provided by Ali Akcaagac + . + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@507 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/AUTHORS +M glabels2/ChangeLog +M glabels2/data/templates/misc-iso-templates.xml + +commit 25516165e852af71671d740a8d9ed003ca7846ae +Author: Jim Evins +Date: 2005-02-15 + + 2005-02-14 Jim Evins + + * data/templates/avery-us-templates.xml: + Updated templates to use inches instead of points. + * src/print-dialog.c: (printer_page_new): + Changed packing style when adding printer selector widget. + This fixes + debian Bug#295274. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@504 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/data/templates/avery-us-templates.xml +M glabels2/src/print-dialog.c + +commit 7acfd66581cd73e6bf1fa7db370be984ecc1df9e +Author: Jim Evins +Date: 2005-02-13 + + 2005-02-13 Jim Evins + + * AUTHORS: + * po/es.po: + Updated spanish translations. (sergio rivadero) + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@502 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/AUTHORS +M glabels2/ChangeLog +M glabels2/po/es.po + +commit 46b4d3627f3a1af503c1433286dbe78c7e7f2d09 +Author: Jim Evins +Date: 2005-02-06 + + 2005-02-05 Jim Evins + + Some cleanup to libglabels. + + * configure.in: + Updated version to 2.1.1cvs. Added generation of + libglabels.pc. + * libglabels/libglabels.pc.in + Created. + * libglabels/enums.h + Created. Currently only contains glUnitsType which + provides enumerations + for all possible units of distance. + * libglabels/Makefile.am: + Incorporated new files enums.h and libglabels.pc[.in]. + * libglabels/libglabels.h: + Include enums.h. + * libglabels/template.h: + * libglabels/template.c: (gl_template_layout_new): + Changed parameters nx and ny to gint from gdouble. + * libglabels/xml.h: + * libglabels/xml.c: (gl_xml_get_prop_length), + (gl_xml_set_prop_length), (gl_xml_set_default_units): + Added support for different output units. + * src/prefs-dialog.c: (update_locale_page_from_prefs), + (update_prefs_from_locale_page): + * src/prefs-model.c: (string_to_units), (units_to_string): + * src/prefs-model.h: + * src/prefs.c: (gl_prefs_get_units_per_point), + (gl_prefs_get_units_precision), (gl_prefs_get_units_step_size), + (gl_prefs_get_units_string): + * src/prefs.h: + * src/wdgt-media-select.c: (details_update), + (get_label_size_desc): + Reconciled all length enumerations with the new + enumerations provided + in libglabels/enums.h. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@501 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/configure.in +M glabels2/libglabels/Makefile.am +C066 glabels2/libglabels/libglabels.h +glabels2/libglabels/enums.h +M glabels2/libglabels/libglabels.h +A glabels2/libglabels/libglabels.pc.in +M glabels2/libglabels/template.c +M glabels2/libglabels/template.h +M glabels2/libglabels/xml.c +M glabels2/libglabels/xml.h +M glabels2/src/prefs-dialog.c +M glabels2/src/prefs-model.c +M glabels2/src/prefs-model.h +M glabels2/src/prefs.c +M glabels2/src/prefs.h +M glabels2/src/wdgt-media-select.c + +commit 80c6dfde91a3ca72b4015c50ecebb7898fc474ae +Author: Jim Evins +Date: 2005-02-04 + + 2005-02-03 Jim Evins + + * po/cs.po: + Updated Czech translations. (David Makovský and Zbynek + Mrkvick) + * po/it.po: + Updated Italian translations. (Daniele Medri) + * AUTHORS: + Updated credits to reflect above translations. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@500 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/AUTHORS +M glabels2/ChangeLog +M glabels2/po/cs.po +M glabels2/po/it.po + +commit d4cb26542c64b720aa718adb1aacde180d9f8b32 +Author: Jim Evins +Date: 2005-01-22 + + 2005-01-22 Jim Evins + + * MESSAGE-OF-DOOM: + Added. + * Makefile.am: + Added MESSAGE-OF-DOOM to EXTRA_DIST. + * NEWS: + Final prep for 2.1.0. + * configure.in: + Set version to 2.1.0. Output MESSAGE-OF-DOOM. + * glabels.spec.in: + Added '--remove-original' flag to desktop-file-install, + so that there is + only one menu entry. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@497 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/AUTHORS +M glabels2/ChangeLog +A glabels2/MESSAGE-OF-DOOM +M glabels2/Makefile.am +M glabels2/NEWS +M glabels2/configure.in +M glabels2/data/desktop/glabels.desktop.in +M glabels2/data/dtd/glabels-2.0.dtd +M glabels2/data/glade/object-editor.glade +M glabels2/data/man/glabels.1 +M glabels2/data/mime/glabels.keys.in +M glabels2/data/pixmaps/Makefile.am +M glabels2/data/pixmaps/glabels-about-logo.png +A glabels2/data/pixmaps/glabels-application-x-glabels.png +D glabels2/data/pixmaps/glabels-icon.png +R100 glabels2/data/pixmaps/glabels-logo.png +glabels2/data/pixmaps/glabels-splash.png +M glabels2/data/pixmaps/glabels.png +M glabels2/data/templates/avery-iso-templates.xml +M glabels2/data/templates/misc-iso-templates.xml +M glabels2/data/templates/misc-us-templates.xml +M glabels2/data/ui/glabels-ui.xml +M glabels2/glabels.spec.in +D glabels2/mkinstalldirs +M glabels2/po/fr.po +M glabels2/src/Makefile.am +M glabels2/src/color.c +M glabels2/src/color.h +M glabels2/src/debug.c +M glabels2/src/debug.h +M glabels2/src/glabels-batch.c +M glabels2/src/glabels.c +M glabels2/src/label-barcode.c +M glabels2/src/label-box.c +M glabels2/src/label-ellipse.c +M glabels2/src/label-line.c +M glabels2/src/label-object.c +M glabels2/src/label-object.h +M glabels2/src/label-text.c +M glabels2/src/object-editor-bc-page.c +M glabels2/src/object-editor-fill-page.c +M glabels2/src/object-editor-line-page.c +M glabels2/src/object-editor-private.h +M glabels2/src/object-editor-text-page.c +M glabels2/src/object-editor.c +M glabels2/src/object-editor.h +M glabels2/src/prefs-model.c +M glabels2/src/prefs-model.h +M glabels2/src/print.c +M glabels2/src/print.h +M glabels2/src/splash.c +M glabels2/src/template-designer.c +M glabels2/src/ui-property-bar.c +M glabels2/src/ui.c +M glabels2/src/view-barcode.c +M glabels2/src/view-box.c +M glabels2/src/view-ellipse.c +M glabels2/src/view-image.c +M glabels2/src/view-line.c +M glabels2/src/view-text.c +M glabels2/src/view.c +M glabels2/src/view.h +M glabels2/src/window.c +M glabels2/src/xml-label-04.c +M glabels2/src/xml-label-191.c +M glabels2/src/xml-label.c + +commit fb62736c8d9761183cc64ded63a9b5ff9fc5ae3d +Author: Jim Evins +Date: 2004-08-22 + + 2004-08-22 Jim Evins + + * AUTHORS: + * src/glabels-batch.c: (main): + Applied patch with minor mods to allow selecting merge + source and + crop-marks on glabels-batch's command line. Original + patch provided by + José Dapena Paz . + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@461 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/AUTHORS +M glabels2/ChangeLog +M glabels2/src/glabels-batch.c + +commit 83246d813303e9b6459abad3ea7fa3367eac06c6 +Author: Jim Evins +Date: 2004-08-15 + + 2004-08-15 Jim Evins + + * data/desktop/glabels.desktop.in: + - Added encoding line + - Removed period from comment + - Fixed Terminal line, changed "0" to "false" + - Added semicolen to Categories line + * po/ja.po: + - Made sure desktop.in comment string above still + translated properly + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@460 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/data/desktop/glabels.desktop.in +M glabels2/po/ja.po + +commit 968a16da88603023f7c7b5e526fd5a7a9099d94c +Author: Jim Evins +Date: 2004-08-15 + + 2004-08-14 Jim Evins + + * libglabels/xml-paper.c: (gl_xml_paper_parse_paper_node): + * libglabels/xml-template.c: + (gl_xml_template_parse_template_node): + * src/xml-label-191.c: (xml191_parse_sheet): + Fixed improper freeing of gettext strings. Merged from + 2.0.1. + * configure.in: + Reconciled libglabels versioning with 2.0.1. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@457 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/configure.in +M glabels2/libglabels/xml-paper.c +M glabels2/libglabels/xml-template.c +M glabels2/src/xml-label-191.c + +commit abae8fc459f68745dbc6369fd5b71dffad62e256 +Author: Jim Evins +Date: 2004-08-14 + + 2004-08-14 Jim Evins + + * configure.in: + Updated version to 2.1cvs. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@452 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/configure.in + +commit 9f33ea2bb3803234511af8e7fbd454eacce42877 +Author: Jim Evins +Date: 2004-08-14 + + 2004-08-14 Jim Evins + + * po/ja.po: + Updated 2.0.x translation by Takeshi AIHANA + . + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@449 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/po/ja.po + +commit a5659c418bcd65d7435c3ce51613801a64d0ac1a +Author: Jim Evins +Date: 2004-08-14 + + 2004-08-14 Jim Evins + + Fixes for Bug #1008181. + + * src/bc.c: (gl_barcode_default_digits): + Make a format of zero digits, harmless. + * src/xml-label.c: (xml_parse_object_barcode): + Set default value of the format property of barcode + objects to 10, not + zero. This will prevent crashes when reading pre + 2.0.x files. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@448 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/bc.c +M glabels2/src/xml-label.c + +commit 342ce3d7a1b5dd0b214cafa5062b9822d171d959 +Author: Jim Evins +Date: 2004-08-09 + + 2004-08-09 Jim Evins + + * NEWS: + * TODO: + * help/C/glabels-C.omf: + * help/C/glabels.xml: + Brought documentation up-to-date for 2.0.0 release. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@445 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/NEWS + +commit 02bee8734212c7fd340a00788764001f698bab05 +Author: Jim Evins +Date: 2004-08-09 + + 2004-08-09 Jim Evins + + * NEWS: + * TODO: + * help/C/glabels-C.omf: + * help/C/glabels.xml: + Brought documentation up-to-date for 2.0.0 release. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@444 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/NEWS +M glabels2/TODO +M glabels2/help/C/glabels-C.omf +M glabels2/help/C/glabels.xml + +commit 356e6b3d52372448409a359f07ad04c73fa35a82 +Author: Jim Evins +Date: 2004-08-09 + + 2004-08-09 Jim Evins + + These are hopefully the final preparations for 2.0.0. + + * data/mime/Makefile.am: + Include glabels.xml in EXTRA_DIST. + * configure.in: + - Updated comment style. + - Added LIBGLABELS_VERSION_INFO macro, updated Current. + - Added package and version info to configuration printout + - Update version to 2.0.0 + * libglabels/Makefile.am: + Use the new LIBGLABELS_VERSION_INFO macro. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@443 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/configure.in +M glabels2/data/mime/Makefile.am +M glabels2/libglabels/Makefile.am + +commit db1a07eb0f330390e2b7fd6f4d82647f076a307d +Author: Jim Evins +Date: 2004-08-09 + + 2004-08-09 Jim Evins + + * configure.in: + * glabels.spec.in: + Cleanup of required library macros. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@442 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/configure.in +M glabels2/glabels.spec.in + +commit 7427f8f1bced3e4bc465d0d0492019435193d9d0 +Author: Jim Evins +Date: 2004-08-08 + + 2004-08-08 Jim Evins + + * glabels.spec.in: + - Updated URL + - More specific of what to install in /usr/bin and + /usr/lib + - Remove built mime registration files from staging + directory + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@441 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/glabels.spec.in + +commit 4f4f868eade0e1e5f9c6c8640cc424a209e930ea +Author: Jim Evins +Date: 2004-08-08 + + 2004-08-08 Jim Evins + + * data/mime/Makefile.am: + Fixed typo: key_files should have been keys_files. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@440 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/data/mime/Makefile.am + +commit 3470ca951a824cee7a23eec888299124eed6eb13 +Author: Jim Evins +Date: 2004-08-08 + + 2004-08-08 Jim Evins + + Reorganization of runtime data files. Also added registration + of mimetype with + new freedesktop.org mime database if available. + + * data/* + Moved files to appropriate subdirectories, creating + local Makefile.am + in each subdirectory. + - Moved paper-sizes.xml and *-templates.xml to templates + subdirectory. + These are now installed at $datadir/glabels/templates. + - Moved glabels.1 to man subdirectory. + - Moved glabels-2.0.dtd to dtd subdirectory. + - Moved glabels.desktop.in to desktop subdirectory. + - Moved glabels.keys.in and glabels.mime to mime + subdirectory. + * data/pixmaps/* + Moved "./pixmaps" to "./data/pixmaps" + * data/ui/* + Moved src/glabels-ui.xml to data/ui directory. Created + Makefile.am. + * data/glade/* + Moved libglade files from src to data/glade. Created + Makefile.am. + * Makefile.am: + Removed pixmaps from SUBDIRS. + * configure.in: + - Removed pixmaps from makefiles. + - Added makefiles for new subdirs of data. + - Added tests for freedesktop.org mime database. + * glabels.spec.in: + - Added tests for freedesktop.org mime database for post + install and + post un-install actions. + * libglabels/Makefile.am: + Moved system template files to + $(datadir)/glabels/templates. + * libglabels/libglabels-private.h: + Moved system template files to + $(datadir)/glabels/templates. + * po/POTFILES.in: + - Accounted for movement of ui and libglade files. + - Added missing .in files. + - Reorganized by directory. + * src/Makefile.am: + Accounted for movement of ui and libglade files. + * data/mime/glabels.xml.in: + New file for registering with freedesktop.org mime + database. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@439 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/Makefile.am +M glabels2/configure.in +M glabels2/data/Makefile.am +A glabels2/data/desktop/Makefile.am +A glabels2/data/desktop/glabels.desktop.in +A glabels2/data/dtd/Makefile.am +R100 glabels2/data/glabels-2.0.dtd glabels2/data/dtd/glabels-2.0.dtd +D glabels2/data/glabels.desktop.in +A glabels2/data/glade/Makefile.am +R100 glabels2/src/object-editor.glade +glabels2/data/glade/object-editor.glade +R100 glabels2/src/prefs-dialog.glade +glabels2/data/glade/prefs-dialog.glade +R100 glabels2/src/template-designer.glade +glabels2/data/glade/template-designer.glade +A glabels2/data/man/Makefile.am +R100 glabels2/data/glabels.1 glabels2/data/man/glabels.1 +A glabels2/data/mime/Makefile.am +R100 glabels2/data/glabels.applications +glabels2/data/mime/glabels.applications +R090 glabels2/data/glabels.keys.in glabels2/data/mime/glabels.keys.in +R100 glabels2/data/glabels.mime glabels2/data/mime/glabels.mime +A glabels2/data/mime/glabels.xml.in +R100 glabels2/pixmaps/Makefile.am glabels2/data/pixmaps/Makefile.am +R100 glabels2/pixmaps/ex-1layout.png +glabels2/data/pixmaps/ex-1layout.png +R100 glabels2/pixmaps/ex-2layouts.png +glabels2/data/pixmaps/ex-2layouts.png +R100 glabels2/pixmaps/ex-cd-size.png +glabels2/data/pixmaps/ex-cd-size.png +R100 glabels2/pixmaps/ex-rect-size.png +glabels2/data/pixmaps/ex-rect-size.png +R100 glabels2/pixmaps/ex-round-size.png +glabels2/data/pixmaps/ex-round-size.png +R057 glabels2/pixmaps/glabels-about-logo.png +glabels2/data/pixmaps/glabels-about-logo.png +R100 glabels2/pixmaps/glabels-icon.png +glabels2/data/pixmaps/glabels-icon.png +A glabels2/data/pixmaps/glabels-logo.png +R100 glabels2/pixmaps/glabels.png glabels2/data/pixmaps/glabels.png +A glabels2/data/templates/Makefile.am +R100 glabels2/data/avery-iso-templates.xml +glabels2/data/templates/avery-iso-templates.xml +R100 glabels2/data/avery-other-templates.xml +glabels2/data/templates/avery-other-templates.xml +R100 glabels2/data/avery-us-templates.xml +glabels2/data/templates/avery-us-templates.xml +R100 glabels2/data/misc-iso-templates.xml +glabels2/data/templates/misc-iso-templates.xml +R100 glabels2/data/misc-other-templates.xml +glabels2/data/templates/misc-other-templates.xml +R100 glabels2/data/misc-us-templates.xml +glabels2/data/templates/misc-us-templates.xml +R100 glabels2/data/paper-sizes.xml +glabels2/data/templates/paper-sizes.xml +R100 glabels2/data/zweckform-iso-templates.xml +glabels2/data/templates/zweckform-iso-templates.xml +A glabels2/data/ui/Makefile.am +R100 glabels2/src/glabels-ui.xml glabels2/data/ui/glabels-ui.xml +M glabels2/glabels.spec.in +M glabels2/libglabels/Makefile.am +M glabels2/libglabels/libglabels-private.h +D glabels2/pixmaps/glabels-logo.png +M glabels2/po/POTFILES.in +M glabels2/po/cs.po +M glabels2/po/de.po +M glabels2/po/es.po +M glabels2/po/fr.po +M glabels2/po/it.po +M glabels2/po/ja.po +M glabels2/po/pl.po +M glabels2/po/pt_BR.po +M glabels2/po/ru.po +M glabels2/po/zh_TW.Big5.po +M glabels2/src/Makefile.am + +commit d4ecd627e9dbeb831a9751c67d3e4bd983f73ccd +Author: Jim Evins +Date: 2004-08-07 + + 2004-08-07 Jim Evins + + * src/recent-files/*: + Re-synced to latest libegg/recent-files. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@438 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/recent-files/Makefile.am +M glabels2/src/recent-files/egg-recent-item.c +M glabels2/src/recent-files/egg-recent-item.h +M glabels2/src/recent-files/egg-recent-model.c +M glabels2/src/recent-files/egg-recent-util.c +D glabels2/src/recent-files/egg-recent-vfs-utils.c +D glabels2/src/recent-files/egg-recent-vfs-utils.h +M glabels2/src/recent-files/egg-recent-view-gtk.c +M glabels2/src/recent-files/egg-recent-view.h +A glabels2/src/recent-files/egg-recent.h + +commit dcfe50a8208c3959e1b0313fd92619fe754a945a +Author: Jim Evins +Date: 2004-08-07 + + 2004-08-07 Jim Evins + + * Makefile.am: + * configure.in: + * help/* + Renamed "./doc" directory to "./help" which contains + user documentation, + to be more consistent with other GNOME applications. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@437 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +A glabels2/help/C/Makefile.am +A glabels2/help/C/figures/glabels-template-cd.png +A glabels2/help/C/figures/glabels-template-label.png +A glabels2/help/C/figures/glabels-template-layout.png +A glabels2/help/C/figures/main-window-empty.png +A glabels2/help/C/figures/object-editor-sidebar.png +A glabels2/help/C/figures/print-copies.png +A glabels2/help/C/figures/print-merge.png +A glabels2/help/C/glabels-C.omf +A glabels2/help/C/glabels.xml +A glabels2/help/C/legal.xml +A glabels2/help/Makefile.am + +commit a1220b934f65cb92dc9f70f4a56202f5dcc990c3 +Author: Jim Evins +Date: 2004-08-07 + + 2004-08-07 Jim Evins + + * Makefile.am: + * configure.in: + * help/* + Renamed "./doc" directory to "./help" which contains + user documentation, + to be more consistent with other GNOME applications. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@436 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/Makefile.am +M glabels2/configure.in + +commit 1e4aa252e63eda3a5c119028baebe5b8d76fcbf5 +Author: Jim Evins +Date: 2004-07-26 + + 2004-07-26 Jim Evins + + * src/merge-properties-dialog.c: + (gl_merge_properties_dialog_init): + Corrected button order of merge properties dialog. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@435 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/merge-properties-dialog.c + +commit e84ded9f15e286b712ea5d1f876eed9e5d45c563 +Author: Jim Evins +Date: 2004-07-18 + + 2004-07-18 Jim Evins + + * data/glabels-2.0.dtd: + * src/bc.c: (gl_barcode_default_digits), + (gl_barcode_can_freeform), + (gl_barcode_get_prefered_n): + * src/bc.h: + * src/label-barcode.c: (copy), (gl_label_barcode_set_props), + (gl_label_barcode_get_props), (get_size): + * src/label-barcode.h: + * src/object-editor-bc-page.c: (gl_object_editor_prepare_bc_page), + (style_changed_cb), (gl_object_editor_set_bc_style), + (gl_object_editor_get_bc_style): + * src/object-editor-data-page.c: (data_radio_toggled_cb), + (gl_object_editor_set_data), (gl_object_editor_get_data): + * src/object-editor-private.h: + * src/object-editor.c: (gl_object_editor_set_key_names): + * src/object-editor.glade: + * src/object-editor.h: + * src/print.c: (draw_barcode_object): + * src/view-barcode.c: (update_object_from_editor_cb), + (update_editor_from_object_cb), + (gl_view_barcode_create_event_handler), (draw_barcode): + * src/xml-label-04.c: (xml04_parse_barcode_props): + * src/xml-label-191.c: (xml191_parse_barcode_props): + * src/xml-label.c: (xml_parse_object_barcode), + (xml_create_object_barcode): + Added "format" attribute to barcode objects. + This attribute is used + to properly format freeform barcodes barcodes prior to + merge data is + applied, so that barcodes can be accurately layed out. + This addresses + remaining issues of feature request #824787. Also added + an example of + the format in the object editor. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@434 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/data/glabels-2.0.dtd +M glabels2/src/bc.c +M glabels2/src/bc.h +M glabels2/src/label-barcode.c +M glabels2/src/label-barcode.h +M glabels2/src/object-editor-bc-page.c +M glabels2/src/object-editor-data-page.c +M glabels2/src/object-editor-private.h +M glabels2/src/object-editor.c +M glabels2/src/object-editor.glade +M glabels2/src/object-editor.h +M glabels2/src/print.c +M glabels2/src/view-barcode.c +M glabels2/src/xml-label-04.c +M glabels2/src/xml-label-191.c +M glabels2/src/xml-label.c + +commit fe42d658938053fa034ba7b8e56e3d6b5ba098ca +Author: Jim Evins +Date: 2004-07-12 + + 2004-07-12 Jim Evins + + Various code cleanups. + + * src/label-barcode.c: + Removed unneeded include of gnome-glyphlist.h. + + * src/label-text.c: (get_size): + Fixed memory leak: unref glyphlists when done with them. + + * src/object-editor-bc-page.c: (gl_object_editor_prepare_bc_page): + * src/object-editor-data-page.c: + (gl_object_editor_prepare_data_page): + * src/object-editor-image-page.c: + (gl_object_editor_prepare_image_page): + * src/object-editor-line-page.c: + (gl_object_editor_prepare_line_page): + * src/object-editor-lsize-page.c: + (gl_object_editor_prepare_lsize_page): + * src/object-editor-position-page.c: + (gl_object_editor_prepare_position_page): + * src/object-editor-size-page.c: + (gl_object_editor_prepare_size_page): + * src/object-editor-text-page.c: + (gl_object_editor_prepare_text_page): + Removed unneeded size groups, originally intended to + keep widgets aligned. + Now use tables to lay these out in object-editor.glade. + + * src/print.c: (draw_text_object): + Fixed memory leak: unref glyphlists when done with them. + + * src/view-barcode.c: (draw_barcode): + Fixed memory leak: unref glyphlists when done with them. + + * src/view-text.c: (update_object_from_editor_cb), + (draw_hacktext): + - Removed unneeded cast of + gl_object_editor_get_text_line_spacing()s + return value. + - Fixed memory leak: unref glyphlists when done with them. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@433 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/label-barcode.c +M glabels2/src/label-text.c +M glabels2/src/object-editor-bc-page.c +M glabels2/src/object-editor-data-page.c +M glabels2/src/object-editor-image-page.c +M glabels2/src/object-editor-line-page.c +M glabels2/src/object-editor-lsize-page.c +M glabels2/src/object-editor-position-page.c +M glabels2/src/object-editor-size-page.c +M glabels2/src/object-editor-text-page.c +M glabels2/src/print.c +M glabels2/src/view-barcode.c +M glabels2/src/view-text.c + +commit 00ddb9df4fe9f2ae732a5561ea7b8867aa8433d4 +Author: Jim Evins +Date: 2004-07-12 + + 2004-07-11 Jim Evins + + * data/glabels-2.0.dtd: + * src/label-text.c: (gl_label_text_instance_init), (copy), + (gl_label_text_set_auto_shrink), (gl_label_text_get_auto_shrink): + * src/label-text.h: + * src/object-editor-private.h: + * src/object-editor-text-page.c: + (gl_object_editor_prepare_text_page), + (gl_object_editor_set_text_auto_shrink), + (gl_object_editor_get_text_auto_shrink): + * src/object-editor.c: (gl_object_editor_set_key_names): + * src/object-editor.glade: + * src/object-editor.h: + * src/print.c: (draw_text_object): + * src/view-text.c: (update_object_from_editor_cb), + (update_editor_from_object_cb): + * src/xml-label.c: (xml_parse_object_text), + (xml_create_object_text): + Added option to allow document merge to auto shrink text + size to fit + within the text box. The code in print.c that actually + shrinks the + text is loosely based on a patch submitted by Mark + Harrison + . This addresses + feature request + #661421. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@432 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/data/glabels-2.0.dtd +M glabels2/src/label-text.c +M glabels2/src/label-text.h +M glabels2/src/object-editor-private.h +M glabels2/src/object-editor-text-page.c +M glabels2/src/object-editor.c +M glabels2/src/object-editor.glade +M glabels2/src/object-editor.h +M glabels2/src/print.c +M glabels2/src/view-text.c +M glabels2/src/xml-label.c + +commit 1fd401c400027d08f75b0a1105a47ba3b416e193 +Author: Jim Evins +Date: 2004-07-11 + + 2004-07-11 Jim Evins + + * data/glabels-2.0.dtd: + * libglabels/template.c: (gl_template_rect_label_type_new), + (gl_template_round_label_type_new), + (gl_template_cd_label_type_new), (gl_template_label_type_dup), + (template_full_page): + * libglabels/template.h: + * libglabels/xml-template.c: (xml_parse_label_rectangle_node), + (xml_create_label_node): + * pixmaps/ex-rect-size.png: + * src/print.c: (clip_to_outline), (clip_punchouts): + * src/template-designer.c: (construct_rect_size_page), + (rect_size_page_prepare_cb), (layout_page_prepare_cb), + (build_template): + * src/template-designer.glade: + * src/xml-label-191.c: (xml191_parse_label): + Modifications to allow separate horizontal (x_waste) + and vertical (y_waste) + properties for rectangular labels. Templates remain + backwards compatible, + but this breaks the libglabels API (I don't know of + anyone outside of + glabels using libglabels at this time -- what can I say, + the program is + is still "unstable"). This addresses the suggestion in + Feature Request + #976313. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@431 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/data/glabels-2.0.dtd +M glabels2/libglabels/template.c +M glabels2/libglabels/template.h +M glabels2/libglabels/xml-template.c +M glabels2/pixmaps/ex-rect-size.png +M glabels2/src/print.c +M glabels2/src/template-designer.c +M glabels2/src/template-designer.glade +M glabels2/src/xml-label-191.c + +commit e2bb3e9baa9e37d525cd36408dcc5ef1c9008bcd +Author: Jim Evins +Date: 2004-07-06 + + 2004-07-05 Jim Evins + * src/print.c: (print_crop_marks), (draw_outline): + Changed crop marks and label outlines to black, instead + of 25% gray. + This addresses debian Bug #257460. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@430 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/print.c + +commit 64e93eac58ec9545c3896e271ce3b78f23ebea26 +Author: Jim Evins +Date: 2004-07-05 + + 2004-07-05 Jim Evins + + * src/object-editor-fill-page.c: + (gl_object_editor_set_fill_color): + * src/object-editor-line-page.c: + (gl_object_editor_set_line_color): + Preserve "is_default" of fill and line color_combos when + creating from + existing objects. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@429 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/object-editor-fill-page.c +M glabels2/src/object-editor-line-page.c + +commit 6ebd01b8a785ff3e49fafa0e0f94369ac9f95ca1 +Author: Jim Evins +Date: 2004-07-02 + + 2004-07-02 Jim Evins + + * data/glabels.1: + Created man page. Based on page submitted by Matthew + J. Lockner, however + it has been severely edited. + + * data/avery-other-templates.xml + * data/misc-other-templates.xml: + Started new files for predefined templates with + non-standard sheet sizes. + These have been initially populated with the Avery + 06141 and + OfficeMax #86112, both provided by Matthew J. Lockner. + + * data/Makefile.am: + Install above manpage and template files. + + * glabels.spec.in: + Make sure we install man pages. + + * src/glabels-batch.c: + Changed short form of help option to '-?' to be consistent + with glabels. + + * AUTHORS: + Added acknowledgement for above labels. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@428 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/AUTHORS +M glabels2/ChangeLog +M glabels2/data/Makefile.am +A glabels2/data/avery-other-templates.xml +A glabels2/data/glabels.1 +A glabels2/data/misc-other-templates.xml +M glabels2/glabels.spec.in +M glabels2/src/glabels-batch.c + +commit d64bd058272ae98ad15f2995edddeb8570d2b64d +Author: Jim Evins +Date: 2004-07-02 + + 2004-07-02 Jim Evins + + * src/glabels.c: (main), (save_session_cb): + - Now include libbonoboui.h, recent.h, and file.h to + provide missing + prototypes. + - save_session_cb() now returns gboolean. + - Minor formatting changes. + + * src/window.h: + * src/window.c: + - Now include file.h to provide missing prototype. + - gl_window_get_type() now returns GType, not guint. + I believe this may + ultimately be cause of the segfault reported in Bug + #982287, since + GType is actually a gulong, which may not be compatible + on other + architectures (64bit) -- I cannot personally test this + at this time. + I was sloppy in several other xxx_get_type() functions + which also + returned guint -- see next group of files: + + * src/window.c: (gl_window_get_type): + * src/canvas-hacktext.c: (gl_canvas_hacktext_get_type): + * src/canvas-hacktext.h: + * src/hig.c: (gl_hig_alert_get_type), (gl_hig_dialog_get_type), + (gl_hig_category_get_type), (gl_hig_vbox_get_type), + (gl_hig_hbox_get_type): + * src/hig.h: + * src/label-barcode.c: (gl_label_barcode_get_type): + * src/label-barcode.h: + * src/label-box.c: (gl_label_box_get_type): + * src/label-box.h: + * src/label-ellipse.c: (gl_label_ellipse_get_type): + * src/label-ellipse.h: + * src/label-image.c: (gl_label_image_get_type): + * src/label-image.h: + * src/label-line.c: (gl_label_line_get_type): + * src/label-line.h: + * src/label-object.c: (gl_label_object_get_type): + * src/label-object.h: + * src/label-text.c: (gl_label_text_get_type): + * src/label-text.h: + * src/label.c: (gl_label_get_type): + * src/label.h: + * src/merge-properties-dialog.c: + (gl_merge_properties_dialog_get_type): + * src/merge-properties-dialog.h: + * src/merge-text.c: (gl_merge_text_get_type): + * src/merge-text.h: + * src/merge.c: (gl_merge_get_type): + * src/merge.h: + * src/object-editor.c: (gl_object_editor_get_type): + * src/prefs-dialog.c: (gl_prefs_dialog_get_type): + * src/prefs-dialog.h: + * src/prefs-model.c: (gl_prefs_model_get_type): + * src/prefs-model.h: + * src/print-dialog.c: (gl_print_dialog_get_type): + * src/print-dialog.h: + * src/template-designer.c: (gl_template_designer_get_type): + * src/template-designer.h: + * src/ui-property-bar.c: (gl_ui_property_bar_get_type): + * src/ui-property-bar.h: + * src/ui-sidebar.c: (gl_ui_sidebar_get_type): + * src/ui-sidebar.h: + * src/view-barcode.c: (gl_view_barcode_get_type): + * src/view-barcode.h: + * src/view-box.c: (gl_view_box_get_type): + * src/view-box.h: + * src/view-ellipse.c: (gl_view_ellipse_get_type): + * src/view-ellipse.h: + * src/view-highlight.c: (gl_view_highlight_get_type): + * src/view-highlight.h: + * src/view-image.c: (gl_view_image_get_type): + * src/view-image.h: + * src/view-line.c: (gl_view_line_get_type): + * src/view-line.h: + * src/view-object.c: (gl_view_object_get_type): + * src/view-object.h: + * src/view-text.c: (gl_view_text_get_type): + * src/view-text.h: + * src/view.c: (gl_view_get_type): + * src/view.h: + * src/wdgt-chain-button.c: (gl_wdgt_chain_button_get_type): + * src/wdgt-image-select.c: (gl_wdgt_image_select_get_type): + * src/wdgt-image-select.h: + * src/wdgt-media-select.c: (gl_wdgt_media_select_get_type): + * src/wdgt-media-select.h: + * src/wdgt-mini-preview.c: (gl_wdgt_mini_preview_get_type): + * src/wdgt-mini-preview.h: + * src/wdgt-print-copies.c: (gl_wdgt_print_copies_get_type): + * src/wdgt-print-copies.h: + * src/wdgt-print-merge.c: (gl_wdgt_print_merge_get_type): + * src/wdgt-print-merge.h: + * src/wdgt-rotate-label.c: (gl_wdgt_rotate_label_get_type): + * src/wdgt-rotate-label.h: + - Made sure all xxx_get_type functions returned GType, + not guint. This + was the case in hig.[ch], window.[ch], + ui-property-bar.[ch], + ui-sidebar.[ch], view.[ch], wdgt-image-select.[ch], + wdgt-media-select.[ch], wdgt-mini-preview.[ch], + wdgt-print-copies.[ch], + wdt-print-merge.[ch], and wdgt-rotate-label.[ch]. + See separate + window.[ch] details above for more info. + - Reconciled various coding style differences in all + xxx_get_type() + functions: + * All prototypes include G_GNUC_CONST. + * All prototypes specify the return value as + GType, not GtkType + or guint. + * Info structures are all declared as "static + const." + * Generalized the names of type and info + variables. + * Miscelaneous formatting. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@427 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/canvas-hacktext.c +M glabels2/src/canvas-hacktext.h +M glabels2/src/glabels.c +M glabels2/src/hig.c +M glabels2/src/hig.h +M glabels2/src/label-barcode.c +M glabels2/src/label-barcode.h +M glabels2/src/label-box.c +M glabels2/src/label-box.h +M glabels2/src/label-ellipse.c +M glabels2/src/label-ellipse.h +M glabels2/src/label-image.c +M glabels2/src/label-image.h +M glabels2/src/label-line.c +M glabels2/src/label-line.h +M glabels2/src/label-object.c +M glabels2/src/label-object.h +M glabels2/src/label-text.c +M glabels2/src/label-text.h +M glabels2/src/label.c +M glabels2/src/label.h +M glabels2/src/merge-properties-dialog.c +M glabels2/src/merge-properties-dialog.h +M glabels2/src/merge-text.c +M glabels2/src/merge-text.h +M glabels2/src/merge.c +M glabels2/src/merge.h +M glabels2/src/object-editor.c +M glabels2/src/prefs-dialog.c +M glabels2/src/prefs-dialog.h +M glabels2/src/prefs-model.c +M glabels2/src/prefs-model.h +M glabels2/src/print-dialog.c +M glabels2/src/print-dialog.h +M glabels2/src/template-designer.c +M glabels2/src/template-designer.h +M glabels2/src/ui-property-bar.c +M glabels2/src/ui-property-bar.h +M glabels2/src/ui-sidebar.c +M glabels2/src/ui-sidebar.h +M glabels2/src/view-barcode.c +M glabels2/src/view-barcode.h +M glabels2/src/view-box.c +M glabels2/src/view-box.h +M glabels2/src/view-ellipse.c +M glabels2/src/view-ellipse.h +M glabels2/src/view-highlight.c +M glabels2/src/view-highlight.h +M glabels2/src/view-image.c +M glabels2/src/view-image.h +M glabels2/src/view-line.c +M glabels2/src/view-line.h +M glabels2/src/view-object.c +M glabels2/src/view-object.h +M glabels2/src/view-text.c +M glabels2/src/view-text.h +M glabels2/src/view.c +M glabels2/src/view.h +M glabels2/src/wdgt-chain-button.c +M glabels2/src/wdgt-image-select.c +M glabels2/src/wdgt-image-select.h +M glabels2/src/wdgt-media-select.c +M glabels2/src/wdgt-media-select.h +M glabels2/src/wdgt-mini-preview.c +M glabels2/src/wdgt-mini-preview.h +M glabels2/src/wdgt-print-copies.c +M glabels2/src/wdgt-print-copies.h +M glabels2/src/wdgt-print-merge.c +M glabels2/src/wdgt-print-merge.h +M glabels2/src/wdgt-rotate-label.c +M glabels2/src/wdgt-rotate-label.h +M glabels2/src/window.c +M glabels2/src/window.h + +commit 8917cca244d9e34768af178a54238683ec8127e2 +Author: Jim Evins +Date: 2004-06-12 + + 2004-06-08 Jim Evins + + * src/label.c: + * src/label.h: + * src/xml-label.c: + * AUTHORS: + Don't touch compression of original file -- still defaults + to 9 for + new files. Original patch provided by Javier Donaire + Segarra + (#912252 in patch tracker). + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@426 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/AUTHORS +M glabels2/ChangeLog + +commit 7256870b60b9aa34b538a1d4b59fe455aefbcb29 +Author: Jim Evins +Date: 2004-06-08 + + Don't touch compression of original file -- still defaults to 9 + for new files. Original patch provided by Javier Donaire Segarra + (#912252 in patch tracker). + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@425 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/label.c +M glabels2/src/label.h +M glabels2/src/xml-label.c + +commit 20808aa3eca1b58fd8a8818699ce6afeaaedea1c +Author: Jim Evins +Date: 2004-05-06 + + 2004-05-05 Jim Evins + + * data/glabels-2.0.dtd: + Broke DTD previously when adding new barcode types + that contain + a + plus sign (+). Simply changed the BC_STYLE_TYPE + entity to "CDATA" + to avoid the problem. + * data/avery-iso-templates.xml: + * data/zweckform-iso-templates.xml: + * AUTHORS: + Added templates for Avery 7165, Zweckform 3688, + 4732, and 6021. + Templates + provided by Frank Altpeter. + * libglabels/xml-template.c: (xml_create_label_node): + Reordered markup and layout sub-nodes so that + resulting templates will + validate against DTD. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@424 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/AUTHORS +M glabels2/ChangeLog +M glabels2/data/avery-iso-templates.xml +M glabels2/data/glabels-2.0.dtd +M glabels2/data/zweckform-iso-templates.xml +M glabels2/libglabels/xml-template.c + +commit 9ddb032772f0b86540354e53e033a594a6e803d7 +Author: Jim Evins +Date: 2004-03-14 + + 2004-03-13 Jim Evins + + * src/object-editor-size-page.c: + (gl_object_editor_prepare_size_page): + Changed spin callback signals from "value-changed" + back to "changed." + This was accidentally introduced in a previous revision, + and can cause + size changes just by selecting the size tab. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@423 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/object-editor-size-page.c + +commit 9d106262d34c861c16ad1d32bb410513b5e3d030 +Author: Jim Evins +Date: 2004-03-07 + + 2004-03-06 Jim Evins + + * src/view.c: (draw_grid_layer): + For round labels (round and cd) adjust grid so that it + lines up with + center of label. Also, no longer draw box around label + in the grid layer, + it is hidden by he fg layer anyway. Feature suggested by + nemolivier@free.fr. Although the grid is aligned with + the center of the + label, the coordinate system is still relative to the + upper left corner + of the rectangle containing the label. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@422 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/view.c + +commit 60d890a26c81ee5fe3b6aeb587095ddc891d1871 +Author: Jim Evins +Date: 2004-02-26 + + 2004-02-25 Jim Evins + + * configure.in: + Changed version to 2.0pre1cvs + + * libglabels/xml-template.c: + (gl_xml_template_parse_templates_doc): + Removed extra xmlFreeDoc() calls upon error. Also print + the doc->URL + instead of doc->name fields when errors encountered. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@421 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/configure.in +M glabels2/libglabels/xml-template.c + +commit db892e05bdff8969d492480eaabfd53cc4d26e0e +Author: Jim Evins +Date: 2004-02-21 + + 2004-02-21 Jim Evins + + * data/avery-iso-templates.xml: + Added aliases for Avery 8651. Patch provided by Wayne + Schuller. + + * glabels.spec.in: + Added libglabels library and include file to installed + files. + + * configure.in: + Final prep for 1.93.3. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@419 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/configure.in +M glabels2/data/avery-iso-templates.xml +M glabels2/glabels.spec.in + +commit 02ab3e0ba36d0d0e212c49d536d9988b472433a5 +Author: Jim Evins +Date: 2004-02-21 + + 2004-02-20 Jim Evins + + * src/glabels-batch.c: (main): + Changed key for setting output filename to + GNOME_PRINT_KEY_OUTPUT_FILENAME + as suggested by Javier Donaire Segarra. This addresses + bug #901063. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@418 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/glabels-batch.c + +commit 5f4d73307100027c51108750bc00fd0245898f90 +Author: Jim Evins +Date: 2004-02-17 + + 2004-02-16 Jim Evins + + * configure.in: + If gtk+ >= 2.3.2 then define HAVE_FILE_CHOOSER. + + * src/Makefile.am: + Added HAVE_FILE_CHOOSER to INCLUDES. + + * src/file.c: (gl_file_open), (open_response), + (gl_file_open_real), + (gl_file_save_as), (save_as_response): + Ported to use GtkFileChooserDialog if HAVE_FILE_CHOOSER + is defined. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@417 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/configure.in +M glabels2/src/Makefile.am +M glabels2/src/file.c + +commit 70ae1974aed8233b3ddf56987d2b39c14f49eec9 +Author: Jim Evins +Date: 2004-02-16 + + 2004-02-16 Jim Evins + + * src/xml-label-04.c: (xml04_parse_image_props): + * src/xml-label-191.c: (xml191_parse_image_props): + * src/xml-label.c: (xml_parse_object_image): + Delay setting image size until after image has been + applied to new + object. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@416 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/xml-label-04.c +M glabels2/src/xml-label-191.c +M glabels2/src/xml-label.c + +commit 1793cb9fc61fe010218dc43b590c00387bad7f25 +Author: Jim Evins +Date: 2004-02-16 + + 2004-02-15 Jim Evins + + * src/label-barcode.c: (gl_label_barcode_set_data), + (gl_label_barcode_set_props): + Don't emit "changed" signal, if no change actually made + for these + methods. Reduces number of unnecessary redraws of + barcodes. + + * src/label-object.h: + * src/label-object.c: (gl_label_object_set_position), + (gl_label_object_set_position_relative), (set_size), + (gl_label_object_set_size), + (gl_label_object_set_size_honor_aspect): + Don't emit "changed" signal, if no change actually made + for these + methods. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@415 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/label-barcode.c +M glabels2/src/label-object.c +M glabels2/src/label-object.h + +commit c15370de048b1e46ae69459fc702fcd3c75b7810 +Author: Jim Evins +Date: 2004-02-15 + + 2004-02-15 Jim Evins + + * data/glabels-2.0.dtd: + Added specific subtypes for various barcode types. + + * src/bc.h: + * src/bc.c: (id_to_index), (name_to_index), (gl_barcode_new), + (gl_barcode_get_styles_list), (gl_barcode_default_digits), + (gl_barcode_can_text), (gl_barcode_text_optional), + (gl_barcode_can_csum), (gl_barcode_csum_optional), + (gl_barcode_id_to_name), (gl_barcode_name_to_id): + Changed API to use a string id, rather than a fixed + enumeration. Id and + name are separate strings. Added entries to backend + table for specific + subtypes for various barcode types. + + * src/bc-postnet.h: + * src/bc-postnet.c: (gl_barcode_postnet_new), (postnet_code), + (is_length_valid): + Modified to conform to above API. Now more stringent + with data length + for various subtypes. + + * src/bc-gnubarcode.h: + * src/bc-gnubarcode.c: (gl_barcode_gnubarcode_new), + (is_length_valid), (is_length1_valid), (is_length2_valid): + Modified to conform to above API. Now more stringent + with data length + for various subtypes. + + * src/label-barcode.h: + * src/label-barcode.c: (copy), (gl_label_barcode_set_props), + (gl_label_barcode_get_props), (get_size): + Modified to use above API for storing barcode type. + + * src/object-editor.h: + * src/object-editor-bc-page.c: (style_changed_cb), + (gl_object_editor_set_bc_style), (gl_object_editor_get_bc_style): + Modified to use above API for storing barcode type. + + * src/object-editor-size-page.c: + (gl_object_editor_prepare_size_page), (aspect_toggle_cb), + (w_spin_cb), (h_spin_cb), (size_reset_cb): + Added debug markers. + + * src/object-editor.glade: + Made barcode style combo's text entry non-editable. + + * src/print.c: (draw_barcode_object): + Modified to use above API for barcode type. + + * src/view-barcode.c: (update_object_from_editor_cb), + (update_editor_from_object_cb), + (gl_view_barcode_create_event_handler), (draw_barcode): + Modified to use above API for barcode type. + + * src/xml-label-04.c: (xml04_parse_barcode_props): + * src/xml-label-191.c: (xml191_parse_barcode_props): + * src/xml-label.c: (xml_parse_object_barcode), + (xml_create_object_barcode): + Modified to use above API for barcode type. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@414 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/data/glabels-2.0.dtd +M glabels2/src/bc-gnubarcode.c +M glabels2/src/bc-gnubarcode.h +M glabels2/src/bc-postnet.c +M glabels2/src/bc-postnet.h +M glabels2/src/bc.c +M glabels2/src/bc.h +M glabels2/src/label-barcode.c +M glabels2/src/label-barcode.h +M glabels2/src/object-editor-bc-page.c +M glabels2/src/object-editor-size-page.c +M glabels2/src/object-editor.glade +M glabels2/src/object-editor.h +M glabels2/src/print.c +M glabels2/src/view-barcode.c +M glabels2/src/xml-label-04.c +M glabels2/src/xml-label-191.c +M glabels2/src/xml-label.c + +commit 0f59322c3d8175fafb061e530a6b36c2e043b4ee +Author: Jim Evins +Date: 2004-02-07 + + 2004-02-07 Jim Evins + + * src/stock-pixmaps/Makefile.am: + * src/stock-pixmaps/stock_hchain_24.png: + * src/stock-pixmaps/stock_hchain_broken_24.png: + * src/stock-pixmaps/stock_vchain_24.png: + * src/stock-pixmaps/stock_vchain_broken_24.png: + Added chain pixmaps borrowed from the gimp's default + theme. + + * src/stock.h: + * src/stock.c: (gl_stock_init), (add_button_icon): + Added above pixmaps to stock icon sets. Created + add_button_icon() to + add these pixmaps sized as GTK_ICON_SIZE_BUTTON. + + * src/wdgt-chain-button.h + * src/wdgt-chain-button.c + * src/Makefile.am: + * po/POTFILES.in: + Added this Modified version of gimpchainbutton widget, + borrowed from + the gimp. + + * AUTHORS: + Added acknowledgements of the above borrowing from + the gimp. + + * src/object-editor-size-page.c: (aspect_toggle_cb), (w_spin_cb), + (h_spin_cb): + * src/object-editor.c: (gl_object_editor_construct_chain_button): + * src/object-editor.glade: + Replaced the keep aspect ratio check box with the above + chain-button + widget. + + * src/text-node.c: (gl_text_node_equal): + * src/text-node.h: + Added function gl_text_node_equal() to compare text_nodes. + + * src/label-image.c: (gl_label_image_set_filename): + Replaced incomplete text_node comparison code with + invocation of + gl_text_node_equal. This fixed the problem of not being + able to + resize an image using the object_editor if the aspect + ratio is not + locked. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@413 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/AUTHORS +M glabels2/ChangeLog +M glabels2/po/POTFILES.in +M glabels2/src/Makefile.am +M glabels2/src/label-image.c +M glabels2/src/object-editor-size-page.c +M glabels2/src/object-editor.c +M glabels2/src/object-editor.glade +M glabels2/src/stock-pixmaps/Makefile.am +A glabels2/src/stock-pixmaps/stock_hchain_24.png +A glabels2/src/stock-pixmaps/stock_hchain_broken_24.png +A glabels2/src/stock-pixmaps/stock_vchain_24.png +A glabels2/src/stock-pixmaps/stock_vchain_broken_24.png +M glabels2/src/stock.c +M glabels2/src/stock.h +M glabels2/src/text-node.c +M glabels2/src/text-node.h +A glabels2/src/wdgt-chain-button.c +A glabels2/src/wdgt-chain-button.h + +commit d7a5fdb634b821ba3ed2c99f90fab88b5c0aba80 +Author: Jim Evins +Date: 2004-02-05 + + 2004-02-04 Jim Evins + + * src/object-editor-image-page.c: + (gl_object_editor_prepare_image_page): + Track "changed" signal of pixmap entry's GtkEntry rather + than its + "activate" signal -- this catches all changes to the + entry rather than + just changes resulting from a browse, so one can easily + pull previous + entries from the history. (This change is marked below + on 2004-02-03, + but somehow never got checked in.) + + * src/view-highlight.c: (sl_resize_event_handler), + (sr_resize_event_handler), (st_resize_event_handler), + (sb_resize_event_handler): + Side resize handles will now confirm the actual resize + that the object + accepted before adjusting position parameters. + Previously some interesting + things happened when resizing a barcode to its minimum + size. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@412 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/object-editor-image-page.c +M glabels2/src/view-highlight.c + +commit b7270cca21f97c762f1a1ff50f63df7efc8b2c5c +Author: Jim Evins +Date: 2004-02-04 + + 2004-02-03 Jim Evins + + * src/object-editor-image-page.c: + (gl_object_editor_prepare_image_page): + Track "changed" signal of pixmap entry's GtkEntry rather + than its + "activate" signal -- this catches all changes to the + entry rather than + just changes resulting from a browse, so one can easily + pull previous + entries from the history. + + * src/view-highlight.c: (tl_resize_event_handler), + (tr_resize_event_handler), (bl_resize_event_handler), + (br_resize_event_handler): + Allow control key to be dropped while dragging a corner + resize handle + without losing the aspect ratio lock. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@411 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/view-highlight.c + +commit 8d1652bfd6e74700063cdccb120693515c71e6ea +Author: Jim Evins +Date: 2004-02-03 + + 2004-02-02 Jim Evins + + * src/label-image.c: (gl_label_image_set_filename): + When setting a new filename adjust size such that the + aspect ratio of + the image is preserved using the current size as a + bounding box. + + * src/view-image.c: (update_object_from_editor_cb): + When updating object from editor, feed back possible + size changes to + editor as a result of a possible change in image. + + * src/object-editor-size-page.c: (size_reset_cb): + Fixed typo when blocking spin handlers. If the base + size is larger than + the max size, treat max size as a bounding box while + keeping aspect + ratio. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@410 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/label-image.c +M glabels2/src/object-editor-size-page.c +M glabels2/src/view-image.c + +commit 6c3073bcc36e8c9e2c46e743b48f559970a14e12 +Author: Jim Evins +Date: 2004-02-03 + + 2004-02-02 Jim Evins + + * src/label-object.h: + * src/label-object.c: (gl_label_object_set_size), + (gl_label_object_set_size_honor_aspect): + Added gl_label_object_set_size_honor_aspect() which will + maintain the + current aspect ratio by modifying the supplied w or + h apropriately. + + * src/view-highlight.c: (tl_resize_event_handler), + (tr_resize_event_handler), (bl_resize_event_handler), + (br_resize_event_handler): + Corner handles will now maintain the current aspect + ratio if the + control key is pressed while resizing. This addresses + feature + request #816603. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@409 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/label-object.c +M glabels2/src/label-object.h +M glabels2/src/view-highlight.c + +commit 66a83b58e4427fffbb7181528d6754a31513de07 +Author: Jim Evins +Date: 2004-01-31 + + 2004-01-31 Jim Evins + + * AUTHORS: + * data/avery-us-templates.xml: + Added entries for "LSK-3," "LSK-5," and "LSK-8." + Submitted by JBadger. + + * libglabels/template.c: (read_template_files_from_dir): + Corrected problem with testing for extensions. + + * src/object-editor.glade: + Corrected grouping of radio buttons in barcode data page. + + * src/print.c: (draw_barcode_object): + * src/view-barcode.c: (draw_barcode): + Corrected problem with calculation of y_offset for + locating characters. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@408 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/AUTHORS +M glabels2/ChangeLog +M glabels2/data/avery-us-templates.xml +M glabels2/libglabels/template.c +M glabels2/src/object-editor.glade +M glabels2/src/print.c +M glabels2/src/view-barcode.c + +commit 91acdb1f63c5e89de292e321ce93071488e11261 +Author: Jim Evins +Date: 2004-01-25 + + 2004-01-24 Jim Evins + + * AUTHORS: + * data/avery-us-templates.xml: + Added Avery 5824, submitted by Fred Bacon. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@407 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/AUTHORS +M glabels2/ChangeLog +M glabels2/data/avery-us-templates.xml + +commit 9a42fd691a980f7735c152055f56e25c8d556a6e +Author: Jim Evins +Date: 2004-01-21 + + 2004-01-20 Jim Evins + + Catching up on a couple of backlogged user template submissions. + + * data/avery-iso-templates.xml: + Added "DECAdry OLW-4731" and "DECAdry DLW-1731" aliases + for Avery 7160. + Suggested by Linas Jakucionis. + + * data/zweckform-iso-templates.xml: + Added Zweckform 4760, submitted by Thomas Vill. + + * AUTHORS: + Updated to reflect above submissions. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@406 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/AUTHORS +M glabels2/ChangeLog +M glabels2/data/avery-iso-templates.xml +M glabels2/data/zweckform-iso-templates.xml + +commit e1a2cde6e4ffbe6938f93ae8629dc1f80d3a40fa +Author: Jim Evins +Date: 2004-01-07 + + 2004-01-06 Jim Evins + + Split-out template.[ch], paper.[ch], xml-template.[ch], + xml-paper.[ch], and + xml.[ch] into a separate library called libglabels, to facilitate + third + party use of glabels template files. This was suggested by + Wayne Schuller. + Once split-out, some modifications to the structures and + functions to + make a cleaner more useful API, hopefully. Rather extensive + changes have + propogated to other modules. + + * src/paper.h: + * src/paper.c: + * src/template.h: + * src/template.c: + * src/xml-paper.h: + * src/xml-paper.c: + * src/xml-template.h: + * src/xml-template.c: + * src/xml.h: + * src/xml.c: + These files have been moved to libglabels/. API cleanup + performed. + + * libglabels/libglabels.h: + * libglabels/libglabels-private.h: + * libglabels/Makefile.am: + These files have been added to finish out libglabels. + + * Makefile.am: + * configure.in: + * glabels.spec.in: + * po/POTFILES.in: + * src/Makefile.am: + Modified to reflect new sets of files in src/ and + libglabels/. + + * COPYING.LIBGLABELS: + * COPYING-DOCS: + Added copy of the LGPL for libglabels, and a copy the + GFDL for + documentation. + + * src/glabels-batch.c: + * src/glabels.c: + * src/label.c: (gl_label_finalize), (gl_label_set_template), + (gl_label_get_size): + * src/label.h: + * src/prefs-model.c: (gl_prefs_model_load_settings): + * src/print-dialog.c: + * src/print.c: (gl_print_simple), (gl_print_merge_collated), + (gl_print_merge_uncollated), (gl_print_batch), (print_info_free), + (print_crop_marks), (print_label), (draw_outline), + (clip_to_outline), (clip_punchouts): + * src/template-designer.c: (construct_pg_size_page), + (pg_size_page_changed_cb), (layout_page_changed_cb), + (print_test_cb), (build_template): + * src/util.c: (gl_util_fraction): + * src/util.h: + * src/view.c: (draw_bg_fg_layers), (draw_bg_fg_rect), + (draw_bg_fg_rounded_rect), (draw_bg_fg_round), (draw_bg_fg_cd), + (draw_bg_fg_cd_bc), (draw_markup_layer), (draw_markup_margin), + (draw_markup_margin_rect), (draw_markup_margin_rounded_rect), + (draw_markup_margin_round), (draw_markup_margin_cd), + (draw_markup_margin_cd_bc), (draw_markup_line), + (draw_markup_circle), (gl_view_copy): + * src/wdgt-media-select.c: (gl_wdgt_media_select_construct), + (page_size_entry_changed_cb), (details_update), (get_layout_desc), + (get_label_size_desc): + * src/wdgt-mini-preview.c: + (gl_wdgt_mini_preview_set_label_by_name), (mini_outline_list_new), + (cdbc_item): + * src/wdgt-print-copies.c: (gl_wdgt_print_copies_construct): + * src/wdgt-print-merge.c: (gl_wdgt_print_merge_construct): + * src/wdgt-rotate-label.c: (mini_preview_canvas_update), + (gl_wdgt_rotate_label_set_template_name), (cdbc_item): + * src/wdgt-rotate-label.h: + * src/xml-label-04.c: (xml04_parse_media_description): + * src/xml-label-191.c: (gl_xml_label_191_parse), + (xml191_parse_sheet), (xml191_parse_label), (xml191_parse_layout), + (xml191_parse_markup), (xml191_parse_alias): + * src/xml-label.c: (xml_doc_to_label), (xml_parse_label), + (xml_label_to_doc): + Various changes to accomodate new libglabels API. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@405 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +A glabels2/COPYING-DOCS +A glabels2/COPYING.LIBGLABELS +M glabels2/ChangeLog +M glabels2/Makefile.am +M glabels2/configure.in +M glabels2/glabels.spec.in +A glabels2/libglabels/Makefile.am +A glabels2/libglabels/libglabels-private.h +A glabels2/libglabels/libglabels.h +R066 glabels2/src/paper.c glabels2/libglabels/paper.c +A glabels2/libglabels/paper.h +A glabels2/libglabels/template.c +A glabels2/libglabels/template.h +A glabels2/libglabels/xml-paper.c +A glabels2/libglabels/xml-paper.h +A glabels2/libglabels/xml-template.c +A glabels2/libglabels/xml-template.h +R090 glabels2/src/xml.c glabels2/libglabels/xml.c +R064 glabels2/src/xml.h glabels2/libglabels/xml.h +M glabels2/po/POTFILES.in +M glabels2/src/Makefile.am +M glabels2/src/glabels-batch.c +M glabels2/src/glabels.c +M glabels2/src/label.c +M glabels2/src/label.h +D glabels2/src/paper.h +M glabels2/src/prefs-model.c +M glabels2/src/print-dialog.c +M glabels2/src/print.c +M glabels2/src/template-designer.c +D glabels2/src/template.c +D glabels2/src/template.h +M glabels2/src/util.c +M glabels2/src/util.h +M glabels2/src/view.c +M glabels2/src/wdgt-media-select.c +M glabels2/src/wdgt-mini-preview.c +M glabels2/src/wdgt-print-copies.c +M glabels2/src/wdgt-print-merge.c +M glabels2/src/wdgt-rotate-label.c +M glabels2/src/wdgt-rotate-label.h +M glabels2/src/xml-label-04.c +M glabels2/src/xml-label-191.c +M glabels2/src/xml-label.c +D glabels2/src/xml-paper.c +D glabels2/src/xml-paper.h +D glabels2/src/xml-template.c +D glabels2/src/xml-template.h + +commit 5a3bef4441d08531523c1939451fbbe8071e75cd +Author: Jim Evins +Date: 2004-01-04 + + 2004-01-03 Jim Evins + + * configure.in: + Release 1.93.2. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@403 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/configure.in + +commit a7899ecce3adcf1bc9fe4f59430acc35de88e2a8 +Author: Jim Evins +Date: 2004-01-04 + + 2004-01-03 Jim Evins + + * AUTHORS: + Added acknowledgement of contributions by Wayne Schuller. + + * src/commands.c: (gl_cmd_file_print): + Create extra reference to print dialog, so that it can + be properly re-used. + + * src/mygal/mygal-combo-box.h: + * src/mygal/mygal-combo-box.c: + (mygal_combo_box_popup_hide_unconditional), + (mygal_combo_box_popup_display), (mygal_combo_box_set_display), + (gtk_combo_set_tearoff_state), (mygal_combo_box_construct), + (mygal_combo_box_set_arrow_relief), (mygal_combo_box_set_title), + (mygal_combo_box_set_tearable): + Changed all occurances of GTK_IS_COMBO_BOX to + MYGAL_IS_COMBO_BOX, to + complete the rename of this widget to prevent namespace + collisions + with Gtk+-2.3. + + * src/prefs-dialog.glade: + Fixed alignment of Fill/Color widgets. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@402 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/AUTHORS +M glabels2/ChangeLog +M glabels2/src/commands.c +M glabels2/src/mygal/mygal-combo-box.c +M glabels2/src/mygal/mygal-combo-box.h +M glabels2/src/prefs-dialog.glade + +commit 67b655a91bbe0c6173998617b4c1e83f3fb01eb1 +Author: Jim Evins +Date: 2004-01-04 + + 2004-01-03 Jim Evins + + * data/avery-iso-templates.xml: + Added user submitted templates. + Avery 8435A & 8435B, submitted by Ludger Solbach. + + * doc/C/glabels.xml: + Added minimal documentation, noting the new template + designer. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@401 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/data/avery-iso-templates.xml + +commit 827d4017d03dcece28006a5486674a8d4551ac29 +Author: Jim Evins +Date: 2004-01-03 + + 2004-01-03 Jim Evins + + * pixmaps/ex-rect-size.png: + * pixmaps/ex-round-size.png: + * pixmaps/ex-cd-size.png: + * pixmaps/Makefile.am: + Added ex-rect-size.png, ex-round-size.png, and + ex-cd-size.png image + files to be used as illustrations/examples in the + template-designer. + + * src/template-designer.c: (construct_rect_size_page), + (construct_round_size_page), (construct_cd_size_page), + (construct_nlayouts_page), (rect_size_page_prepare_cb), + (round_size_page_prepare_cb), (cd_size_page_prepare_cb), + (layout_page_prepare_cb), (build_template): + * src/template-designer.glade: + Added illustrations for rectangle, round, and cd label + size pages. + Added margin spinboxes to these pages, and now add a + margin markup + to the constructed template. Added realistic default + values for + some of the size spinboxes. Cleaned up the code for + setting spinbox + ranges on the layouts page. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@400 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/pixmaps/Makefile.am +A glabels2/pixmaps/ex-cd-size.png +A glabels2/pixmaps/ex-rect-size.png +A glabels2/pixmaps/ex-round-size.png +M glabels2/src/template-designer.c +M glabels2/src/template-designer.glade + +commit 7d0f397683e2a28806fd2cefce1d846a2064f186 +Author: Jim Evins +Date: 2004-01-03 + + 2004-01-02 Jim Evins + + * src/object-editor-size-page.c: (h_spin_cb): + Fixed cut-n-paste error in h_spin_cb that loaded h from + the wrong spinbutton. + + * src/object-editor.h: + * src/object-editor.c: (gl_object_editor_class_init), + (gl_object_editor_changed_cb), (gl_object_editor_size_changed_cb): + * src/object-editor-private.h: + * src/object-editor-size-page.c: (w_spin_cb), (h_spin_cb), + (size_reset_cb): + Added "size_changed" signal. + + * src/view-text.c: (construct_properties_editor), + (update_object_from_editor_cb), + (update_object_from_editor_size_cb): + Track size changes from object editor separately from + other + properties. This is so the default size (0,0) of a text + object is not modified unintentionally. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@399 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/object-editor-private.h +M glabels2/src/object-editor-size-page.c +M glabels2/src/object-editor.c +M glabels2/src/object-editor.h +M glabels2/src/view-text.c + +commit e4a19ad71c510363fa80e14c98f65c10a1f187ac +Author: Jim Evins +Date: 2003-12-30 + + 2003-12-30 Wayne Schuller + + Added feature: line spacing - allows you to comfortably space + a text box to + fit a label perfectly. + + * data/glabels-2.0.dtd: + * src/label-object.c: (gl_label_object_set_text_line_spacing), + (gl_label_object_get_text_alignment), + (gl_label_object_get_text_line_spacing): + * src/label-object.h: + * src/label-text.c: (gl_label_text_class_init), + (gl_label_text_instance_init), (copy), (get_size), + (set_text_line_spacing), (get_text_alignment), + (get_text_line_spacing): + * src/object-editor-private.h: + * src/object-editor-text-page.c: + (gl_object_editor_prepare_text_page), + (gl_object_editor_set_text_line_spacing), + (gl_object_editor_get_text_line_spacing): + * src/object-editor.glade: + * src/object-editor.h: + * src/prefs-dialog.c: (construct_object_page), + (update_object_page_from_prefs), (update_prefs_from_object_page): + * src/prefs-dialog.glade: + * src/prefs-model.c: (gl_prefs_model_save_settings), + (gl_prefs_model_load_settings), (get_float): + * src/prefs-model.h: + * src/print.c: (draw_text_object): + * src/ui-sidebar.c: + * src/view-text.c: (update_object_from_editor_cb), + (update_editor_from_object_cb), + (gl_view_text_create_event_handler), (draw_hacktext): + * src/view.c: (gl_view_construct), + (gl_view_set_selection_text_line_spacing), + (gl_view_set_default_text_line_spacing), + (gl_view_get_default_text_line_spacing): + * src/view.h: + * src/xml-label.c: (xml_parse_toplevel_span), + (xml_create_toplevel_span): + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@398 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/data/glabels-2.0.dtd +M glabels2/src/label-object.c +M glabels2/src/label-object.h +M glabels2/src/label-text.c +M glabels2/src/object-editor-private.h +M glabels2/src/object-editor-text-page.c +M glabels2/src/object-editor.glade +M glabels2/src/object-editor.h +M glabels2/src/prefs-dialog.c +M glabels2/src/prefs-dialog.glade +M glabels2/src/prefs-model.c +M glabels2/src/prefs-model.h +M glabels2/src/print.c +M glabels2/src/ui-sidebar.c +M glabels2/src/view-text.c +M glabels2/src/view.c +M glabels2/src/view.h +M glabels2/src/xml-label.c + +commit aa6be2ee3a8a2ca904810f4fde65721d68127093 +Author: Jim Evins +Date: 2003-12-30 + + 2003-12-30 Jim Evins + + * src/template-designer.c: + * src/template-designer.h: + * src/template-designer.glade: + New template designer assistant. + + * po/POTFILES.in: + * src/Makefile.am: + Added entries for src/template-designer.* files. + + * pixmaps/ex-1layout.png + * pixmaps/ex-2layouts.png + * pixmaps/Makefile.am: + Added the new image files ex-*.png used as illustrations + in the + template designer assistant. + + * src/print-dialog.h: + * src/print-dialog.c: (gl_print_dialog_finalize), + (gl_print_dialog_new), (gl_print_dialog_construct), + (gl_print_dialog_force_outline_flag): + Changed first argument of gl_print_dialog_new() from + glView to glLabel, + to support printing from the template designer assistant + which does not + have a full-fledged view. Nothing else from the view + object was being + used by the dialog anyway. + + Added the gl_print_dialog_force_outline_flag() method, + for better + integration with the template designer assistant. + + + * src/commands.h: + * src/commands.c: (gl_cmd_file_template_designer), + (gl_cmd_file_print): + Modified print command to provide label instead of view + to dialog. + Added the gl_cmd_file_template_designer() command to + invoke the + template designer assistant. + + * src/ui.c: + * src/glabels-ui.xml: + Added support for template designer assistant. + + * src/wdgt-mini-preview.h: + * src/wdgt-mini-preview.c: (gl_wdgt_mini_preview_set_template), + (gl_wdgt_mini_preview_set_bg_color): + Preview is now centered in canvas. Added + gl_wdgt_mini_preview_set_bg_color() to allow the template + designer + assistant to match the background color with its own. + + * src/print.c: (clip_to_outline): + Fixed really stupid bug when adding waste to clip region + of rectangular + labels/cards. Each side of the clip region needs to be + extended by + twice the waste margin, as well as negatively offset by + the waste + margin. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@397 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/pixmaps/Makefile.am +A glabels2/pixmaps/ex-1layout.png +A glabels2/pixmaps/ex-2layouts.png +M glabels2/po/POTFILES.in +M glabels2/src/Makefile.am +M glabels2/src/commands.c +M glabels2/src/commands.h +M glabels2/src/glabels-ui.xml +M glabels2/src/print-dialog.c +M glabels2/src/print-dialog.h +M glabels2/src/print.c +A glabels2/src/template-designer.c +A glabels2/src/template-designer.glade +A glabels2/src/template-designer.h +M glabels2/src/ui.c +M glabels2/src/wdgt-mini-preview.c +M glabels2/src/wdgt-mini-preview.h + +commit 9b9df2809e35e02aa4c14ff05aaeb683b25c63c8 +Author: Jim Evins +Date: 2003-12-28 + + 2003-12-28 Jim Evins + + * src/prefs-dialog.c: (update_object_page_from_prefs): + Block intermediary function align_toggle_cb() instead of + update_prefs_from_object_page() for the three alignment + widgets. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@396 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/prefs-dialog.c + +commit 94be7f87f0bce60192cf06eee6e10389a82c4e64 +Author: Jim Evins +Date: 2003-12-28 + + 2003-12-28 Wayne Schuller + + * src/file.c: (gl_file_new), (gl_file_properties): Swap + button order and set default for higificatory pleasure. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@395 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/file.c + +commit 4af61cfcad47d9ba9940760116e139a337e0c301 +Author: Jim Evins +Date: 2003-12-28 + + 2003-12-27 Jim Evins + + * barcode-0.98/Makefile.am: + One last time: removed doc/Makefile and po/Makefile.in.in + from + EXTRA_DIST files. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@394 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/barcode-0.98/Makefile.am + +commit e896552f051622647d765aaaf8a753f883d65846 +Author: Jim Evins +Date: 2003-12-28 + + 2003-12-27 Jim Evins + + reviewed by: + + * barcode-0.98/Makefile.am: + Removed config.stat entry from EXTRA_DIST files. + + * barcode-0.98/Makefile.in: + Removed. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@393 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/barcode-0.98/Makefile.am +D glabels2/barcode-0.98/Makefile.in + +commit 6c7d8f20932bc80e2461d12fd2c4ea146fc9c510 +Author: Jim Evins +Date: 2003-12-28 + + 2003-12-27 Jim Evins + + * configure.in: + Updated to work with latest gnome-common package + from CVS. + Removed recursive configuration of barcode-0.98. + + * acconfig.h: + * macros/*: + Removed. + + * Makefile.am: + Added barcode-0.98/ as a SUBDIR, and removed + dist-hook. + + * barcode-0.98/Makefile.in: + * barcode-0.98/configure.in: + * barcode-0.98/Makefile.am: + * barcode-0.98/README.glabels: + Modified to ignore the barcode package's build system, + and build + as a part of glabels. + Renamed Makefile.in to Makefile.in.dist. + Renamed configure.in to configure.in.dist. + Added barcode-0.98/Makefile.am and + barcode-0.98/README.glabels. + * src/Makefile.am: + * src/mygal/Makefile.am: + * src/recent-files/Makefile.am: + In order to build against the GNOME 2.5 platform, + all use of *_DISABLE_DEPRECATED compile-time flags + has been removed. + + * src/mygal/Makefile.am: + * src/mygal/mygal-combo-box.c: + * src/mygal/mygal-combo-box.h: + * src/mygal/widget-color-combo.c: + * src/mygal/widget-color-combo.h: + * po/POTFILES.in: + In order to build against the GNOME 2.5 platform, + Renamed gtk_combo_box widget to mygal_combo_box, + to prevent namespace + collisions with the real gtk_combo_box widget, + now a part of gtk. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@392 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +A glabels2/barcode-0.98/Makefile.am + +commit 0a403c6d9718254ea54850ef1d1f164c48da6b92 +Author: Jim Evins +Date: 2003-12-28 + + 2003-12-27 Jim Evins + + * configure.in: + Updated to work with latest gnome-common package from CVS. + Removed recursive configuration of barcode-0.98. + + * acconfig.h: + * macros/*: + Removed. + + * Makefile.am: + Added barcode-0.98/ as a SUBDIR, and removed dist-hook. + + * barcode-0.98/Makefile.in: + * barcode-0.98/configure.in: + * barcode-0.98/Makefile.am: + * barcode-0.98/README.glabels: + Modified to ignore the barcode package's build system, + and build + as a part of glabels. + Renamed Makefile.in to Makefile.in.dist. + Renamed configure.in to configure.in.dist. + Added barcode-0.98/Makefile.am and + barcode-0.98/README.glabels. + + * src/Makefile.am: + * src/mygal/Makefile.am: + * src/recent-files/Makefile.am: + In order to build against the GNOME 2.5 platform, + all use of *_DISABLE_DEPRECATED compile-time flags has + been removed. + + * src/mygal/Makefile.am: + * src/mygal/mygal-combo-box.c: + * src/mygal/mygal-combo-box.h: + * src/mygal/widget-color-combo.c: + * src/mygal/widget-color-combo.h: + * po/POTFILES.in: + In order to build against the GNOME 2.5 platform, + Renamed gtk_combo_box widget to mygal_combo_box, to + prevent namespace + collisions with the real gtk_combo_box widget, now a + part of gtk. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@391 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +D glabels2/macros/Makefile.am +D glabels2/macros/aclocal-include.m4 +D glabels2/macros/autogen.sh +D glabels2/macros/compiler-flags.m4 +D glabels2/macros/curses.m4 +D glabels2/macros/gnome-bonobo-check.m4 +D glabels2/macros/gnome-common.m4 +D glabels2/macros/gnome-cxx-check.m4 +D glabels2/macros/gnome-fileutils.m4 +D glabels2/macros/gnome-gettext.m4 +D glabels2/macros/gnome-ghttp-check.m4 +D glabels2/macros/gnome-gnorba-check.m4 +D glabels2/macros/gnome-guile-checks.m4 +D glabels2/macros/gnome-libgtop-check.m4 +D glabels2/macros/gnome-objc-checks.m4 +D glabels2/macros/gnome-orbit-check.m4 +D glabels2/macros/gnome-pilot.m4 +D glabels2/macros/gnome-print-check.m4 +D glabels2/macros/gnome-pthread-check.m4 +D glabels2/macros/gnome-support.m4 +D glabels2/macros/gnome-undelfs.m4 +D glabels2/macros/gnome-vfs.m4 +D glabels2/macros/gnome-x-checks.m4 +D glabels2/macros/gnome-xml-check.m4 +D glabels2/macros/gnome.m4 +D glabels2/macros/gperf-check.m4 +D glabels2/macros/linger.m4 +D glabels2/macros/need-declaration.m4 +D glabels2/macros/psiconv.m4 + +commit 374483b9c1e3bd3054a71d6b502c02218baee4c5 +Author: Jim Evins +Date: 2003-12-28 + + 2003-12-27 Jim Evins + + * configure.in: + Updated to work with latest gnome-common package from CVS. + Removed recursive configuration of barcode-0.98. + + * acconfig.h: + * macros/*: + Removed. + + * Makefile.am: + Added barcode-0.98/ as a SUBDIR, and removed dist-hook. + + * barcode-0.98/Makefile.in: + * barcode-0.98/configure.in: + * barcode-0.98/Makefile.am: + * barcode-0.98/README.glabels: + Modified to ignore the barcode package's build system, + and build + as a part of glabels. + Renamed Makefile.in to Makefile.in.dist. + Renamed configure.in to configure.in.dist. + Added barcode-0.98/Makefile.am and + barcode-0.98/README.glabels. + + * src/Makefile.am: + * src/mygal/Makefile.am: + * src/recent-files/Makefile.am: + In order to build against the GNOME 2.5 platform, + all use of *_DISABLE_DEPRECATED compile-time flags has + been removed. + + * src/mygal/Makefile.am: + * src/mygal/mygal-combo-box.c: + * src/mygal/mygal-combo-box.h: + * src/mygal/widget-color-combo.c: + * src/mygal/widget-color-combo.h: + * po/POTFILES.in: + In order to build against the GNOME 2.5 platform, + Renamed gtk_combo_box widget to mygal_combo_box, to + prevent namespace + collisions with the real gtk_combo_box widget, now a + part of gtk. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@390 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/Makefile.am +D glabels2/acconfig.h +M glabels2/barcode-0.98/Makefile.in +C100 glabels2/barcode-0.98/Makefile.in +glabels2/barcode-0.98/Makefile.in.dist +A glabels2/barcode-0.98/README.glabels +R100 glabels2/barcode-0.98/configure.in +glabels2/barcode-0.98/configure.in.dist +M glabels2/configure.in +M glabels2/po/POTFILES.in +M glabels2/src/Makefile.am +M glabels2/src/mygal/Makefile.am +D glabels2/src/mygal/gtk-combo-box.h +R080 glabels2/src/mygal/gtk-combo-box.c +glabels2/src/mygal/mygal-combo-box.c +A glabels2/src/mygal/mygal-combo-box.h +M glabels2/src/mygal/widget-color-combo.c +M glabels2/src/mygal/widget-color-combo.h +M glabels2/src/recent-files/Makefile.am + +commit 0fc7cd31248b35914e681b37cd703f5366d88c76 +Author: Jim Evins +Date: 2003-12-27 + + 2003-12-26 Jim Evins + + * src/paper.c: + * src/template.c: + * src/util.c: + * src/util.h: + Moved local versions of get_home_data_dir() in paper.c and + template.c to util package. Cleaned up formatting in + util.[ch]. + + * src/template.c: + In gl_template_register() save a copy of the template in + ~/.glabels if the template is not known. Still need to + handle duplicate filename case and duplicate name but + different template case. + + * src/xml-label.c: + * src/xml.h: + Moved local definition of NAME_SPACE macro from + xml-label.c + to xml.h. + + * src/xml-template.c: + * src/xml-template.h: + Added function gl_xml_template_write_template_to_file(), + used + in gl_template_register(). + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@389 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/paper.c +M glabels2/src/template.c +M glabels2/src/util.c +M glabels2/src/util.h +M glabels2/src/xml-label.c +M glabels2/src/xml-template.c +M glabels2/src/xml-template.h +M glabels2/src/xml.h + +commit a155fb708375c1ed04bd184a45866ea1606a1831 +Author: Jim Evins +Date: 2003-12-26 + + Added user contributed template. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@388 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/AUTHORS +M glabels2/data/misc-iso-templates.xml + +commit ab07958f3b8f89b3c2c8be7f836217559aacbdef +Author: Jim Evins +Date: 2003-12-26 + + Preparing for 1.93.2 development. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@387 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/configure.in + +commit 33b3bebc5d206145cf608c7112ecf8b188ac0a1c +Author: Jim Evins +Date: 2003-12-26 + + When looking up templates by name and name isn't found, return + first template instead of NULL (suggested by Wayne Schuller + ). In addition, added code to register + templates (make known, if not already known) when they are encountered + when reading a label. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@386 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/paper.c +M glabels2/src/paper.h +M glabels2/src/template.c +M glabels2/src/template.h +M glabels2/src/xml-label-191.c +M glabels2/src/xml-label.c + +commit f1357e3a29e2b291c6574f49164497e046d2feab +Author: Jim Evins +Date: 2003-12-23 + + Final prep for 1.93.1. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@384 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/configure.in + +commit 5a3d0ee28811fc9ee872552cd7c29020f281bf21 +Author: Jim Evins +Date: 2003-12-23 + + Added scrollkeeper stuff. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@383 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/glabels.spec.in + +commit 8cf4bade5f2b17f356f7e8253ed89844035638eb +Author: Jim Evins +Date: 2003-12-22 + + New user submitted template. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@382 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/AUTHORS +M glabels2/data/misc-iso-templates.xml + +commit 198fee144039f49f27295e518c0e2e115b07cd1d +Author: Jim Evins +Date: 2003-12-22 + + Changed some tabbed notebook labels to hopefully be more + understandable. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@381 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/object-editor.glade + +commit 2f77d3c19cd97dd2d55dd3bff8a4d5046ef6e2b6 +Author: Jim Evins +Date: 2003-12-21 + + In size_reset_cb() fixed broken, un-initialized, use of w_base + and h_base. This was accidentally introduced when modified to + track gl_prefs. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@380 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/object-editor-size-page.c + +commit be3625185312bb65c5538d3147ac8c2573eda437 +Author: Jim Evins +Date: 2003-12-20 + + Added skeletal xml documentation. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@379 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +A glabels2/omf.make +A glabels2/xmldocs.make + +commit c110ae640822b5be441c7ae3802a36b80e6c20ad +Author: Jim Evins +Date: 2003-12-19 + + Fixed properties for text and linewidth spinbuttons. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@378 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/object-editor.glade +M glabels2/src/prefs-dialog.glade + +commit 44e32b0c46bf50195856ebc26b09fcb4f1f3da2a +Author: Jim Evins +Date: 2003-12-19 + + Created 2 methods for setting label for mini-preview widget. + The first is "by name" and the second is by template. This second + method allows us to use a label's local template, even if its name + is not an exact match with an existing template's -- can occur if + templates are renamed between versions or if a label uses someone + else's custom template. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@377 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/wdgt-media-select.c +M glabels2/src/wdgt-mini-preview.c +M glabels2/src/wdgt-mini-preview.h +M glabels2/src/wdgt-print-copies.c +M glabels2/src/wdgt-print-merge.c + +commit 00dd4521fae11dda1e5a53c5adb4edd044bb9689 +Author: Jim Evins +Date: 2003-12-17 + + Modifications to track properties of selected objects. + This addresses Bug #839801. Patch provided by Emmanuel Pacaud + . + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@376 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/mygal/widget-color-combo.c +M glabels2/src/ui-property-bar.c +M glabels2/src/ui-property-bar.h + +commit 768611c0fbde602b50f940ae142ee5eb3dc704db +Author: Jim Evins +Date: 2003-12-14 + + Added src/prefs-model.[ch]. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@375 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/po/POTFILES.in + +commit 544b2c55be62f99f9a509d534c245c0551445c49 +Author: Jim Evins +Date: 2003-12-14 + + Added 2 user submitted templates. Did a little cleanup of the + avery-iso and zweckform-iso files. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@374 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/AUTHORS +M glabels2/data/avery-iso-templates.xml +M glabels2/data/zweckform-iso-templates.xml + +commit 9485ecff9019ccd81087c0a65c99a006a7f0d761 +Author: Jim Evins +Date: 2003-12-14 + + Added menu entry to toggle visibility of property toolbar. Also added + entry to toggle its tooltips. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@373 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/glabels-ui.xml +M glabels2/src/prefs-model.c +M glabels2/src/prefs-model.h +M glabels2/src/ui.c + +commit d8c8689edc8700b670853f040d4aab1c41138a33 +Author: Jim Evins +Date: 2003-12-14 + + Track changes in prefered units and update widgets appropriately. + This addresses bug #852974. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@372 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/object-editor-lsize-page.c +M glabels2/src/object-editor-position-page.c +M glabels2/src/object-editor-private.h +M glabels2/src/object-editor-size-page.c +M glabels2/src/object-editor.c +M glabels2/src/wdgt-media-select.c + +commit 1d82d0c3852692d9931c1e5b0533ec50ba3646d1 +Author: Jim Evins +Date: 2003-12-12 + + Removed some artifacts in copy() method. In particular a g_free() + on an unitialized automatic variable was removed, which caused a + copy/paste of a text object to segfault (See bug #857773). + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@371 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/label-text.c + +commit 4d2997726e0d0c5a27e95cf674132c3f3a293d96 +Author: Jim Evins +Date: 2003-12-07 + + View box's object will track position in object editor. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@370 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/view-box.c + +commit 6acb95f4d5fc360a087b7a7f6ab4c9eb9848494e +Author: Jim Evins +Date: 2003-12-06 + + - Changed gl_prefs from a simple structure to a full-fledged object + (prefs_model). + - Moved prefs_init after paper_init so that page size proof reading + code in prefs_model_load_settings works properly. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@369 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/Makefile.am +M glabels2/src/commands.c +M glabels2/src/glabels.c +M glabels2/src/prefs-dialog.c +A glabels2/src/prefs-model.c +C056 glabels2/src/prefs.h glabels2/src/prefs-model.h +M glabels2/src/prefs.c +M glabels2/src/prefs.h +M glabels2/src/template.c +M glabels2/src/ui.c + +commit b9771d1ad8a9cf97ef7100adfed558098d53cb49 +Author: Jim Evins +Date: 2003-12-03 + + Adjust canvas scroll region if when label size is changed. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@368 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/view.c + +commit b4c795d8542654896ac92d04641cfc9b4a70bd8d +Author: Jim Evins +Date: 2003-12-03 + + Print dialog now tracks changes to a label's template. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@367 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/print-dialog.c + +commit fa0b7499395a94216c9502f06bce301d10fa42b0 +Author: Jim Evins +Date: 2003-12-03 + + Print dialog is now a full-fledged object, with a unique instance + attached to a view. This address Bug #839860. The dialog is also + no longer modal. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@366 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/commands.c +M glabels2/src/print-dialog.c +M glabels2/src/print-dialog.h +M glabels2/src/view.h + +commit eb15aa82624a0bc2e24907b28c06ae7a33fb7f58 +Author: Jim Evins +Date: 2003-12-02 + + When setting ranges for object-editor size and position spinboxes, + allow for plenty of slop. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@365 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/object-editor-lsize-page.c +M glabels2/src/object-editor-position-page.c +M glabels2/src/object-editor-size-page.c +M glabels2/src/view-barcode.c +M glabels2/src/view-box.c +M glabels2/src/view-ellipse.c +M glabels2/src/view-image.c +M glabels2/src/view-line.c + +commit fb57f0fc0e806719cd1efacde8da67492eeed71d +Author: Jim Evins +Date: 2003-12-01 + + Text merge backend now assumes text files are encoded according to + the current locale -- converts to UTF8 for internal use. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@364 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/merge-text.c + +commit f59501fe42e73950cac52de4362ec6937f0795b7 +Author: Jim Evins +Date: 2003-12-01 + + Getting ready for work on 1.93.1. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@363 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/configure.in + +commit 516923ce1d1be249861bd04423fd8aebdc338675 +Author: Jim Evins +Date: 2003-11-30 + + Final preps for 1.93.0. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@361 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/TODO +M glabels2/configure.in + +commit 0d23211916e298372d4cb0d7df1df1c4fe67c43b +Author: Jim Evins +Date: 2003-11-29 + + Make sure canvas item representing selection region has a finite size. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@360 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/view.c + +commit 8a8670b3964dc497eb410a49a3c7a1d77ea3ff07 +Author: Jim Evins +Date: 2003-11-29 + + Added build dependency on libglade2. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@359 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/glabels.spec.in + +commit 2c65342596e10da4ca0a8219a7885b34cec7a6cc +Author: Jim Evins +Date: 2003-11-29 + + Delay doing a gtk_widget_show on notebook until it is known if any + pages are visible or not. Doing the show on a notebook with all + hidden pages causes a crash on Fedora Core 1/Gnome 2.4. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@358 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/object-editor.c + +commit 115198aeead93ef3ef97cd081f5b855622403e0a +Author: Jim Evins +Date: 2003-11-28 + + gl_view_delete_selection(): Actually clear out selection before + deleting these objects. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@357 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/view.c + +commit 6836860e2dab3b384e89982b8df9856b64c6c911 +Author: Jim Evins +Date: 2003-11-27 + + Created generic "get" methods for text, fill and line properties + for all label objects. This will make it easier to track changes + in a general view such as the property toolbar. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@356 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/label-barcode.c +M glabels2/src/label-barcode.h +M glabels2/src/label-box.c +M glabels2/src/label-box.h +M glabels2/src/label-ellipse.c +M glabels2/src/label-ellipse.h +M glabels2/src/label-line.c +M glabels2/src/label-line.h +M glabels2/src/label-object.c +M glabels2/src/label-object.h +M glabels2/src/label-text.c +M glabels2/src/label-text.h +M glabels2/src/print.c +M glabels2/src/view-barcode.c +M glabels2/src/view-box.c +M glabels2/src/view-ellipse.c +M glabels2/src/view-line.c +M glabels2/src/view-text.c +M glabels2/src/xml-label-04.c +M glabels2/src/xml-label-191.c +M glabels2/src/xml-label.c + +commit 0bb61293a045dec136d8ef6d82186e54633f63a1 +Author: Jim Evins +Date: 2003-11-27 + + After setting max size, restore current setting. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@355 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/object-editor-lsize-page.c + +commit 4d331ca9bd594283549e9415d96d40d87d3302d5 +Author: Jim Evins +Date: 2003-11-27 + + Make sure canvas will regain focus if clicked on. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@354 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/view.c + +commit 608c6e669e6e169b92522131768dedf4f608b4f5 +Author: Jim Evins +Date: 2003-11-26 + + Only act on zoom changes (modifying canvas scale and emitting signal) + if the new level is actually different. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@353 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/view.c + +commit 814500dd1a4686522d20abf06b02395d2a5ea230 +Author: Jim Evins +Date: 2003-11-26 + + Modified zoom code: + - Now keeps track of zoom levels, rather than screen scale + - Calculates home scale from screen DPI + - View size changes are tracked, and if selected zoom_to_fit is + maintained. + - New windows default to zoom_to_fit. + - Tracks changes in screen, so that new home scale can be updated + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@352 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/tools.c +M glabels2/src/view-highlight.c +M glabels2/src/view.c +M glabels2/src/view.h +M glabels2/src/window.c + +commit 127a39e7edb69b54cc0ca0b4d421c63891d9ab1f +Author: Jim Evins +Date: 2003-11-26 + + Only present object property editor when selection is atomic. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@351 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/ui-sidebar.c + +commit af777d10cca19977c2cb80b7fa015b5ad77fdcd4 +Author: Jim Evins +Date: 2003-11-24 + + Glade files are now installed at GLABELS_GLADE_DIR. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@350 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/Makefile.am +M glabels2/src/object-editor.c +M glabels2/src/prefs-dialog.c + +commit b6ae3725e4345dc9aeb153519678175d3f5ce12b +Author: Jim Evins +Date: 2003-11-24 + + Updated to reflect current source files. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@349 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/po/POTFILES.in + +commit 5f79a4f719b16e37880857730df9f5b65e4fbe17 +Author: Jim Evins +Date: 2003-11-24 + + Changed object property dialogs to a single object property editor + sidebar. + Added zoom to fit command. + Converted object property editor and preferences dialog to use + libglade and removed un-needed widgets. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@348 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/Makefile.am +M glabels2/src/debug.c +M glabels2/src/debug.h +M glabels2/src/glabels-ui.xml +M glabels2/src/glabels.c +A glabels2/src/object-editor-bc-page.c +A glabels2/src/object-editor-data-page.c +A glabels2/src/object-editor-edit-page.c +A glabels2/src/object-editor-fill-page.c +A glabels2/src/object-editor-image-page.c +A glabels2/src/object-editor-line-page.c +A glabels2/src/object-editor-lsize-page.c +A glabels2/src/object-editor-position-page.c +A glabels2/src/object-editor-private.h +A glabels2/src/object-editor-size-page.c +A glabels2/src/object-editor-text-page.c +A glabels2/src/object-editor.c +A glabels2/src/object-editor.glade +A glabels2/src/object-editor.h +M glabels2/src/prefs-dialog.c +A glabels2/src/prefs-dialog.glade +M glabels2/src/prefs-dialog.h +M glabels2/src/stock-pixmaps/Makefile.am +A glabels2/src/stock-pixmaps/stock_properties_24.png +M glabels2/src/stock.c +M glabels2/src/tools.c +M glabels2/src/tools.h +A glabels2/src/ui-sidebar.c +A glabels2/src/ui-sidebar.h +M glabels2/src/ui.c +M glabels2/src/view-barcode.c +M glabels2/src/view-box.c +M glabels2/src/view-ellipse.c +M glabels2/src/view-image.c +M glabels2/src/view-line.c +M glabels2/src/view-object.c +M glabels2/src/view-object.h +M glabels2/src/view-text.c +M glabels2/src/view.c +M glabels2/src/view.h +D glabels2/src/wdgt-bc-data.c +D glabels2/src/wdgt-bc-data.h +D glabels2/src/wdgt-bc-props.c +D glabels2/src/wdgt-bc-props.h +D glabels2/src/wdgt-bc-style.c +D glabels2/src/wdgt-bc-style.h +D glabels2/src/wdgt-fill.c +D glabels2/src/wdgt-fill.h +D glabels2/src/wdgt-line.c +D glabels2/src/wdgt-line.h +D glabels2/src/wdgt-position.c +D glabels2/src/wdgt-position.h +D glabels2/src/wdgt-size.c +D glabels2/src/wdgt-size.h +D glabels2/src/wdgt-text-entry.c +D glabels2/src/wdgt-text-entry.h +D glabels2/src/wdgt-text-props.c +D glabels2/src/wdgt-text-props.h +D glabels2/src/wdgt-vector.c +D glabels2/src/wdgt-vector.h +M glabels2/src/window.c +M glabels2/src/window.h + +commit 132b37df55e9e78afb0abb7de68696de150b59d4 +Author: Jim Evins +Date: 2003-11-24 + + Modified for upcomming 1.93.0. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@347 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/configure.in + +commit 5894e21a4bcf7fd0bedda704828ee3dd3f7f4d31 +Author: Jim Evins +Date: 2003-11-17 + + Fixed cut-n-paste error: font_italic_flag is gboolean, not + GnomeFontWeight. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@346 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/label-object.c +M glabels2/src/label-object.h + +commit f550817d9014d2bbf5443dd55750fb23c4f327c6 +Author: Jim Evins +Date: 2003-11-16 + + Added italian translations. Provided by Mancio . + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@345 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/AUTHORS +M glabels2/configure.in +A glabels2/po/it.po + +commit 1821f44c12d204441415f0f86917aaf7d0dc1bdb +Author: Jim Evins +Date: 2003-11-16 + + Updated copyright date in about dialog. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@344 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/commands.c + +commit bbd5fe10e125d4920fb4ed8ef2433e1f5ef9e751 +Author: Jim Evins +Date: 2003-11-16 + + Updated japanese translation. Provided by Takeshi Aihana + . + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@343 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/po/ja.po + +commit b96836c5812bd54c4d077cacaa3f57cd8f821af5 +Author: Jim Evins +Date: 2003-11-15 + + Added "break" in draw_markup_layer between line and circle cases + of switch. This fixes Bug #842705. This is also the 2nd time I + have fixed this bug -- I must of neglected to check it in. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@342 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/view.c + +commit 679345152aca90d9e96764babfaffbf29ad947da +Author: Jim Evins +Date: 2003-11-11 + + Prefixed $(configdir) with $(DESTDIR) in intall-data-local rule. + Patch provided by Andrew Lau needed + to build debian package. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@341 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/data/Makefile.am + +commit 357dece84bdbf8a6a9cf229cf0145e247e0dc09e +Author: Jim Evins +Date: 2003-11-09 + + Preparation for 1.92.3 release. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@339 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/configure.in + +commit 782c39f08243f6e5bac40feab7dfdae50e005957 +Author: Jim Evins +Date: 2003-11-09 + + Added additional user submitted templates. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@338 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/AUTHORS +M glabels2/data/misc-iso-templates.xml + +commit c20fc06cf628c75318b2330b7bdf7892c5df7a89 +Author: Jim Evins +Date: 2003-11-09 + + Make the "Other" page size a full-fledged member of the pages list. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@337 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/paper.c + +commit c682ad48f57e9316b809a64f70514ed68f711ed5 +Author: Jim Evins +Date: 2003-11-09 + + One of the signal handlers (view_scale_changed_cb) created with a + view_highlight actually belongs to view. So when a view_highlight + is finalized, we must disconnect this handler. This fixes the crash + reported in bug #836873. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@336 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/view-highlight.c + +commit 0869fee988c04a6c7bf317fe92410c7a20e5cfeb +Author: Jim Evins +Date: 2003-11-02 + + *** empty log message *** + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@335 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/barcode-0.98/configure +M glabels2/po/cs.po +M glabels2/po/de.po +M glabels2/po/es.po +M glabels2/po/fr.po +M glabels2/po/ja.po +M glabels2/po/pl.po +M glabels2/po/pt_BR.po +M glabels2/po/ru.po +M glabels2/po/zh_TW.Big5.po + +commit 12ffda8cb72321cfbd4e5d1e6775beaf34560261 +Author: Jim Evins +Date: 2003-11-02 + + Return immediately if --version option set. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@333 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/configure.in +M glabels2/src/glabels-batch.c + +commit de9574629d2b0fee2a1f898516863f80c9a43c53 +Author: Jim Evins +Date: 2003-10-31 + + Fixes glabels-batch frontend that broke when porting to gnome-print + 2.2. This fixes bug #832206. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@332 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/glabels-batch.c +M glabels2/src/print.c + +commit b657e02ae4905a080de7ca849c5b5310e50b2b91 +Author: Jim Evins +Date: 2003-10-28 + + Much cleaner implementation of fix for Bug #822848. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@330 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/ui.c +M glabels2/src/ui.h +M glabels2/src/window.c + +commit ce3e06da0c3abb47e2d9b5970e5bce670e56d639 +Author: Jim Evins +Date: 2003-10-27 + + Brought README up-to-date, including updating website. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@329 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/README + +commit 5b8870cdd41d8dbede3ef438b87b030f0bf89591 +Author: Jim Evins +Date: 2003-10-27 + + Fix for Bug #822848: in gl_window_destroy() unreference window->uic + and recent_view. + + Hack: squirrel away recent_view as data in window->uic, and extract + this in gl_window_destroy(). A better approach might be to wrap up + the ui_component in its own object, then simply unreference it. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@328 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/ui.c +M glabels2/src/window.c + +commit 299887846ca7b16b3eb7113a6efae93c73763647 +Author: Jim Evins +Date: 2003-10-27 + + Updated reference to glabels website. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@327 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/commands.c + +commit acd06beb42f79ed27a2d9a469c56e6daafb72fb8 +Author: Jim Evins +Date: 2003-10-19 + + New glabels icon. Adding as a binary file this time. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@326 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +A glabels2/pixmaps/glabels-icon.png + +commit 1746d5fae438cdab908d883742c65f57d1243f23 +Author: Jim Evins +Date: 2003-10-19 + + Removing glabels-icon.png, to replace with new file to be added as + a binary file this time. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@325 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +D glabels2/pixmaps/glabels-icon.png + +commit f584c36b1ef64ce81102c1033632cbb5a10ffb33 +Author: Jim Evins +Date: 2003-10-19 + + Applied patch #826108: Installs files to register glabels and + glabels filetypes/mimetypes with gnome. This addresses bug #822852. + Supplied by Emmanuel Pacaud . + This patch adds the files: + + pixmaps/glabels.png + data/glabels.mime + data/glabels.applications + data/glabels.keys.in + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@324 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/data/Makefile.am +A glabels2/data/glabels.applications +M glabels2/data/glabels.desktop.in +A glabels2/data/glabels.keys.in +A glabels2/data/glabels.mime +M glabels2/pixmaps/Makefile.am +A glabels2/pixmaps/glabels.png + +commit 9acf7f6f72a3f7aa70325cb99d5416167d7e1e99 +Author: Jim Evins +Date: 2003-10-19 + + Do not attempt to install header files. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@323 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/recent-files/Makefile.am + +commit bd8f890e80ae5726deda06cd1874bbb3e6bc1f03 +Author: Jim Evins +Date: 2003-10-19 + + Cannot translate an empty string -- changed to " ". + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@322 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/commands.c + +commit a679e0dc1aa5202475800847262095df1b1526d3 +Author: Jim Evins +Date: 2003-10-19 + + Removed references to old gnome-recent-* files. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@321 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/po/POTFILES.in + +commit 5fba23738c145c5767bab85e1e7f92d050c98ea3 +Author: Jim Evins +Date: 2003-10-19 + + glabels.spec.in: Updated by merging with Dag Wieers's + glabels.spec file. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@320 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/AUTHORS +M glabels2/glabels.spec.in + +commit c850d6c4b460d4eb71462b01b6dd8d67139faf54 +Author: Jim Evins +Date: 2003-10-18 + + Workaround for problem with gnome-print rendering images with alpha + channels. See bug #822840. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@319 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/print.c + +commit 6442032ba8d7117adead42725d24f8ffa0c6df6a +Author: Jim Evins +Date: 2003-10-18 + + Minor tweaks to Avery US definitions. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@318 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/data/avery-us-templates.xml + +commit 0922af212e7e1fdd8c100bceb9d1107380afb101 +Author: Jim Evins +Date: 2003-10-17 + + Cleanup of Avery US-Letter templates. + + - Spaced between manufacturer and part # to facilitate sorting, + i.e. Assume part #s are 5 digits and right justified. + + - Unified descriptions so they are consistent with the generic + portion of Avery's descriptions, and their are fewer unique + descriptions to facilitate translations. + + - If multiple types per sheet or part #, the part # is suffixed + with an appropriate description (e.g. 8391-Disc). + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@317 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/data/avery-us-templates.xml + +commit 5a7ea2653f663ae324fb66854477600db97ee6fd +Author: Jim Evins +Date: 2003-10-17 + + Allow comments anytime traversing a list of child nodes. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@316 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/xml-template.c + +commit c29868bc5e87ebd5e6531e2fc28261afafc183b5 +Author: Jim Evins +Date: 2003-10-15 + + Applied patch #822935. This patch slightly increases the invalidated + area during a redraw request, to account for anti-aliasing. + This prevent small artifacts from being left around when text + and barcode objects are dragged around the canvas. This patch + also corrects an oversight in view-barcode.c when converting from + gnome_canvas_hacktext to gl_canvas_hacktext. This patch was provided + by Emmanuel Pacaud . + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@315 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/canvas-hacktext.c +M glabels2/src/view-barcode.c + +commit 0b5900cdd4732d281af4023d38d6c830fe86627d +Author: Jim Evins +Date: 2003-10-13 + + Removed aclocal.m4. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@314 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +D glabels2/aclocal.m4 + +commit a3f6bc15eabeeffe14eed2fe7645d2621f87f5ae +Author: Jim Evins +Date: 2003-10-13 + + Patch #819541: moved to latest libegg version of recent-files. + Patch provided by: Emmanuel Pacaud . + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@313 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/configure.in + +commit 07a7b6952d0e27a252e12ef720bbc4d3e43bcd8b +Author: Jim Evins +Date: 2003-10-13 + + Patch #820699: corrects interpretation of Object-text nodes when + it consists of a single Field node. Interpretation gets screwed + up by the automatic XML indentation. Patch provided by: Emmanuel + Pacaud . + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@312 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/xml-label.c + +commit 49344d5aee4d1c314ba4a16469501d0bf1a72c0d +Author: Jim Evins +Date: 2003-10-12 + + Added StartupNotify line. Suggested by James Ogley + . + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@311 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/data/glabels.desktop.in + +commit d16472a553fb5e025784e0330a6c53278b61c7b1 +Author: Jim Evins +Date: 2003-10-12 + + Updated to reflect recent contributors. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@310 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/AUTHORS + +commit dc69b06e19b29c9d5c7eead7456e6cb45550cb2a +Author: Jim Evins +Date: 2003-10-09 + + Replacing gnome-recent* with current egg recent files module. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@309 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/Makefile.am +M glabels2/src/file.c +M glabels2/src/file.h +M glabels2/src/glabels.c +D glabels2/src/gnome-recent-marshal.list +D glabels2/src/gnome-recent-model.c +D glabels2/src/gnome-recent-model.h +D glabels2/src/gnome-recent-util.c +D glabels2/src/gnome-recent-util.h +D glabels2/src/gnome-recent-view-bonobo.c +D glabels2/src/gnome-recent-view-bonobo.h +D glabels2/src/gnome-recent-view.c +D glabels2/src/gnome-recent-view.h +M glabels2/src/recent.c +M glabels2/src/recent.h +M glabels2/src/ui.c +M glabels2/src/xml-label.c + +commit 060a20747c4aa07a07b8552151e491e60036e587 +Author: Jim Evins +Date: 2003-10-09 + + Replacing gnome-recent* with current egg recent files module. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@308 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +A glabels2/src/recent-files/Makefile.am +A glabels2/src/recent-files/egg-recent-item.c +A glabels2/src/recent-files/egg-recent-item.h +A glabels2/src/recent-files/egg-recent-model.c +A glabels2/src/recent-files/egg-recent-model.h +A glabels2/src/recent-files/egg-recent-util.c +A glabels2/src/recent-files/egg-recent-util.h +A glabels2/src/recent-files/egg-recent-vfs-utils.c +A glabels2/src/recent-files/egg-recent-vfs-utils.h +A glabels2/src/recent-files/egg-recent-view-bonobo.c +A glabels2/src/recent-files/egg-recent-view-bonobo.h +A glabels2/src/recent-files/egg-recent-view-gtk.c +A glabels2/src/recent-files/egg-recent-view-gtk.h +A glabels2/src/recent-files/egg-recent-view.c +A glabels2/src/recent-files/egg-recent-view.h +A glabels2/src/recent-files/update-from-egg.sh + +commit 1dacd983302ea408fc8faa1f794d0ad09f1d4019 +Author: Jim Evins +Date: 2003-10-08 + + Applied color combo patch, provided by Emmanuel Pacaud + (emmanuelp@sourceforge.net). One distinct improvement is that the + icons are grayed out when the widget is insensitive. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@307 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/mygal/widget-color-combo.c +M glabels2/src/mygal/widget-color-combo.h + +commit 9c6084ffce76e776ce4716d2a0f4f09c9e65ac4d +Author: Jim Evins +Date: 2003-10-08 + + Changed default font from "Helvetica" to "Sans." + Patch provided by Emmanuel Pacaud (emmanuelp@sourceforge.net) + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@306 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/bc.h +M glabels2/src/label-text.c +M glabels2/src/prefs.c + +commit 72a09e53f6f8af5ed7d754c4f9ebabf4a28e919a +Author: Jim Evins +Date: 2003-10-08 + + Applied patch to correct conversion errors when reading files for many + non-"C" locales, i.e. locales where commas are used as decimal points. + Provided by Emmanuel Pacaud (emmanuelp@sourceforge.net). + + Additionally modified, to allow locale format for in xml files to + be honored and to honor spaces between value and units. + + All values written by glabels are now guaranteed to be in the + "C" locale. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@305 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/xml.c + +commit 48dd1bd999f454c730feaa4c1c9c69854a28145e +Author: Jim Evins +Date: 2003-09-29 + + Fixed parsing of Text->Line nodes: removed artifact "== 0". + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@304 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/xml-label-04.c + +commit fecdc335bcffe3ecc858fd9e8cd07ecb5964a14a +Author: Jim Evins +Date: 2003-09-25 + + Added MediaLine template submitted as feature request at sourceforge. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@303 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/AUTHORS +M glabels2/data/misc-iso-templates.xml + +commit 5e669ab469eea243df9922345e9223fcd30e9886 +Author: Jim Evins +Date: 2003-09-23 + + More descriptive Name and Comment. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@302 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/data/glabels.desktop.in + +commit 610ef2dea4f0cc6e12301295c27317cf87b826ad +Author: Jim Evins +Date: 2003-09-23 + + Removed un-needed dependency on gdk-pixbuf. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@301 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/configure.in + +commit edfd7d16e33d5a1c03b8cb805dbfdfce5767694d +Author: Jim Evins +Date: 2003-09-22 + + gl_pixbuf_cache_remove_pixbuf(): Bail immediately if name == NULL. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@300 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/pixbuf-cache.c + +commit 1aff0b640e22e7eddc8c17a09f1d0636174e9926 +Author: Jim Evins +Date: 2003-09-18 + + Added option to print crop marks. Suggested by Red Planet + . + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@299 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/glabels-batch.c +M glabels2/src/print-dialog.c +M glabels2/src/print.c +M glabels2/src/print.h + +commit b4df48aa17705f9995b4b08e5d20bb241302d44b +Author: Jim Evins +Date: 2003-09-07 + + Updated Japanese translations (Takeshi AIHANA + ). + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@298 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/po/ja.po + +commit 5202a6f7ffb34a6cf7147e8dd57112a898ade761 +Author: Jim Evins +Date: 2003-09-05 + + Added categories field so that glabels will show up in the office + menu on RH9. Thanks to David L Norris . + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@297 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/data/glabels.desktop.in + +commit 27acbc86591eb7548bf507d09b5ea7a9ed036134 +Author: Jim Evins +Date: 2003-09-03 + + Fixed typo. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@295 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/po/POTFILES.in +M glabels2/src/view.c + +commit 407e8e0f8195fde90fbd384cceba03e460ed0543 +Author: Jim Evins +Date: 2003-09-02 + + Changed LGPL notices to GPL, as required by the LGPL section 3. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@294 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/mygal/color-group.c +M glabels2/src/mygal/color-group.h +M glabels2/src/mygal/color-palette.c +M glabels2/src/mygal/color-palette.h +M glabels2/src/mygal/e-colors.c +M glabels2/src/mygal/e-colors.h +M glabels2/src/mygal/e-util.h +M glabels2/src/mygal/gtk-combo-box.c +M glabels2/src/mygal/gtk-combo-box.h +M glabels2/src/mygal/widget-color-combo.c +M glabels2/src/mygal/widget-color-combo.h + +commit 01b7a7b4909da417036c09ea42151602dd2249c7 +Author: Jim Evins +Date: 2003-09-01 + + Brought acknowledgements up-to-date. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@293 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/AUTHORS + +commit 221fb81668fb66b84cf249269857655f76ef2528 +Author: Jim Evins +Date: 2003-09-01 + + Added waste attribute to all CD/DVD labels. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@292 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/data/avery-iso-templates.xml +M glabels2/data/misc-iso-templates.xml +M glabels2/data/misc-us-templates.xml +M glabels2/data/zweckform-iso-templates.xml + +commit 0f6fbe429033b21c7c4fd66d284140a121bead60 +Author: Jim Evins +Date: 2003-09-01 + + Cleanup. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@291 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/TODO + +commit 71f5a916bf906c4b25c6ebfb3ee9bfe43e84bbe6 +Author: Jim Evins +Date: 2003-09-01 + + In clip_punchouts(), center hole correctly on business card CDs. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@290 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/print.c + +commit 1dec5fe436bd8b08d648bc8a7da2171ed137a2cc +Author: Jim Evins +Date: 2003-09-01 + + Added XInclude support. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@289 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/xml-label.c + +commit 4d6e1a622b1df731ca3d46353170e725f30ac369 +Author: Jim Evins +Date: 2003-09-01 + + Added hack to save ink, by not printing within CD holes. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@288 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/print.c + +commit a119bbef560e4699fae660a1d8c6c4cf67310646 +Author: Jim Evins +Date: 2003-09-01 + + Superficial code formatting. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@287 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/template.c + +commit 38b1468153a8c46e88246bd029de4ee016724a1f +Author: Jim Evins +Date: 2003-09-01 + + Added support for Markup-circle in templates. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@286 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/data/glabels-2.0.dtd +M glabels2/src/template.c +M glabels2/src/template.h +M glabels2/src/view.c +M glabels2/src/xml-template.c + +commit 165c5ca1599ac03d43077486cc90e46d3dde6bac +Author: Jim Evins +Date: 2003-09-01 + + Added compatability parser for files generated with 1.91. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@285 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/po/POTFILES.in +M glabels2/src/Makefile.am +A glabels2/src/xml-label-191.c +A glabels2/src/xml-label-191.h +M glabels2/src/xml-label.c + +commit b1c557ddbf0a5e20d5aa52e100e400804a101738 +Author: Jim Evins +Date: 2003-09-01 + + Added templates that have been collecting dust in my inbox. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@284 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/AUTHORS +M glabels2/TODO +M glabels2/data/avery-us-templates.xml +M glabels2/data/misc-iso-templates.xml +M glabels2/data/misc-us-templates.xml + +commit 0e23a07185249e1efecc272f9d5f3ad42a439d54 +Author: Jim Evins +Date: 2003-08-31 + + Broke out template file into separate files, organized by manufacturer + and page size standard (us and iso). + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@283 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/data/Makefile.am +A glabels2/data/avery-iso-templates.xml +A glabels2/data/avery-us-templates.xml +A glabels2/data/misc-iso-templates.xml +A glabels2/data/misc-us-templates.xml +D glabels2/data/predefined-templates.xml +A glabels2/data/zweckform-iso-templates.xml +M glabels2/po/POTFILES.in + +commit 114640562d0fb46ac65e0afadc54c1db0fd69d44 +Author: Jim Evins +Date: 2003-08-31 + + No longer use RLE for pixdata -- this caused crashes for many images. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@282 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/xml-label.c + +commit 0e570fb78805dcd3ca466e5ad35eeec4db2beaa6 +Author: Jim Evins +Date: 2003-08-31 + + Added waste attribute to Avery 5931 template. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@281 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/data/predefined-templates.xml + +commit 580cabfe1f1dee67e3952066a24e65eda443f184 +Author: Jim Evins +Date: 2003-08-31 + + Added waste attribute to label templates. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@280 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/print.c +M glabels2/src/template.h +M glabels2/src/xml-template.c + +commit e318f4a1459cd1b2ae90583d3c25007225d3c0b3 +Author: Jim Evins +Date: 2003-08-31 + + "Merge_fields" is now simply "Merge" + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@279 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/xml-label.c + +commit 2d88eaebd52cdd58e6e0fc0b7eb8975f44b62a5f +Author: Jim Evins +Date: 2003-08-31 + + - Replaced gnome color pickers with mygal color combos. + - Made context of all color groups NULL. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@278 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/ui-property-bar.c +M glabels2/src/wdgt-bc-props.c +M glabels2/src/wdgt-fill.c +M glabels2/src/wdgt-line.c +M glabels2/src/wdgt-text-props.c + +commit 4c60c14f0536b5733898c93d3a9f1a61cf15f6b2 +Author: Jim Evins +Date: 2003-08-31 + + gl_wdgt_line_get_params(): Line width is double, not int! + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@277 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/wdgt-line.c + +commit 24dde46b0c1467f17749404de6fb902073864c07 +Author: Jim Evins +Date: 2003-08-31 + + Updated to use 2.0 file formats. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@276 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/label-text.c +M glabels2/src/label-text.h +M glabels2/src/xml-label.c +M glabels2/src/xml-paper.c +M glabels2/src/xml-template.c +M glabels2/src/xml-template.h +M glabels2/src/xml.c + +commit 03a364f16bab38c0551af5e804e5394c9b875c80 +Author: Jim Evins +Date: 2003-08-31 + + Use theme colors for shadow and selections. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@275 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/wdgt-mini-preview.c +M glabels2/src/wdgt-mini-preview.h + +commit 9f032dc3bb103835673fabedf82a6d2a9efbc1a4 +Author: Jim Evins +Date: 2003-08-31 + + Created DTD for glabels 2.0 file types. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@274 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/data/Makefile.am +A glabels2/data/glabels-2.0.dtd +M glabels2/data/paper-sizes.xml +M glabels2/data/predefined-templates.xml + +commit 42b8f5fed3158ccf418d34d1ade3c8dca8984a42 +Author: Jim Evins +Date: 2003-08-31 + + Updated to reflect current development plan. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@273 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/TODO + +commit f99a01c8886bfb351ed488403faa79036294e7ae +Author: Jim Evins +Date: 2003-07-27 + + - Added mygal, a modified version of the gal library, to provide a + sophisticated color combo widget. + + - Added ui-property-bar.[ch] and ui-util.[ch] to add a property + bar to edit some properties of selections without going through a + "edit properties" dialog. + + - Added stock icons + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@272 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/Makefile.am +M glabels2/src/color.c +M glabels2/src/color.h +M glabels2/src/debug.c +M glabels2/src/debug.h +M glabels2/src/glabels-ui.xml +M glabels2/src/glabels.c +M glabels2/src/label-barcode.c +M glabels2/src/label-box.c +M glabels2/src/label-ellipse.c +M glabels2/src/label-line.c +M glabels2/src/label-object.c +M glabels2/src/label-object.h +M glabels2/src/label-text.c +A glabels2/src/mygal/Makefile.am +A glabels2/src/mygal/color-group.c +A glabels2/src/mygal/color-group.h +A glabels2/src/mygal/color-palette.c +A glabels2/src/mygal/color-palette.h +A glabels2/src/mygal/e-colors.c +A glabels2/src/mygal/e-colors.h +A glabels2/src/mygal/e-marshal.list +A glabels2/src/mygal/e-util.h +A glabels2/src/mygal/gtk-combo-box.c +A glabels2/src/mygal/gtk-combo-box.h +A glabels2/src/mygal/widget-color-combo.c +A glabels2/src/mygal/widget-color-combo.h +M glabels2/src/stock-pixmaps/Makefile.am +A glabels2/src/stock-pixmaps/stock_bucket_fill_16.png +A glabels2/src/stock-pixmaps/stock_bucket_fill_24.png +A glabels2/src/stock-pixmaps/stock_pencil_16.png +A glabels2/src/stock-pixmaps/stock_pencil_24.png +M glabels2/src/stock.c +M glabels2/src/stock.h +A glabels2/src/ui-property-bar.c +A glabels2/src/ui-property-bar.h +A glabels2/src/ui-util.c +A glabels2/src/ui-util.h +M glabels2/src/ui.c +M glabels2/src/view-barcode.c +M glabels2/src/view-box.c +M glabels2/src/view-ellipse.c +M glabels2/src/view-line.c +M glabels2/src/view-text.c +M glabels2/src/view.c +M glabels2/src/view.h +M glabels2/src/wdgt-text-props.c +M glabels2/src/window.c +M glabels2/src/window.h + +commit d2dcd6e7dc0d0ede254a3fb656a6aad8c9dec747 +Author: Jim Evins +Date: 2003-07-27 + + - Added mygal, a modified version of the gal library, to provide a + sophisticated color combo widget. + + - Added ui-property-bar.[ch] and ui-util.[ch] to add a property + bar to edit some properties of selections without going through a + "edit properties" dialog. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@271 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/po/POTFILES.in + +commit 007d50748d65f43a899a21c1836aa5ac327491b6 +Author: Jim Evins +Date: 2003-07-27 + + Added mygal, a modified version of the gal library, to provide a + sophisticated color combo widget. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@270 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/aclocal.m4 +M glabels2/configure.in + +commit 4fb60b25ad3cb3f2eb883f7fff949f9394a49aaa +Author: Jim Evins +Date: 2003-07-19 + + Fixes crash on XD2: start with an object size of 1pt x 1pt, instead + of 0 x 0. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@269 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/view-image.c + +commit d914113d4e1b767dbba1b36249524327238d58c8 +Author: Jim Evins +Date: 2003-07-07 + + Harmonized runtime checks for view and view->label. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@268 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/view.c + +commit 93756b4b8da8dc80900dc8f28499489ef31986b5 +Author: Jim Evins +Date: 2003-06-30 + + - View now tracks label resize events. + + - Template instantiations assume name of actual alias selected. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@267 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/file.c +M glabels2/src/label.c +M glabels2/src/label.h +M glabels2/src/template.c +M glabels2/src/template.h +M glabels2/src/view.c +M glabels2/src/wdgt-print-copies.c +M glabels2/src/wdgt-print-merge.c +M glabels2/src/xml-template.c + +commit 59462f65a2db3cc6b6a1adb381f568eb5b5201ec +Author: Jim Evins +Date: 2003-06-28 + + Added FileProperties dialog. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@266 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/commands.c +M glabels2/src/commands.h +M glabels2/src/file.c +M glabels2/src/file.h +M glabels2/src/glabels-ui.xml +M glabels2/src/ui.c +M glabels2/src/xml-template.c + +commit 23225999ec5847db64faffcae78e0aa136a6c1ed +Author: Jim Evins +Date: 2003-06-28 + + - xml-template.c: use page size name as a fallback if id doesn't + exist. + + - print.c: don't set page size id for config + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@265 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/print.c +M glabels2/src/xml-template.c + +commit 799b35b71486eb37a7435ac76134a2a7441cb8ee +Author: Jim Evins +Date: 2003-06-23 + + The widget should now correctly use the page size "id" when + interacting through its API, but use the page size "name" (which + may be localized) when interacting with the human user. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@264 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/wdgt-media-select.c +M glabels2/src/wdgt-media-select.h + +commit 34867c4f967a93042e453e550aa5a7921141db7b +Author: Jim Evins +Date: 2003-06-23 + + Renamed files to support gettextizing with intltool. + page-sizes.paper -> paper-sizes.xml + predefined-labels.template ->predefined-templates.xml + + xml-paper now looks for files with ".paper" extension or exactly named + "paper-sizes.xml". + + xml-template now looks for files with ".template" extension or + ending with + "-templates.xml". + + Gettext is run on attributes starting with "_" in both xml-paper + and xml-template. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@263 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/paper.c +M glabels2/src/template.c +M glabels2/src/xml-paper.c +M glabels2/src/xml-template.c + +commit 42fd154b7670f4a7db82fa0990f856ccd3bd3270 +Author: Jim Evins +Date: 2003-06-23 + + Renamed files to support gettextizing with intltool. + page-sizes.paper -> paper-sizes.xml + predefined-labels.template ->predefined-templates.xml + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@262 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/data/Makefile.am +R100 glabels2/data/page-sizes.paper glabels2/data/paper-sizes.xml +R089 glabels2/data/predefined-labels.template +glabels2/data/predefined-templates.xml +M glabels2/po/POTFILES.in + +commit b3e89167d2b78e0c48ce7239db145b8be9d48757 +Author: Jim Evins +Date: 2003-06-22 + + - Created Makefile.am in ./data and ./pixmaps directories + - Modified ./configure.in and ./Makefile.am to work with these + Makefiles + - Moved glabels.desktop to ./data directory + + - Changed version to 1.92.0 in ./configure.in + + - Added page-sizes.paper to ./data -- it seems to be less hassle + to maintain + a local paper size database. + + - Added paper.[ch] and xml-paper.[ch] to ./src. + + - Converted to libgnomeprint-2.2 -- serious hack: ignoring the + fact that + gnome-printer-selector is private. + + - Added files to ./po/POTFILES.in + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@261 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/Makefile.am +M glabels2/src/debug.c +M glabels2/src/debug.h +M glabels2/src/glabels-batch.c +M glabels2/src/glabels.c +A glabels2/src/paper.c +A glabels2/src/paper.h +M glabels2/src/prefs-dialog.c +M glabels2/src/prefs.c +M glabels2/src/print-dialog.c +M glabels2/src/print.c +M glabels2/src/print.h +M glabels2/src/template.c +M glabels2/src/template.h +M glabels2/src/wdgt-media-select.c +M glabels2/src/wdgt-mini-preview.c +A glabels2/src/xml-paper.c +A glabels2/src/xml-paper.h +M glabels2/src/xml-template.c + +commit 608bd2f3e4b58fb6598cc15c52c467990c3295cf +Author: Jim Evins +Date: 2003-06-22 + + - Created Makefile.am in ./data and ./pixmaps directories + - Modified ./configure.in and ./Makefile.am to work with these + Makefiles + - Moved glabels.desktop to ./data directory + + - Changed version to 1.92.0 in ./configure.in + + - Added page-sizes.paper to ./data -- it seems to be less hassle + to maintain + a local paper size database. + + - Added files to ./po/POTFILES.in + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@260 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/po/POTFILES.in +M glabels2/po/cs.po +M glabels2/po/de.po +M glabels2/po/es.po +M glabels2/po/fr.po +M glabels2/po/ja.po +M glabels2/po/pl.po +M glabels2/po/pt_BR.po +M glabels2/po/ru.po +M glabels2/po/zh_TW.Big5.po + +commit da616712ac9ecf2dd8a642839ff052e8827a4066 +Author: Jim Evins +Date: 2003-06-22 + + - Created Makefile.am in ./data and ./pixmaps directories + - Modified ./configure.in and ./Makefile.am to work with these + Makefiles + - Moved glabels.desktop to ./data directory + + - Changed version to 1.92.0 in ./configure.in + + - Added page-sizes.paper to ./data -- it seems to be less hassle + to maintain + a local paper size database. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@259 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +A glabels2/data/Makefile.am +A glabels2/data/glabels.desktop.in +A glabels2/data/page-sizes.paper +A glabels2/pixmaps/Makefile.am + +commit ac2056db0f3c63d362789598da0232ce858050af +Author: Jim Evins +Date: 2003-06-22 + + - Created Makefile.am in ./data and ./pixmaps directories + - Modified ./configure.in and ./Makefile.am to work with these + Makefiles + - Moved glabels.desktop to ./data directory + + - Changed version to 1.92.0 in ./configure.in + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@258 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/Makefile.am +M glabels2/aclocal.m4 +M glabels2/configure.in +D glabels2/glabels.desktop + +commit e6e1186a7ed01d5c26c43ff7f02107a998caeb87 +Author: Jim Evins +Date: 2003-06-07 + + Reconciled unit names with absolute unit names from CSS2 spec + (section 4.3.2). + Fixed comparison in gl_xml_get_prop_length(). + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@257 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/xml.c + +commit 2eab1f387f9288550bac8c615b707eaa58235084 +Author: Jim Evins +Date: 2003-05-26 + + In xml.[ch]: + - Added functions to get and set length properties: + gl_xml_get_prop_length() + gl_xml_set_prop_length() + + - Changed gl_xml_get_prop_uint_hex() to gl_xml_get_prop_uint(). + It should + automatically determine base according to "C" rules, i.e. "0x" + => hex, + "0" => octal, and anything else is decimal. + + - gl_xml_get_prop_int() has also been modified to use the "C" rules. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@256 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/xml-label-04.c +M glabels2/src/xml-label.c +M glabels2/src/xml-template.c +M glabels2/src/xml.c +M glabels2/src/xml.h + +commit 9f6e057631e99baa8c5cd1eff1b661c54f578f24 +Author: Jim Evins +Date: 2003-04-30 + + Made all comparisons case sensitive. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@255 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/xml-label-04.c +M glabels2/src/xml-label.c +M glabels2/src/xml-template.c +M glabels2/src/xml.c + +commit 9b6570c2ad57f9394121cc17175b95f72d43dc4c +Author: Jim Evins +Date: 2003-04-28 + + Moved template xml functions to separate module (xml-template.[ch]). + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@254 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/po/POTFILES.in +M glabels2/src/Makefile.am +M glabels2/src/template.c +M glabels2/src/template.h +M glabels2/src/xml-label.c +A glabels2/src/xml-template.c +A glabels2/src/xml-template.h + +commit d7e2e958e19d141526a63ad6d975b6f89ee2d67d +Author: Jim Evins +Date: 2003-04-27 + + Applied barcode patch to save and restore barcode sizes, provided + by Alessandro Zummo . + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@253 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/xml-label.c + +commit 644ae2cb7da38765dfb8dc900eb76eb4be5ae84c +Author: Jim Evins +Date: 2003-04-27 + + Added various templates. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@252 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/data/predefined-labels.template + +commit e3473cc57bad364568a8b127a4d6ac7149a01365 +Author: Jim Evins +Date: 2003-04-27 + + Added various acknowledgments. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@251 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/AUTHORS + +commit a60ea319cf36ef22786f6c4853eb25c2a5931170 +Author: Jim Evins +Date: 2003-04-27 + + Added Czech translations, thanks to David Makovský(Yakeen) + . + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@250 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/configure.in +A glabels2/po/cs.po + +commit 9d25899fa01c234a3f868c459b6459061b350e74 +Author: Jim Evins +Date: 2003-01-26 + + Cleanup of code formatting. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@248 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/xml.c + +commit b8723dacf7eff5c8ac7acaad5dc4986900921bdd +Author: Jim Evins +Date: 2003-01-26 + + Removed unused signals[] array. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@247 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/merge-text.c +M glabels2/src/merge.c + +commit 19c65879b8dcd02bae6a484f339ecc4dc4a55e5f +Author: Jim Evins +Date: 2003-01-26 + + Fixed parameters sent to gl_label_barcode_set_props() when creating + new barcode. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@246 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/view-barcode.c + +commit 251323ecb306c6ed40528a6e57e0dbd2a0495f5c +Author: Jim Evins +Date: 2003-01-25 + + Barcodes are now resizable interactively on the canvas in both width + and height (no more scale). + Added checkbox to turn-off checksum digit on barcodes when it is + optional. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@245 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/bc-gnubarcode.c +M glabels2/src/bc-gnubarcode.h +M glabels2/src/bc-postnet.c +M glabels2/src/bc-postnet.h +M glabels2/src/bc.c +M glabels2/src/bc.h +M glabels2/src/label-barcode.c +M glabels2/src/label-barcode.h +M glabels2/src/print.c +M glabels2/src/view-barcode.c +M glabels2/src/view-highlight.c +M glabels2/src/wdgt-bc-props.c +M glabels2/src/wdgt-bc-props.h +M glabels2/src/wdgt-bc-style.c +M glabels2/src/wdgt-bc-style.h +M glabels2/src/xml-label.c + +commit 68b7f3520db383f2ca7000533e63c39f3f07f7c7 +Author: Jim Evins +Date: 2003-01-16 + + Text box refinement. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@244 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/label-text.c +M glabels2/src/label-text.h +M glabels2/src/print.c +M glabels2/src/view-text.c + +commit 8658f7ffd7739571743c8827b994a0c09d2713ab +Author: Jim Evins +Date: 2003-01-08 + + Added xml_set_prop_*() utilities to xml.c. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@243 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/template.c +M glabels2/src/xml-label.c +M glabels2/src/xml.c +M glabels2/src/xml.h + +commit 08f61b05720c3fbd5e44c8723a171f08495683d1 +Author: Jim Evins +Date: 2003-01-07 + + Added text box support. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@242 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/label-object.c +M glabels2/src/label-text.c +M glabels2/src/label-text.h +M glabels2/src/view-text.c +M glabels2/src/xml-label.c + +commit 5a7b691ea17308062acf0d62f92ee8811aaeee5e +Author: Jim Evins +Date: 2003-01-07 + + Added xml utility module. Parsing of label and template xml files + should no longer strand pointers returned from xmGetProp(). + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@241 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/po/POTFILES.in +M glabels2/src/Makefile.am +M glabels2/src/template.c +M glabels2/src/xml-label-04.c +M glabels2/src/xml-label.c +A glabels2/src/xml.c +A glabels2/src/xml.h + +commit 2421a75ff0aa9b7b8e1ccf9e944b138b547be044 +Author: Jim Evins +Date: 2003-01-06 + + Updated ja and pt_BR translations. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@240 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/po/ja.po +M glabels2/po/pt_BR.po + +commit 9be83cfe285d2774a6ba97d5cd2fee67e8135f9f +Author: Jim Evins +Date: 2003-01-06 + + Updated pt_BR translations. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@239 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels1/po/pt_BR.po + +commit 8a0aa0721e17c5256a5f35fb44714844bec41195 +Author: Jim Evins +Date: 2003-01-06 + + Added pixbuf cache and base64 modules. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@238 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/po/POTFILES.in + +commit caa0ba592597dccf7b6980e66ccd7f591c115410 +Author: Jim Evins +Date: 2003-01-06 + + Added pixbuf cache and base64 modules. + Pixbufs are now saved in a glabels file as a base64 encoded version + of the serialized pixdata. + Files are now compressed. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@237 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/Makefile.am +A glabels2/src/base64.c +A glabels2/src/base64.h +M glabels2/src/debug.c +M glabels2/src/debug.h +M glabels2/src/glabels.c +M glabels2/src/label-image.c +M glabels2/src/label.c +M glabels2/src/label.h +A glabels2/src/pixbuf-cache.c +A glabels2/src/pixbuf-cache.h +M glabels2/src/view.c +M glabels2/src/xml-label.c + +commit 2a1ec544be08cf7cf5e0d1c801627d73aa0b5424 +Author: Jim Evins +Date: 2003-01-03 + + Added support for "Other" page sizes. Template sheets with a page + size of "Other" should also have the height and width properties set. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@236 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/print.c +M glabels2/src/template.c +M glabels2/src/template.h +M glabels2/src/wdgt-media-select.c +M glabels2/src/wdgt-media-select.h +M glabels2/src/wdgt-mini-preview.c +M glabels2/src/wdgt-mini-preview.h + +commit 73e3165ed36f77fa7048140ccdc4a0e982189a37 +Author: Jim Evins +Date: 2003-01-02 + + Bumped up version to 1.91.1, in preparation for next release. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@235 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/configure.in + +commit 6becaea14febeb218e1b071014ce1a7458df0d60 +Author: Jim Evins +Date: 2003-01-02 + + Added support for Business Card CD Labels (Clipped circular shape). + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@234 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/data/predefined-labels.template + +commit 916e4368d97d638db065e79f3ab694701d20cdbc +Author: Jim Evins +Date: 2003-01-02 + + Added support for Business Card CD Labels (Clipped circular shape). + Fixed artifact hack in wdgt-rotate-label -- made sure the scroll + region was + as large as the canvas, so that the label was not shoved into the + upper left corner of the canvas. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@233 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/label.c +M glabels2/src/print.c +M glabels2/src/template.c +M glabels2/src/template.h +M glabels2/src/view.c +M glabels2/src/wdgt-mini-preview.c +M glabels2/src/wdgt-rotate-label.c + +commit 168faf48af68963a103de1def4f87d15ddb6f9b9 +Author: Jim Evins +Date: 2002-12-31 + + Use art_affine_scale() to flip objects instead of art_affine_flip(). + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@231 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/label-object.c + +commit 11fc5ffdd802110a1997d3746f7488424674d460 +Author: Jim Evins +Date: 2002-12-31 + + Created "File" tag for literal filenames for image objects. + Added "Literal" tag to barcode objects. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@230 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/xml-label.c + +commit b8b1d634eaf6b7b6e369e4521cb5a03c1946fc36 +Author: Jim Evins +Date: 2002-12-31 + + Do not g_object_unref a merge object, if NULL. Caused warnings + during paste. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@229 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/label.c +M glabels2/src/view-text.c +M glabels2/src/xml-label.c + +commit dfdf166ca400fd4028dda0248a0be7f19d7383c4 +Author: Jim Evins +Date: 2002-12-28 + + No longer attempt to rotate/flip around center of object. This was + very problematic because the object's affine keeps changing under + one's nose. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@228 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/label-object.c +M glabels2/src/label-object.h +M glabels2/src/print.c +M glabels2/src/view-highlight.c +M glabels2/src/view-object.c + +commit d69454e4ad96cdef3501a62fb60bb3dab2316104 +Author: Jim Evins +Date: 2002-12-28 + + glLabelText now uses a GtkTextBuffer to store text, in preparation + for editing of text in place. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@227 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/label-text.c +M glabels2/src/label-text.h +M glabels2/src/view-text.c +M glabels2/src/wdgt-text-entry.c +M glabels2/src/wdgt-text-entry.h + +commit 8c26425f775cdc04c4410583a91047fef0452a50 +Author: Jim Evins +Date: 2002-12-28 + + Fixed compiler warning. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@226 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/xml-label-04.c + +commit 0bdc99ef3c41c53bdf59bdad64090dc8a7f71b0a +Author: Jim Evins +Date: 2002-12-28 + + Moved item event handler to view-object.c. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@225 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/view-highlight.c +M glabels2/src/view-object.c +M glabels2/src/view-object.h +M glabels2/src/view.c +M glabels2/src/view.h + +commit b4cafe8f16b8cd51af2f50dafd69ac19fa5f844b +Author: Jim Evins +Date: 2002-12-27 + + "New" dialog is now modal. + Added short name to titles of "print" and "save as" dialogs. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@224 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/file.c +M glabels2/src/print-dialog.c + +commit 538b382224f845af298b3559bcfa229f410625ac +Author: Jim Evins +Date: 2002-12-27 + + Window title cleanup. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@223 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/prefs-dialog.c +M glabels2/src/prefs-dialog.h +M glabels2/src/window.c + +commit b055a6afad199d05172022bf79eb820639907bad +Author: Jim Evins +Date: 2002-12-27 + + Merge property dialog now a widget. + One merge property dialog per view. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@222 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/merge-properties-dialog.c +M glabels2/src/merge-properties-dialog.h +M glabels2/src/tools.c +M glabels2/src/view.c +M glabels2/src/view.h + +commit c41c7bae0176ffce9880b4d4e64e81757366792d +Author: Jim Evins +Date: 2002-12-25 + + Formatting clean up. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@221 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/template.h +M glabels2/src/text-node.h + +commit 92e9778eea389de001b4230c76c0870fb1e9ead6 +Author: Jim Evins +Date: 2002-12-25 + + Catching up on backlog of template submissions. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@220 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/AUTHORS +M glabels2/data/predefined-labels.template + +commit 21c78e4b481abe340cfcb6af32c1ef1ba0ac223a +Author: Jim Evins +Date: 2002-12-25 + + Adds test to ensure a valid font family. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@219 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/label-text.c +M glabels2/src/wdgt-text-props.c + +commit aabdc641bfd8f609709a486bdeb965c690f5d734 +Author: Jim Evins +Date: 2002-12-24 + + Use object specific methods to determine size when determining extent + and centers of objects. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@218 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/label-object.c + +commit fd9d7b5004b57bfaf00e9fc1abbf6ee6035aa3f5 +Author: Jim Evins +Date: 2002-12-22 + + Removed unused gl_view_object_get_dialog() function. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@217 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/view-object.c + +commit 26ef752a7bc6e9bd7546c95c1639e8d967564c47 +Author: Jim Evins +Date: 2002-12-22 + + Fixes crash in gl_text_node_lines_expand() when line contains + no nodes. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@216 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/text-node.c + +commit f5a3b04a4318c31e49a2a4f169e5f172d3f42db4 +Author: Jim Evins +Date: 2002-12-15 + + Always set default entry when loading new strings in the + template_combo. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@215 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/wdgt-media-select.c + +commit ccbf23cfc7000b5aeba5030fb7e7cca066a1a315 +Author: Jim Evins +Date: 2002-12-12 + + More work on images from merge data. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@214 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/label-image.c +M glabels2/src/view-image.c +M glabels2/src/wdgt-image-select.c + +commit 5ddb04aa4cf50122ae8d65409a00f6999c5cf169 +Author: Jim Evins +Date: 2002-12-11 + + Initial support for supplying images from merge data. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@213 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/label-image.c +M glabels2/src/label-image.h +M glabels2/src/print.c +M glabels2/src/text-node.c +M glabels2/src/view-image.c +M glabels2/src/xml-label-04.c +M glabels2/src/xml-label.c + +commit 9b08719f732321618f6f96c5863b3ad3ed01eb7f +Author: Jim Evins +Date: 2002-12-10 + + Added wdgt_image_select widget for selecting image files or merge + fields for images. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@212 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/po/POTFILES.in +M glabels2/src/Makefile.am +A glabels2/src/wdgt-image-select.c +A glabels2/src/wdgt-image-select.h + +commit 3a083dee8b93f54529ea0bcb448fb9cb1c44a105 +Author: Jim Evins +Date: 2002-12-08 + + Fixed logic to remember previous merge source. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@211 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/merge-properties-dialog.c + +commit 7091e560600fb41c01cb88f334e54cbb6cd7ea0b +Author: Jim Evins +Date: 2002-12-08 + + Added logic that ignores lines containing a single empty field + (e.g. ${ADDRESS2} == ""). + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@210 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/text-node.c + +commit c1392472ae18285bbfcc4101d0a87f7c7e5e67d8 +Author: Jim Evins +Date: 2002-12-08 + + Removed annoying affine debug statements. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@209 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/canvas-hacktext.c + +commit 5c151d532ee53365a3e1695e2c88f3a6ddd4d3e6 +Author: Jim Evins +Date: 2002-12-08 + + Added GtkTreeView w/ model to preview fields and allow record + selection. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@208 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/merge-properties-dialog.c + +commit ae1e0d489c56591c29fda89d0d733c050c19cafb +Author: Jim Evins +Date: 2002-12-08 + + Added get_primary_key method. + Rewrote gl_merge_get_key_list() to use record_list(). + Ported improved CSV parser from 0.4.6. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@207 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/merge-text.c + +commit 17c607468d325aa3abb43db3d5c5fa00458303ff +Author: Jim Evins +Date: 2002-12-08 + + Added get_primary_key method. + Removed open, close, get_record, free_record, free_record_list + functions + from public API. + Renamed gl_merge_read_record_list() to gl_merge_get_record_list(). + Renamed gl_merge_count_records() to gl_merge_get_record_count(). + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@206 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/merge.c +M glabels2/src/merge.h + +commit 5f50ecbe6d0aba98f76a169f1eec5600f20eb3f3 +Author: Jim Evins +Date: 2002-12-08 + + Moved gl_merge_get_record_list() to inner-most functions possible. + Fixed page_begin logic for merge print functions. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@205 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/print-dialog.c +M glabels2/src/print.c +M glabels2/src/print.h + +commit c7ba6d95b143d1f44d1e8f615ebcebde8384e686 +Author: Jim Evins +Date: 2002-12-08 + + Changed field text from "FIELD{*}" to "${*}". + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@204 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/wdgt-text-entry.c + +commit 5f7abd61a52ac90b4e4b7d21e006dfd8d10bd36f +Author: Jim Evins +Date: 2002-12-08 + + Corrected order of arguments to gl_merge_eval_key(). + Changed field text from "FIELD{*}" to "${*}". + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@203 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/text-node.c + +commit 4725dd8e0562bb35593ec155215f7b583931ec89 +Author: Jim Evins +Date: 2002-12-08 + + Bumped up namespace to 1.92. + Literal text is now contained in "Literal" nodes -- this breaks + compatability with 1.89 and 1.90. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@202 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/xml-label.c + +commit 44dfc43fde047c1d6f8cfe13c91debaa7ea37fa8 +Author: Jim Evins +Date: 2002-12-08 + + gl_window_new_from_file() no longer ignores abs_filename. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@201 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/window.c + +commit da99416fc86eb1724eec8ed335624a6566f09296 +Author: Jim Evins +Date: 2002-12-05 + + Multiple fixes to merge type and properties dialog. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@200 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/label.c +M glabels2/src/merge-init.c +M glabels2/src/merge-properties-dialog.c +M glabels2/src/merge.c + +commit efe5baf8e0405b1f4cc7c6740fb30853ed68b62e +Author: Jim Evins +Date: 2002-12-03 + + Additions to development plan. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@199 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/TODO + +commit d4ebf0e752a63bc3a16b52226aba3be1aec5ff5f +Author: Jim Evins +Date: 2002-12-03 + + New document merge API. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@198 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/po/POTFILES.in +M glabels2/src/Makefile.am +M glabels2/src/glabels-batch.c +M glabels2/src/glabels.c +M glabels2/src/label.c +A glabels2/src/merge-init.c +C080 glabels2/src/merge-properties.h glabels2/src/merge-init.h +R067 glabels2/src/merge-properties.c +glabels2/src/merge-properties-dialog.c +R083 glabels2/src/merge-properties.h +glabels2/src/merge-properties-dialog.h +M glabels2/src/merge-text.c +M glabels2/src/merge-text.h +D glabels2/src/merge-ui-text.c +D glabels2/src/merge-ui-text.h +D glabels2/src/merge-ui.c +D glabels2/src/merge-ui.h +M glabels2/src/merge.c +M glabels2/src/merge.h +M glabels2/src/print-dialog.c +M glabels2/src/print.c +M glabels2/src/tools.c +M glabels2/src/view-barcode.c +M glabels2/src/view-text.c +M glabels2/src/wdgt-bc-data.c +M glabels2/src/wdgt-bc-data.h +M glabels2/src/wdgt-text-entry.c +M glabels2/src/wdgt-text-entry.h +M glabels2/src/xml-label-04.c +M glabels2/src/xml-label.c + +commit ff94fb2d1395644838dd247aa0643c27878afd99 +Author: Jim Evins +Date: 2002-12-01 + + Changed M_PI to G_PI. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@197 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/print.c +M glabels2/src/view.c +M glabels2/src/wdgt-vector.c + +commit 928d14291b48a6cdf432a2e0990c82da0d8c91a4 +Author: Jim Evins +Date: 2002-12-01 + + free name during finalize. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@196 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/label-object.c + +commit 99b753edef76d37dbca105ced4c2f08df2c4b2f9 +Author: Jim Evins +Date: 2002-11-30 + + Added callback to adjust affine of highlight. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@195 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/view-highlight.c +M glabels2/src/view-object.c + +commit 87a9ff607ba011815f80a7487492fc612c95af50 +Author: Jim Evins +Date: 2002-11-30 + + Removed obsolete menu from view_object. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@194 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/view-object.c +M glabels2/src/view-object.h + +commit 8630930291f7555b2bbeeafb20f5a7ae25629933 +Author: Jim Evins +Date: 2002-11-30 + + Disconnect callbacks that reference the properties dialog when it + is destroyed. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@193 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/view-barcode.c +M glabels2/src/view-box.c +M glabels2/src/view-ellipse.c +M glabels2/src/view-image.c +M glabels2/src/view-line.c +M glabels2/src/view-text.c + +commit aba3b4b013d3f41252dcffe263446c88bbfba2db +Author: Jim Evins +Date: 2002-11-29 + + Added functions gl_view_rotate_selection_left() and + gl_view_rotate_selection_right(). + + Added new context menus. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@192 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/tools.c +M glabels2/src/view.c +M glabels2/src/view.h + +commit d0bfe7d204fc9a159c2105b012a8aefe030cc261 +Author: Jim Evins +Date: 2002-11-29 + + Added stock_properties_16 icon. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@191 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/glabels-ui.xml +M glabels2/src/stock-pixmaps/Makefile.am +A glabels2/src/stock-pixmaps/stock_properties_16.png +M glabels2/src/stock.c +M glabels2/src/stock.h + +commit cc528ab2e13a2d518b90df1734e775eea5132169 +Author: Jim Evins +Date: 2002-11-28 + + Added commands to center selected objects to center of label. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@190 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/glabels-ui.xml +M glabels2/src/tools.c +M glabels2/src/tools.h +M glabels2/src/ui.c +M glabels2/src/view.c +M glabels2/src/view.h + +commit 0f6a9bcff38a3f8f0af56c911c6fe8217ff746f4 +Author: Jim Evins +Date: 2002-11-28 + + Added stock_center_horiz and stock_center_vert stock icons. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@189 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/stock-pixmaps/Makefile.am +A glabels2/src/stock-pixmaps/stock_center_horiz_16.png +A glabels2/src/stock-pixmaps/stock_center_vert_16.png +M glabels2/src/stock.c +M glabels2/src/stock.h + +commit d29dec5925a922fda1a513c7aa5707760a3a6c2f +Author: Jim Evins +Date: 2002-11-28 + + Updated russian translations, thanks to Vitaly Lipatov + . + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@188 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/po/ru.po + +commit cc5a600a2678408e69b8336481ca8eabec7471cd +Author: Jim Evins +Date: 2002-11-28 + + Added additional templates from my backlog. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@187 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/AUTHORS +M glabels2/data/predefined-labels.template + +commit 2cd7297ae45065421acc610b767b82c9608a475d +Author: Jim Evins +Date: 2002-11-28 + + Added strategic debug statement to help locate bad templates. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@186 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/template.c + +commit c31a43a3500a82401710abef158614e6c24e8a4a +Author: Jim Evins +Date: 2002-11-26 + + Cleaned up label object duplication code. + Added get_size methods for text and barcode objects. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@185 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/label-barcode.c +M glabels2/src/label-barcode.h +M glabels2/src/label-box.c +M glabels2/src/label-box.h +M glabels2/src/label-ellipse.c +M glabels2/src/label-ellipse.h +M glabels2/src/label-image.c +M glabels2/src/label-image.h +M glabels2/src/label-line.c +M glabels2/src/label-line.h +M glabels2/src/label-object.c +M glabels2/src/label-object.h +M glabels2/src/label-text.c +M glabels2/src/label-text.h +M glabels2/src/view.c + +commit 7fc9f03681245fcf04dee4f3392931f58f9c755b +Author: Jim Evins +Date: 2002-11-25 + + Added menu icons for order, rotation, and flipping commands. + Split Align submenu, into Horizontal and Vertical submenus. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@184 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/glabels-ui.xml +M glabels2/src/stock.c +M glabels2/src/stock.h +M glabels2/src/ui.c + +commit 5600ac72e77355eb50496eb8d079752649d1fb0f +Author: Jim Evins +Date: 2002-11-25 + + Added menu icons for order, rotation, and flipping commands. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@183 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/stock-pixmaps/Makefile.am +A glabels2/src/stock-pixmaps/stock_flip_horiz_16.png +A glabels2/src/stock-pixmaps/stock_flip_vert_16.png +A glabels2/src/stock-pixmaps/stock_order_bottom_16.png +A glabels2/src/stock-pixmaps/stock_order_top_16.png +A glabels2/src/stock-pixmaps/stock_rotate_left_16.png +A glabels2/src/stock-pixmaps/stock_rotate_right_16.png + +commit e745ae478b6bada6bac871e50d084b9cb4ce93d1 +Author: Jim Evins +Date: 2002-11-25 + + Added object alignment commands. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@182 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/glabels-ui.xml +M glabels2/src/tools.c +M glabels2/src/tools.h +M glabels2/src/ui.c +M glabels2/src/view.c +M glabels2/src/view.h + +commit 9ed794d648593c56391e2c39ba3d45a891f0db23 +Author: Jim Evins +Date: 2002-11-25 + + Menu icons for alignment commands. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@181 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/stock-pixmaps/Makefile.am +A glabels2/src/stock-pixmaps/stock_align_bottom_16.png +A glabels2/src/stock-pixmaps/stock_align_hcenter_16.png +A glabels2/src/stock-pixmaps/stock_align_left_16.png +A glabels2/src/stock-pixmaps/stock_align_right_16.png +A glabels2/src/stock-pixmaps/stock_align_top_16.png +A glabels2/src/stock-pixmaps/stock_align_vcenter_16.png +M glabels2/src/stock.c +M glabels2/src/stock.h + +commit 29b2a2d7ad849248f70907052594d3b6a95d4c55 +Author: Jim Evins +Date: 2002-11-22 + + Made set_size and get_size into child methods for label-object, + and construct_dialog for view-object. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@180 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/label-object.h +M glabels2/src/view-barcode.c +M glabels2/src/view-box.c +M glabels2/src/view-ellipse.c +M glabels2/src/view-image.c +M glabels2/src/view-line.c +M glabels2/src/view-object.c +M glabels2/src/view-text.c + +commit 7942bd2b1dc7d4adc0ee51d858d34efa92acc6c7 +Author: Jim Evins +Date: 2002-11-22 + + Made set_size and get_size into child methods. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@179 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/label-object.c +M glabels2/src/view-object.h + +commit 7b27fc9199039b2e5397c0a9bc5e5d7b27cfb969 +Author: Jim Evins +Date: 2002-11-21 + + Moved highlights/handles to separate layer (top-level group). + Tweaked appearance of highlights. + Removed shuffling of items after a raise or lower, these were + artifacts from when all items belonged to a single top-level group. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@178 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/view-highlight.c +M glabels2/src/view-object.c +M glabels2/src/view.c +M glabels2/src/view.h + +commit 09c923e6b7ea8b9f1dd47cb52489c47361ec6a1f +Author: Jim Evins +Date: 2002-11-11 + + Workaround for flipping/rotation problem for gdkpixbuf items. + See libgnomecanvas bug #97604. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@177 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/view-object.c + +commit 6ad4f9c94f5cf0144a068649c857638c742b420a +Author: Jim Evins +Date: 2002-11-11 + + Added initial object rotation code. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@176 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/label-object.c +M glabels2/src/label-object.h +M glabels2/src/print.c +M glabels2/src/tools.c +M glabels2/src/tools.h +M glabels2/src/ui.c +M glabels2/src/view-highlight.c +M glabels2/src/view-object.c +M glabels2/src/view.c +M glabels2/src/view.h +M glabels2/src/xml-label.c + +commit c83e8558a35b8713796e36370bf53064c57b1426 +Author: Jim Evins +Date: 2002-11-08 + + Replaced gdk_pointer_grab() calls with gnome_canvas_item_grab() calls. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@175 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/view-barcode.c +M glabels2/src/view-box.c +M glabels2/src/view-ellipse.c +M glabels2/src/view-image.c +M glabels2/src/view-line.c +M glabels2/src/view-text.c +M glabels2/src/wdgt-mini-preview.c + +commit d1cfc9aeeebab5ed3e98686fb59fbdcd5521b5c4 +Author: Jim Evins +Date: 2002-11-04 + + Unref highlight before destroying group. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@174 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/view-object.c + +commit a922bbec35a3b9a3fff8fdf38537a460c8b48c71 +Author: Jim Evins +Date: 2002-11-03 + + Adds code to set the view canvas's background color. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@173 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/color.c +M glabels2/src/color.h +M glabels2/src/view.c + +commit 48b3f4e54f4a46f7265b3e0da02941d4865d6165 +Author: Jim Evins +Date: 2002-11-03 + + Highlight is now placed in object group, so it no longer needs to + track object movements. This also causes the label layer to appear + as an ancestor of the highlight objects so that object_at in view.c + does the right thing. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@172 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/view-highlight.c + +commit 580011286a8e406198575a1222b980ba8e5e9a05 +Author: Jim Evins +Date: 2002-10-20 + + Added demonstration markup lines to Avery 5931 and its lookalikes. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@171 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/data/predefined-labels.template + +commit 8f156fce93d5cc64c4722893522ec1dbabba5513 +Author: Jim Evins +Date: 2002-10-20 + + Added line markup to template. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@170 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/template.c +M glabels2/src/template.h +M glabels2/src/view.c + +commit 2b0d83bbb2a14f5ecfb3b17fd786f4fcb780febb +Author: Jim Evins +Date: 2002-10-20 + + Fixes finalization problems with highlight and object properties + dialog. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@169 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/view-highlight.c +M glabels2/src/view-object.c + +commit 9fc4f06840b10c94445cad21d24b6f78c79cff65 +Author: Jim Evins +Date: 2002-10-20 + + Includes grid lines at perimeter. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@168 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/view.c + +commit b897cdcafbb9d3ab52cda4ca8f74409d3ce3d4eb +Author: Jim Evins +Date: 2002-10-20 + + Changed version in preparation for next release. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@167 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/configure.in + +commit 24a6782ee37fe2057675d7699670f7890909b7b5 +Author: Jim Evins +Date: 2002-10-20 + + Added grid to view. + Created distinct gnome_canvas_groups for each distinct layer in view. + Grid and markup visibility are now controlled by view menu. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@166 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/canvas-hacktext.c +M glabels2/src/glabels-ui.xml +M glabels2/src/prefs.c +M glabels2/src/prefs.h +M glabels2/src/ui.c +M glabels2/src/view-object.c +M glabels2/src/view.c +M glabels2/src/view.h +M glabels2/src/window.c + +commit e6d13b329522599b11a8fa5682644d8420657ce6 +Author: Jim Evins +Date: 2002-10-15 + + View_highlight is now a full-fledged object that tracks its + corresponding label object independently. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@165 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/view-barcode.c +M glabels2/src/view-box.c +M glabels2/src/view-ellipse.c +M glabels2/src/view-highlight.c +M glabels2/src/view-highlight.h +M glabels2/src/view-image.c +M glabels2/src/view-line.c +M glabels2/src/view-object.c +M glabels2/src/view-object.h +M glabels2/src/view-text.c + +commit 128e0c135f9048b32de6c0ac6c1a46f6f7140baa +Author: Jim Evins +Date: 2002-10-15 + + Pointer events are now generated for all modes. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@164 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/view.c + +commit 814a682c9362f01d7a3847153b0a37e103d83b17 +Author: Jim Evins +Date: 2002-10-14 + + Initial flipping support -- still has some problems. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@163 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/marshal.list +M glabels2/src/print.c +M glabels2/src/tools.c +M glabels2/src/tools.h +M glabels2/src/view-barcode.c +M glabels2/src/view-box.c +M glabels2/src/view-ellipse.c +M glabels2/src/view-image.c +M glabels2/src/view-line.c +M glabels2/src/view-object.c +M glabels2/src/view-object.h +M glabels2/src/view-text.c +M glabels2/src/view.c +M glabels2/src/view.h +M glabels2/src/xml-label.c + +commit 72888ff037ca8e1c0fea29b8f908a4bb69966976 +Author: Jim Evins +Date: 2002-10-14 + + Now uses gl_label_object_copy_props() in dup function. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@162 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/label-barcode.c +M glabels2/src/label-box.c +M glabels2/src/label-ellipse.c +M glabels2/src/label-image.c +M glabels2/src/label-line.c +M glabels2/src/label-text.c + +commit 7d676b96b7ee534ab36054be2febb8086eeef278 +Author: Jim Evins +Date: 2002-10-14 + + Includes support for flipping. + Added function for copying properties from one object to another. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@161 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/label-object.c +M glabels2/src/label-object.h + +commit b5e19b10316c2fc38af47fbeed61405fa03bd1bb +Author: Jim Evins +Date: 2002-10-14 + + New verbs and menu structure for flipping and rotation. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@160 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/glabels-ui.xml + +commit 47583e96fce7f3637a4e842bfda43c5460354468 +Author: Jim Evins +Date: 2002-10-14 + + Preferences are now saved when view options are modified. + Includes new verbs for flipping and rotation. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@159 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/ui.c + +commit 3fa08fe5b70f25df787fe02e05c6a9d8f1b6f06f +Author: Jim Evins +Date: 2002-10-14 + + Fixed default-font-weight bug. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@158 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/prefs.c + +commit 2c55c7028acaeb1ecd61a5136afe3ac3d7e71db1 +Author: Jim Evins +Date: 2002-10-12 + + All 2-pass labels have been converted to single-pass labels using + multiple layouts per sheet. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@157 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/data/predefined-labels.template + +commit 77fce21b253323abe15246dc980c5726ab6cc9fd +Author: Jim Evins +Date: 2002-10-10 + + Changes to development plan. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@156 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/TODO + +commit 9b27951549f2ee5db410e25c0bf553fba8400196 +Author: Jim Evins +Date: 2002-10-10 + + Preferences and object property dialogs are now rebuilt if previously + destroyed rather than assuming they were cleanly closed. This fixes + bug #619052. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@155 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/prefs-dialog.c +M glabels2/src/view-barcode.c +M glabels2/src/view-box.c +M glabels2/src/view-ellipse.c +M glabels2/src/view-image.c +M glabels2/src/view-line.c +M glabels2/src/view-object.c +M glabels2/src/view-object.h +M glabels2/src/view-text.c + +commit b35b62402a8c2d1c3919b63b3b1292150a247c93 +Author: Jim Evins +Date: 2002-10-09 + + Added handler for view's "pointer_exit" function: clears cursor_info + label. + "zoom_changed" handler now updates zoom related verbs. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@154 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/window.c + +commit 6f096754a43d01141efc1f9faf672dc698b1b174 +Author: Jim Evins +Date: 2002-10-09 + + Added gl_ui_update_zoom_verbs () function and added updates to zoom + verbs in the gl_ui_update_all () function. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@153 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/ui.c +M glabels2/src/ui.h + +commit 7ef044ec2e605670f694e32f3658751b5b8caab2 +Author: Jim Evins +Date: 2002-10-09 + + Added "pointer_exit" signal. + Added gl_view_is_zoom_min () and gl_view_is_zoom_max () functions. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@152 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/view.c +M glabels2/src/view.h + +commit 25d14ad53a028feac7e2a39a364a031dabb62bd0 +Author: Jim Evins +Date: 2002-10-08 + + Added cursor position to status bar. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@151 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/window.c + +commit 8273d92363a6c41c6671599ce247fd1b0569a05b +Author: Jim Evins +Date: 2002-10-08 + + Fixed incorrect usage of gtk_toggle_button_get_active() in + update_prefs_from_locale_page () -- must have cut-n-paste from a + strcmp based decision tree? + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@150 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/prefs-dialog.c + +commit 016bd5d0c97aacf3e5540ff0d794e08b8a76072a +Author: Jim Evins +Date: 2002-10-07 + + Initial status bar code -- only the zoom_info area implemented. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@149 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/glabels-ui.xml +M glabels2/src/ui.c +M glabels2/src/ui.h +M glabels2/src/view.c +M glabels2/src/view.h +M glabels2/src/window.c +M glabels2/src/window.h + +commit e675919eedc4f9899fcdc596dc7be429e55670fa +Author: Jim Evins +Date: 2002-10-05 + + Fixed coordinate system for rotated labels. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@147 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/print.c + +commit 3f9e4307f8cb9ab89da09952261ca0b5a7c544b9 +Author: Jim Evins +Date: 2002-10-05 + + Removed glabels.h artifact from POTFILES.in + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@146 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/po/POTFILES.in + +commit 1cfc87be8f6d2e5b04144cbc73d84cb76dfce603 +Author: Jim Evins +Date: 2002-10-05 + + alert module merged into hig module. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@145 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/po/POTFILES.in +M glabels2/src/Makefile.am +D glabels2/src/alert.c +D glabels2/src/alert.h +M glabels2/src/file.c +M glabels2/src/hig.c +M glabels2/src/hig.h + +commit 9be7b598f26a14fcca23836449a9e57c7222e0b2 +Author: Jim Evins +Date: 2002-10-05 + + Template origins are now the upper left corner rather than the + lower left. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@144 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/data/predefined-labels.template +M glabels2/src/print.c +M glabels2/src/print.h +M glabels2/src/template.c +M glabels2/src/wdgt-mini-preview.c + +commit c94df7e04ef6232c90c433ad796bd965b3a62b9c +Author: Jim Evins +Date: 2002-10-03 + + Now original window propogates to open_ok() as object data. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@143 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/file.c -commit d3a72579798314c893e9dd7b9c1dc0927f0a89f6 +commit 2e9d175e39ffc0c8cfb57f1ead14b42d79fe9e5a Author: Jim Evins -Date: 2009-09-18 +Date: 2002-10-03 - 2009-09-17 Jim Evins + Fixed many problems with glabels-batch. Still some problem with + semantics of n_sheets and n_copies. - * src/stock.c: (add_icons), (add_button_icon): - Use proper free function for GtkIconSource - (gtk_icon_source_free() not g_free()). - Patch provided by Christian Persch . + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@142 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/glabels-batch.c + +commit 689aebc4486bc8486f973687e78a301152353449 +Author: Jim Evins +Date: 2002-09-30 + + Changed version to 1.90.0 in preparation for next release. git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@887 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@141 f5e0f49d-192f-0410-a22d-a8d8700d0965 -M glabels2/ChangeLog -M glabels2/src/stock.c +M glabels2/configure.in -commit d6ca76c9dbc400c5fb6d53a06213548ec06cb207 +commit 7dd8ab1633f9253b5b14617134b714c9ddd40569 Author: Jim Evins -Date: 2009-09-10 +Date: 2002-09-30 - 2009-09-09 Jim Evins + Made argv const to remove warning when passing to poptGetContext. - * configure.in: - Deleted help/C/Makefile.am. Fixes "make dist". - * help/Makefile.am: - Removed trailing whitespace. + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@140 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/glabels-batch.c + +commit 2cb116a55169a0e6730c39c334190a4f7d6cc28e +Author: Jim Evins +Date: 2002-09-30 + + Added session management callbacks. git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@881 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@139 f5e0f49d-192f-0410-a22d-a8d8700d0965 -M glabels2/ChangeLog -M glabels2/configure.in -M glabels2/gtk-doc.make -D glabels2/help/C/Makefile.am -M glabels2/help/Makefile.am +M glabels2/src/glabels.c -commit 6aa23570ca0b86c434a605f3c5a283a0f5d22e73 -Author: Mario Blättermann -Date: 2009-09-09 +commit 4cb93fd68e89d83fb7b8d173ed85287b6099fe30 +Author: Jim Evins +Date: 2002-09-29 - Added a translation template for the documentation, - created with the latest xml2po version from gnome-doc-utils v0.17.3 + This is the new SDI window module. - Updated German doc translation + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@138 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +A glabels2/src/window.c +A glabels2/src/window.h + +commit 568fc9114bf7feb474f1c1f0ad563f46b7fad9a5 +Author: Jim Evins +Date: 2002-09-29 + + Removed all remnants of MDI/BONOBO-MDI. We now use an SDI application + model. git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@879 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@137 f5e0f49d-192f-0410-a22d-a8d8700d0965 -M glabels2/help/de/de.po -A glabels2/help/glabels-help.pot +M glabels2/AUTHORS +M glabels2/TODO +M glabels2/po/POTFILES.in +M glabels2/src/Makefile.am +D glabels2/src/bonobo-mdi-child.c +D glabels2/src/bonobo-mdi-child.h +D glabels2/src/bonobo-mdi.c +D glabels2/src/bonobo-mdi.h +M glabels2/src/commands.c +M glabels2/src/commands.h +M glabels2/src/debug.c +M glabels2/src/debug.h +M glabels2/src/file.c +M glabels2/src/file.h +M glabels2/src/glabels-ui.xml +M glabels2/src/glabels.c +D glabels2/src/glabels.h +D glabels2/src/mdi-child.c +D glabels2/src/mdi-child.h +D glabels2/src/mdi.c +D glabels2/src/mdi.h +M glabels2/src/merge-properties.c +M glabels2/src/prefs-dialog.c +M glabels2/src/prefs.c +M glabels2/src/print-dialog.c +M glabels2/src/print-dialog.h +M glabels2/src/tools.c +M glabels2/src/ui.c +M glabels2/src/ui.h +M glabels2/src/view-barcode.c +M glabels2/src/view-box.c +M glabels2/src/view-ellipse.c +M glabels2/src/view-image.c +M glabels2/src/view-line.c +M glabels2/src/view-text.c -commit 681ec7dbf587319f53d3ce59e8e62ac3b16e476c -Author: Mario Blättermann -Date: 2009-09-09 +commit 31a7e007b211fdcf5a4f2a6c33221f13401dba76 +Author: Jim Evins +Date: 2002-09-26 + + Added new template. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@135 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/AUTHORS +M glabels2/data/predefined-labels.template + +commit 200f86cd136cb2efade9408858baebfcb1293f06 +Author: Jim Evins +Date: 2002-09-26 + + Added template. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@134 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels1/AUTHORS +M glabels1/data/predefined-labels.template + +commit 1282b07f72de900661dc4b3d8d11efca5a314b00 +Author: Jim Evins +Date: 2002-09-25 + + view_text and view_barcode dialogs now track changes to label's + merge properties. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@133 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/label-object.c +M glabels2/src/label.c +M glabels2/src/label.h +M glabels2/src/view-barcode.c +M glabels2/src/view-text.c +M glabels2/src/wdgt-bc-data.c +M glabels2/src/wdgt-bc-data.h +M glabels2/src/wdgt-text-entry.c +M glabels2/src/wdgt-text-entry.h + +commit 3d67bfa8cac66e625a4aa1d00c867215ed1cc9b9 +Author: Jim Evins +Date: 2002-09-23 + + Added callbacks to track "moved" signals of label objects and update + property dialogs. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@132 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/view-barcode.c +M glabels2/src/view-box.c +M glabels2/src/view-ellipse.c +M glabels2/src/view-image.c +M glabels2/src/view-line.c +M glabels2/src/view-text.c + +commit af9ffce2cdf1661abfb7268bf5e96981ee7c4097 +Author: Jim Evins +Date: 2002-09-23 + + Additional dialogs and widgets migrated to use HIG module. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@131 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/view-barcode.c +M glabels2/src/view-image.c +M glabels2/src/wdgt-bc-data.c +M glabels2/src/wdgt-bc-data.h +M glabels2/src/wdgt-bc-props.c +M glabels2/src/wdgt-bc-props.h +M glabels2/src/wdgt-bc-style.c +M glabels2/src/wdgt-bc-style.h + +commit ffda9a42e2bc020470ddd824f3ae041c2ce9daa3 +Author: Jim Evins +Date: 2002-09-22 + + HIG applied to more dialogs. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@130 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/file.c +M glabels2/src/merge-properties.c +M glabels2/src/view-box.c +M glabels2/src/view-ellipse.c +M glabels2/src/view-image.c +M glabels2/src/view-line.c +M glabels2/src/view-text.c +M glabels2/src/wdgt-position.c +M glabels2/src/wdgt-size.c +M glabels2/src/wdgt-size.h +M glabels2/src/wdgt-text-entry.c +M glabels2/src/wdgt-text-entry.h +M glabels2/src/wdgt-vector.c +M glabels2/src/wdgt-vector.h + +commit f35c12acd7a9f4347fbcddf7a45263e281441faa +Author: Jim Evins +Date: 2002-09-21 + + Incorporated use of HIG into prefs_dialog, view_text and related + widgets. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@129 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/hig.c +M glabels2/src/hig.h +M glabels2/src/merge-properties.c +M glabels2/src/merge-properties.h +M glabels2/src/merge-ui.c +M glabels2/src/prefs-dialog.c +M glabels2/src/prefs-dialog.h +M glabels2/src/view-barcode.c +M glabels2/src/view-box.c +M glabels2/src/view-ellipse.c +M glabels2/src/view-image.c +M glabels2/src/view-line.c +M glabels2/src/view-text.c +M glabels2/src/wdgt-fill.c +M glabels2/src/wdgt-fill.h +M glabels2/src/wdgt-line.c +M glabels2/src/wdgt-line.h +M glabels2/src/wdgt-position.c +M glabels2/src/wdgt-position.h +M glabels2/src/wdgt-text-entry.c +M glabels2/src/wdgt-text-entry.h +M glabels2/src/wdgt-text-props.c +M glabels2/src/wdgt-text-props.h + +commit 0386a5863488324dc75098d1cddca78afe34feb3 +Author: Jim Evins +Date: 2002-09-20 + + Removed generic full-page alias from predefined-templates, because + these are now generated in code automatically. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@128 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/data/predefined-labels.template + +commit eb61824324658f2711ae5c832a5ec954913c990c +Author: Jim Evins +Date: 2002-09-20 + + Added additional signals to view object to support a status bar in + future releases. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@127 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/marshal.list +M glabels2/src/view.c +M glabels2/src/view.h + +commit 6d7d332d28475ac2f27f4259b8f00ddc790da963 +Author: Jim Evins +Date: 2002-09-20 + + More refinements to HIG module. + New label and print dialogs along with associated widget now use + HIG module. + Full-page labels are now named "Generic %s full page." + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@126 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/file.c +M glabels2/src/hig.c +M glabels2/src/hig.h +M glabels2/src/print-dialog.c +M glabels2/src/template.c +M glabels2/src/wdgt-media-select.c +M glabels2/src/wdgt-media-select.h +M glabels2/src/wdgt-print-copies.c +M glabels2/src/wdgt-print-copies.h +M glabels2/src/wdgt-print-merge.c +M glabels2/src/wdgt-print-merge.h +M glabels2/src/wdgt-rotate-label.c +M glabels2/src/wdgt-rotate-label.h + +commit 2b89542781d98e153fd7269a23109f53e5cc6416 +Author: Jim Evins +Date: 2002-09-20 + + When creating origins for labels, y is now sorted in reverse. + Removed inappropriate freeing of pi->template in print_info_new(). + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@125 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/hig.c +M glabels2/src/print.c +M glabels2/src/template.c +M glabels2/src/wdgt-media-select.c +M glabels2/src/wdgt-mini-preview.c + +commit 8c77b29af12a139d89f8edf70ca6ae2458d516dd +Author: Jim Evins +Date: 2002-09-19 + + Refinements to new label dialog and associated widgets. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@124 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/hig.h +M glabels2/src/wdgt-media-select.c +M glabels2/src/wdgt-mini-preview.c +M glabels2/src/wdgt-rotate-label.c + +commit a5323663beeb29d04dd85c1a3c0cb17bb12ce8ac +Author: Jim Evins +Date: 2002-09-18 + + Added HIG module (hig.[ch]) to provide HIG inspired dialog and + layout tools. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@123 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/po/POTFILES.in +M glabels2/src/Makefile.am +M glabels2/src/alert.c +M glabels2/src/alert.h +M glabels2/src/file.c +A glabels2/src/hig.c +A glabels2/src/hig.h + +commit d3f4831bec333b5e6726fbd87843e2bea56f5ca2 +Author: Jim Evins +Date: 2002-09-17 + + Code cleanup. Mostly formatting. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@122 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/mdi-child.c +M glabels2/src/mdi-child.h +M glabels2/src/mdi.c +M glabels2/src/mdi.h + +commit 3c77cbba3cb8456d4b54242c9b204159204e2ddf +Author: Jim Evins +Date: 2002-09-17 + + Code cleanup. Mostly formatting. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@121 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/label-barcode.c +M glabels2/src/label-barcode.h +M glabels2/src/label-box.c +M glabels2/src/label-box.h +M glabels2/src/label-ellipse.c +M glabels2/src/label-ellipse.h +M glabels2/src/label-image.c +M glabels2/src/label-image.h +M glabels2/src/label-line.c +M glabels2/src/label-line.h +M glabels2/src/label-object.c +M glabels2/src/label-object.h +M glabels2/src/label-text.c +M glabels2/src/label-text.h + +commit 13e4337ed16d3c8b2b41e2fa4bb3950ff0aa60d1 +Author: Jim Evins +Date: 2002-09-17 + + Created mnemonics for spacing and border magic numbers. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@120 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/alert.c + +commit b284b4dd826a2f15ac82764f0438dba1da61e1ef +Author: Jim Evins +Date: 2002-09-16 + + Misc. code cleanup. Mostly formatting. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@119 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/label.c +M glabels2/src/label.h + +commit 8d70e8fa1820def464881c72f0bf3c47c285234d +Author: Jim Evins +Date: 2002-09-16 + + Assorted code cleanup. Mostly formatting. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@118 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/alert.c +M glabels2/src/alert.h +M glabels2/src/bc-gnubarcode.c +M glabels2/src/bc-gnubarcode.h +M glabels2/src/bc-postnet.c +M glabels2/src/bc-postnet.h +M glabels2/src/bc.c +M glabels2/src/bc.h +M glabels2/src/canvas-hacktext.c +M glabels2/src/canvas-hacktext.h +M glabels2/src/color.c +M glabels2/src/color.h +M glabels2/src/commands.c +M glabels2/src/commands.h +M glabels2/src/debug.c +M glabels2/src/debug.h +M glabels2/src/file.c +M glabels2/src/file.h +M glabels2/src/glabels.c +M glabels2/src/glabels.h + +commit 26bbbd8b02ac36829fe272c10d502206a95322f0 +Author: Jim Evins +Date: 2002-09-15 + + Restructured template module to ultimately support multiple layouts + and markups. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@117 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/Makefile.am +M glabels2/src/label.c +M glabels2/src/prefs.h +M glabels2/src/print.c +M glabels2/src/template.c +M glabels2/src/template.h +M glabels2/src/view.c +M glabels2/src/wdgt-media-select.c +M glabels2/src/wdgt-mini-preview.c +M glabels2/src/wdgt-print-copies.c +M glabels2/src/wdgt-print-merge.c +M glabels2/src/wdgt-rotate-label.c + +commit 0e23ca635af5aad404969a1e204bb3eab41b3b7f +Author: Jim Evins +Date: 2002-09-13 + + Changed version to 1.89.2, in preparation for next release. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@116 + f5e0f49d-192f-0410-a22d-a8d8700d0965 - Removed unneeded whitespace from subject category in glabels.omf.in. +M glabels2/configure.in - Fixed some formatting bugs in glabels.xml. +commit 77f8e365ea6d0dcc6ed5843a61c6f1855eb9708c +Author: Jim Evins +Date: 2002-09-13 + Moved all ui_component manipulation from mdi module to ui module. + gl_label_get_short_name() now removes ".glabels" extension. git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@878 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@115 f5e0f49d-192f-0410-a22d-a8d8700d0965 -M glabels2/help/C/glabels.xml -M glabels2/help/glabels.omf.in +M glabels2/src/label.c +M glabels2/src/mdi.c +M glabels2/src/ui.c +M glabels2/src/ui.h +M glabels2/src/util.c +M glabels2/src/util.h -commit fbdd5f00e6cde15930a2c9fd848bd8a6cc124208 -Author: Mario Blättermann -Date: 2009-09-08 +commit 72740304b5fe654527808d3f6044258072607b60 +Author: Jim Evins +Date: 2002-09-11 - Added screenshots to German docs + Preparation for 0.4.6 build. git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@875 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@114 f5e0f49d-192f-0410-a22d-a8d8700d0965 -A glabels2/help/de/figures/main-window-empty.png -A glabels2/help/de/figures/merge-ex1-1.png -A glabels2/help/de/figures/merge-ex1-2.png -A glabels2/help/de/figures/merge-ex1-3.png -A glabels2/help/de/figures/merge-ex1-4.png -A glabels2/help/de/figures/merge-ex2-1.png -A glabels2/help/de/figures/merge-ex2-2.png -A glabels2/help/de/figures/merge-ex2-3.png -A glabels2/help/de/figures/merge-ex2-4.png -A glabels2/help/de/figures/object-editor-sidebar.png -A glabels2/help/de/figures/print-copies.png -A glabels2/help/de/figures/print-merge.png +M glabels1/configure.in -commit e17c32e30a18a859fcf20bd5d1b8f791e7b2b946 -Author: Mario Blättermann -Date: 2009-09-08 +commit 39b55bb6524feb82f3ca6c9e2f98ab7d60d006fd +Author: Jim Evins +Date: 2002-09-11 - Updated German doc translation + More screwing with build environment git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@874 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@113 f5e0f49d-192f-0410-a22d-a8d8700d0965 -M glabels2/help/de/de.po - -commit 26a4496bb2e3fe0a4320b68147a88e0e52673f7f -Author: Alexandre Prokoudine -Date: 2009-09-08 +M glabels1/ABOUT-NLS +M glabels1/ChangeLog +M glabels1/Makefile.am +M glabels1/barcode-0.98/configure +M glabels1/doc/C/Makefile.in +M glabels1/doc/Makefile.in +M glabels1/macros/Makefile.in +M glabels1/po/ChangeLog +M glabels1/po/de.po +M glabels1/po/es.po +M glabels1/po/fr.po +M glabels1/po/glabels.pot +M glabels1/po/ja.po +M glabels1/po/pl.po +M glabels1/po/pt_BR.po +M glabels1/po/zh_TW.Big5.po + +commit d98d777fa92fccfc6cbdb5a6af4b3bef5fa4e8d5 +Author: Jim Evins +Date: 2002-09-10 - Updated Russian translation + Fixed old format in APLI 1999. git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@873 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@111 f5e0f49d-192f-0410-a22d-a8d8700d0965 -M glabels2/ChangeLog -M glabels2/po/ru.po +M glabels1/data/predefined-labels.template +M glabels2/data/predefined-labels.template -commit 86a8bb0c5f86a84dc85a8238cee4e4b4c2ec895f +commit ae0eb02a3edd2d951ec8746ae49bba85a7c68f58 Author: Jim Evins -Date: 2009-09-01 - - 2009-08-31 Jim Evins +Date: 2002-09-10 - * po/fr.po: - Updated french translation (Claude Paroz) + Additional label template acknowledgements. git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@864 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@110 f5e0f49d-192f-0410-a22d-a8d8700d0965 -M glabels2/ChangeLog -M glabels2/po/fr.po +M glabels2/AUTHORS -commit 2fdeef77371533c7ae0f627fa14dd683616b8dd5 +commit eab514f92befda873f1063aa3bba749b62a77e08 Author: Jim Evins -Date: 2009-05-20 - - 2009-05-19 Jim Evins +Date: 2002-09-10 - * configure.in: - * po/LINGUAS: - Moved translation list from configure.in to po/LINGUAS. + Additional label templates. git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@853 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@109 f5e0f49d-192f-0410-a22d-a8d8700d0965 -M glabels2/ChangeLog -M glabels2/configure.in -A glabels2/po/LINGUAS +M glabels1/data/predefined-labels.template +M glabels2/data/predefined-labels.template -commit ad91b41ce563ebe5b0fcb2a86c02d23f697c3790 +commit b97c24634fc9db3ad474626986e8f37610c2f8ef Author: Jim Evins -Date: 2009-05-20 - - 2009-05-19 Jim Evins +Date: 2002-09-10 - * configure.in: - * po/zh_CN.po: - New Chinese translation (Careon - ). - * AUTHORS: - Added above translation to acknowledgements. + Additional label acknowedgements. git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@850 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@108 f5e0f49d-192f-0410-a22d-a8d8700d0965 -M glabels2/AUTHORS -M glabels2/ChangeLog -M glabels2/configure.in -A glabels2/po/zh_CN.po +M glabels1/AUTHORS -commit d9d21f38de54637ea0713406beb5cfd93598369c +commit fe555314711582397b57b806576b5e7cd7a32fb4 Author: Jim Evins -Date: 2009-05-18 +Date: 2002-09-10 - 2009-05-18 Jim Evins - - * src/prefs-model.c: (gl_prefs_model_load_settings): - Make an educated guess at locale settings when run for the - first time. + Updated russian translations, thanks to Vitaly Lipatov + . git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@848 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@107 f5e0f49d-192f-0410-a22d-a8d8700d0965 -M glabels2/ChangeLog -M glabels2/src/prefs-model.c +M glabels1/po/ru.po -commit 19a05da1d464dc893cb20d959f1bf7ec150ad08b +commit 570bb13750709ec3eaf631cb5efd6a3cf85612c0 Author: Jim Evins -Date: 2009-05-18 +Date: 2002-09-10 + + Added 16x16 menu sized images for remainder of stock icons. - Deleting file that is unused with last checkin. git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@847 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@106 f5e0f49d-192f-0410-a22d-a8d8700d0965 -D glabels2/help/C/glabels-C.omf +M glabels2/src/stock-pixmaps/Makefile.am +A glabels2/src/stock-pixmaps/stock_barcode_16.png +A glabels2/src/stock-pixmaps/stock_box_16.png +A glabels2/src/stock-pixmaps/stock_ellipse_16.png +A glabels2/src/stock-pixmaps/stock_image_16.png +A glabels2/src/stock-pixmaps/stock_line_16.png +A glabels2/src/stock-pixmaps/stock_merge_16.png +A glabels2/src/stock-pixmaps/stock_text_16.png -commit 1ef96f18da1704ef0fc131366b456e6dfa345f01 +commit beb3e848d55c256418165cc1ed175577f9a78330 Author: Jim Evins -Date: 2009-05-18 - - 2009-05-17 Jim Evins +Date: 2002-09-10 - * Makefile.am: - * configure.in: - * help/C/glabels-C.omf: - * help/C/glabels.xml: - * help/Makefile.am: - * help/de/de.po: - * help/glabels.omf.in: - * po/de.po: - Updated german translation, gnome-doc-utils support and - german translation of glabels manual (Mario Blättermann). + Added 16x16 menu sized images for remainder of stock icons. + Now uses g_free() instead of g_object_unref() on GtkIconSource -- + it does not appear to be a GObject. git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@844 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@105 f5e0f49d-192f-0410-a22d-a8d8700d0965 -M glabels2/ChangeLog -M glabels2/Makefile.am -M glabels2/configure.in -M glabels2/help/C/glabels-C.omf -M glabels2/help/C/glabels.xml -M glabels2/help/Makefile.am -A glabels2/help/de/de.po -A glabels2/help/glabels.omf.in -M glabels2/po/de.po +M glabels2/src/stock.c -commit d06758ddbbea33616952af7ed1f3518782e15361 +commit 9d2970c6cea4d63a62d7f53a14077be5cce6b7d2 Author: Jim Evins -Date: 2009-05-02 - - 2009-05-01 Jim Evins +Date: 2002-09-09 - * AUTHORS: - * configure.in: - * po/ca.po: - Added catalan translation (David Planella). + Cleaned-up 24x24 icons. Added as binary files this time. git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@842 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@104 f5e0f49d-192f-0410-a22d-a8d8700d0965 -M glabels2/AUTHORS -M glabels2/ChangeLog -M glabels2/configure.in -A glabels2/po/ca.po +A glabels2/src/stock-pixmaps/stock_arrow_24.png +A glabels2/src/stock-pixmaps/stock_barcode_24.png +A glabels2/src/stock-pixmaps/stock_box_24.png +A glabels2/src/stock-pixmaps/stock_ellipse_24.png +A glabels2/src/stock-pixmaps/stock_image_24.png +A glabels2/src/stock-pixmaps/stock_line_24.png +A glabels2/src/stock-pixmaps/stock_merge_24.png +A glabels2/src/stock-pixmaps/stock_text_24.png -commit 4ce6f965c7c56a4be543898244fd8f330a3ecd24 +commit 773b3be17816ba9e5a1fe675d8c32aa3c224d498 Author: Jim Evins -Date: 2009-05-01 +Date: 2002-09-09 + + These should be binary files. Removing. - Release 2.2.5 git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/tags/glabels-2_2_5@841 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@103 f5e0f49d-192f-0410-a22d-a8d8700d0965 -commit b26cfcc7d50b6980fae589120ccca4f2348642d0 -Author: Jim Evins -Date: 2009-04-30 +D glabels2/src/stock-pixmaps/stock_arrow_24.png +D glabels2/src/stock-pixmaps/stock_barcode_24.png +D glabels2/src/stock-pixmaps/stock_box_24.png +D glabels2/src/stock-pixmaps/stock_ellipse_24.png +D glabels2/src/stock-pixmaps/stock_image_24.png +D glabels2/src/stock-pixmaps/stock_line_24.png +D glabels2/src/stock-pixmaps/stock_merge_24.png +D glabels2/src/stock-pixmaps/stock_text_24.png - 2009-04-29 Jim Evins +commit 19d085ed916b8652d2dd9fe3b18204bf6d66add8 +Author: Jim Evins +Date: 2002-09-09 - * NEWS: - * configure.in: - * docs/libglabels/libglabels-decl-list.txt: - * gtk-doc.make: - * src/ui-commands.c: (gl_ui_cmd_help_about): - Prepare for 2.2.5 release. + Added 16x16 icon for GL_STOCK_ARROW git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@840 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@102 f5e0f49d-192f-0410-a22d-a8d8700d0965 -M glabels2/ChangeLog -M glabels2/NEWS -M glabels2/configure.in -M glabels2/docs/libglabels/libglabels-decl-list.txt -M glabels2/gtk-doc.make -M glabels2/src/ui-commands.c +M glabels2/src/stock-pixmaps/Makefile.am +A glabels2/src/stock-pixmaps/stock_arrow_16.png -commit b3db239b39cf13a96008574884f25f4c3e57d5c3 +commit ba5fd945cba4073b4947d9a072aaf63cbc712b80 Author: Jim Evins -Date: 2009-04-30 - - 2009-04-29 Jim Evins +Date: 2002-09-09 - * data/templates/avery-iso-templates.xml: - * data/templates/misc-iso-templates.xml: - * data/templates/misc-us-templates.xml: - Make sure new descriptions are marked translatable. + Created add_icons() and added code to add both 24x24 and 16x16 icons + for a given stock id. git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@839 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@101 f5e0f49d-192f-0410-a22d-a8d8700d0965 -M glabels2/ChangeLog -M glabels2/data/templates/avery-iso-templates.xml -M glabels2/data/templates/misc-iso-templates.xml -M glabels2/data/templates/misc-us-templates.xml +M glabels2/src/stock.c -commit 4443dc5d0c2546a028a9cfef97d6ca40a3833d1c +commit 3ccfe15fdc1e7820db6b4f4936a014dd01ee755e Author: Jim Evins -Date: 2009-04-30 +Date: 2002-09-08 - 2009-04-29 Jim Evins - - * data/templates/avery-iso-templates.xml: - * data/templates/misc-iso-templates.xml: - * data/templates/misc-us-templates.xml: - Caught up on user submitted templates. - * AUTHORS: - Acknowledgements for above templates. + Fixed capitalization in labels and tips. git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@837 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@100 f5e0f49d-192f-0410-a22d-a8d8700d0965 -M glabels2/AUTHORS -M glabels2/ChangeLog -M glabels2/data/templates/avery-iso-templates.xml -M glabels2/data/templates/misc-iso-templates.xml -M glabels2/data/templates/misc-us-templates.xml +M glabels2/src/glabels-ui.xml -commit 23c906e6a07f047e932d1812be7668e1b312ad5f +commit da26567e0080273482f19fc8116e5940a7271626 Author: Jim Evins -Date: 2009-04-30 - - 2009-04-29 Jim Evins +Date: 2002-09-08 - * po/de.po: - Updated german translation (Mario Blättermann). + Now uses the new XML parser from libxml. git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@836 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@99 f5e0f49d-192f-0410-a22d-a8d8700d0965 -M glabels2/ChangeLog -D glabels2/po/ChangeLog -M glabels2/po/de.po +M glabels1/src/label.c -commit 30da2882aea0fedfe88020c61dc642beee5a0a9d +commit b6b9ceb0a16e3ab214ecfcbd7bb1f90db555ce29 Author: Jim Evins -Date: 2009-04-29 - - 2009-04-29 Jim Evins +Date: 2002-09-08 - * src/color.c: (gl_color_to_gdk_color), (gl_color_from_gdk_color): - * src/mygal/widget-color-combo.c: (color_combo_new): - * src/object-editor.c: (gl_object_editor_construct_color_combo): - * src/ui-property-bar.c: - (gl_ui_property_bar_construct_color_combo): - Bug #2760830. Display correct preview color in color - combos when default - color selected. + Changed libxml requirement from 1.8.10 to 1.8.11 to enable the use + of the new XML parser. git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@834 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@98 f5e0f49d-192f-0410-a22d-a8d8700d0965 -M glabels2/ChangeLog -M glabels2/src/color.c -M glabels2/src/mygal/widget-color-combo.c -M glabels2/src/object-editor.c -M glabels2/src/ui-property-bar.c +M glabels1/configure.in -commit 987a9259d51cfe2fbbed149ded2e93c92e0b17ad +commit 9f3fc6353c66abc095b64de6b62b6ad83c853b9c Author: Jim Evins -Date: 2009-04-29 - - 2009-04-28 Jim Evins +Date: 2002-09-07 - * data/glade/object-editor.glade: - * data/glade/prefs-dialog.glade: - * data/glade/property-bar.glade: - * data/glade/template-designer.glade: - * src/wdgt-print-copies.c: (gl_wdgt_print_copies_construct), - (first_spin_cb), (last_spin_cb): - * src/wdgt-print-merge.c: (gl_wdgt_print_merge_construct): - Zero out adjustment->page_size for all spinbuttons. - With gtk-2.14 this causes - many warning and with gtk-2.16 this actually breaks - the spinbuttons. + Added rotate and flip properties with default values to objects for + compatability with future versions. git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@833 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@97 f5e0f49d-192f-0410-a22d-a8d8700d0965 -M glabels2/ChangeLog -M glabels2/data/glade/object-editor.glade -M glabels2/data/glade/prefs-dialog.glade -M glabels2/data/glade/property-bar.glade -M glabels2/data/glade/template-designer.glade -M glabels2/src/wdgt-print-copies.c -M glabels2/src/wdgt-print-merge.c +M glabels2/src/xml-label.c -commit ad51cdd46a8bdcb13c0bc4637e81a6d1e80de92c +commit 81266e4d3be7a20712e9946d3014dcb35db2119f Author: Jim Evins -Date: 2009-01-08 - - 2009-01-07 Jim Evins +Date: 2002-09-07 - * src/critical-error-handler.c: (critical_error_handler): - * src/ui-commands.c: (gl_ui_cmd_help_contents): - * src/warning-handler.c: (warning_handler): - * src/view.c: (selection_received_cb): - Compile without warning with additional CFLAGS of - -O1 -Wall -Wformat=2. + Added view controls for drawing toolbar. git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@822 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@96 f5e0f49d-192f-0410-a22d-a8d8700d0965 -M glabels2/ChangeLog -M glabels2/src/critical-error-handler.c -M glabels2/src/ui-commands.c -M glabels2/src/view.c -M glabels2/src/warning-handler.c +M glabels2/src/glabels-ui.xml +M glabels2/src/mdi.c +M glabels2/src/prefs.c +M glabels2/src/prefs.h -commit fad7d2c766ab31ac4f083557d6543ef30fa84115 +commit fc89f960f997273d08f66e6248d5dc9381b1bd61 Author: Jim Evins -Date: 2009-01-03 - - 2009-01-02 Jim Evins +Date: 2002-09-07 - * COPYING.README_FIRST: - Fixed typo. + Cleanup of selection code. git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@820 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@95 f5e0f49d-192f-0410-a22d-a8d8700d0965 -M glabels2/COPYING.README_FIRST -M glabels2/ChangeLog +M glabels2/src/view.c +M glabels2/src/view.h -commit 273e96234241a73a9e1f81de1ea691109025f189 +commit a8ff7374b838357bf095f00079fa72004008603a Author: Jim Evins -Date: 2008-12-28 - - 2008-12-27 Jim Evins +Date: 2002-09-06 - * data/templates/avery-iso-templates.xml: - * data/templates/avery-other-templates.xml: - * data/templates/avery-us-templates.xml: - * data/templates/brother-other-templates.xml: - * data/templates/misc-iso-templates.xml: - * data/templates/misc-other-templates.xml: - * data/templates/zweckform-iso-templates.xml: - Make sure all descriptions are marked as translatable. + Renamed menus module to ui. + Added "selection_changed" signal to view. + Added adjustments to sensitivity of menu items based on selection + state. git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@818 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@94 f5e0f49d-192f-0410-a22d-a8d8700d0965 -M glabels2/ChangeLog -M glabels2/data/templates/avery-iso-templates.xml -M glabels2/data/templates/avery-other-templates.xml -M glabels2/data/templates/avery-us-templates.xml -M glabels2/data/templates/brother-other-templates.xml -M glabels2/data/templates/misc-iso-templates.xml -M glabels2/data/templates/misc-other-templates.xml -M glabels2/data/templates/zweckform-iso-templates.xml +M glabels2/po/POTFILES.in +M glabels2/src/Makefile.am +M glabels2/src/mdi.c +D glabels2/src/menus.h +R070 glabels2/src/menus.c glabels2/src/ui.c +A glabels2/src/ui.h +M glabels2/src/view.c -commit f7097587f69419775838221b7d93d2b84d10ca53 +commit 047594ad3ee781d2321ae81b1889b618771a4725 Author: Jim Evins -Date: 2008-12-28 +Date: 2002-09-06 - 2008-12-27 Jim Evins + Rearranged app menus. + Added "Object properties" and "raise/lower selection" to app menus. + Some cleanup of view.[ch] - * de.po: - Updated german translation (Mario Blättermann) - * AUTHORS: - Updated credits to reflect above translation. - * data/glade/object-editor.glade: - * data/glade/prefs-dialog.glade: - * data/glade/template-designer.glade: - Removed "translatable" attribute from whitespace strings, - which are used only to help layout. + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@93 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/glabels-ui.xml +M glabels2/src/menus.c +M glabels2/src/tools.c +M glabels2/src/tools.h +M glabels2/src/view.c +M glabels2/src/view.h + +commit d50f26d829f665b021624ed83de4b4bea93f2c7c +Author: Jim Evins +Date: 2002-09-05 + + Added additional alerts and information to existing alerts. git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@816 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@92 f5e0f49d-192f-0410-a22d-a8d8700d0965 -M glabels2/AUTHORS -M glabels2/ChangeLog -M glabels2/data/glade/object-editor.glade -M glabels2/data/glade/prefs-dialog.glade -M glabels2/data/glade/template-designer.glade -M glabels2/po/de.po +M glabels2/src/file.c -commit fcaa5234cf2768a9167bc29a2875c56a146017a9 +commit 7f819d54a20703d03c930d1455776dacee3252a5 Author: Jim Evins -Date: 2008-12-22 - - 2008-12-22 Jim Evins +Date: 2002-09-04 - * NEWS: - * configure.in: - Prepare for 2.2.4 release. + Removed extraneous include. git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@812 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@91 f5e0f49d-192f-0410-a22d-a8d8700d0965 -M glabels2/ChangeLog -M glabels2/NEWS -M glabels2/configure.in +M glabels2/src/alert.h -commit 1a93a81faad1793bf17bef90238180aa748ee2aa +commit 8e701e7945f5aa67b12996889c5b5e57dcef56a3 Author: Jim Evins -Date: 2008-12-22 +Date: 2002-09-04 - 2008-12-21 Jim Evins - - * data/templates/avery-us-templates.xml: - * data/templates/misc-iso-templates.xml: - A couple of recent template submissions. - * AUTHORS: - Acknowledgements for above templates. + Moved HIG inspired alert dialog to its own module (alert.[ch]) git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@810 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@90 f5e0f49d-192f-0410-a22d-a8d8700d0965 -M glabels2/AUTHORS -M glabels2/ChangeLog -M glabels2/data/templates/avery-us-templates.xml -M glabels2/data/templates/misc-iso-templates.xml +A glabels2/src/alert.c +A glabels2/src/alert.h -commit eb69c885bee022e5617b4c99e7f6b34de68965a3 +commit 1f96e4e8cf4e39298501708c269654283779b80b Author: Jim Evins -Date: 2008-12-21 +Date: 2002-09-04 - 2008-12-21 Jim Evins - - * src/view.c: (motion_notify_event_cb), (button_press_event_cb): - Don't check for handles on aggregate selections. + Replaced hardcoded object defaults with defaults from prefs module. git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@808 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@89 f5e0f49d-192f-0410-a22d-a8d8700d0965 -M glabels2/ChangeLog -M glabels2/src/view.c +M glabels2/src/Makefile.am +M glabels2/src/color.c +M glabels2/src/view-barcode.c +M glabels2/src/view-box.c +M glabels2/src/view-ellipse.c +M glabels2/src/view-image.c +M glabels2/src/view-line.c +M glabels2/src/view-text.c -commit f87acc99c19ad66b78d6293e887412220a64f189 +commit 076dbabb5fc635eddd38a863379c5ebe5becd9b5 Author: Jim Evins -Date: 2008-12-19 - - 2008-12-18 Jim Evins +Date: 2002-09-04 - * src/view.c: (selection_received_cb): - Fixed paste bug that caused a duplicate phantom - view_object to be created for - each new label_object. This is because the view now - (as of r673) the view - monitiors the label for new objects and creates - view_objects automatically. + Moved color utilities to separate module (color.[ch]) git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@803 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@88 f5e0f49d-192f-0410-a22d-a8d8700d0965 -M glabels2/ChangeLog +M glabels2/po/POTFILES.in +M glabels2/src/Makefile.am +A glabels2/src/color.c +A glabels2/src/color.h +M glabels2/src/print-dialog.c +M glabels2/src/print.c M glabels2/src/view.c +M glabels2/src/wdgt-bc-props.c +M glabels2/src/wdgt-fill.c +M glabels2/src/wdgt-line.c +M glabels2/src/wdgt-mini-preview.c +M glabels2/src/wdgt-text-props.c -commit 033d3d8b724a44306ab3be30b26a39153d3b44bd +commit 6d2286e67a93ba8c7572f47a457202a98136dd71 Author: Jim Evins -Date: 2008-12-15 - - 2008-12-14 Jim Evins +Date: 2002-09-04 - * po/POTFILES.in: - Bug #2395628. Reconciled POTFILES.in with current files. + Moved HIG inspired alert dialog to its own module (alert.[ch]). git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@802 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@87 f5e0f49d-192f-0410-a22d-a8d8700d0965 -M glabels2/ChangeLog M glabels2/po/POTFILES.in -commit 85256c10a275c37d1efaa115840f0b7bb1f3d171 +commit 875fcf95a3cde43f575c76f5b402b0d72e9cd39b Author: Jim Evins -Date: 2008-12-15 - - 2008-12-14 Jim Evins +Date: 2002-09-04 - * src/ui.c: (gl_ui_new): - Bug #2395628. Fixed i18n for application shell. + Moved HIG inspired alert dialog to its own module (alert.[ch]). git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@800 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@86 f5e0f49d-192f-0410-a22d-a8d8700d0965 -M glabels2/ChangeLog -M glabels2/src/ui.c +M glabels2/src/Makefile.am +M glabels2/src/file.c +M glabels2/src/mdi.c +M glabels2/src/print.c +M glabels2/src/util.c +M glabels2/src/util.h -commit c8f375d7e8aebd472353953976a629730c857978 +commit 803af36e65ebb3bf36eee95c95fba454d3f1b66d Author: Jim Evins -Date: 2008-12-15 - - 2008-12-14 Jim Evins +Date: 2002-09-03 - * configure.in: - Bug #2316013. Added PKG_PROG_PKG_CONFIG. + Added GNOME_COMMON_INIT macro. git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@798 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@85 f5e0f49d-192f-0410-a22d-a8d8700d0965 -M glabels2/ChangeLog -M glabels2/configure.in +M glabels2/aclocal.m4 -commit b4abc77732a4daf5ada4cd4da0f945453380db7e +commit 1762ac3c02393c943529ee331c102f094903c5ff Author: Jim Evins -Date: 2008-11-16 - - 2008-11-15 Jim Evins +Date: 2002-09-03 - * libglabels/db.c: (lgl_db_register_template): - * libglabels/xml-template.c: - (lgl_xml_template_parse_template_node): - * src/glabels-batch.c: - * src/view-text.c: (gl_view_text_create_button_press_event): - Fixed several issues such as possible use of uninitialized - variables found with "-O1 -Wall". + Added GNOME_PROGRAM_STANDARD_PROPERTIES. + Removed configuration artifacts from 0.4.x. git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@795 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@84 f5e0f49d-192f-0410-a22d-a8d8700d0965 -M glabels2/ChangeLog -M glabels2/libglabels/db.c -M glabels2/libglabels/xml-template.c +M glabels2/src/commands.c M glabels2/src/glabels-batch.c -M glabels2/src/view-text.c +M glabels2/src/glabels.c +M glabels2/src/splash.c +M glabels2/src/template.c -commit eab7333647b997218395f4f30a5a6a18705c7f7c +commit d409fcb505f6db88e47b2a1ed4fdbda9d45515eb Author: Jim Evins -Date: 2008-11-10 +Date: 2002-09-03 - 2008-11-09 Jim Evins + Added GNOME_COMMON_INIT macro. + Removed configuration artifacts from 0.4.x. + Added minimum Bonobo version. - * data/templates/misc-iso-templates.xml: - Another user submitted template. + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@83 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/acconfig.h +M glabels2/configure.in + +commit 4e09a8aa2cd791c88b13a6e2f93d07033fdfaeb6 +Author: Jim Evins +Date: 2002-09-03 + + Had neglected to run some of the warning/error dialogs. git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@793 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@82 f5e0f49d-192f-0410-a22d-a8d8700d0965 -M glabels2/ChangeLog -M glabels2/data/templates/misc-iso-templates.xml +M glabels2/src/file.c -commit 0fa94b3a05a329adf9ca6b52ca41b56b24e12766 +commit 131d154d86af37e82cb3baf1274fcab2706a4c63 Author: Jim Evins -Date: 2008-10-28 - - 2008-10-27 Jim Evins +Date: 2002-09-03 - * data/templates/avery-us-templates.xml: - * data/templates/misc-iso-templates.xml: - * data/templates/zweckform-iso-templates.xml: - Caught up on user submitted templates. - * AUTHORS: - Acknowledgements for above templates. + No longer changes labels filename and modification status if save + fails. git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@789 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@81 f5e0f49d-192f-0410-a22d-a8d8700d0965 -M glabels2/AUTHORS -M glabels2/ChangeLog -M glabels2/data/templates/avery-us-templates.xml -M glabels2/data/templates/misc-iso-templates.xml -M glabels2/data/templates/zweckform-iso-templates.xml +M glabels2/src/xml-label.c -commit f3330ba8ef8348e17bcbb5f236507b94b92fb504 +commit e2c278742682530e40d174451830b17e5af89e0d Author: Jim Evins -Date: 2008-10-24 +Date: 2002-09-03 - 2008-10-23 Jim Evins + Removed TAB from authors strings -- it caused a segfault w/ AA fonts. - * src/label-text.c: (set_font_family): - * src/object-editor-text-page.c: - (gl_object_editor_prepare_text_page), - (gl_object_editor_set_font_family): - * src/prefs-dialog.c: (construct_object_page), - (update_object_page_from_prefs): - * src/ui-property-bar.c: (gl_ui_property_bar_construct), - (reset_to_default_properties): - * src/util.c: (gl_util_get_font_family_list): - * src/util.h: - Bug #1902275 and Bug #2186214. Cache font list so that - it is not re-created everytime - the list is requested. - * src/object-editor-text-page.c: - (gl_object_editor_set_font_family): - Don't change font-family if it hasn't actually changed. + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@80 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/src/commands.c + +commit 6b512fc87989f66f777aed61540f7116ab6f7f99 +Author: Jim Evins +Date: 2002-09-03 + + Replaced gtk_message_dialogs with a custom dialog based on the HIG. git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@787 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@79 f5e0f49d-192f-0410-a22d-a8d8700d0965 -M glabels2/ChangeLog -M glabels2/src/label-text.c -M glabels2/src/object-editor-text-page.c -M glabels2/src/prefs-dialog.c -M glabels2/src/ui-property-bar.c +M glabels2/src/file.c +M glabels2/src/mdi.c M glabels2/src/util.c M glabels2/src/util.h -commit 6bfe40b9f5e173eae0b7176e9d0ffe3191bd0201 +commit ee1d07bf8604c5b53544f2b4afa33f3388e6eafd Author: Jim Evins -Date: 2008-08-30 - - 2008-08-29 Jim Evins +Date: 2002-09-03 - * src/file.c: (gl_file_open), (gl_file_save_as): - Bug #2069668. Corrected button order in Open and - "Save as" - dialogs. + Removed close from main toolbar. git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@782 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@78 f5e0f49d-192f-0410-a22d-a8d8700d0965 -M glabels2/ChangeLog -M glabels2/src/file.c +M glabels2/src/glabels-ui.xml -commit 9d1db9a86dc38a2828d571e80d2a65f6d28c8ba1 +commit 2df2624a8e2ab2434dbf08f5bd326e6a8cb9ac85 Author: Jim Evins -Date: 2008-08-19 - - 2008-08-18 Jim Evins +Date: 2002-09-01 - * NEWS: - * configure.in: - * docs/libglabels/tmpl/paper.sgml: - Prepare for 2.2.3 release. + Added ability to import from 0.4.x git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@779 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@77 f5e0f49d-192f-0410-a22d-a8d8700d0965 -M glabels2/ChangeLog -M glabels2/NEWS -M glabels2/configure.in -M glabels2/docs/libglabels/tmpl/paper.sgml -M glabels2/gtk-doc.make +M glabels2/po/POTFILES.in -commit 0cb3511ff16977b4bcaed8127929171ec8560f8d +commit 715b07ac370161b9d267bb827425797300fefae7 Author: Jim Evins -Date: 2008-08-17 +Date: 2002-09-01 - 2008-08-17 Jim Evins - - * data/dtd/glabels-2.2.dtd: - * data/templates/paper-sizes.xml: - * libglabels/db.c: (lgl_db_init): - * libglabels/paper.c: (lgl_paper_new), (lgl_paper_dup), - (lgl_paper_free): - * libglabels/paper.h: - * libglabels/xml-paper.c: (lgl_xml_paper_parse_paper_node): - * src/print-op.c: (set_page_size): - Bug #2049431. Always explicitely set page size. - Added pwg_size field (PWG 5101.1-2002 - size specification) to the libglabels paper database to - allow the page size to be - communicated to GtkPrintOp un-ambiguously. + Updated german translation, thanks to Christian Neumair + . git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@778 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@76 f5e0f49d-192f-0410-a22d-a8d8700d0965 -M glabels2/ChangeLog -M glabels2/data/dtd/glabels-2.2.dtd -M glabels2/data/templates/paper-sizes.xml -M glabels2/libglabels/db.c -M glabels2/libglabels/paper.c -M glabels2/libglabels/paper.h -M glabels2/libglabels/xml-paper.c -M glabels2/src/print-op.c +M glabels2/po/de.po -commit 1e2a5ab9232f284bda98dccaedb6016d6e5f2857 +commit 6702a0a49a3306f6ef7085fe4468cf560aeaa25c Author: Jim Evins -Date: 2008-07-26 - - 2008-07-25 Jim Evins +Date: 2002-09-01 - * src/object-editor-size-page.c: (size_reset_cb), - (gl_object_editor_set_max_size): - Bug #1993550. Set size limits based on longest side - of label. + Updated german translation, thanks to Christian Neumair + . git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@775 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@75 f5e0f49d-192f-0410-a22d-a8d8700d0965 -M glabels2/ChangeLog -M glabels2/src/object-editor-size-page.c +M glabels2/AUTHORS -commit db3c2bd3a3b02e607ae60a08f01c2a50da66d7d3 +commit 2b92b4ab70d2ba3c5b186aa2d33b4e0f192afc30 Author: Jim Evins -Date: 2008-07-20 - - 2008-07-19 Jim Evins +Date: 2002-09-01 - * configure.in: - * src/mygal/Makefile.am: - Make sure libtool handles library dependencies for mygal - properly. + Added capability to import files created w/ 0.4.x git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@773 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@74 f5e0f49d-192f-0410-a22d-a8d8700d0965 -M glabels2/ChangeLog -M glabels2/configure.in -M glabels2/src/mygal/Makefile.am +M glabels2/src/Makefile.am +A glabels2/src/xml-label-04.c +C056 glabels2/src/xml-label.h glabels2/src/xml-label-04.h +M glabels2/src/xml-label.c +M glabels2/src/xml-label.h -commit d7f7d6bd6d757805359b3e997e2978c0012f54a5 +commit 40377ed17a110bfdd5315a87728eeb8813d8ec66 Author: Jim Evins -Date: 2008-05-22 - - 2008-05-21 Jim Evins +Date: 2002-08-28 - * src/glabels-batch.c: (main): - Bug #1968653. Initialize prefs subsystem in - glabels-batch. + Reconciled text object alignment algorithm with view-text.c git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@771 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@73 f5e0f49d-192f-0410-a22d-a8d8700d0965 -M glabels2/ChangeLog -M glabels2/src/glabels-batch.c +M glabels2/src/print.c -commit 72928ecdf1b1560209e55c3d64fe6e3dfaa19604 +commit c5417dc935595eeda545d0007ac89122f2a534a3 Author: Jim Evins -Date: 2008-05-10 - - 2008-05-09 Jim Evins +Date: 2002-08-28 - * data/glade/object-editor.glade: - Bug #1959135. A couple of radio buttons somehow became - ungrouped. + Changed version to 1.89.1 for next build. git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@770 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@72 f5e0f49d-192f-0410-a22d-a8d8700d0965 -M glabels2/ChangeLog -M glabels2/data/glade/object-editor.glade +M glabels2/configure.in -commit bff482ebb178677634fd8f1d00d3e777d52d7ba1 +commit ee93678898dff82a84fa47c5f749378b226401b5 Author: Jim Evins -Date: 2008-04-05 +Date: 2002-08-27 - 2008-04-04 Jim Evins + More screwing w/ build environment. - * data/templates/brother-other-templates.xml: - Added categories to existing templates. - * data/templates/misc-other-templates.xml: - Moved dymo templates to their own file. - * data/templates/Makefile.am: - * data/templates/dymo-other-templates.xml: - Additional dymo templates provided by Harald Welte - . - * AUTHORS: - Acknowledgement for above templates. + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@70 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/Makefile.am + +commit 97aa1f5682152f781e6f4e2ff6d6c04772ac308c +Author: Jim Evins +Date: 2002-08-27 + + Still screwing with build environment. git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@765 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@69 f5e0f49d-192f-0410-a22d-a8d8700d0965 -M glabels2/AUTHORS -M glabels2/ChangeLog -M glabels2/data/templates/Makefile.am -M glabels2/data/templates/brother-other-templates.xml -A glabels2/data/templates/dymo-other-templates.xml -M glabels2/data/templates/misc-other-templates.xml +M glabels2/barcode-0.98/Makefile.in -commit 77e287c50a70b8f21c1f6168e109ede934eeea15 +commit 4412efca732464e1108e0ab55f1aa641864d9212 Author: Jim Evins -Date: 2008-03-25 - - 2008-03-24 Jim Evins +Date: 2002-08-27 - * src/xml-label.c: (xml_doc_to_label): - Bug #1872584. Don't refuse to parse label file if - namespace is - unrecognized -- it may be from a newer version of glabels. + Still skrewing with build environment. git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@764 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@68 f5e0f49d-192f-0410-a22d-a8d8700d0965 -M glabels2/ChangeLog -M glabels2/src/xml-label.c +A glabels2/barcode-0.98/Makefile.in -commit da84fe8790466157cac18eed1895cffa20d316d4 +commit c670f3531e994cb52872171e4018c525c28cff49 Author: Jim Evins -Date: 2008-03-16 - - 2008-03-15 Jim Evins +Date: 2002-08-27 - * data/templates/Makefile.am: - * data/templates/brother-other-templates.xml: - Added brother templates. - * src/cairo-markup-path.c: (gl_cairo_markup_margin_rect_path), - (gl_cairo_markup_margin_cd_path): - * src/view.c: (draw_markup_layer): - Fixed markup drawing errors when label is rotated. + Skrewing with the build environment. git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@761 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@67 f5e0f49d-192f-0410-a22d-a8d8700d0965 -M glabels2/ChangeLog -M glabels2/data/templates/Makefile.am -A glabels2/data/templates/brother-other-templates.xml -M glabels2/src/cairo-markup-path.c -M glabels2/src/view.c +D glabels2/po/Makefile.in.in +D glabels2/po/glabels.pot -commit 00e91e339f4184c5af3f026db6da7cb704362fb7 +commit 2990a2608a2c5b56e1377c2d15020963b08efb3a Author: Jim Evins -Date: 2008-03-04 - - 2008-03-03 Jim Evins +Date: 2002-08-27 - * configure.in: - * ko.po: - Added korean translation provided by xein@naver.com. + Skrewing with the build environment. git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@759 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@66 f5e0f49d-192f-0410-a22d-a8d8700d0965 -M glabels2/ChangeLog +M glabels2/acconfig.h +A glabels2/acinclude.m4 +M glabels2/aclocal.m4 +A glabels2/autogen.sh +D glabels2/config.h.in M glabels2/configure.in -A glabels2/po/ko.po - -commit 1af444dffebbf48dd36214aee5d2e7ed8e73c8ab +D glabels2/install-sh +A glabels2/macros/Makefile.am +A glabels2/macros/aclocal-include.m4 +A glabels2/macros/autogen.sh +A glabels2/macros/compiler-flags.m4 +A glabels2/macros/curses.m4 +A glabels2/macros/gnome-bonobo-check.m4 +A glabels2/macros/gnome-common.m4 +A glabels2/macros/gnome-cxx-check.m4 +A glabels2/macros/gnome-fileutils.m4 +A glabels2/macros/gnome-gettext.m4 +A glabels2/macros/gnome-ghttp-check.m4 +A glabels2/macros/gnome-gnorba-check.m4 +A glabels2/macros/gnome-guile-checks.m4 +A glabels2/macros/gnome-libgtop-check.m4 +A glabels2/macros/gnome-objc-checks.m4 +A glabels2/macros/gnome-orbit-check.m4 +A glabels2/macros/gnome-pilot.m4 +A glabels2/macros/gnome-print-check.m4 +A glabels2/macros/gnome-pthread-check.m4 +A glabels2/macros/gnome-support.m4 +A glabels2/macros/gnome-undelfs.m4 +A glabels2/macros/gnome-vfs.m4 +A glabels2/macros/gnome-x-checks.m4 +A glabels2/macros/gnome-xml-check.m4 +A glabels2/macros/gnome.m4 +A glabels2/macros/gperf-check.m4 +A glabels2/macros/linger.m4 +A glabels2/macros/need-declaration.m4 +A glabels2/macros/psiconv.m4 +M glabels2/po/Makefile.in.in +M glabels2/po/glabels.pot +D glabels2/stamp-h.in + +commit c40f73c9fffc049f09d5f6f5bb1565277ae43c74 Author: Jim Evins -Date: 2008-02-22 - - 2008-02-21 Jim Evins +Date: 2002-08-26 - * src/ui.c: - Last minute bug fix for 2.2.2 release. - Fixed typo that prevented "Save" from being deactivated - when - document is not modified. + Added translations from 0.4.5. Only a fraction of the strings + are up-to-date. git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@754 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@65 f5e0f49d-192f-0410-a22d-a8d8700d0965 -M glabels2/ChangeLog -M glabels2/src/ui.c +A glabels2/po/es.po +A glabels2/po/pl.po +A glabels2/po/ru.po +A glabels2/po/zh_TW.Big5.po -commit c7b72805e8f9e88c788dcd8cb599b11515fac170 +commit 977b2272d62424ffc272d48aabcd38a9e37cdf3b Author: Jim Evins -Date: 2008-02-22 +Date: 2002-08-26 - 2008-02-21 Jim Evins - - * NEWS: - * configure.in: - Prepare for 2.2.2 release. + Removed configure from CVS. git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@753 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@64 f5e0f49d-192f-0410-a22d-a8d8700d0965 -M glabels2/ChangeLog -M glabels2/NEWS +M glabels2/AUTHORS +D glabels2/configure M glabels2/configure.in +M glabels2/po/POTFILES.in +M glabels2/po/de.po +M glabels2/po/fr.po +M glabels2/po/glabels.pot +M glabels2/po/ja.po +M glabels2/po/pt_BR.po -commit 104d0092d40b8bbfef6eb417fdf9ee9c568ab7e3 +commit ef9184a8d24739952072b0b36798cd27832f9515 Author: Jim Evins -Date: 2008-02-19 - - 2008-02-18 Jim Evins +Date: 2002-08-26 - * src/prefs-model.c: (gl_prefs_model_save_settings), - (gl_prefs_model_load_settings): - Set default units for file output. + Added stock images to help menu items. git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@751 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@63 f5e0f49d-192f-0410-a22d-a8d8700d0965 -M glabels2/ChangeLog -M glabels2/src/prefs-model.c +M glabels2/src/glabels-ui.xml -commit ef2d442e373bf8f26ff49f1d9e2e4415d3690d15 +commit 0120f8c8e53c2a3a56c73d732305b0e061303d17 Author: Jim Evins -Date: 2008-02-18 - - 2008-02-18 Jim Evins +Date: 2002-08-25 - * help/C/glabels.xml: - Fixed example template. + Reconciled label acknowledgments with 0.4.5. git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@749 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@62 f5e0f49d-192f-0410-a22d-a8d8700d0965 -M glabels2/ChangeLog -M glabels2/help/C/glabels.xml +M glabels2/AUTHORS -commit df63b87a2eb63897873851c61c1200334aaccfcb +commit d154d0c0094506b62760d929030614e7d98c76e6 Author: Jim Evins -Date: 2008-02-17 - - 2008-02-16 Jim Evins +Date: 2002-08-25 - * AUTHORS: - * data/templates/avery-iso-templates.xml: - * data/templates/avery-us-templates.xml: - * data/templates/misc-iso-templates.xml: - * data/templates/misc-us-templates.xml: - Caught up on user submitted templates. + Reconciled predefined labels with 0.4.5. git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@747 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@61 f5e0f49d-192f-0410-a22d-a8d8700d0965 -M glabels2/AUTHORS -M glabels2/ChangeLog -M glabels2/data/templates/avery-iso-templates.xml -M glabels2/data/templates/avery-us-templates.xml -M glabels2/data/templates/misc-iso-templates.xml -M glabels2/data/templates/misc-us-templates.xml +M glabels2/data/predefined-labels.template -commit bb17382205e5bae69c7dc96e394b2da864ef3645 +commit ea716fa1d1cfce77cb991fec2ac3ca2f37aa5a4e Author: Jim Evins -Date: 2008-02-05 - - 2008-02-04 Jim Evins +Date: 2002-08-25 - * src/view-image.c: (update_object_from_editor_cb): - Bug #1886438. Don't update the image size unless it - is actually - triggered by a change in image source. The result of - this bug - was that any attempt to edit the size spinboxes, - immediately - reset the size. + Added gl_view_raise_fg() to keep foreground objects on top. git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@745 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@60 f5e0f49d-192f-0410-a22d-a8d8700d0965 -M glabels2/ChangeLog -M glabels2/src/view-image.c +M glabels2/src/view-highlight.c +M glabels2/src/view-object.c +M glabels2/src/view.c +M glabels2/src/view.h -commit cd2b98740455cb7a60925aa093fce003ecc8be81 +commit 262192e1efcac9209a70417db855de98d6a834a2 Author: Jim Evins -Date: 2008-02-03 - - 2008-02-03 Jim Evins +Date: 2002-08-25 - * src/label-image.c: (gl_label_image_class_init), (set_size): - Enforce minimum size for images. + Added foreground label outlines. git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@744 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@59 f5e0f49d-192f-0410-a22d-a8d8700d0965 -M glabels2/ChangeLog -M glabels2/src/label-image.c +M glabels2/src/view-object.c +M glabels2/src/view.c +M glabels2/src/view.h -commit 16f9c5076bfe01daba6a98a6572cee8e69d6375e +commit 6320b644115c2c0b78cc68794b482aec3db5a8ac Author: Jim Evins -Date: 2008-02-03 - - 2008-02-03 Jim Evins +Date: 2002-08-25 - * src/object-editor-lsize-page.c: - (gl_object_editor_set_max_lsize): - * src/object-editor-private.h: - * src/object-editor-shadow-page.c: - (gl_object_editor_set_max_shadow_offset): - * src/object-editor-size-page.c: (gl_object_editor_set_max_size): - * src/object-editor.c: (gl_object_editor_finalize), - (gl_object_editor_new), (gl_object_notebook_construct_valist), - (label_changed_cb): - * src/object-editor.h: - * src/ui-sidebar.c: (gl_ui_sidebar_construct): - * src/view-barcode.c: (construct_properties_editor): - * src/view-box.c: (construct_properties_editor): - * src/view-ellipse.c: (construct_properties_editor): - * src/view-image.c: (construct_properties_editor): - * src/view-line.c: (construct_properties_editor): - * src/view-object.c: (gl_view_object_finalize): - * src/view-text.c: (construct_properties_editor): - Move update_editor_from_label callback from individual - view objects - to the object editor, so that signals can be disconnected - when - object editor is finalized. - * src/view-text.c: (gl_view_text_create_button_press_event): - Fixed bug that caused multiple view objects to be created - for a - single text object. This bug would manifest itself as - a crash - when deleting multi-object selections which included - text objects. + Now unlinks output file to prevent an attempt to pop-up a dialog + asking to remove it -- since we don't do a gnome_init, this would + segfault. + Added a setlocale at initialization. git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@742 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@57 f5e0f49d-192f-0410-a22d-a8d8700d0965 -M glabels2/ChangeLog -M glabels2/src/object-editor-lsize-page.c -M glabels2/src/object-editor-private.h -M glabels2/src/object-editor-shadow-page.c -M glabels2/src/object-editor-size-page.c -M glabels2/src/object-editor.c -M glabels2/src/object-editor.h -M glabels2/src/ui-sidebar.c -M glabels2/src/view-barcode.c -M glabels2/src/view-box.c -M glabels2/src/view-ellipse.c -M glabels2/src/view-image.c -M glabels2/src/view-line.c -M glabels2/src/view-object.c -M glabels2/src/view-text.c +M glabels1/src/glabels_batch.c -commit 975cf2793e52a80c09f558064e0987d238b99edf +commit f488ddcd9c3a3ff60e25a9f98b4b5b6219c28864 Author: Jim Evins -Date: 2008-02-01 - - 2008-01-31 Jim Evins +Date: 2002-08-25 - * src/label-barcode.c: (draw_object): - Fixed rendering problem when "Invalid data" is displayed - when text - object is lower in stacking order. + Additional label templates. git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@739 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@56 f5e0f49d-192f-0410-a22d-a8d8700d0965 -M glabels2/ChangeLog -M glabels2/src/label-barcode.c +M glabels1/AUTHORS +M glabels1/data/predefined-labels.template -commit 4908a24dc1a5d597a853a4806e791f78b522fafd +commit efbdf799f29c02a8933c8102af43847603dc82d8 Author: Jim Evins -Date: 2008-01-31 +Date: 2002-08-25 - 2008-01-30 Jim Evins + Added polish translations submitted by Arkadiusz Lipiec + . - * src/label-text.c: (get_size), (draw_object), (draw_shadow): - Don't turn off cairo_hint_metrics. This causes serious - issues with - bitmap fonts. + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@55 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels1/AUTHORS +M glabels1/configure.in +A glabels1/po/pl.po + +commit 2bdecc249c87e1513a6c27404e79058e8e61be3a +Author: Jim Evins +Date: 2002-08-25 + + Added chinese (zh_TW.Big5) translations submitted by Shell, Hin-lik + Hung . git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@737 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@54 f5e0f49d-192f-0410-a22d-a8d8700d0965 -M glabels2/ChangeLog -M glabels2/src/label-text.c +M glabels1/configure.in +A glabels1/po/zh_TW.Big5.po -commit c173c24c951943fbdf0a5ecf35b84815ac736fcb +commit 12a432eefc8f1b5a0166e39b72d638358036e204 Author: Jim Evins -Date: 2008-01-30 - - 2008-01-29 Jim Evins +Date: 2002-08-24 - * src/print-op.c: (gl_print_op_construct), - (gl_print_op_construct_batch), (set_page_size): - Explicitly set page size for "other" page sizes. + Replaced gdk_mbstowcs with mbstowcs from stdlib.h. Gdk_mbstowcs is + broken in locales that do not use multi-byte characters and any LC_* + environmental variables are set. This caused problems for Mandrake + 8.x users (and probably others too). git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@735 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@53 f5e0f49d-192f-0410-a22d-a8d8700d0965 -M glabels2/ChangeLog -M glabels2/src/print-op.c +M glabels1/src/hack.c -commit 28c8daaa0657de9c8894a5c9bbad604c8a8a6013 +commit ea69a794bd98b9fa327f20b3a288d71ed7565d1f Author: Jim Evins -Date: 2008-01-26 - - 2008-01-25 Jim Evins +Date: 2002-08-24 - * src/bc.c: - Fixed Code128C backend parameters. - * src/label-barcode.c: (get_size): - Bug #1766425. If barcode is not renderable with either - input data or default data, use a default size. Also - fixed small leak. + Changed version in preparation for 0.4.5. git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@732 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@52 f5e0f49d-192f-0410-a22d-a8d8700d0965 -M glabels2/ChangeLog -M glabels2/src/bc.c -M glabels2/src/label-barcode.c +M glabels1/configure.in -commit 5042beae2d6a1d83f2d0178fe97636b99bedde17 +commit 198960004f4ccabf2a2485fb803f59e33192b2dd Author: Jim Evins -Date: 2008-01-23 - - 2008-01-22 Jim Evins +Date: 2002-08-24 - * NEWS: - * configure.in: - Preparation for 2.2.1 release. + Changed TODO to reflect that current efforts are on the 2.0 codebase. git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@728 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@51 f5e0f49d-192f-0410-a22d-a8d8700d0965 -M glabels2/ChangeLog -M glabels2/NEWS -M glabels2/configure.in +M glabels1/TODO -commit 147a21ba6c21f68b40654752182f6bbf55d06f2a +commit 841ca2ab492e342989338eb4ef485ff8d8d3a0ad Author: Jim Evins -Date: 2008-01-17 +Date: 2002-08-24 - 2008-01-16 Jim Evins - - * src/print.c: (print_label): - Bug #1872568. Don't apply special transforms (rotate and - mirror) to clipping region or outline. + Removed .gmo files from CVS. git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@726 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@50 f5e0f49d-192f-0410-a22d-a8d8700d0965 -M glabels2/ChangeLog -M glabels2/src/print.c +D glabels1/po/de.gmo +D glabels1/po/es.gmo +D glabels1/po/fr.gmo +D glabels1/po/ja.gmo +D glabels1/po/pt_BR.gmo -commit 512e3c088acd3f8a14d8152f7318cbbf17a3cdd8 +commit 5774e7a6a5c50f5830d1b3b34b1a9d713ad02b80 Author: Jim Evins -Date: 2008-01-02 +Date: 2002-08-24 - 2008-01-01 Jim Evins - - * src/util.c: - Sort font lists alphabetically. + Updated japanese translations submitted by Takeshi Aihana + . git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@724 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@49 f5e0f49d-192f-0410-a22d-a8d8700d0965 -M glabels2/ChangeLog -M glabels2/src/util.c +M glabels1/po/ja.po -commit 655ca82e016d106d6d884ef2caf8f0434f14221a +commit 70f2265289a107abd5564ece58adf22219e2285e Author: Jim Evins -Date: 2008-01-02 - - 2008-01-01 Jim Evins +Date: 2002-08-24 - * src/merge-evolution.c: - Do a case-insensitive sort. + Added russian translations submitted by Vitaly Lipatov + . git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@722 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@48 f5e0f49d-192f-0410-a22d-a8d8700d0965 -M glabels2/ChangeLog -M glabels2/src/merge-evolution.c +M glabels1/AUTHORS +M glabels1/configure.in +A glabels1/po/ru.po -commit 84dd6ce9eb82d51fefcc0f77a104adbf786feea1 +commit d2d63a08021ef50eff2d98b5f5d6e4973a361577 Author: Jim Evins -Date: 2008-01-02 +Date: 2002-08-24 - 2008-01-01 Jim Evins + Makefile.in should not be in CVS. - * src/merge-evolution.c: - Sort evolution by "file_under" field. Original patch - provided - by Peter Cherriman - in - Patch #1860423. - * AUTHORS: - Added acknowledgement for above patch. + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@47 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +D glabels2/barcode-0.98/Makefile.in + +commit 893b8caa6be07c5e0621afbe3e698e74419807e5 +Author: Jim Evins +Date: 2002-08-24 + + Makefile.in should not be in CVS. git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@720 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@46 f5e0f49d-192f-0410-a22d-a8d8700d0965 -M glabels2/AUTHORS -M glabels2/ChangeLog -M glabels2/src/merge-evolution.c +D glabels2/Makefile.in +D glabels2/src/Makefile.in +D glabels2/src/pixmaps/Makefile.in +D glabels2/src/stock-pixmaps/Makefile.in -commit dce85299fd3989e6636675c39317c7280592d86b +commit 8b0fc0a0d2be983a5e663b720a626e39a376c0a7 Author: Jim Evins -Date: 2007-12-25 - - 2007-12-25 Jim Evins +Date: 2002-08-24 - * glabels.spec.in: - Fix spec file. + No longer emits "changed" when initially clicking the font family + combobox. git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@715 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@45 f5e0f49d-192f-0410-a22d-a8d8700d0965 -M glabels2/ChangeLog -M glabels2/glabels.spec.in +M glabels2/src/wdgt-text-props.c -commit c8dd36d8d3c61487c28560d11f52310d655ab72a +commit 84a5fe2c73ed0ecd311133364f5e53d336cdc122 Author: Jim Evins -Date: 2007-12-25 - - 2007-12-25 Jim Evins +Date: 2002-08-23 - * MESSAGE-OF-DOOM: - Removed for 2.2 stable branch. - * Makefile.am: - * NEWS: - * configure.in: - Prepare for 2.2.0 release. + Changed event->button.* to event->motion.* when handling + GTK_MOTION_NOTIFY events. git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@714 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@44 f5e0f49d-192f-0410-a22d-a8d8700d0965 -M glabels2/ChangeLog -D glabels2/MESSAGE-OF-DOOM -M glabels2/Makefile.am -M glabels2/NEWS -M glabels2/configure.in +M glabels2/src/view-barcode.c +M glabels2/src/view-box.c +M glabels2/src/view-ellipse.c +M glabels2/src/view-highlight.c +M glabels2/src/view-image.c +M glabels2/src/view-line.c +M glabels2/src/view-text.c -commit ea75118a021e733fa7e2281456581dab61d9c811 +commit b9ef933e41e55b79e7fb7c906810923082ad326d Author: Jim Evins -Date: 2007-12-25 +Date: 2002-08-23 + + Removed cvswrappers. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@43 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/Makefile.in +M glabels2/barcode-0.98/doc/barcode.info +M glabels2/barcode-0.98/doc/barcode.pdf +M glabels2/barcode-0.98/doc/barcode.ps +M glabels2/barcode-0.98/doc/barcodedoc.txt +D glabels2/cvswrappers +M glabels2/src/Makefile.in +M glabels2/src/pixmaps/Makefile.in +M glabels2/src/stock-pixmaps/Makefile.in + +commit c1f2e6b6e372d0f62945aa26835780039ead7907 +Author: Jim Evins +Date: 2002-08-21 + + Initial revision - Creating glabels-2.2 branch. git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@713 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@39 f5e0f49d-192f-0410-a22d-a8d8700d0965 A glabels2/AUTHORS A glabels2/COPYING -A glabels2/COPYING-DOCS -A glabels2/COPYING-LIBGLABELS -A glabels2/COPYING.README_FIRST A glabels2/ChangeLog A glabels2/INSTALL -A glabels2/MESSAGE-OF-DOOM A glabels2/Makefile.am +A glabels2/Makefile.in A glabels2/NEWS A glabels2/README A glabels2/TODO -A glabels2/autogen.sh +A glabels2/acconfig.h +A glabels2/aclocal.m4 A glabels2/barcode-0.98/COPYING A glabels2/barcode-0.98/ChangeLog A glabels2/barcode-0.98/INSTALL -A glabels2/barcode-0.98/Makefile.am -A glabels2/barcode-0.98/Makefile.in.dist +A glabels2/barcode-0.98/Makefile.in A glabels2/barcode-0.98/README -A glabels2/barcode-0.98/README.glabels A glabels2/barcode-0.98/TODO A glabels2/barcode-0.98/barcode.h A glabels2/barcode-0.98/barcode.spec @@ -2799,7 +25024,7 @@ A glabels2/barcode-0.98/code93.c A glabels2/barcode-0.98/compat/getopt.c A glabels2/barcode-0.98/compat/getopt.h A glabels2/barcode-0.98/configure -A glabels2/barcode-0.98/configure.in.dist +A glabels2/barcode-0.98/configure.in A glabels2/barcode-0.98/contrib/barcode-SVG.tar.gz A glabels2/barcode-0.98/contrib/barcode-SVG.tar.gz.README A glabels2/barcode-0.98/contrib/barcode-for-delphi.tar.gz @@ -2838,179 +25063,60 @@ A glabels2/barcode-0.98/pcl.c A glabels2/barcode-0.98/plessey.c A glabels2/barcode-0.98/ps.c A glabels2/barcode-0.98/sample.c +A glabels2/config.h.in +A glabels2/configure A glabels2/configure.in -A glabels2/data/Makefile.am -A glabels2/data/desktop/Makefile.am -A glabels2/data/desktop/glabels.desktop.in -A glabels2/data/dtd/Makefile.am -A glabels2/data/dtd/glabels-2.2.dtd -A glabels2/data/glade/Makefile.am -A glabels2/data/glade/merge-properties-dialog.glade -A glabels2/data/glade/new-label-dialog.glade -A glabels2/data/glade/object-editor.glade -A glabels2/data/glade/prefs-dialog.glade -A glabels2/data/glade/print-custom-widget.glade -A glabels2/data/glade/property-bar.glade -A glabels2/data/glade/template-designer.glade -A glabels2/data/glade/wdgt-media-select.glade -A glabels2/data/glade/wdgt-rotate-label.glade -A glabels2/data/man/Makefile.am -A glabels2/data/man/glabels.1 -A glabels2/data/mime/Makefile.am -A glabels2/data/mime/glabels.applications -A glabels2/data/mime/glabels.keys.in -A glabels2/data/mime/glabels.mime -A glabels2/data/mime/glabels.xml.in -A glabels2/data/pixmaps/Makefile.am -A glabels2/data/pixmaps/ex-1layout.png -A glabels2/data/pixmaps/ex-2layouts.png -A glabels2/data/pixmaps/ex-cd-size.png -A glabels2/data/pixmaps/ex-rect-size.png -A glabels2/data/pixmaps/ex-round-size.png -A glabels2/data/pixmaps/glabels-about-logo.png -A glabels2/data/pixmaps/glabels-application-x-glabels.png -A glabels2/data/pixmaps/glabels-splash.png -A glabels2/data/pixmaps/glabels.png -A glabels2/data/templates/Makefile.am -A glabels2/data/templates/avery-iso-templates.xml -A glabels2/data/templates/avery-other-templates.xml -A glabels2/data/templates/avery-us-templates.xml -A glabels2/data/templates/categories.xml -A glabels2/data/templates/misc-iso-templates.xml -A glabels2/data/templates/misc-other-templates.xml -A glabels2/data/templates/misc-us-templates.xml -A glabels2/data/templates/paper-sizes.xml -A glabels2/data/templates/zweckform-iso-templates.xml -A glabels2/docs/Makefile.am -A glabels2/docs/libglabels/Makefile.am -A glabels2/docs/libglabels/libglabels-decl-list.txt -A glabels2/docs/libglabels/libglabels-docs.sgml -A glabels2/docs/libglabels/libglabels-overrides.txt -A glabels2/docs/libglabels/libglabels-sections.txt -A glabels2/docs/libglabels/libglabels-undocumented.txt -A glabels2/docs/libglabels/libglabels.types -A glabels2/docs/libglabels/tmpl/category.sgml -A glabels2/docs/libglabels/tmpl/db.sgml -A glabels2/docs/libglabels/tmpl/enums.sgml -A glabels2/docs/libglabels/tmpl/libglabels-unused.sgml -A glabels2/docs/libglabels/tmpl/libglabels.sgml -A glabels2/docs/libglabels/tmpl/paper.sgml -A glabels2/docs/libglabels/tmpl/str.sgml -A glabels2/docs/libglabels/tmpl/template.sgml -A glabels2/docs/libglabels/tmpl/xml-category.sgml -A glabels2/docs/libglabels/tmpl/xml-paper.sgml -A glabels2/docs/libglabels/tmpl/xml-template.sgml -A glabels2/docs/libglabels/tmpl/xml.sgml +A glabels2/cvswrappers +A glabels2/data/predefined-labels.template +A glabels2/glabels.desktop A glabels2/glabels.spec.in -A glabels2/gtk-doc.make -A glabels2/help/C/Makefile.am -A glabels2/help/C/figures/glabels-template-cd.png -A glabels2/help/C/figures/glabels-template-label.png -A glabels2/help/C/figures/glabels-template-layout.png -A glabels2/help/C/figures/main-window-empty.png -A glabels2/help/C/figures/merge-ex1-1.png -A glabels2/help/C/figures/merge-ex1-2.png -A glabels2/help/C/figures/merge-ex1-3.png -A glabels2/help/C/figures/merge-ex1-4.png -A glabels2/help/C/figures/merge-ex2-1.png -A glabels2/help/C/figures/merge-ex2-2.png -A glabels2/help/C/figures/merge-ex2-3.png -A glabels2/help/C/figures/merge-ex2-4.png -A glabels2/help/C/figures/object-editor-sidebar.png -A glabels2/help/C/figures/print-copies.png -A glabels2/help/C/figures/print-merge.png -A glabels2/help/C/glabels-C.omf -A glabels2/help/C/glabels.xml -A glabels2/help/C/legal.xml -A glabels2/help/Makefile.am -A glabels2/iec16022-0.2.1/BUGS -A glabels2/iec16022-0.2.1/CHANGELOG -A glabels2/iec16022-0.2.1/CREDITS -A glabels2/iec16022-0.2.1/INSTALL -A glabels2/iec16022-0.2.1/LICENSE -A glabels2/iec16022-0.2.1/Makefile.am -A glabels2/iec16022-0.2.1/Makefile.dist -A glabels2/iec16022-0.2.1/README -A glabels2/iec16022-0.2.1/README.glabels -A glabels2/iec16022-0.2.1/TODO -A glabels2/iec16022-0.2.1/iec16022.1 -A glabels2/iec16022-0.2.1/iec16022.c -A glabels2/iec16022-0.2.1/iec16022ecc200.c -A glabels2/iec16022-0.2.1/iec16022ecc200.h -A glabels2/iec16022-0.2.1/image.c -A glabels2/iec16022-0.2.1/image.h -A glabels2/iec16022-0.2.1/reedsol.c -A glabels2/iec16022-0.2.1/reedsol.h -A glabels2/iec16022-0.2.1/test/testsuite-example.bin -A glabels2/iec16022-0.2.1/test/testsuite-example.eps -A glabels2/iec16022-0.2.1/test/testsuite-example.hex -A glabels2/iec16022-0.2.1/test/testsuite-example.png -A glabels2/iec16022-0.2.1/test/testsuite-example.text -A glabels2/iec16022-0.2.1/test/testsuite.sh -A glabels2/libglabels/Makefile.am -A glabels2/libglabels/category.c -A glabels2/libglabels/category.h -A glabels2/libglabels/db.c -A glabels2/libglabels/db.h -A glabels2/libglabels/enums.h -A glabels2/libglabels/libglabels-private.h -A glabels2/libglabels/libglabels.h -A glabels2/libglabels/libglabels.pc.in -A glabels2/libglabels/paper.c -A glabels2/libglabels/paper.h -A glabels2/libglabels/str.c -A glabels2/libglabels/str.h -A glabels2/libglabels/template.c -A glabels2/libglabels/template.h -A glabels2/libglabels/xml-category.c -A glabels2/libglabels/xml-category.h -A glabels2/libglabels/xml-paper.c -A glabels2/libglabels/xml-paper.h -A glabels2/libglabels/xml-template.c -A glabels2/libglabels/xml-template.h -A glabels2/libglabels/xml.c -A glabels2/libglabels/xml.h +A glabels2/install-sh +A glabels2/missing +A glabels2/mkinstalldirs +A glabels2/pixmaps/glabels-about-logo.png +A glabels2/pixmaps/glabels-icon.png +A glabels2/pixmaps/glabels-logo.png A glabels2/po/ChangeLog +A glabels2/po/Makefile.in.in A glabels2/po/POTFILES.in -A glabels2/po/cs.po A glabels2/po/de.po -A glabels2/po/eo.po -A glabels2/po/es.po A glabels2/po/fr.po -A glabels2/po/it.po +A glabels2/po/glabels.pot A glabels2/po/ja.po -A glabels2/po/pl.po A glabels2/po/pt_BR.po -A glabels2/po/ru.po -A glabels2/po/zh_TW.Big5.po A glabels2/src/Makefile.am -A glabels2/src/base64.c -A glabels2/src/base64.h +A glabels2/src/Makefile.in A glabels2/src/bc-gnubarcode.c A glabels2/src/bc-gnubarcode.h -A glabels2/src/bc-iec16022.c -A glabels2/src/bc-iec16022.h A glabels2/src/bc-postnet.c A glabels2/src/bc-postnet.h A glabels2/src/bc.c A glabels2/src/bc.h -A glabels2/src/cairo-ellipse-path.c -A glabels2/src/cairo-ellipse-path.h -A glabels2/src/cairo-label-path.c -A glabels2/src/cairo-label-path.h -A glabels2/src/cairo-markup-path.c -A glabels2/src/cairo-markup-path.h -A glabels2/src/color.c -A glabels2/src/color.h -A glabels2/src/critical-error-handler.c -A glabels2/src/critical-error-handler.h +A glabels2/src/bonobo-mdi-child.c +A glabels2/src/bonobo-mdi-child.h +A glabels2/src/bonobo-mdi.c +A glabels2/src/bonobo-mdi.h +A glabels2/src/canvas-hacktext.c +A glabels2/src/canvas-hacktext.h +A glabels2/src/commands.c +A glabels2/src/commands.h A glabels2/src/debug.c A glabels2/src/debug.h A glabels2/src/file.c A glabels2/src/file.h A glabels2/src/glabels-batch.c +A glabels2/src/glabels-ui.xml A glabels2/src/glabels.c -A glabels2/src/hig.h +A glabels2/src/glabels.h +A glabels2/src/gnome-recent-marshal.list +A glabels2/src/gnome-recent-model.c +A glabels2/src/gnome-recent-model.h +A glabels2/src/gnome-recent-util.c +A glabels2/src/gnome-recent-util.h +A glabels2/src/gnome-recent-view-bonobo.c +A glabels2/src/gnome-recent-view-bonobo.h +A glabels2/src/gnome-recent-view.c +A glabels2/src/gnome-recent-view.h A glabels2/src/label-barcode.c A glabels2/src/label-barcode.h A glabels2/src/label-box.c @@ -3028,54 +25134,24 @@ A glabels2/src/label-text.h A glabels2/src/label.c A glabels2/src/label.h A glabels2/src/marshal.list -A glabels2/src/merge-evolution.c -A glabels2/src/merge-evolution.h -A glabels2/src/merge-init.c -A glabels2/src/merge-init.h -A glabels2/src/merge-properties-dialog.c -A glabels2/src/merge-properties-dialog.h +A glabels2/src/mdi-child.c +A glabels2/src/mdi-child.h +A glabels2/src/mdi.c +A glabels2/src/mdi.h +A glabels2/src/menus.c +A glabels2/src/menus.h +A glabels2/src/merge-properties.c +A glabels2/src/merge-properties.h A glabels2/src/merge-text.c A glabels2/src/merge-text.h -A glabels2/src/merge-vcard.c -A glabels2/src/merge-vcard.h +A glabels2/src/merge-ui-text.c +A glabels2/src/merge-ui-text.h +A glabels2/src/merge-ui.c +A glabels2/src/merge-ui.h A glabels2/src/merge.c A glabels2/src/merge.h -A glabels2/src/mini-preview-pixbuf-cache.c -A glabels2/src/mini-preview-pixbuf-cache.h -A glabels2/src/mini-preview-pixbuf.c -A glabels2/src/mini-preview-pixbuf.h -A glabels2/src/mygal/Makefile.am -A glabels2/src/mygal/color-group.c -A glabels2/src/mygal/color-group.h -A glabels2/src/mygal/color-palette.c -A glabels2/src/mygal/color-palette.h -A glabels2/src/mygal/e-colors.c -A glabels2/src/mygal/e-colors.h -A glabels2/src/mygal/e-marshal.list -A glabels2/src/mygal/e-util.h -A glabels2/src/mygal/mygal-combo-box.c -A glabels2/src/mygal/mygal-combo-box.h -A glabels2/src/mygal/widget-color-combo.c -A glabels2/src/mygal/widget-color-combo.h -A glabels2/src/new-label-dialog.c -A glabels2/src/new-label-dialog.h -A glabels2/src/object-editor-bc-page.c -A glabels2/src/object-editor-data-page.c -A glabels2/src/object-editor-edit-page.c -A glabels2/src/object-editor-fill-page.c -A glabels2/src/object-editor-image-page.c -A glabels2/src/object-editor-line-page.c -A glabels2/src/object-editor-lsize-page.c -A glabels2/src/object-editor-position-page.c -A glabels2/src/object-editor-private.h -A glabels2/src/object-editor-shadow-page.c -A glabels2/src/object-editor-size-page.c -A glabels2/src/object-editor-text-page.c -A glabels2/src/object-editor.c -A glabels2/src/object-editor.h -A glabels2/src/pixbuf-cache.c -A glabels2/src/pixbuf-cache.h A glabels2/src/pixmaps/Makefile.am +A glabels2/src/pixmaps/Makefile.in A glabels2/src/pixmaps/checkerboard.xpm A glabels2/src/pixmaps/collate.xpm A glabels2/src/pixmaps/cursor_barcode.xbm @@ -3093,73 +25169,34 @@ A glabels2/src/pixmaps/cursor_text_mask.xbm A glabels2/src/pixmaps/nocollate.xpm A glabels2/src/prefs-dialog.c A glabels2/src/prefs-dialog.h -A glabels2/src/prefs-model.c -A glabels2/src/prefs-model.h A glabels2/src/prefs.c A glabels2/src/prefs.h -A glabels2/src/print-op.c -A glabels2/src/print-op.h +A glabels2/src/print-dialog.c +A glabels2/src/print-dialog.h A glabels2/src/print.c A glabels2/src/print.h A glabels2/src/recent.c A glabels2/src/recent.h +A glabels2/src/splash.c +A glabels2/src/splash.h A glabels2/src/stock-pixmaps/Makefile.am -A glabels2/src/stock-pixmaps/stock_align_bottom_16.png -A glabels2/src/stock-pixmaps/stock_align_hcenter_16.png -A glabels2/src/stock-pixmaps/stock_align_left_16.png -A glabels2/src/stock-pixmaps/stock_align_right_16.png -A glabels2/src/stock-pixmaps/stock_align_top_16.png -A glabels2/src/stock-pixmaps/stock_align_vcenter_16.png -A glabels2/src/stock-pixmaps/stock_arrow_16.png +A glabels2/src/stock-pixmaps/Makefile.in A glabels2/src/stock-pixmaps/stock_arrow_24.png -A glabels2/src/stock-pixmaps/stock_barcode_16.png A glabels2/src/stock-pixmaps/stock_barcode_24.png -A glabels2/src/stock-pixmaps/stock_box_16.png A glabels2/src/stock-pixmaps/stock_box_24.png -A glabels2/src/stock-pixmaps/stock_bucket_fill_16.png -A glabels2/src/stock-pixmaps/stock_bucket_fill_24.png -A glabels2/src/stock-pixmaps/stock_center_horiz_16.png -A glabels2/src/stock-pixmaps/stock_center_vert_16.png -A glabels2/src/stock-pixmaps/stock_ellipse_16.png A glabels2/src/stock-pixmaps/stock_ellipse_24.png -A glabels2/src/stock-pixmaps/stock_flip_horiz_16.png -A glabels2/src/stock-pixmaps/stock_flip_vert_16.png -A glabels2/src/stock-pixmaps/stock_hchain_24.png -A glabels2/src/stock-pixmaps/stock_hchain_broken_24.png -A glabels2/src/stock-pixmaps/stock_image_16.png A glabels2/src/stock-pixmaps/stock_image_24.png -A glabels2/src/stock-pixmaps/stock_line_16.png A glabels2/src/stock-pixmaps/stock_line_24.png -A glabels2/src/stock-pixmaps/stock_merge_16.png A glabels2/src/stock-pixmaps/stock_merge_24.png -A glabels2/src/stock-pixmaps/stock_order_bottom_16.png -A glabels2/src/stock-pixmaps/stock_order_top_16.png -A glabels2/src/stock-pixmaps/stock_pencil_16.png -A glabels2/src/stock-pixmaps/stock_pencil_24.png -A glabels2/src/stock-pixmaps/stock_properties_16.png -A glabels2/src/stock-pixmaps/stock_properties_24.png -A glabels2/src/stock-pixmaps/stock_rotate_left_16.png -A glabels2/src/stock-pixmaps/stock_rotate_right_16.png -A glabels2/src/stock-pixmaps/stock_text_16.png A glabels2/src/stock-pixmaps/stock_text_24.png -A glabels2/src/stock-pixmaps/stock_vchain_24.png -A glabels2/src/stock-pixmaps/stock_vchain_broken_24.png A glabels2/src/stock.c A glabels2/src/stock.h -A glabels2/src/template-designer.c -A glabels2/src/template-designer.h +A glabels2/src/template.c +A glabels2/src/template.h A glabels2/src/text-node.c A glabels2/src/text-node.h -A glabels2/src/ui-commands.c -A glabels2/src/ui-commands.h -A glabels2/src/ui-property-bar.c -A glabels2/src/ui-property-bar.h -A glabels2/src/ui-sidebar.c -A glabels2/src/ui-sidebar.h -A glabels2/src/ui-util.c -A glabels2/src/ui-util.h -A glabels2/src/ui.c -A glabels2/src/ui.h +A glabels2/src/tools.c +A glabels2/src/tools.h A glabels2/src/util.c A glabels2/src/util.h A glabels2/src/view-barcode.c @@ -3168,6 +25205,8 @@ A glabels2/src/view-box.c A glabels2/src/view-box.h A glabels2/src/view-ellipse.c A glabels2/src/view-ellipse.h +A glabels2/src/view-highlight.c +A glabels2/src/view-highlight.h A glabels2/src/view-image.c A glabels2/src/view-image.h A glabels2/src/view-line.c @@ -3178,33 +25217,843 @@ A glabels2/src/view-text.c A glabels2/src/view-text.h A glabels2/src/view.c A glabels2/src/view.h -A glabels2/src/warning-handler.c -A glabels2/src/warning-handler.h -A glabels2/src/wdgt-chain-button.c -A glabels2/src/wdgt-chain-button.h +A glabels2/src/wdgt-bc-data.c +A glabels2/src/wdgt-bc-data.h +A glabels2/src/wdgt-bc-props.c +A glabels2/src/wdgt-bc-props.h +A glabels2/src/wdgt-bc-style.c +A glabels2/src/wdgt-bc-style.h +A glabels2/src/wdgt-fill.c +A glabels2/src/wdgt-fill.h +A glabels2/src/wdgt-line.c +A glabels2/src/wdgt-line.h A glabels2/src/wdgt-media-select.c A glabels2/src/wdgt-media-select.h A glabels2/src/wdgt-mini-preview.c A glabels2/src/wdgt-mini-preview.h +A glabels2/src/wdgt-position.c +A glabels2/src/wdgt-position.h A glabels2/src/wdgt-print-copies.c A glabels2/src/wdgt-print-copies.h A glabels2/src/wdgt-print-merge.c A glabels2/src/wdgt-print-merge.h A glabels2/src/wdgt-rotate-label.c A glabels2/src/wdgt-rotate-label.h -A glabels2/src/window.c -A glabels2/src/window.h -A glabels2/src/xml-label-04.c -A glabels2/src/xml-label-04.h +A glabels2/src/wdgt-size.c +A glabels2/src/wdgt-size.h +A glabels2/src/wdgt-text-entry.c +A glabels2/src/wdgt-text-entry.h +A glabels2/src/wdgt-text-props.c +A glabels2/src/wdgt-text-props.h +A glabels2/src/wdgt-vector.c +A glabels2/src/wdgt-vector.h A glabels2/src/xml-label.c A glabels2/src/xml-label.h +A glabels2/stamp-h.in + +commit 22858b6573961f37d305a8c343e10348562b578c +Author: Olivier Berger +Date: 2002-06-29 + + Updated french translation, up to date with 0.4.4 + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@37 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels1/po/ChangeLog +M glabels1/po/fr.po + +commit f5964f89087a3541d6fcfdb506f5ddff3f8d4e73 +Author: Jim Evins +Date: 2002-06-28 -commit aa41cfa57d2ea352fee26bbacfcd6ac919f1ee76 + Fix broken build environment. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@36 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels1/ABOUT-NLS +M glabels1/ChangeLog +M glabels1/Makefile.am +M glabels1/aclocal.m4 +M glabels1/config.h.in +M glabels1/configure.in +M glabels1/intl/Makefile.in +M glabels1/macros/Makefile.in +M glabels1/po/ChangeLog +M glabels1/po/Makefile.in.in +D glabels1/po/Makevars +D glabels1/po/Rules-quot +D glabels1/po/boldquot.sed +M glabels1/po/cat-id-tbl.c +M glabels1/po/de.gmo +M glabels1/po/de.po +D glabels1/po/en@boldquot.header +D glabels1/po/en@quot.header +M glabels1/po/es.gmo +M glabels1/po/es.po +M glabels1/po/fr.gmo +M glabels1/po/fr.po +M glabels1/po/glabels.pot +D glabels1/po/insert-header.sin +M glabels1/po/ja.gmo +M glabels1/po/ja.po +M glabels1/po/pt_BR.gmo +M glabels1/po/pt_BR.po +D glabels1/po/quot.sed +D glabels1/po/remove-potcdate.sin + +commit 628da1b907a5f2e056bf22f25ca66116a87e4919 +Author: Jim Evins +Date: 2002-06-26 + + Additional label template. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@35 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels1/AUTHORS +M glabels1/data/predefined-labels.template + +commit e76e40d1a99bd29c9b415cf337a2d7ea21f285bb +Author: Jim Evins +Date: 2002-06-26 + + Improved CSV parsing. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@34 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels1/src/merge.c +M glabels1/src/merge_text.c + +commit a83f950c1f19019cf0092cb7b3af5c61b67417f6 +Author: Jim Evins +Date: 2002-06-26 + + Changed about dialog image. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@33 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels1/src/menu.c + +commit ea3d9e9fce16b8c8cbdbbced5efe15f96675e099 +Author: Jim Evins +Date: 2002-06-26 + + New files + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@32 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +A glabels1/po/Makevars +A glabels1/po/Rules-quot +A glabels1/po/boldquot.sed +A glabels1/po/en@boldquot.header +A glabels1/po/en@quot.header +A glabels1/po/insert-header.sin +A glabels1/po/quot.sed +A glabels1/po/remove-potcdate.sin + +commit 594b9be22fb1e36585db796865b0362383c20ae1 +Author: Jim Evins +Date: 2002-06-26 + + Translations + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@31 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels1/po/ChangeLog +M glabels1/po/Makefile.in.in +M glabels1/po/de.gmo +M glabels1/po/de.po +M glabels1/po/es.gmo +M glabels1/po/es.po +M glabels1/po/fr.gmo +M glabels1/po/fr.po +M glabels1/po/ja.gmo +M glabels1/po/ja.po +M glabels1/po/pt_BR.gmo +M glabels1/po/pt_BR.po + +commit 06635a8408e4ba916a1bdb650c6690d58cd9b645 +Author: Jim Evins +Date: 2002-06-26 + + Added logo specific to about dialog. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@30 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +A glabels1/pixmaps/glabels-about-logo.png + +commit 60965cc5cf022e99d55479976052837f583888ef +Author: Jim Evins +Date: 2002-06-26 + + File updated w/ gettextize + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@29 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels1/ChangeLog + +commit 6bbae5eef63555bf36c2bcf34df417346e6b64a4 +Author: Jim Evins +Date: 2002-06-18 + + Updated config.h.in. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@28 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels1/config.h.in + +commit a14d460e21dd854a5911b0e54508de37080153b0 +Author: Jim Evins +Date: 2002-06-18 + + Updated aclocal.m4. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@27 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels1/aclocal.m4 + +commit 52f6a1af385187422b6466c76cc1be50c65f9251 +Author: Jim Evins +Date: 2002-06-18 + + Updated Makefile.am. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@26 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels1/Makefile.am + +commit 43641f1b064d30a89204ed25b99d4f466a897bcd +Author: Jim Evins +Date: 2002-06-18 + + Updated Changelog. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@25 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels1/ChangeLog + +commit c51ab34df7eacbf61c92131adf127fc50bead398 +Author: Jim Evins +Date: 2002-06-18 + + Updated ABOUT-NLS. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@24 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels1/ABOUT-NLS + +commit b5b3e5c81b4fc4ed519ed2bca6cd8c98cba9c2db +Author: Jim Evins +Date: 2002-06-18 + + Set release to 0.4.4 + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@23 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels1/configure.in + +commit 365dc4288dee2a5ad40261fc62aa596df656ed9d +Author: Jim Evins +Date: 2002-06-18 + + Removing generated files from CM. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@22 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +D glabels1/Makefile.in +D glabels1/configure +D glabels1/glabels.spec + +commit 4205e33a8096be62999327a27a709fb90f12ad12 +Author: Jim Evins +Date: 2002-06-18 + + Removing generated files from CM. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@21 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +D glabels1/src/Makefile.in +D glabels1/src/pixmaps/Makefile.in + +commit 979dfe500f5773e1fe925e46135045125075b440 +Author: Jim Evins +Date: 2002-06-18 + + Replace gnu-barcode-0.96 with 0.98. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@20 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels1/AUTHORS +M glabels1/Makefile.am +M glabels1/configure.in +M glabels1/src/Makefile.am + +commit 492ca6b93e3360e64288df1efdd1383990a77c78 +Author: Jim Evins +Date: 2002-06-18 + + Checking in gnu-barcode-0.98 + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@19 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +A glabels1/barcode-0.98/COPYING +A glabels1/barcode-0.98/ChangeLog +A glabels1/barcode-0.98/INSTALL +A glabels1/barcode-0.98/Makefile.in +A glabels1/barcode-0.98/README +A glabels1/barcode-0.98/TODO +A glabels1/barcode-0.98/barcode.h +A glabels1/barcode-0.98/barcode.spec +A glabels1/barcode-0.98/bookland/bookland.py +A glabels1/barcode-0.98/cmdline.c +A glabels1/barcode-0.98/cmdline.h +A glabels1/barcode-0.98/codabar.c +A glabels1/barcode-0.98/code128.c +A glabels1/barcode-0.98/code39.c +A glabels1/barcode-0.98/code93.c +A glabels1/barcode-0.98/compat/getopt.c +A glabels1/barcode-0.98/compat/getopt.h +A glabels1/barcode-0.98/configure +A glabels1/barcode-0.98/configure.in +A glabels1/barcode-0.98/contrib/barcode-SVG.tar.gz +A glabels1/barcode-0.98/contrib/barcode-SVG.tar.gz.README +A glabels1/barcode-0.98/contrib/barcode-for-delphi.tar.gz +A glabels1/barcode-0.98/contrib/barcode-for-delphi.tar.gz.README +A glabels1/barcode-0.98/contrib/barcodeps-0.1.tgz +A glabels1/barcode-0.98/contrib/barcodeps-0.1.tgz.README +A glabels1/barcode-0.98/contrib/grab-0.0.4.tar.gz +A glabels1/barcode-0.98/contrib/grab-0.0.4.tar.gz.README +A glabels1/barcode-0.98/debian/README.debian +A glabels1/barcode-0.98/debian/changelog +A glabels1/barcode-0.98/debian/control +A glabels1/barcode-0.98/debian/copyright +A glabels1/barcode-0.98/debian/dirs +A glabels1/barcode-0.98/debian/info +A glabels1/barcode-0.98/debian/rules +A glabels1/barcode-0.98/doc/Makefile.in +A glabels1/barcode-0.98/doc/README +A glabels1/barcode-0.98/doc/barcode.info +A glabels1/barcode-0.98/doc/barcode.pdf +A glabels1/barcode-0.98/doc/barcode.ps +A glabels1/barcode-0.98/doc/barcodedoc.txt +A glabels1/barcode-0.98/doc/doc.barcode +A glabels1/barcode-0.98/doc/infofilter +A glabels1/barcode-0.98/doc/manpager +A glabels1/barcode-0.98/doc/mktxt +A glabels1/barcode-0.98/doc/texi2html +A glabels1/barcode-0.98/ean.c +A glabels1/barcode-0.98/i25.c +A glabels1/barcode-0.98/install-sh +A glabels1/barcode-0.98/library.c +A glabels1/barcode-0.98/main.c +A glabels1/barcode-0.98/msi.c +A glabels1/barcode-0.98/pcl.c +A glabels1/barcode-0.98/plessey.c +A glabels1/barcode-0.98/ps.c +A glabels1/barcode-0.98/sample.c + +commit 6592672d77f4e9a0ddab08ef198b56718dc24202 +Author: Jim Evins +Date: 2002-06-18 + + Added acknowledgements for additional label templates. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@18 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels1/AUTHORS + +commit 44132388529f64112507a9f2f94ae210b0d738b1 +Author: Jim Evins +Date: 2002-06-18 + + Added additional templates. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@17 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels1/data/predefined-labels.template + +commit 387dfd746a801119e2956e413118cbb050da0e75 +Author: Jim Evins +Date: 2002-05-01 + + Additional template. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@16 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels1/data/predefined-labels.template + +commit 6e06d81c9164744d348b2311471c8623df077839 +Author: Jim Evins +Date: 2002-05-01 + + Additional credits for templates. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@15 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels1/AUTHORS + +commit ca24de55a2ed8cf5287e3531692edce61f0f1d76 +Author: Jim Evins +Date: 2002-04-29 + + Added spanish (es) support. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@14 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels1/po/cat-id-tbl.c +A glabels1/po/es.gmo +C066 glabels1/po/glabels.pot glabels1/po/es.po +M glabels1/po/glabels.pot + +commit 22a00a789cdea2fce310e66ac30f3ef210aa94e0 +Author: Jim Evins +Date: 2002-04-29 + + Updated japanese strings. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@13 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels1/po/ja.gmo +M glabels1/po/ja.po + +commit 46d285dea66301d12d3c11a4271cd8f1a3305e6b +Author: Jim Evins +Date: 2002-04-29 + + Added additional label templates. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@12 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels1/data/predefined-labels.template + +commit db1ba5a430a9d58faf13e70a807a5d082ce2e3a6 +Author: Jim Evins +Date: 2002-04-29 + + Added support for spanish (es). + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@11 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels1/configure.in + +commit 92dd882d7b64ff3a86500f66ac85456e45e8c83a +Author: Jim Evins +Date: 2002-04-29 + + Added acknowledgements. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@10 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels1/AUTHORS + +commit 36bc656ed2f4592f58437035c0ca88444f8faa07 +Author: Jim Evins +Date: 2002-04-29 + + Removed the clip_to_outline code -- this seemed to cause an outline + to be printed for some printers. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@9 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels1/src/print.c + +commit 80c7efe71c394abaab547eee7172ec4c24f2067f +Author: Jim Evins +Date: 2002-04-29 + + Fixed layout of labels so that they are layed out in the proper + coordinate system: + The canvas origin is at the upper left, while the origin on paper + is at the lower left. + This was not apparent until a non-symetric (vertical) layout was used. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@8 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels1/src/mini_preview.c + +commit e054900210bd868ed5241f37a6c7220ce13f577f +Author: Jim Evins +Date: 2002-04-27 + + Don't assume all events are button events! + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@7 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels1/src/mini_preview.c + +commit 9eb6a8a37fd94d5aba4831453a4c2c915dd86cb1 +Author: Jim Evins +Date: 2002-04-27 + + Use motion union member for MOTION events. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@6 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels1/src/display.c +M glabels1/src/item_box.c +M glabels1/src/item_ellipse.c +M glabels1/src/item_image.c +M glabels1/src/item_line.c + +commit e1e85ce13c158a14303c2a38aa1902a42df6d4d8 +Author: Jim Evins +Date: 2002-02-28 + + Added glabels-batch to glabels.spec.in. + Added entries to TODO. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@5 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels1/TODO +M glabels1/glabels.spec.in + +commit 1852a103b62f3106bd032dc6e7a55b6ebec5449c Author: Jim Evins -Date: 2007-12-25 +Date: 2002-02-24 + + Initial revision + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@2 + f5e0f49d-192f-0410-a22d-a8d8700d0965 - Creating glabels-2.2 branch. +A glabels1/ABOUT-NLS +A glabels1/AUTHORS +A glabels1/COPYING +A glabels1/ChangeLog +A glabels1/INSTALL +A glabels1/Makefile.am +A glabels1/Makefile.in +A glabels1/NEWS +A glabels1/README +A glabels1/TODO +A glabels1/acconfig.h +A glabels1/aclocal.m4 +A glabels1/autogen.sh +A glabels1/config.h.in +A glabels1/configure +A glabels1/configure.in +A glabels1/data/predefined-labels.template +A glabels1/doc/C/Makefile.am +A glabels1/doc/C/Makefile.in +A glabels1/doc/C/glabels.sgml +A glabels1/doc/C/glabels/index.html +A glabels1/doc/C/glabels/ln7.html +A glabels1/doc/C/topic.dat +A glabels1/doc/Makefile.am +A glabels1/doc/Makefile.in +A glabels1/glabels.desktop +A glabels1/glabels.spec +A glabels1/glabels.spec.in +A glabels1/install-sh +A glabels1/intl/ChangeLog +A glabels1/intl/Makefile.in +A glabels1/intl/VERSION +A glabels1/intl/bindtextdom.c +A glabels1/intl/cat-compat.c +A glabels1/intl/dcgettext.c +A glabels1/intl/dgettext.c +A glabels1/intl/explodename.c +A glabels1/intl/finddomain.c +A glabels1/intl/gettext.c +A glabels1/intl/gettext.h +A glabels1/intl/gettextP.h +A glabels1/intl/hash-string.h +A glabels1/intl/intl-compat.c +A glabels1/intl/l10nflist.c +A glabels1/intl/libgettext.h +A glabels1/intl/linux-msg.sed +A glabels1/intl/loadinfo.h +A glabels1/intl/loadmsgcat.c +A glabels1/intl/localealias.c +A glabels1/intl/po2tbl.sed.in +A glabels1/intl/textdomain.c +A glabels1/intl/xopen-msg.sed +A glabels1/macros/Makefile.am +A glabels1/macros/Makefile.in +A glabels1/macros/aclocal-include.m4 +A glabels1/macros/autogen.sh +A glabels1/macros/compiler-flags.m4 +A glabels1/macros/curses.m4 +A glabels1/macros/gnome-bonobo-check.m4 +A glabels1/macros/gnome-common.m4 +A glabels1/macros/gnome-fileutils.m4 +A glabels1/macros/gnome-gettext.m4 +A glabels1/macros/gnome-ghttp-check.m4 +A glabels1/macros/gnome-gnorba-check.m4 +A glabels1/macros/gnome-guile-checks.m4 +A glabels1/macros/gnome-libgtop-check.m4 +A glabels1/macros/gnome-objc-checks.m4 +A glabels1/macros/gnome-orbit-check.m4 +A glabels1/macros/gnome-print-check.m4 +A glabels1/macros/gnome-pthread-check.m4 +A glabels1/macros/gnome-support.m4 +A glabels1/macros/gnome-undelfs.m4 +A glabels1/macros/gnome-vfs.m4 +A glabels1/macros/gnome-x-checks.m4 +A glabels1/macros/gnome-xml-check.m4 +A glabels1/macros/gnome.m4 +A glabels1/macros/linger.m4 +A glabels1/macros/need-declaration.m4 +A glabels1/missing +A glabels1/mkinstalldirs +A glabels1/pixmaps/glabels-icon.png +A glabels1/pixmaps/glabels-logo.png +A glabels1/po/ChangeLog +A glabels1/po/Makefile.in.in +A glabels1/po/POTFILES.in +A glabels1/po/cat-id-tbl.c +A glabels1/po/de.gmo +A glabels1/po/de.po +A glabels1/po/fr.gmo +A glabels1/po/fr.po +A glabels1/po/glabels.pot +A glabels1/po/ja.gmo +A glabels1/po/ja.po +A glabels1/po/pt_BR.gmo +A glabels1/po/pt_BR.po +A glabels1/po/stamp-cat-id +A glabels1/src/Makefile.am +A glabels1/src/Makefile.in +A glabels1/src/bc.c +A glabels1/src/bc.h +A glabels1/src/bc_gnubarcode.c +A glabels1/src/bc_gnubarcode.h +A glabels1/src/bc_postnet.c +A glabels1/src/bc_postnet.h +A glabels1/src/debug.h +A glabels1/src/display.c +A glabels1/src/display.h +A glabels1/src/edit.c +A glabels1/src/edit.h +A glabels1/src/file.c +A glabels1/src/file.h +A glabels1/src/glabels.c +A glabels1/src/glabels_batch.c +A glabels1/src/gnome-canvas-hacktext.h +A glabels1/src/hack.c +A glabels1/src/hack.h +A glabels1/src/highlight.c +A glabels1/src/highlight.h +A glabels1/src/item.c +A glabels1/src/item.h +A glabels1/src/item_barcode.c +A glabels1/src/item_barcode.h +A glabels1/src/item_box.c +A glabels1/src/item_box.h +A glabels1/src/item_ellipse.c +A glabels1/src/item_ellipse.h +A glabels1/src/item_image.c +A glabels1/src/item_image.h +A glabels1/src/item_line.c +A glabels1/src/item_line.h +A glabels1/src/item_text.c +A glabels1/src/item_text.h +A glabels1/src/label.c +A glabels1/src/label.h +A glabels1/src/mdi.c +A glabels1/src/mdi.h +A glabels1/src/media_select.c +A glabels1/src/media_select.h +A glabels1/src/menu.c +A glabels1/src/menu.h +A glabels1/src/merge.c +A glabels1/src/merge.h +A glabels1/src/merge_properties.c +A glabels1/src/merge_properties.h +A glabels1/src/merge_text.c +A glabels1/src/merge_text.h +A glabels1/src/merge_ui.c +A glabels1/src/merge_ui.h +A glabels1/src/merge_ui_text.c +A glabels1/src/merge_ui_text.h +A glabels1/src/mini_preview.c +A glabels1/src/mini_preview.h +A glabels1/src/pixmaps/Makefile.am +A glabels1/src/pixmaps/Makefile.in +A glabels1/src/pixmaps/arrow.xpm +A glabels1/src/pixmaps/barcode.xpm +A glabels1/src/pixmaps/box.xpm +A glabels1/src/pixmaps/checkerboard.xpm +A glabels1/src/pixmaps/collate.xpm +A glabels1/src/pixmaps/cursor_barcode.xbm +A glabels1/src/pixmaps/cursor_barcode_mask.xbm +A glabels1/src/pixmaps/cursor_box.xbm +A glabels1/src/pixmaps/cursor_box_mask.xbm +A glabels1/src/pixmaps/cursor_ellipse.xbm +A glabels1/src/pixmaps/cursor_ellipse_mask.xbm +A glabels1/src/pixmaps/cursor_image.xbm +A glabels1/src/pixmaps/cursor_image_mask.xbm +A glabels1/src/pixmaps/cursor_line.xbm +A glabels1/src/pixmaps/cursor_line_mask.xbm +A glabels1/src/pixmaps/cursor_text.xbm +A glabels1/src/pixmaps/cursor_text_mask.xbm +A glabels1/src/pixmaps/cursor_zoomin.xbm +A glabels1/src/pixmaps/cursor_zoomin_mask.xbm +A glabels1/src/pixmaps/cursor_zoomout.xbm +A glabels1/src/pixmaps/cursor_zoomout_mask.xbm +A glabels1/src/pixmaps/ellipse.xpm +A glabels1/src/pixmaps/image.xpm +A glabels1/src/pixmaps/line.xpm +A glabels1/src/pixmaps/merge.xpm +A glabels1/src/pixmaps/nocollate.xpm +A glabels1/src/pixmaps/text.xpm +A glabels1/src/pixmaps/zoom1to1.xpm +A glabels1/src/pixmaps/zoomin.xpm +A glabels1/src/pixmaps/zoomout.xpm +A glabels1/src/prefs.c +A glabels1/src/prefs.h +A glabels1/src/print.c +A glabels1/src/print.h +A glabels1/src/print_copies.c +A glabels1/src/print_copies.h +A glabels1/src/print_dialog.c +A glabels1/src/print_dialog.h +A glabels1/src/print_merge.c +A glabels1/src/print_merge.h +A glabels1/src/prop_bc.c +A glabels1/src/prop_bc.h +A glabels1/src/prop_bc_data.c +A glabels1/src/prop_bc_data.h +A glabels1/src/prop_bc_style.c +A glabels1/src/prop_bc_style.h +A glabels1/src/prop_fill.c +A glabels1/src/prop_fill.h +A glabels1/src/prop_line.c +A glabels1/src/prop_line.h +A glabels1/src/prop_position.c +A glabels1/src/prop_position.h +A glabels1/src/prop_size.c +A glabels1/src/prop_size.h +A glabels1/src/prop_text.c +A glabels1/src/prop_text.h +A glabels1/src/prop_text_entry.c +A glabels1/src/prop_text_entry.h +A glabels1/src/prop_vector.c +A glabels1/src/prop_vector.h +A glabels1/src/propertybox.c +A glabels1/src/propertybox.h +A glabels1/src/rotate_select.c +A glabels1/src/rotate_select.h +A glabels1/src/splash.c +A glabels1/src/splash.h +A glabels1/src/stock.c +A glabels1/src/stock.h +A glabels1/src/template.c +A glabels1/src/template.h +A glabels1/src/text_node.c +A glabels1/src/text_node.h +A glabels1/src/tools.c +A glabels1/src/tools.h +A glabels1/src/util.c +A glabels1/src/util.h +A glabels1/stamp-h.in + +commit f8b425009ad387d725524c28b79cafdc940a9b8b +Author: (no author) <(no author)@f5e0f49d-192f-0410-a22d-a8d8700d0965> +Date: 2002-02-24 + + New repository initialized by cvs2svn. git-svn-id: - https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@712 + https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@1 f5e0f49d-192f-0410-a22d-a8d8700d0965 diff --git a/ChangeLog.pre-2.2 b/ChangeLog.pre-2.2 deleted file mode 100644 index 1177cf67..00000000 --- a/ChangeLog.pre-2.2 +++ /dev/null @@ -1,3891 +0,0 @@ -2007-12-21 Jim Evins - - * COPYING.LIBGLABELS: - * COPYING.README_FIRST: - * README: - Updating license information to make more complete and understandable. - -2007-12-16 Jim Evins - - * configure.in: - Updated version to 2.pre2. - * help/C/glabels.xml: - Updated documentation. - * src/ui-commands.c: (gl_ui_cmd_help_about): - Updated copyright string. - -2007-12-15 Jim Evins - - * data/glade/object-editor.glade: - Removed any GtkTable that contained a GtkComboBox because the size of - the combo box was not constrained properly. This sacrifices the nice - orderly labels for combo boxes that don't extend beyond the edge of the - window. - -2007-12-15 Jim Evins - - * libglabels/db.c: (lgl_db_lookup_template_from_name): - * src/object-editor.c: (gl_object_editor_finalize): - * src/wdgt-media-select.c: (gl_wdgt_media_select_finalize): - Fixed several small memory leaks. - -2007-12-14 Jim Evins - - * libglabels/db.c: - Optimize template search by name by using a GHashTable. - * src/mini-preview-pixbuf-cache.c: - * src/mini-preview-pixbuf-cache.h: - Store one pixbuf per template, but use a key for each alias. - * src/wdgt-media-select.c: - Optimize loading of tree data, thus optimizing the "new label" dialog. - -2007-12-12 Jim Evins - - * data/templates/avery-us-templates.xml: - More templates and aliases. - -2007-12-08 Jim Evins - - * TODO: - More prep for 2.1.5/2.2.0. - -2007-12-08 Jim Evins - - * NEWS: - * README: - * TODO: - * configure.in: - Preparation for 2.1.5. - -2007-12-08 Jim Evins - - * docs/libglabels/libglabels-decl-list.txt: - * docs/libglabels/libglabels-docs.sgml: - * docs/libglabels/libglabels-sections.txt: - * docs/libglabels/libglabels-undocumented.txt: - * docs/libglabels/tmpl/db.sgml: - * docs/libglabels/tmpl/str.sgml: - * libglabels/str.c: - Documentation cleanup for libglabels. - -2007-11-29 Jim Evins - - * libglabels/db.h: - * libglabels/db.c: - Added lgl_db_does_template_name_exist(). - In lgl_db_lookup_template_from_name() substitute brand/part of new template from - requested alias. - * src/prefs-model.c: - Proof read recent templates -- make sure they still exist. - * src/wdgt-media-select.c: - Default to "search all templates" tab if no recent templates found. - -2007-11-28 Jim Evins - - * data/glade/wdgt-media-select.glade: - * src/wdgt-media-select.c: - Added tabbed notebook to allow selection of recent template versus searching the - entire database. - - -2007-11-26 Jim Evins - - * libglabels/Makefile.am: - * libglabels/libglabels.h: - Make str.h public. - * src/label.c: - * src/prefs-dialog.c: - * src/prefs-model.c: - * src/prefs-model.h: - * src/prefs.c: - * src/prefs.h: - Added tracking of recently used templates. - -2007-11-20 Jim Evins - - * data/glade/template-designer.glade: - * src/template-designer.c: - Added warning icon when match brand and part match an existing template. - -2007-11-18 Jim Evins - - * libglabels/Makefile.am: - * libglabels/str.h: - * libglabels/str.c: - Added lgl_str_utf8_casecmp(). - * libglabels/libglabels-private.h: - Use lgl_str_utf8_casecmp() for UTF8_EQUAL macro -- do case insensitive comparisons. - * libglabels/db.c: (lgl_db_get_brand_list): - Use lgl_str_utf8_casecmp() to determine if we have seen brand before when building - brand list. - -2007-11-18 Jim Evins - - * data/glade/template-designer.glade: - * src/template-designer.c: - Don't advance past name page, if brand and part match an existing template. - -2007-11-18 Jim Evins - - * libglabels/db.c: (lgl_db_register_template), (read_templates): - When registering a new template, don't add to "User defined" category before - writing to file. Add to "User defined" category when reading from "~/.glabels" - directory instead. This will allow legacy templates (and manually created - templates) to be automatically added to the "user defined" category. - * libglabels/xml-template.c: - (lgl_xml_template_create_template_node): - Fixed typo/bug causing brand to be wrong. - -2007-11-16 Jim Evins - - * libglabels/db.c: - * libglabels/db.h: - Added return codes to lgl_db_register_template(). Added lgl_db_does_template_exist() - function. Automatically create "User defined" category and add to all user - registered templates. - * libglabels/xml-template.c: - * libglabels/xml-template.h: - Return number of bytes written from lgl_xml_template_write_templates_to_file() and - lgl_xml_template_write_template_to_file(). - * docs/libglabels/libglabels-decl-list.txt: - * docs/libglabels/libglabels-sections.txt: - * docs/libglabels/libglabels-undocumented.txt: - * docs/libglabels/tmpl/db.sgml: - * docs/libglabels/tmpl/xml-template.sgml: - Update documentation to reflect above changes. - -2007-10-28 Jim Evins - - * libglabels/xml-template.c: - Remove any leading white space from part #s when parsing old names. - * src/mini-preview-pixbuf-cache.c: - If name isn't in cache add it. - -2007-10-26 Jim Evins - - * libglabels/Makefile.am: - * libglabels/category.c: - * libglabels/category.h: - * libglabels/db.c: - * libglabels/db.h: - * libglabels/libglabels-private.h: - * libglabels/libglabels.h: - * libglabels/paper.c: - * libglabels/paper.h: - * libglabels/template.c: - * libglabels/template.h: - * libglabels/xml-template.c: - Another pass at screwing with the libglabels API. Moved all - database related stuff to db.[ch]. - * docs/libglabels/libglabels-decl-list.txt: - * docs/libglabels/libglabels-docs.sgml: - * docs/libglabels/libglabels-sections.txt: - * docs/libglabels/libglabels-undocumented.txt: - * docs/libglabels/tmpl/category.sgml: - * docs/libglabels/tmpl/db.sgml: - * docs/libglabels/tmpl/init.sgml: - * docs/libglabels/tmpl/libglabels-unused.sgml: - * docs/libglabels/tmpl/paper.sgml: - * docs/libglabels/tmpl/template-construction.sgml: - * docs/libglabels/tmpl/template-db.sgml: - * docs/libglabels/tmpl/template-misc.sgml: - * docs/libglabels/tmpl/template-struct.sgml: - * docs/libglabels/tmpl/template.sgml: - Updated documentation to reflect above changes to libglabels API. - * src/file.c: - * src/glabels-batch.c: - * src/glabels.c: - * src/mini-preview-pixbuf-cache.c: - * src/prefs-model.c: - * src/print.c: - * src/template-designer.c: - * src/wdgt-media-select.c: - * src/wdgt-mini-preview.c: - * src/wdgt-rotate-label.c: - * src/xml-label-04.c: - * src/xml-label.c: - Reconciled usage with above libglabels API changes. - -2007-10-21 Jim Evins - - * data/glade/wdgt-media-select.glade: - * src/wdgt-media-select.c: - Added brand to filter settings. - -2007-10-21 Jim Evins - - * data/dtd/glabels-2.2.dtd: - Forgot to replace Alias name attribute with brand and part attributes. - * data/templates/avery-iso-templates.xml: - * data/templates/avery-other-templates.xml: - * data/templates/avery-us-templates.xml: - * data/templates/misc-iso-templates.xml: - * data/templates/misc-other-templates.xml: - * data/templates/misc-us-templates.xml: - * data/templates/zweckform-iso-templates.xml: - Replaced all name attributes with brand/part attribute pairs. - -2007-10-20 Jim Evins - - * src/stock-pixmaps/*.png - Updated icons to use Tango color palette. - -2007-10-20 Jim Evins - - * data/dtd/Makefile.am: - * data/dtd/glabels-2.0.dtd: - * data/dtd/glabels-2.2.dtd: - Rename glabels-2.0.dtd to glabels-2.2.dtd. Added brand and part attributes to - template node. - * libglabels/template.c: - * libglabels/template.h: - * libglabels/xml-template.c: - * libglabels/xml.h: - Added brand and part attributes to template and alias structures and nodes. - * src/file.c: - * src/label.c: - * src/mini-preview-pixbuf-cache.c: - * src/template-designer.c: - * src/wdgt-media-select.c: - Use modified libglabels API. - * docs/libglabels/libglabels-decl-list.txt: - * docs/libglabels/libglabels-sections.txt: - * docs/libglabels/libglabels-undocumented.txt: - * docs/libglabels/tmpl/template-construction.sgml: - * docs/libglabels/tmpl/template-db.sgml: - * docs/libglabels/tmpl/template-struct.sgml: - Update libglabels documentation to reflect above modifications. - -2007-10-14 Jim Evins - - * docs/libglabels/libglabels-decl-list.txt: - * docs/libglabels/libglabels-sections.txt: - * docs/libglabels/libglabels-undocumented.txt: - * docs/libglabels/tmpl/category.sgml: - * libglabels/category.c: - * libglabels/category.h: - Added lgl_category_get_id_list() and lgl_category_free_id_list() to have - parity with paper functions. - -2007-10-12 Jim Evins - - * docs/libglabels/libglabels-decl-list.txt: - * docs/libglabels/libglabels-sections.txt: - * docs/libglabels/libglabels-undocumented.txt: - * docs/libglabels/tmpl/category.sgml: - * docs/libglabels/tmpl/enums.sgml: - * docs/libglabels/tmpl/libglabels-unused.sgml: - * docs/libglabels/tmpl/paper.sgml: - * docs/libglabels/tmpl/template-struct.sgml: - * libglabels/init.c: - * libglabels/template.c: - * libglabels/template.h: - Another pass at fleshing out the libglabels documentation. - * src/cairo-label-path.c: - * src/cairo-markup-path.c: - * src/label.c: - * src/mini-preview-pixbuf.c: - * src/print-op.c: - * src/print.c: - * src/view.c: - * src/wdgt-media-select.c: - * src/wdgt-mini-preview.c: - * src/wdgt-print-copies.c: - * src/wdgt-print-merge.c: - * src/wdgt-rotate-label.c: - Removed lgl_template_get_first_frame() from libglabels API and all references. - -2007-10-11 Jim Evins - * configure.in: - Extended checks for deprecated symbols. - * libglabels/template.c: - Removed g_strcasecmp references, which are deprecated. - -2007-10-09 Jim Evins - - * src/merge-evolution.c: - Create address book if it does not exist. Also, be more robust about handling - error conditions -- don't just assume GError has been set. - -2007-10-08 Jim Evins - - * libglabels/template.c: - * libglabels/xml-template.c: - * src/template-designer.c: - Missed some symbols with libglabels API work. - -2007-10-01 Jim Evins - - * docs/libglabels/libglabels-decl-list.txt: - * docs/libglabels/libglabels-docs.sgml: - * docs/libglabels/libglabels-sections.txt: - * docs/libglabels/libglabels-undocumented.txt: - * docs/libglabels/tmpl/category.sgml: - * docs/libglabels/tmpl/enums.sgml: - * docs/libglabels/tmpl/init.sgml: - * docs/libglabels/tmpl/libglabels-unused.sgml: - * docs/libglabels/tmpl/paper.sgml: - * docs/libglabels/tmpl/template-construction.sgml: - * docs/libglabels/tmpl/template-db.sgml: - * docs/libglabels/tmpl/template-misc.sgml: - * docs/libglabels/tmpl/template-struct.sgml: - * docs/libglabels/tmpl/template.sgml: - * docs/libglabels/tmpl/xml-category.sgml: - * docs/libglabels/tmpl/xml-template.sgml: - * libglabels/category.h: - * libglabels/init.c: - * libglabels/libglabels-private.h: - * libglabels/paper.h: - * libglabels/template.c: - * libglabels/template.h: - * libglabels/xml-template.h: - Basic documentation framework for libglabels updated. This still needs some - fleshing out. - -2007-09-27 Jim Evins - - * docs/libglabels/libglabels-decl-list.txt: - * docs/libglabels/libglabels-docs.sgml: - * docs/libglabels/libglabels-sections.txt: - * docs/libglabels/libglabels-undocumented.txt: - * docs/libglabels/tmpl/enums.sgml: - * docs/libglabels/tmpl/init.sgml: - * docs/libglabels/tmpl/libglabels-unused.sgml: - * docs/libglabels/tmpl/paper.sgml: - * docs/libglabels/tmpl/template.sgml: - * docs/libglabels/tmpl/xml-paper.sgml: - * docs/libglabels/tmpl/xml-template.sgml: - * docs/libglabels/tmpl/xml.sgml: - * libglabels/Makefile.am: - * libglabels/category.c: - * libglabels/category.h: - * libglabels/enums.h: - * libglabels/init.c: - * libglabels/init.h: - * libglabels/libglabels-private.h: - * libglabels/libglabels.h: - * libglabels/paper.c: - * libglabels/paper.h: - * libglabels/template.c: - * libglabels/template.h: - * libglabels/xml-category.c: - * libglabels/xml-category.h: - * libglabels/xml-paper.c: - * libglabels/xml-paper.h: - * libglabels/xml-template.c: - * libglabels/xml-template.h: - * libglabels/xml.c: - * libglabels/xml.h: - * src/cairo-label-path.c: - * src/cairo-label-path.h: - * src/cairo-markup-path.c: - * src/cairo-markup-path.h: - * src/file.c: - * src/glabels-batch.c: - * src/glabels.c: - * src/label-object.c: - * src/label.c: - * src/label.h: - * src/mini-preview-pixbuf-cache.c: - * src/mini-preview-pixbuf.c: - * src/mini-preview-pixbuf.h: - * src/prefs-dialog.c: - * src/prefs-model.c: - * src/prefs-model.h: - * src/prefs.c: - * src/prefs.h: - * src/print-op.c: - * src/print.c: - * src/template-designer.c: - * src/view-barcode.c: - * src/view-box.c: - * src/view-ellipse.c: - * src/view-image.c: - * src/view-line.c: - * src/view.c: - * src/wdgt-media-select.c: - * src/wdgt-mini-preview.c: - * src/wdgt-mini-preview.h: - * src/wdgt-print-copies.c: - * src/wdgt-print-merge.c: - * src/wdgt-rotate-label.c: - * src/xml-label-04.c: - * src/xml-label.c: - Major cleanup of libglabels API -- this breaks API compatibility with older - development and stable versions -- as far as I know, there are currently - no external users of this library yet. - -2007-09-14 Jim Evins - - * src/marshal.list: - * src/label.c: - * src/label.h: - * src/label-object.c: - * src/label-object.h: - * src/label-barcode.c: - * src/label-ellipse.c: - * src/view.c: - * src/view-object.c: - * src/view-barcode.c: - * src/view-box.c: - * src/view-ellipse.c: - * src/view-image.c: - * src/view-line.c: - * src/view-text.c: - Better separation of model from view. - -2007-08-21 Jim Evins - - * src/print-op.c: (create_custom_widget_cb): - Fix problem with force_outline_flag -- don't override with default. - -2007-08-21 Jim Evins - - * data/dtd/glabels-2.0.dtd: - * libglabels/template.c: - * libglabels/template.h: - * libglabels/xml-template.c: - * src/cairo-markup-path.c: - Added "Markup-rect" element to template format. - -2007-08-21 Jim Evins - - * configure.in: - Changed version to 2.1.pre5svn. - * src/view.c: (draw_markup_layer): - Do a stroke for each markup path, otherwise multiple markups - get connected. - -2007-08-17 Jim Evins - - * configure.in: - Bump libglabels revision numbers for 2.1.4 release. - -2007-08-16 Jim Evins - - * Makefile.am: - Include subdir iec16022-0.2.1. - * NEWS: - * configure.in: - * glabels.spec.in: - Preparation for 2.1.4. - - -2007-08-11 Jim Evins - - * po/POTFILES.in: - Updated file list. - * configure.in: - * po/eo.po: - Added Esperanto translation. Provided by Antonio C. - Codazzi "la Filozofo" . - * po/fr.po: - Updated French translation. Provided by Claude Paroz - . - * AUTHORS: - Updated to reflect above translations. - -2007-08-11 Jim Evins - - * AUTHORS: - * data/templates/avery-iso-templates.xml: - * data/templates/avery-us-templates.xml: - * data/templates/misc-iso-templates.xml: - * data/templates/misc-other-templates.xml: - * data/templates/misc-us-templates.xml: - * data/templates/zweckform-iso-templates.xml: - Caught up with backlog of template submissions. - -2007-08-10 Jim Evins - - * src/bc-postnet.c: (gl_barcode_postnet_new): - * src/bc.c: - Added support for Brazilian CEPNet barcodes. This is simply an - instance of the US POSTNET format with 8 digits. Patch supplied - by Mário Meyer in bug # 1768792. - * AUTHORS: - Updated acknowledgments to reflect above patch and recent shuffling - of underlying technology. - -2007-05-13 Jim Evins - - * src/merge-text.c: (parse_line), (parse_field): - Remove leading and trailing spaces from CSV fields, unless quoted. - -2007-05-09 Jim Evins - - * src/object-editor-bc-page.c: - * src/object-editor-data-page.c: - * src/object-editor-fill-page.c: - * src/object-editor-image-page.c: - * src/object-editor-line-page.c: - * src/object-editor-lsize-page.c: - * src/object-editor-position-page.c: - * src/object-editor-private.h: - * src/object-editor-shadow-page.c: - * src/object-editor-size-page.c: - * src/object-editor-text-page.c: - * src/object-editor.c: - * src/prefs-dialog.c: - * src/template-designer.c: - * src/ui-property-bar.c: - * src/wdgt-media-select.c: - Replaced signal block/unblock pairs with simple flags. This reduces - some code clutter, hopefully making it easier to read. - -2007-05-05 Jim Evins - - * src/template-designer.c: (apply_cb): - Add new template to mini-preview pixbuf cache. - -2007-05-03 Jim Evins - - * src/label-image.c: (gl_label_image_init), (draw_object): - Scale default pixbuf up, to prevent bluring. Use cairo_fill to - render image. - -2007-05-02 Jim Evins - - * src/view.c: (draw_select_region_layer), (motion_notify_event_cb), - (button_release_event_cb): - Removed attempt at rendering optimization by clipping the updates - to areas affected -- this actually seemed to hurt update performance. - -2007-04-30 Jim Evins - - * src/color.h: - * src/color.c: (gl_color_shadow), (gl_color_node_new_default), - (gl_color_node_equal), (gl_color_node_expand): - * src/label-barcode.c: (draw_object): - * src/label-box.c: (draw_object), (draw_shadow): - * src/label-ellipse.c: (draw_object), (draw_shadow): - * src/label-line.c: (draw_object), (draw_shadow): - * src/label-text.c: (draw_object), (draw_shadow): - * src/wdgt-mini-preview.c: (draw_shadow), (draw_labels): - * src/wdgt-rotate-label.c: (drawingarea_update): - Some cleanup to color related code. - -2007-04-30 Jim Evins - - * src/label.h: - Added glLabelRegion structure type. - * src/label-object.c: (gl_label_object_get_extent): - * src/label-object.h: - Modified gl_label_object_get_extent() to fill in a glLabelRegion struct. - * src/view.h: - * src/view.c: (gl_view_update_region), (draw_select_region_layer), - (gl_view_select_region), (gl_view_align_selection_left), - (gl_view_align_selection_right), (gl_view_align_selection_hcenter), - (gl_view_align_selection_top), (gl_view_align_selection_bottom), - (gl_view_align_selection_vcenter), - (gl_view_center_selection_horiz), (gl_view_center_selection_vert), - (gl_view_move_selection), (gl_view_can_selection_text), - (motion_notify_event_cb), (button_press_event_cb), - (button_release_event_cb): - - Reconcile with new gl_label_object_get_extent() API. - - Use glLabelRegion for view->select_region. - - Added gl_view_update_region() to clip updates to region. - - Use gl_view_update_region() during manipulation of view->select_region. - -2007-04-26 Jim Evins - - * src/mini-preview-pixbuf.c: (draw_paper), (draw_label_outlines), - (draw_label_outline): - * src/print.c: (print_crop_marks), (draw_outline): - * src/view-object.c: (gl_view_object_draw_handles): - * src/view.c: (draw_bg_layer), (draw_grid_layer), - (draw_markup_layer), (draw_fg_layer), (draw_select_region_layer): - * src/wdgt-mini-preview.c: (draw_paper), (draw_labels): - * src/wdgt-rotate-label.c: (drawingarea_update): - Added defines for various magic numbers. - -2007-04-25 Jim Evins - - * src/label-text.c: (get_size), (draw_object), (draw_shadow): - Scale text down. Cairo seems to render text too large. - -2007-04-25 Jim Evins - - * src/view.h: - * src/view.c: (gl_view_update), (expose_cb), - (motion_notify_event_cb), (button_press_event_cb), - (button_release_event_cb): - - Try not to let updates get backed up. - - Grab pointer when doing any drag operations. - -2007-04-11 Jim Evins - - * src/cairo-label-path.c: (gl_cairo_label_path), - (gl_cairo_rect_label_path), (gl_cairo_round_label_path), - (gl_cairo_cd_label_path): - * src/cairo-label-path.h: - * src/mini-preview-pixbuf.c: (draw_paper), (draw_label_outlines), - (draw_label_outline): - * src/print.c: (draw_outline), (clip_to_outline): - * src/view.c: (draw_bg_layer), (draw_fg_layer): - * src/wdgt-mini-preview.c: (draw_labels): - * src/wdgt-rotate-label.c: (drawingarea_update): - Modified to universally use gl_cairo_label_path() to create paths - for labels. Added shadow to mini preview in rotate widget. - -2007-04-10 Jim Evins - - * libglabels/template.h: - * libglabels/template.c: (gl_template_get_name_list_unique), - (gl_template_get_name_list_all), (gl_template_from_name): - Modified libglabels to allow you to get a list of all template names - including all aliases or just a list of primary names of each unique - template. - * src/Makefile.am: - * src/file.c: (gl_file_properties): - * src/glabels.c: (main): - * src/mini-preview-pixbuf-cache.h: - * src/mini-preview-pixbuf-cache.c: - * src/wdgt-media-select.c: (gl_wdgt_media_select_construct), - (filter_changed_cb), (load_list): - Added mini-preview pixbuf cache, so that only one mini-preview is - needed for a unique template and gets reused for all aliases. These - pixbufs will also live for the life of the program so they are not - rebuilt everytime a new label dialog is invoked. - * src/mini-preview-pixbuf.c: (draw_paper), - (draw_rect_label_outline), (draw_round_label_outline), - (draw_cd_label_outline): - Removed some comment artifacts. - -2007-04-04 Jim Evins - - * src/mini-preview-pixbuf.c: (gl_mini_preview_pixbuf_new), - (draw_paper), (draw_label_outlines), (draw_rect_label_outline), - (draw_round_label_outline), (draw_cd_label_outline): - * src/wdgt-media-select.c: (load_list): - * src/wdgt-rotate-label.c: (draw_cd_label_outline): - Cosmetic enhancments to mini previews. - -2007-04-04 Jim Evins - - * src/ui-property-bar.c: (gl_ui_property_bar_finalize), - (gl_ui_property_bar_construct): - Save copy of GladeXML tree so that we don't lose tooltips. - -2007-04-02 Jim Evins - - * src/merge-properties-dialog.c: - * src/new-label-dialog.c: - * src/object-editor.c: - * src/prefs-dialog.c: - * src/print-op.c: - * src/template-designer.c: - * src/ui-property-bar.c: - * src/wdgt-media-select.c: - * src/wdgt-rotate-label.c: - Fixed several memory leaks. - -2007-04-01 Jim Evins - - * src/label-text.c: (gl_label_text_init), (copy), - (gl_label_text_set_lines), (buffer_changed_cb), (get_size), - (set_font_family), (set_font_size), (set_font_weight), - (set_font_italic_flag), (set_text_alignment), - (set_text_line_spacing): - Cache object size, so that expensive extent calculations are only done - when needed. - -2007-03-30 Jim Evins - - * src/prefs-model.c: (gl_prefs_model_load_settings): - Default to an unlimited list of recent documents, since this parameter - seems to be pre-filter anyway. - -2007-03-30 Jim Evins - - * src/label-box.c: (draw_shadow): - * src/label-ellipse.c: (draw_shadow): - Added missing shadow fill. - -2007-03-28 Jim Evins - - * src/ui-commands.c: (gl_ui_cmd_file_print): - Unreferencing the print operation sometimes crashes. Just don't do it - right now. - -2007-03-28 Jim Evins - - * src/print-op.c: (gl_print_op_construct), - (gl_print_op_get_settings), (gl_print_op_set_settings), - (gl_print_op_free_settings), (create_custom_widget_cb): - * src/print-op.h: - * src/ui-commands.c: (gl_ui_cmd_file_print): - * src/window.c: (gl_window_init): - * src/window.h: - Save print settings and custom settings between print operations - on the same window. - -2007-03-24 Jim Evins - - * src/object-editor-image-page.c: - (gl_object_editor_prepare_image_page), - (gl_object_editor_set_image), (img_selection_changed_cb): - Workaround for GtkFileChooserButton bug # 327243. This the root - cause for gLabels bug # 1192884. I have actually observed 3 delayed - "selection-changed" signals -- the first 2 return NULL -- this is - what caused the image to reset to the default followed by setting - it back to the original image, trying to fit it into a new bounding - box. This sequence of events is much more evident with the new - cairo rendering. - -2007-03-23 Jim Evins - - Merged all changes from experimental cairo branch to trunk. - Trunk no longer depends on libgnomecanvas or libgnomeprint[ui]. - -2007-03-23 Jim Evins - - * src/label-object.h: - * src/label-object.c: (gl_label_object_class_init), - (gl_label_object_get_raw_size), (gl_label_object_get_size): - Created "get_raw_size" method. - * src/label-barcode.c: (get_size): - * src/xml-label.c: (xml_create_object_text), - (xml_create_object_barcode): - Use new "get_raw_size" method on label-objects when apropos. - * src/label-text.h: - * src/label-text.c: (get_size), (draw_object), (draw_shadow), - (auto_shrink_font_size): - Added "auto shrink" functionality back. - -2007-03-19 Jim Evins - - * src/label-text.c: (draw_object), (draw_shadow): - Don't use negative scales in workaround from previous commit. - - -2007-03-18 Jim Evins - - * src/xml-label.c: - Forgot to remove include of xml-lable-191 in previous commit. - * src/label-text.c: (get_size), (draw_object), (draw_shadow): - Workaround for pango Bug #341481. Render text at device scale, - and scale font size accordingly. Also, don't do any hinting. - -2007-03-18 Jim Evins - - * src/cairo-ellipse-path.c: - * src/cairo-ellipse-path.h: - Forgot to add these new files during last mass commit. - -2007-03-18 Jim Evins - - * src/Makefile.am: - * src/xml-label-191.c: - * src/xml-label-191.h: - Removed -- Very buggy. Version 1.91 is a very old "unstable" version, - so there is no need to keep compatability. - * src/base64.c: - * src/bc-iec16022.c: - * src/cairo-label-path.c: - * src/cairo-label-path.h: - * src/cairo-markup-path.c: - * src/color.c: - * src/debug.c: - * src/file.c: - * src/glabels-batch.c: - * src/glabels.c: - * src/label-barcode.c: - * src/label-box.c: - * src/label-ellipse.c: - * src/label-image.c: - * src/label-line.c: - * src/label-object.c: - * src/label-object.h: - * src/label-text.c: - * src/label.c: - * src/label.h: - * src/merge-properties-dialog.c: - * src/merge.c: - * src/new-label-dialog.c: - * src/object-editor-bc-page.c: - * src/object-editor-data-page.c: - * src/object-editor-edit-page.c: - * src/object-editor-fill-page.c: - * src/object-editor-image-page.c: - * src/object-editor-line-page.c: - * src/object-editor-private.h: - * src/object-editor-shadow-page.c: - * src/object-editor-text-page.c: - * src/object-editor.c: - * src/pixbuf-cache.c: - * src/print-op.c: - * src/print.c: - * src/recent.c: - * src/stock.c: - * src/template-designer.c: - * src/text-node.c: - * src/ui-property-bar.c: - * src/ui.c: - * src/view-barcode.c: - * src/view-box.c: - * src/view-ellipse.c: - * src/view-image.c: - * src/view-line.c: - * src/view-object.c: - * src/view-object.h: - * src/view-text.c: - * src/view.c: - * src/wdgt-media-select.c: - * src/wdgt-print-copies.c: - * src/wdgt-print-merge.c: - * src/window.c: - * src/xml-label-04.c: - * src/xml-label.c: - Many changes, including: - - Move draw methods from view-*() to label-*(). - - Use same drawing code for on screen view and printing. - - Fix all issues exposed with '-Wall -Werror'. - -2007-03-14 Jim Evins - - * src/Makefile.am: - * src/cairo-handle-path.c: - * src/cairo-handle-path.h: - * src/cairo-object-path.c: - * src/cairo-object-path.h: - Removed cairo-handle-path.[ch] and cairo-object-path.[ch]. - * src/view-barcode.c: (gl_view_barcode_class_init), (draw_object), - (object_at): - * src/view-box.c: (gl_view_box_class_init), (draw_object), - (draw_shadow), (object_at): - * src/view-ellipse.c: (gl_view_ellipse_class_init), - (create_ellipse_path), (draw_object), (draw_shadow), (object_at): - * src/view-image.c: (gl_view_image_class_init), (draw_object), - (object_at): - * src/view-line.c: (gl_view_line_class_init), (draw_object), - (draw_shadow), (object_at): - * src/view-object.c: (gl_view_object_draw), (gl_view_object_at), - (create_handle_path), (gl_view_object_draw_handles), - (gl_view_object_handle_at): - * src/view-object.h: - * src/view-text.c: (gl_view_text_class_init), (draw_object), - (draw_shadow), (object_at): - * src/view.c: (motion_notify_event_cb), (button_press_event_cb): - Some restructuring of new code. - -2007-03-12 Jim Evins - - * src/Makefile.am: - * src/cairo-object-path.c: - * src/view-barcode.c: - * src/view-barcode.h: - * src/view.c: - Added barcode object support to view. - -2007-03-12 Jim Evins - - * src/Makefile.am: - * src/view-text.h: - * src/view-text.c: - * src/view.c: - * src/cairo-object-path.c: - * src/cairo-object-path.h: - * src/view-box.c: - * src/view-ellipse.c: - * src/view-image.c: - * src/view-line.c: - * src/view-object.c: - * src/view-object.h: - Added text object support to view. Added object_at method to all - view_objects. - -2007-03-11 Jim Evins - - * src/Makefile.am: - * src/cairo-object-path.c: (gl_cairo_object_path), - (gl_cairo_image_object_path): - * src/view-image.c: (gl_view_image_class_init), - (gl_view_image_finalize), (gl_view_image_new), - (update_editor_from_label_cb), (draw), - (gl_view_image_get_create_cursor), - (gl_view_image_create_button_press_event), - (gl_view_image_create_motion_event), - (gl_view_image_create_button_release_event): - * src/view-image.h: - * src/view.c: (gl_view_construct), (gl_view_object_create_mode), - (selection_received_cb), (motion_notify_event_cb), - (button_press_event_cb), (button_release_event_cb): - Added image object support to view. - -2007-03-11 Jim Evins - - * src/Makefile.am: - * src/cairo-object-path.c: (gl_cairo_object_path), - (gl_cairo_line_object_path): - * src/view-line.c: (gl_view_line_class_init), (gl_view_line_new), - (update_object_from_editor_cb), (update_editor_from_object_cb), - (update_editor_from_label_cb), (draw), - (gl_view_line_get_create_cursor), - (gl_view_line_create_button_press_event), - (gl_view_line_create_motion_event), - (gl_view_line_create_button_release_event): - * src/view-line.h: - * src/view-object.c: (gl_view_object_resize_event): - * src/view.c: (gl_view_construct), (gl_view_object_create_mode), - (selection_received_cb), (motion_notify_event_cb), - (button_press_event_cb), (button_release_event_cb): - Added line object support to view. - * src/cairo-handle-path.c: - Made handles slightly larger. - - -2007-03-11 Jim Evins - - * src/Makefile.am: - * src/cairo-handle-path.c: - * src/cairo-label-path.c: (gl_cairo_rect_label_path), - (gl_cairo_round_label_path), (gl_cairo_cd_label_path): - * src/cairo-markup-path.c: (gl_cairo_markup_margin_rect_path), - (gl_cairo_markup_margin_round_path), - (gl_cairo_markup_margin_cd_path), (gl_cairo_markup_circle_path): - * src/cairo-object-path.c: (gl_cairo_object_path), - (gl_cairo_ellipse_object_path): - * src/label-object.c: (gl_label_object_rotate): - * src/view-box.c: - * src/view-box.h: - * src/view-ellipse.c: (gl_view_ellipse_class_init), - (gl_view_ellipse_new), (update_object_from_editor_cb), - (update_editor_from_object_cb), (update_editor_from_label_cb), - (draw), (gl_view_ellipse_get_create_cursor), - (gl_view_ellipse_create_button_press_event), - (gl_view_ellipse_create_motion_event), - (gl_view_ellipse_create_button_release_event): - * src/view-ellipse.h: - * src/view-object.c: - * src/view-object.h: - * src/view.c: (gl_view_construct), (gl_view_object_create_mode), - (select_object_real), (selection_received_cb), - (motion_notify_event_cb), (button_press_event_cb), - (button_release_event_cb): - * src/view.h: - Added ellipse object support to view. Plus other cleanup. - -2007-03-11 Jim Evins - - * src/view-box.h: - * src/view-box.c: (gl_view_box_get_create_cursor), - (gl_view_box_create_button_press_event), - (gl_view_box_create_motion_event), - (gl_view_box_create_button_release_event): - * src/view-object.c: (gl_view_object_set_view), - (gl_view_object_handle_at): - * src/view.h: - * src/view.c: (gl_view_arrow_mode), (gl_view_object_create_mode), - (motion_notify_event_cb), (button_press_event_cb), - (button_release_event_cb), (key_press_event_cb): - Added creation code for box object. - -2007-03-09 Jim Evins - - * src/view-object.c: (gl_view_object_resize_event): - * src/view-object.h: - * src/view.c: (motion_notify_event_cb): - Fix bugs with resizing transformed objects. - * src/cairo-handle-path.c: (gl_cairo_handle_path): - * src/cairo-object-path.c: (gl_cairo_object_path): - * src/cairo-object-path.h: - * src/label-object.c: (gl_label_object_init), - (gl_label_object_dup), (gl_label_object_get_extent), - (gl_label_object_flip_horiz), (gl_label_object_flip_vert), - (gl_label_object_rotate), (gl_label_object_set_matrix), - (gl_label_object_get_matrix): - * src/label-object.h: - * src/print.c: (draw_object): - * src/view-box.c: - * src/view-highlight.c: - * src/view-highlight.h: - * src/xml-label-191.c: (xml191_parse_object): - * src/xml-label.c: (xml_parse_affine_attrs), - (xml_create_affine_attrs): - Replace libart affine matrices with cairo matrices. - -2007-03-08 Jim Evins - - * src/view-object.h: - * src/view.c: (gl_view_update), (motion_notify_event_cb): - * src/view-object.c: (gl_view_object_handle_at), - (gl_view_object_resize_event): - Added resize code -- still a bit buggy. - -2007-03-07 Jim Evins - - * src/Makefile.am: - * src/cairo-handle-path.c: - * src/cairo-handle-path.h: - * src/view-box.c: (gl_view_box_new): - * src/view-object.c: (gl_view_object_set_object), - (gl_view_object_draw_handles), (gl_view_object_handle_at): - * src/view-object.h: - * src/view.c: (draw_highlight_layer), (select_object_real), - (unselect_object_real), (view_handle_at), (motion_notify_event_cb), - (button_press_event_cb), (button_release_event_cb), - (key_press_event_cb): - * src/view.h: - Added beginnings of object resize handles. - -2007-03-07 Jim Evins - - * src/view.h: - * src/view.c: (gl_view_init), (gl_view_arrow_mode), - (gl_view_object_create_mode), (motion_notify_event_cb), - (button_press_event_cb), (button_release_event_cb), - (key_press_event_cb): - Added move selection support. - -2007-03-05 Jim Evins - - * src/cairo-object-path.c: (gl_cairo_object_path): - * src/view-object.c: (gl_view_object_draw), - (gl_view_object_draw_highlight): - * src/view.c: (view_object_at), (motion_notify_event_cb), - (button_press_event_cb), (button_release_event_cb): - Additional refinements to select logic. - -2007-03-05 Jim Evins - - * src/view.h: - * src/view.c: (gl_view_init), (gl_view_construct), - (label_changed_cb), (draw_layers), (draw_select_region_layer), - (gl_view_select_region), (object_at), (motion_notify_event_cb), - (button_press_event_cb), (button_release_event_cb): - Added initial select region support and context menu. - -2007-03-04 Jim Evins - - * configure.in: - * src/Makefile.am: - * src/debug.c: - * src/debug.h: - * src/file.c: - * src/label.c: - * src/label.h: - * src/print-op.c: - * src/print.c: - * src/ui-commands.c: - * src/view-box.c: - * src/view-box.h: - * src/view-object.c: - * src/view-object.h: - * src/view.c: - * src/view.h: - * src/wdgt-print-copies.c: - * src/wdgt-print-merge.c: - * src/xml-label.c: - Initial port to a raw Cairo canvas. This removes all remaining - dependencies on libgnomecanvas and libgnomeprint[ui]. Basically - the view is becoming a canvas widget in its own right. Still needs - a lot of work. - * src/cairo-label-path.c: - * src/cairo-label-path.h: - * src/cairo-markup-path.c: - * src/cairo-markup-path.h: - * src/cairo-object-path.c: - * src/cairo-object-path.h: - New files to support cairo canvas. - * src/canvas-hacktext.c: - * src/canvas-hacktext.h: - Removed. - -2007-02-18 Jim Evins - - * src/bc.h: - GNOME_FONT_BOOK changed to PANGO_WEIGHT_NORMAL. - -2007-02-14 Jim Evins - - * src/base64.c: - * src/base64.h: - * src/bc-gnubarcode.c: - * src/bc-gnubarcode.h: - * src/bc-postnet.c: - * src/bc-postnet.h: - * src/bc.c: - * src/bc.h: - * src/canvas-hacktext.c: - * src/canvas-hacktext.h: - * src/debug.c: - * src/debug.h: - * src/file.c: - * src/file.h: - * src/glabels.c: - * src/hig.h: - * src/label-barcode.c: - * src/label-barcode.h: - * src/label-box.c: - * src/label-box.h: - * src/label-ellipse.c: - * src/label-ellipse.h: - * src/label-image.c: - * src/label-image.h: - * src/label-line.c: - * src/label-line.h: - * src/label-object.c: - * src/label-object.h: - * src/label-text.c: - * src/label-text.h: - * src/label.c: - * src/label.h: - * src/merge-evolution.c: - * src/merge-evolution.h: - * src/merge-init.c: - * src/merge-init.h: - * src/merge-properties-dialog.c: - * src/merge-properties-dialog.h: - * src/merge-text.c: - * src/merge-text.h: - * src/merge-vcard.c: - * src/merge-vcard.h: - * src/merge.c: - * src/merge.h: - * src/mini-preview-pixbuf.h: - * src/new-label-dialog.c: - * src/new-label-dialog.h: - * src/object-editor-bc-page.c: - * src/object-editor-data-page.c: - * src/object-editor-edit-page.c: - * src/object-editor-fill-page.c: - * src/object-editor-image-page.c: - * src/object-editor-line-page.c: - * src/object-editor-lsize-page.c: - * src/object-editor-position-page.c: - * src/object-editor-private.h: - * src/object-editor-size-page.c: - * src/object-editor-text-page.c: - * src/object-editor.c: - * src/object-editor.h: - * src/pixbuf-cache.c: - * src/pixbuf-cache.h: - * src/prefs-dialog.c: - * src/prefs-dialog.h: - * src/prefs-model.c: - * src/prefs-model.h: - * src/prefs.c: - * src/prefs.h: - * src/print-op.c: - * src/stock.c: - * src/stock.h: - * src/template-designer.c: - * src/text-node.c: - * src/text-node.h: - * src/ui-commands.c: - * src/ui-commands.h: - * src/ui-property-bar.c: - * src/ui-property-bar.h: - * src/ui-sidebar.c: - * src/ui-sidebar.h: - * src/ui-util.c: - * src/ui-util.h: - * src/ui.c: - * src/ui.h: - * src/util.c: - * src/util.h: - * src/view-barcode.c: - * src/view-barcode.h: - * src/view-box.c: - * src/view-box.h: - * src/view-ellipse.c: - * src/view-ellipse.h: - * src/view-highlight.c: - * src/view-highlight.h: - * src/view-image.c: - * src/view-image.h: - * src/view-line.c: - * src/view-line.h: - * src/view-object.c: - * src/view-object.h: - * src/view-text.c: - * src/view-text.h: - * src/view.c: - * src/view.h: - * src/wdgt-chain-button.c: - * src/wdgt-chain-button.h: - * src/wdgt-media-select.c: - * src/wdgt-mini-preview.c: - * src/wdgt-print-copies.c: - * src/wdgt-print-copies.h: - * src/wdgt-print-merge.c: - * src/wdgt-print-merge.h: - * src/wdgt-rotate-label.c: - * src/window.h: - * src/xml-label-04.c: - * src/xml-label-04.h: - * src/xml-label-191.c: - * src/xml-label-191.h: - * src/xml-label.c: - * src/xml-label.h: - - Assorted superficial cleanup. Including: - - Use G_DEFINE_TYPE for all objects. - - Reconcile style of all class initializer functions - - Reconcile style of all finalize functions - - Add emacs mode line to all source files - -2007-02-06 Jim Evins - -Assorted cleanup and removal of deprecated items. - - * src/splash.c: - * src/splash.h: - * src/Makefile.am: - Removed annoying splash screen. - * src/glabels-batch.c: (main): - * src/glabels.c: (main): - Converted from popt to GOption. - * src/object-editor-shadow-page.c: - (gl_object_editor_set_shadow_state): - Removed deprecated method on GtkToggleButton. - * src/ui-commands.c: (gl_ui_cmd_help_about): - Removed dependency on libgnomui/qnome-url.h. - * src/template-designer.c: - Removed dependency on libgnome/gnome-program.h. - - -2007-02-04 Jim Evins - - * src/color.c: - * src/color.h: - * src/prefs-model.c: - * src/print.c: (draw_text_object): - * src/wdgt-mini-preview.c: (gl_wdgt_mini_preview_construct): - Removed GnomeCanvas artifacts from color.[ch] and related modules. - -2007-02-04 Jim Evins - - * src/wdgt-mini-preview.c: - * src/wdgt-mini-preview.h: - Ported widget from GnomeCanvas to Cairo. - -2007-02-03 Jim Evins - - * data/glade/template-designer.glade: - * src/template-designer.c: - * src/template-designer.h: - Ported GnomeDruid to GtkAssistant. Since libglade does not - yet support the GtkAssistant and we derive directly from - the Assistant, the pages are layed out in a GtkNotebook in - the glade description -- we then append each page to the - assistant. - -2007-01-25 Jim Evins - - * data/glade/object-editor.glade: - Added dummy page to notebook, to prevent shadow page from - becoming the default current page at creation. - * src/view-box.c: (construct_properties_editor): - * src/view-ellipse.c: (construct_properties_editor): - * src/view-line.c: (construct_properties_editor): - * src/view-text.c: (construct_properties_editor): - Reconciled order of params. - -2007-01-19 Jim Evins - - * src/label-barcode.h: - * src/label-object.c: (gl_label_object_set_font_weight), - (gl_label_object_set_text_alignment), - (gl_label_object_get_font_weight), - (gl_label_object_get_text_alignment): - * src/label-object.h: - * src/label-text.c: (gl_label_text_instance_init), (copy), - (get_size), (set_font_family), (set_font_weight), - (set_text_alignment), (get_font_weight), (get_text_alignment): - * src/label-text.h: - * src/object-editor-text-page.c: - (gl_object_editor_prepare_text_page), - (gl_object_editor_set_font_family), - (gl_object_editor_set_font_weight), - (gl_object_editor_get_font_weight), - (gl_object_editor_set_text_alignment), - (gl_object_editor_get_text_alignment), - (gl_object_editor_set_text_color): - * src/object-editor.h: - * src/prefs-dialog.c: (construct_object_page), - (update_object_page_from_prefs), (update_prefs_from_object_page): - * src/prefs-model.c: (gl_prefs_model_save_settings), - (gl_prefs_model_load_settings): - * src/prefs-model.h: - * src/print.c: (draw_text_object): - * src/ui-property-bar.c: (gl_ui_property_bar_construct), - (reset_to_default_properties), (update_text_properties), - (font_bold_toggled_cb), (text_align_toggled_cb): - * src/ui-sidebar.c: - * src/util.c: (gl_util_align_to_string), (gl_util_string_to_align), - (gl_util_weight_to_string), (gl_util_string_to_weight), - (gl_util_get_font_family_list), (gl_util_font_family_list_free): - * src/util.h: - * src/view-text.c: (update_object_from_editor_cb), - (update_editor_from_object_cb), (draw_hacktext), (draw_cursor): - * src/view.c: (gl_view_set_selection_text_alignment), - (gl_view_set_default_text_alignment), - (gl_view_get_default_text_alignment): - * src/view.h: - * src/xml-label-04.c: (xml04_parse_text_props): - * src/xml-label-191.c: (xml191_parse_text_props): - * src/xml-label.c: (xml_parse_object_text), - (xml_parse_toplevel_span), (xml_create_object_text), - (xml_create_toplevel_span): - Converted all model internals to Pango. GnomeFont remains in - view until GnomeCanvas can be replaced with a cairo-based canvas. - -2007-01-17 Jim Evins - - * src/Makefile.am: - * src/hig.c: - Deleted hig.c. - * src/hig.h: - * src/wdgt-print-copies.c: (gl_wdgt_print_copies_get_type), - (gl_wdgt_print_copies_construct): - * src/wdgt-print-copies.h: - * src/wdgt-print-merge.c: (gl_wdgt_print_merge_get_type), - (gl_wdgt_print_merge_construct): - * src/wdgt-print-merge.h: - Removed all remaining HIG wrapper widgets. - -2007-01-16 Jim Evins - - * src/Makefile.am: - * src/print-dialog.c: - * src/print-dialog.h: - * src/print-op.c: - * src/print-op.h: - * src/template-designer.c: (print_test_cb): - * src/ui-commands.c: (gl_ui_cmd_file_print): - * src/print.c: - Renamed PrintDialog to PrintOp. Added constructor for batch - printing. - * src/glabels-batch.c: (main): - Converted to use new PrintOp object for printing. - -2007-01-15 Jim Evins - - * data/glade/Makefile.am: - * data/glade/print-custom-widget.glade: - * src/print-dialog.c: - * src/print-dialog.h: - * src/print.c: - * src/print.h: - * src/template-designer.c: (print_test_cb): - * src/ui-commands.c: (gl_ui_cmd_file_print): - * src/wdgt-print-merge.c: (gl_wdgt_print_merge_get_copies): - * src/wdgt-print-merge.h: - * src/window.c: (gl_window_init): - * src/window.h: - Initial conversion to GtkPrintOperation. - Still to do: - - Remove font and other libgnomeprint[ui] from elsewhere - - Add batch initialization of print operation - -2007-01-08 Jim Evins - * configure.in: - Updated dependencies. Set version to 2.1.pre4cvs. - -2007-01-03 Jim Evins - - * src/recent-files/* - Removed EggRecent stuff. - * configure.in: - * src/Makefile.am: - * src/file.c: - * src/recent.c: - * src/recent.h: - * src/ui-commands.c: - * src/ui-commands.h: - * src/ui.c: - Ported from EggRecent to GtkRecentManager. - - -2007-01-02 Jim Evins - - * configure.in: - * iec16022-0.2.1/BUGS: - * iec16022-0.2.1/CHANGELOG: - * iec16022-0.2.1/CREDITS: - * iec16022-0.2.1/INSTALL: - * iec16022-0.2.1/LICENSE: - * iec16022-0.2.1/Makefile.am: - * iec16022-0.2.1/Makefile.dist: - * iec16022-0.2.1/README: - * iec16022-0.2.1/README.glabels: - * iec16022-0.2.1/TODO: - * iec16022-0.2.1/iec16022.1: - * iec16022-0.2.1/iec16022.c: - * iec16022-0.2.1/iec16022ecc200.c: - * iec16022-0.2.1/iec16022ecc200.h: - * iec16022-0.2.1/image.c: - * iec16022-0.2.1/image.h: - * iec16022-0.2.1/reedsol.c: - * iec16022-0.2.1/reedsol.h: - * iec16022-0.2.1/test/testsuite-example.bin: - * iec16022-0.2.1/test/testsuite-example.eps: - * iec16022-0.2.1/test/testsuite-example.hex: - * iec16022-0.2.1/test/testsuite-example.png: - * iec16022-0.2.1/test/testsuite-example.text: - * iec16022-0.2.1/test/testsuite.sh: - Include modified copy of iec16022-0.2.1 to provide encoding - support for datamatrix 2D barcodes. - * src/Makefile.am: - * src/bc-iec16022.c: - * src/bc-iec16022.h: - * src/bc.c: - Added initial datamatrix 2D barcode backend to barcode code. - * INSTALL: - * gtk-doc.make: - Automatic updates to later versions of these files. - -2006-11-28 Jim Evins - - * data/templates/avery-iso-templates.xml: - * data/templates/avery-us-templates.xml: - * data/templates/categories.xml: - * data/templates/misc-iso-templates.xml: - * data/templates/misc-us-templates.xml: - * data/templates/zweckform-iso-templates.xml: - More categorization. - -2006-09-12 Jim Evins - - * data/dtd/glabels-2.0.dtd: - * data/templates/Makefile.am: - * data/templates/avery-iso-templates.xml: - * data/templates/avery-other-templates.xml: - * data/templates/avery-us-templates.xml: - * data/templates/categories.xml: - * data/templates/misc-iso-templates.xml: - * data/templates/misc-other-templates.xml: - * data/templates/zweckform-iso-templates.xml: - * data/glade/Makefile.am: - * data/glade/new-label-dialog.glade: - * data/glade/wdgt-media-select.glade: - * data/glade/wdgt-rotate-label.glade: - * libglabels/Makefile.am: - * libglabels/category.c: - * libglabels/category.h: - * libglabels/libglabels.h: - * libglabels/paper.c: - * libglabels/template.c: - * libglabels/template.h: - * libglabels/xml-category.c: - * libglabels/xml-category.h: - * libglabels/xml-template.c: - Added support for category meta data. - * src/Makefile.am: - * src/file.c: - * src/mini-preview-pixbuf.c: - * src/mini-preview-pixbuf.h: - * src/new-label-dialog.c: - * src/new-label-dialog.h: - * src/wdgt-media-select.c: - * src/wdgt-media-select.h: - * src/wdgt-rotate-label.c: - * src/wdgt-rotate-label.h: - New "new label" dialog. - -2006-05-27 Jim Evins - - * NEWS: - * autogen.sh: - * configure.in: - Preparation for 2.1.3. - * acinclude.m4: - * omf.make: - * xmldocs.make: - Removed. - -2006-05-22 Jim Evins - - * src/print.c: (draw_barcode_object): - Don't print "Invalid barcode data" if data field is empty. Patch provided - by Darren Warner . Fixes Bug #1479839. - * AUTHORS: - Added acknowledgment for above patch. - * src/bc-gnubarcode.c: (gl_barcode_gnubarcode_new): - * src/bc-postnet.c: (postnet_code): - Removed "Invalid barcode data" warnings from stderr. - * src/view-barcode.c: (draw_barcode): - Draw box around barcode extent if data empty or invalid. Center a - message whether the data is empty or invalid in box. - -2006-05-22 Jim Evins - - * src/print.c: (draw_text_object): - Check shadow state when printing text. - -2006-05-20 Jim Evins - - * src/ui-commands.c: (gl_ui_cmd_view_grid_toggle), - (gl_ui_cmd_view_markup_toggle): - Fixed crash when grid or markup have been toggled off during - a previous session. Bug #1434324. - -2006-04-05 Jim Evins - - * src/object-editor.c: (gl_object_editor_set_key_names): - Fixed potential crash when freeing empty key list. - -2006-03-11 Jim Evins - - * src/print.c: (draw_text_object): - * src/view-text.c: (gl_view_text_new), - (construct_properties_editor), (update_object_from_editor_cb), - (update_editor_from_object_cb), (update_editor_from_label_cb), - (draw_hacktext): - Added shadow support to text object. - -2006-02-18 Jim Evins - - * src/print.c: (draw_line_object): - * src/view-line.c: (gl_view_line_new), - (construct_properties_editor), (update_canvas_item_from_object_cb), - (update_object_from_editor_cb), (update_editor_from_object_cb), - (update_editor_from_label_cb): - Added shadow support to line object. - -2006-02-16 Jim Evins - - * src/view-box.c: - Comment changes. - * src/print.c: (draw_ellipse_object): - * src/view-ellipse.c: (gl_view_ellipse_new), - (construct_properties_editor), (update_canvas_item_from_object_cb), - (update_object_from_editor_cb), (update_editor_from_object_cb), - (update_editor_from_label_cb): - Added shadow support to ellipse object. - -2006-02-15 Jim Evins - - * src/label-object.c: - Changed default shadow offsets. - * src/view-box.c: (gl_view_box_new): - Simplified gl_view_box_new() so that is does not duplicate code - in update_canvas_item_from_object_cb(). - -2006-02-07 Jim Evins - - * data/glade/object-editor.glade: - Fixed color groups of color combos. - * src/color.h: - Added default shadow color. - * src/object-editor.c: (gl_object_editor_construct_color_combo): - Added shadow color group. - -2006-02-06 Jim Evins - - * src/object-editor-shadow-page.c: - Forgot to add this file. - * src/view-box.c: (gl_view_box_new), - (update_canvas_item_from_object_cb), (update_editor_from_label_cb): - Update limits on shadow offset spinbuttons. - -2006-01-19 Jim Evins - - * src/merge-evolution.c: (gl_merge_evolution_get_key_list): - Initialize key_list to NULL. - * data/glade/object-editor.glade: - * src/Makefile.am: - * src/color.c: - * src/color.h: - * src/label-object.c: - * src/label-object.h: - * src/object-editor-fill-page.c: - * src/object-editor-private.h: - * src/object-editor.c: - * src/object-editor.h: - * src/xml-label.c: - Created infrastructure for shadow support. - * src/view-box.c: - * src/print.c: - Initial shadow support in box object only. - -2006-01-05 Jim Evins - - * src/merge-properties-dialog.c: (src_changed_cb): - Be extra paranoid before calling strcmp(). - * src/merge.c: (gl_merge_set_src): - Don't make (merge == NULL) a critical error. - -2005-12-22 Jim Evins - - * src/glabels-batch.c: (main): - Compile warning free with gcc 4.0. - -2005-12-21 Jim Evins - - * glabels.spec.in: - Updated example RPM spec file. - -2005-12-21 Jim Evins - - * NEWS: - * configure.in: - Preparation for 2.1.2. - -2005-12-20 Jim Evins - - * src/Makefile.am: - Define unique G_LOG_DOMAIN for glabels. - * src/critical-error-handler.c: (gl_critical_error_handler_init): - * src/warning-handler.c: (gl_warning_handler_init), - (warning_handler): - Register for G_LOG_DOMAIN instead of NULL. - -2005-12-10 Jim Evins - - * src/merge-evolution.c: - * src/merge-vcard.c: - Fixed indentation. - -2005-12-08 Jim Evins - - * libglabels/paper.c: (read_paper_files_from_dir): - * libglabels/template.c: (gl_template_register), - (read_template_files_from_dir): - * libglabels/xml-paper.c: (gl_xml_paper_read_papers_from_file), - (gl_xml_paper_parse_papers_doc): - * libglabels/xml-template.c: - (gl_xml_template_read_templates_from_file), - (gl_xml_template_parse_templates_doc), - (gl_xml_template_parse_template_node), - (xml_parse_label_rectangle_node), (xml_parse_label_round_node), - (xml_parse_label_cd_node), (xml_parse_layout_node), - (xml_parse_markup_margin_node), (xml_parse_markup_line_node), - (xml_parse_markup_circle_node), - (gl_xml_template_write_templates_to_file), (xml_create_label_node): - * libglabels/xml.c: (gl_xml_get_prop_length): - Re-classified g_warnings to g_messages. - * src/Makefile.am: - * src/glabels.c: (main): - * src/warning-handler.c: (gl_warning_handler_init), - (warning_handler): - * src/warning-handler.h: - Added warning message handler to make sure the user is - presented with appropriate non-fatal errors. - * src/critical-error-handler.c: (critical_error_handler): - Changed exit to abort. - * src/bc-gnubarcode.c: (gl_barcode_gnubarcode_new), (render_pass1): - * src/bc-postnet.c: (postnet_code): - * src/bc.c: (id_to_index), (name_to_index): - * src/merge.c: (gl_merge_register_backend), (gl_merge_new): - * src/object-editor.c: (gl_object_notebook_construct_valist): - * src/prefs-dialog.c: (update_locale_page_from_prefs): - * src/prefs.c: (gl_prefs_get_units_per_point), - (gl_prefs_get_units_precision), (gl_prefs_get_units_step_size), - (gl_prefs_get_units_string): - * src/print.c: (draw_outline), (clip_to_outline), (clip_punchouts): - * src/splash.c: (gl_splash): - * src/ui-commands.c: (gl_ui_cmd_help_contents): - * src/view-highlight.c: (gl_view_highlight_new), - (highlight_resizable_box_construct), (object_changed_cb), - (view_scale_changed_cb): - * src/view.c: (draw_label_layer), (draw_bg_fg_layers), - (draw_markup_layer), (draw_markup_margin), - (gl_view_object_create_mode), (canvas_event), - (selection_received_cb): - * src/wdgt-mini-preview.c: (mini_outline_list_new): - * src/wdgt-rotate-label.c: (mini_preview_canvas_update): - * src/xml-label-04.c: (gl_xml_label_04_parse), - (xml04_parse_media_description), (xml04_parse_text_props), - (xml04_parse_barcode_props): - * src/xml-label-191.c: (gl_xml_label_191_parse), - (xml191_parse_objects), (xml191_parse_object), - (xml191_parse_text_props), (xml191_parse_image_props), - (xml191_parse_barcode_props), (xml191_parse_data), - (xml191_parse_sheet), (xml191_parse_label), (xml191_parse_layout), - (xml191_parse_markup): - * src/xml-label.c: (gl_xml_label_open), (gl_xml_label_open_buffer), - (xml_doc_to_label), (xml_parse_label), (xml_parse_objects), - (xml_parse_object_text), (xml_parse_object_image), - (xml_parse_object_barcode), (xml_parse_data), - (xml_parse_toplevel_span), (gl_xml_label_save), - (xml_create_objects): - Re-classified g_warnings to g_messages. - * src/merge-evolution.c: (gl_merge_evolution_open), - (gl_merge_evolution_close), (gl_merge_evolution_get_record): - Use g_warning to output errors encountered while - communicating with the evolution data server - instead of embedding them in the data. - -2005-12-08 Jim Evins - - * libglabels/libglabels-private.h: - Set G_LOG_DOMAIN - * libglabels/paper.c: (read_papers): - * libglabels/template.c: (read_templates): - Made appropriate warnings critical. - * src/Makefile.am: - * src/critical-error-handler.h: - * src/critical-error-handler.c: (gl_critical_error_handler_init), - (critical_error_handler): - Created critical error handler. - * src/glabels.c: (main): - Register critical error handler. - * src/merge-properties-dialog.c: (gl_merge_properties_dialog_init): - * src/object-editor.c: (gl_object_editor_init): - * src/prefs-dialog.c: (gl_prefs_dialog_init): - * src/template-designer.c: (gl_template_designer_init): - * src/ui-property-bar.c: (gl_ui_property_bar_instance_init): - Made appropriate warnings critical. - -2005-11-27 Jim Evins - - * src/merge-evolution.c: (gl_merge_evolution_get_key_list), - (gl_merge_evolution_get_primary_key), - (gl_merge_evolution_get_record): - Don't create "record_key" pseudo-key. Don't populate - fields with null data. - -2005-11-25 Jim Evins - - * src/merge-evolution.c: (gl_merge_evolution_finalize), - (gl_merge_evolution_get_key_list), (gl_merge_evolution_open), - (gl_merge_evolution_get_record), (gl_merge_evolution_copy), - (free_field_list): - Query EDS for all supported fields. Patch provided by - Austin Henry . - -2005-10-29 Jim Evins - - * src/glabels.c: (main): - * src/label-barcode.c: (gl_label_barcode_finalize): - * src/label-text.c: (gl_label_text_finalize), (set_font_family): - * src/label.c: (gl_label_instance_init), (gl_label_finalize): - * src/object-editor.c: (gl_object_editor_finalize): - Another pass at valgrinding -- plugged several memory leaks. - * src/view-text.c: (gl_view_text_new), - (update_canvas_item_from_object_cb), (draw_hacktext): - Commented out artifacts of edit-in-place code. - -2005-10-28 Jim Evins - - * src/canvas-hacktext.c: (gl_canvas_hacktext_set_arg): - Fixed use of uninitialized variable. Caught by - d binderman . - -2005-10-27 Jim Evins - - * src/merge-evolution.c: (gl_merge_evolution_get_record): - * src/merge-vcard.c: (gl_merge_vcard_get_record), - (parse_next_vcard): - Additional cleanup of EDS and vcard backends. Provided by - Austin Henry . - -2005-10-24 Jim Evins - - * AUTHORS: - * src/Makefile.am: - * src/merge-evolution.c: - * src/merge-evolution.h: - * src/merge-init.c: (gl_merge_init): - * src/merge-properties-dialog.c: (type_changed_cb): - * src/merge-vcard.c: - * src/merge-vcard.h: - * src/ui-commands.c: (gl_ui_cmd_help_about): - Added Evolution Data Server and VCard merge backends. Original patch - provided by Austin Henry . - * configure.in: - Only support EDS and VCard backends if libebook is installed. Allow - user to disable support, even if installed. - -2005-10-24 Jim Evins - - * AUTHORS: - * data/templates/avery-iso-templates.xml: - * data/templates/avery-us-templates.xml: - * data/templates/misc-iso-templates.xml: - * data/templates/zweckform-iso-templates.xml: - Collected all template changes and submissions since last - release. - -2005-10-23 Jim Evins - - * configure.in: - * data/mime/Makefile.am: - Added configure options to disable update-mime-database and - update-desktop-database as part of the install. Patch - provided by Leonardo Boshell (qhoracio@sourceforge.net). - -2005-10-23 Jim Evins - - * libglabels/xml.h: - * libglabels/xml.c: (gl_xml_get_prop_string), - (gl_xml_get_prop_i18n_string), (gl_xml_set_prop_string), - (gl_xml_is_node), (gl_xml_get_node_content): - Added new XML utility functions. - * libglabels/xml-paper.c: - * libglabels/xml-template.c: - * src/xml-label.c: - Cleanup by using new xml utilities created above. - * libglabels/paper.c: (gl_paper_free): - * src/file.c: (new_response): - * src/object-editor-image-page.c: (add_image_filters_to_chooser): - * src/pixbuf-cache.c: (gl_pixbuf_cache_add_pixbuf), - (gl_pixbuf_cache_get_pixbuf): - * src/ui-property-bar.c: - (gl_ui_property_bar_construct_color_combo): - * src/view-highlight.c: (gl_view_highlight_finalize): - * src/view-image.c: (update_object_from_editor_cb): - * src/view.c: (gl_view_finalize), (draw_bg_fg_layers), - (draw_bg_fg_rounded_rect), (draw_bg_fg_round), (draw_bg_fg_cd), - (draw_bg_fg_cd_bc), (draw_markup_layer), (draw_markup_margin), - (draw_markup_margin_rect), (draw_markup_margin_rounded_rect), - (draw_markup_margin_round), (draw_markup_margin_cd), - (draw_markup_margin_cd_bc): - * src/wdgt-mini-preview.c: (mini_outline_list_new): - * src/wdgt-rotate-label.c: (gl_wdgt_rotate_label_finalize): - Plugged various memory leaks located with valgrind. - * src/view-image.c: (update_canvas_item_from_object_cb): - Don't allow a width or height of zero when drawing pixbuf. - -2005-10-22 Jim Evins - - * libglabels/xml-paper.c: - * libglabels/xml-template.c: - * libglabels/xml.c: - * src/base64.c: - * src/bc-gnubarcode.c: - * src/canvas-hacktext.c: - * src/label-text.c: - * src/object-editor-data-page.c: - * src/print-dialog.c: - * src/print.c: - * src/recent.c: - * src/template-designer.c: - * src/text-node.c: - * src/ui-property-bar.c: - * src/ui.c: - * src/view-barcode.c: - * src/view-box.c: - * src/view-ellipse.c: - * src/view-image.c: - * src/view-line.c: - * src/view-text.c: - * src/view.c: - * src/wdgt-media-select.c: - * src/xml-label-04.c: - * src/xml-label-191.c: - * src/xml-label.c: - Modified to compile warning free with gcc-4.0. Mostly - casting to change signedness of characters. Did not - attack gnu-barcode library yet. - -2005-10-22 Jim Evins - - * src/glabels.c: (main): - * src/splash.c: (gl_splash): - Removed some small memory leaks. - * gtk-doc.make: - Added. - -2005-09-19 Jim Evins - - * data/glade/property-bar.glade: - Remove items from font_family_combo. This prevents the - double entry after adding text model and list of fonts. - * src/ui-property-bar.c: (reset_to_default_properties): - Free font_family_list. - -2005-07-01 Jim Evins - - * po/it.po: - Updated italian translation (Daniele Medri) - -2005-06-26 Jim Evins - - * docs/libglabels/libglabels-decl-list.txt: - Somehow never got checked in before. - * docs/libglabels/libglabels.types: - Removed -- don't need it afterall. - -2005-06-20 Jim Evins - - * NEWS: - Final prep for 2.1.1 release. - -2005-06-20 Jim Evins - - * configure.in: - Final preps for 2.1.1 release. - * docs/libglabels/libglabels.types: - Somehow never got checked in before. - * po/POTFILES.in: - Bring up-to-date with recent reorg of ui code. - - -2005-06-19 Jim Evins - - * src/template-designer.c: (construct_layout_page): - Removed attempt to match background color of mini preview widget to - background. - -2005-06-17 Jim Evins - - * help/C/figures/merge-ex2-4.png: - * help/C/glabels.xml: - Fixed spelling error. - -2005-06-13 Jim Evins - - * help/C/figures/merge-ex1-1.png: - * help/C/figures/merge-ex1-2.png: - * help/C/figures/merge-ex1-3.png: - * help/C/figures/merge-ex1-4.png: - * help/C/figures/merge-ex2-1.png: - * help/C/figures/merge-ex2-2.png: - * help/C/figures/merge-ex2-3.png: - * help/C/figures/merge-ex2-4.png: - Added figures for document merge tutorial. - * help/C/glabels.xml: - Added document merge tutorial. - -2005-05-19 Jim Evins - - * data/glade/merge-properties-dialog.glade: - Fixed irregular spacing. - * src/merge-properties-dialog.c: (gl_merge_properties_dialog_init), - (gl_merge_properties_dialog_construct): - Set outer padding and remove separator. - -2005-05-18 Jim Evins - - * src/hig.h: - * src/hig.c: - Removed glHigDialog class. - * src/file.c: (gl_file_new), (create_new_dialog_widgets), - (gl_file_properties), (create_properties_dialog_widgets): - * src/prefs-dialog.h: - * src/prefs-dialog.c: (gl_prefs_dialog_get_type), - (gl_prefs_dialog_init), (gl_prefs_dialog_construct): - * src/print-dialog.h: - * src/prefs-dialog.h: - * src/print-dialog.c: (gl_print_dialog_get_type), - (gl_print_dialog_init), (gl_print_dialog_construct): - Replaced all instances of glHigDialog with GtkDialog. - -2005-05-17 Jim Evins - - * src/hig.h: - * src/hig.c: - Removed HigAlert class since it is obsoleted by the GtkMessageDialog class. - * src/file.c: (open_response), (gl_file_open_real), (gl_file_save), - (save_as_response), (gl_file_close): - Replaced all instances of HigAlert widgets with GtkMessageDialog widgets. - -2005-05-15 Jim Evins - - * src/ui-commands.h: - * src/ui-util.c: - * src/ui-util.h: - * src/ui.c: - * src/ui.h: - * src/view.c: - * src/window.c: - * src/window.h: - A little code reformatting -- no functional changes. - -2005-05-14 Jim Evins - - * src/Makefile.am: - Removed obsolete macros. - * src/marshal.list: - Added marshalling template to support new view signal: "context_menu_activate." - * src/view.h: - * src/view.c: (gl_view_class_init), (gl_view_construct), - (canvas_event_arrow_mode): - - Removed hardcoded context menus and added new signal "context_menu_activate" - to push this up to the uimanager. - - Removed merge properties and print dialogs so that they can be managed with - the window by the uimanager. - * src/merge-properties-dialog.h: - * src/merge-properties-dialog.c: (gl_merge_properties_dialog_new), - (gl_merge_properties_dialog_construct): - Changed calling convention of gl_merge_properties_dialog_new() to use - glLabel and GtkWindow instead of view to make more consistent with other - dialogs. - * src/print-dialog.h: - * src/print-dialog.c: (gl_print_dialog_new), - (gl_print_dialog_construct): - Removed last artifact of libbonoboui. - * src/ui-commands.c: (gl_ui_cmd_file_print), - (gl_ui_cmd_objects_merge_properties), (gl_ui_cmd_help_about): - Reconciled style for launching dialogs. - * src/ui.c: (gl_ui_new): - Added context menus to ui manager. - * src/view-object.c: (item_event_arrow_mode): - No longer try to select objects with right-click. - * src/window.h: - * src/window.c: (gl_window_init), (gl_window_set_label), - (context_menu_activate_cb): - Context menus and all dialogs are now managed in a consistent way in window - by the ui manager. - -2005-05-11 Jim Evins - - * src/window.h: - * src/window.c: (gl_window_init), (gl_window_destroy): - * src/ui.c: (gl_ui_new), (gl_ui_unref), (recent_tooltip_func): - * src/ui-commands.c: (gl_ui_cmd_file_open_recent): - Moved management of recent_view back from window.c to ui.c -- it just feels - better there. - -2005-05-10 Jim Evins - - * src/window.h: - * src/window.c: (gl_window_init): - * src/ui.h: - * src/ui.c: (gl_ui_new), (connect_proxy_cb), (disconnect_proxy_cb), - (menu_item_select_cb), (menu_item_deselect_cb): - Added GtkStatusbar which displays menu tooltips. - -2005-05-09 Jim Evins - - Replaced libbonoboui with GtkUIManager for creation of basic user interface menus - and toolbars. - - * configure.in: - * glabels.spec.in: - Removed dependencies on libbonoboui. - * data/Makefile.am: - * data/ui/Makefile.am: - * data/ui/glabels-ui.xml: - Removed data/ui directory. - * data/glade/Makefile.am: - * data/property-bar.glade: - Added glade description of property-bar for new libglade implementation - of glUIPropertyBar. - * src/Makefile.am: - * src/commands.h: - * src/commands.c: - * src/tools.h: - * src/tools.c: - * src/ui-commands.h: - * src/ui-commands.c: - Replaced commands.[ch] and tools.[ch] with the single ui-commands.[ch] module - since the distinction between "commands" and "tools" is no longer that clear. - * src/file.h: - * src/file.c: - Modified to expect glWindow instead of GtkWindow. gl_file_open_recent() - no longer has knowledge of eggRecent*. - * src/glabels.c: (main): - Removed libbonobo initialization and replaced bonobo_main loop with gtk_main - loop. - * src/object-editor.c: (gl_object_editor_init): - Make sure notebook does not respond to a "show_all" on the parent. - * src/recent-files/Makefile.am: - * src/recent-files/*.[ch] - Updated from latest version of libegg which now has a view based on - GtkUIManager. Removed unused bonobo and gtk views. - * src/ui-property-bar.h: - * src/ui-property-bar.c: - New implementation based on libglade. - * src/ui-sidebar.h: - * src/ui-sidebar.c: - Sidebar is now simply a GtkWidget and does not expect to be a part of - a libbonoboui interface. - * src/ui-util.h: - * src/ui-util.c: - * src/ui.h: - * src/ui.c: - Converted for use with GtkUIManager. - * src/window.h: - * src/window.c: - Now derived from GtkWindow instead of BonoboWindow and uses GtkUIManager - to create menus and toolbars. - -2005-04-25 Jim Evins - - * data/templates/misc-iso-templates.xml: - Added Fellows 04715 template provided by Steve Saxon. - * AUTHORS: - Updated acknowledgement for above. - -2005-04-23 Jim Evins - - * src/util.c: (gl_util_combo_box_set_strings): - Make sure to clear model before loading a new list of strings. - * src/wdgt-media-select.h: - * src/wdgt-media-select.c: (gl_wdgt_media_select_instance_init), - (gl_wdgt_media_select_construct), (page_size_combo_changed_cb), - (template_combo_changed_cb), (prefs_changed_cb), - (gl_wdgt_media_select_get_name), (gl_wdgt_media_select_set_name), - (gl_wdgt_media_select_get_page_size), - (gl_wdgt_media_select_set_page_size): - Replaced the deprecated GtkCombo widget with the new - GtkComboBox. - -2005-04-21 Jim Evins - - * data/glade/template-designer.glade: - * src/template-designer.c: (construct_pg_size_page), - (pg_size_page_changed_cb), (build_template): - Replaced the deprecated GtkCombo widget with the new - GtkComboBox. - -2005-04-20 Jim Evins - - * data/glade/prefs-dialog.glade: - * src/prefs-dialog.c: (construct_object_page), - (update_object_page_from_prefs), (update_prefs_from_object_page): - Replaced the deprecated GtkCombo widget with the new - GtkComboBox. - -2005-04-19 Jim Evins - - * data/glade/object-editor.glade: - * src/object-editor-bc-page.c: (gl_object_editor_prepare_bc_page), - (style_changed_cb), (gl_object_editor_set_bc_style), - (gl_object_editor_get_bc_style), (gl_object_editor_set_bc_color), - (gl_object_editor_get_bc_color): - * src/object-editor-data-page.c: - (gl_object_editor_prepare_data_page), (gl_object_editor_set_data), - (gl_object_editor_get_data): - * src/object-editor-edit-page.c: - (gl_object_editor_prepare_edit_page), (insert_button_cb): - * src/object-editor-fill-page.c: - (gl_object_editor_prepare_fill_page), - (gl_object_editor_set_fill_color), - (gl_object_editor_get_fill_color): - * src/object-editor-image-page.c: - (gl_object_editor_prepare_image_page), - (gl_object_editor_set_image), (gl_object_editor_get_image): - * src/object-editor-line-page.c: - (gl_object_editor_prepare_line_page), - (gl_object_editor_set_line_color), - (gl_object_editor_get_line_color): - * src/object-editor-private.h: - * src/object-editor-text-page.c: - (gl_object_editor_prepare_text_page), - (gl_object_editor_set_font_family), - (gl_object_editor_get_font_family), - (gl_object_editor_set_text_color), - (gl_object_editor_get_text_color): - * src/object-editor.c: (gl_object_editor_set_key_names): - * src/ui-sidebar.c: - In the object editor: replaced all instances of the deprecated - GtkCombo widget with the new GtkComboBox. - -2005-04-18 Jim Evins - - * src/stock.c: - Neglected to save this one in previous checkin to support - header cleanup. - -2005-04-17 Jim Evins - - * libglabels/libglabels-private.h: - * libglabels/paper.c: - * libglabels/paper.h: - * libglabels/template.c: - * libglabels/template.h: - * libglabels/xml-paper.c: - * libglabels/xml-paper.h: - * libglabels/xml-template.c: - * libglabels/xml.c: - * libglabels/xml.h: - * src/base64.c: - * src/base64.h: - * src/bc-gnubarcode.c: - * src/bc-postnet.c: - * src/bc.c: - * src/bc.h: - * src/commands.c: - * src/debug.c: - * src/debug.h: - * src/file.c: - * src/file.h: - * src/hig.c: - * src/hig.h: - * src/label-barcode.c: - * src/label-box.c: - * src/label-ellipse.c: - * src/label-image.c: - * src/label-image.h: - * src/label-line.c: - * src/label-object.c: - * src/label-text.c: - * src/label-text.h: - * src/label.c: - * src/merge-properties-dialog.c: - * src/object-editor-bc-page.c: - * src/object-editor-data-page.c: - * src/object-editor-edit-page.c: - * src/object-editor-fill-page.c: - * src/object-editor-image-page.c: - * src/object-editor-line-page.c: - * src/object-editor-lsize-page.c: - * src/object-editor-position-page.c: - * src/object-editor-private.h: - * src/object-editor-size-page.c: - * src/object-editor-text-page.c: - * src/object-editor.c: - * src/object-editor.h: - * src/pixbuf-cache.h: - * src/prefs-dialog.c: - * src/prefs-dialog.h: - * src/prefs-model.c: - * src/prefs-model.h: - * src/prefs.c: - * src/print-dialog.c: - * src/print-dialog.h: - * src/print.c: - * src/print.h: - * src/recent.c: - * src/recent.h: - * src/splash.c: - * src/splash.h: - * src/stock.h: - * src/template-designer.c: - * src/template-designer.h: - * src/text-node.h: - * src/tools.c: - * src/ui-property-bar.c: (gl_ui_property_bar_construct): - * src/ui-sidebar.c: - * src/ui-util.c: - * src/ui.c: - * src/util.c: - * src/util.h: - * src/view-barcode.c: - * src/view-box.c: - * src/view-ellipse.c: - * src/view-highlight.c: - * src/view-highlight.h: - * src/view-image.c: - * src/view-line.c: - * src/view-object.c: - * src/view-object.h: - * src/view-text.c: - * src/view.c: - * src/view.h: - * src/wdgt-chain-button.c: - * src/wdgt-media-select.c: - * src/wdgt-media-select.h: - * src/wdgt-mini-preview.c: - * src/wdgt-mini-preview.h: - * src/wdgt-print-copies.c: - * src/wdgt-print-copies.h: - * src/wdgt-print-merge.c: - * src/wdgt-print-merge.h: - * src/wdgt-rotate-label.c: - * src/wdgt-rotate-label.h: - * src/window.c: - * src/window.h: - * src/xml-label-04.c: - * src/xml-label-191.c: - * src/xml-label.c: - Cleanup of header files: - - all header files are now stand-alone, verified by including - first in corresponding "c" files - - replaced blanket includes of gnome, gtk, and glib with - targetted includes - -2005-04-16 Jim Evins - - * data/glade/Makefile.am: - * data/glade/merge-properties-dialog.glade: - Added merge properties dialog glade description file. - * src/merge-properties-dialog.h: - * src/merge-properties-dialog.c: - (gl_merge_properties_dialog_get_type), - (gl_merge_properties_dialog_init), - (gl_merge_properties_dialog_finalize), - (gl_merge_properties_dialog_new), - (gl_merge_properties_dialog_construct), (type_changed_cb), - (src_changed_cb), (response_cb), (load_tree), - (record_select_toggled_cb), (select_all_button_clicked_cb), - (unselect_all_button_clicked_cb): - Modified merge properties dialog to use libglade. Added - "select all" and "unselect all" buttons. - * src/merge-text.c: (parse_line): - Handle empty lines better. - * src/merge.c: (gl_merge_eval_key): - Evaluate the key whether the record is selected or not. - * src/util.h: - * src/util.c: (gl_util_combo_box_add_text_model): - Since libglade does not use the gtk_combo_box_new_text() - constructor for GtkComboBoxes, a utility function was created - to add an appropriate text model to a GtkComboBox. - * src/view.c: (gl_view_edit_merge_props): - Removed unnecessary "show all's". - -2005-04-15 Jim Evins - - * po/ru.po: - Updated russian translation (Vitaly Lipatov) - * data/templates/misc-iso-templates.xml: - Added templates for russian business cards provided by Vitaly Lipatov. - * AUTHORS: - Updated acknowledgements for above. - -2005-04-15 Jim Evins - - * data/templates/avery-us-templates.xml: - Added Avery 5388 and 5389 templates provided by Peter L. Berghold. - * data/templates/misc-iso-templates.xml: - Added Ryman standard CD/DVD template, provided by Dan Clark. - * AUTHORS: - Added acknowledgements for above. - -2005-04-10 Jim Evins - - * libglabels/xml-paper.c: (gl_xml_paper_parse_paper_node): - * libglabels/xml-template.c: (gl_xml_template_parse_template_node), - (xml_parse_label_rectangle_node), (xml_parse_label_round_node), - (xml_parse_label_cd_node), (xml_parse_alias_node): - * libglabels/xml.c: (gl_xml_get_prop_double), - (gl_xml_get_prop_boolean), (gl_xml_get_prop_int), - (gl_xml_get_prop_uint), (gl_xml_get_prop_length): - * src/xml-label-04.c: (xml04_parse_media_description), - (xml04_parse_text_props), (xml04_parse_barcode_props), - (xml04_parse_merge_properties): - * src/xml-label-191.c: (xml191_parse_object), - (xml191_parse_text_props), (xml191_parse_barcode_props), - (xml191_parse_merge_fields), (xml191_parse_pixdata), - (xml191_parse_sheet), (xml191_parse_label), (xml191_parse_markup), - (xml191_parse_alias): - * src/xml-label.c: (xml_parse_object_text), - (xml_parse_object_barcode), (xml_parse_merge_fields), - (xml_parse_pixdata), (xml_parse_toplevel_span): - Make sure to use xmlFree for anything obtained from libxml - in case libxml and glib use different memory management - space. - -2005-04-08 Jim Evins - - * src/util.h: - * src/util.c: (gl_util_combo_box_set_strings), (search_text_func), - (gl_util_combo_box_set_active_text): - Added utility functions to simplify working with GtkComboBox - widgets in GTK-2.6. - * src/ui-property-bar.h: - * src/ui-property-bar.c: (gl_ui_property_bar_construct), - (reset_to_default_properties), (update_text_properties), - (font_family_changed_cb): - Replaced deprecated GtkCombo with GtkComboBox. - - -2005-04-03 Jim Evins - - * src/Makefile.am: - * src/wdgt-image-select.h: - * src/wdgt-image-select.c: - Removed obsolete wdgt-image-select.[ch] files. - * libglabels/paper.c: (gl_paper_dup): - Fixed rename of parameter introduced during documentation - updates. - * data/glade/object-editor.glade: - * src/object-editor-image-page.c: - (gl_object_editor_prepare_image_page), (img_radio_toggled_cb), - (gl_object_editor_set_image), (gl_object_editor_get_image), - (update_preview_cb), (add_image_filters_to_chooser): - * src/object-editor-private.h: - Replaced deprecated GnomePixmapEntry with - GtkFileChooserButton. - -2005-04-02 Jim Evins - - * src/mygal/mygal-combo-box.c: (deactivate_arrow), - (mygal_combo_box_popup_hide_unconditional), - (mygal_combo_box_popup_hide), (mygal_combo_box_popup_display), - (mygal_combo_toggle_pressed), (mygal_combo_box_init), - (mygal_combo_popup_tear_off), (mygal_combo_set_tearoff_state), - (mygal_combo_tearoff_bg_copy), (mygal_combo_popup_reparent), - (cb_tearable_button_release), (mygal_combo_box_set_tearable): - Renamed all internal gtk_combo functions to mygal_combo - to prevent namespace confusion. - -2005-04-02 Jim Evins - - * src/mygal/color-palette.c: (color_palette_change_custom_color), - (cust_color_set), (color_palette_setup): - * src/mygal/color-palette.h: - Replaced deprecated GnomeColorPicker with GtkColorButton. - -2005-04-02 Jim Evins - - * docs/libglabels/libglabels-sections.txt: - * docs/libglabels/libglabels-undocumented.txt: - * docs/libglabels/tmpl/enums.sgml: - * docs/libglabels/tmpl/paper.sgml: - * docs/libglabels/tmpl/xml-paper.sgml: - * docs/libglabels/tmpl/xml-template.sgml: - * libglabels/enums.h: - * libglabels/paper.c: (gl_paper_dup): - * libglabels/paper.h: - * libglabels/xml-paper.c: - * libglabels/xml-template.c: - More documentation updates for libglabels. - -2005-03-23 Jim Evins - - * INSTALL: - Automatically updated. - * Makefile.am: - * autogen.sh: - * configure.in: - * docs/Makefile.am: - * docs/libglabels/Makefile.am: - * docs/libglabels/libglabels-docs.sgml: - * docs/libglabels/libglabels-sections.txt: - * docs/libglabels/libglabels-undocumented.txt: - * docs/libglabels/tmpl/enums.sgml: - * docs/libglabels/tmpl/libglabels-unused.sgml: - * docs/libglabels/tmpl/libglabels.sgml: - * docs/libglabels/tmpl/paper.sgml: - * docs/libglabels/tmpl/template.sgml: - * docs/libglabels/tmpl/xml-paper.sgml: - * docs/libglabels/tmpl/xml-template.sgml: - * docs/libglabels/tmpl/xml.sgml: - Added basic gtk-doc stuff to support documenting libglabels - API. - * libglabels/xml.c: - Updated function comments with gtk-doc markup. - * missing: - Removed. - -2005-03-22 Jim Evins - - Since the development version now requires gtk-2.6/gnome-2.10, I - have made a first pass at removing deprecations. - - * configure.in: - * libglabels/Makefile.am: - * src/Makefile.am: - Added configure option to turn on X_DISABLE_DEPRECATED flags. - Also removed all remnants of HAVE_FILECHOOSER. - * src/file.c: (gl_file_open_real): - Removed code for old GtkFileSelection. - * libglabels/libglabels-private.h: - * libglabels/paper.c: - * libglabels/template.c: - * libglabels/xml-paper.c: - * libglabels/xml-template.c: - * libglabels/xml.c: - * src/bc.c: - * src/file.c: - * src/glabels-batch.c: - * src/glabels.c: - * src/label.c: - * src/merge-init.c: - * src/merge-properties-dialog.c: - * src/merge.c: - * src/object-editor.c: - * src/prefs-dialog.c: - * src/prefs.c: - * src/print-dialog.c: - * src/print.c: - * src/stock.c: - * src/template-designer.c: - * src/ui-property-bar.c: - * src/ui-sidebar.c: - * src/view-barcode.c: - * src/view-box.c: - * src/view-ellipse.c: - * src/view-image.c: - * src/view-line.c: - * src/view-text.c: - * src/view.c: - * src/wdgt-image-select.c: - * src/wdgt-media-select.c: - * src/wdgt-print-copies.c: - * src/wdgt-print-merge.c: - * src/wdgt-rotate-label.c: - * src/window.c: - * src/xml-label-04.c: - * src/xml-label-191.c: - * src/xml-label.c: - Added '#include " where needed. - Removed any unused '#include "s. - -2005-03-22 Jim Evins - - * src/commands.c: (activate_url), (gl_cmd_help_about): - Replaced GnomeAbout with GtkAboutDialog. Therefore the - development version of glabels now depends on GTK 2.6 and - GNOME 2.10. - * configure.in: - Updated library dependencies. - -2005-02-28 Jim Evins - - * AUTHORS: - * data/templates/misc-iso-templates.xml: - Added 'Ednet 45021' template provided by Ali Akcaagac - . - -2005-02-14 Jim Evins - - * data/templates/avery-us-templates.xml: - Updated templates to use inches instead of points. - * src/print-dialog.c: (printer_page_new): - Changed packing style when adding printer selector widget. This fixes - debian Bug#295274. - -2005-02-13 Jim Evins - - * AUTHORS: - * po/es.po: - Updated spanish translations. (sergio rivadero) - -2005-02-05 Jim Evins - - Some cleanup to libglabels. - - * configure.in: - Updated version to 2.1.1cvs. Added generation of libglabels.pc. - * libglabels/libglabels.pc.in - Created. - * libglabels/enums.h - Created. Currently only contains glUnitsType which provides enumerations - for all possible units of distance. - * libglabels/Makefile.am: - Incorporated new files enums.h and libglabels.pc[.in]. - * libglabels/libglabels.h: - Include enums.h. - * libglabels/template.h: - * libglabels/template.c: (gl_template_layout_new): - Changed parameters nx and ny to gint from gdouble. - * libglabels/xml.h: - * libglabels/xml.c: (gl_xml_get_prop_length), - (gl_xml_set_prop_length), (gl_xml_set_default_units): - Added support for different output units. - * src/prefs-dialog.c: (update_locale_page_from_prefs), - (update_prefs_from_locale_page): - * src/prefs-model.c: (string_to_units), (units_to_string): - * src/prefs-model.h: - * src/prefs.c: (gl_prefs_get_units_per_point), - (gl_prefs_get_units_precision), (gl_prefs_get_units_step_size), - (gl_prefs_get_units_string): - * src/prefs.h: - * src/wdgt-media-select.c: (details_update), (get_label_size_desc): - Reconciled all length enumerations with the new enumerations provided - in libglabels/enums.h. - -2005-02-03 Jim Evins - - * po/cs.po: - Updated Czech translations. (David Makovský and Zbynek Mrkvick) - * po/it.po: - Updated Italian translations. (Daniele Medri) - * AUTHORS: - Updated credits to reflect above translations. - - -2005-01-22 Jim Evins - - * MESSAGE-OF-DOOM: - Added. - * Makefile.am: - Added MESSAGE-OF-DOOM to EXTRA_DIST. - * NEWS: - Final prep for 2.1.0. - * configure.in: - Set version to 2.1.0. Output MESSAGE-OF-DOOM. - * glabels.spec.in: - Added '--remove-original' flag to desktop-file-install, so that there is - only one menu entry. - -2005-01-20 Jim Evins - - * data/glade/object-editor.glade: - - Font family entry should not be editable. - - img_key_entry should have sensitivity=YES, so that it follows the - sensitivity of img_key_combo. - -2005-01-19 Jim Evins - - * AUTHORS: - Give credit to Frederic Ruaudel for the color merge patches. - -2005-01-18 Frederic Ruaudel - - Add support to merge color for all other color attribute (Feature - Requests item #1008635. If the data is invalid, the color used is transparent - (GL_COLOR_NONE). The format for color in merge data file are those accepted - by gdk_color_parse() these include name for a color from rgb.txt, such as - DarkSlateGray, or a hex specification such as #305050. File format has been - changed but backward compatibility is preserved for all format. For - box/ellipse/line, keep attribute "line_color" for static color or replace by - "line_color_field" for merge data. For text/barcode objects, keep attribute - "color" for static color or replace by "color_field" for merge data. In the - edit canvas window, merged color are represented by half-transparent black - line/area. - - * data/dtd/glabels-2.0.dtd: - Added line_color_field to line_attrs. Added color_field to - Object-barcode and Span. - * data/glade/object-editor.glade: - Modify the layout of the editor to add merge possibility to color options - * src/color.c: - Fix a copy/paste error in a comment - * src/color.h: - Add default color for merge color representation in the editor canvas. - * src/label-barcode.c: - * src/object-editor-bc-page.c: - * src/view-barcode.c: - Add merge color support for barcode color. - * src/label-box.c: - * src/view-box.c: - Add merge color support for box border color. - * src/label-ellipse.c: - * src/view-ellipse.c: - Add merge color support for ellipse border color. - * src/label-line.c: - * src/view-line.c: - Add merge color support for line color. - * src/label-object.c: - * src/label-object.h: - * src/object-editor.c: - * src/object-editor.h: - * src/ui-property-bar.c: - * src/view.c: - * src/view.h: - * src/xml-label-04.c: - * src/xml-label-191.c: - Add support for merging to other color attribute. - * src/label-text.c: - * src/object-editor-text-page.c: - * src/view-text.c: - Add merge color support for text color. - * src/object-editor-fill-page.c: - Change a blocked handler that didn't match the good widget. Fix the type - of some debug message. - * src/object-editor-line-page.c: - Add merging support to line color option. - * src/object-editor-private.h: - Add variables for new widget. - * src/print.c: - Modify the draw functions to get merge data if needed. - * src/window.c: - Change the default size of the window in order to see all widget in the - "text style tab" of the editor. - * src/xml-label.c: - Modify the parser to record/retreive the field value for objects that need - "color" attribute. For box/ellipse/line, keep attribute "line_color" for - static color or replace by "line_color_field" for merge data. For - text/barcode objects, keep attribute "color" for static color or replace - by "color_field" for merge data. - -2005-01-17 Jim Evins - - * src/view.c: (screen_changed_cb): - Don't do anything if we don't have a screen. - -2005-01-06 Jim Evins - - * src/view.c: (get_home_scale): - Fixed bad call to gtk_widget_has_screen() -- huh?. - -2005-01-06 Jim Evins - - * data/dtd/glabels-2.0.dtd: - Added fill_color_field to fill_attrs. Also added xmlns attribute to all - top-level elements. - -2005-01-06 Jim Evins - - * data/glade/object-editor.glade: - Set entries for fill and data field key dropdowns to NOT editable. - * src/view-box.c: (construct_properties_editor): - * src/view-ellipse.c: (construct_properties_editor): - Update object editor when label's merge property has changed. - * src/xml-label.c: (xml_parse_object_ellipse): - Completed the merge color support for the ellipse item. - -2005-01-06 Frederic Ruaudel - - Add support to merge color for object that have a "Fill color" attribute (Feature - Requests item #1008635. If the data is invalid, the color used is transparent - (GL_COLOR_NONE). The format for color in merge data file are those accepted - by gdk_color_parse() these include name for a color from rgb.txt, such as - DarkSlateGray, or a hex specification such as #305050. File format has been - changed but backward compatibility is preserved for all format. For box/ellipse, - keep attribute "fill_color" for static color or replace by "fill_color_field" - for merge data. - - * data/glade/object-editor.glade: - Modify "Fill" tab to add the merge key combo and convert the labels into - radio button. - * src/color.h: - * src/color.c: - Add "glColorNode" structure and associated functions to manage it. This - structure is equivalent for color than the "glTextNode". It holds the color - and the key field. - * src/label-object.h: - * src/label-object.c: - * src/label-box.c: - * src/label-ellipse.c: - * src/ui-property-bar.c: - * src/view.h: - * src/view.c: - * src/view-box.c: - * src/view-ellipse.c: - * src/xml-label-04.c: - * src/xml-label-191.c: - Change functions of objects that have a "fill color" attribute to use the - new "glColorNode" structure. Use barcode code as example. - * src/Makefile.am: - Add the color.[ch] file to glabels_batch binary that now need support for - "glColorNode". - * src/object-editor.h: - * src/object-editor.c: - * src/object-editor-fill-page.c: - Manage the new widget of the editor's "Fill" tab : key combo and radio button - to choose between static color or merge key. Use barcode code as example. - * src/object-editor-private.h: - Add new widget in the "_glObjectEditorPrivate" structure. - * src/print.c: - Modify the draw functions to get merge data if needed. - * src/xml-label.c: - Modify the parser to record/retreive the field value for objects that need - "Fill color" attribute. For box/ellipse, put attribute "fill_color" for static - color or "fill_color_field" for merge data. - -2005-01-04 Jim Evins - - * AUTHORS: - * data/templates/avery-iso-templates.xml: - * data/templates/misc-iso-templates.xml: - * data/templates/misc-us-templates.xml: - Added templates, submitted by Larry Harriman, Juan Carlos Valero, and - Nick Hill. - -2004-11-26 Jim Evins - - * AUTHORS: - * po/fr.po: - Updated french translations provided by Florent Morel . - * src/view-barcode.c: - * src/view-box.c: - * src/view-ellipse.c: - * src/view-image.c: - * src/view-line.c: - * src/view-text.c: - Added '#include ' -- HAVE_*GETTEXT macros were not defined and - thus _() strings were not being translated. - -2004-11-14 Jim Evins - - * src/debug.h: - * src/debug.c: (gl_debug_init), (gl_debug): - Borrowed from gedit: use environmental variables to select debug - sections. - * src/splash.c: - Removed unused include of debug.h. - * src/glabels.c: (main): - Added call to gl_debug_init(), and removed debug clutter from command line - options. - * src/glabels-batch.c: (main): - Added call to gl_debug_init(). - -2004-11-13 Jim Evins - - Drawing and property toolbars were being initialized with the "icons and text" - look in Fedora Core 3. Even though none of the buttons had any text attached to - them, the buttons were being sized as if they were. This led to less real estate - for the property editor, leading to Bug #1064630. The - - * data/ui/glabels-ui.xml: - Added explicit "look" property to both drawing and property toolbars. - * src/prefs-model.c: (gl_prefs_model_save_settings), - (gl_prefs_model_load_settings): - * src/prefs-model.h: - Removed drawing_toolbar_button_style configuration parameter. - * src/ui.c: (view_menu_item_toggled_cb), - (set_app_drawing_toolbar_style): - Do not attempt to adjust look property of the drawing toolbar. - -2004-10-28 Jim Evins - - * data/pixmaps/glabels-about-logo.png: - Updated about logo. - -2004-10-28 Jim Evins - - * data/man/glabels.1: - * src/glabels-batch.c: (main): - * src/print.h: - * src/print.c: (gl_print_batch): - - Added option to glabels-batch to select the first label to begin - printing on. - -2004-09-26 Jim Evins - - * data/desktop/glabels.desktop.in: - Point to app icon, "glabels.png" - * data/mime/glabels.keys.in: - Point at mime icon, "glabels-application-x-glabels.png" - * data/pixmaps/Makefile.am: - Added glabels_app_icondir. Renamed icons. - * data/pixmaps/glabels.png: - New cleaned up app icon. Deleted glabels-icon.png. - * data/pixmaps/glabels-application-x-glabels.png: - New mime icon. - * data/pixmaps/glabels-splash.png: - Renamed glabels-logo to glabels-splash to be more correct about role. - * src/glabels.c: - * src/template-designer.c: - Point at app icon, "glabels.png" - * src/splash.c: - Point at renamed splash image, "glabels-splash.png" - -2004-08-22 Jim Evins - - * AUTHORS: - * src/glabels-batch.c: (main): - Applied patch with minor mods to allow selecting merge source and - crop-marks on glabels-batch's command line. Original patch provided by - José Dapena Paz . - -2004-08-15 Jim Evins - - * data/desktop/glabels.desktop.in: - - Added encoding line - - Removed period from comment - - Fixed Terminal line, changed "0" to "false" - - Added semicolen to Categories line - * po/ja.po: - - Made sure desktop.in comment string above still translated properly - -2004-08-14 Jim Evins - - * libglabels/xml-paper.c: (gl_xml_paper_parse_paper_node): - * libglabels/xml-template.c: (gl_xml_template_parse_template_node): - * src/xml-label-191.c: (xml191_parse_sheet): - Fixed improper freeing of gettext strings. Merged from 2.0.1. - * configure.in: - Reconciled libglabels versioning with 2.0.1. - - -2004-08-14 Jim Evins - - * configure.in: - Updated version to 2.1cvs. - -2004-08-14 Jim Evins - - * po/ja.po: - Updated 2.0.x translation by Takeshi AIHANA . - -2004-08-14 Jim Evins - - Fixes for Bug #1008181. - - * src/bc.c: (gl_barcode_default_digits): - Make a format of zero digits, harmless. - * src/xml-label.c: (xml_parse_object_barcode): - Set default value of the format property of barcode objects to 10, not - zero. This will prevent crashes when reading pre 2.0.x files. - -2004-08-09 Jim Evins - - * NEWS: - * TODO: - * help/C/glabels-C.omf: - * help/C/glabels.xml: - Brought documentation up-to-date for 2.0.0 release. - -2004-08-09 Jim Evins - - These are hopefully the final preparations for 2.0.0. - - * data/mime/Makefile.am: - Include glabels.xml in EXTRA_DIST. - * configure.in: - - Updated comment style. - - Added LIBGLABELS_VERSION_INFO macro, updated Current. - - Added package and version info to configuration printout - - Update version to 2.0.0 - * libglabels/Makefile.am: - Use the new LIBGLABELS_VERSION_INFO macro. - -2004-08-09 Jim Evins - - * configure.in: - * glabels.spec.in: - Cleanup of required library macros. - -2004-08-08 Jim Evins - - * glabels.spec.in: - - Updated URL - - More specific of what to install in /usr/bin and /usr/lib - - Remove built mime registration files from staging directory - -2004-08-08 Jim Evins - - * data/mime/Makefile.am: - Fixed typo: key_files should have been keys_files. - -2004-08-08 Jim Evins - - Reorganization of runtime data files. Also added registration of mimetype with - new freedesktop.org mime database if available. - - * data/* - Moved files to appropriate subdirectories, creating local Makefile.am - in each subdirectory. - - Moved paper-sizes.xml and *-templates.xml to templates subdirectory. - These are now installed at $datadir/glabels/templates. - - Moved glabels.1 to man subdirectory. - - Moved glabels-2.0.dtd to dtd subdirectory. - - Moved glabels.desktop.in to desktop subdirectory. - - Moved glabels.keys.in and glabels.mime to mime subdirectory. - * data/pixmaps/* - Moved "./pixmaps" to "./data/pixmaps" - * data/ui/* - Moved src/glabels-ui.xml to data/ui directory. Created Makefile.am. - * data/glade/* - Moved libglade files from src to data/glade. Created Makefile.am. - * Makefile.am: - Removed pixmaps from SUBDIRS. - * configure.in: - - Removed pixmaps from makefiles. - - Added makefiles for new subdirs of data. - - Added tests for freedesktop.org mime database. - * glabels.spec.in: - - Added tests for freedesktop.org mime database for post install and - post un-install actions. - * libglabels/Makefile.am: - Moved system template files to $(datadir)/glabels/templates. - * libglabels/libglabels-private.h: - Moved system template files to $(datadir)/glabels/templates. - * po/POTFILES.in: - - Accounted for movement of ui and libglade files. - - Added missing .in files. - - Reorganized by directory. - * src/Makefile.am: - Accounted for movement of ui and libglade files. - * data/mime/glabels.xml.in: - New file for registering with freedesktop.org mime database. - -2004-08-07 Jim Evins - - * src/recent-files/*: - Re-synced to latest libegg/recent-files. - -2004-08-07 Jim Evins - - * Makefile.am: - * configure.in: - * help/* - Renamed "./doc" directory to "./help" which contains user documentation, - to be more consistent with other GNOME applications. - - -2004-07-26 Jim Evins - - * src/merge-properties-dialog.c: (gl_merge_properties_dialog_init): - Corrected button order of merge properties dialog. - -2004-07-18 Jim Evins - - * data/glabels-2.0.dtd: - * src/bc.c: (gl_barcode_default_digits), (gl_barcode_can_freeform), - (gl_barcode_get_prefered_n): - * src/bc.h: - * src/label-barcode.c: (copy), (gl_label_barcode_set_props), - (gl_label_barcode_get_props), (get_size): - * src/label-barcode.h: - * src/object-editor-bc-page.c: (gl_object_editor_prepare_bc_page), - (style_changed_cb), (gl_object_editor_set_bc_style), - (gl_object_editor_get_bc_style): - * src/object-editor-data-page.c: (data_radio_toggled_cb), - (gl_object_editor_set_data), (gl_object_editor_get_data): - * src/object-editor-private.h: - * src/object-editor.c: (gl_object_editor_set_key_names): - * src/object-editor.glade: - * src/object-editor.h: - * src/print.c: (draw_barcode_object): - * src/view-barcode.c: (update_object_from_editor_cb), - (update_editor_from_object_cb), - (gl_view_barcode_create_event_handler), (draw_barcode): - * src/xml-label-04.c: (xml04_parse_barcode_props): - * src/xml-label-191.c: (xml191_parse_barcode_props): - * src/xml-label.c: (xml_parse_object_barcode), - (xml_create_object_barcode): - Added "format" attribute to barcode objects. This attribute is used - to properly format freeform barcodes barcodes prior to merge data is - applied, so that barcodes can be accurately layed out. This addresses - remaining issues of feature request #824787. Also added an example of - the format in the object editor. - -2004-07-12 Jim Evins - - Various code cleanups. - - * src/label-barcode.c: - Removed unneeded include of gnome-glyphlist.h. - - * src/label-text.c: (get_size): - Fixed memory leak: unref glyphlists when done with them. - - * src/object-editor-bc-page.c: (gl_object_editor_prepare_bc_page): - * src/object-editor-data-page.c: - (gl_object_editor_prepare_data_page): - * src/object-editor-image-page.c: - (gl_object_editor_prepare_image_page): - * src/object-editor-line-page.c: - (gl_object_editor_prepare_line_page): - * src/object-editor-lsize-page.c: - (gl_object_editor_prepare_lsize_page): - * src/object-editor-position-page.c: - (gl_object_editor_prepare_position_page): - * src/object-editor-size-page.c: - (gl_object_editor_prepare_size_page): - * src/object-editor-text-page.c: - (gl_object_editor_prepare_text_page): - Removed unneeded size groups, originally intended to keep widgets aligned. - Now use tables to lay these out in object-editor.glade. - - * src/print.c: (draw_text_object): - Fixed memory leak: unref glyphlists when done with them. - - * src/view-barcode.c: (draw_barcode): - Fixed memory leak: unref glyphlists when done with them. - - * src/view-text.c: (update_object_from_editor_cb), (draw_hacktext): - - Removed unneeded cast of gl_object_editor_get_text_line_spacing()s - return value. - - Fixed memory leak: unref glyphlists when done with them. - -2004-07-11 Jim Evins - - * data/glabels-2.0.dtd: - * src/label-text.c: (gl_label_text_instance_init), (copy), - (gl_label_text_set_auto_shrink), (gl_label_text_get_auto_shrink): - * src/label-text.h: - * src/object-editor-private.h: - * src/object-editor-text-page.c: - (gl_object_editor_prepare_text_page), - (gl_object_editor_set_text_auto_shrink), - (gl_object_editor_get_text_auto_shrink): - * src/object-editor.c: (gl_object_editor_set_key_names): - * src/object-editor.glade: - * src/object-editor.h: - * src/print.c: (draw_text_object): - * src/view-text.c: (update_object_from_editor_cb), - (update_editor_from_object_cb): - * src/xml-label.c: (xml_parse_object_text), - (xml_create_object_text): - Added option to allow document merge to auto shrink text size to fit - within the text box. The code in print.c that actually shrinks the - text is loosely based on a patch submitted by Mark Harrison - . This addresses feature request - #661421. - -2004-07-11 Jim Evins - - * data/glabels-2.0.dtd: - * libglabels/template.c: (gl_template_rect_label_type_new), - (gl_template_round_label_type_new), - (gl_template_cd_label_type_new), (gl_template_label_type_dup), - (template_full_page): - * libglabels/template.h: - * libglabels/xml-template.c: (xml_parse_label_rectangle_node), - (xml_create_label_node): - * pixmaps/ex-rect-size.png: - * src/print.c: (clip_to_outline), (clip_punchouts): - * src/template-designer.c: (construct_rect_size_page), - (rect_size_page_prepare_cb), (layout_page_prepare_cb), - (build_template): - * src/template-designer.glade: - * src/xml-label-191.c: (xml191_parse_label): - Modifications to allow separate horizontal (x_waste) and vertical (y_waste) - properties for rectangular labels. Templates remain backwards compatible, - but this breaks the libglabels API (I don't know of anyone outside of - glabels using libglabels at this time -- what can I say, the program is - is still "unstable"). This addresses the suggestion in Feature Request - #976313. - -2004-07-05 Jim Evins - * src/print.c: (print_crop_marks), (draw_outline): - Changed crop marks and label outlines to black, instead of 25% gray. - This addresses debian Bug #257460. - -2004-07-05 Jim Evins - - * src/object-editor-fill-page.c: (gl_object_editor_set_fill_color): - * src/object-editor-line-page.c: (gl_object_editor_set_line_color): - Preserve "is_default" of fill and line color_combos when creating from - existing objects. - -2004-07-02 Jim Evins - - * data/glabels.1: - Created man page. Based on page submitted by Matthew J. Lockner, however - it has been severely edited. - - * data/avery-other-templates.xml - * data/misc-other-templates.xml: - Started new files for predefined templates with non-standard sheet sizes. - These have been initially populated with the Avery 06141 and - OfficeMax #86112, both provided by Matthew J. Lockner. - - * data/Makefile.am: - Install above manpage and template files. - - * glabels.spec.in: - Make sure we install man pages. - - * src/glabels-batch.c: - Changed short form of help option to '-?' to be consistent with glabels. - - * AUTHORS: - Added acknowledgement for above labels. - -2004-07-02 Jim Evins - - * src/glabels.c: (main), (save_session_cb): - - Now include libbonoboui.h, recent.h, and file.h to provide missing - prototypes. - - save_session_cb() now returns gboolean. - - Minor formatting changes. - - * src/window.h: - * src/window.c: - - Now include file.h to provide missing prototype. - - gl_window_get_type() now returns GType, not guint. I believe this may - ultimately be cause of the segfault reported in Bug #982287, since - GType is actually a gulong, which may not be compatible on other - architectures (64bit) -- I cannot personally test this at this time. - I was sloppy in several other xxx_get_type() functions which also - returned guint -- see next group of files: - - * src/window.c: (gl_window_get_type): - * src/canvas-hacktext.c: (gl_canvas_hacktext_get_type): - * src/canvas-hacktext.h: - * src/hig.c: (gl_hig_alert_get_type), (gl_hig_dialog_get_type), - (gl_hig_category_get_type), (gl_hig_vbox_get_type), - (gl_hig_hbox_get_type): - * src/hig.h: - * src/label-barcode.c: (gl_label_barcode_get_type): - * src/label-barcode.h: - * src/label-box.c: (gl_label_box_get_type): - * src/label-box.h: - * src/label-ellipse.c: (gl_label_ellipse_get_type): - * src/label-ellipse.h: - * src/label-image.c: (gl_label_image_get_type): - * src/label-image.h: - * src/label-line.c: (gl_label_line_get_type): - * src/label-line.h: - * src/label-object.c: (gl_label_object_get_type): - * src/label-object.h: - * src/label-text.c: (gl_label_text_get_type): - * src/label-text.h: - * src/label.c: (gl_label_get_type): - * src/label.h: - * src/merge-properties-dialog.c: - (gl_merge_properties_dialog_get_type): - * src/merge-properties-dialog.h: - * src/merge-text.c: (gl_merge_text_get_type): - * src/merge-text.h: - * src/merge.c: (gl_merge_get_type): - * src/merge.h: - * src/object-editor.c: (gl_object_editor_get_type): - * src/prefs-dialog.c: (gl_prefs_dialog_get_type): - * src/prefs-dialog.h: - * src/prefs-model.c: (gl_prefs_model_get_type): - * src/prefs-model.h: - * src/print-dialog.c: (gl_print_dialog_get_type): - * src/print-dialog.h: - * src/template-designer.c: (gl_template_designer_get_type): - * src/template-designer.h: - * src/ui-property-bar.c: (gl_ui_property_bar_get_type): - * src/ui-property-bar.h: - * src/ui-sidebar.c: (gl_ui_sidebar_get_type): - * src/ui-sidebar.h: - * src/view-barcode.c: (gl_view_barcode_get_type): - * src/view-barcode.h: - * src/view-box.c: (gl_view_box_get_type): - * src/view-box.h: - * src/view-ellipse.c: (gl_view_ellipse_get_type): - * src/view-ellipse.h: - * src/view-highlight.c: (gl_view_highlight_get_type): - * src/view-highlight.h: - * src/view-image.c: (gl_view_image_get_type): - * src/view-image.h: - * src/view-line.c: (gl_view_line_get_type): - * src/view-line.h: - * src/view-object.c: (gl_view_object_get_type): - * src/view-object.h: - * src/view-text.c: (gl_view_text_get_type): - * src/view-text.h: - * src/view.c: (gl_view_get_type): - * src/view.h: - * src/wdgt-chain-button.c: (gl_wdgt_chain_button_get_type): - * src/wdgt-image-select.c: (gl_wdgt_image_select_get_type): - * src/wdgt-image-select.h: - * src/wdgt-media-select.c: (gl_wdgt_media_select_get_type): - * src/wdgt-media-select.h: - * src/wdgt-mini-preview.c: (gl_wdgt_mini_preview_get_type): - * src/wdgt-mini-preview.h: - * src/wdgt-print-copies.c: (gl_wdgt_print_copies_get_type): - * src/wdgt-print-copies.h: - * src/wdgt-print-merge.c: (gl_wdgt_print_merge_get_type): - * src/wdgt-print-merge.h: - * src/wdgt-rotate-label.c: (gl_wdgt_rotate_label_get_type): - * src/wdgt-rotate-label.h: - - Made sure all xxx_get_type functions returned GType, not guint. This - was the case in hig.[ch], window.[ch], ui-property-bar.[ch], - ui-sidebar.[ch], view.[ch], wdgt-image-select.[ch], - wdgt-media-select.[ch], wdgt-mini-preview.[ch], wdgt-print-copies.[ch], - wdt-print-merge.[ch], and wdgt-rotate-label.[ch]. See separate - window.[ch] details above for more info. - - Reconciled various coding style differences in all xxx_get_type() - functions: - * All prototypes include G_GNUC_CONST. - * All prototypes specify the return value as GType, not GtkType - or guint. - * Info structures are all declared as "static const." - * Generalized the names of type and info variables. - * Miscelaneous formatting. - -2004-06-08 Jim Evins - - * src/label.c: - * src/label.h: - * src/xml-label.c: - * AUTHORS: - Don't touch compression of original file -- still defaults to 9 for - new files. Original patch provided by Javier Donaire Segarra - (#912252 in patch tracker). - -2004-05-05 Jim Evins - - * data/glabels-2.0.dtd: - Broke DTD previously when adding new barcode types that contain a - plus sign (+). Simply changed the BC_STYLE_TYPE entity to "CDATA" - to avoid the problem. - * data/avery-iso-templates.xml: - * data/zweckform-iso-templates.xml: - * AUTHORS: - Added templates for Avery 7165, Zweckform 3688, 4732, and 6021. Templates - provided by Frank Altpeter. - * libglabels/xml-template.c: (xml_create_label_node): - Reordered markup and layout sub-nodes so that resulting templates will - validate against DTD. - -2004-03-13 Jim Evins - - * src/object-editor-size-page.c: (gl_object_editor_prepare_size_page): - Changed spin callback signals from "value-changed" back to "changed." - This was accidentally introduced in a previous revision, and can cause - size changes just by selecting the size tab. - -2004-03-06 Jim Evins - - * src/view.c: (draw_grid_layer): - For round labels (round and cd) adjust grid so that it lines up with - center of label. Also, no longer draw box around label in the grid layer, - it is hidden by he fg layer anyway. Feature suggested by - nemolivier@free.fr. Although the grid is aligned with the center of the - label, the coordinate system is still relative to the upper left corner - of the rectangle containing the label. - -2004-02-25 Jim Evins - - * configure.in: - Changed version to 2.0pre1cvs - - * libglabels/xml-template.c: (gl_xml_template_parse_templates_doc): - Removed extra xmlFreeDoc() calls upon error. Also print the doc->URL - instead of doc->name fields when errors encountered. - -2004-02-21 Jim Evins - - * data/avery-iso-templates.xml: - Added aliases for Avery 8651. Patch provided by Wayne Schuller. - - * glabels.spec.in: - Added libglabels library and include file to installed files. - - * configure.in: - Final prep for 1.93.3. - -2004-02-20 Jim Evins - - * src/glabels-batch.c: (main): - Changed key for setting output filename to GNOME_PRINT_KEY_OUTPUT_FILENAME - as suggested by Javier Donaire Segarra. This addresses bug #901063. - -2004-02-16 Jim Evins - - * configure.in: - If gtk+ >= 2.3.2 then define HAVE_FILE_CHOOSER. - - * src/Makefile.am: - Added HAVE_FILE_CHOOSER to INCLUDES. - - * src/file.c: (gl_file_open), (open_response), (gl_file_open_real), - (gl_file_save_as), (save_as_response): - Ported to use GtkFileChooserDialog if HAVE_FILE_CHOOSER is defined. - -2004-02-16 Jim Evins - - * src/xml-label-04.c: (xml04_parse_image_props): - * src/xml-label-191.c: (xml191_parse_image_props): - * src/xml-label.c: (xml_parse_object_image): - Delay setting image size until after image has been applied to new - object. - -2004-02-15 Jim Evins - - * src/label-barcode.c: (gl_label_barcode_set_data), - (gl_label_barcode_set_props): - Don't emit "changed" signal, if no change actually made for these - methods. Reduces number of unnecessary redraws of barcodes. - - * src/label-object.h: - * src/label-object.c: (gl_label_object_set_position), - (gl_label_object_set_position_relative), (set_size), - (gl_label_object_set_size), - (gl_label_object_set_size_honor_aspect): - Don't emit "changed" signal, if no change actually made for these - methods. - -2004-02-15 Jim Evins - - * data/glabels-2.0.dtd: - Added specific subtypes for various barcode types. - - * src/bc.h: - * src/bc.c: (id_to_index), (name_to_index), (gl_barcode_new), - (gl_barcode_get_styles_list), (gl_barcode_default_digits), - (gl_barcode_can_text), (gl_barcode_text_optional), - (gl_barcode_can_csum), (gl_barcode_csum_optional), - (gl_barcode_id_to_name), (gl_barcode_name_to_id): - Changed API to use a string id, rather than a fixed enumeration. Id and - name are separate strings. Added entries to backend table for specific - subtypes for various barcode types. - - * src/bc-postnet.h: - * src/bc-postnet.c: (gl_barcode_postnet_new), (postnet_code), - (is_length_valid): - Modified to conform to above API. Now more stringent with data length - for various subtypes. - - * src/bc-gnubarcode.h: - * src/bc-gnubarcode.c: (gl_barcode_gnubarcode_new), - (is_length_valid), (is_length1_valid), (is_length2_valid): - Modified to conform to above API. Now more stringent with data length - for various subtypes. - - * src/label-barcode.h: - * src/label-barcode.c: (copy), (gl_label_barcode_set_props), - (gl_label_barcode_get_props), (get_size): - Modified to use above API for storing barcode type. - - * src/object-editor.h: - * src/object-editor-bc-page.c: (style_changed_cb), - (gl_object_editor_set_bc_style), (gl_object_editor_get_bc_style): - Modified to use above API for storing barcode type. - - * src/object-editor-size-page.c: - (gl_object_editor_prepare_size_page), (aspect_toggle_cb), - (w_spin_cb), (h_spin_cb), (size_reset_cb): - Added debug markers. - - * src/object-editor.glade: - Made barcode style combo's text entry non-editable. - - * src/print.c: (draw_barcode_object): - Modified to use above API for barcode type. - - * src/view-barcode.c: (update_object_from_editor_cb), - (update_editor_from_object_cb), - (gl_view_barcode_create_event_handler), (draw_barcode): - Modified to use above API for barcode type. - - * src/xml-label-04.c: (xml04_parse_barcode_props): - * src/xml-label-191.c: (xml191_parse_barcode_props): - * src/xml-label.c: (xml_parse_object_barcode), - (xml_create_object_barcode): - Modified to use above API for barcode type. - -2004-02-07 Jim Evins - - * src/stock-pixmaps/Makefile.am: - * src/stock-pixmaps/stock_hchain_24.png: - * src/stock-pixmaps/stock_hchain_broken_24.png: - * src/stock-pixmaps/stock_vchain_24.png: - * src/stock-pixmaps/stock_vchain_broken_24.png: - Added chain pixmaps borrowed from the gimp's default theme. - - * src/stock.h: - * src/stock.c: (gl_stock_init), (add_button_icon): - Added above pixmaps to stock icon sets. Created add_button_icon() to - add these pixmaps sized as GTK_ICON_SIZE_BUTTON. - - * src/wdgt-chain-button.h - * src/wdgt-chain-button.c - * src/Makefile.am: - * po/POTFILES.in: - Added this Modified version of gimpchainbutton widget, borrowed from - the gimp. - - * AUTHORS: - Added acknowledgements of the above borrowing from the gimp. - - * src/object-editor-size-page.c: (aspect_toggle_cb), (w_spin_cb), - (h_spin_cb): - * src/object-editor.c: (gl_object_editor_construct_chain_button): - * src/object-editor.glade: - Replaced the keep aspect ratio check box with the above chain-button - widget. - - * src/text-node.c: (gl_text_node_equal): - * src/text-node.h: - Added function gl_text_node_equal() to compare text_nodes. - - * src/label-image.c: (gl_label_image_set_filename): - Replaced incomplete text_node comparison code with invocation of - gl_text_node_equal. This fixed the problem of not being able to - resize an image using the object_editor if the aspect ratio is not - locked. - -2004-02-04 Jim Evins - - * src/object-editor-image-page.c: - (gl_object_editor_prepare_image_page): - Track "changed" signal of pixmap entry's GtkEntry rather than its - "activate" signal -- this catches all changes to the entry rather than - just changes resulting from a browse, so one can easily pull previous - entries from the history. (This change is marked below on 2004-02-03, - but somehow never got checked in.) - - * src/view-highlight.c: (sl_resize_event_handler), - (sr_resize_event_handler), (st_resize_event_handler), - (sb_resize_event_handler): - Side resize handles will now confirm the actual resize that the object - accepted before adjusting position parameters. Previously some interesting - things happened when resizing a barcode to its minimum size. - -2004-02-03 Jim Evins - - * src/object-editor-image-page.c: - (gl_object_editor_prepare_image_page): - Track "changed" signal of pixmap entry's GtkEntry rather than its - "activate" signal -- this catches all changes to the entry rather than - just changes resulting from a browse, so one can easily pull previous - entries from the history. - - * src/view-highlight.c: (tl_resize_event_handler), - (tr_resize_event_handler), (bl_resize_event_handler), - (br_resize_event_handler): - Allow control key to be dropped while dragging a corner resize handle - without losing the aspect ratio lock. - -2004-02-02 Jim Evins - - * src/label-image.c: (gl_label_image_set_filename): - When setting a new filename adjust size such that the aspect ratio of - the image is preserved using the current size as a bounding box. - - * src/view-image.c: (update_object_from_editor_cb): - When updating object from editor, feed back possible size changes to - editor as a result of a possible change in image. - - * src/object-editor-size-page.c: (size_reset_cb): - Fixed typo when blocking spin handlers. If the base size is larger than - the max size, treat max size as a bounding box while keeping aspect - ratio. - - -2004-02-02 Jim Evins - - * src/label-object.h: - * src/label-object.c: (gl_label_object_set_size), - (gl_label_object_set_size_honor_aspect): - Added gl_label_object_set_size_honor_aspect() which will maintain the - current aspect ratio by modifying the supplied w or h apropriately. - - * src/view-highlight.c: (tl_resize_event_handler), - (tr_resize_event_handler), (bl_resize_event_handler), - (br_resize_event_handler): - Corner handles will now maintain the current aspect ratio if the - control key is pressed while resizing. This addresses feature - request #816603. - - -2004-01-31 Jim Evins - - * AUTHORS: - * data/avery-us-templates.xml: - Added entries for "LSK-3," "LSK-5," and "LSK-8." Submitted by JBadger. - - * libglabels/template.c: (read_template_files_from_dir): - Corrected problem with testing for extensions. - - * src/object-editor.glade: - Corrected grouping of radio buttons in barcode data page. - - * src/print.c: (draw_barcode_object): - * src/view-barcode.c: (draw_barcode): - Corrected problem with calculation of y_offset for locating characters. - -2004-01-24 Jim Evins - - * AUTHORS: - * data/avery-us-templates.xml: - Added Avery 5824, submitted by Fred Bacon. - -2004-01-20 Jim Evins - - Catching up on a couple of backlogged user template submissions. - - * data/avery-iso-templates.xml: - Added "DECAdry OLW-4731" and "DECAdry DLW-1731" aliases for Avery 7160. - Suggested by Linas Jakucionis. - - * data/zweckform-iso-templates.xml: - Added Zweckform 4760, submitted by Thomas Vill. - - * AUTHORS: - Updated to reflect above submissions. - -2004-01-06 Jim Evins - - Split-out template.[ch], paper.[ch], xml-template.[ch], xml-paper.[ch], and - xml.[ch] into a separate library called libglabels, to facilitate third - party use of glabels template files. This was suggested by Wayne Schuller. - Once split-out, some modifications to the structures and functions to - make a cleaner more useful API, hopefully. Rather extensive changes have - propogated to other modules. - - * src/paper.h: - * src/paper.c: - * src/template.h: - * src/template.c: - * src/xml-paper.h: - * src/xml-paper.c: - * src/xml-template.h: - * src/xml-template.c: - * src/xml.h: - * src/xml.c: - These files have been moved to libglabels/. API cleanup performed. - - * libglabels/libglabels.h: - * libglabels/libglabels-private.h: - * libglabels/Makefile.am: - These files have been added to finish out libglabels. - - * Makefile.am: - * configure.in: - * glabels.spec.in: - * po/POTFILES.in: - * src/Makefile.am: - Modified to reflect new sets of files in src/ and libglabels/. - - * COPYING.LIBGLABELS: - * COPYING-DOCS: - Added copy of the LGPL for libglabels, and a copy the GFDL for - documentation. - - * src/glabels-batch.c: - * src/glabels.c: - * src/label.c: (gl_label_finalize), (gl_label_set_template), - (gl_label_get_size): - * src/label.h: - * src/prefs-model.c: (gl_prefs_model_load_settings): - * src/print-dialog.c: - * src/print.c: (gl_print_simple), (gl_print_merge_collated), - (gl_print_merge_uncollated), (gl_print_batch), (print_info_free), - (print_crop_marks), (print_label), (draw_outline), - (clip_to_outline), (clip_punchouts): - * src/template-designer.c: (construct_pg_size_page), - (pg_size_page_changed_cb), (layout_page_changed_cb), - (print_test_cb), (build_template): - * src/util.c: (gl_util_fraction): - * src/util.h: - * src/view.c: (draw_bg_fg_layers), (draw_bg_fg_rect), - (draw_bg_fg_rounded_rect), (draw_bg_fg_round), (draw_bg_fg_cd), - (draw_bg_fg_cd_bc), (draw_markup_layer), (draw_markup_margin), - (draw_markup_margin_rect), (draw_markup_margin_rounded_rect), - (draw_markup_margin_round), (draw_markup_margin_cd), - (draw_markup_margin_cd_bc), (draw_markup_line), - (draw_markup_circle), (gl_view_copy): - * src/wdgt-media-select.c: (gl_wdgt_media_select_construct), - (page_size_entry_changed_cb), (details_update), (get_layout_desc), - (get_label_size_desc): - * src/wdgt-mini-preview.c: - (gl_wdgt_mini_preview_set_label_by_name), (mini_outline_list_new), - (cdbc_item): - * src/wdgt-print-copies.c: (gl_wdgt_print_copies_construct): - * src/wdgt-print-merge.c: (gl_wdgt_print_merge_construct): - * src/wdgt-rotate-label.c: (mini_preview_canvas_update), - (gl_wdgt_rotate_label_set_template_name), (cdbc_item): - * src/wdgt-rotate-label.h: - * src/xml-label-04.c: (xml04_parse_media_description): - * src/xml-label-191.c: (gl_xml_label_191_parse), - (xml191_parse_sheet), (xml191_parse_label), (xml191_parse_layout), - (xml191_parse_markup), (xml191_parse_alias): - * src/xml-label.c: (xml_doc_to_label), (xml_parse_label), - (xml_label_to_doc): - Various changes to accomodate new libglabels API. - -2004-01-03 Jim Evins - - * configure.in: - Release 1.93.2. - -2004-01-03 Jim Evins - - * AUTHORS: - Added acknowledgement of contributions by Wayne Schuller. - - * src/commands.c: (gl_cmd_file_print): - Create extra reference to print dialog, so that it can be properly re-used. - - * src/mygal/mygal-combo-box.h: - * src/mygal/mygal-combo-box.c: - (mygal_combo_box_popup_hide_unconditional), - (mygal_combo_box_popup_display), (mygal_combo_box_set_display), - (gtk_combo_set_tearoff_state), (mygal_combo_box_construct), - (mygal_combo_box_set_arrow_relief), (mygal_combo_box_set_title), - (mygal_combo_box_set_tearable): - Changed all occurances of GTK_IS_COMBO_BOX to MYGAL_IS_COMBO_BOX, to - complete the rename of this widget to prevent namespace collisions - with Gtk+-2.3. - - * src/prefs-dialog.glade: - Fixed alignment of Fill/Color widgets. - -2004-01-03 Jim Evins - - * data/avery-iso-templates.xml: - Added user submitted templates. - Avery 8435A & 8435B, submitted by Ludger Solbach. - - * doc/C/glabels.xml: - Added minimal documentation, noting the new template designer. - -2004-01-03 Jim Evins - - * pixmaps/ex-rect-size.png: - * pixmaps/ex-round-size.png: - * pixmaps/ex-cd-size.png: - * pixmaps/Makefile.am: - Added ex-rect-size.png, ex-round-size.png, and ex-cd-size.png image - files to be used as illustrations/examples in the template-designer. - - * src/template-designer.c: (construct_rect_size_page), - (construct_round_size_page), (construct_cd_size_page), - (construct_nlayouts_page), (rect_size_page_prepare_cb), - (round_size_page_prepare_cb), (cd_size_page_prepare_cb), - (layout_page_prepare_cb), (build_template): - * src/template-designer.glade: - Added illustrations for rectangle, round, and cd label size pages. - Added margin spinboxes to these pages, and now add a margin markup - to the constructed template. Added realistic default values for - some of the size spinboxes. Cleaned up the code for setting spinbox - ranges on the layouts page. - -2004-01-02 Jim Evins - - * src/object-editor-size-page.c: (h_spin_cb): - Fixed cut-n-paste error in h_spin_cb that loaded h from - the wrong spinbutton. - - * src/object-editor.h: - * src/object-editor.c: (gl_object_editor_class_init), - (gl_object_editor_changed_cb), (gl_object_editor_size_changed_cb): - * src/object-editor-private.h: - * src/object-editor-size-page.c: (w_spin_cb), (h_spin_cb), - (size_reset_cb): - Added "size_changed" signal. - - * src/view-text.c: (construct_properties_editor), - (update_object_from_editor_cb), - (update_object_from_editor_size_cb): - Track size changes from object editor separately from other - properties. This is so the default size (0,0) of a text - object is not modified unintentionally. - -2003-12-30 Wayne Schuller - - Added feature: line spacing - allows you to comfortably space a text box to - fit a label perfectly. - - * data/glabels-2.0.dtd: - * src/label-object.c: (gl_label_object_set_text_line_spacing), - (gl_label_object_get_text_alignment), - (gl_label_object_get_text_line_spacing): - * src/label-object.h: - * src/label-text.c: (gl_label_text_class_init), - (gl_label_text_instance_init), (copy), (get_size), - (set_text_line_spacing), (get_text_alignment), - (get_text_line_spacing): - * src/object-editor-private.h: - * src/object-editor-text-page.c: - (gl_object_editor_prepare_text_page), - (gl_object_editor_set_text_line_spacing), - (gl_object_editor_get_text_line_spacing): - * src/object-editor.glade: - * src/object-editor.h: - * src/prefs-dialog.c: (construct_object_page), - (update_object_page_from_prefs), (update_prefs_from_object_page): - * src/prefs-dialog.glade: - * src/prefs-model.c: (gl_prefs_model_save_settings), - (gl_prefs_model_load_settings), (get_float): - * src/prefs-model.h: - * src/print.c: (draw_text_object): - * src/ui-sidebar.c: - * src/view-text.c: (update_object_from_editor_cb), - (update_editor_from_object_cb), - (gl_view_text_create_event_handler), (draw_hacktext): - * src/view.c: (gl_view_construct), - (gl_view_set_selection_text_line_spacing), - (gl_view_set_default_text_line_spacing), - (gl_view_get_default_text_line_spacing): - * src/view.h: - * src/xml-label.c: (xml_parse_toplevel_span), - (xml_create_toplevel_span): - -2003-12-30 Jim Evins - - * src/template-designer.c: - * src/template-designer.h: - * src/template-designer.glade: - New template designer assistant. - - * po/POTFILES.in: - * src/Makefile.am: - Added entries for src/template-designer.* files. - - * pixmaps/ex-1layout.png - * pixmaps/ex-2layouts.png - * pixmaps/Makefile.am: - Added the new image files ex-*.png used as illustrations in the - template designer assistant. - - * src/print-dialog.h: - * src/print-dialog.c: (gl_print_dialog_finalize), - (gl_print_dialog_new), (gl_print_dialog_construct), - (gl_print_dialog_force_outline_flag): - Changed first argument of gl_print_dialog_new() from glView to glLabel, - to support printing from the template designer assistant which does not - have a full-fledged view. Nothing else from the view object was being - used by the dialog anyway. - - Added the gl_print_dialog_force_outline_flag() method, for better - integration with the template designer assistant. - - - * src/commands.h: - * src/commands.c: (gl_cmd_file_template_designer), - (gl_cmd_file_print): - Modified print command to provide label instead of view to dialog. - Added the gl_cmd_file_template_designer() command to invoke the - template designer assistant. - - * src/ui.c: - * src/glabels-ui.xml: - Added support for template designer assistant. - - * src/wdgt-mini-preview.h: - * src/wdgt-mini-preview.c: (gl_wdgt_mini_preview_set_template), - (gl_wdgt_mini_preview_set_bg_color): - Preview is now centered in canvas. Added - gl_wdgt_mini_preview_set_bg_color() to allow the template designer - assistant to match the background color with its own. - - * src/print.c: (clip_to_outline): - Fixed really stupid bug when adding waste to clip region of rectangular - labels/cards. Each side of the clip region needs to be extended by - twice the waste margin, as well as negatively offset by the waste - margin. - -2003-12-28 Jim Evins - - * src/prefs-dialog.c: (update_object_page_from_prefs): - Block intermediary function align_toggle_cb() instead of - update_prefs_from_object_page() for the three alignment - widgets. - -2003-12-28 Wayne Schuller - - * src/file.c: (gl_file_new), (gl_file_properties): - Swap button order and set default for higificatory pleasure. - -2003-12-27 Jim Evins - - * barcode-0.98/Makefile.am: - One last time: removed doc/Makefile and po/Makefile.in.in from - EXTRA_DIST files. - -2003-12-27 Jim Evins - - * barcode-0.98/Makefile.am: - Removed config.stat entry from EXTRA_DIST files. - - * barcode-0.98/Makefile.in: - Removed. - -2003-12-27 Jim Evins - - * configure.in: - Updated to work with latest gnome-common package from CVS. - Removed recursive configuration of barcode-0.98. - - * acconfig.h: - * macros/*: - Removed. - - * Makefile.am: - Added barcode-0.98/ as a SUBDIR, and removed dist-hook. - - * barcode-0.98/Makefile.in: - * barcode-0.98/configure.in: - * barcode-0.98/Makefile.am: - * barcode-0.98/README.glabels: - Modified to ignore the barcode package's build system, and build - as a part of glabels. - Renamed Makefile.in to Makefile.in.dist. - Renamed configure.in to configure.in.dist. - Added barcode-0.98/Makefile.am and barcode-0.98/README.glabels. - - * src/Makefile.am: - * src/mygal/Makefile.am: - * src/recent-files/Makefile.am: - In order to build against the GNOME 2.5 platform, - all use of *_DISABLE_DEPRECATED compile-time flags has been removed. - - * src/mygal/Makefile.am: - * src/mygal/mygal-combo-box.c: - * src/mygal/mygal-combo-box.h: - * src/mygal/widget-color-combo.c: - * src/mygal/widget-color-combo.h: - * po/POTFILES.in: - In order to build against the GNOME 2.5 platform, - Renamed gtk_combo_box widget to mygal_combo_box, to prevent namespace - collisions with the real gtk_combo_box widget, now a part of gtk. - -2003-12-26 Jim Evins - - * src/paper.c: - * src/template.c: - * src/util.c: - * src/util.h: - Moved local versions of get_home_data_dir() in paper.c and - template.c to util package. Cleaned up formatting in - util.[ch]. - - * src/template.c: - In gl_template_register() save a copy of the template in - ~/.glabels if the template is not known. Still need to - handle duplicate filename case and duplicate name but - different template case. - - * src/xml-label.c: - * src/xml.h: - Moved local definition of NAME_SPACE macro from xml-label.c - to xml.h. - - * src/xml-template.c: - * src/xml-template.h: - Added function gl_xml_template_write_template_to_file(), used - in gl_template_register(). diff --git a/INSTALL b/INSTALL index 23e5f25d..7d1c323b 100644 --- a/INSTALL +++ b/INSTALL @@ -1,16 +1,25 @@ Installation Instructions ************************* -Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free -Software Foundation, Inc. +Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, +2006, 2007, 2008, 2009 Free Software Foundation, Inc. -This file is free documentation; the Free Software Foundation gives -unlimited permission to copy, distribute and modify it. + Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. This file is offered as-is, +without warranty of any kind. Basic Installation ================== -These are generic installation instructions. + Briefly, the shell commands `./configure; make; make install' should +configure, build, and install this package. The following +more-detailed instructions are generic; see the `README' file for +instructions specific to this package. Some packages provide this +`INSTALL' file but do not implement all of the features documented +below. The lack of an optional feature in a given package is not +necessarily a bug. More recommendations for GNU packages can be found +in *note Makefile Conventions: (standards)Makefile Conventions. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses @@ -23,9 +32,9 @@ debugging `configure'). It can also use an optional file (typically called `config.cache' and enabled with `--cache-file=config.cache' or simply `-C') that saves -the results of its tests to speed up reconfiguring. (Caching is +the results of its tests to speed up reconfiguring. Caching is disabled by default to prevent problems with accidental use of stale -cache files.) +cache files. If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail @@ -35,30 +44,37 @@ some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.ac' (or `configure.in') is used to create -`configure' by a program called `autoconf'. You only need -`configure.ac' if you want to change it or regenerate `configure' using -a newer version of `autoconf'. +`configure' by a program called `autoconf'. You need `configure.ac' if +you want to change it or regenerate `configure' using a newer version +of `autoconf'. -The simplest way to compile this package is: + The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type - `./configure' to configure the package for your system. If you're - using `csh' on an old version of System V, you might need to type - `sh ./configure' instead to prevent `csh' from trying to execute - `configure' itself. + `./configure' to configure the package for your system. - Running `configure' takes awhile. While running, it prints some - messages telling which features it is checking for. + Running `configure' might take a while. While running, it prints + some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with - the package. + the package, generally using the just-built uninstalled binaries. 4. Type `make install' to install the programs and any data files and - documentation. - - 5. You can remove the program binaries and object files from the + documentation. When installing into a prefix owned by root, it is + recommended that the package be configured and built as a regular + user, and only the `make install' phase executed with root + privileges. + + 5. Optionally, type `make installcheck' to repeat any self-tests, but + this time using the binaries in their final installed location. + This target does not install anything. Running this target as a + regular user, particularly if the prior `make install' required + root privileges, verifies that the installation completed + correctly. + + 6. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is @@ -67,45 +83,69 @@ The simplest way to compile this package is: all sorts of other programs in order to regenerate files that came with the distribution. + 7. Often, you can also type `make uninstall' to remove the installed + files again. In practice, not all packages have tested that + uninstallation works correctly, even though it is required by the + GNU Coding Standards. + + 8. Some packages, particularly those that use Automake, provide `make + distcheck', which can by used by developers to test that all other + targets like `make install' and `make uninstall' work correctly. + This target is generally not run by end users. + Compilers and Options ===================== -Some systems require unusual options for compilation or linking that the -`configure' script does not know about. Run `./configure --help' for -details on some of the pertinent environment variables. + Some systems require unusual options for compilation or linking that +the `configure' script does not know about. Run `./configure --help' +for details on some of the pertinent environment variables. You can give `configure' initial values for configuration parameters by setting variables in the command line or in the environment. Here is an example: - ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix + ./configure CC=c99 CFLAGS=-g LIBS=-lposix *Note Defining Variables::, for more details. Compiling For Multiple Architectures ==================================== -You can compile the package for more than one kind of computer at the + You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their -own directory. To do this, you must use a version of `make' that -supports the `VPATH' variable, such as GNU `make'. `cd' to the +own directory. To do this, you can use GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the -source code in the directory that `configure' is in and in `..'. +source code in the directory that `configure' is in and in `..'. This +is known as a "VPATH" build. + + With a non-GNU `make', it is safer to compile the package for one +architecture at a time in the source code directory. After you have +installed the package for one architecture, use `make distclean' before +reconfiguring for another architecture. - If you have to use a `make' that does not support the `VPATH' -variable, you have to compile the package for one architecture at a -time in the source code directory. After you have installed the -package for one architecture, use `make distclean' before reconfiguring -for another architecture. + On MacOS X 10.5 and later systems, you can create libraries and +executables that work on multiple system types--known as "fat" or +"universal" binaries--by specifying multiple `-arch' options to the +compiler but only a single `-arch' option to the preprocessor. Like +this: + + ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ + CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ + CPP="gcc -E" CXXCPP="g++ -E" + + This is not guaranteed to produce working output in all cases, you +may have to build one architecture at a time and combine the results +using the `lipo' tool if you have problems. Installation Names ================== -By default, `make install' installs the package's commands under + By default, `make install' installs the package's commands under `/usr/local/bin', include files under `/usr/local/include', etc. You can specify an installation prefix other than `/usr/local' by giving -`configure' the option `--prefix=PREFIX'. +`configure' the option `--prefix=PREFIX', where PREFIX must be an +absolute file name. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you @@ -116,16 +156,47 @@ Documentation and other data files still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=DIR' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories -you can set and what kinds of files go in them. +you can set and what kinds of files go in them. In general, the +default for these options is expressed in terms of `${prefix}', so that +specifying just `--prefix' will affect all of the other directory +specifications that were not explicitly provided. + + The most portable way to affect installation locations is to pass the +correct locations to `configure'; however, many packages provide one or +both of the following shortcuts of passing variable assignments to the +`make install' command line to change installation locations without +having to reconfigure or recompile. + + The first method involves providing an override variable for each +affected directory. For example, `make install +prefix=/alternate/directory' will choose an alternate location for all +directory configuration variables that were expressed in terms of +`${prefix}'. Any directories that were specified during `configure', +but not in terms of `${prefix}', must each be overridden at install +time for the entire installation to be relocated. The approach of +makefile variable overrides for each directory variable is required by +the GNU Coding Standards, and ideally causes no recompilation. +However, some platforms have known limitations with the semantics of +shared libraries that end up requiring recompilation when using this +method, particularly noticeable in packages that use GNU Libtool. + + The second method involves providing the `DESTDIR' variable. For +example, `make install DESTDIR=/alternate/directory' will prepend +`/alternate/directory' before all installation names. The approach of +`DESTDIR' overrides is not required by the GNU Coding Standards, and +does not work on platforms that have drive letters. On the other hand, +it does better at avoiding recompilation issues, and works well even +when some directory options were not specified in terms of `${prefix}' +at `configure' time. + +Optional Features +================= If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. -Optional Features -================= - -Some packages pay attention to `--enable-FEATURE' options to + Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE is something like `gnu-as' or `x' (for the X Window System). The @@ -137,14 +208,53 @@ find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. + Some packages offer the ability to configure how verbose the +execution of `make' will be. For these packages, running `./configure +--enable-silent-rules' sets the default to minimal output, which can be +overridden with `make V=1'; while running `./configure +--disable-silent-rules' sets the default to verbose, which can be +overridden with `make V=0'. + +Particular systems +================== + + On HP-UX, the default C compiler is not ANSI C compatible. If GNU +CC is not installed, it is recommended to use the following options in +order to use an ANSI C compiler: + + ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" + +and if that doesn't work, install pre-built binaries of GCC for HP-UX. + + On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot +parse its `' header file. The option `-nodtk' can be used as +a workaround. If GNU CC is not installed, it is therefore recommended +to try + + ./configure CC="cc" + +and if that doesn't work, try + + ./configure CC="cc -nodtk" + + On Solaris, don't put `/usr/ucb' early in your `PATH'. This +directory contains several dysfunctional programs; working variants of +these programs are available in `/usr/bin'. So, if you need `/usr/ucb' +in your `PATH', put it _after_ `/usr/bin'. + + On Haiku, software installed for all users goes in `/boot/common', +not `/usr/local'. It is recommended to use the following options: + + ./configure --prefix=/boot/common + Specifying the System Type ========================== -There may be some features `configure' cannot figure out automatically, -but needs to determine by the type of machine the package will run on. -Usually, assuming the package is built to be run on the _same_ -architectures, `configure' can figure that out, but if it prints a -message saying it cannot guess the machine type, give it the + There may be some features `configure' cannot figure out +automatically, but needs to determine by the type of machine the package +will run on. Usually, assuming the package is built to be run on the +_same_ architectures, `configure' can figure that out, but if it prints +a message saying it cannot guess the machine type, give it the `--build=TYPE' option. TYPE can either be a short name for the system type, such as `sun4', or a canonical name which has the form: @@ -152,7 +262,8 @@ type, such as `sun4', or a canonical name which has the form: where SYSTEM can have one of these forms: - OS KERNEL-OS + OS + KERNEL-OS See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't @@ -170,9 +281,9 @@ eventually be run) with `--host=TYPE'. Sharing Defaults ================ -If you want to set default values for `configure' scripts to share, you -can create a site shell script called `config.site' that gives default -values for variables like `CC', `cache_file', and `prefix'. + If you want to set default values for `configure' scripts to share, +you can create a site shell script called `config.site' that gives +default values for variables like `CC', `cache_file', and `prefix'. `configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the `CONFIG_SITE' environment variable to the location of the site script. @@ -181,7 +292,7 @@ A warning: not all `configure' scripts look for a site script. Defining Variables ================== -Variables not defined in a site shell script can be set in the + Variables not defined in a site shell script can be set in the environment passed to `configure'. However, some packages may run configure again during the build, and the customized values of these variables may be lost. In order to avoid this problem, you should set @@ -190,21 +301,29 @@ them in the `configure' command line, using `VAR=value'. For example: ./configure CC=/usr/local2/bin/gcc causes the specified `gcc' to be used as the C compiler (unless it is -overridden in the site shell script). Here is a another example: +overridden in the site shell script). - /bin/bash ./configure CONFIG_SHELL=/bin/bash +Unfortunately, this technique does not work for `CONFIG_SHELL' due to +an Autoconf bug. Until the bug is fixed you can use this workaround: -Here the `CONFIG_SHELL=/bin/bash' operand causes subsequent -configuration-related scripts to be executed by `/bin/bash'. + CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash `configure' Invocation ====================== -`configure' recognizes the following options to control how it operates. + `configure' recognizes the following options to control how it +operates. `--help' `-h' - Print a summary of the options to `configure', and exit. + Print a summary of all of the options to `configure', and exit. + +`--help=short' +`--help=recursive' + Print a summary of the options unique to this package's + `configure', and exit. The `short' variant lists options used + only in the top level, while the `recursive' variant lists options + also present in any nested packages. `--version' `-V' @@ -231,6 +350,16 @@ configuration-related scripts to be executed by `/bin/bash'. Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. +`--prefix=DIR' + Use DIR as the installation prefix. *note Installation Names:: + for more details, including other options available for fine-tuning + the installation locations. + +`--no-create' +`-n' + Run the configure checks, but stop before creating any output + files. + `configure' also accepts some other, not widely useful, options. Run `configure --help' for more details. diff --git a/Makefile.am b/Makefile.am index b8bc8b35..0aec6e1b 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,15 +1,12 @@ ## Process this file with automake to produce Makefile.in -LIB_BARCODE_DIR = barcode-0.98 -LIB_IEC16022_DIR = iec16022-0.2.1 - SUBDIRS = \ po \ - $(LIB_BARCODE_DIR) \ - $(LIB_IEC16022_DIR) \ libglabels \ + libglbarcode \ src \ data \ + templates \ help \ docs @@ -18,23 +15,25 @@ EXTRA_DIST = \ COPYING.README_FIRST \ COPYING \ COPYING-DOCS \ - COPYING-LIBGLABELS \ + COPYING-LIBS \ + COPYING-TEMPLATES \ AUTHORS \ ChangeLog \ - ChangeLog.pre-2.2 \ INSTALL \ NEWS \ TODO \ intltool-extract.in \ intltool-merge.in \ intltool-update.in \ + gnome-doc-utils.make \ glabels.spec.in \ glabels.spec - gnome-doc-utils.make DISTCLEANFILES = gnome-doc-utils.make -DISTCHECK_CONFIGURE_FLAGS = --disable-scrollkeeper +DISTCHECK_CONFIGURE_FLAGS = \ + --disable-scrollkeeper \ + --enable-gtk-doc dist-hook: @if test -d "$(srcdir)/.git"; \ diff --git a/Makefile.in b/Makefile.in index fbac3d58..52e9f5f5 100644 --- a/Makefile.in +++ b/Makefile.in @@ -40,7 +40,7 @@ DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ COPYING ChangeLog INSTALL NEWS TODO config.guess config.sub \ depcomp install-sh ltmain.sh missing mkinstalldirs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ @@ -49,6 +49,12 @@ mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = glabels.spec CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ @@ -105,11 +111,13 @@ distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ +CAIRO_REQUIRED = @CAIRO_REQUIRED@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ @@ -122,7 +130,11 @@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@ -DISTCHECK_CONFIGURE_FLAGS = --disable-scrollkeeper +DISTCHECK_CONFIGURE_FLAGS = \ + --disable-scrollkeeper \ + --enable-gtk-doc + +DLLTOOL = @DLLTOOL@ DOC_USER_FORMATS = @DOC_USER_FORMATS@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ @@ -132,17 +144,23 @@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ +GDK_PIXBUF_CSOURCE = @GDK_PIXBUF_CSOURCE@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GLABELS_BRANCH = @GLABELS_BRANCH@ GLABELS_CFLAGS = @GLABELS_CFLAGS@ GLABELS_LIBS = @GLABELS_LIBS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ GLIB_REQUIRED = @GLIB_REQUIRED@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ GTKDOC_CHECK = @GTKDOC_CHECK@ +GTKDOC_MKPDF = @GTKDOC_MKPDF@ +GTKDOC_REBASE = @GTKDOC_REBASE@ GTK_REQUIRED = @GTK_REQUIRED@ -HAVE_XML_PARSE_HUGE = @HAVE_XML_PARSE_HUGE@ +GTK_UPDATE_ICON_CACHE = @GTK_UPDATE_ICON_CACHE@ HELP_DIR = @HELP_DIR@ HTML_DIR = @HTML_DIR@ INSTALL = @INSTALL@ @@ -158,31 +176,45 @@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ +LIBBARCODE_CFLAGS = @LIBBARCODE_CFLAGS@ +LIBBARCODE_LIBS = @LIBBARCODE_LIBS@ +LIBBARCODE_REQUIRED = @LIBBARCODE_REQUIRED@ LIBEBOOK_CFLAGS = @LIBEBOOK_CFLAGS@ LIBEBOOK_LIBS = @LIBEBOOK_LIBS@ LIBEBOOK_REQUIRED = @LIBEBOOK_REQUIRED@ +LIBGLABELS_API_VERSION = @LIBGLABELS_API_VERSION@ +LIBGLABELS_BRANCH = @LIBGLABELS_BRANCH@ LIBGLABELS_CFLAGS = @LIBGLABELS_CFLAGS@ LIBGLABELS_LIBS = @LIBGLABELS_LIBS@ -LIBGLABELS_VERSION_INFO = @LIBGLABELS_VERSION_INFO@ -LIBGLADE_REQUIRED = @LIBGLADE_REQUIRED@ -LIBGNOMEUI_REQUIRED = @LIBGNOMEUI_REQUIRED@ -LIBGNOME_REQUIRED = @LIBGNOME_REQUIRED@ +LIBGLBARCODE_API_VERSION = @LIBGLBARCODE_API_VERSION@ +LIBGLBARCODE_BRANCH = @LIBGLBARCODE_BRANCH@ +LIBGLBARCODE_CFLAGS = @LIBGLBARCODE_CFLAGS@ +LIBGLBARCODE_LIBS = @LIBGLBARCODE_LIBS@ +LIBIEC16022_CFLAGS = @LIBIEC16022_CFLAGS@ +LIBIEC16022_LIBS = @LIBIEC16022_LIBS@ +LIBIEC16022_REQUIRED = @LIBIEC16022_REQUIRED@ LIBOBJS = @LIBOBJS@ +LIBQRENCODE_CFLAGS = @LIBQRENCODE_CFLAGS@ +LIBQRENCODE_LIBS = @LIBQRENCODE_LIBS@ +LIBQRENCODE_REQUIRED = @LIBQRENCODE_REQUIRED@ +LIBRSVG_REQUIRED = @LIBRSVG_REQUIRED@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_REQUIRED = @LIBXML_REQUIRED@ +LIBZINT_CFLAGS = @LIBZINT_CFLAGS@ +LIBZINT_LIBS = @LIBZINT_LIBS@ +LIBZINT_REQUIRED = @LIBZINT_REQUIRED@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ -MYGAL_CFLAGS = @MYGAL_CFLAGS@ -MYGAL_LIBS = @MYGAL_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ @@ -195,9 +227,13 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PANGO_REQUIRED = @PANGO_REQUIRED@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ @@ -207,18 +243,15 @@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ -UPDATE_DESKTOP_DATABASE = @UPDATE_DESKTOP_DATABASE@ -UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ XGETTEXT = @XGETTEXT@ -XML_PARSE_HUGE_CFLAGS = @XML_PARSE_HUGE_CFLAGS@ -XML_PARSE_HUGE_LIBS = @XML_PARSE_HUGE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ @@ -238,6 +271,7 @@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ @@ -251,7 +285,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -267,15 +300,13 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -LIB_BARCODE_DIR = barcode-0.98 -LIB_IEC16022_DIR = iec16022-0.2.1 SUBDIRS = \ po \ - $(LIB_BARCODE_DIR) \ - $(LIB_IEC16022_DIR) \ libglabels \ + libglbarcode \ src \ data \ + templates \ help \ docs @@ -284,16 +315,17 @@ EXTRA_DIST = \ COPYING.README_FIRST \ COPYING \ COPYING-DOCS \ - COPYING-LIBGLABELS \ + COPYING-LIBS \ + COPYING-TEMPLATES \ AUTHORS \ ChangeLog \ - ChangeLog.pre-2.2 \ INSTALL \ NEWS \ TODO \ intltool-extract.in \ intltool-merge.in \ intltool-update.in \ + gnome-doc-utils.make \ glabels.spec.in \ glabels.spec @@ -798,7 +830,6 @@ uninstall-am: mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags tags-recursive uninstall uninstall-am - gnome-doc-utils.make dist-hook: @if test -d "$(srcdir)/.git"; \ diff --git a/NEWS b/NEWS index ced6ef59..41661f1a 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,87 @@ +* gLabels 3.0.0 (stable) release. Release date 2011-05-16 + +- Reorganization of alignment menus +- Allow glabels-batch to be run outside of windowing system +- CSV parser now more closely follows RFC 4180 +- Added templates +- Updated translations: + - French (Claude Paroz, Bruno Brouard, Gérard Baylard) + - Spanish (Daniel Mustieles) + - Japanese (Takayuki KUSANO, Takayoshi OKANO) + - Czech (Marek Černocký) + - German (Mario Blättermann) + - Dutch (Mario Blättermann, Hannie Dumoleyn) + + +* gLabels 2.3.1 (unstable) release. Release date 2011-01-03 + +- Migrated to GNOME 3 platform + - Ported to Gtk3 + - Ported from gconf to gsettings +- Updated manual and ported to Mallard +- Added text merge backend that uses semicolon delimeters +- Improve appearance of shadows of boxes and ellipses +- Added shadow property of image objects +- Added native support for SVG images +- Added full-featured barcode backend for libzint (Sam Lown, Robin Stuart) +- Refactoring of barcode subsystem + - Moved core barcode support to its own library (libglbarcode) + - Added onecode backend to libglbarcode + - Resurrected built-in Code39 backend and added to libglbarcode + (from way back in glabels 0.1.x) + - Allow selection of barcode backend from UI +- New logo and theme friendly icons +- Added support for elliptical templates +- Added many new templates +- Updated translations: + - Czech (Marek Černocký) + - Danish (Joe Hansen) + - French (Claude Paroz, Bruno Brouard, Gérard Baylard) + - German (Mario Blättermann) + - Spanish (Daniel Mustieles) + - Slovenian (Andrej ŽnidarÅ¡ič) + - Catalan (Valencian) (David Planella) + - Swedish (Daniel Nylander) + - Brazilian Portuguese (Michel Recondo, Henrique P. Machado, Antonio Fernandes C. Neto) + + +* gLabels 2.3.0 (unstable) release. Release date 2010-06-06 + +- Removed use of deprecations in platform: + - Migrated from libglade to GtkBuilder + - Removed all dependencies on libgnome and libgnomeui + - Removed all GTK+ and GLIB deprecations as of GNOME 2.30 + - Use accessor functions in GTK+ and GLIB +- Major refactoring of code +- Added Undo/Redo capability +- GnuBarcode backend is now optional and is no longer distributed with glabels +- IEC16022 (datamatrix) barcode backend is now optional and is no longer + distributed with glabels +- Added optional IEC18004 (QRCode) barcode backend (Daniel Mueller) +- Added optional Zint barcode backend (currently ony supports GS1-128, but + other barcodes will be supported by this backend in the future). + (Samual Lown) +- Now uses "XDG Base Directory Specification" to locate user templates +- New wizard based "New Label" dialog +- Can now manage user created templates from within glabels +- New "Insert Field" button +- Allow pasting of images and text from other apps as new objects +- Fixed focus problems which prevented proper copy and paste operation + within the text editor +- CSV merge backend can now harvest 1st line of CSV file for field names +- New font selection widget +- New color selection widget +- Support parallel installation with older versions of glabels +- Updated license to GPL3+ +- Full translations of application strings for this release: + - German (Mario Blättermann) + - Spanish (Daniel Mustieles) + - Brazilian Portuguese (Michel Recondo) + - Danish (Joe Hansen) + - French (Claude Paroz) + - Slovenian (Andrej ŽnidarÅ¡ič) + + * gLabels 2.2.8 (stable) release. Release date 2010-04-19 - Fix crash caused by new g_new macros in glib-2.24.0 @@ -189,7 +273,7 @@ - New cleaned-up icon - Added option to glabels-batch to allow selection of first label. - Added options to glabels-batch to allow selection of merge source and crop marks. - (José Dapena Paz) + (José Dapena Paz) - Updated french translation (Florent Morel) - Fixed translation problem with object editor labels - Minor bug fixes and cleanup diff --git a/README b/README index a8c42416..5fb256ac 100644 --- a/README +++ b/README @@ -1,12 +1,13 @@ Copyright ========= - Copyright (C) 2001-2007 Jim Evins + Copyright (C) 2001-2011 Jim Evins - gLabels contains components copyrighted by others -- see th 'AUTHORS' file in - this directory. + gLabels contains components copyrighted by others -- see the 'AUTHORS' file + in this directory. - For license information see the 'COPYING.README_FIRST' file in this directory. + For license information see the 'COPYING.README_FIRST' file in this + directory. @@ -21,14 +22,25 @@ cards using a laser or ink-jet printer. System Requirements =================== -GTK+-2.10.x -LIBGNOME[UI]-2.16.x -LIBXML-2.6.x -LIBGLADE-2.6.x +GLIB+-2.28.x +GTK+-3.0.x +LIBXML-2.7.x All of these libraries are available as part of Gnome 2.16 +Optional Merge Backends +======================= +Evolution Data Server 2.28.0+ + + +Optional Barcode Backends +========================= +GNU Barcode 0.98+ (http://www.gnu.org/software/barcode/barcode.html) +QREncode 3.1.0+ (http://megaui.net/fukuchi/works/qrencode/index.en.html) +IEC16022 0.2.4+ (http://datenfreihafen.org/projects/iec16022.html) +LIBZINT 2.4.0+ (http://www.zint.org.uk) + Author and Acknowledgments: =========================== @@ -40,5 +52,5 @@ See the AUTHORS file. Website ======= -http://glabels.sourceforge.net/ +http://glabels.org/ diff --git a/TODO b/TODO index ed3140cc..7fe81619 100644 --- a/TODO +++ b/TODO @@ -1,46 +1,81 @@ Development plan ---------------- -This development plan sets a specific set of milestones for future versions of glabels. +This development plan sets a specific set of milestones for future versions +of glabels. Goals for 2.2.x: - - Bugfixes + - Bugfixes - - Translations + - Translations -Possible Goals for 2.3.x (current development branch): +Goals for 2.3.x (current development branch for 3.0): - - Undo, Redo capability + - Migrate to Gnome 3.0 platform - - Make text items rich. I.e. allow multiple characteristics - to exist within a single object. + - Remove deprecations from Gnome 2.0 platform - - Text effects. (follow contour, non-rectangular text boxes, - ...) + - New color combo selector widget family - - Ability to select/unselect individual records during a merge-print. + - New font selector widget family - - Add additional "merge" backends. Candidates include: - generic XML - freedb (CDDB) for CD labels - gnome-db - ADIF for generating QSL-cards + - Undo, Redo capability - - Printer calibration tool: a facility for tweaking output origin and - scale. This should really be part of the underlying print system but - currently is not, so I may want to add the hack. + - Allow for management of custom templates + (i.e. delete, rename, edit). - - Adjustable grid spacing. Spacing of visible grid should be user - adjustable. This grid spacing should be an integral multiple of - a finer invisible grid. There should be a "snap to grid" toggle, - that causes all posistioning and sizing performed on the canvas - to snap to the closest grid. The possible grid spacing should be - appropriate for the current units selected (e.g. .1 points, .01 mm, - 1/64 inch, 0.001 inch). + - Improve documentation and translation maintainance - - Allow for management of custom templates - (i.e. delete, rename, edit). + - Code cleanup + + +Possible Goals for future branches: + + - Make text items rich. I.e. allow multiple characteristics + to exist within a single object. Basically each text object + will be a mini word processor. The bounding box for the object + will act like a page, where lines wrap on the word boundary. + + - Text effects. (follow contour, non-rectangular text boxes, + ...) + + - Add additional "merge" backends. Candidates include: + gnome-db + internal database stored in glabels file + generic XML + freedb (CDDB) for CD labels + ADIF for generating QSL-cards + Address books of Thunderbird, Balsa, Claws Mail etc. + + - Printer calibration tool: a facility for tweaking output + origin and scale. This should really be part of the + underlying print system but currently is not, so we may + want to add the hack. + + - Adjustable grid spacing. Spacing of visible grid should + be user adjustable. This grid spacing should be an + integral multiple of a finer invisible grid. There should + be a "snap to grid" toggle, that causes all posistioning + and sizing performed on the canvas to snap to the closest + grid. The possible grid spacing should be appropriate + for the current units selected (e.g. .1 points, .01 mm, + 1/64 inch, 0.001 inch). + + - Ability to select/unselect individual records during a + merge-print. + + - Merge templates which are now in seperate template definitions + because the product includes more than one unique shape. This could + be done by using tabs in the drawing area. + + - Ability to define a free-form shape for a label/card. There are some + products which have unusual shapes. This includes free-form markup + objects. For the time being, the ability to concatenate a shape from + other basic shapes could be sufficient here. + + - See https://sourceforge.net/tracker/?atid=445119&group_id=46122&func=browse + for additional ideas. diff --git a/aclocal.m4 b/aclocal.m4 index 9bdf2c46..cac40457 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -13,8 +13,8 @@ m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.63],, -[m4_warning([this file was generated for autoconf 2.63. +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.68],, +[m4_warning([this file was generated for autoconf 2.68. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically `autoreconf'.])]) @@ -301,7 +301,7 @@ msgstr "" dnl These rules are solely for the distribution goal. While doing this dnl we only have to keep exactly one list of the available catalogs - dnl in configure.in. + dnl in configure.ac. for lang in $ALL_LINGUAS; do GMOFILES="$GMOFILES $lang.gmo" POFILES="$POFILES $lang.po" @@ -430,7 +430,7 @@ AC_DEFINE_UNQUOTED($1, "$localedir", dnl dnl Now the definitions that aclocal will find dnl -ifdef(glib_configure_in,[],[ +ifdef(glib_configure_ac,[],[ AC_DEFUN([AM_GLIB_GNU_GETTEXT],[GLIB_GNU_GETTEXT($@)]) AC_DEFUN([AM_GLIB_DEFINE_LOCALEDIR],[GLIB_DEFINE_LOCALEDIR($@)]) ])dnl @@ -651,6 +651,90 @@ fi GNOME_DOC_DEFINES ]) +dnl GLIB_GSETTINGS +dnl Defines GSETTINGS_SCHEMAS_INSTALL which controls whether +dnl the schema should be compiled +dnl + +AC_DEFUN([GLIB_GSETTINGS], +[ + m4_pattern_allow([AM_V_GEN]) + AC_ARG_ENABLE(schemas-compile, + AC_HELP_STRING([--disable-schemas-compile], + [Disable regeneration of gschemas.compiled on install]), + [case ${enableval} in + yes) GSETTINGS_DISABLE_SCHEMAS_COMPILE="" ;; + no) GSETTINGS_DISABLE_SCHEMAS_COMPILE="1" ;; + *) AC_MSG_ERROR([bad value ${enableval} for --enable-schemas-compile]) ;; + esac]) + AC_SUBST([GSETTINGS_DISABLE_SCHEMAS_COMPILE]) + PKG_PROG_PKG_CONFIG([0.16]) + AC_SUBST(gsettingsschemadir, [${datadir}/glib-2.0/schemas]) + if test x$cross_compiling != xyes; then + GLIB_COMPILE_SCHEMAS=`$PKG_CONFIG --variable glib_compile_schemas gio-2.0` + else + AC_PATH_PROG(GLIB_COMPILE_SCHEMAS, glib-compile-schemas) + fi + AC_SUBST(GLIB_COMPILE_SCHEMAS) + if test "x$GLIB_COMPILE_SCHEMAS" = "x"; then + ifelse([$2],,[AC_MSG_ERROR([glib-compile-schemas not found.])],[$2]) + else + ifelse([$1],,[:],[$1]) + fi + + GSETTINGS_RULES=' +.PHONY : uninstall-gsettings-schemas install-gsettings-schemas clean-gsettings-schemas + +mostlyclean-am: clean-gsettings-schemas + +gsettings__enum_file = $(addsuffix .enums.xml,$(gsettings_ENUM_NAMESPACE)) + +%.gschema.valid: %.gschema.xml $(gsettings__enum_file) + $(AM_V_GEN) if test -f "$<"; then d=; else d="$(srcdir)/"; fi; $(GLIB_COMPILE_SCHEMAS) --strict --dry-run $(addprefix --schema-file=,$(gsettings__enum_file)) --schema-file=$${d}$< && touch [$]@ + +all-am: $(gsettings_SCHEMAS:.xml=.valid) +uninstall-am: uninstall-gsettings-schemas +install-data-am: install-gsettings-schemas + +.SECONDARY: $(gsettings_SCHEMAS) + +install-gsettings-schemas: $(gsettings_SCHEMAS) $(gsettings__enum_file) + @$(NORMAL_INSTALL) + if test -n "$^"; then \ + test -z "$(gsettingsschemadir)" || $(MKDIR_P) "$(DESTDIR)$(gsettingsschemadir)"; \ + $(INSTALL_DATA) $^ "$(DESTDIR)$(gsettingsschemadir)"; \ + test -n "$(GSETTINGS_DISABLE_SCHEMAS_COMPILE)$(DESTDIR)" || $(GLIB_COMPILE_SCHEMAS) $(gsettingsschemadir); \ + fi + +uninstall-gsettings-schemas: + @$(NORMAL_UNINSTALL) + @list='\''$(gsettings_SCHEMAS) $(gsettings__enum_file)'\''; test -n "$(gsettingsschemadir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e '\''s|^.*/||'\''`; \ + test -n "$$files" || exit 0; \ + echo " ( cd '\''$(DESTDIR)$(gsettingsschemadir)'\'' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(gsettingsschemadir)" && rm -f $$files + test -n "$(GSETTINGS_DISABLE_SCHEMAS_COMPILE)$(DESTDIR)" || $(GLIB_COMPILE_SCHEMAS) $(gsettingsschemadir) + +clean-gsettings-schemas: + rm -f $(gsettings_SCHEMAS:.xml=.valid) $(gsettings__enum_file) + +ifdef gsettings_ENUM_NAMESPACE +$(gsettings__enum_file): $(gsettings_ENUM_FILES) + $(AM_V_GEN) glib-mkenums --comments '\'''\'' --fhead "" --vhead " <@type@ id='\''$(gsettings_ENUM_NAMESPACE).@EnumName@'\''>" --vprod " " --vtail " " --ftail "" [$]^ > [$]@.tmp && mv [$]@.tmp [$]@ +endif +' + _GSETTINGS_SUBST(GSETTINGS_RULES) +]) + +dnl _GSETTINGS_SUBST(VARIABLE) +dnl Abstract macro to do either _AM_SUBST_NOTMAKE or AC_SUBST +AC_DEFUN([_GSETTINGS_SUBST], +[ +AC_SUBST([$1]) +m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([$1])]) +] +) + dnl -*- mode: autoconf -*- # serial 1 @@ -661,6 +745,12 @@ AC_DEFUN([GTK_DOC_CHECK], [ AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first + + dnl check for tools we added during development + AC_PATH_PROG([GTKDOC_CHECK],[gtkdoc-check]) + AC_PATH_PROGS([GTKDOC_REBASE],[gtkdoc-rebase],[true]) + AC_PATH_PROG([GTKDOC_MKPDF],[gtkdoc-mkpdf]) + dnl for overriding the documentation installation directory AC_ARG_WITH([html-dir], AS_HELP_STRING([--with-html-dir=PATH], [path to installed docs]),, @@ -679,16 +769,32 @@ AC_DEFUN([GTK_DOC_CHECK], [PKG_CHECK_EXISTS([gtk-doc],, AC_MSG_ERROR([gtk-doc not installed and --enable-gtk-doc requested]))], [PKG_CHECK_EXISTS([gtk-doc >= $1],, - AC_MSG_ERROR([You need to have gtk-doc >= $1 installed to build gtk-doc]))]) + AC_MSG_ERROR([You need to have gtk-doc >= $1 installed to build $PACKAGE_NAME]))]) fi AC_MSG_CHECKING([whether to build gtk-doc documentation]) AC_MSG_RESULT($enable_gtk_doc) - AC_PATH_PROGS(GTKDOC_CHECK,gtkdoc-check,) + dnl enable/disable output formats + AC_ARG_ENABLE([gtk-doc-html], + AS_HELP_STRING([--enable-gtk-doc-html], + [build documentation in html format [[default=yes]]]),, + [enable_gtk_doc_html=yes]) + AC_ARG_ENABLE([gtk-doc-pdf], + AS_HELP_STRING([--enable-gtk-doc-pdf], + [build documentation in pdf format [[default=no]]]),, + [enable_gtk_doc_pdf=no]) + + if test -z "$GTKDOC_MKPDF"; then + enable_gtk_doc_pdf=no + fi + AM_CONDITIONAL([ENABLE_GTK_DOC], [test x$enable_gtk_doc = xyes]) + AM_CONDITIONAL([GTK_DOC_BUILD_HTML], [test x$enable_gtk_doc_html = xyes]) + AM_CONDITIONAL([GTK_DOC_BUILD_PDF], [test x$enable_gtk_doc_pdf = xyes]) AM_CONDITIONAL([GTK_DOC_USE_LIBTOOL], [test -n "$LIBTOOL"]) + AM_CONDITIONAL([GTK_DOC_USE_REBASE], [test -n "$GTKDOC_REBASE"]) ]) @@ -842,7 +948,7 @@ IT_PO_SUBDIR([po]) AC_DEFUN([IT_PO_SUBDIR], [AC_PREREQ([2.53])dnl We use ac_top_srcdir inside AC_CONFIG_COMMANDS. dnl -dnl The following CONFIG_COMMANDS should be exetuted at the very end +dnl The following CONFIG_COMMANDS should be executed at the very end dnl of config.status. AC_CONFIG_COMMANDS_PRE([ AC_CONFIG_COMMANDS([$1/stamp-it], [ @@ -888,7 +994,8 @@ AU_ALIAS([AC_PROG_INTLTOOL], [IT_PROG_INTLTOOL]) # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, -# 2006, 2007, 2008 Free Software Foundation, Inc. +# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, +# Inc. # Written by Gordon Matzigkeit, 1996 # # This file is free software; the Free Software Foundation gives @@ -897,7 +1004,8 @@ AU_ALIAS([AC_PROG_INTLTOOL], [IT_PROG_INTLTOOL]) m4_define([_LT_COPYING], [dnl # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, -# 2006, 2007, 2008 Free Software Foundation, Inc. +# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, +# Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. @@ -924,7 +1032,7 @@ m4_define([_LT_COPYING], [dnl # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ]) -# serial 56 LT_INIT +# serial 57 LT_INIT # LT_PREREQ(VERSION) @@ -953,6 +1061,7 @@ esac # ------------------ AC_DEFUN([LT_INIT], [AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT +AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl AC_BEFORE([$0], [LT_LANG])dnl AC_BEFORE([$0], [LT_OUTPUT])dnl AC_BEFORE([$0], [LTDL_INIT])dnl @@ -969,6 +1078,8 @@ AC_REQUIRE([LTVERSION_VERSION])dnl AC_REQUIRE([LTOBSOLETE_VERSION])dnl m4_require([_LT_PROG_LTMAIN])dnl +_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) + dnl Parse OPTIONS _LT_SET_OPTIONS([$0], [$1]) @@ -1005,7 +1116,7 @@ m4_defun([_LT_CC_BASENAME], *) break;; esac done -cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` +cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` ]) @@ -1025,6 +1136,9 @@ m4_defun([_LT_FILEUTILS_DEFAULTS], m4_defun([_LT_SETUP], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl +AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl + _LT_DECL([], [host_alias], [0], [The host system])dnl _LT_DECL([], [host], [0])dnl _LT_DECL([], [host_os], [0])dnl @@ -1047,10 +1161,13 @@ _LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl +m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl m4_require([_LT_CMD_RELOAD])dnl m4_require([_LT_CHECK_MAGIC_METHOD])dnl +m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl m4_require([_LT_CMD_OLD_ARCHIVE])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl +m4_require([_LT_WITH_SYSROOT])dnl _LT_CONFIG_LIBTOOL_INIT([ # See if we are running on zsh, and set the options which allow our @@ -1066,7 +1183,6 @@ fi _LT_CHECK_OBJDIR m4_require([_LT_TAG_COMPILER])dnl -_LT_PROG_ECHO_BACKSLASH case $host_os in aix3*) @@ -1080,23 +1196,6 @@ aix3*) ;; esac -# Sed substitution that helps us do robust quoting. It backslashifies -# metacharacters that are still active within double-quoted strings. -sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' - -# Same as above, but do not quote variable references. -double_quote_subst='s/\([["`\\]]\)/\\\1/g' - -# Sed substitution to delay expansion of an escaped shell variable in a -# double_quote_subst'ed string. -delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' - -# Sed substitution to delay expansion of an escaped single quote. -delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' - -# Sed substitution to avoid accidental globbing in evaled expressions -no_glob_subst='s/\*/\\\*/g' - # Global variables: ofile=libtool can_build_shared=yes @@ -1137,6 +1236,28 @@ _LT_CONFIG_COMMANDS ])# _LT_SETUP +# _LT_PREPARE_SED_QUOTE_VARS +# -------------------------- +# Define a few sed substitution that help us do robust quoting. +m4_defun([_LT_PREPARE_SED_QUOTE_VARS], +[# Backslashify metacharacters that are still active within +# double-quoted strings. +sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\([["`\\]]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' +]) + # _LT_PROG_LTMAIN # --------------- # Note that this code is called both from `configure', and `config.status' @@ -1289,7 +1410,7 @@ m4_define([_lt_decl_all_varnames], # declaration there will have the same value as in `configure'. VARNAME # must have a single quote delimited value for this to work. m4_define([_LT_CONFIG_STATUS_DECLARE], -[$1='`$ECHO "X$][$1" | $Xsed -e "$delay_single_quote_subst"`']) +[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) # _LT_CONFIG_STATUS_DECLARATIONS @@ -1299,7 +1420,7 @@ m4_define([_LT_CONFIG_STATUS_DECLARE], # embedded single quotes properly. In configure, this macro expands # each variable declared with _LT_DECL (and _LT_TAGDECL) into: # -# ='`$ECHO "X$" | $Xsed -e "$delay_single_quote_subst"`' +# ='`$ECHO "$" | $SED "$delay_single_quote_subst"`' m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], [m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) @@ -1398,12 +1519,20 @@ LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$[]1 +_LTECHO_EOF' +} + # Quote evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_quote_varnames); do - case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" @@ -1414,9 +1543,9 @@ done # Double-quote double-evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_dquote_varnames); do - case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" @@ -1424,16 +1553,38 @@ for var in lt_decl_all_varnames([[ \ esac done -# Fix-up fallback echo if it was mangled by the above quoting rules. -case \$lt_ECHO in -*'\\\[$]0 --fallback-echo"')dnl " - lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\[$]0 --fallback-echo"\[$]/\[$]0 --fallback-echo"/'\` - ;; -esac - _LT_OUTPUT_LIBTOOL_INIT ]) +# _LT_GENERATED_FILE_INIT(FILE, [COMMENT]) +# ------------------------------------ +# Generate a child script FILE with all initialization necessary to +# reuse the environment learned by the parent script, and make the +# file executable. If COMMENT is supplied, it is inserted after the +# `#!' sequence but before initialization text begins. After this +# macro, additional text can be appended to FILE to form the body of +# the child script. The macro ends with non-zero status if the +# file could not be fully written (such as if the disk is full). +m4_ifdef([AS_INIT_GENERATED], +[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], +[m4_defun([_LT_GENERATED_FILE_INIT], +[m4_require([AS_PREPARE])]dnl +[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl +[lt_write_fail=0 +cat >$1 <<_ASEOF || lt_write_fail=1 +#! $SHELL +# Generated by $as_me. +$2 +SHELL=\${CONFIG_SHELL-$SHELL} +export SHELL +_ASEOF +cat >>$1 <<\_ASEOF || lt_write_fail=1 +AS_SHELL_SANITIZE +_AS_PREPARE +exec AS_MESSAGE_FD>&1 +_ASEOF +test $lt_write_fail = 0 && chmod +x $1[]dnl +m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT # LT_OUTPUT # --------- @@ -1443,20 +1594,11 @@ _LT_OUTPUT_LIBTOOL_INIT AC_DEFUN([LT_OUTPUT], [: ${CONFIG_LT=./config.lt} AC_MSG_NOTICE([creating $CONFIG_LT]) -cat >"$CONFIG_LT" <<_LTEOF -#! $SHELL -# Generated by $as_me. -# Run this file to recreate a libtool stub with the current configuration. - -lt_cl_silent=false -SHELL=\${CONFIG_SHELL-$SHELL} -_LTEOF +_LT_GENERATED_FILE_INIT(["$CONFIG_LT"], +[# Run this file to recreate a libtool stub with the current configuration.]) cat >>"$CONFIG_LT" <<\_LTEOF -AS_SHELL_SANITIZE -_AS_PREPARE - -exec AS_MESSAGE_FD>&1 +lt_cl_silent=false exec AS_MESSAGE_LOG_FD>>config.log { echo @@ -1482,7 +1624,7 @@ m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) configured by $[0], generated by m4_PACKAGE_STRING. -Copyright (C) 2008 Free Software Foundation, Inc. +Copyright (C) 2010 Free Software Foundation, Inc. This config.lt script is free software; the Free Software Foundation gives unlimited permision to copy, distribute and modify it." @@ -1527,15 +1669,13 @@ chmod +x "$CONFIG_LT" # appending to config.log, which fails on DOS, as config.log is still kept # open by configure. Here we exec the FD to /dev/null, effectively closing # config.log, so it can be properly (re)opened and appended to by config.lt. -if test "$no_create" != yes; then - lt_cl_success=: - test "$silent" = yes && - lt_config_lt_args="$lt_config_lt_args --quiet" - exec AS_MESSAGE_LOG_FD>/dev/null - $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false - exec AS_MESSAGE_LOG_FD>>config.log - $lt_cl_success || AS_EXIT(1) -fi +lt_cl_success=: +test "$silent" = yes && + lt_config_lt_args="$lt_config_lt_args --quiet" +exec AS_MESSAGE_LOG_FD>/dev/null +$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false +exec AS_MESSAGE_LOG_FD>>config.log +$lt_cl_success || AS_EXIT(1) ])# LT_OUTPUT @@ -1598,15 +1738,12 @@ _LT_EOF # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? - sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ - || (rm -f "$cfgfile"; exit 1) + sed '$q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) - _LT_PROG_XSI_SHELLFNS + _LT_PROG_REPLACE_SHELLFNS - sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ - || (rm -f "$cfgfile"; exit 1) - - mv -f "$cfgfile" "$ofile" || + mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ], @@ -1712,11 +1849,13 @@ AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) +AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_CXX], []) dnl AC_DEFUN([AC_LIBTOOL_F77], []) dnl AC_DEFUN([AC_LIBTOOL_FC], []) dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) +dnl AC_DEFUN([AC_LIBTOOL_RC], []) # _LT_TAG_COMPILER @@ -1821,6 +1960,31 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ [lt_cv_ld_exported_symbols_list=no]) LDFLAGS="$save_LDFLAGS" ]) + AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], + [lt_cv_ld_force_load=no + cat > conftest.c << _LT_EOF +int forced_loaded() { return 2;} +_LT_EOF + echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD + echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD + $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD + echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD + $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD + cat > conftest.c << _LT_EOF +int main() { return 0;} +_LT_EOF + echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err + _lt_result=$? + if test -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; then + lt_cv_ld_force_load=yes + else + cat conftest.err >&AS_MESSAGE_LOG_FD + fi + rm -f conftest.err libconftest.a conftest conftest.c + rm -rf conftest.dSYM + ]) case $host_os in rhapsody* | darwin1.[[012]]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; @@ -1848,7 +2012,7 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi - if test "$DSYMUTIL" != ":"; then + if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= @@ -1868,7 +2032,11 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES], _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported - _LT_TAGVAR(whole_archive_flag_spec, $1)='' + if test "$lt_cv_ld_force_load" = "yes"; then + _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)='' + fi _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" case $cc_basename in @@ -1876,7 +2044,7 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES], *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then - output_verbose_link_cmd=echo + output_verbose_link_cmd=func_echo_all _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" @@ -1892,203 +2060,142 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES], fi ]) -# _LT_SYS_MODULE_PATH_AIX -# ----------------------- +# _LT_SYS_MODULE_PATH_AIX([TAGNAME]) +# ---------------------------------- # Links a minimal program and checks the executable # for the system default hardcoded library path. In most cases, # this is /usr/lib:/lib, but when the MPI compilers are used # the location of the communication and MPI libs are included too. # If we don't find anything, use the default library path according # to the aix ld manual. +# Store the results from the different compilers for each TAGNAME. +# Allow to override them for all tags through lt_cv_aix_libpath. m4_defun([_LT_SYS_MODULE_PATH_AIX], [m4_require([_LT_DECL_SED])dnl -AC_LINK_IFELSE(AC_LANG_PROGRAM,[ -lt_aix_libpath_sed=' - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\(.*\)$/\1/ - p - } - }' -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then - aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -fi],[]) -if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi +if test "${lt_cv_aix_libpath+set}" = set; then + aix_libpath=$lt_cv_aix_libpath +else + AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], + [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ + lt_aix_libpath_sed='[ + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }]' + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi],[]) + if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib" + fi + ]) + aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) +fi ])# _LT_SYS_MODULE_PATH_AIX # _LT_SHELL_INIT(ARG) # ------------------- m4_define([_LT_SHELL_INIT], -[ifdef([AC_DIVERSION_NOTICE], - [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], - [AC_DIVERT_PUSH(NOTICE)]) -$1 -AC_DIVERT_POP -])# _LT_SHELL_INIT +[m4_divert_text([M4SH-INIT], [$1 +])])# _LT_SHELL_INIT + # _LT_PROG_ECHO_BACKSLASH # ----------------------- -# Add some code to the start of the generated configure script which -# will find an echo command which doesn't interpret backslashes. +# Find how we can fake an echo command that does not interpret backslash. +# In particular, with Autoconf 2.60 or later we add some code to the start +# of the generated configure script which will find a shell with a builtin +# printf (which we can use as an echo command). m4_defun([_LT_PROG_ECHO_BACKSLASH], -[_LT_SHELL_INIT([ -# Check that we are running under the correct shell. -SHELL=${CONFIG_SHELL-/bin/sh} - -case X$lt_ECHO in -X*--fallback-echo) - # Remove one level of quotation (which was required for Make). - ECHO=`echo "$lt_ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` - ;; -esac - -ECHO=${lt_ECHO-echo} -if test "X[$]1" = X--no-reexec; then - # Discard the --no-reexec flag, and continue. - shift -elif test "X[$]1" = X--fallback-echo; then - # Avoid inline document here, it may be left over - : -elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then - # Yippee, $ECHO works! - : +[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + +AC_MSG_CHECKING([how to print strings]) +# Test print first, because it will be a builtin if present. +if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' +elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='printf %s\n' else - # Restart under the correct shell. - exec $SHELL "[$]0" --no-reexec ${1+"[$]@"} -fi - -if test "X[$]1" = X--fallback-echo; then - # used as fallback echo - shift - cat <<_LT_EOF -[$]* -_LT_EOF - exit 0 + # Use this function as a fallback that always works. + func_fallback_echo () + { + eval 'cat <<_LTECHO_EOF +$[]1 +_LTECHO_EOF' + } + ECHO='func_fallback_echo' fi -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -if test -z "$lt_ECHO"; then - if test "X${echo_test_string+set}" != Xset; then - # find a string as large as possible, as long as the shell can cope with it - for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do - # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... - if { echo_test_string=`eval $cmd`; } 2>/dev/null && - { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null - then - break - fi - done - fi - - if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && - echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - : - else - # The Solaris, AIX, and Digital Unix default echo programs unquote - # backslashes. This makes it impossible to quote backslashes using - # echo "$something" | sed 's/\\/\\\\/g' - # - # So, first we look for a working echo in the user's PATH. - - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for dir in $PATH /usr/ucb; do - IFS="$lt_save_ifs" - if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && - test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && - echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - ECHO="$dir/echo" - break - fi - done - IFS="$lt_save_ifs" - - if test "X$ECHO" = Xecho; then - # We didn't find a better echo, so look for alternatives. - if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' && - echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - # This shell has a builtin print -r that does the trick. - ECHO='print -r' - elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } && - test "X$CONFIG_SHELL" != X/bin/ksh; then - # If we have ksh, try running configure again with it. - ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} - export ORIGINAL_CONFIG_SHELL - CONFIG_SHELL=/bin/ksh - export CONFIG_SHELL - exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} - else - # Try using printf. - ECHO='printf %s\n' - if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && - echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - # Cool, printf works - : - elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && - test "X$echo_testing_string" = 'X\t' && - echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL - export CONFIG_SHELL - SHELL="$CONFIG_SHELL" - export SHELL - ECHO="$CONFIG_SHELL [$]0 --fallback-echo" - elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && - test "X$echo_testing_string" = 'X\t' && - echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - ECHO="$CONFIG_SHELL [$]0 --fallback-echo" - else - # maybe with a smaller string... - prev=: - - for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do - if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null - then - break - fi - prev="$cmd" - done +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "$*" +} - if test "$prev" != 'sed 50q "[$]0"'; then - echo_test_string=`eval $prev` - export echo_test_string - exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"} - else - # Oops. We lost completely, so just stick with echo. - ECHO=echo - fi - fi - fi - fi - fi -fi +case "$ECHO" in + printf*) AC_MSG_RESULT([printf]) ;; + print*) AC_MSG_RESULT([print -r]) ;; + *) AC_MSG_RESULT([cat]) ;; +esac -# Copy echo and quote the copy suitably for passing to libtool from -# the Makefile, instead of quoting the original, which is used later. -lt_ECHO=$ECHO -if test "X$lt_ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then - lt_ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" -fi +m4_ifdef([_AS_DETECT_SUGGESTED], +[_AS_DETECT_SUGGESTED([ + test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || ( + ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO + ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + PATH=/empty FPATH=/empty; export PATH FPATH + test "X`printf %s $ECHO`" = "X$ECHO" \ + || test "X`print -r -- $ECHO`" = "X$ECHO" )])]) -AC_SUBST(lt_ECHO) -]) _LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) -_LT_DECL([], [ECHO], [1], - [An echo program that does not interpret backslashes]) +_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) ])# _LT_PROG_ECHO_BACKSLASH +# _LT_WITH_SYSROOT +# ---------------- +AC_DEFUN([_LT_WITH_SYSROOT], +[AC_MSG_CHECKING([for sysroot]) +AC_ARG_WITH([sysroot], +[ --with-sysroot[=DIR] Search for dependent libraries within DIR + (or the compiler's sysroot if not specified).], +[], [with_sysroot=no]) + +dnl lt_sysroot will always be passed unquoted. We quote it here +dnl in case the user passed a directory name. +lt_sysroot= +case ${with_sysroot} in #( + yes) + if test "$GCC" = yes; then + lt_sysroot=`$CC --print-sysroot 2>/dev/null` + fi + ;; #( + /*) + lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + ;; #( + no|'') + ;; #( + *) + AC_MSG_RESULT([${with_sysroot}]) + AC_MSG_ERROR([The sysroot must be an absolute path.]) + ;; +esac + + AC_MSG_RESULT([${lt_sysroot:-no}]) +_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl +[dependent libraries, and in which our libraries should be installed.])]) + # _LT_ENABLE_LOCK # --------------- m4_defun([_LT_ENABLE_LOCK], @@ -2117,7 +2224,7 @@ ia64-*-hpux*) ;; *-*-irix6*) # Find out which ABI we are using. - echo '[#]line __oline__ "configure"' > conftest.$ac_ext + echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in @@ -2235,14 +2342,47 @@ need_locks="$enable_libtool_lock" ])# _LT_ENABLE_LOCK +# _LT_PROG_AR +# ----------- +m4_defun([_LT_PROG_AR], +[AC_CHECK_TOOLS(AR, [ar], false) +: ${AR=ar} +: ${AR_FLAGS=cru} +_LT_DECL([], [AR], [1], [The archiver]) +_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) + +AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], + [lt_cv_ar_at_file=no + AC_COMPILE_IFELSE([AC_LANG_PROGRAM], + [echo conftest.$ac_objext > conftest.lst + lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' + AC_TRY_EVAL([lt_ar_try]) + if test "$ac_status" -eq 0; then + # Ensure the archiver fails upon bogus file names. + rm -f conftest.$ac_objext libconftest.a + AC_TRY_EVAL([lt_ar_try]) + if test "$ac_status" -ne 0; then + lt_cv_ar_at_file=@ + fi + fi + rm -f conftest.* libconftest.a + ]) + ]) + +if test "x$lt_cv_ar_at_file" = xno; then + archiver_list_spec= +else + archiver_list_spec=$lt_cv_ar_at_file +fi +_LT_DECL([], [archiver_list_spec], [1], + [How to feed a file listing to the archiver]) +])# _LT_PROG_AR + + # _LT_CMD_OLD_ARCHIVE # ------------------- m4_defun([_LT_CMD_OLD_ARCHIVE], -[AC_CHECK_TOOL(AR, ar, false) -test -z "$AR" && AR=ar -test -z "$AR_FLAGS" && AR_FLAGS=cru -_LT_DECL([], [AR], [1], [The archiver]) -_LT_DECL([], [AR_FLAGS], [1]) +[_LT_PROG_AR AC_CHECK_TOOL(STRIP, strip, :) test -z "$STRIP" && STRIP=: @@ -2269,10 +2409,19 @@ if test -n "$RANLIB"; then esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi + +case $host_os in + darwin*) + lock_old_archive_extraction=yes ;; + *) + lock_old_archive_extraction=no ;; +esac _LT_DECL([], [old_postinstall_cmds], [2]) _LT_DECL([], [old_postuninstall_cmds], [2]) _LT_TAGDECL([], [old_archive_cmds], [2], [Commands used to build an old-style archive]) +_LT_DECL([], [lock_old_archive_extraction], [0], + [Whether to use a lock for old archive extraction]) ])# _LT_CMD_OLD_ARCHIVE @@ -2297,15 +2446,15 @@ AC_CACHE_CHECK([$1], [$2], -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&AS_MESSAGE_LOG_FD - echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. - $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then $2=yes @@ -2345,7 +2494,7 @@ AC_CACHE_CHECK([$1], [$2], if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&AS_MESSAGE_LOG_FD - $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then $2=yes @@ -2408,6 +2557,11 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl lt_cv_sys_max_cmd_len=8192; ;; + mint*) + # On MiNT this can take a long time and run out of memory. + lt_cv_sys_max_cmd_len=8192; + ;; + amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. @@ -2472,8 +2626,8 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. - while { test "X"`$SHELL [$]0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ - = "XX$teststring$teststring"; } >/dev/null 2>&1 && + while { test "X"`func_fallback_echo "$teststring$teststring" 2>/dev/null` \ + = "X$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` @@ -2524,7 +2678,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -[#line __oline__ "configure" +[#line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -2565,7 +2719,13 @@ else # endif #endif -void fnord() { int i=42;} +/* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); @@ -2574,7 +2734,11 @@ int main () if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; - else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } /* dlclose (self); */ } else @@ -2750,16 +2914,16 @@ AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&AS_MESSAGE_LOG_FD - echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings - $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes @@ -2918,6 +3082,7 @@ m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_OBJDUMP])dnl m4_require([_LT_DECL_SED])dnl +m4_require([_LT_CHECK_SHELL_FEATURES])dnl AC_MSG_CHECKING([dynamic linker characteristics]) m4_if([$1], [], [ @@ -2926,16 +3091,23 @@ if test "$GCC" = yes; then darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac - lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then + case $host_os in + mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;; + *) lt_sed_strip_eq="s,=/,/,g" ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` + case $lt_search_path_spec in + *\;*) # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. - lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'` - else - lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` + ;; + *) + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` + ;; + esac # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= @@ -2948,7 +3120,7 @@ if test "$GCC" = yes; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done - lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk ' + lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; @@ -2968,7 +3140,13 @@ BEGIN {RS=" "; FS="/|\n";} { if (lt_foo != "") { lt_freq[[lt_foo]]++; } if (lt_freq[[lt_foo]] == 1) { print lt_foo; } }'` - sys_lib_search_path_spec=`$ECHO $lt_search_path_spec` + # AWK program above erroneously prepends '/' to C:/dos/paths + # for these hosts. + case $host_os in + mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ + $SED 's,/\([[A-Za-z]]:\),\1,g'` ;; + esac + sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi]) @@ -3056,7 +3234,7 @@ amigaos*) m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. - finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; @@ -3087,8 +3265,9 @@ cygwin* | mingw* | pw32* | cegcc*) need_version=no need_lib_prefix=no - case $GCC,$host_os in - yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) + case $GCC,$cc_basename in + yes,*) + # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ @@ -3109,36 +3288,83 @@ cygwin* | mingw* | pw32* | cegcc*) cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" +m4_if([$1], [],[ + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then - # It is most probably a Windows format PATH printed by - # mingw gcc, but we are running on Cygwin. Gcc prints its search - # path with ; separators, and with drive letters. We can handle the - # drive letters (cygwin fileutils understands them), so leave them, - # especially as we might pass files found there to a mingw objdump, - # which wouldn't understand a cygwinified path. Ahh. - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' ;; esac + dynamic_linker='Win32 ld.exe' + ;; + + *,cl*) + # Native MSVC + libname_spec='$name' + soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + library_names_spec='${libname}.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec="$LIB" + if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then + # It is most probably a Windows format PATH. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac + + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' ;; *) + # Assume MSVC wrapper library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' + dynamic_linker='Win32 ld.exe' ;; esac - dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; @@ -3225,6 +3451,19 @@ gnu*) hardcode_into_libs=yes ;; +haiku*) + version_type=linux + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=yes + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. @@ -3267,8 +3506,10 @@ hpux9* | hpux10* | hpux11*) soname_spec='${libname}${release}${shared_ext}$major' ;; esac - # HP-UX runs *really* slowly unless shared libraries are mode 555. + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 ;; interix[[3-9]]*) @@ -3326,7 +3567,7 @@ linux*oldld* | linux*aout* | linux*coff*) ;; # This must be Linux ELF. -linux* | k*bsd*-gnu) +linux* | k*bsd*-gnu | kopensolaris*-gnu) version_type=linux need_lib_prefix=no need_version=no @@ -3335,16 +3576,21 @@ linux* | k*bsd*-gnu) finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no + # Some binutils ld are patched to set DT_RUNPATH - save_LDFLAGS=$LDFLAGS - save_libdir=$libdir - eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ - LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" - AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], - [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], - [shlibpath_overrides_runpath=yes])]) - LDFLAGS=$save_LDFLAGS - libdir=$save_libdir + AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath], + [lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ + LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], + [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], + [lt_cv_shlibpath_overrides_runpath=yes])]) + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + ]) + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install @@ -3356,8 +3602,9 @@ linux* | k*bsd*-gnu) # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then - lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" + fi # We used to test for /lib/ld.so.1 and disable shared libraries on @@ -3589,6 +3836,8 @@ _LT_DECL([], [library_names_spec], [1], The last name is the one that the linker finds with -lNAME]]) _LT_DECL([], [soname_spec], [1], [[The coded name of the library, if different from the real name]]) +_LT_DECL([], [install_override_mode], [1], + [Permission mode override for installation of shared libraries]) _LT_DECL([], [postinstall_cmds], [2], [Command to use after installation of a shared archive]) _LT_DECL([], [postuninstall_cmds], [2], @@ -3701,6 +3950,7 @@ AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_PROG_ECHO_BACKSLASH])dnl AC_ARG_WITH([gnu-ld], [AS_HELP_STRING([--with-gnu-ld], @@ -3822,6 +4072,11 @@ case $reload_flag in esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + if test "$GCC" != yes; then + reload_cmds=false + fi + ;; darwin*) if test "$GCC" = yes; then reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' @@ -3830,8 +4085,8 @@ case $host_os in fi ;; esac -_LT_DECL([], [reload_flag], [1], [How to create reloadable object files])dnl -_LT_DECL([], [reload_cmds], [2])dnl +_LT_TAGDECL([], [reload_flag], [1], [How to create reloadable object files])dnl +_LT_TAGDECL([], [reload_cmds], [2])dnl ])# _LT_CMD_RELOAD @@ -3883,16 +4138,18 @@ mingw* | pw32*) # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump', # unless we find 'file', for example because we are cross-compiling. - if ( file / ) >/dev/null 2>&1; then + # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin. + if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else - lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' + # Keep this pattern in sync with the one in func_win32_libid. + lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; -cegcc) +cegcc*) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' @@ -3922,6 +4179,10 @@ gnu*) lt_cv_deplibs_check_method=pass_all ;; +haiku*) + lt_cv_deplibs_check_method=pass_all + ;; + hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in @@ -3930,11 +4191,11 @@ hpux10.20* | hpux11*) lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) - [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'] + [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'] lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) - lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library' + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac @@ -3956,7 +4217,7 @@ irix5* | irix6* | nonstopux*) ;; # This must be Linux ELF. -linux* | k*bsd*-gnu) +linux* | k*bsd*-gnu | kopensolaris*-gnu) lt_cv_deplibs_check_method=pass_all ;; @@ -4034,6 +4295,21 @@ tpf*) ;; esac ]) + +file_magic_glob= +want_nocaseglob=no +if test "$build" = "$host"; then + case $host_os in + mingw* | pw32*) + if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then + want_nocaseglob=yes + else + file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` + fi + ;; + esac +fi + file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown @@ -4041,7 +4317,11 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown _LT_DECL([], [deplibs_check_method], [1], [Method to check whether dependent libraries are shared objects]) _LT_DECL([], [file_magic_cmd], [1], - [Command to use when deplibs_check_method == "file_magic"]) + [Command to use when deplibs_check_method = "file_magic"]) +_LT_DECL([], [file_magic_glob], [1], + [How to find potential files when deplibs_check_method = "file_magic"]) +_LT_DECL([], [want_nocaseglob], [1], + [Find potential files using nocaseglob when deplibs_check_method = "file_magic"]) ])# _LT_CHECK_MAGIC_METHOD @@ -4098,7 +4378,19 @@ if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. - AC_CHECK_TOOLS(DUMPBIN, ["dumpbin -symbols" "link -dump -symbols"], :) + if test -n "$DUMPBIN"; then : + # Let the user override the test. + else + AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) + case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols" + ;; + *) + DUMPBIN=: + ;; + esac + fi AC_SUBST([DUMPBIN]) if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" @@ -4111,13 +4403,13 @@ _LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], [lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext - (eval echo "\"\$as_me:__oline__: $ac_compile\"" >&AS_MESSAGE_LOG_FD) + (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&AS_MESSAGE_LOG_FD - (eval echo "\"\$as_me:__oline__: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) + (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&AS_MESSAGE_LOG_FD - (eval echo "\"\$as_me:__oline__: output\"" >&AS_MESSAGE_LOG_FD) + (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD) cat conftest.out >&AS_MESSAGE_LOG_FD if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" @@ -4132,6 +4424,67 @@ dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_PROG_NM], []) dnl AC_DEFUN([AC_PROG_NM], []) +# _LT_CHECK_SHAREDLIB_FROM_LINKLIB +# -------------------------------- +# how to determine the name of the shared library +# associated with a specific link library. +# -- PORTME fill in with the dynamic library characteristics +m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], +[m4_require([_LT_DECL_EGREP]) +m4_require([_LT_DECL_OBJDUMP]) +m4_require([_LT_DECL_DLLTOOL]) +AC_CACHE_CHECK([how to associate runtime and link libraries], +lt_cv_sharedlib_from_linklib_cmd, +[lt_cv_sharedlib_from_linklib_cmd='unknown' + +case $host_os in +cygwin* | mingw* | pw32* | cegcc*) + # two different shell functions defined in ltmain.sh + # decide which to use based on capabilities of $DLLTOOL + case `$DLLTOOL --help 2>&1` in + *--identify-strict*) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib + ;; + *) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback + ;; + esac + ;; +*) + # fallback: assume linklib IS sharedlib + lt_cv_sharedlib_from_linklib_cmd="$ECHO" + ;; +esac +]) +sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd +test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO + +_LT_DECL([], [sharedlib_from_linklib_cmd], [1], + [Command to associate shared and link libraries]) +])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB + + +# _LT_PATH_MANIFEST_TOOL +# ---------------------- +# locate the manifest tool +m4_defun([_LT_PATH_MANIFEST_TOOL], +[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) +test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt +AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool], + [lt_cv_path_mainfest_tool=no + echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD + $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out + cat conftest.err >&AS_MESSAGE_LOG_FD + if $GREP 'Manifest Tool' conftest.out > /dev/null; then + lt_cv_path_mainfest_tool=yes + fi + rm -f conftest*]) +if test "x$lt_cv_path_mainfest_tool" != xyes; then + MANIFEST_TOOL=: +fi +_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl +])# _LT_PATH_MANIFEST_TOOL + # LT_LIB_M # -------- @@ -4140,7 +4493,7 @@ AC_DEFUN([LT_LIB_M], [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in -*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*) +*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) # These system don't have libm, or don't need it ;; *-ncr-sysv4.3*) @@ -4168,7 +4521,12 @@ m4_defun([_LT_COMPILER_NO_RTTI], _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= if test "$GCC" = yes; then - _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' + case $cc_basename in + nvcc*) + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;; + *) + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;; + esac _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], lt_cv_prog_compiler_rtti_exceptions, @@ -4185,6 +4543,7 @@ _LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], m4_defun([_LT_CMD_GLOBAL_SYMBOLS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([LT_PATH_NM])dnl AC_REQUIRE([LT_PATH_LD])dnl m4_require([_LT_DECL_SED])dnl @@ -4252,8 +4611,8 @@ esac lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address -lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" -lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" +lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # Handle CRLF in mingw tool chain opt_cr= @@ -4289,6 +4648,7 @@ for ac_symprfx in "" "_"; do else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" # Check to see that the pipe works correctly. pipe_works=no @@ -4310,7 +4670,7 @@ _LT_EOF if AC_TRY_EVAL(ac_compile); then # Now try to grab the symbols. nlist=conftest.nm - if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then + if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" @@ -4322,6 +4682,18 @@ _LT_EOF if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) +/* DATA imports from DLLs on WIN32 con't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT@&t@_DLSYM_CONST +#elif defined(__osf__) +/* This system does not cope well with relocations in const data. */ +# define LT@&t@_DLSYM_CONST +#else +# define LT@&t@_DLSYM_CONST const +#endif + #ifdef __cplusplus extern "C" { #endif @@ -4333,7 +4705,7 @@ _LT_EOF cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ -const struct { +LT@&t@_DLSYM_CONST struct { const char *name; void *address; } @@ -4359,15 +4731,15 @@ static const void *lt_preloaded_setup() { _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext - lt_save_LIBS="$LIBS" - lt_save_CFLAGS="$CFLAGS" + lt_globsym_save_LIBS=$LIBS + lt_globsym_save_CFLAGS=$CFLAGS LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then pipe_works=yes fi - LIBS="$lt_save_LIBS" - CFLAGS="$lt_save_CFLAGS" + LIBS=$lt_globsym_save_LIBS + CFLAGS=$lt_globsym_save_CFLAGS else echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD fi @@ -4400,6 +4772,13 @@ else AC_MSG_RESULT(ok) fi +# Response file support. +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + nm_file_list_spec='@' +elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then + nm_file_list_spec='@' +fi + _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], [Take the output of nm and produce a listing of raw symbols and C names]) _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], @@ -4410,6 +4789,8 @@ _LT_DECL([global_symbol_to_c_name_address], _LT_DECL([global_symbol_to_c_name_address_lib_prefix], [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], [Transform the output of nm in a C name address pair when lib prefix is needed]) +_LT_DECL([], [nm_file_list_spec], [1], + [Specify filename containing input files for $NM]) ]) # _LT_CMD_GLOBAL_SYMBOLS @@ -4421,7 +4802,6 @@ _LT_TAGVAR(lt_prog_compiler_wl, $1)= _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)= -AC_MSG_CHECKING([for $compiler option to produce PIC]) m4_if([$1], [CXX], [ # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then @@ -4472,6 +4852,11 @@ m4_if([$1], [CXX], [ # DJGPP does not support shared libraries at all _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + _LT_TAGVAR(lt_prog_compiler_static, $1)= + ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. @@ -4521,6 +4906,12 @@ m4_if([$1], [CXX], [ ;; esac ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; dgux*) case $cc_basename in ec++*) @@ -4577,7 +4968,7 @@ m4_if([$1], [CXX], [ ;; esac ;; - linux* | k*bsd*-gnu) + linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in KCC*) # KAI C++ Compiler @@ -4610,8 +5001,8 @@ m4_if([$1], [CXX], [ _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; - xlc* | xlC*) - # IBM XL 8.0 on PPC + xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*) + # IBM XL 8.0, 9.0 on PPC and BlueGene _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' @@ -4673,7 +5064,7 @@ m4_if([$1], [CXX], [ ;; solaris*) case $cc_basename in - CC*) + CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' @@ -4777,6 +5168,12 @@ m4_if([$1], [CXX], [ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + _LT_TAGVAR(lt_prog_compiler_static, $1)= + ;; + hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag @@ -4819,6 +5216,13 @@ m4_if([$1], [CXX], [ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac + + case $cc_basename in + nvcc*) # Cuda Compiler Driver 2.2 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Xcompiler -fPIC' + ;; + esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in @@ -4861,7 +5265,7 @@ m4_if([$1], [CXX], [ _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; - linux* | k*bsd*-gnu) + linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) @@ -4882,7 +5286,13 @@ m4_if([$1], [CXX], [ _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' ;; - pgcc* | pgf77* | pgf90* | pgf95*) + nagfor*) + # NAG Fortran compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' @@ -4894,25 +5304,25 @@ m4_if([$1], [CXX], [ # All Alpha code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; - xl*) - # IBM XL C 8.0/Fortran 10.1 on PPC + xl* | bgxl* | bgf* | mpixl*) + # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) - # Sun C 5.9 + *Sun\ F* | *Sun*Fortran*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='' ;; - *Sun\ F*) - # Sun Fortran 8.3 passes all unrecognized flags to the linker + *Sun\ C*) + # Sun C 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - _LT_TAGVAR(lt_prog_compiler_wl, $1)='' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ;; esac ;; @@ -4944,7 +5354,7 @@ m4_if([$1], [CXX], [ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' case $cc_basename in - f77* | f90* | f95*) + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; *) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; @@ -5001,9 +5411,11 @@ case $host_os in _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" ;; esac -AC_MSG_RESULT([$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) -_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], - [How to pass a linker flag through the compiler]) + +AC_CACHE_CHECK([for $compiler option to produce PIC], + [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], + [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) +_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) # # Check to make sure the PIC flag actually works. @@ -5022,6 +5434,8 @@ fi _LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], [Additional compiler flags for building library objects]) +_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], + [How to pass a linker flag through the compiler]) # # Check to make sure the static flag actually works. # @@ -5042,6 +5456,7 @@ _LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], m4_defun([_LT_LINKER_SHLIBS], [AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl +m4_require([_LT_PATH_MANIFEST_TOOL])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_DECL_SED])dnl @@ -5050,27 +5465,35 @@ m4_require([_LT_TAG_COMPILER])dnl AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) m4_if([$1], [CXX], [ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] case $host_os in aix[[4-9]]*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm + # Also, AIX nm treats weak defined symbols like other global defined + # symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then - _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" - ;; + ;; cygwin* | mingw* | cegcc*) - _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' - ;; + case $cc_basename in + cl*) ;; + *) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] + ;; + esac + ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - ;; + ;; esac - _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] ], [ runpath_var= _LT_TAGVAR(allow_undefined_flag, $1)= @@ -5133,7 +5556,33 @@ dnl Note also adjust exclude_expsyms for C++ above. esac _LT_TAGVAR(ld_shlibs, $1)=yes + + # On some targets, GNU ld is compatible enough with the native linker + # that we're better off using the native interface for both. + lt_use_gnu_ld_interface=no if test "$with_gnu_ld" = yes; then + case $host_os in + aix*) + # The AIX port of GNU ld has always aspired to compatibility + # with the native linker. However, as the warning in the GNU ld + # block says, versions before 2.19.5* couldn't really create working + # shared libraries, regardless of the interface used. + case `$LD -v 2>&1` in + *\ \(GNU\ Binutils\)\ 2.19.5*) ;; + *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;; + *\ \(GNU\ Binutils\)\ [[3-9]]*) ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + fi + + if test "$lt_use_gnu_ld_interface" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' @@ -5151,6 +5600,7 @@ dnl Note also adjust exclude_expsyms for C++ above. fi supports_anon_versioning=no case `$LD -v 2>&1` in + *GNU\ gold*) supports_anon_versioning=yes ;; *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... @@ -5166,11 +5616,12 @@ dnl Note also adjust exclude_expsyms for C++ above. _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 -*** Warning: the GNU linker, at least up to release 2.9.1, is reported +*** Warning: the GNU linker, at least up to release 2.19, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you -*** really care for shared libraries, you may want to modify your PATH -*** so that a non-GNU linker is found, and then restart. +*** really care for shared libraries, you may want to install binutils +*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. +*** You will then need to restart the configuration process. _LT_EOF fi @@ -5206,10 +5657,12 @@ _LT_EOF # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' @@ -5227,6 +5680,11 @@ _LT_EOF fi ;; + haiku*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no @@ -5242,7 +5700,7 @@ _LT_EOF _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; - gnu* | linux* | tpf* | k*bsd*-gnu) + gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in @@ -5252,15 +5710,16 @@ _LT_EOF if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then - tmp_addflag= + tmp_addflag=' $pic_flag' tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; - pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group f77 and f90 compilers + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; @@ -5271,13 +5730,17 @@ _LT_EOF lf95*) # Lahey Fortran 8.1 _LT_TAGVAR(whole_archive_flag_spec, $1)= tmp_sharedflag='--shared' ;; - xl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) + xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; + nvcc*) # Cuda Compiler Driver 2.2 + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 @@ -5293,17 +5756,17 @@ _LT_EOF fi case $cc_basename in - xlf*) + xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' - _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ - $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac @@ -5317,8 +5780,8 @@ _LT_EOF _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; @@ -5336,8 +5799,8 @@ _LT_EOF _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi @@ -5383,8 +5846,8 @@ _LT_EOF *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi @@ -5424,8 +5887,10 @@ _LT_EOF else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm + # Also, AIX nm treats weak defined symbols like other global + # defined symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then - _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi @@ -5512,9 +5977,9 @@ _LT_EOF _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an # empty executable. - _LT_SYS_MODULE_PATH_AIX + _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' @@ -5523,14 +5988,19 @@ _LT_EOF else # Determine the default libpath from the value encoded in an # empty executable. - _LT_SYS_MODULE_PATH_AIX + _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' - # Exported symbols can be pulled into shared objects from archives - _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + if test "$with_gnu_ld" = yes; then + # We only use this code for GNU lds that support --whole-archive. + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' @@ -5562,20 +6032,63 @@ _LT_EOF # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - # Tell ltmain to make .lib files, not .a files. - libext=lib - # Tell ltmain to make .dll files, not .so files. - shrext_cmds=".dll" - # FIXME: Setting linknames here is a bad hack. - _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames=' - # The linker will automatically build a .lib file if we build a DLL. - _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' - # FIXME: Should let the user specify the lib program. - _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' - _LT_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`' - _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + case $cc_basename in + cl*) + # Native MSVC + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; + else + sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' + # Don't use ranlib + _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' + _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile="$lt_outputfile.exe" + lt_tool_outputfile="$lt_tool_outputfile.exe" + ;; + esac~ + if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # Assume MSVC wrapper + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + # FIXME: Should let the user specify the lib program. + _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + esac ;; darwin* | rhapsody*) @@ -5613,7 +6126,7 @@ _LT_EOF # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no @@ -5621,7 +6134,7 @@ _LT_EOF hpux9*) if test "$GCC" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi @@ -5636,8 +6149,8 @@ _LT_EOF ;; hpux10*) - if test "$GCC" = yes -a "$with_gnu_ld" = no; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + if test "$GCC" = yes && test "$with_gnu_ld" = no; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi @@ -5655,16 +6168,16 @@ _LT_EOF ;; hpux11*) - if test "$GCC" = yes -a "$with_gnu_ld" = no; then + if test "$GCC" = yes && test "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else @@ -5676,7 +6189,14 @@ _LT_EOF _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) - _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + m4_if($1, [], [ + # Older versions of the 11.00 compiler do not understand -b yet + # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) + _LT_LINKER_OPTION([if $CC understands -b], + _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b], + [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], + [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])], + [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags']) ;; esac fi @@ -5704,19 +6224,34 @@ _LT_EOF irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" - AC_LINK_IFELSE(int foo(void) {}, - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' - ) - LDFLAGS="$save_LDFLAGS" + # This should be the same for all languages, so no per-tag cache variable. + AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], + [lt_cv_irix_exported_symbol], + [save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" + AC_LINK_IFELSE( + [AC_LANG_SOURCE( + [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], + [C++], [[int foo (void) { return 0; }]], + [Fortran 77], [[ + subroutine foo + end]], + [Fortran], [[ + subroutine foo + end]])])], + [lt_cv_irix_exported_symbol=yes], + [lt_cv_irix_exported_symbol=no]) + LDFLAGS="$save_LDFLAGS"]) + if test "$lt_cv_irix_exported_symbol" = yes; then + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' + fi else - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' @@ -5778,17 +6313,17 @@ _LT_EOF _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' + _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' @@ -5798,13 +6333,13 @@ _LT_EOF osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ - $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' + $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' @@ -5817,9 +6352,9 @@ _LT_EOF _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) @@ -5995,36 +6530,38 @@ x|xyes) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. - AC_MSG_CHECKING([whether -lc should be explicitly linked in]) - $RM conftest* - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - if AC_TRY_EVAL(ac_compile) 2>conftest.err; then - soname=conftest - lib=conftest - libobjs=conftest.$ac_objext - deplibs= - wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) - pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) - compiler_flags=-v - linker_flags=-v - verstring= - output_objdir=. - libname=conftest - lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) - _LT_TAGVAR(allow_undefined_flag, $1)= - if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) - then - _LT_TAGVAR(archive_cmds_need_lc, $1)=no - else - _LT_TAGVAR(archive_cmds_need_lc, $1)=yes - fi - _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag - else - cat conftest.err 1>&5 - fi - $RM conftest* - AC_MSG_RESULT([$_LT_TAGVAR(archive_cmds_need_lc, $1)]) + AC_CACHE_CHECK([whether -lc should be explicitly linked in], + [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1), + [$RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if AC_TRY_EVAL(ac_compile) 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) + pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) + _LT_TAGVAR(allow_undefined_flag, $1)= + if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) + then + lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no + else + lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes + fi + _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + ]) + _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1) ;; esac fi @@ -6089,8 +6626,6 @@ _LT_TAGDECL([], [inherit_rpath], [0], to runtime path list]) _LT_TAGDECL([], [link_all_deplibs], [0], [Whether libtool must link a program against all its dependency libraries]) -_LT_TAGDECL([], [fix_srcfile_path], [1], - [Fix the shell variable $srcfile for the compiler]) _LT_TAGDECL([], [always_export_symbols], [0], [Set to "yes" if exported symbols are required]) _LT_TAGDECL([], [export_symbols_cmds], [2], @@ -6101,6 +6636,8 @@ _LT_TAGDECL([], [include_expsyms], [1], [Symbols that must always be exported]) _LT_TAGDECL([], [prelink_cmds], [2], [Commands necessary for linking programs (against libraries) with templates]) +_LT_TAGDECL([], [postlink_cmds], [2], + [Commands necessary for finishing linking programs]) _LT_TAGDECL([], [file_list_spec], [1], [Specify filename containing input files]) dnl FIXME: Not yet implemented @@ -6190,37 +6727,22 @@ CC="$lt_save_CC" ])# _LT_LANG_C_CONFIG -# _LT_PROG_CXX -# ------------ -# Since AC_PROG_CXX is broken, in that it returns g++ if there is no c++ -# compiler, we have our own version here. -m4_defun([_LT_PROG_CXX], -[ -pushdef([AC_MSG_ERROR], [_lt_caught_CXX_error=yes]) -AC_PROG_CXX -if test -n "$CXX" && ( test "X$CXX" != "Xno" && - ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || - (test "X$CXX" != "Xg++"))) ; then - AC_PROG_CXXCPP -else - _lt_caught_CXX_error=yes -fi -popdef([AC_MSG_ERROR]) -])# _LT_PROG_CXX - -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([_LT_PROG_CXX], []) - - # _LT_LANG_CXX_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a C++ compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_CXX_CONFIG], -[AC_REQUIRE([_LT_PROG_CXX])dnl -m4_require([_LT_FILEUTILS_DEFAULTS])dnl +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_PATH_MANIFEST_TOOL])dnl +if test -n "$CXX" && ( test "X$CXX" != "Xno" && + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || + (test "X$CXX" != "Xg++"))) ; then + AC_PROG_CXXCPP +else + _lt_caught_CXX_error=yes +fi AC_LANG_PUSH(C++) _LT_TAGVAR(archive_cmds_need_lc, $1)=no @@ -6242,6 +6764,8 @@ _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no @@ -6273,6 +6797,7 @@ if test "$_lt_caught_CXX_error" != yes; then # Allow CC to be a program name with arguments. lt_save_CC=$CC + lt_save_CFLAGS=$CFLAGS lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX @@ -6290,6 +6815,7 @@ if test "$_lt_caught_CXX_error" != yes; then fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} + CFLAGS=$CXXFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) @@ -6311,8 +6837,8 @@ if test "$_lt_caught_CXX_error" != yes; then # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' @@ -6344,7 +6870,7 @@ if test "$_lt_caught_CXX_error" != yes; then # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else GXX=no @@ -6453,10 +6979,10 @@ if test "$_lt_caught_CXX_error" != yes; then _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an empty # executable. - _LT_SYS_MODULE_PATH_AIX + _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' @@ -6465,14 +6991,19 @@ if test "$_lt_caught_CXX_error" != yes; then else # Determine the default libpath from the value encoded in an # empty executable. - _LT_SYS_MODULE_PATH_AIX + _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' - # Exported symbols can be pulled into shared objects from archives - _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + if test "$with_gnu_ld" = yes; then + # We only use this code for GNU lds that support --whole-archive. + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared # libraries. @@ -6502,28 +7033,75 @@ if test "$_lt_caught_CXX_error" != yes; then ;; cygwin* | mingw* | pw32* | cegcc*) - # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, - # as there is no search path for DLLs. - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_TAGVAR(always_export_symbols, $1)=no - _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - - if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - cp $export_symbols $output_objdir/$soname.def; - else - echo EXPORTS > $output_objdir/$soname.def; - cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; + case $GXX,$cc_basename in + ,cl* | no,cl*) + # Native MSVC + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; + else + $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + # Don't use ranlib + _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' + _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile="$lt_outputfile.exe" + lt_tool_outputfile="$lt_tool_outputfile.exe" + ;; + esac~ + func_to_tool_file "$lt_outputfile"~ + if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # g++ + # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; @@ -6565,6 +7143,11 @@ if test "$_lt_caught_CXX_error" != yes; then gnu*) ;; + haiku*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + hpux9*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: @@ -6589,11 +7172,11 @@ if test "$_lt_caught_CXX_error" != yes; then # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. - output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no @@ -6654,7 +7237,7 @@ if test "$_lt_caught_CXX_error" != yes; then # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. - output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then @@ -6664,10 +7247,10 @@ if test "$_lt_caught_CXX_error" != yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi @@ -6697,7 +7280,7 @@ if test "$_lt_caught_CXX_error" != yes; then case $cc_basename in CC*) # SGI C++ - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is @@ -6708,9 +7291,9 @@ if test "$_lt_caught_CXX_error" != yes; then *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' fi fi _LT_TAGVAR(link_all_deplibs, $1)=yes @@ -6721,7 +7304,7 @@ if test "$_lt_caught_CXX_error" != yes; then _LT_TAGVAR(inherit_rpath, $1)=yes ;; - linux* | k*bsd*-gnu) + linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler @@ -6739,7 +7322,7 @@ if test "$_lt_caught_CXX_error" != yes; then # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. - output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' @@ -6776,26 +7359,26 @@ if test "$_lt_caught_CXX_error" != yes; then pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in - *pgCC\ [[1-5]]* | *pgcpp\ [[1-5]]*) + *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*) _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ - compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' + compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ - $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ + $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ $RANLIB $oldlib' _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ - $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ - $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; - *) # Version 6 will use weak symbols + *) # Version 6 and above use weak symbols _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; @@ -6803,7 +7386,7 @@ if test "$_lt_caught_CXX_error" != yes; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ @@ -6822,9 +7405,9 @@ if test "$_lt_caught_CXX_error" != yes; then # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. - output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' ;; - xl*) + xl* | mpixl* | bgxl*) # IBM XL 8.0 on PPC, with GNU ld _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' @@ -6844,13 +7427,13 @@ if test "$_lt_caught_CXX_error" != yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. - output_verbose_link_cmd='echo' + output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is @@ -6919,7 +7502,7 @@ if test "$_lt_caught_CXX_error" != yes; then _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi - output_verbose_link_cmd=echo + output_verbose_link_cmd=func_echo_all else _LT_TAGVAR(ld_shlibs, $1)=no fi @@ -6954,15 +7537,15 @@ if test "$_lt_caught_CXX_error" != yes; then case $host in osf3*) _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' ;; *) _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ - $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~ + $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~ $RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' ;; @@ -6978,17 +7561,17 @@ if test "$_lt_caught_CXX_error" != yes; then # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. - output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' case $host in osf3*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; esac @@ -6998,7 +7581,7 @@ if test "$_lt_caught_CXX_error" != yes; then # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # FIXME: insert proper C++ library support @@ -7034,7 +7617,7 @@ if test "$_lt_caught_CXX_error" != yes; then solaris*) case $cc_basename in - CC*) + CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(archive_cmds_need_lc,$1)=yes _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' @@ -7055,7 +7638,7 @@ if test "$_lt_caught_CXX_error" != yes; then esac _LT_TAGVAR(link_all_deplibs, $1)=yes - output_verbose_link_cmd='echo' + output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is @@ -7075,14 +7658,14 @@ if test "$_lt_caught_CXX_error" != yes; then if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. @@ -7093,7 +7676,7 @@ if test "$_lt_caught_CXX_error" != yes; then # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. - output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' + output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' @@ -7147,6 +7730,10 @@ if test "$_lt_caught_CXX_error" != yes; then CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~ + '"$_LT_TAGVAR(old_archive_cmds, $1)" + _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~ + '"$_LT_TAGVAR(reload_cmds, $1)" ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' @@ -7202,6 +7789,7 @@ if test "$_lt_caught_CXX_error" != yes; then fi # test -n "$compiler" CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC @@ -7216,6 +7804,29 @@ AC_LANG_POP ])# _LT_LANG_CXX_CONFIG +# _LT_FUNC_STRIPNAME_CNF +# ---------------------- +# func_stripname_cnf prefix suffix name +# strip PREFIX and SUFFIX off of NAME. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +# +# This function is identical to the (non-XSI) version of func_stripname, +# except this one can be used by m4 code that may be executed by configure, +# rather than the libtool script. +m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl +AC_REQUIRE([_LT_DECL_SED]) +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) +func_stripname_cnf () +{ + case ${2} in + .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; + *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; + esac +} # func_stripname_cnf +])# _LT_FUNC_STRIPNAME_CNF + # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) # --------------------------------- # Figure out "hidden" library dependencies from verbose @@ -7224,6 +7835,7 @@ AC_LANG_POP # objects, libraries and library flags. m4_defun([_LT_SYS_HIDDEN_LIBDEPS], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl +AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl # Dependencies to place before and after the object being linked: _LT_TAGVAR(predep_objects, $1)= _LT_TAGVAR(postdep_objects, $1)= @@ -7274,6 +7886,13 @@ public class foo { }; _LT_EOF ]) + +_lt_libdeps_save_CFLAGS=$CFLAGS +case "$CC $CFLAGS " in #( +*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; +*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; +esac + dnl Parse the compiler output and extract the necessary dnl objects, libraries and library flags. if AC_TRY_EVAL(ac_compile); then @@ -7285,7 +7904,7 @@ if AC_TRY_EVAL(ac_compile); then pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do - case $p in + case ${prev}${p} in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. @@ -7294,13 +7913,22 @@ if AC_TRY_EVAL(ac_compile); then test $p = "-R"; then prev=$p continue - else - prev= fi + # Expand the sysroot to ease extracting the directories later. + if test -z "$prev"; then + case $p in + -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; + -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; + -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; + esac + fi + case $p in + =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; + esac if test "$pre_test_object_deps_done" = no; then - case $p in - -L* | -R*) + case ${prev} in + -L | -R) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. @@ -7320,8 +7948,10 @@ if AC_TRY_EVAL(ac_compile); then _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" fi fi + prev= ;; + *.lto.$objext) ;; # Ignore GCC LTO objects *.$objext) # This assumes that the test object file only shows up # once in the compiler output. @@ -7357,6 +7987,7 @@ else fi $RM -f confest.$objext +CFLAGS=$_lt_libdeps_save_CFLAGS # PORTME: override above test on systems where it is broken m4_if([$1], [CXX], @@ -7393,7 +8024,7 @@ linux*) solaris*) case $cc_basename in - CC*) + CC* | sunCC*) # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as @@ -7437,32 +8068,16 @@ _LT_TAGDECL([], [compiler_lib_search_path], [1], ])# _LT_SYS_HIDDEN_LIBDEPS -# _LT_PROG_F77 -# ------------ -# Since AC_PROG_F77 is broken, in that it returns the empty string -# if there is no fortran compiler, we have our own version here. -m4_defun([_LT_PROG_F77], -[ -pushdef([AC_MSG_ERROR], [_lt_disable_F77=yes]) -AC_PROG_F77 -if test -z "$F77" || test "X$F77" = "Xno"; then - _lt_disable_F77=yes -fi -popdef([AC_MSG_ERROR]) -])# _LT_PROG_F77 - -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([_LT_PROG_F77], []) - - # _LT_LANG_F77_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a Fortran 77 compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_F77_CONFIG], -[AC_REQUIRE([_LT_PROG_F77])dnl -AC_LANG_PUSH(Fortran 77) +[AC_LANG_PUSH(Fortran 77) +if test -z "$F77" || test "X$F77" = "Xno"; then + _lt_disable_F77=yes +fi _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= @@ -7481,6 +8096,8 @@ _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no @@ -7520,7 +8137,9 @@ if test "$_lt_disable_F77" != yes; then # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC + lt_save_CFLAGS=$CFLAGS CC=${F77-"f77"} + CFLAGS=$FFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) @@ -7574,38 +8193,24 @@ if test "$_lt_disable_F77" != yes; then GCC=$lt_save_GCC CC="$lt_save_CC" + CFLAGS="$lt_save_CFLAGS" fi # test "$_lt_disable_F77" != yes AC_LANG_POP ])# _LT_LANG_F77_CONFIG -# _LT_PROG_FC -# ----------- -# Since AC_PROG_FC is broken, in that it returns the empty string -# if there is no fortran compiler, we have our own version here. -m4_defun([_LT_PROG_FC], -[ -pushdef([AC_MSG_ERROR], [_lt_disable_FC=yes]) -AC_PROG_FC -if test -z "$FC" || test "X$FC" = "Xno"; then - _lt_disable_FC=yes -fi -popdef([AC_MSG_ERROR]) -])# _LT_PROG_FC - -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([_LT_PROG_FC], []) - - # _LT_LANG_FC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for a Fortran compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_FC_CONFIG], -[AC_REQUIRE([_LT_PROG_FC])dnl -AC_LANG_PUSH(Fortran) +[AC_LANG_PUSH(Fortran) + +if test -z "$FC" || test "X$FC" = "Xno"; then + _lt_disable_FC=yes +fi _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= @@ -7624,6 +8229,8 @@ _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no @@ -7663,7 +8270,9 @@ if test "$_lt_disable_FC" != yes; then # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC + lt_save_CFLAGS=$CFLAGS CC=${FC-"f95"} + CFLAGS=$FCFLAGS compiler=$CC GCC=$ac_cv_fc_compiler_gnu @@ -7719,7 +8328,8 @@ if test "$_lt_disable_FC" != yes; then fi # test -n "$compiler" GCC=$lt_save_GCC - CC="$lt_save_CC" + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS fi # test "$_lt_disable_FC" != yes AC_LANG_POP @@ -7756,10 +8366,12 @@ _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. -lt_save_CC="$CC" +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC=yes CC=${GCJ-"gcj"} +CFLAGS=$GCJFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)="$LD" @@ -7769,6 +8381,8 @@ _LT_CC_BASENAME([$compiler]) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) @@ -7784,7 +8398,8 @@ fi AC_LANG_RESTORE GCC=$lt_save_GCC -CC="$lt_save_CC" +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_GCJ_CONFIG @@ -7819,9 +8434,11 @@ _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" +lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC= CC=${RC-"windres"} +CFLAGS= compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) @@ -7834,7 +8451,8 @@ fi GCC=$lt_save_GCC AC_LANG_RESTORE -CC="$lt_save_CC" +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_RC_CONFIG @@ -7893,6 +8511,15 @@ _LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) AC_SUBST([OBJDUMP]) ]) +# _LT_DECL_DLLTOOL +# ---------------- +# Ensure DLLTOOL variable is set. +m4_defun([_LT_DECL_DLLTOOL], +[AC_CHECK_TOOL(DLLTOOL, dlltool, false) +test -z "$DLLTOOL" && DLLTOOL=dlltool +_LT_DECL([], [DLLTOOL], [1], [DLL creation program]) +AC_SUBST([DLLTOOL]) +]) # _LT_DECL_SED # ------------ @@ -7984,8 +8611,8 @@ m4_defun([_LT_CHECK_SHELL_FEATURES], # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" - test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ - = c,a/b,, \ + test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ + = c,a/b,b/c, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes @@ -8024,222 +8651,177 @@ _LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl ])# _LT_CHECK_SHELL_FEATURES -# _LT_PROG_XSI_SHELLFNS -# --------------------- -# Bourne and XSI compatible variants of some useful shell functions. -m4_defun([_LT_PROG_XSI_SHELLFNS], -[case $xsi_shell in - yes) - cat << \_LT_EOF >> "$cfgfile" - -# func_dirname file append nondir_replacement -# Compute the dirname of FILE. If nonempty, add APPEND to the result, -# otherwise set result to NONDIR_REPLACEMENT. -func_dirname () -{ - case ${1} in - */*) func_dirname_result="${1%/*}${2}" ;; - * ) func_dirname_result="${3}" ;; - esac -} - -# func_basename file -func_basename () -{ - func_basename_result="${1##*/}" -} - -# func_dirname_and_basename file append nondir_replacement -# perform func_basename and func_dirname in a single function -# call: -# dirname: Compute the dirname of FILE. If nonempty, -# add APPEND to the result, otherwise set result -# to NONDIR_REPLACEMENT. -# value returned in "$func_dirname_result" -# basename: Compute filename of FILE. -# value retuned in "$func_basename_result" -# Implementation must be kept synchronized with func_dirname -# and func_basename. For efficiency, we do not delegate to -# those functions but instead duplicate the functionality here. -func_dirname_and_basename () -{ - case ${1} in - */*) func_dirname_result="${1%/*}${2}" ;; - * ) func_dirname_result="${3}" ;; - esac - func_basename_result="${1##*/}" -} - -# func_stripname prefix suffix name -# strip PREFIX and SUFFIX off of NAME. -# PREFIX and SUFFIX must not contain globbing or regex special -# characters, hashes, percent signs, but SUFFIX may contain a leading -# dot (in which case that matches only a dot). -func_stripname () -{ - # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are - # positional parameters, so assign one to ordinary parameter first. - func_stripname_result=${3} - func_stripname_result=${func_stripname_result#"${1}"} - func_stripname_result=${func_stripname_result%"${2}"} -} - -# func_opt_split -func_opt_split () -{ - func_opt_split_opt=${1%%=*} - func_opt_split_arg=${1#*=} -} - -# func_lo2o object -func_lo2o () -{ - case ${1} in - *.lo) func_lo2o_result=${1%.lo}.${objext} ;; - *) func_lo2o_result=${1} ;; - esac -} - -# func_xform libobj-or-source -func_xform () -{ - func_xform_result=${1%.*}.lo -} - -# func_arith arithmetic-term... -func_arith () -{ - func_arith_result=$(( $[*] )) -} - -# func_len string -# STRING may not start with a hyphen. -func_len () -{ - func_len_result=${#1} -} - -_LT_EOF - ;; - *) # Bourne compatible functions. - cat << \_LT_EOF >> "$cfgfile" - -# func_dirname file append nondir_replacement -# Compute the dirname of FILE. If nonempty, add APPEND to the result, -# otherwise set result to NONDIR_REPLACEMENT. -func_dirname () -{ - # Extract subdirectory from the argument. - func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` - if test "X$func_dirname_result" = "X${1}"; then - func_dirname_result="${3}" - else - func_dirname_result="$func_dirname_result${2}" - fi -} +# _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY) +# ------------------------------------------------------ +# In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and +# '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY. +m4_defun([_LT_PROG_FUNCTION_REPLACE], +[dnl { +sed -e '/^$1 ()$/,/^} # $1 /c\ +$1 ()\ +{\ +m4_bpatsubsts([$2], [$], [\\], [^\([ ]\)], [\\\1]) +} # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: +]) -# func_basename file -func_basename () -{ - func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` -} -dnl func_dirname_and_basename -dnl A portable version of this function is already defined in general.m4sh -dnl so there is no need for it here. +# _LT_PROG_REPLACE_SHELLFNS +# ------------------------- +# Replace existing portable implementations of several shell functions with +# equivalent extended shell implementations where those features are available.. +m4_defun([_LT_PROG_REPLACE_SHELLFNS], +[if test x"$xsi_shell" = xyes; then + _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl + case ${1} in + */*) func_dirname_result="${1%/*}${2}" ;; + * ) func_dirname_result="${3}" ;; + esac]) -# func_stripname prefix suffix name -# strip PREFIX and SUFFIX off of NAME. -# PREFIX and SUFFIX must not contain globbing or regex special -# characters, hashes, percent signs, but SUFFIX may contain a leading -# dot (in which case that matches only a dot). -# func_strip_suffix prefix name -func_stripname () -{ - case ${2} in - .*) func_stripname_result=`$ECHO "X${3}" \ - | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; - *) func_stripname_result=`$ECHO "X${3}" \ - | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; - esac -} + _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl + func_basename_result="${1##*/}"]) -# sed scripts: -my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q' -my_sed_long_arg='1s/^-[[^=]]*=//' + _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl + case ${1} in + */*) func_dirname_result="${1%/*}${2}" ;; + * ) func_dirname_result="${3}" ;; + esac + func_basename_result="${1##*/}"]) + + _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl + # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are + # positional parameters, so assign one to ordinary parameter first. + func_stripname_result=${3} + func_stripname_result=${func_stripname_result#"${1}"} + func_stripname_result=${func_stripname_result%"${2}"}]) + + _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl + func_split_long_opt_name=${1%%=*} + func_split_long_opt_arg=${1#*=}]) + + _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl + func_split_short_opt_arg=${1#??} + func_split_short_opt_name=${1%"$func_split_short_opt_arg"}]) + + _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl + case ${1} in + *.lo) func_lo2o_result=${1%.lo}.${objext} ;; + *) func_lo2o_result=${1} ;; + esac]) -# func_opt_split -func_opt_split () -{ - func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` - func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` -} + _LT_PROG_FUNCTION_REPLACE([func_xform], [ func_xform_result=${1%.*}.lo]) -# func_lo2o object -func_lo2o () -{ - func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` -} + _LT_PROG_FUNCTION_REPLACE([func_arith], [ func_arith_result=$(( $[*] ))]) -# func_xform libobj-or-source -func_xform () -{ - func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[[^.]]*$/.lo/'` -} + _LT_PROG_FUNCTION_REPLACE([func_len], [ func_len_result=${#1}]) +fi -# func_arith arithmetic-term... -func_arith () -{ - func_arith_result=`expr "$[@]"` -} +if test x"$lt_shell_append" = xyes; then + _LT_PROG_FUNCTION_REPLACE([func_append], [ eval "${1}+=\\${2}"]) -# func_len string -# STRING may not start with a hyphen. -func_len () -{ - func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len` -} + _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl + func_quote_for_eval "${2}" +dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \ + eval "${1}+=\\\\ \\$func_quote_for_eval_result"]) -_LT_EOF -esac + # Save a `func_append' function call where possible by direct use of '+=' + sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: +else + # Save a `func_append' function call even when '+=' is not available + sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: +fi -case $lt_shell_append in - yes) - cat << \_LT_EOF >> "$cfgfile" +if test x"$_lt_function_replace_fail" = x":"; then + AC_MSG_WARN([Unable to substitute extended shell functions in $ofile]) +fi +]) -# func_append var value -# Append VALUE to the end of shell variable VAR. -func_append () -{ - eval "$[1]+=\$[2]" -} -_LT_EOF +# _LT_PATH_CONVERSION_FUNCTIONS +# ----------------------------- +# Determine which file name conversion functions should be used by +# func_to_host_file (and, implicitly, by func_to_host_path). These are needed +# for certain cross-compile configurations and native mingw. +m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +AC_MSG_CHECKING([how to convert $build file names to $host format]) +AC_CACHE_VAL(lt_cv_to_host_file_cmd, +[case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 + ;; + esac ;; - *) - cat << \_LT_EOF >> "$cfgfile" - -# func_append var value -# Append VALUE to the end of shell variable VAR. -func_append () -{ - eval "$[1]=\$$[1]\$[2]" -} - -_LT_EOF + *-*-cygwin* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin + ;; + esac ;; - esac + * ) # unhandled hosts (and "normal" native builds) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; +esac +]) +to_host_file_cmd=$lt_cv_to_host_file_cmd +AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) +_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], + [0], [convert $build file names to $host format])dnl + +AC_MSG_CHECKING([how to convert $build file names to toolchain format]) +AC_CACHE_VAL(lt_cv_to_tool_file_cmd, +[#assume ordinary cross tools, or native build. +lt_cv_to_tool_file_cmd=func_convert_file_noop +case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 + ;; + esac + ;; +esac ]) +to_tool_file_cmd=$lt_cv_to_tool_file_cmd +AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) +_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], + [0], [convert $build files to toolchain format])dnl +])# _LT_PATH_CONVERSION_FUNCTIONS # Helper functions for option handling. -*- Autoconf -*- # -# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. +# Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation, +# Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. -# serial 6 ltoptions.m4 +# serial 7 ltoptions.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) @@ -8354,7 +8936,7 @@ LT_OPTION_DEFINE([LT_INIT], [win32-dll], [enable_win32_dll=yes case $host in -*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*) +*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) AC_CHECK_TOOL(AS, as, false) AC_CHECK_TOOL(DLLTOOL, dlltool, false) AC_CHECK_TOOL(OBJDUMP, objdump, false) @@ -8362,13 +8944,13 @@ case $host in esac test -z "$AS" && AS=as -_LT_DECL([], [AS], [0], [Assembler program])dnl +_LT_DECL([], [AS], [1], [Assembler program])dnl test -z "$DLLTOOL" && DLLTOOL=dlltool -_LT_DECL([], [DLLTOOL], [0], [DLL creation program])dnl +_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl test -z "$OBJDUMP" && OBJDUMP=objdump -_LT_DECL([], [OBJDUMP], [0], [Object dumper program])dnl +_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl ])# win32-dll AU_DEFUN([AC_LIBTOOL_WIN32_DLL], @@ -8726,31 +9308,31 @@ m4_define([lt_dict_filter], # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. -# Generated from ltversion.in. +# @configure_input@ -# serial 3017 ltversion.m4 +# serial 3293 ltversion.m4 # This file is part of GNU Libtool -m4_define([LT_PACKAGE_VERSION], [2.2.6b]) -m4_define([LT_PACKAGE_REVISION], [1.3017]) +m4_define([LT_PACKAGE_VERSION], [2.4]) +m4_define([LT_PACKAGE_REVISION], [1.3293]) AC_DEFUN([LTVERSION_VERSION], -[macro_version='2.2.6b' -macro_revision='1.3017' +[macro_version='2.4' +macro_revision='1.3293' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) # lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- # -# Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc. +# Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004. # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. -# serial 4 lt~obsolete.m4 +# serial 5 lt~obsolete.m4 # These exist entirely to fool aclocal when bootstrapping libtool. # @@ -8820,7 +9402,6 @@ m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) -m4_ifndef([AC_LIBTOOL_RC], [AC_DEFUN([AC_LIBTOOL_RC])]) m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) @@ -8833,9 +9414,17 @@ m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) - -# nls.m4 serial 3 (gettext-0.15) -dnl Copyright (C) 1995-2003, 2005-2006 Free Software Foundation, Inc. +m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) +m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) +m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) +m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) +m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) +m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) +m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) + +# nls.m4 serial 5 (gettext-0.18) +dnl Copyright (C) 1995-2003, 2005-2006, 2008-2010 Free Software Foundation, +dnl Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -8853,20 +9442,21 @@ dnl Authors: dnl Ulrich Drepper , 1995-2000. dnl Bruno Haible , 2000-2003. -AC_PREREQ(2.50) +AC_PREREQ([2.50]) AC_DEFUN([AM_NLS], [ AC_MSG_CHECKING([whether NLS is requested]) dnl Default is enabled NLS - AC_ARG_ENABLE(nls, + AC_ARG_ENABLE([nls], [ --disable-nls do not use Native Language Support], USE_NLS=$enableval, USE_NLS=yes) - AC_MSG_RESULT($USE_NLS) - AC_SUBST(USE_NLS) + AC_MSG_RESULT([$USE_NLS]) + AC_SUBST([USE_NLS]) ]) # pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- +# serial 1 (pkg-config-0.24) # # Copyright © 2004 Scott James Remnant . # @@ -8894,7 +9484,10 @@ AC_DEFUN([AM_NLS], AC_DEFUN([PKG_PROG_PKG_CONFIG], [m4_pattern_forbid([^_?PKG_[A-Z_]+$]) m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) -AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl +AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) +AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) +AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) + if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) fi @@ -8907,7 +9500,6 @@ if test -n "$PKG_CONFIG"; then AC_MSG_RESULT([no]) PKG_CONFIG="" fi - fi[]dnl ])# PKG_PROG_PKG_CONFIG @@ -8916,21 +9508,20 @@ fi[]dnl # Check to see whether a particular set of modules exists. Similar # to PKG_CHECK_MODULES(), but does not set variables or print errors. # -# -# Similar to PKG_CHECK_MODULES, make sure that the first instance of -# this or PKG_CHECK_MODULES is called, or make sure to call -# PKG_CHECK_EXISTS manually +# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +# only at the first occurence in configure.ac, so if the first place +# it's called might be skipped (such as if it is within an "if", you +# have to call PKG_CHECK_EXISTS manually # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_EXISTS], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl if test -n "$PKG_CONFIG" && \ AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then - m4_ifval([$2], [$2], [:]) + m4_default([$2], [:]) m4_ifvaln([$3], [else $3])dnl fi]) - # _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) # --------------------------------------------- m4_define([_PKG_CONFIG], @@ -8983,6 +9574,7 @@ and $1[]_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.]) if test $pkg_failed = yes; then + AC_MSG_RESULT([no]) _PKG_SHORT_ERRORS_SUPPORTED if test $_pkg_short_errors_supported = yes; then $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1` @@ -8992,7 +9584,7 @@ if test $pkg_failed = yes; then # Put the nasty error message in config.log where it belongs echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD - ifelse([$4], , [AC_MSG_ERROR(dnl + m4_default([$4], [AC_MSG_ERROR( [Package requirements ($2) were not met: $$1_PKG_ERRORS @@ -9000,25 +9592,24 @@ $$1_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. -_PKG_TEXT -])], - [AC_MSG_RESULT([no]) - $4]) +_PKG_TEXT]) + ]) elif test $pkg_failed = untried; then - ifelse([$4], , [AC_MSG_FAILURE(dnl + AC_MSG_RESULT([no]) + m4_default([$4], [AC_MSG_FAILURE( [The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. _PKG_TEXT -To get pkg-config, see .])], - [$4]) +To get pkg-config, see .]) + ]) else $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS $1[]_LIBS=$pkg_cv_[]$1[]_LIBS AC_MSG_RESULT([yes]) - ifelse([$3], , :, [$3]) + $3 fi[]dnl ])# PKG_CHECK_MODULES @@ -9111,29 +9702,6 @@ AC_PREREQ([2.50])dnl am_aux_dir=`cd $ac_aux_dir && pwd` ]) - -# Copyright (C) 1996, 1997, 1999, 2000, 2001, 2002, 2003, 2005 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 4 - -# This was merged into AC_PROG_CC in Autoconf. - -AU_DEFUN([AM_PROG_CC_STDC], -[AC_PROG_CC -AC_DIAGNOSE([obsolete], [$0: - your code should no longer depend upon `am_cv_prog_cc_stdc', but upon - `ac_cv_prog_cc_stdc'. Remove this warning and the assignment when - you adjust the code. You can also remove the above call to - AC_PROG_CC if you already called it elsewhere.]) -am_cv_prog_cc_stdc=$ac_cv_prog_cc_stdc -]) -AU_DEFUN([fp_PROG_CC_STDC]) - # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 @@ -9432,18 +10000,6 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ]) -# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 8 - -# AM_CONFIG_HEADER is obsolete. It has been replaced by AC_CONFIG_HEADERS. -AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)]) - # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, @@ -9884,6 +10440,33 @@ Check your system clock]) fi AC_MSG_RESULT(yes)]) +# Copyright (C) 2009 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 1 + +# AM_SILENT_RULES([DEFAULT]) +# -------------------------- +# Enable less verbose build rules; with the default set to DEFAULT +# (`yes' being less verbose, `no' or empty being verbose). +AC_DEFUN([AM_SILENT_RULES], +[AC_ARG_ENABLE([silent-rules], +[ --enable-silent-rules less verbose build output (undo: `make V=1') + --disable-silent-rules verbose build output (undo: `make V=0')]) +case $enable_silent_rules in +yes) AM_DEFAULT_VERBOSITY=0;; +no) AM_DEFAULT_VERBOSITY=1;; +*) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; +esac +AC_SUBST([AM_DEFAULT_VERBOSITY])dnl +AM_BACKSLASH='\' +AC_SUBST([AM_BACKSLASH])dnl +_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl +]) + # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation diff --git a/barcode-0.98/COPYING b/barcode-0.98/COPYING deleted file mode 100644 index a43ea212..00000000 --- a/barcode-0.98/COPYING +++ /dev/null @@ -1,339 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 675 Mass Ave, Cambridge, MA 02139, USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - Appendix: How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) 19yy - - 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 2 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, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) 19yy name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. diff --git a/barcode-0.98/ChangeLog b/barcode-0.98/ChangeLog deleted file mode 100644 index 024706de..00000000 --- a/barcode-0.98/ChangeLog +++ /dev/null @@ -1,460 +0,0 @@ -2002-03-01 Alessandro Rubini - - * library.c (Barcode_Encode): handle bitsets separately, like - in Barcode_Print (otherwise, you might loose NO_CHECKSUM). - - * debian/changelog: moved to 0.98 (but should fix all debian/ stuff) - - * contrib/barcode-for-delphi.tar.gz: new, contributed by Michael Geddes - - * contrib/barcode-for-delphi.tar.gz.README: short info for file above - - * main.c (main): allow "-g" to set size of code in a table as well - -- suggested and initiallt implemented by Joachim Reichelt. - (main): fixed missing "Page: 1 1" in postscript for tables - (main): for tables don't use Encode_and_Print, use a local - unrolled version, so the default margin can be removed and - we avoid problems with negative xoff in the output phase - (first column may be offset, as noted by Karl Magnus Kolstoe) - - * doc/doc.barcode: documented change above. - - * README: removed refernces to systemy.it, I'm no more there - Added link to FreeBSD ports tree and GLabels - Organized as sections with titles - - * contrib/barcode-SVG.tar.gz: new contribution, by David J. Humphreys - - * contrib/barcode-SVG.tar.gz.README: short description of file above - - * contrib/grab-0.0.4.tar.gz: new program, by Tuukka Toivonen. - - * contrib/grab-0.0.4.tar.gz.README: short description of file above - -2002-03-01 Boszormenyi Zoltan - - * barcode.spec: new file - -2002-02-27 Alessandro Rubini - - * bookland/bookland.py: updated to version 0.92 by Judah Milgram - -2001-11-13 Alessandro Rubini - - * README: Added a pointer to the Windows port. - -2001-11-09 Cloyce D. Spradling - - * code128.c (Barcode_128b_verify): prototype fix (unsigned char). - - * ps.c (Barcode_ps_print): the comment for ascii codes must only - be printed if ascii is being printed (benign bug). - -2001-11-06 Christoph Pross - - * pcl.c (Barcode_pcl_print): bugfix: bars were misplaced - -2001-10-16 Nathan D. Holmes - - ====> Version 0.97 released to ftp.systemy.it and ftp.gnu.org - - * code93.c: new file (I modified something as well - Alessandro) - - * doc/doc.barcode (Supported Encodings): added docs for code93 - - * main.c: added code93 names - - * Makefile.in (LIBOBJECTS): added code93.o - - * library.c: added code93 entry points - -2001-10-16 Alessandro Rubini - - * doc/manpager: added (trivial) support for @itemize, added copyright - - * sample.c (main): accept -P to create PCL output - - * doc/doc.barcode (PCL Output): added the section, using text - provided by Andrea Scopece and turning it into texinfo. - Removed also a few extra newlines that made bad man pages - -2001-10-16 Andrea Scopece - - * barcode.h: added BARCODE_OUT_PCL and BARCODE_OUT_PCL_III - - * library.c (Barcode_Print): use BARCODE_OUT_PCL to select pcl_print() - - * Makefile.in (LIBOBJECTS): added pcl.o - - * pcl.c: new file, with PCL output support - -2001-10-16 Alessandro Rubini - - * doc/doc.barcode (Supported Encodings): added documentation for - EAN and UPC with checksum, as coded by mr. Böszörményi (below) - -2001-10-16 Boszormenyi Zoltan - - * ean.c: - - I found that barcode-0.96 does not correctly encodes UPC-E. - This was mainly because in upc_e_to_a() the switch() branches - all ended without "break;". - - Printing UPC-E did not print the leading encoding number and - the trailing UPC-A checksum. Now it does. - - Accept EAN-13 and EAN-8 with and without the checksum. - So always treat 7 and 12 digit sequences as valid EAN codes - and accept 8 and 13 digit sequences as valid EAN codes when - the last digit is the same as the calculated one. - - Accept UPC-A as above (11 or 12 digit sequences.) - - Accepts UPC-E as: - 6 digit sequence: the middle part of the code (leading '0' assumed) - 7 digit sequence: the middle part and either a leading '0' or '1', - or a trailing UPC-A checksum. In that case, leading '0' assumed. - 8 digit sequence: a leading '0' or '1', middle part, checksum - - UPC-A, UPC-E, EAN-13, and EAN-8 may all include - an additional barcode to the right of the main barcode. - - As a 7 or a 12 digit sequence may be ambiguous, please remember - that EAN is checked before UPC if you specified BARCODE_ANY. - -2001-08-20 Alessandro Rubini - - * sample.c (main): added upc-e and ean-8 samples - -2001-08-11 Boszormenyi Zoltan - - * ps.c (Barcode_ps_print): don't output "showpage" in EPS mode - -2001-08-11 Alessandro Rubini - - * README: Changed host names, added barcode-commit list. - -2000-11-29 Alessandro Rubini - - * doc/doc.barcode (The Field List): 1pt == 0.352mm, not 0.0352 - (thanks to Stephen Irven for reporting) - -2000-11-09 Alessandro Rubini - - ====> Version 0.96 released to ftp.systemy.it and ftp.gnu.org - - * doc/Makefile.in ($(TARGET).html): fixed bug introduced on Sep 08 - - * doc/doc.barcode (top): correctly deal with "makeinfo --html" - -2000-11-08 Alessandro Rubini - - * README: new network pointers added - - * codabar.c (Barcode_cbr_encode): don't print ascii text for the - checksum. - - * doc/doc.barcode (The Intermediate Representaion): new section - Documented the new encodings by Leonid. - Promoted two sections to chapters - Added Leonid in the AUTHORS section of the manpage. - - * Makefile.in: don't remove docs in distclean, as the distribution - now includes the docs - -2000-11-07 Alessandro Rubini - - * Makefile.in (clean): don't remove docs, do that only in distclean - - * doc/Makefile.in: a new life for the former Makefile (to build - with both gmake and pmake with features added on 2000-09-08) - - * configure.in: use $MAKE in checking for gmake if set - (to allow testing with BSD make) - Check if makeinfo can manage html, used for doc/Makefile.in - -2000-11-07 Leonid A. Broukhis - - * code128.c (Barcode_encode_as): fixed a bug that prevented F - symbols to be correctly encoded. - - * plessey.c: new file, for Plessey encoding. - - * msi.c: new file, for MSI encoding. - - * codabar.c: new file, for CodaBar encoding. - - * code128.c (Barcode_128raw_encode): new encoding - (Barcode_128raw_verify): checker for new encoding - - * barcode.h, library.c, main.c: added code128raw, codabar, - MSI and Plessey - -2000-11-07 Hans Schou - - * contrib/barcodeps-0.1.tgz: new file, sent to Alessandro on Oct 7 - -2000-10-10 Alessandro Rubini - - * doc/manpager: use gsub instead of gensub, even though it may - leas to problems with some input. This achieves compatibility - with the original awk, so gawk is not needed any more - -2000-10-02 Alessandro Rubini - - * ps.c (Barcode_ps_print): add a backslash in front of '(' too. - Suggested by H Y . - (Barcode_ps_print): use ps arrays to get compact (and prettier) - PostScript output. Suggested by Hans Schou . - - * main.c (get_geometry): accept "+offset+offset" to keep default size. - Suggested by Godmar Back . - -2000-09-16 Alessandro Rubini - - * ps.c (Barcode_ps_print): use "half text height" instead of - "two text heights" as minimum bar height. Suggested by - Oliver Vecernik . - -2000-09-14 Alessandro Rubini - - * barcode.h: added the standard ``extern "C"'' stuff for C++ - (bug reported by Dany Pardo ) - -2000-09-08 Andrea Ferraris - - * doc/Makefile: added support for pdf and html via makeinfo - - * doc/doc.barcode: added a missing trailing dot in an xref - -2000-08-28 Alessandro Rubini - - * i25.c (Barcode_i25_encode): fixed checksum calculation - (thanks to Hans Schou for reporting) - -2000-05-19 Alessandro Rubini - - ====> Version 0.95.1 released to ftp.prosa.it - - * code128.c (Barcode_128_make_array): use code C if encoding 2 digits - -2000-05-08 Alessandro Rubini - - * cmdline.c (commandline_errormsg): removed "?:" gcc extension - - * configure.in: added checks for unistd.h and strcasecmp, as - windows doesn't have them (thanks Marten Karl) - -2000-04-21 Alessandro Rubini - - * doc/Makefile: modified to build with both gmake and pmake - - * Makefile: modified to build with both gmake and pmake - -2000-04-20 Alessandro Rubini - - * Makefile.in (.depend): removed gmake-specific features. - Thanks to Jukka A. Ukkonen for reporting. - - * configure.in: detect gmake and avoid its features if not there - - * ps.c (Barcode_ps_print): fix: codes with (relatively) short bars - were enlarged in height instead of reduced in width (also - the enlarging was wrong). Thanks to Rob Seace for reporting. - -2000-04-09 Alessandro Rubini - - * code128.c (Barcode_128_encode): removed extra messages to stderr, - forgot in the code when I finished code128 support - - * doc/doc.barcode: bugfix: in the description of geometry, the unit - of measure is configurable - -2000-02-03 Alessandro Rubini - -====> Version 0.95 released to ftp.prosa.it and ftp.gnu.org - -2000-01-26 Alessandro Rubini - - * code128.c (Barcode_128_encode): new encoding: full-featured code128 - - * README: added reference to original ftp site - -2000-01-05 Alessandro Rubini - - * main.c (get_page_geometry): avoid using snprintf(), missing in HP/UX - - * code39.c (Barcode_39_verify): added missing parens (a syntax error, - but only apparent where islower() is not a macro). Thanks to - Alexandre Oliva for finding it out. - -2000-01-04 Alessandro Rubini - - * doc/doc.barcode (The API): removed spurious "flags" argument - from description of Barcode_Encode_and_Print(). - Thanks to Willy Wittesaele for noting the error. - -1999-12-24 Alessandro Rubini - - * main.c (get_geometry): fixed the y margin (thanks to Steve Kunath) - -====> Version 0.94 released to ftp.prosa.it and ftp.gnu.org - -1999-10-24 Alessandro Rubini - - * INSTALL: added instructions to install on a Debian GNU/Linux system - - * debian/*: edited information for proper Debian support - - * debian/rules (binary-arch): new file, from "deb-make" - - * Makefile.in (install): added "-m 0644" to install non-executables - - * code128.c (Barcode_128b_encode): fixed checksum calculation. - -====> Version 0.93 released to ftp.prosa.it and ftp.gnu.org - -1999-09-26 Alessandro Rubini - - * doc/doc.barcode: fixed the rendering of complex options (-g and -t) - Removed extra "table of contents" heading in the ps output - Changed attribution on cover page - - * main.c (get_table and others): be more specific in error msgs - (get_page_geometry): numeric specification is according to "-u" - (get_table): accept unsymmetric margin specification - (option_table): added "-u" to accept "cm", "mm", "in", "pt" - (get_page_geometry): bugfix: numeric spec was always consideder mm - - * cmdline.c (commandline): don't always print help - - * Makefile.in ($(INFO)): added missing dependency: distributed docs - formats were out of date with distributed doc source. - -1999-09-13 Alessandro Rubini - - * main.c (main): print tables: y used xmargin (Tim Withers,Jon Bakken) - -1999-09-06 Alessandro Rubini - - * Makefile.in: prevent -Wall when compiling getopt. - - * i25.c, ean.c, ps.c: switched to unsigned char, to prevent warnings - on newer gcc's (thanks Al Piszcz) - -====> Version 0.92 released to ftp.prosa.it and ftp.gnu.org - -1999-08-31 Alessandro Rubini - - * i25.c: the right guard was thinner than other bars - - * doc/doc.barcode: spelling and manpage fixes (thanks Joachim Schaaf) - -====> Version 0.91.4 released to ftp.prosa.it - -1999-08-23 Thad Floryan - - * main.c (strerror): replacement strerror selected by autoconf - -1999-08-06 Alessandro Rubini - - * changed all "ENODATA" in "EINVAL", as some system miss ENODATA - - * Makefile.in (all): removed ".depend" from all, as it needs gcc - - * i25.c (Barcode_i25_encode): fixed wrong free() in an unlinely path - - * ean.c (Barcode_ean_encode): don't use sprintf's result, as some - systems return a char pointer instead of the number of chars. - - * configure.in: new file, as autoconf support is being added - -====> Version 0.91.3 released to ftp.prosa.it - -1999-08-05 Alessandro Rubini - - * code128.c (Barcode_128c_encode): fixed malloc of textinfo (was short) - - * i25.c (Barcode_i25_encode): new encoding: interleaved 2 of 5 - - * ean.c (Barcode_ean_encode): enlarged static "text", to fit add-5 - - * code128.c (Barcode_128b_encode): new encoding: 128-B - -====> Version 0.91.2 released to ftp.prosa.it - -1999-08-04 Alessandro Rubini - - * bookland/bookland.py: upgraded to version 0.06 (Judas Milgram) - - * ean.c (Barcode_ean_encode): fixed layout of 1st/last digit in UPC-A - - * code128.c (Barcode_128c_encode): fixed checksum calculation - -====> Version 0.91.1 released to ftp.prosa.it - -1999-07-09 Alessandro Rubini - - * sample.c (main): due changes to show code128-C - - * code128.c (Barcode_128c_encode): implemented code 128-C - - * ps.c (Barcode_ps_print): Accept float position and font size - - * code39.c (Barcode_39_encode): reduced font (looked too big) - -====> Version 0.91 released to both ftp.prosa.it and ftp.gnu.org - -1999-07-08 Alessandro Rubini - - * ps.c (Barcode_ps_print): shrink all the bars by 0.15 points - (Barcode_ps_print): Use Helvetica as font, not Courier-Bold - (Barcode_ps_print): remember previous font to make shorter ps output - -1999-07-07 Alessandro Rubini - - * bookland/bookland.py: new enntry, by Judah Milgram. - - * ean.c (Barcode_isbn_verify): fixed bug with "-X" codes (thanks Judah) - -====> Version 0.90.3 released to ftp.prosa.it/pub/software - -1999-07-07 Alessandro Rubini - - * doc/doc.barcode: fixed the "BUGS" section (remove fixed stuff) - - * ean.c (Barcode_ean_encode): added '+' markers in partial and textinfo - - * ps.c (Barcode_ps_print): added support for text over bars ('+' mode) - -====> Version 0.90.2, internal checkpoint - -1999-07-06 Alessandro Rubini - - * Makefile: dirty autodetect of libpaper - - * main.c (get_page_geometry): parse a cmdline argument (mcm@glisco.it) - (main): added "--version" - (main): added diagnostic message for unencodable strings - -====> Version 0.90.1 released to ftp.prosa.it/pub/software - -1999-07-03 Alessandro Rubini - - * barcode.h: removed BARCODE_OUT_PG_* as only the library doesn't - need to hack with the page size. - - * ean.c (Barcode_ean_encode): supplemental 2 and 5 encodings (no text) - - * library.c: use unsigned char all over the place, to prevent warnings - -1999-07-01 Alessandro Rubini - - * ean.c: added EAN-8 and UPC-E support - - * Updated the address of the FSF in any source file - - * README: new file. - -====> Version 0.90 is the first public release. No Changelog up to now. diff --git a/barcode-0.98/INSTALL b/barcode-0.98/INSTALL deleted file mode 100644 index 5a6cb878..00000000 --- a/barcode-0.98/INSTALL +++ /dev/null @@ -1,31 +0,0 @@ - -Installing on generic Unix systems ----------------------------------- - -The package includes both a library and a standalone program. -To install everything try - - ./configure && make && make install - -To uninstall, try - - make uninstall - -You may have problems compiling the package on non-GNUish systems, -because the tool currently uses both gmake and gawk features, and I have -no access to non-gnu systems. If your operating system isn't able to -compile barcode and you are willing to help porting, feel free to call me. - - -Installing on Debian/GNU systems --------------------------------- - -The suggested installation here includes creation of a Debian package: - - debian/rules binary - -Then, just install using dpkg: - - dpkg -i ../barcode-0.98_*.deb - -(the "*" here will represent your architecture: "i386", "alpha", "sparc", ...) diff --git a/barcode-0.98/Makefile.am b/barcode-0.98/Makefile.am deleted file mode 100644 index e7456ab9..00000000 --- a/barcode-0.98/Makefile.am +++ /dev/null @@ -1,73 +0,0 @@ -INCLUDES = \ - $(GLABELS_CFLAGS) - - -BC_FILES = \ - library.c \ - ean.c \ - code128.c \ - code39.c \ - code93.c \ - i25.c \ - msi.c \ - plessey.c \ - codabar.c \ - ps.c \ - pcl.c \ - barcode.h - -noinst_LTLIBRARIES = libbarcode.la - -libbarcode_la_SOURCES = $(BC_FILES) - -EXTRA_DIST = \ - barcode.spec \ - ChangeLog \ - cmdline.c \ - cmdline.h \ - configure \ - configure.in.dist \ - COPYING \ - INSTALL \ - install-sh \ - main.c \ - Makefile.in.dist \ - missing \ - mkinstalldirs \ - README \ - README.glabels \ - sample.c \ - TODO \ - bookland/bookland.py \ - compat/getopt.c \ - compat/getopt.h \ - contrib/barcode-for-delphi.tar.gz \ - contrib/barcode-SVG.tar.gz.README \ - contrib/barcode-for-delphi.tar.gz.README \ - contrib/barcodeps-0.1.tgz \ - contrib/grab-0.0.4.tar.gz \ - contrib/barcodeps-0.1.tgz.README \ - contrib/grab-0.0.4.tar.gz.README \ - contrib/barcode-SVG.tar.gz \ - debian/changelog \ - debian/control \ - debian/copyright \ - debian/dirs \ - debian/info \ - debian/README.debian \ - debian/rules \ - doc/barcodedoc.txt \ - doc/barcode.ps \ - doc/infofilter \ - doc/manpager \ - doc/texi2html \ - doc/barcode.info \ - doc/mktxt \ - doc/barcode.pdf \ - doc/doc.barcode \ - doc/Makefile.in \ - doc/README - - - - diff --git a/barcode-0.98/Makefile.in.dist b/barcode-0.98/Makefile.in.dist deleted file mode 100644 index 848aa265..00000000 --- a/barcode-0.98/Makefile.in.dist +++ /dev/null @@ -1,141 +0,0 @@ -# -# This Makefile should run fine with both pmake and gmake -# - -CC = @CC@ -CFLAGS = @CFLAGS@ @DEFS@ @NO_GETOPT@ @NO_LIBPAPER@ @NO_STRERROR@ -RANLIB = @RANLIB@ - -INSTALL = @INSTALL@ - -LDFLAGS = -L. -l$(TARGET) @LIBPAPER@ - -prefix = @prefix@ -BINDIR = $(prefix)/bin -LIBDIR = $(prefix)/lib -INCDIR = $(prefix)/include -MAN1DIR = $(prefix)/man/man1 -MAN3DIR = $(prefix)/man/man3 -INFODIR = $(prefix)/info - -# getopt may be installed or not, if not take our copy -GETOPT_O = @GETOPT_O@ - -TARGET = barcode -LIBRARY = lib$(TARGET).a -MAN1 = $(TARGET).1 -MAN3 = $(TARGET).3 -INFO = doc/$(TARGET).info -HEADER = $(TARGET).h - -LIBOBJECTS = library.o ean.o code128.o code39.o code93.o i25.o \ - msi.o plessey.o codabar.o \ - ps.o pcl.o -EXEOBJECTS = main.o cmdline.o $(GETOPT_O) -ALLSOURCES = $(LIBOBJECTS:.o=.c) $(EXEOBJECT:.o=.c) - - -#Hmm... "RM" is undefined in pmake -RM = rm - -all: $(TARGET) $(LIBRARY) $(MAN1) $(MAN3) $(INFO) sample - -$(TARGET): $(LIBRARY) $(EXEOBJECTS) - $(CC) $(CFLAGS) $(EXEOBJECTS) $(LDFLAGS) -o $(TARGET) - -sample: sample.o $(LIBRARY) - $(CC) $(CFLAGS) sample.o $(LDFLAGS) -o $@ - -# Avoid the standard CFLAGS, to avoid -Wall and -DNO_GETOPT -compat/getopt.o: compat/getopt.c - $(CC) -O -c compat/getopt.c -o $@ - -$(LIBRARY): $(LIBOBJECTS) - $(AR) r $(LIBRARY) $(LIBOBJECTS) - $(RANLIB) $(LIBRARY) - -$(MAN1) $(MAN3): doc/doc.$(TARGET) - awk -f doc/manpager doc/doc.$(TARGET) - - -# Unfortunately, pmake has no "-C". Also, "pmake -n" doesn't follow the cd. -$(INFO): doc/doc.$(TARGET) - cd doc && $(MAKE) - -install: - $(INSTALL) -d $(BINDIR) $(INCDIR) $(LIBDIR) $(MAN1DIR) \ - $(MAN3DIR) $(INFODIR) - $(INSTALL) -c $(TARGET) $(BINDIR) - $(INSTALL) -c -m 0644 $(HEADER) $(INCDIR) - $(INSTALL) -c -m 0644 $(LIBRARY) $(LIBDIR) - $(INSTALL) -c -m 0644 $(MAN1) $(MAN1DIR) - $(INSTALL) -c -m 0644 $(MAN3) $(MAN3DIR) - $(INSTALL) -c -m 0644 $(INFO) $(INFODIR) - -uninstall: - $(RM) -f $(BINDIR)/$(TARGET) - $(RM) -f $(INCDIR)/$(HEADER) - $(RM) -f $(LIBDIR)/$(LIBRARY) - $(RM) -f $(MAN1DIR)/$(MAN1) - $(RM) -f $(MAN3DIR)/$(MAN3) - $(RM) -f $(INDODIR)/$(INFO) - -#Make clean keeps the compiled documents -clean: - $(RM) -f *.o */*.o *~ */*~ $(TARGET) $(LIBRARY) - $(RM) -f $(MAN1) $(MAN3) core sample - cd doc && $(MAKE) terse - $(RM) -f .depend - -distclean: clean - if [ -f build ]; then debian/rules clean; fi - # remove the configure stuff as well - $(RM) -f Makefile config.h config.log config.status config.cache \ - doc/Makefile - -cleanest: clean - cd doc && $(MAKE) clean - -Makefile: Makefile.in configure - ./configure - -configure: configure.in - autoconf - -.depend: $(ALLSOURCES) - $(CC) $(CFLAGS) -MM $(ALLSOURCES) > $@ - -depend: .depend - -tar: - @if [ "x" = "x$(RELEASE)" ]; then \ - n=`basename \`pwd\``; cd ..; tar cvf - $$n | gzip > $$n.tar.gz; \ - echo 'you can set a numeric $$(RELEASE) to make a named tar'; \ - else \ - if [ -d ../$(TARGET)-$(RELEASE) ]; then \ - rm -rf ../$(TARGET)-$(RELEASE); \ - fi; \ - mkdir ../$(TARGET)-$(RELEASE) || exit 1; \ - cp -a . ../$(TARGET)-$(RELEASE) && cd .. && \ - tar --exclude '*/CVS*' \ - -cvzf $(TARGET)-$(RELEASE).tar.gz $(TARGET)-$(RELEASE); \ - fi - -# print the version, as I usually forget to update it when distributing -printv: - @grep -n VERSION $(HEADER) /dev/null - @grep -n set.version doc/doc.$(TARGET) /dev/null - @grep -n dpkg.-i INSTALL /dev/null - -# and this is how I make the distribution -distrib: $(INFO) distclean tar printv - - -.PHONY: all install uninstall mostlyclean clean disclean depend \ - tar printv distrib - -# Only if make is gmake, have a rule to conditionally include .depend -@GMAKEDEPEND0@ -@GMAKEDEPEND1@ -@GMAKEDEPEND2@ - diff --git a/barcode-0.98/README b/barcode-0.98/README deleted file mode 100644 index d3ae2a7f..00000000 --- a/barcode-0.98/README +++ /dev/null @@ -1,93 +0,0 @@ - -NETWORK LINKS -============= - -This is GNU-barcode. The latest release can be downloaded from ftp.gnu.org -and mirrors: - ftp://ftp.gnu.org/pub/gnu/barcode/ - -It is also available from my own ftp/http server - ftp://ar.linux.it/pub/barcode/ - http://ar.linux.it/pub/barcode/ (same as above). - -The current source tree is available by anonymous CVS. See - http://ar.linux.it/software/#cvs - -Plesae note that ar.linux.it/pub/barcode also includes CVS snapshots, -semi-atumatically taken when I commit stuff to CVS. Note that CVS -snapshots include "CVS/" directories, so you can then "cvs update" for -further updates. - -The documentation is online at: - http://ar.linux.it/software/barcode - -The MS-Windows port is maintained at: - http://gnuwin32.sourceforge.net/packages/barcode.htm - -It as also been included in the FreeBSD ports tree in the "graphics" section. -This means /usr/ports/graphics/barcode. It's thus available from: - http://www.freebsd.org/ports/graphics.html - -GLabels, at http://snaught.com/glabels/, uses barcode internally, too. - -DESCRIPTION -=========== - -The package is meant to solve most needs in barcode creation with a -conventional printer. It can create printouts for the conventional -product tagging standards: UPC-A, UPC-E, EAN-13, EAN-8, ISBN, as well -as a few other formats. Ouput is generated as either Postscript or -Encapsulated Postscript (other back-ends may be added if needed). - -The package is released as both a library and a command-line frontend, -so that you can include barcode-generation into your application. The -program is released in the hope that is proves useful but without any -warranty, according to the GPL Licence (see ./COPYING). - -If you're specifically interested in making an ISBN (Bookland EAN) -symbol, you might try to get "bookland.py" by Judah Milgram -(http://www.cgpp.com/bookland/, whose version 0.92 is also included in -the directory "bookland" within this package, for your convenience). -While my main target is flexibility his main target is strict -adherence to the standards. Bookland is free software like the barcode -library and will probabily have its role in the GNU project. -Bookland.py is a self-documenting program, you'll enjoy browsing its -source code. - -Other contributed patches and/or software are available in the -contrib/ directory. - -Please take the "no-warranty" disclaimer seriously: even though I -spent reasonable efforts to make sure the output is useable in -production you should verify it suits your needs as a faulty bar can -cost you a bundle, and you'll be on your own. It's up to you to verify -that the symbol is valid (and, obviously, I'd like to know about any -problem you encounter). [This paragraph copied verbatim from bookland.py] - - -ACKNOWLEDGMENTS -=============== - -I would like to thank both Judah Milgram and Michele Comitini -(mcm@glisco.it) for their help with this tool, as well as Jim Westveer -for introducing me to Debian packaging. Several encodings have been -implemented by Leonid A. Broukhis (leob@mailcom.com). - - -MAILING LISTS -============= - -There is a mailing list where development is coordinated, called -barcode@lists.linux.it . To get subscribed you should - echo subscribe | mail barcode-request@lists.linux.it -or anything equivalent. - -To receive notification of CVS commit messages, please subscribe to -barcode-commit@ar.linux.it, by issuing: - echo subscribe | mail barcode-commit-request@ar.linux.it - -(if you guess, "ar" or "arcana" is my own server, while lists.linux.it -is the mail server of the italian association of gnu/linux users). - -/alessandro (rubini@gnu.org) - diff --git a/barcode-0.98/README.glabels b/barcode-0.98/README.glabels deleted file mode 100644 index b0dc9592..00000000 --- a/barcode-0.98/README.glabels +++ /dev/null @@ -1,7 +0,0 @@ -The following changes have been made to the stock barcode-0.98 distribution -to facilitate compilation with glabels: - - Makefile.in renamed to Makefile.in.dist - configure.in renamed to configure.in.dist - added Makefile.am, which is configured from ../configure.in - diff --git a/barcode-0.98/TODO b/barcode-0.98/TODO deleted file mode 100644 index c91c79cf..00000000 --- a/barcode-0.98/TODO +++ /dev/null @@ -1,23 +0,0 @@ - - Possible enhancements that I'd like to add - -* verbose mode, printing position information to stderr - -* document how a new encoding standard can be added - -* add Barcode_String, which has been contributed - -* EAN128 (as agreed with Dani Pardo) - -* Postnet and associated encoding-specific bar definitions - -* Use texinfo 4 with images - -* shrink the bars to account for ink spreading - - Currently, small barcodes don't get rendered well. While - version 0.91 and later subtracts 0.15 points from the size of - the bars (I found that this makes good results for small - bars), a smart alghorithm to shrink the bars is needed to get - lighter prints at small sizes without loosing readability. - diff --git a/barcode-0.98/barcode.h b/barcode-0.98/barcode.h deleted file mode 100644 index 6b9bdf4e..00000000 --- a/barcode-0.98/barcode.h +++ /dev/null @@ -1,119 +0,0 @@ -/* - * barcode.h -- definitions for libbarcode - * - * Copyright (c) 1999 Alessandro Rubini (rubini@gnu.org) - * Copyright (c) 1999 Prosa Srl. (prosa@prosa.it) - * - * 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 2 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, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. - */ - -#ifndef _BARCODE_H_ -#define _BARCODE_H_ - -#include - -#define BARCODE_VERSION "0.98" -#define BARCODE_VERSION_INT 9800 - -/* - * The object - */ -struct Barcode_Item { - int flags; /* type of encoding and decoding */ - char *ascii; /* malloced */ - char *partial; /* malloced too */ - char *textinfo; /* information about text positioning */ - char *encoding; /* code name, filled by encoding engine */ - int width, height; /* output units */ - int xoff, yoff; /* output units */ - int margin; /* output units */ - double scalef; /* requested scaling for barcode */ - int error; /* an errno-like value, in case of failure */ -}; - -/* - * The flags field - */ -#define BARCODE_DEFAULT_FLAGS 0x00000000 - -#define BARCODE_ENCODING_MASK 0x000000ff /* 256 possibilites... */ -#define BARCODE_NO_ASCII 0x00000100 /* avoid text in output */ -#define BARCODE_NO_CHECKSUM 0x00000200 /* avoid checksum in output */ - -#define BARCODE_OUTPUT_MASK 0x000ff000 /* 256 output types */ -#define BARCODE_OUT_EPS 0x00001000 -#define BARCODE_OUT_PS 0x00002000 -#define BARCODE_OUT_PCL 0x00004000 /* by Andrea Scopece */ -/* PCL_III 0x00008000 */ -#define BARCODE_OUT_PCL_III 0x0000C000 -#define BARCODE_OUT_NOHEADERS 0x00100000 /* no header nor footer */ - -enum { - BARCODE_ANY = 0, /* choose best-fit */ - BARCODE_EAN, - BARCODE_UPC, /* upc == 12-digit ean */ - BARCODE_ISBN, /* isbn numbers (still EAN13) */ - BARCODE_39, /* code 39 */ - BARCODE_128, /* code 128 (a,b,c: autoselection) */ - BARCODE_128C, /* code 128 (compact form for digits) */ - BARCODE_128B, /* code 128, full printable ascii */ - BARCODE_I25, /* interleaved 2 of 5 (only digits) */ - BARCODE_128RAW, /* Raw code 128 (by Leonid A. Broukhis) */ - BARCODE_CBR, /* Codabar (by Leonid A. Broukhis) */ - BARCODE_MSI, /* MSI (by Leonid A. Broukhis) */ - BARCODE_PLS, /* Plessey (by Leonid A. Broukhis) */ - BARCODE_93 /* code 93 (by Nathan D. Holmes) */ -}; - -#define BARCODE_DEFAULT_MARGIN 10 - -#ifdef __cplusplus -extern "C" { -#endif -/* - * Create and destroy barcode structures - */ -extern struct Barcode_Item *Barcode_Create(char *text); -extern int Barcode_Delete(struct Barcode_Item *bc); - -/* - * Encode and print - */ -extern int Barcode_Encode(struct Barcode_Item *bc, int flags); -extern int Barcode_Print(struct Barcode_Item *bc, FILE *f, int flags); - -/* - * Choose the position - */ -extern int Barcode_Position(struct Barcode_Item *bc, int wid, int hei, - int xoff, int yoff, double scalef); - -/* - * Do it all in one step - */ -extern int Barcode_Encode_and_Print(char *text, FILE *f, int wid, int hei, - int xoff, int yoff, int flags); - - -/* - * Return current version (integer and string) - */ -extern int Barcode_Version(char *versionname); - -#ifdef __cplusplus -} -#endif - -#endif /* _BARCODE_H_ */ diff --git a/barcode-0.98/barcode.spec b/barcode-0.98/barcode.spec deleted file mode 100644 index eccb6026..00000000 --- a/barcode-0.98/barcode.spec +++ /dev/null @@ -1,84 +0,0 @@ -%define name barcode -%define ver 0.98 -%define rel 1 -%define prefix /usr -%define sysconfdir /etc - -Summary: GNU barcode -Name: %name -Version: %ver -Release: %rel -Copyright: GPL -Group: Applications/Productivity -Source: ftp://ar.linux.it/pub/barcode/%name-%{ver}.tar.gz -BuildRoot: /var/tmp/%name-%{ver}-root -URL: http://gnu.systemy.it/software/barcode -Prefix: %prefix - -%description -This is GNU-barcode. -The package is meant to solve most needs in barcode creation with a -conventional printer. It can create printouts for the conventional -product tagging standards: UPC-A, UPC-E, EAN-13, EAN-8, ISBN, as well -as a few other formats. Ouput is generated as either Postscript or -Encapsulated Postscript (other back-ends may be added if needed). - -%package devel -Summary: GNU barcode files for development -Group: Development/Libraries - -%description devel -This is GNU-barcode. -The package is meant to solve most needs in barcode creation with a -conventional printer. It can create printouts for the conventional -product tagging standards: UPC-A, UPC-E, EAN-13, EAN-8, ISBN, as well -as a few other formats. Ouput is generated as either Postscript or -Encapsulated Postscript (other back-ends may be added if needed). - -This package contain the C header, the static library and man page -for development. - -%prep -%setup - -%ifarch alpha - ARCH_FLAGS="--host=alpha-redhat-linux" -%endif - -export -n LANG LINGUAS LC_ALL -if [ ! -f configure ]; then - CFLAGS="$RPM_OPT_FLAGS" ./autogen.sh $ARCH_FLAGS --prefix=%{prefix} --sysconfdir=%{sysconfdir} -else - CFLAGS="$RPM_OPT_FLAGS" ./configure $ARCH_FLAGS --prefix=%{prefix} --sysconfdir=%{sysconfdir} -fi - -%build -export -n LANG LINGUAS LC_ALL - -if [ "$SMP" != "" ]; then - (make "MAKE=make -k -j $SMP"; exit 0) - make -else - make -fi - -%install -[ -n "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != / ] && rm -rf $RPM_BUILD_ROOT -make prefix=$RPM_BUILD_ROOT%{prefix} sysconfdir=$RPM_BUILD_ROOT%{sysconfdir} install - -%clean -[ -n "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != / ] && rm -rf $RPM_BUILD_ROOT - -%files -%defattr(-, root, root) - -%doc COPYING ChangeLog INSTALL README TODO doc/*.html doc/*.pdf doc/*.ps - -%attr(0755,root,root) %{prefix}/bin/barcode -%attr(0644,root,root) %{prefix}/info/barcode.info* -%attr(0644,root,root) %{prefix}/man/man1/barcode.1* - -%files devel -%attr(0644,root,root) %{prefix}/include/barcode.h -%attr(0644,root,root) %{prefix}/lib/libbarcode.a -%attr(0644,root,root) %{prefix}/man/man3/barcode.3* diff --git a/barcode-0.98/bookland/bookland.py b/barcode-0.98/bookland/bookland.py deleted file mode 100644 index 373587cb..00000000 --- a/barcode-0.98/bookland/bookland.py +++ /dev/null @@ -1,884 +0,0 @@ -#!/usr/local/bin/python - -MYNAME="bookland.py" -MYVERSION="0.92" -COPYRIGHT="(C) 1999-2001 J. Milgram" -DATE = "Jan. 2002" -MAINTAINER = "bookland-bugs@cgpp.com" - -# Copyright (C) 1999,2000 Judah Milgram -# -# bookland.py - generate Bookland EAN symbol for ISBN encoding -# -# 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 2 -# 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, write to the Free Software Foundation, Inc., -# 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. -# -# ============================================================================== -# -# usage: bookland.py [ISBN] [price-code] > output.eps -# -# ISBN - the ISBN, with or without check digit, with or without hyphens. -# default: 1-56592-197-6 ("Programming Python"). If the check digit -# is provided on the command line, it is verified. If not, it is -# calculated. It's up to you to get the hyphenation right - it's -# important, and something the program can't calculate for you. -# -# price - the five digit add-on code. Usually used to indicate the price, -# in which case the first digit indicates the currency (4=$CAN, -# 5=$US, etc.). The remaining digits indicate the price, with -# decimal point assumed to be between the digit 3 and 4. -# For example: $US 6.95 = 50695, $CAN 35.00 = 43500. Instead of a -# price code, a 5 digit add-on ranging from 90000-98999 can be -# used for internal purposes. BISG recommends just using 90000 if -# you don't want to specify a price. Add-ons ranging from 99000 to -# 99999 have been reserved for special use. -# -# An Encapsulated Postscript file (eps) is sent to standard out. This may in turn -# be converted to other formats using the pbmplus package. You may have trouble -# getting the OCRB to map correctly. If you already have the font, you can look in -# the Fontmap file to see what your system calls it, and edit the fontnames accordingly -# (see below). If you don't have it, you might find it on your DOS system. You -# need a .pfa/.pfb (Type 1) or .ttf (TrueType). Your Postscript interpreter might -# or might not be able to deal with TrueType. In any event, in an emergency, you -# might get away with Helvetica. Note that as of 1990 BISG no longer requires the -# ISBN to be printed in OCR-A. -# -# Take the "no-warranty" disclaimer seriously. Going to print with a faulty bar -# can cost you a bundle, and you'll be on your own. It's up to you to verify that -# the symbol is valid. If you need "corporate accountability", try the Book -# Industry Study Group at (212) 929-1393 or the US ISBN Agency at (908) 665-6770 -# and ask for a list of commercial vendors. Outside the US, don't know. -# -# Feedback welcome. If you discover a case where the program generates a faulty -# symbol, I definitely want to hear about it - write me at milgram@cgpp.com or -# P.O. Box 8376, Langley Park, MD 20787, USA -# -# INSTALLATION: -# -# If you have a Python interpreter on your system, you're done. Just put this file -# somewhere in your path and give it execute permission. If you haven't installed -# Python, see http://www.python.org. It has been ported to Macs, DOS, and MS-Windows. -# -# ABOUT THE BOOKLAND EAN -# -# The most difficult part of this project was finding the documents that define -# the Bookland EAN. There appears to be no single, authoritative source that -# provides all the information required. Some good sources: -# -# [1] "Machine-Readable Coding Guidelines for the U.S. Book Industry", Book -# Industry Study Group, New York, Jan., 1992. (212) 929-1393 -# [2] "UPC Symbol Specification Manual", Uniform Code Council Inc., -# Dayton, Ohio, January 1986 (May 1995 Reprint). (937) 435-3870; I found it -# at http://www.uc-council.org/d36-t.htm -# [3] "EAN Identification for Retail/Trade Items", EAN International. I found it -# in Feb. 1999 at http://www.ean.be/html/Numbering.html -# [4] "Hyphenation Instructions", web page at: -# http://www.isbn.org/standards/home/isbn/international/hyphenation-instructions.asp -# -# The starting point of the exercise is the ISBN, assigned by the national ISBN -# Agency. This is a 10 digit number, the last being a check digit. The ISBN is -# converted to a 13 digit EAN number. The first three digits of the EAN-13 indicate -# the country or region. A prefix of 978 has been assigned to books, regardless -# of country of origin (hence, "Bookland") [3]. The remaining ten digits are the -# first 9 digits of the ISBN followed by the EAN-13 check digit. -# -# It seems the EAN-13 check digit can be calculated using the same algorithm as the -# UPC Version A number. Note that the EAN-13 check digit is always between 0 and 9, -# compare with ISBN check digit which can range to 10 ("X"). See Reference [2], -# Section 2 and Appendix G for details of creation of the EAN-13 symbol. Table 2 of -# Appendix G provides a good comparison of the UPC-A and EAN-13 symbols. -# -# The 5 digit add-on (here called, "UPC5") is defined in Ref. [2] Appendix D. -# The ">" to the right of the five digit code serves to enforce the "quiet zone" to -# the right of the bar pattern. Can't remember where I read that. It's probably -# optional. According to [1], in the UK, three horizontal bars appear over price -# add-ons. Haven't implemented that here. The UPC5 encoding is based on UPC-A and -# UPC-E. -# -# According to [2], Section 3, the EAN-13 numbers and 5-digit add-ons are supposed -# to be printed in OCR-B. The ISBN itself is printed above the EAN-13 symbol. At -# one time it was to be printed in OCR-A, but as of 1990 this requirement has been -# dropped [1], and I assume this means you can use any font you like. -# -# SEE ALSO: -# -# "TinyHelp 5 - Making ISBN Barcodes", D. Byram-Wigfield. Another approach to making -# the ISBN barcode symbol. I saw it at -# http://www.cappella.demon.co.uk/index.html/ -# but haven't tried it. -# -# "XBarcode" - nice open-source X-Windows program for generating all sorts of bar codes. -# It does much more than this program, but didn't seem to do the UPC -# 5-digit add-on or do the ISBN->EAN13 calculation (as of v. 2.11). Might -# have made more sense to add this capability, but I needed a Python project. -# In any event, their license forbids distribution in modified form! -# -# HYPHENATION -# -# bookland.py includes automatic hyphenation for ISBN's in group 0 and 1 -# (English-language). This is based on my reading of Ref [4]. If in doubt, -# users can use the "-y" option to force the program to accept the hyphenation -# as input. For other ISBN groups and for ISMN's, no hyphenation is performed -# other than to ensure a hyphen is placed after the group identifier and before -# the check digit. -# -# ABOUT THE ISMN: -# -# See the ISMN Users' Manual, 3rd Edition, 1998, ISBN 3-88053-070-X, published by -# the International ISMN Agency, Staatsbibliothek Preussischer Kulturbesitz, Berlin. -# I found my copy at http://www.ismn.spk-berlin.de/download/ISMNmanual.pdf -# -# An ISMN is just like an ISBN, except: -# - first character is an "M" -# - the "M" counts as a "3" for computing the ISMN check digit (last digit) -# - the checksum weights are 3,1,3,1,3,1,3,1,3, sum to be divisible by "10". This -# means the last character is always a numerical digit, never an "X". -# - the EAN number is "979" plus the *entire* ten character ISMN, except the -# "M" is replaced by "0". Note this means the ISMN checksum is identical to the -# corresponding EAN-13 checksum (excercise left to the reader). -# -# When bookland.py detects an "M" in the first position of the ISBN, it interprets -# it as an ISMN and proceeds accordingly. The 5-digit price code symbol is suppressed. -# -# BAR WIDTH REDUCTIONS -# -# Starting Version 0.92, the widths of the individual bars can be reduced using the -# "-r" option (units are inches). This is to compensate for bleed during printing. -# I don't know when it's a good idea to actually use this; in any event consult with -# your printer first. If not input, it defaults to zero (no reduction). -# -# ABOUT PYTHON -# -# See http://www.python.org -# -# TO DO: -# -# - Generalize to more bar codes, starting with UPC-A and UPC-E. "Plain" EAN13 is -# already built in, could add command line argument to generate that instead of -# Bookland. -# - Make font sizes and placement easier to configure - not sure I have it right. -# Does human-readable 5-digit code take wider font spacing? -# - Clean up bounding box stuff. -# - Bells and whistles. -# - GUI? -# -# HISTORY: -# -# 1/2002 - v 0.92 add ISMN support (thanks to Lars-Henrik Nysten for this suggestion) -# re-wrote bar generation to preclude possibility of white hairlines -# between adjacent black modules. Thanks to Tero Lindfors for -# reporting this bug. -# new -o option to write eps to file rather than stdout -# new -x option for "check only" (verifies check digit) -# new -r option for bar width reduction (compensate for print bleed) -# new -s option to scale module (bar) height (Lars-Henrik Nysten again) -# can suppress UPC-5 price code by entering empty string. (thanks to -# Jacques Du Pasquier for this suggestion) -# re-wrote ISBN/ISMN sanity checks -# lowercase alphas ("x" for ISBN and "m" for ISMN) now ok on input -# fix "long" command line options. -# 10/2001 - v 0.91 add -z option for quiet zone ">" -# add -f option for fonts -# re-write command line parsing to use getopt -# 1/2000 - v 0.09 eliminate use of eval -# 9/99 - v 0.08 accomodate different versions of OCRB by fitting -# all strings to prescribed width. Thanks to Toby Gadd -# for reporting this problem and Peter Deutsch for -# help finding the fix. -# 7/99 -v0.05-0.07 improve error handling. -# 3/27/99 - v0.04 add "--help" and "--version". -# 3/13/99 - v0.03, do a showpage at end (it's allowed) -# fixed checksum calculations for certain cases -# 2/7/99 - v0.02, fixed LH parity pattern for EAN13. It's not the check digit! -# 2/7/99 - initial release -# ================================================================================ - -# -# barCodeSymbol - the whole printed symbol, including bar code(s) and product code(s). -# UPC, UPCA, UPC5, EAN13 - the number itself, with check digit, string representation, -# and barcode bits -# - -import re # we should get rid of regsub and regex in favor of re - # hope there's no conflict. -import string -import sys -import regsub -from regex_syntax import * -import regex -regex.set_syntax(RE_SYNTAX_AWK) -from types import * - -BooklandError = "Something wrong" - - -A="A";B="B";C="C";O="O";E="E" -UPCABITS = [{O:"0001101",E:"1110010"}, - {O:"0011001",E:"1100110"}, - {O:"0010011",E:"1101100"}, - {O:"0111101",E:"1000010"}, - {O:"0100011",E:"1011100"}, - {O:"0110001",E:"1001110"}, - {O:"0101111",E:"1010000"}, - {O:"0111011",E:"1000100"}, - {O:"0110111",E:"1001000"}, - {O:"0001011",E:"1110100"}] -UPCAPARITY = [ "OOOOOOEEEEEE" ] * 10 -UPCEBITS = [{O:"0001101",E:"0100111"}, - {O:"0011001",E:"0110011"}, - {O:"0010011",E:"0011011"}, - {O:"0111101",E:"0100001"}, - {O:"0100011",E:"0011101"}, - {O:"0110001",E:"0111001"}, - {O:"0101111",E:"0000101"}, - {O:"0111011",E:"0010001"}, - {O:"0110111",E:"0001001"}, - {O:"0001011",E:"0010111"}] -# what about UPCEPARITY? Don't need for isbn. -UPC5BITS = UPCEBITS -UPC5PARITY = ["EEOOO","EOEOO","EOOEO","EOOOE","OEEOO", - "OOEEO","OOOEE","OEOEO","OEOOE","OOEOE"] -EAN13BITS = [{A:"0001101", B:"0100111", C:"1110010"}, - {A:"0011001", B:"0110011", C:"1100110"}, - {A:"0010011", B:"0011011", C:"1101100"}, - {A:"0111101", B:"0100001", C:"1000010"}, - {A:"0100011", B:"0011101", C:"1011100"}, - {A:"0110001", B:"0111001", C:"1001110"}, - {A:"0101111", B:"0000101", C:"1010000"}, - {A:"0111011", B:"0010001", C:"1000100"}, - {A:"0110111", B:"0001001", C:"1001000"}, - {A:"0001011", B:"0010111", C:"1110100"}] -EAN13PARITY = map(lambda x: x+"CCCCCC", - ["AAAAAA","AABABB","AABBAB","AABBBA","ABAABB", - "ABBAAB","ABBBAA","ABABAB","ABABBA","ABBABA"]) - -PSFORMAT = "%.6f" -# Default fonts. -# Fonts might have a different name on your system. -# Edit if required. -ISBNFONT = "OCRB" # Doesn't have to be OCR-B -EAN13FONT = "OCRB" -UPC5FONT = "OCRB" - -class psfile: - - def __init__(self): - self.x0 = 100; self.y0 = 100 - self.lines=[] - self.bb=[self.x0,self.y0,self.x0,self.y0] - - def orbb(self,arg): - self.bb[0] = min(self.bb[0],self.x0+arg[0]) - self.bb[1] = min(self.bb[1],self.y0+arg[1]) - self.bb[2] = max(self.bb[2],self.x0+arg[2]) - self.bb[3] = max(self.bb[3],self.y0+arg[3]) - - def translate(self,dx,dy): - self.x0 = self.x0 + dx - self.y0 = self.y0 + dy - return "%d %d translate 0 0 moveto" % (dx,dy) - - def out(self,file=None): - if file: - outfid=open(file,"w") - else: - outfid=sys.stdout - for line in self.lines: - outfid.write("%s\n"%line) - outfid.close() - - def do(self,arg): - self.lines = self.lines + arg - - def setbb(self): - for i in range(len(self.lines)): - if self.lines[i]=="%%BoundingBox: TBD": - self.lines[i]= "%%BoundingBox:" + \ - " %d"%self.bb[0] + \ - " %d"%self.bb[1] + \ - " %d"%self.bb[2] + \ - " %d"%self.bb[3] - return - - def header(self,title,comments,ean13font,isbnfont,upc5font): - for i in range(len(comments)): - comments[i] = regsub.gsub("^","% ",comments[i]) - # There's a more elegant way to do the bounding box line: - return [ "%!PS-Adobe-2.0 EPSF-1.2", - "%%Creator: " + MYNAME + " " + MYVERSION + " " + DATE, - "%%Title: " + title, - "%%BoundingBox: TBD", - "%%EndComments" ] +\ - comments + \ - [ "\n% These font names might be different on your system:", - "/ean13font { /" + ean13font + " findfont 10 scalefont setfont } def", - "/isbnfont { /" + isbnfont + " findfont 8 scalefont setfont } def", - "/upc5font { /" + upc5font +" findfont 14 scalefont setfont } def\n", - "/nextModule { moduleWidth 0 rmoveto } def", - "% The following shenanigans is to deal with different implementations", - "% of same font having different char sizes and spacing.", - "% function fitstring:", - "% usage: width string font fitstring", - "% set font, scaled so that string exactly fits desired width", - "% leave string on stack", - "/fitstring { dup findfont 1 scalefont setfont % w s f", - "3 1 roll % f w s", - "dup stringwidth pop % f w s sw", - "3 2 roll exch div % f s x", - "3 2 roll findfont exch scalefont setfont", - "} def", - "/barHeight { 72 } def", - "/nextModule { moduleWidth 0 rmoveto } def", - "/topcentershow {dup stringwidth pop neg 2 div -9 rmoveto show} def", - "/toprightshow {dup stringwidth pop neg -9 rmoveto show} def", - "/bottomcentershow {dup stringwidth pop neg 2 div 0 rmoveto show} def", - "/bottomrightshow {dup stringwidth pop neg 0 rmoveto show} def", - "/W { moduleWidth mul 0 rmoveto } def", - "/B { dup moduleWidth mul 2 div 0 rmoveto", - "dup moduleWidth mul barWidthReduction sub setlinewidth", - "0 barHeight rlineto 0 barHeight neg rmoveto", - "currentpoint stroke moveto", - "moduleWidth mul 2 div 0 rmoveto } def", - "/L { dup moduleWidth mul 2 div 0 rmoveto", - "dup moduleWidth mul barWidthReduction sub setlinewidth", - "0 -5 rmoveto 0 5 rlineto", - "0 barHeight rlineto 0 barHeight neg rmoveto", - "currentpoint stroke moveto", - "moduleWidth mul 2 div 0 rmoveto } def", - self.x0,self.y0,"translate", - "0 0 moveto" ] - - def trailer(self): - return ["stroke","% showpage supposedly OK in EPS", - "showpage","\n% Good luck!"] - - -class UPC: - - # Includes UPC-A, UPC-E, EAN-13 (sorry), UPC-5 et al. - - def __init__(self,arg): - # arg is a string, either: - # - product code including checksum - # - same, with hyphens (hyphens not verified) - # - same, but with last digit (checksum) dropped, possibly leaving a - # trailing hyphen. - # If checksum is included, it will be verified. - # N.B. "integer" representation is still a string! Just has no hyphens. - - self.s=arg - self.verifyChars(self.s) - self.n = regsub.gsub("-","",self.s) # create "integer" representation - self.x = self.checkDigit(self.n) # always calculate check digit - if len(self.n) == self.ndigits: - self.verifyCheckDigit() # if check digit given, verify it - elif len(self.n) == self.ndigits-1: - self.tackonCheckDigit() # tack on check digit - else: - raise BooklandError, "UPC: wrong number of digits in \"" + self.s + "\"" - - def setbits(self,arg): # UPC (all) - self.bits="" - parityPattern=self.parityPattern() - bitchar=self.bitchar() - for p in range(len(arg)): - digit=int(arg[p]) - # maybe better to define parityPattern with a leading blank? - parity=parityPattern[p] - bit=bitchar[digit][parity] - self.bits=self.bits + bit - - def verifyChars(self,s): # UPC (all) - # Trailing hyphen allowed. - nevergood = "--|^-|[^0-9-]" - ierr=regex.search(nevergood,s) - if ierr != -1: - raise BooklandError, \ - "UPCA: in %s: illegal characters beginning with: %s" % (s,s[ierr]) - - def verifyCheckDigit(self): # UPC (all) - # first verify correct number of digits. - soll=self.checkDigit(self.n) - ist=self.s[-1:] - if ist != soll: - raise BooklandError, "For %s checksum %s is wrong, should be %s" % \ - (self.s,ist,soll) - - def xstring(self,p): # UPC (all) - return "%d" % p - - def tackonCheckDigit(self): - self.n = self.n + self.x # UPC (all) - self.s = self.s + self.x - -class UPCA(UPC): - - def __init__(self,arg): - UPC.__init__(self,arg) - self.setbits(self.n[1:]) # skip first digit - - def parityPattern(self): - return UPCAPARITY[int(self.x)] - def bitchar(self): - return UPCABITS - - def checkDigit(self,arg): # UPCA/EAN13 - weight=[1,3]*6; magic=10; sum = 0 - for i in range(12): # checksum based on first 12 digits. - sum = sum + int(arg[i]) * weight[i] - z = ( magic - (sum % magic) ) % magic - if z < 0 or z >= magic: - raise BooklandError, "UPC checkDigit: something wrong." - return self.xstring(z) - - -class ISBN: - # Includes ISMN, if the plan falls together. - def __init__(self,arg): - self.ndigits=10 # Includes check digit! - self.s=string.upper(arg) - self.n=re.sub("[ -]","",self.s) # "integer" representation - # In ISMN, I allow spaces in place of hyphens. See ISMN User's manual. - if re.match("^M( |-)?\d(( |-)?\d){7,7}(-| )?\d?$",self.s): - # ISMN - self.name="ISMN" - self.n=re.sub("^M","3",self.n) - self.weight=[3,1,3,1,3,1,3,1,3] - self.magic=10 - elif re.match("^\d-?\d(-?\d){7,7}-?(\d|X)?$",self.s): - # ISBN - self.name="ISBN" - self.weight=[10,9,8,7,6,5,4,3,2] - self.magic=11 - else: - raise BooklandError, "%s invalid (hyphenation, characters, or length)" % self.s - self.x = self.checkDigit() - if len(self.n) == self.ndigits: - self.verifyCheckDigit() # if check digit given, verify it - elif len(self.n) == self.ndigits-1: - self.tackonCheckDigit() # tack on check digit - else: - raise BooklandError, "%s failed. Please report as bug" % self.s - - - def checkDigit(self): # ISBN and ISMN; UPCA/EAN13 similar but for weights etc. - # now that we're checking regex's in init, we don't have to check the - # argument at all. (used to check length and bad characters) - sum = 0 - for i in range(9): # checksum based on first nine digits. - sum = sum + int(self.n[i]) * self.weight[i] - z = ( self.magic - (sum % self.magic) ) % self.magic - if z < 0 or z >= self.magic: - raise BooklandError, \ - "%s: checksum %d is wrong - please report as bug" % (self.s,z) - return self.xstring(z) - - def xstring(self,p): - if p == 10: - return "X" - else: - return "%d" % p - - def tackonCheckDigit(self): - if self.s[-1:] == "-": - # Already have a trailing hyphen - self.s = self.s + self.x - else: - self.s = self.s + "-" + self.x - - def verifyCheckDigit(self): # UPC A; EAN13 - # first verify correct number of digits. - soll=self.x - ist=self.s[-1:] - if ist != soll: raise BooklandError, \ - "For %s checksum %s is wrong, should be %s\n" % (self.s,ist,soll) - -class Bar: - # a run of adjacent modules of identical value. - def __init__(self,val): - self.val=val - if not self.val in "L01": - raise BooklandError, "bar bit: %s, pls report as a bug" % self.val - self.width=1 - if self.val=="1": - self.color="Black" - elif self.val=="0": - self.color="White" - elif self.val=="L": - self.color="Long Black" - def __cmp__(self,other): - if self.val==other or (self.val=="L" and other=="1"): - return 0 - else: - return 1 - def inc(self): - self.width=self.width+1 - def pslines(self): - if self.val=="L": - rval = [ "%d L " % self.width ] - elif self.val=="1": - rval = [ "%d B " % self.width ] - else: - rval = [ "%d W " % self.width ] - return rval - def __repr__(self): - return "%s bar of width %d" % (self.color,self.width) - -class barCodeSymbol: - - def __init__(self): - self.patternWidth = len(self.bits)*self.moduleWidth - # Anything else? - - def bitsComment(self): - return [ "%% Bits:\n%% %s" % self.bits ] - - def psbars(self): - # new version, try to prevent all hairlines between adjacent modules. - bars = [] - bar=Bar(self.bits[0]) - for bit in self.bits[1:]: - if bit==bar: - bar.inc() - else: - bars.append(bar) - bar=Bar(bit) - bars.append(bar) - rval = ["0 0 moveto"] - for bar in bars: - rval = rval + bar.pslines() - rval = rval + [ "stroke" ] - return rval - - def psbarsold(self): - psbits=regsub.gsub("1","I ",self.bits) - psbits=regsub.gsub("0","O ",psbits) - psbits=regsub.gsub("L","L ",psbits) - linewidth=50 - p=0; j=linewidth; m=len(psbits); psbarlines=[]; blanks="^ | $" - while p <= m: - j = min(linewidth,m-p) - psbarlines = psbarlines + [ regsub.gsub(blanks,"",psbits[p:p+j]) ] - p=p+linewidth - return [ "0 0 moveto" ] + psbarlines + [ "stroke" ] - - def psSetBarHeight(self): - return [ "/barHeight { " + PSFORMAT % self.moduleHeight + " 72 mul } def" ] - - def psSetBarWidthReduction(self): - return [ "/barWidthReduction { " + \ - PSFORMAT % self.barWidthReduction + " 72 mul } def" ] - - def psSetModuleWidth(self): - rval = [ "/moduleWidth { " + PSFORMAT % self.moduleWidth + " 72 mul } def" ] - return rval - - def psBottomRightText(self,text,font): - # this is specifically for the upc5 price code. - # this is all starting to get messy. - return [ PSFORMAT % self.patternWidth + " 72 mul dup 2 div", - PSFORMAT % self.moduleHeight + " 72 mul 2 add moveto", - "(" + text + ") /" + font + " fitstring bottomcentershow" ] - - def psTopCenterText(self,text,font): - # the text at the top center of the bar pattern (i.e. the ISBN) - return [ PSFORMAT % self.patternWidth + " 72 mul dup 2 div", - PSFORMAT % self.moduleHeight + " 72 mul 3 add moveto", - " (" + text + ") /" + font + " fitstring bottomcentershow" ] - - def psFittedText(self,width,text,font): - return [ PSFORMAT % width + " (" + text + ") " + font + " fitstring" ] - - # This is optional; serves to enforce quiet zone to right of UPC 5 add-on - def psGreaterThan(self,font): - return [ PSFORMAT % self.patternWidth + " 72 mul", - PSFORMAT % self.moduleHeight + " 72 mul 2 add moveto", - "/%s (>) show" % font ] - -class EAN13Symbol(barCodeSymbol): - - def __init__(self,arg,font=EAN13FONT,heightMultiplier=1,barWidthReduction=0): - # arg is a string with the EAN product code - self.barWidthReduction=barWidthReduction - self.ean13 = EAN13(arg) - self.moduleWidth = 0.0130 - specModuleHeight = 1.00 - self.moduleHeight = 1.00 * heightMultiplier - self.bits = self.ean13.bits - barCodeSymbol.__init__(self) - self.font=font - - def bb(self): - return [ -12, -10, self.patternWidth*72+10, self.moduleHeight*72+12 ] - - def pslines(self): - return self.bitsComment() + \ - self.psSetModuleWidth() + \ - self.psSetBarWidthReduction() + \ - self.psSetBarHeight() + \ - self.psbars() + \ - self.psLRDigitLines() - - def psLRDigitLines(self): - # 24 = 3+6*7/2 - # 70 = 3+6*7+4+6*7/2 "4" so we center on the "L" bars (the rightmost of - # the center guard bars is an "O". - # "5" in check digit is the five-module spacing recommended by [2], section 3. - return [ "% We do the left digits first and leave the font scaled", - "% as is for the 9-digit and the right-digits.", - "% EAN13 Left Digits:", - "moduleWidth 24 mul 0 moveto", - "moduleWidth 40 mul (" + self.ean13.leftDigits + ") ", - "/" + self.font + " fitstring topcentershow", - "\n% EAN13 human-readable number", - "% The \"9\" digit (only when encoding ISBN's and ISMN's, I think):", - "-5 0 moveto (" + self.ean13.n[0] + ") toprightshow", - "% EAN13 Right Digits:", - "moduleWidth 70 mul 0 moveto", - "moduleWidth 40 mul (" + self.ean13.rightDigits + ") topcentershow" ] - -class EAN13(UPCA): - - def __init__(self,arg): - self.ndigits=13 # Includes check digit! - UPCA.__init__(self,arg) - leftBits = self.bits[0:42] - rightBits = self.bits[42:] - leftGuard="L0L" - rightGuard="L0L" - center="0L0L0" - self.bits = leftGuard + leftBits + center + rightBits + rightGuard - self.leftDigits = self.n[1:7] - self.rightDigits = self.n[7:13] - - def parityPattern(self): - # N.B. parity pattern based on leftmost digit, the UCC Spec calls this - # the "13th" digit. It's not the check digit! - return EAN13PARITY[int(self.n[0])] - def bitchar(self): - return EAN13BITS - -class UPC5Symbol(barCodeSymbol): - - def __init__(self,arg,heightMultiplier=1,barWidthReduction=0): - # arg is a string with the 5 digit add-on. - self.barWidthReduction=barWidthReduction - self.upc5 = UPC5(arg) - self.moduleWidth = 0.0130 - specModuleHeight = 0.852 - self.moduleHeight = 0.852 * heightMultiplier - self.bits = self.upc5.bits - barCodeSymbol.__init__(self) - - def pslines(self): - return self.bitsComment() + \ - self.psSetModuleWidth() + \ - self.psSetBarHeight() + \ - self.psbars() - - def bb(self): - # Note quiet zone is there even if we don't print the ">". - return [ 0, 0, self.patternWidth*72+10, self.moduleHeight*72+10 ] - -UPC5Error = "Something wrong with 5-digit price code add-on." -class UPC5(UPC): - - def __init__(self,arg): - self.ndigits=5 # Includes check digit! - p=re.search("[^0-9]",arg) - if p: - badchar=arg[p.start()] - raise UPC5Error, "\"%s\" is wrong. The character \"%s\" is not allowed. Price code add-on should contain %d digits and nothing else. Or leave blank to suppress the UPC-5 code." % (arg,badchar,self.ndigits) - elif len(arg) != self.ndigits: - raise UPC5Error, \ - "\"%s\" is wrong. Price code add-on should have exactly %d digits." % (arg,self.ndigits) - UPC.__init__(self,arg) - self.setbits(self.n) - leftGuard="1011" - # no right guard for UPC 5-digit add-on - # Have to insert pesky delineators: - delineator = "01" - self.bits = leftGuard + \ - self.bits[0:7] + delineator + \ - self.bits[7:14] + delineator + \ - self.bits[14:21] + delineator + \ - self.bits[21:28] + delineator + \ - self.bits[28:35] - - def checkDigit(self,arg): # UPC5 - weight=[3,9,3,9,3]; sum = 0 - for i in range(5): - sum = sum + int(arg[i]) * weight[i] - return self.xstring(sum % 10) - - def verifyCheckDigit(self): # UPC2/5 checksum not in number - return - - def parityPattern(self): - return UPC5PARITY[int(self.x)] - def bitchar(self): - return UPC5BITS - -class bookland(barCodeSymbol): - - def __init__(self,isbn,price="",*rest): - - - # Some defaults: - ean13font=EAN13FONT - isbnfont=ISBNFONT - upc5font = UPC5FONT - zone=None - heightMultiplier=1.0 - commandLine="" - barWidthReduction=0 - - # Maybe different fonts: - if len(rest)>0: - font=rest[0] - if font: - ean13font=font - isbnfont=font - upc5font=font - if len(rest)>1: - zone=rest[1] - if len(rest)>2: - heightMultiplier=float(rest[2]) - if len(rest) > 3: - commandLine=rest[3] - if len(rest) > 4: - barWidthReduction=float(rest[4]) - - # Initial setup: - - self.ps = psfile() - self.isbn = ISBN(isbn) - - # Header, EAN13 bars, EAN13 number, and ISBN: - - if self.isbn.name=="ISMN": - self.ean13Symbol = EAN13Symbol("9790"+self.isbn.n[1:9],ean13font,heightMultiplier,barWidthReduction) - elif self.isbn.name=="ISBN": - self.ean13Symbol = EAN13Symbol("978"+self.isbn.n[:9],ean13font,heightMultiplier,barWidthReduction) - else: - raise BooklandError, "Internal error doing %s, please report as bug" % isbn - - self.ps.orbb(self.ean13Symbol.bb()) - comments = ["", - " This is free software and comes with NO WARRANTY WHATSOVER", - " Think twice before going to press with this bar code!", - "", - "Command line: %s" % commandLine, - "" ] - self.ps.lines = self.ps.header(self.isbn.s,comments,ean13font,isbnfont,upc5font) + \ - [ "ean13font" ] + \ - self.ean13Symbol.pslines() +\ - [ "isbnfont" ] + \ - self.ean13Symbol.psTopCenterText("%s %s" % (self.isbn.name,self.isbn.s),isbnfont) - - # 5-digit add-on: (optional for ISBN only) - BLANK=re.compile("^ *$") - if self.isbn.name=="ISBN" and not BLANK.match(price): - # 105 = 95 + 10; 10 = separation (min is 9) - translate=[ self.ps.translate( self.ean13Symbol.moduleWidth * 72 * 105, 0 ) ] - self.upc5Symbol = UPC5Symbol(price,heightMultiplier,barWidthReduction) - self.ps.orbb(self.upc5Symbol.bb()) - self.ps.lines = self.ps.lines + \ - translate + \ - self.upc5Symbol.pslines() + \ - [ "upc5font" ] +\ - self.upc5Symbol.psBottomRightText(price,upc5font) - if zone: self.ps.lines=self.ps.lines + self.upc5Symbol.psGreaterThan(upc5font) - else: - self.ps.lines.append("%% Skipping UPC-5 price code symbol per request") - - self.ps.lines=self.ps.lines + self.ps.trailer() - - # Can now set bounding box. - - self.ps.setbb() - -# Here we go ... - -if __name__ == '__main__': - - def printUsage(): - print "Usage: bookland [-h|--help] [-v|--version] [-x|--check] [-f|--font=] [-s|--height=] [-r|--reduction=] [-o|outfile=] [-z|--quietzone] [| ]" - print "Report bugs to " + MAINTAINER - - def printVersion(): - sys.stderr.write("%s version %s %s.\n" % (MYNAME,MYVERSION,COPYRIGHT)) - sys.stderr.write("Bugs to %s\n" % MAINTAINER) - sys.stderr.write("This is free software and comes with NO WARRANTY\n") - - import getopt - try: - opts,args = getopt.getopt(sys.argv[1:], - "xr:s:uvf:hzo:", - ["reduction=","outfile=","height=","noupc", - "check","version","help","font=","quietzone"]) - except: - printUsage() - sys.exit(0) - - # some initial defaults: - isbn = "1-56592-197-6" # Mark Lutz, "Programming Python", - # O'Reilly, Sebastopol CA, 1996 - price = "90000" - font=None - zone=None - checkonly=None - outfile=None - heightMultiplier=1 - commandLine = string.join(sys.argv) - barWidthReduction = 0 - - # parse command line: - for opt,val in opts: - if opt in ("-v","--version"): - printVersion() - sys.exit(0) - elif opt in ("-h","--help"): - printUsage() - sys.exit(0) - elif opt in ("-f","--font"): - font=val - elif opt in ("-z","--quietzone"): - zone=1 - elif opt in ("-x","--check"): - checkonly=1 - elif opt in ("-s","--height"): - heightMultiplier = float(val) - elif opt in ("-r","--reduction"): - barWidthReduction = val - elif opt in ("-o","--outfile"): - outfile=val - if len(args)==1: - isbn=args[0] - elif len(args)==2: - isbn=args[0] - price=args[1] - - # Do stuff. - - printVersion() - try: - b = bookland(isbn,price,font,zone,heightMultiplier, - commandLine,barWidthReduction) - if not checkonly: b.ps.out(outfile) - if outfile: - sys.stderr.write("Output written to %s\n" % outfile) - except BooklandError, message: - sys.stderr.write(BooklandError + ": " + message + "\n") - sys.exit(1) diff --git a/barcode-0.98/cmdline.c b/barcode-0.98/cmdline.c deleted file mode 100644 index a69a825b..00000000 --- a/barcode-0.98/cmdline.c +++ /dev/null @@ -1,177 +0,0 @@ -/* - * cmdline.c -- parse a command line using getopt, environment and defaults - * - * Copyright (c) 1999 Alessandro Rubini (rubini@gnu.org) - * Copyright (c) 1999 Prosa Srl. (prosa@prosa.it) - * - * 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 2 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, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. - * - * Changes: - * Michele Comitini (mcm@glisco.it): better handling of numeric type args. - */ - -#include -#include -#include - -#ifdef NO_GETOPT - /* use replacement */ - #include "compat/getopt.h" -#else - #include -#endif - -#include "cmdline.h" - -/* In case of error, print help string and return error (-1) */ -int commandline_errormsg(FILE *f, struct commandline *args, - char *prgname, char *messagehead) -{ - char *buffer; - char *buffer2; - int len; - struct commandline *ptr; - - if (!messagehead) { - fprintf(f,"%s: Error in cmdline\nPossible options:\n",prgname); - } else { - fprintf(f,"%s: %s",prgname,messagehead); - } - - for (ptr = args; ptr->option; ptr++) { - if (ptr->descrip) { - len = strlen(ptr->descrip); - len += ptr->default_v ? strlen(ptr->default_v) : 6; - len += ptr->env ? strlen(ptr->env) : 6; - buffer2 = malloc(len+3); /* 3 to be safe :) */ - len += 32; - if (buffer2) { - buffer = malloc(len); - if (buffer) { - sprintf(buffer2, ptr->descrip, - ptr->default_v ? ptr->default_v : "(none)", - ptr->env ? ptr->env : "(none)"); - sprintf(buffer, " -%c %s %s", ptr->option, - ptr->type ? "" : " ", buffer2); - fprintf(f, "%s\n",buffer); - free(buffer); - } - free(buffer2); - } - } - } - return -1; -} - -/* - * Associate formats to type. - */ -struct type_fmt { - enum option_type type; - char *fmt; -}; -static struct type_fmt formats[] = { - {CMDLINE_I, "%i%s"}, /* the trailing "%s" is used for error check */ - {CMDLINE_D, "%d%s"}, - {CMDLINE_X, "%x%s"}, - {CMDLINE_O, "%o%s"}, - {CMDLINE_F, "%lf%s"}, - {CMDLINE_P, "%p%s"}, - {0, NULL} /* If we get here, it's CMDLINE_S: no sscanf buf strcpy() */ -}; - - -/* Parse one argument (default or provided) */ -static int commandline_oneopt(struct commandline *ptr, char *value) -{ - struct type_fmt *tptr; - char *trash = value ? strdup(value) : NULL; - - /* convert it, if needed */ - if ((ptr->type != CMDLINE_NONE) && ptr->result) { - for (tptr = formats; tptr->type; tptr++) - if (tptr->type == ptr->type) - break; - if (!tptr->type) /* not found: it is a string */ - *(char **)(ptr->result) = value; - else - if (sscanf(value, tptr->fmt, ptr->result, trash)!=1) { - free(trash); - return -1; - } - } - if (trash) - free(trash); - - if ((ptr->type == CMDLINE_NONE) && ptr->result) /* no type, just count */ - (*(int *)(ptr->result))++; - - /* call the function, if needed */ - if (ptr->fun) { - if (ptr->type) { - if (ptr->result) return ptr->fun(ptr->result); /* converted */ - return ptr->fun(value); /* type, but not converted */ - } - return ptr->fun(NULL); /* no type: just call it */ - } - return 0; -} - -/* The main function */ -int commandline(struct commandline *args, int argc, char **argv, - char *errorhead) -{ - struct commandline *ptr; - char *getopt_desc = (char *)calloc(512, 1); - int desc_offset = 0; - int opt, retval; - char *value; - - /* Build getopt string and process defaults values */ - for (ptr = args; ptr->option; ptr++) { - getopt_desc[desc_offset++] = ptr->option; - if (ptr->type) getopt_desc[desc_offset++] = ':'; - - value = NULL; - if (ptr->env) - value = getenv(ptr->env); - if (!value) - value = ptr->default_v; - if (value && (retval = commandline_oneopt(ptr, value))) { - /* - * if the function returns a specific (not -1) value, it already - * printed its message, so avoid the generic help - */ - if (retval == -1) - commandline_errormsg(stderr, args, argv[0], errorhead); - return retval; - } - } - - /* Run getopt and process material */ - while ((opt = getopt(argc, argv, getopt_desc)) != -1) { - for (ptr = args; ptr->option; ptr++) - if (opt == ptr->option) - break; - if (!ptr->option) /* unknown option */ - return commandline_errormsg(stderr, args, argv[0], errorhead); - if ( (retval = commandline_oneopt(ptr, optarg)) ) { /* wrong arg */ - if (retval == -1) - commandline_errormsg(stderr, args, argv[0], errorhead); - return retval; - } - } - return 0; -} diff --git a/barcode-0.98/cmdline.h b/barcode-0.98/cmdline.h deleted file mode 100644 index 69319915..00000000 --- a/barcode-0.98/cmdline.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * cmdline.h -- generic commandline editing (uses getopt, only short) - * - * Copyright (c) 1999 Alessandro Rubini (rubini@gnu.org) - * Copyright (c) 1999 Prosa Srl. (prosa@prosa.it) - * - * 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 2 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, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. - * - */ - -/* - * The options may have different arguments of different type - */ -enum option_type { - CMDLINE_NONE=0, /* no argument after option */ - CMDLINE_I, /* integer (any base) */ - CMDLINE_D, /* decimal integer */ - CMDLINE_X, /* hex integer */ - CMDLINE_O, /* octal integer */ - CMDLINE_S, /* string */ - CMDLINE_F, /* double float */ - CMDLINE_P, /* pointer */ -}; - - -struct commandline { - int option; /* Single byte: option id */ - int type; /* Type of argument, used in sscanf */ - void *result; /* Store data here, if non null */ - int (*fun)(void *); /* Call if defined: arg is "result" or input string */ - char *env; /* Where to get runtime defaults, may be NULL */ - char *default_v; /* The compile-time default, may be NULL */ - char *descrip; /* For err msg. May have %s's for default and env */ -}; - -/* returns: 0 or -1. "optarg" is global (see getopt) */ -extern int commandline(struct commandline *args, - int argc, char **argv, char *errorhead); - -/* prints an error message based on "args" */ -extern int commandline_errormsg(FILE *f, struct commandline *args, - char *prgname, char *messagehead); - - - - diff --git a/barcode-0.98/codabar.c b/barcode-0.98/codabar.c deleted file mode 100644 index 7065b9ea..00000000 --- a/barcode-0.98/codabar.c +++ /dev/null @@ -1,182 +0,0 @@ -/* - * codabar.c -- encoding for Codabar - * - * Copyright (c) 2000 Leonid A. Broukhis (leob@mailcom.com) - * - * 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 2 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, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. - */ - -#include -#include -#include -#include -#include - -#include "barcode.h" - - -/* this is ordered in decades to simplify encoding */ -static char alphabet[] = - "0123456789" "-$:/.+ABCD"; - -#define CODE_A 16 -#define CODE_B 17 - -#define NARROW 12 -#define WIDE 14 - -/* Patterns */ -static char *patterns[] = { -"1111133","1111331","1113113","3311111","1131131", -"3111131","1311113","1311311","1331111","3113111", -"1113311","1133111","3111313","3131113","3131311", -"1131313","1133131","1313113","1113133","1113331" }; - -/* - * Check that the text can be encoded. Returns 0 or -1. - * If it's all lowecase convert to uppercase and accept it. - * If the first character is a letter (A to D), the last one must be too; - * no other character should be a letter. - */ -int Barcode_cbr_verify(unsigned char *text) -{ - int i, lower=0, upper=0; - int startpresent = 0; - - if (!strlen(text)) - return -1; - for (i=0; text[i]; i++) { - char * pos; - if (isupper(text[i])) upper++; - if (islower(text[i])) lower++; - pos = strchr(alphabet,toupper(text[i])); - if (!pos) - return -1; - if (i == 0 && pos - alphabet >= CODE_A) - startpresent = 1; - else if (pos - alphabet >= CODE_A && - (!startpresent || i != strlen(text) - 1)) - return -1; - } - if (lower && upper) - return -1; - return 0; -} - -static int add_one(char *ptr, int code) -{ - sprintf(ptr,"1%s", /* separator */ patterns[code]); - return 0; -} - -/* - * The encoding functions fills the "partial" and "textinfo" fields. - * Lowercase chars are converted to uppercase - */ -int Barcode_cbr_encode(struct Barcode_Item *bc) -{ - static char *text; - static char *partial; /* dynamic */ - static char *textinfo; /* dynamic */ - char *c, *ptr, *textptr; - int i, code, textpos, usesum, checksum = 0, startpresent; - - if (bc->partial) - free(bc->partial); - if (bc->textinfo) - free(bc->textinfo); - bc->partial = bc->textinfo = NULL; /* safe */ - - if (!bc->encoding) - bc->encoding = strdup("codabar"); - - text = bc->ascii; - if (!text) { - bc->error = EINVAL; - return -1; - } - /* the partial code is 8 * (head + text + check + tail) + margin + term. */ - partial = malloc( (strlen(text) + 3) * 8 + 2); - if (!partial) { - bc->error = errno; - return -1; - } - - /* the text information is at most "nnn:fff:c " * (strlen + check) +term */ - textinfo = malloc(10*(strlen(text) + 1) + 2); - if (!textinfo) { - bc->error = errno; - free(partial); - return -1; - } - - ptr = partial; - textptr = textinfo; - textpos = 0; - usesum = bc->flags & BARCODE_NO_CHECKSUM ? 0 : 1; - /* if no start character specified, A is used as a start character */ - if (!isalpha(text[0])) { - add_one(ptr, CODE_A); - ptr += strlen(ptr); - textpos = WIDE; - checksum = CODE_A; - startpresent = 0; - } else { - startpresent = 1; - } - for (i=0; ierror = EINVAL; /* impossible if text is verified */ - free(partial); - free(textinfo); - return -1; - } - code = c - alphabet; - add_one(ptr, code); - sprintf(textptr, "%i:12:%c ", textpos, toupper(text[i])); - textpos += code < 12 ? NARROW : WIDE; - textptr += strlen(textptr); - ptr += strlen(ptr); - checksum += code; - if (startpresent && usesum && i == strlen(text) - 2) { - /* stuff a check symbol before the stop */ - c = strchr(alphabet, toupper(text[i+1])); - if (!c) /* impossible */ - continue; - code = c - alphabet; - checksum += code; - - /* Complement to a multiple of 16 */ - checksum = (checksum + 15) / 16 * 16 - checksum; - add_one(ptr, checksum); - ptr += strlen(ptr); - } - } - if (!startpresent) { - if (usesum) { - /* if no start character specified, B is used as a stop char */ - checksum += CODE_B; - checksum = (checksum + 15) / 16 * 16 - checksum; - add_one(ptr, checksum); - ptr += strlen(ptr); - } - add_one(ptr, CODE_B); - } - bc->partial = partial; - bc->textinfo = textinfo; - - return 0; -} diff --git a/barcode-0.98/code128.c b/barcode-0.98/code128.c deleted file mode 100644 index cebba54c..00000000 --- a/barcode-0.98/code128.c +++ /dev/null @@ -1,607 +0,0 @@ -/* - * code128.c -- encoding for code128 (A, B, C) - * - * Copyright (c) 1999,2000 Alessandro Rubini (rubini@gnu.org) - * Copyright (c) 1999 Prosa Srl. (prosa@prosa.it) - * Copyright (c) 2000 Leonid A. Broukhis (leob@mailcom.com) - * - * 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 2 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, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. - */ - -#include -#include -#include -#include -#include - -#include "barcode.h" - -static char *codeset[] = { - "212222", "222122", "222221", "121223", "121322", /* 0 - 4 */ - "131222", "122213", "122312", "132212", "221213", - "221312", "231212", "112232", "122132", "122231", /* 10 - 14 */ - "113222", "123122", "123221", "223211", "221132", - "221231", "213212", "223112", "312131", "311222", /* 20 - 24 */ - "321122", "321221", "312212", "322112", "322211", - "212123", "212321", "232121", "111323", "131123", /* 30 - 34 */ - "131321", "112313", "132113", "132311", "211313", - "231113", "231311", "112133", "112331", "132131", /* 40 - 44 */ - "113123", "113321", "133121", "313121", "211331", - "231131", "213113", "213311", "213131", "311123", /* 50 - 54 */ - "311321", "331121", "312113", "312311", "332111", - "314111", "221411", "431111", "111224", "111422", /* 60 - 64 */ - "121124", "121421", "141122", "141221", "112214", - "112412", "122114", "122411", "142112", "142211", /* 70 - 74 */ - "241211", "221114", "413111", "241112", "134111", - "111242", "121142", "121241", "114212", "124112", /* 80 - 84 */ - "124211", "411212", "421112", "421211", "212141", - "214121", "412121", "111143", "111341", "131141", /* 90 - 94 */ - "114113", "114311", "411113", "411311", "113141", - "114131", "311141", "411131", "b1a4a2", "b1a2a4", /* 100 - 104 */ - "b1a2c2", "b3c1a1b" -}; - -#define START_A 103 -#define START_B 104 -#define START_C 105 -#define STOP 106 -#define SHIFT 98 /* only A and B */ -#define CODE_A 101 /* only B and C */ -#define CODE_B 100 /* only A and C */ -#define CODE_C 99 /* only A and B */ -#define FUNC_1 102 /* all of them */ -#define FUNC_2 97 /* only A and B */ -#define FUNC_3 96 /* only A and B */ -/* FUNC_4 is CODE_A when in A and CODE_B when in B */ - -#define SYMBOL_WID 11 /* all of them are 11-bar wide */ - -/* - * code 128-b includes all printable ascii chars - */ - -int Barcode_128b_verify(unsigned char *text) -{ - if (text[0] == '\0') - return -1; - while (*text && *text>=32 && !(*text&0x80)) - text++; - if (*text) - return -1; /* a non-ascii char */ - return 0; /* ok */ -} - -int Barcode_128b_encode(struct Barcode_Item *bc) -{ - static char *text; - static char *partial; /* dynamic */ - static char *textinfo; /* dynamic */ - char *textptr; - int i, code, textpos, checksum = 0; - - if (bc->partial) - free(bc->partial); - if (bc->textinfo) - free(bc->textinfo); - bc->partial = bc->textinfo = NULL; /* safe */ - - if (!bc->encoding) - bc->encoding = strdup("code 128-B"); - - text = bc->ascii; - if (!text) { - bc->error = EINVAL; - return -1; - } - /* the partial code is 6* (head + text + check + tail) + final + term. */ - partial = malloc( (strlen(text) + 4) * 6 +2); - if (!partial) { - bc->error = errno; - return -1; - } - - /* the text information is at most "nnn:fff:c " * strlen +term */ - textinfo = malloc(10*strlen(text) + 2); - if (!textinfo) { - bc->error = errno; - free(partial); - return -1; - } - - /* up to now, it was the same code as other encodings */ - - strcpy(partial, "0"); /* the first space */ - strcat(partial, codeset[START_B]); - checksum += START_B; /* the start char is counted in the checksum */ - textptr = textinfo; - textpos = SYMBOL_WID; - - for (i=0; ierror = EINVAL; /* impossible if text is verified */ - free(partial); - free(textinfo); - return -1; - } - code = text[i]-32; - strcat(partial, codeset[code]); - checksum += code * (i+1); /* first * 1 + second * 2 + third * 3... */ - sprintf(textptr, "%i:12:%c ", textpos, text[i]); - textptr += strlen(textptr); - textpos += SYMBOL_WID; /* width of each code */ - } - /* Add the checksum, independent of BARCODE_NO_CHECKSUM */ - checksum %= 103; - strcat(partial, codeset[checksum]); - /* and the end marker */ - strcat(partial, codeset[STOP]); - - bc->partial = partial; - bc->textinfo = textinfo; - - return 0; -} - -/* - * code 128-c is only digits, but two per symbol - */ - -int Barcode_128c_verify(unsigned char *text) -{ - if (text[0] == '\0') - return -1; - /* must be an even number of digits */ - if (strlen(text)%2) - return -1; - /* and must be all digits */ - for (; *text; text++) - if (!isdigit(*text)) - return -1; - return 0; -} - -int Barcode_128c_encode(struct Barcode_Item *bc) -{ - static char *text; - static char *partial; /* dynamic */ - static char *textinfo; /* dynamic */ - char *textptr; - int i, code, textpos, checksum = 0; - - if (bc->partial) - free(bc->partial); - if (bc->textinfo) - free(bc->textinfo); - bc->partial = bc->textinfo = NULL; /* safe */ - - if (!bc->encoding) - bc->encoding = strdup("code 128-C"); - - text = bc->ascii; - if (!text) { - bc->error = EINVAL; - return -1; - } - /* the partial code is 6* (head + text + check + tail) + final + term. */ - partial = malloc( (strlen(text) + 3) * 6 +2); - if (!partial) { - bc->error = errno; - return -1; - } - - /* the text information is at most "nnn.5:fff:c " * strlen +term */ - textinfo = malloc(12*strlen(text) + 2); - if (!textinfo) { - bc->error = errno; - free(partial); - return -1; - } - - strcpy(partial, "0"); /* the first space */ - strcat(partial, codeset[START_C]); - checksum += START_C; /* the start char is counted in the checksum */ - textptr = textinfo; - textpos = SYMBOL_WID; - - for (i=0; text[i]; i+=2) { - if (!isdigit(text[i]) || !isdigit(text[i+1])) { - bc->error = EINVAL; /* impossible if text is verified */ - free(partial); - free(textinfo); - return -1; - } - code = (text[i]-'0') * 10 + text[i+1]-'0'; - strcat(partial, codeset[code]); - checksum += code * (i/2+1); /* first * 1 + second * 2 + third * 3... */ - - /* print as "%s", because we have ".5" positions */ - sprintf(textptr, "%g:9:%c %g:9:%c ", (double)textpos, text[i], - textpos + (double)SYMBOL_WID/2, text[i+1]); - textptr += strlen(textptr); - textpos += SYMBOL_WID; /* width of each code */ - } - /* Add the checksum, independent of BARCODE_NO_CHECKSUM */ - checksum %= 103; - strcat(partial, codeset[checksum]); - /* and the end marker */ - strcat(partial, codeset[STOP]); - - bc->partial = partial; - bc->textinfo = textinfo; - - return 0; -} - -/* - * generic (full-featured) code128 implementation: it selects between - * A, B, C according to the data being encoded. F1, F2, F3, F4 are expressed - * using ascii chars 0xc1, 0xc2, 0xc3, 0xc4 (0301, 0302, 0303, 0304). - * Char '\0' is expressed by 0x80 (0200). - */ - -int Barcode_128_verify(unsigned char *text) -{ - if (text[0] == '\0') - return -1; - while (*text && (*text<=0x80 || (*text >= 0xc1 && *text <= 0xc4))) - text++; - if (*text) - return -1; /* unencodable character */ - return 0; /* ok */ -} - - -/* - * These functions are extracted from Barcode_128_encode for clarity. - * It deals with choosing the symbols used to represent the text - * and returns a dynamic array of integers, terminated by -1. - * - * The algorithm used in choosing the codes comes from App 2 of - * "El Codigo Estandar EAN/UCC 128", courtesy of AECOC, Spain. - * Thanks to Dani Pardo for getting permission and giving me a copy - * of the document - */ - -#define NEED_CODE_A(c) ((c)<32 || (c)==0x80) -#define NEED_CODE_B(c) ((c)>=96 && (c)<128) - -static int Barcode_a_or_b(unsigned char *text) -{ - for ( ; *text; text++) { - if (NEED_CODE_A(*text)) - return 'A'; - if (NEED_CODE_B(*text)) - return 'B'; - } - return 0; /* any */ -} - -/* code is either 'A' or 'B', and value must be valid */ -static int Barcode_encode_as(int code, int value) -{ - - /* first check the special chars */ - if (value == 0xC1) return FUNC_1; - if (value == 0xC2) return FUNC_2; - if (value == 0xC3) return FUNC_3; - if (value == 0xC4) { /* F4 */ - if (code == 'A') return CODE_A; - return CODE_B; - } - - /* then check ascii values */ - if (value >= 0x20 && value <= 0x5F) - return value - 0x20; /* both codes */ - if (value == 0x80) return 64; /* code A */ - if (value < 0x20) return value+64; /* code A */ - if (value >= 0x60) return value - 0x20; /* code B */ - /* can't happen */ - return -1; -} - -static int *Barcode_128_make_array(struct Barcode_Item *bc, int *lptr) -{ - int len, *codes; - unsigned char *s; - int i=0, j, code, checksum; - - /* allocate twice the text length + 5, as this is the worst case */ - len = 2 * strlen(bc->ascii) + 5; - codes = malloc(len * sizeof(int)); - s = bc->ascii; - - /* choose the starting code */ - if (s[2]=='\0' && isdigit(s[0]) && isdigit(s[1])) { - code = 'C'; - } else if (isdigit(s[0])&&isdigit(s[1]) && isdigit(s[2])&&isdigit(s[3])) { - code = 'C'; - } else { - code = Barcode_a_or_b(s); - if (!code) code = 'B'; /* default */ - } - codes[i++] = START_A + code - 'A'; - - for (s = bc->ascii; *s; /* increments are in the loop */) { - switch(code) { - - case 'C': - if (s[0] == 0xC1) { /* F1 is valid */ - codes[i++] = FUNC_1; - s++; - } else if (isdigit(s[0]) && isdigit(s[1])) { - /* encode two digits */ - codes[i++] = (s[0]-'0') * 10 + s[1]-'0'; - s += 2; - } else { - /* change code */ - code = Barcode_a_or_b(s); - if (!code) code = 'B'; - codes[i++] = (code == 'A') ? CODE_A : CODE_B; - } - break; - - case 'B': - case 'A': - for (j=0; isdigit(s[j]); j++) - ; - if (j>=4) { /* if there are 4 or more digits, turn to C */ - if (j&1) { - /* odd number: encode one first */ - codes[i++] = *(s++) - ' '; - } - codes[i++] = CODE_C; - code = 'C'; - } else if (code == 'A' && NEED_CODE_B(*s)) { - /* check whether we should use SHIFT or change code */ - j = Barcode_a_or_b(s+1); - if (j == 'B') { - codes[i++] = CODE_B; - code = 'B'; - } else { - codes[i++] = SHIFT; - codes[i++] = Barcode_encode_as('B', *s); - s++; - } - } else if (code == 'B' && NEED_CODE_A(*s)) { - /* check whether we should use SHIFT or change code */ - j = Barcode_a_or_b(s+1); - if (j == 'A') { - codes[i++] = CODE_A; - code = 'A'; - } else { - codes[i++] = SHIFT; - codes[i++] = Barcode_encode_as('A', *s); - s++; - } - } else { - codes[i++] = Barcode_encode_as(code, *s); - s++; - } - break; - } - } - /* add the checksum */ - checksum = codes[0]; - for (j=1; j len) { - fprintf(stderr, "impossible: length is > allocated len\n"); - } - *lptr = i; - return codes; -} - -/* - * Encoding is tricky, in that we cannot print the ascii - * representation in an easy way. Therefore, just skip non-printable - * chars and try to fit the rest somehow. - */ -int Barcode_128_encode(struct Barcode_Item *bc) -{ - static char *text; - static char *partial; /* dynamic */ - static char *textinfo; /* dynamic */ - char *textptr; - int *codes; /* dynamic */ - int i, c, len; - double textpos, size, step; - - if (bc->partial) - free(bc->partial); - if (bc->textinfo) - free(bc->textinfo); - bc->partial = bc->textinfo = NULL; /* safe */ - - if (!bc->encoding) - bc->encoding = strdup("code 128"); - - text = bc->ascii; - if (!text) { - bc->error = EINVAL; - return -1; - } - - codes = Barcode_128_make_array(bc, &len); - if (!codes) return -1; - - /* the partial code is 6*codelen + ini + term (+margin) */ - partial = malloc( 6 * len + 4); - if (!partial) { - bc->error = errno; - free(codes); - return -1; - } - - /* the text information is at most "nnn.n:ff.f:c " * strlen +term */ - textptr = textinfo = malloc(13*strlen(text) + 2); - if (!textinfo) { - bc->error = errno; - free(partial); - free(codes); - return -1; - } - - /* up to now, it was almost the same code as other encodings */ - - strcpy(partial, "0"); /* the first space */ - for (i=0; i 12.0) size = 12.0; - - /* align the text to the left, using its natural size */ - step = (int)(10 * (size/18.0 * SYMBOL_WID) + .5) / 10.0; - textpos = SYMBOL_WID; - - for (i=0; i 0xc0) c = ' '; /* F code */ - sprintf(textptr, "%g:%g:%c ", textpos, size, c); - textptr += strlen(textptr); - textpos += step; - } - - bc->partial = partial; - bc->textinfo = textinfo; - free(codes); - return 0; -} - -/* - * A raw 128 code is given as a sequence of space separated numbers - * from 0 to 105, starting from the start code to be (Leonid) - */ - -int Barcode_128raw_verify(unsigned char *text) -{ - int n; - unsigned val; - - if (!strlen(text)) - return -1; - while (*text) { - if (sscanf(text, "%u%n", &val, &n) < 1) - return -1; - if (val > 105) - return -1; - text += n; - } - return 0; -} - -int Barcode_128raw_encode(struct Barcode_Item *bc) -{ - static char *text; - static char *partial; /* dynamic */ - static char *textinfo; /* dynamic */ - char *textptr; - int i, n, count, code, textpos, checksum = 0; - - if (bc->partial) - free(bc->partial); - if (bc->textinfo) - free(bc->textinfo); - bc->partial = bc->textinfo = NULL; /* safe */ - - if (!bc->encoding) - bc->encoding = strdup("128raw"); - - text = bc->ascii; - if (!text) { - bc->error = EINVAL; - return -1; - } - /* - * length of partial code is unknown in advance, but it is - * at most 6* (1+text/2 + check + tail) + final + terminator - */ - partial = malloc( (3+ strlen(text)/2) * 6 + 2); - if (!partial) { - bc->error = errno; - return -1; - } - - /* the text information is at most "nnn.5:fff:c " * 1+strlen/2 +term */ - textinfo = malloc(12 * (1+strlen(text)/2) + 2); - if (!textinfo) { - bc->error = errno; - free(partial); - return -1; - } - - strcpy(partial, "0"); /* the first space */ - textptr = textinfo; - textpos = 0; - - for (i=0, count = 0; i < strlen(text); count++) { - if (sscanf(text + i, "%u%n", &code, &n) < 1) { - bc->error = EINVAL; /* impossible if text is verified */ - free(partial); - free(textinfo); - return -1; - } - strcat(partial, codeset[code]); - - /* - * since the start code is part of the "raw" input, it is - * counted in the checksum by itself - */ - if (!count) checksum += code; /* the start code */ - else checksum += code * count; /* first * 1 + second * 2 ... */ - - /* - * print as "%s", because we have ".5" positions - * also, use a size of 9 like codeC above, as each symbol is - * represented by two chars - */ - sprintf(textptr, "%g:9:%c %g:9:%c ", (double)textpos, - code >= 100 ? 'A' : code/10 + '0', - textpos + (double)SYMBOL_WID/2, code%10 + '0'); - textptr += strlen(textptr); - textpos += SYMBOL_WID; /* width of each code */ - i += n; - } - /* Add the checksum, independent of BARCODE_NO_CHECKSUM */ - checksum %= 103; - strcat(partial, codeset[checksum]); - /* and the end marker */ - strcat(partial, codeset[STOP]); - - bc->partial = partial; - bc->textinfo = textinfo; - - return 0; -} - diff --git a/barcode-0.98/code39.c b/barcode-0.98/code39.c deleted file mode 100644 index 3308c950..00000000 --- a/barcode-0.98/code39.c +++ /dev/null @@ -1,173 +0,0 @@ -/* - * code39.c -- encoding for code39 - * - * Copyright (c) 1999 Alessandro Rubini (rubini@gnu.org) - * Copyright (c) 1999 Prosa Srl. (prosa@prosa.it) - * - * 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 2 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, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. - */ - -#include -#include -#include -#include -#include - -#include "barcode.h" - - -/* this is ordered in decades to simplify encoding */ -static char alphabet[] = - "1234567890" "ABCDEFGHIJ" "KLMNOPQRST" "UVWXYZ-. *" "$/+%"; - -/* the checksum alphabet has a different order */ -static char checkbet[] = - "0123456789" "ABCDEFGHIJ" "KLMNOPQRST" "UVWXYZ-. $" "/+%"; - -/* The first 40 symbols repeat this bar pattern */ -static char *bars[] = { - "31113","13113","33111","11313","31311", - "13311","11133","31131","13131","11331"}; - -/* The first 4 decades use these space patterns */ -static char *spaces[] = {"1311","1131","1113","3111"}; - -/* the last four symbols are special */ -static char *specialbars[] = { - "11111","11111","11111","11111"}; - -static char *specialspaces[] = { - "3331","3313","3133","1333"}; - -static char *fillers[]= { - "0a3a1c1c1a", - "1a3a1c1c1a" -}; - - -/* - * Check that the text can be encoded. Returns 0 or -1. - * If it's all lowecase convert to uppercase and accept it - */ -int Barcode_39_verify(unsigned char *text) -{ - int i, lower=0, upper=0; - - if (text[0] == '\0') - return -1; - for (i=0; text[i]; i++) { - if (isupper(text[i])) upper++; - if (islower(text[i])) lower++; - if (!strchr(alphabet,toupper(text[i]))) - return -1; - } - if (lower && upper) - return -1; - return 0; -} - -static int add_one(char *ptr, int code) -{ - char *b, *s; - - if (code < 40) { - b = bars[code%10]; - s = spaces[code/10]; - } else { - b = specialbars[code-40]; - s = specialspaces[code-40]; - } - sprintf(ptr,"1%c%c%c%c%c%c%c%c%c", /* separator */ - b[0], s[0], b[1], s[1], b[2], s[2], - b[3], s[3], b[4]); - return 0; -} - -/* - * The encoding functions fills the "partial" and "textinfo" fields. - * Lowercase chars are converted to uppercase - */ -int Barcode_39_encode(struct Barcode_Item *bc) -{ - static char *text; - static char *partial; /* dynamic */ - static char *textinfo; /* dynamic */ - char *c, *ptr, *textptr; - int i, code, textpos, checksum = 0; - - if (bc->partial) - free(bc->partial); - if (bc->textinfo) - free(bc->textinfo); - bc->partial = bc->textinfo = NULL; /* safe */ - - if (!bc->encoding) - bc->encoding = strdup("code 39"); - - text = bc->ascii; - if (!text) { - bc->error = EINVAL; - return -1; - } - /* the partial code is 10* (head + text + check + tail) + margin + term. */ - partial = malloc( (strlen(text) + 3) * 10 +2); - if (!partial) { - bc->error = errno; - return -1; - } - - /* the text information is at most "nnn:fff:c " * strlen +term */ - textinfo = malloc(10*strlen(text) + 2); - if (!textinfo) { - bc->error = errno; - free(partial); - return -1; - } - - strcpy(partial, fillers[0]); - ptr = partial + strlen(partial); - textptr = textinfo; - textpos = 22; - - for (i=0; text[i]; i++) { - c = strchr(alphabet, toupper(text[i])); - if (!c) { - bc->error = EINVAL; /* impossible if text is verified */ - free(partial); - free(textinfo); - return -1; - } - code = c - alphabet; - add_one(ptr, code); - c = strchr(checkbet,*c); - if (c) /* the '*' is not there */ - checksum += (c-checkbet); - sprintf(textptr, "%i:12:%c ", textpos, toupper(text[i])); - - textpos += 16; /* width of each code */ - textptr += strlen(textptr); - ptr += strlen(ptr); - } - /* Add the checksum */ - if ( (bc->flags & BARCODE_NO_CHECKSUM)==0 ) { - code = (strchr(alphabet, checkbet[checksum % 43]) - alphabet); - add_one(ptr, code); - } - strcat(ptr, fillers[1]); /* end */ - bc->partial = partial; - bc->textinfo = textinfo; - - return 0; -} diff --git a/barcode-0.98/code93.c b/barcode-0.98/code93.c deleted file mode 100644 index 73f8cee3..00000000 --- a/barcode-0.98/code93.c +++ /dev/null @@ -1,213 +0,0 @@ -/* - * code39.c -- encoding for code39 - * - * Copyright (c) 1999 Alessandro Rubini (rubini@gnu.org) - * Copyright (c) 1999 Prosa Srl. (prosa@prosa.it) - * Copyright (c) 2001 Nathan D. Holmes / FedEx Services (ndholmes@fedex.com) - * - * 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 2 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, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. - */ - -#include -#include -#include -#include -#include - -#include "barcode.h" - - -/* this is ordered in decades to simplify encoding */ -static char alphabet[] = - "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%"; - -static char *codeset[] = { - "131112", "111213", "111312", "111411", "121113", /* 0 - 4 */ - "121212", "121311", "111114", "131211", "141111", /* 5 - 9 */ - "211113", "211212", "211311", "221112", "221211", /* A - E */ - "231111", "112113", "112212", "112311", "122112", /* F - J */ - "132111", "111123", "111222", "111321", "121122", /* K - O */ - "131121", "212112", "212211", "211122", "211221", /* P - T */ - "221121", "222111", "112122", "112221", "122121", /* U - Y */ - "123111", "121131", "311112", "311211", "321111", /* Z - $ */ - "112131", "113121", "211131", "121221", "312111", /* / - (%) */ - "311121", "122211", "111141" /* (/) - (terminator) */ -}; - - -/* 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111 */ -/* 00000000001111111111222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000111111111122222222 */ -/* 01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567 */ -static char shiftset[] = - "%$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%% /// ///// / /%%%%%% %%%%%%++++++++++++++++++++++++++%%%%%"; -static char shiftset2[] = - "UABCDEFGHIJKLMNOPQRSTUVWXYZABCDE ABC FGHIJ L ZFGHIJV KLMNOWABCDEFGHIJLKMNOPQRSTUVWXYZPQRST"; - -#define START_STOP 47 -#define EXTEND_DOLLAR 43 -#define EXTEND_PERCENT 44 -#define EXTEND_SLASH 45 -#define EXTEND_PLUS 46 - -/* - * Check that the text can be encoded. Returns 0 or -1. - * All of ASCII-7 is accepted. - */ -int Barcode_93_verify(unsigned char *text) -{ - int i; - - if (!strlen(text)) - return -1; - for (i=0; text[i]; i++) { - - /* Test if beyond the range of 7-bit ASCII */ - if ((int)text[i] > 127) - return -1; - } - return 0; -} - -/* - * The encoding functions fills the "partial" and "textinfo" fields. - * Lowercase chars are converted to uppercase - */ -int Barcode_93_encode(struct Barcode_Item *bc) -{ - static unsigned char *text; - static char *partial; /* dynamic */ - static char *textinfo; /* dynamic */ - char *c, *textptr; - int *checksum_str; - int i, code, textpos, checksum_len=0; - int c_checksum = 0; - int k_checksum = 0; - - if (bc->partial) - free(bc->partial); - if (bc->textinfo) - free(bc->textinfo); - bc->partial = bc->textinfo = NULL; /* safe */ - - if (!bc->encoding) - bc->encoding = strdup("code 93"); - - text = bc->ascii; - if (!text) { - bc->error = EINVAL; - return -1; - } - - /* the partial code is 6 * (head + 2* text + 2* check + tail) + margin + term. */ - partial = malloc( (strlen(text) *2 + 4) * 6 +2); - if (!partial) { - bc->error = errno; - return -1; - } - - checksum_str = (int *)malloc( (strlen(text) + 3) * 2 * sizeof(int)); - if (!checksum_str) { - free(partial); - bc->error = errno; - return -1; - } - - /* the text information is at most "nnn:fff:c " * strlen +term */ - textinfo = malloc(10*strlen(text) + 2); - if (!textinfo) { - bc->error = errno; - free(partial); - free(checksum_str); - return -1; - } - - textptr = textinfo; - textpos = 22; - strcpy(partial, "0"); - strcat(partial, codeset[START_STOP]); - - for (i=0; iflags & BARCODE_NO_CHECKSUM)==0 ) - { - for(i=1; i<=checksum_len; i++) - { - c_checksum += i * (int)checksum_str[checksum_len - i]; - k_checksum += (i+1) * (int)checksum_str[checksum_len - i]; - } - - c_checksum = c_checksum % 47; - k_checksum += c_checksum; - k_checksum = k_checksum % 47; - - strcat(partial, codeset[c_checksum]); - strcat(partial, codeset[k_checksum]); - - } - strcat(partial, codeset[START_STOP]); /* end */ - - /* Encodes final 1-unit width bar to turn the start character into a stop char */ - strcat(partial, "1"); - bc->partial = partial; - bc->textinfo = textinfo; - - return 0; -} diff --git a/barcode-0.98/compat/getopt.c b/barcode-0.98/compat/getopt.c deleted file mode 100644 index 91f00b55..00000000 --- a/barcode-0.98/compat/getopt.c +++ /dev/null @@ -1,831 +0,0 @@ -/* Getopt for GNU. - NOTE: getopt is now part of the C library, so if you don't know what - "Keep this file name-space clean" means, talk to roland@gnu.ai.mit.edu - before changing it! - - Copyright (C) 1987, 88, 89, 90, 91, 92, 93, 94, 95, 1996 - 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 2, 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, write to the Free Software - Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -/* This tells Alpha OSF/1 not to define a getopt prototype in . - Ditto for AIX 3.2 and . */ -#ifndef _NO_PROTO -#define _NO_PROTO -#endif - -#ifdef HAVE_CONFIG_H -#include -#endif - -#if !defined (__STDC__) || !__STDC__ -/* This is a separate conditional since some stdc systems - reject `defined (const)'. */ -#ifndef const -#define const -#endif -#endif - -#include - -/* Comment out all this code if we are using the GNU C Library, and are not - actually compiling the library itself. This code is part of the GNU C - Library, but also included in many other GNU distributions. Compiling - and linking in this code is a waste when using the GNU C library - (especially if it is a shared library). Rather than having every GNU - program understand `configure --with-gnu-libc' and omit the object files, - it is simpler to just do this in the source for each such file. */ - -#if defined (_LIBC) || !defined (__GNU_LIBRARY__) - - -/* This needs to come after some library #include - to get __GNU_LIBRARY__ defined. */ -#ifdef __GNU_LIBRARY__ -/* Don't include stdlib.h for non-GNU C libraries because some of them - contain conflicting prototypes for getopt. */ -#include -#if defined (_LIBC) || defined (HAVE_UNISTD_H) -#include -#endif -#endif /* GNU C library. */ - -#ifdef VMS -#include -#if HAVE_STRING_H - 0 -#include -#endif -#endif - -#ifdef WIN32 -/* It's not Unix, really. See? Capital letters. */ -#include -#define getpid() GetCurrentProcessId() -#endif - -#ifndef _ -/* This is for other GNU distributions with internationalized messages. - When compiling libc, the _ macro is predefined. */ -#ifdef HAVE_LIBINTL_H -# include -# define _(msgid) gettext (msgid) -#else -# define _(msgid) (msgid) -#endif -#endif - -/* This version of `getopt' appears to the caller like standard Unix `getopt' - but it behaves differently for the user, since it allows the user - to intersperse the options with the other arguments. - - As `getopt' works, it permutes the elements of ARGV so that, - when it is done, all the options precede everything else. Thus - all application programs are extended to handle flexible argument order. - - Setting the environment variable POSIXLY_CORRECT disables permutation. - Then the behavior is completely standard. - - GNU application programs can use a third alternative mode in which - they can distinguish the relative order of options and other arguments. */ - -#include "getopt.h" - -/* For communication from `getopt' to the caller. - When `getopt' finds an option that takes an argument, - the argument value is returned here. - Also, when `ordering' is RETURN_IN_ORDER, - each non-option ARGV-element is returned here. */ - -char *optarg = NULL; - -/* Index in ARGV of the next element to be scanned. - This is used for communication to and from the caller - and for communication between successive calls to `getopt'. - - On entry to `getopt', zero means this is the first call; initialize. - - When `getopt' returns EOF, this is the index of the first of the - non-option elements that the caller should itself scan. - - Otherwise, `optind' communicates from one call to the next - how much of ARGV has been scanned so far. */ - -/* XXX 1003.2 says this must be 1 before any call. */ -int optind = 0; - -/* The next char to be scanned in the option-element - in which the last option character we returned was found. - This allows us to pick up the scan where we left off. - - If this is zero, or a null string, it means resume the scan - by advancing to the next ARGV-element. */ - -static char *nextchar; - -/* Callers store zero here to inhibit the error message - for unrecognized options. */ - -int opterr = 1; - -/* Set to an option character which was unrecognized. - This must be initialized on some systems to avoid linking in the - system's own getopt implementation. */ - -int optopt = '?'; - -/* Describe how to deal with options that follow non-option ARGV-elements. - - If the caller did not specify anything, - the default is REQUIRE_ORDER if the environment variable - POSIXLY_CORRECT is defined, PERMUTE otherwise. - - REQUIRE_ORDER means don't recognize them as options; - stop option processing when the first non-option is seen. - This is what Unix does. - This mode of operation is selected by either setting the environment - variable POSIXLY_CORRECT, or using `+' as the first character - of the list of option characters. - - PERMUTE is the default. We permute the contents of ARGV as we scan, - so that eventually all the non-options are at the end. This allows options - to be given in any order, even with programs that were not written to - expect this. - - RETURN_IN_ORDER is an option available to programs that were written - to expect options and other ARGV-elements in any order and that care about - the ordering of the two. We describe each non-option ARGV-element - as if it were the argument of an option with character code 1. - Using `-' as the first character of the list of option characters - selects this mode of operation. - - The special argument `--' forces an end of option-scanning regardless - of the value of `ordering'. In the case of RETURN_IN_ORDER, only - `--' can cause `getopt' to return EOF with `optind' != ARGC. */ - -static enum -{ - REQUIRE_ORDER, PERMUTE, RETURN_IN_ORDER -} ordering; - -/* Value of POSIXLY_CORRECT environment variable. */ -static char *posixly_correct; - -#ifdef __GNU_LIBRARY__ -/* We want to avoid inclusion of string.h with non-GNU libraries - because there are many ways it can cause trouble. - On some systems, it contains special magic macros that don't work - in GCC. */ -#include -#define my_index strchr -#else - -/* Avoid depending on library functions or files - whose names are inconsistent. */ - -char *getenv (); - -static char * -my_index (str, chr) - const char *str; - int chr; -{ - while (*str) - { - if (*str == chr) - return (char *) str; - str++; - } - return 0; -} - -/* If using GCC, we can safely declare strlen this way. - If not using GCC, it is ok not to declare it. */ -#ifdef __GNUC__ -/* Note that Motorola Delta 68k R3V7 comes with GCC but not stddef.h. - That was relevant to code that was here before. */ -#if !defined (__STDC__) || !__STDC__ -/* gcc with -traditional declares the built-in strlen to return int, - and has done so at least since version 2.4.5. -- rms. */ -extern int strlen (const char *); -#endif /* not __STDC__ */ -#endif /* __GNUC__ */ - -#endif /* not __GNU_LIBRARY__ */ - -/* Handle permutation of arguments. */ - -/* Describe the part of ARGV that contains non-options that have - been skipped. `first_nonopt' is the index in ARGV of the first of them; - `last_nonopt' is the index after the last of them. */ - -static int first_nonopt; -static int last_nonopt; - -/* Bash 2.0 gives us an environment variable containing flags - indicating ARGV elements that should not be considered arguments. */ - -static const char *nonoption_flags; -static int nonoption_flags_len; - -/* Exchange two adjacent subsequences of ARGV. - One subsequence is elements [first_nonopt,last_nonopt) - which contains all the non-options that have been skipped so far. - The other is elements [last_nonopt,optind), which contains all - the options processed since those non-options were skipped. - - `first_nonopt' and `last_nonopt' are relocated so that they describe - the new indices of the non-options in ARGV after they are moved. */ - -#if defined (__STDC__) && __STDC__ -static void exchange (char **); -#endif - -static void -exchange (argv) - char **argv; -{ - int bottom = first_nonopt; - int middle = last_nonopt; - int top = optind; - char *tem; - - /* Exchange the shorter segment with the far end of the longer segment. - That puts the shorter segment into the right place. - It leaves the longer segment in the right place overall, - but it consists of two parts that need to be swapped next. */ - - while (top > middle && middle > bottom) - { - if (top - middle > middle - bottom) - { - /* Bottom segment is the short one. */ - int len = middle - bottom; - register int i; - - /* Swap it with the top part of the top segment. */ - for (i = 0; i < len; i++) - { - tem = argv[bottom + i]; - argv[bottom + i] = argv[top - (middle - bottom) + i]; - argv[top - (middle - bottom) + i] = tem; - } - /* Exclude the moved bottom segment from further swapping. */ - top -= len; - } - else - { - /* Top segment is the short one. */ - int len = top - middle; - register int i; - - /* Swap it with the bottom part of the bottom segment. */ - for (i = 0; i < len; i++) - { - tem = argv[bottom + i]; - argv[bottom + i] = argv[middle + i]; - argv[middle + i] = tem; - } - /* Exclude the moved top segment from further swapping. */ - bottom += len; - } - } - - /* Update records for the slots the non-options now occupy. */ - - first_nonopt += (optind - last_nonopt); - last_nonopt = optind; -} - -/* Initialize the internal data when the first call is made. */ - -#if defined (__STDC__) && __STDC__ -static const char *_getopt_initialize (const char *); -#endif -static const char * -_getopt_initialize (optstring) - const char *optstring; -{ - /* Start processing options with ARGV-element 1 (since ARGV-element 0 - is the program name); the sequence of previously skipped - non-option ARGV-elements is empty. */ - - first_nonopt = last_nonopt = optind = 1; - - nextchar = NULL; - - posixly_correct = getenv ("POSIXLY_CORRECT"); - - /* Determine how to handle the ordering of options and nonoptions. */ - - if (optstring[0] == '-') - { - ordering = RETURN_IN_ORDER; - ++optstring; - } - else if (optstring[0] == '+') - { - ordering = REQUIRE_ORDER; - ++optstring; - } - else if (posixly_correct != NULL) - ordering = REQUIRE_ORDER; - else - ordering = PERMUTE; - - if (posixly_correct == NULL) - { - /* Bash 2.0 puts a special variable in the environment for each - command it runs, specifying which ARGV elements are the results of - file name wildcard expansion and therefore should not be - considered as options. */ - char var[100]; - sprintf (var, "_%d_GNU_nonoption_argv_flags_", getpid ()); - nonoption_flags = getenv (var); - if (nonoption_flags == NULL) - nonoption_flags_len = 0; - else - nonoption_flags_len = strlen (nonoption_flags); - } - - return optstring; -} - -/* Scan elements of ARGV (whose length is ARGC) for option characters - given in OPTSTRING. - - If an element of ARGV starts with '-', and is not exactly "-" or "--", - then it is an option element. The characters of this element - (aside from the initial '-') are option characters. If `getopt' - is called repeatedly, it returns successively each of the option characters - from each of the option elements. - - If `getopt' finds another option character, it returns that character, - updating `optind' and `nextchar' so that the next call to `getopt' can - resume the scan with the following option character or ARGV-element. - - If there are no more option characters, `getopt' returns `EOF'. - Then `optind' is the index in ARGV of the first ARGV-element - that is not an option. (The ARGV-elements have been permuted - so that those that are not options now come last.) - - OPTSTRING is a string containing the legitimate option characters. - If an option character is seen that is not listed in OPTSTRING, - return '?' after printing an error message. If you set `opterr' to - zero, the error message is suppressed but we still return '?'. - - If a char in OPTSTRING is followed by a colon, that means it wants an arg, - so the following text in the same ARGV-element, or the text of the following - ARGV-element, is returned in `optarg'. Two colons mean an option that - wants an optional arg; if there is text in the current ARGV-element, - it is returned in `optarg', otherwise `optarg' is set to zero. - - If OPTSTRING starts with `-' or `+', it requests different methods of - handling the non-option ARGV-elements. - See the comments about RETURN_IN_ORDER and REQUIRE_ORDER, above. - - Long-named options begin with `--' instead of `-'. - Their names may be abbreviated as long as the abbreviation is unique - or is an exact match for some defined option. If they have an - argument, it follows the option name in the same ARGV-element, separated - from the option name by a `=', or else the in next ARGV-element. - When `getopt' finds a long-named option, it returns 0 if that option's - `flag' field is nonzero, the value of the option's `val' field - if the `flag' field is zero. - - The elements of ARGV aren't really const, because we permute them. - But we pretend they're const in the prototype to be compatible - with other systems. - - LONGOPTS is a vector of `struct option' terminated by an - element containing a name which is zero. - - LONGIND returns the index in LONGOPT of the long-named option found. - It is only valid when a long-named option has been found by the most - recent call. - - If LONG_ONLY is nonzero, '-' as well as '--' can introduce - long-named options. */ - -int -_getopt_internal (argc, argv, optstring, longopts, longind, long_only) - int argc; - char *const *argv; - const char *optstring; - const struct option *longopts; - int *longind; - int long_only; -{ - optarg = NULL; - - if (optind == 0) - { - optstring = _getopt_initialize (optstring); - optind = 1; /* Don't scan ARGV[0], the program name. */ - } - - /* Test whether ARGV[optind] points to a non-option argument. - Either it does not have option syntax, or there is an environment flag - from the shell indicating it is not an option. */ -#define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0' \ - || (optind < nonoption_flags_len \ - && nonoption_flags[optind] == '1')) - - if (nextchar == NULL || *nextchar == '\0') - { - /* Advance to the next ARGV-element. */ - - /* Give FIRST_NONOPT & LAST_NONOPT rational values if OPTIND has been - moved back by the user (who may also have changed the arguments). */ - if (last_nonopt > optind) - last_nonopt = optind; - if (first_nonopt > optind) - first_nonopt = optind; - - if (ordering == PERMUTE) - { - /* If we have just processed some options following some non-options, - exchange them so that the options come first. */ - - if (first_nonopt != last_nonopt && last_nonopt != optind) - exchange ((char **) argv); - else if (last_nonopt != optind) - first_nonopt = optind; - - /* Skip any additional non-options - and extend the range of non-options previously skipped. */ - - while (optind < argc && NONOPTION_P) - optind++; - last_nonopt = optind; - } - - /* The special ARGV-element `--' means premature end of options. - Skip it like a null option, - then exchange with previous non-options as if it were an option, - then skip everything else like a non-option. */ - - if (optind != argc && !strcmp (argv[optind], "--")) - { - optind++; - - if (first_nonopt != last_nonopt && last_nonopt != optind) - exchange ((char **) argv); - else if (first_nonopt == last_nonopt) - first_nonopt = optind; - last_nonopt = argc; - - optind = argc; - } - - /* If we have done all the ARGV-elements, stop the scan - and back over any non-options that we skipped and permuted. */ - - if (optind == argc) - { - /* Set the next-arg-index to point at the non-options - that we previously skipped, so the caller will digest them. */ - if (first_nonopt != last_nonopt) - optind = first_nonopt; - return EOF; - } - - /* If we have come to a non-option and did not permute it, - either stop the scan or describe it to the caller and pass it by. */ - - if (NONOPTION_P) - { - if (ordering == REQUIRE_ORDER) - return EOF; - optarg = argv[optind++]; - return 1; - } - - /* We have found another option-ARGV-element. - Skip the initial punctuation. */ - - nextchar = (argv[optind] + 1 - + (longopts != NULL && argv[optind][1] == '-')); - } - - /* Decode the current option-ARGV-element. */ - - /* Check whether the ARGV-element is a long option. - - If long_only and the ARGV-element has the form "-f", where f is - a valid short option, don't consider it an abbreviated form of - a long option that starts with f. Otherwise there would be no - way to give the -f short option. - - On the other hand, if there's a long option "fubar" and - the ARGV-element is "-fu", do consider that an abbreviation of - the long option, just like "--fu", and not "-f" with arg "u". - - This distinction seems to be the most useful approach. */ - - if (longopts != NULL - && (argv[optind][1] == '-' - || (long_only && (argv[optind][2] || !my_index (optstring, argv[optind][1]))))) - { - char *nameend; - const struct option *p; - const struct option *pfound = NULL; - int exact = 0; - int ambig = 0; - int indfound; - int option_index; - - for (nameend = nextchar; *nameend && *nameend != '='; nameend++) - /* Do nothing. */ ; - -#ifdef lint /* Suppress `used before initialized' warning. */ - indfound = 0; -#endif - - /* Test all long options for either exact match - or abbreviated matches. */ - for (p = longopts, option_index = 0; p->name; p++, option_index++) - if (!strncmp (p->name, nextchar, nameend - nextchar)) - { - if (nameend - nextchar == strlen (p->name)) - { - /* Exact match found. */ - pfound = p; - indfound = option_index; - exact = 1; - break; - } - else if (pfound == NULL) - { - /* First nonexact match found. */ - pfound = p; - indfound = option_index; - } - else - /* Second or later nonexact match found. */ - ambig = 1; - } - - if (ambig && !exact) - { - if (opterr) - fprintf (stderr, _("%s: option `%s' is ambiguous\n"), - argv[0], argv[optind]); - nextchar += strlen (nextchar); - optind++; - optopt = 0; - return '?'; - } - - if (pfound != NULL) - { - option_index = indfound; - optind++; - if (*nameend) - { - /* Don't test has_arg with >, because some C compilers don't - allow it to be used on enums. */ - if (pfound->has_arg) - optarg = nameend + 1; - else - { - if (opterr) - if (argv[optind - 1][1] == '-') - /* --option */ - fprintf (stderr, - _("%s: option `--%s' doesn't allow an argument\n"), - argv[0], pfound->name); - else - /* +option or -option */ - fprintf (stderr, - _("%s: option `%c%s' doesn't allow an argument\n"), - argv[0], argv[optind - 1][0], pfound->name); - - nextchar += strlen (nextchar); - - optopt = pfound->val; - return '?'; - } - } - else if (pfound->has_arg == 1) - { - if (optind < argc) - optarg = argv[optind++]; - else - { - if (opterr) - fprintf (stderr, - _("%s: option `%s' requires an argument\n"), - argv[0], argv[optind - 1]); - nextchar += strlen (nextchar); - optopt = pfound->val; - return optstring[0] == ':' ? ':' : '?'; - } - } - nextchar += strlen (nextchar); - if (longind != NULL) - *longind = option_index; - if (pfound->flag) - { - *(pfound->flag) = pfound->val; - return 0; - } - return pfound->val; - } - - /* Can't find it as a long option. If this is not getopt_long_only, - or the option starts with '--' or is not a valid short - option, then it's an error. - Otherwise interpret it as a short option. */ - if (!long_only || argv[optind][1] == '-' - || my_index (optstring, *nextchar) == NULL) - { - if (opterr) - { - if (argv[optind][1] == '-') - /* --option */ - fprintf (stderr, _("%s: unrecognized option `--%s'\n"), - argv[0], nextchar); - else - /* +option or -option */ - fprintf (stderr, _("%s: unrecognized option `%c%s'\n"), - argv[0], argv[optind][0], nextchar); - } - nextchar = (char *) ""; - optind++; - optopt = 0; - return '?'; - } - } - - /* Look at and handle the next short option-character. */ - - { - char c = *nextchar++; - char *temp = my_index (optstring, c); - - /* Increment `optind' when we start to process its last character. */ - if (*nextchar == '\0') - ++optind; - - if (temp == NULL || c == ':') - { - if (opterr) - { - if (posixly_correct) - /* 1003.2 specifies the format of this message. */ - fprintf (stderr, _("%s: illegal option -- %c\n"), - argv[0], c); - else - fprintf (stderr, _("%s: invalid option -- %c\n"), - argv[0], c); - } - optopt = c; - return '?'; - } - if (temp[1] == ':') - { - if (temp[2] == ':') - { - /* This is an option that accepts an argument optionally. */ - if (*nextchar != '\0') - { - optarg = nextchar; - optind++; - } - else - optarg = NULL; - nextchar = NULL; - } - else - { - /* This is an option that requires an argument. */ - if (*nextchar != '\0') - { - optarg = nextchar; - /* If we end this ARGV-element by taking the rest as an arg, - we must advance to the next element now. */ - optind++; - } - else if (optind == argc) - { - if (opterr) - { - /* 1003.2 specifies the format of this message. */ - fprintf (stderr, - _("%s: option requires an argument -- %c\n"), - argv[0], c); - } - optopt = c; - if (optstring[0] == ':') - c = ':'; - else - c = '?'; - } - else - /* We already incremented `optind' once; - increment it again when taking next ARGV-elt as argument. */ - optarg = argv[optind++]; - nextchar = NULL; - } - } - return c; - } -} - -int -getopt (argc, argv, optstring) - int argc; - char *const *argv; - const char *optstring; -{ - return _getopt_internal (argc, argv, optstring, - (const struct option *) 0, - (int *) 0, - 0); -} - -#endif /* _LIBC or not __GNU_LIBRARY__. */ - -#ifdef TEST - -/* Compile with -DTEST to make an executable for use in testing - the above definition of `getopt'. */ - -int -main (argc, argv) - int argc; - char **argv; -{ - int c; - int digit_optind = 0; - - while (1) - { - int this_option_optind = optind ? optind : 1; - - c = getopt (argc, argv, "abc:d:0123456789"); - if (c == EOF) - break; - - switch (c) - { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - if (digit_optind != 0 && digit_optind != this_option_optind) - printf ("digits occur in two different argv-elements.\n"); - digit_optind = this_option_optind; - printf ("option %c\n", c); - break; - - case 'a': - printf ("option a\n"); - break; - - case 'b': - printf ("option b\n"); - break; - - case 'c': - printf ("option c with value `%s'\n", optarg); - break; - - case '?': - break; - - default: - printf ("?? getopt returned character code 0%o ??\n", c); - } - } - - if (optind < argc) - { - printf ("non-option ARGV-elements: "); - while (optind < argc) - printf ("%s ", argv[optind++]); - printf ("\n"); - } - - exit (0); -} - -#endif /* TEST */ diff --git a/barcode-0.98/compat/getopt.h b/barcode-0.98/compat/getopt.h deleted file mode 100644 index 952f4830..00000000 --- a/barcode-0.98/compat/getopt.h +++ /dev/null @@ -1,129 +0,0 @@ -/* Declarations for getopt. - Copyright (C) 1989, 90, 91, 92, 93, 94 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 2, 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, write to the Free Software - Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -#ifndef _GETOPT_H -#define _GETOPT_H 1 - -#ifdef __cplusplus -extern "C" { -#endif - -/* For communication from `getopt' to the caller. - When `getopt' finds an option that takes an argument, - the argument value is returned here. - Also, when `ordering' is RETURN_IN_ORDER, - each non-option ARGV-element is returned here. */ - -extern char *optarg; - -/* Index in ARGV of the next element to be scanned. - This is used for communication to and from the caller - and for communication between successive calls to `getopt'. - - On entry to `getopt', zero means this is the first call; initialize. - - When `getopt' returns EOF, this is the index of the first of the - non-option elements that the caller should itself scan. - - Otherwise, `optind' communicates from one call to the next - how much of ARGV has been scanned so far. */ - -extern int optind; - -/* Callers store zero here to inhibit the error message `getopt' prints - for unrecognized options. */ - -extern int opterr; - -/* Set to an option character which was unrecognized. */ - -extern int optopt; - -/* Describe the long-named options requested by the application. - The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector - of `struct option' terminated by an element containing a name which is - zero. - - The field `has_arg' is: - no_argument (or 0) if the option does not take an argument, - required_argument (or 1) if the option requires an argument, - optional_argument (or 2) if the option takes an optional argument. - - If the field `flag' is not NULL, it points to a variable that is set - to the value given in the field `val' when the option is found, but - left unchanged if the option is not found. - - To have a long-named option do something other than set an `int' to - a compiled-in constant, such as set a value from `optarg', set the - option's `flag' field to zero and its `val' field to a nonzero - value (the equivalent single-letter option character, if there is - one). For long options that have a zero `flag' field, `getopt' - returns the contents of the `val' field. */ - -struct option -{ -#if defined (__STDC__) && __STDC__ - const char *name; -#else - char *name; -#endif - /* has_arg can't be an enum because some compilers complain about - type mismatches in all the code that assumes it is an int. */ - int has_arg; - int *flag; - int val; -}; - -/* Names for the values of the `has_arg' field of `struct option'. */ - -#define no_argument 0 -#define required_argument 1 -#define optional_argument 2 - -#if defined (__STDC__) && __STDC__ -#ifdef __GNU_LIBRARY__ -/* Many other libraries have conflicting prototypes for getopt, with - differences in the consts, in stdlib.h. To avoid compilation - errors, only prototype getopt for the GNU C library. */ -extern int getopt (int argc, char *const *argv, const char *shortopts); -#else /* not __GNU_LIBRARY__ */ -extern int getopt (); -#endif /* __GNU_LIBRARY__ */ -extern int getopt_long (int argc, char *const *argv, const char *shortopts, - const struct option *longopts, int *longind); -extern int getopt_long_only (int argc, char *const *argv, - const char *shortopts, - const struct option *longopts, int *longind); - -/* Internal only. Users should not call this directly. */ -extern int _getopt_internal (int argc, char *const *argv, - const char *shortopts, - const struct option *longopts, int *longind, - int long_only); -#else /* not __STDC__ */ -extern int getopt (); -extern int getopt_long (); -extern int getopt_long_only (); - -extern int _getopt_internal (); -#endif /* __STDC__ */ - -#ifdef __cplusplus -} -#endif - -#endif /* _GETOPT_H */ diff --git a/barcode-0.98/configure b/barcode-0.98/configure deleted file mode 100755 index f0e5d457..00000000 --- a/barcode-0.98/configure +++ /dev/null @@ -1,5197 +0,0 @@ -#! /bin/sh -# Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.57. -# -# Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002 -# Free Software Foundation, Inc. -# This configure script is free software; the Free Software Foundation -# gives unlimited permission to copy, distribute and modify it. -## --------------------- ## -## M4sh Initialization. ## -## --------------------- ## - -# Be Bourne compatible -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' -elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then - set -o posix -fi - -# Support unset when possible. -if (FOO=FOO; unset FOO) >/dev/null 2>&1; then - as_unset=unset -else - as_unset=false -fi - - -# Work around bugs in pre-3.0 UWIN ksh. -$as_unset ENV MAIL MAILPATH -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -for as_var in \ - LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ - LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ - LC_TELEPHONE LC_TIME -do - if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then - eval $as_var=C; export $as_var - else - $as_unset $as_var - fi -done - -# Required to use basename. -if expr a : '\(a\)' >/dev/null 2>&1; then - as_expr=expr -else - as_expr=false -fi - -if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - - -# Name of the executable. -as_me=`$as_basename "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)$' \| \ - . : '\(.\)' 2>/dev/null || -echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } - /^X\/\(\/\/\)$/{ s//\1/; q; } - /^X\/\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - - -# PATH needs CR, and LINENO needs CR and PATH. -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - - - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" || { - # Find who we are. Look in the path if we contain no path at all - # relative or not. - case $0 in - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break -done - - ;; - esac - # We did not find ourselves, most probably we were run as `sh COMMAND' - # in which case we are not to be found in the path. - if test "x$as_myself" = x; then - as_myself=$0 - fi - if test ! -f "$as_myself"; then - { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2 - { (exit 1); exit 1; }; } - fi - case $CONFIG_SHELL in - '') - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for as_base in sh bash ksh sh5; do - case $as_dir in - /*) - if ("$as_dir/$as_base" -c ' - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then - $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } - $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } - CONFIG_SHELL=$as_dir/$as_base - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$0" ${1+"$@"} - fi;; - esac - done -done -;; - esac - - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO - # uniformly replaced by the line number. The first 'sed' inserts a - # line-number line before each line; the second 'sed' does the real - # work. The second script uses 'N' to pair each line-number line - # with the numbered line, and appends trailing '-' during - # substitution so that $LINENO is not a special case at line end. - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the - # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) - sed '=' <$as_myself | - sed ' - N - s,$,-, - : loop - s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, - t loop - s,-$,, - s,^['$as_cr_digits']*\n,, - ' >$as_me.lineno && - chmod +x $as_me.lineno || - { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 - { (exit 1); exit 1; }; } - - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensible to this). - . ./$as_me.lineno - # Exit status is that of the last command. - exit -} - - -case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in - *c*,-n*) ECHO_N= ECHO_C=' -' ECHO_T=' ' ;; - *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; - *) ECHO_N= ECHO_C='\c' ECHO_T= ;; -esac - -if expr a : '\(a\)' >/dev/null 2>&1; then - as_expr=expr -else - as_expr=false -fi - -rm -f conf$$ conf$$.exe conf$$.file -echo >conf$$.file -if ln -s conf$$.file conf$$ 2>/dev/null; then - # We could just check for DJGPP; but this test a) works b) is more generic - # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). - if test -f conf$$.exe; then - # Don't use ln at all; we don't have any links - as_ln_s='cp -p' - else - as_ln_s='ln -s' - fi -elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln -else - as_ln_s='cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.file - -if mkdir -p . 2>/dev/null; then - as_mkdir_p=: -else - as_mkdir_p=false -fi - -as_executable_p="test -f" - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g" - - -# IFS -# We need space, tab and new line, in precisely that order. -as_nl=' -' -IFS=" $as_nl" - -# CDPATH. -$as_unset CDPATH - - -# Name of the host. -# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, -# so uname gets run too. -ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` - -exec 6>&1 - -# -# Initializations. -# -ac_default_prefix=/usr/local -ac_config_libobj_dir=. -cross_compiling=no -subdirs= -MFLAGS= -MAKEFLAGS= -SHELL=${CONFIG_SHELL-/bin/sh} - -# Maximum number of lines to put in a shell here document. -# This variable seems obsolete. It should probably be removed, and -# only ac_max_sed_lines should be used. -: ${ac_max_here_lines=38} - -# Identity of this package. -PACKAGE_NAME= -PACKAGE_TARNAME= -PACKAGE_VERSION= -PACKAGE_STRING= -PACKAGE_BUGREPORT= - -ac_unique_file="barcode.h" -# Factoring default headers for most tests. -ac_includes_default="\ -#include -#if HAVE_SYS_TYPES_H -# include -#endif -#if HAVE_SYS_STAT_H -# include -#endif -#if STDC_HEADERS -# include -# include -#else -# if HAVE_STDLIB_H -# include -# endif -#endif -#if HAVE_STRING_H -# if !STDC_HEADERS && HAVE_MEMORY_H -# include -# endif -# include -#endif -#if HAVE_STRINGS_H -# include -#endif -#if HAVE_INTTYPES_H -# include -#else -# if HAVE_STDINT_H -# include -# endif -#endif -#if HAVE_UNISTD_H -# include -#endif" - -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT RANLIB ac_ct_RANLIB INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CPP EGREP GETOPT_O NO_GETOPT NO_LIBPAPER LIBPAPER NO_STRERROR GMAKEDEPEND0 GMAKEDEPEND1 GMAKEDEPEND2 LIBOBJS LTLIBOBJS MAKEINFO REMOVEHTMLTAGS INFOTOHTML' -ac_subst_files='' - -# Initialize some variables set by options. -ac_init_help= -ac_init_version=false -# The variables have the same names as the options, with -# dashes changed to underlines. -cache_file=/dev/null -exec_prefix=NONE -no_create= -no_recursion= -prefix=NONE -program_prefix=NONE -program_suffix=NONE -program_transform_name=s,x,x, -silent= -site= -srcdir= -verbose= -x_includes=NONE -x_libraries=NONE - -# Installation directory options. -# These are left unexpanded so users can "make install exec_prefix=/foo" -# and all the variables that are supposed to be based on exec_prefix -# by default will actually change. -# Use braces instead of parens because sh, perl, etc. also accept them. -bindir='${exec_prefix}/bin' -sbindir='${exec_prefix}/sbin' -libexecdir='${exec_prefix}/libexec' -datadir='${prefix}/share' -sysconfdir='${prefix}/etc' -sharedstatedir='${prefix}/com' -localstatedir='${prefix}/var' -libdir='${exec_prefix}/lib' -includedir='${prefix}/include' -oldincludedir='/usr/include' -infodir='${prefix}/info' -mandir='${prefix}/man' - -ac_prev= -for ac_option -do - # If the previous option needs an argument, assign it. - if test -n "$ac_prev"; then - eval "$ac_prev=\$ac_option" - ac_prev= - continue - fi - - ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'` - - # Accept the important Cygnus configure options, so we can diagnose typos. - - case $ac_option in - - -bindir | --bindir | --bindi | --bind | --bin | --bi) - ac_prev=bindir ;; - -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) - bindir=$ac_optarg ;; - - -build | --build | --buil | --bui | --bu) - ac_prev=build_alias ;; - -build=* | --build=* | --buil=* | --bui=* | --bu=*) - build_alias=$ac_optarg ;; - - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=cache_file ;; - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) - cache_file=$ac_optarg ;; - - --config-cache | -C) - cache_file=config.cache ;; - - -datadir | --datadir | --datadi | --datad | --data | --dat | --da) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ - | --da=*) - datadir=$ac_optarg ;; - - -disable-* | --disable-*) - ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid feature name: $ac_feature" >&2 - { (exit 1); exit 1; }; } - ac_feature=`echo $ac_feature | sed 's/-/_/g'` - eval "enable_$ac_feature=no" ;; - - -enable-* | --enable-*) - ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid feature name: $ac_feature" >&2 - { (exit 1); exit 1; }; } - ac_feature=`echo $ac_feature | sed 's/-/_/g'` - case $ac_option in - *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; - *) ac_optarg=yes ;; - esac - eval "enable_$ac_feature='$ac_optarg'" ;; - - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ - | --exec | --exe | --ex) - ac_prev=exec_prefix ;; - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ - | --exec=* | --exe=* | --ex=*) - exec_prefix=$ac_optarg ;; - - -gas | --gas | --ga | --g) - # Obsolete; use --with-gas. - with_gas=yes ;; - - -help | --help | --hel | --he | -h) - ac_init_help=long ;; - -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) - ac_init_help=recursive ;; - -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) - ac_init_help=short ;; - - -host | --host | --hos | --ho) - ac_prev=host_alias ;; - -host=* | --host=* | --hos=* | --ho=*) - host_alias=$ac_optarg ;; - - -includedir | --includedir | --includedi | --included | --include \ - | --includ | --inclu | --incl | --inc) - ac_prev=includedir ;; - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ - | --includ=* | --inclu=* | --incl=* | --inc=*) - includedir=$ac_optarg ;; - - -infodir | --infodir | --infodi | --infod | --info | --inf) - ac_prev=infodir ;; - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) - infodir=$ac_optarg ;; - - -libdir | --libdir | --libdi | --libd) - ac_prev=libdir ;; - -libdir=* | --libdir=* | --libdi=* | --libd=*) - libdir=$ac_optarg ;; - - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ - | --libexe | --libex | --libe) - ac_prev=libexecdir ;; - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ - | --libexe=* | --libex=* | --libe=*) - libexecdir=$ac_optarg ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst \ - | --locals | --local | --loca | --loc | --lo) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* \ - | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) - localstatedir=$ac_optarg ;; - - -mandir | --mandir | --mandi | --mand | --man | --ma | --m) - ac_prev=mandir ;; - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) - mandir=$ac_optarg ;; - - -nfp | --nfp | --nf) - # Obsolete; use --without-fp. - with_fp=no ;; - - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c | -n) - no_create=yes ;; - - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) - no_recursion=yes ;; - - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ - | --oldin | --oldi | --old | --ol | --o) - ac_prev=oldincludedir ;; - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) - oldincludedir=$ac_optarg ;; - - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) - ac_prev=prefix ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - prefix=$ac_optarg ;; - - -program-prefix | --program-prefix | --program-prefi | --program-pref \ - | --program-pre | --program-pr | --program-p) - ac_prev=program_prefix ;; - -program-prefix=* | --program-prefix=* | --program-prefi=* \ - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) - program_prefix=$ac_optarg ;; - - -program-suffix | --program-suffix | --program-suffi | --program-suff \ - | --program-suf | --program-su | --program-s) - ac_prev=program_suffix ;; - -program-suffix=* | --program-suffix=* | --program-suffi=* \ - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) - program_suffix=$ac_optarg ;; - - -program-transform-name | --program-transform-name \ - | --program-transform-nam | --program-transform-na \ - | --program-transform-n | --program-transform- \ - | --program-transform | --program-transfor \ - | --program-transfo | --program-transf \ - | --program-trans | --program-tran \ - | --progr-tra | --program-tr | --program-t) - ac_prev=program_transform_name ;; - -program-transform-name=* | --program-transform-name=* \ - | --program-transform-nam=* | --program-transform-na=* \ - | --program-transform-n=* | --program-transform-=* \ - | --program-transform=* | --program-transfor=* \ - | --program-transfo=* | --program-transf=* \ - | --program-trans=* | --program-tran=* \ - | --progr-tra=* | --program-tr=* | --program-t=*) - program_transform_name=$ac_optarg ;; - - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - silent=yes ;; - - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) - ac_prev=sbindir ;; - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ - | --sbi=* | --sb=*) - sbindir=$ac_optarg ;; - - -sharedstatedir | --sharedstatedir | --sharedstatedi \ - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ - | --sharedst | --shareds | --shared | --share | --shar \ - | --sha | --sh) - ac_prev=sharedstatedir ;; - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ - | --sha=* | --sh=*) - sharedstatedir=$ac_optarg ;; - - -site | --site | --sit) - ac_prev=site ;; - -site=* | --site=* | --sit=*) - site=$ac_optarg ;; - - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - srcdir=$ac_optarg ;; - - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ - | --syscon | --sysco | --sysc | --sys | --sy) - ac_prev=sysconfdir ;; - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) - sysconfdir=$ac_optarg ;; - - -target | --target | --targe | --targ | --tar | --ta | --t) - ac_prev=target_alias ;; - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) - target_alias=$ac_optarg ;; - - -v | -verbose | --verbose | --verbos | --verbo | --verb) - verbose=yes ;; - - -version | --version | --versio | --versi | --vers | -V) - ac_init_version=: ;; - - -with-* | --with-*) - ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid package name: $ac_package" >&2 - { (exit 1); exit 1; }; } - ac_package=`echo $ac_package| sed 's/-/_/g'` - case $ac_option in - *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; - *) ac_optarg=yes ;; - esac - eval "with_$ac_package='$ac_optarg'" ;; - - -without-* | --without-*) - ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid package name: $ac_package" >&2 - { (exit 1); exit 1; }; } - ac_package=`echo $ac_package | sed 's/-/_/g'` - eval "with_$ac_package=no" ;; - - --x) - # Obsolete; use --with-x. - with_x=yes ;; - - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ - | --x-incl | --x-inc | --x-in | --x-i) - ac_prev=x_includes ;; - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) - x_includes=$ac_optarg ;; - - -x-libraries | --x-libraries | --x-librarie | --x-librari \ - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) - ac_prev=x_libraries ;; - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) - x_libraries=$ac_optarg ;; - - -*) { echo "$as_me: error: unrecognized option: $ac_option -Try \`$0 --help' for more information." >&2 - { (exit 1); exit 1; }; } - ;; - - *=*) - ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` - # Reject names that are not valid shell variable names. - expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 - { (exit 1); exit 1; }; } - ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` - eval "$ac_envvar='$ac_optarg'" - export $ac_envvar ;; - - *) - # FIXME: should be removed in autoconf 3.0. - echo "$as_me: WARNING: you should use --build, --host, --target" >&2 - expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - echo "$as_me: WARNING: invalid host type: $ac_option" >&2 - : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} - ;; - - esac -done - -if test -n "$ac_prev"; then - ac_option=--`echo $ac_prev | sed 's/_/-/g'` - { echo "$as_me: error: missing argument to $ac_option" >&2 - { (exit 1); exit 1; }; } -fi - -# Be sure to have absolute paths. -for ac_var in exec_prefix prefix -do - eval ac_val=$`echo $ac_var` - case $ac_val in - [\\/$]* | ?:[\\/]* | NONE | '' ) ;; - *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 - { (exit 1); exit 1; }; };; - esac -done - -# Be sure to have absolute paths. -for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ - localstatedir libdir includedir oldincludedir infodir mandir -do - eval ac_val=$`echo $ac_var` - case $ac_val in - [\\/$]* | ?:[\\/]* ) ;; - *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 - { (exit 1); exit 1; }; };; - esac -done - -# There might be people who depend on the old broken behavior: `$host' -# used to hold the argument of --host etc. -# FIXME: To remove some day. -build=$build_alias -host=$host_alias -target=$target_alias - -# FIXME: To remove some day. -if test "x$host_alias" != x; then - if test "x$build_alias" = x; then - cross_compiling=maybe - echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. - If a cross compiler is detected then cross compile mode will be used." >&2 - elif test "x$build_alias" != "x$host_alias"; then - cross_compiling=yes - fi -fi - -ac_tool_prefix= -test -n "$host_alias" && ac_tool_prefix=$host_alias- - -test "$silent" = yes && exec 6>/dev/null - - -# Find the source files, if location was not specified. -if test -z "$srcdir"; then - ac_srcdir_defaulted=yes - # Try the directory containing this script, then its parent. - ac_confdir=`(dirname "$0") 2>/dev/null || -$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$0" : 'X\(//\)[^/]' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$0" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - srcdir=$ac_confdir - if test ! -r $srcdir/$ac_unique_file; then - srcdir=.. - fi -else - ac_srcdir_defaulted=no -fi -if test ! -r $srcdir/$ac_unique_file; then - if test "$ac_srcdir_defaulted" = yes; then - { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2 - { (exit 1); exit 1; }; } - else - { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 - { (exit 1); exit 1; }; } - fi -fi -(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null || - { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2 - { (exit 1); exit 1; }; } -srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'` -ac_env_build_alias_set=${build_alias+set} -ac_env_build_alias_value=$build_alias -ac_cv_env_build_alias_set=${build_alias+set} -ac_cv_env_build_alias_value=$build_alias -ac_env_host_alias_set=${host_alias+set} -ac_env_host_alias_value=$host_alias -ac_cv_env_host_alias_set=${host_alias+set} -ac_cv_env_host_alias_value=$host_alias -ac_env_target_alias_set=${target_alias+set} -ac_env_target_alias_value=$target_alias -ac_cv_env_target_alias_set=${target_alias+set} -ac_cv_env_target_alias_value=$target_alias -ac_env_CC_set=${CC+set} -ac_env_CC_value=$CC -ac_cv_env_CC_set=${CC+set} -ac_cv_env_CC_value=$CC -ac_env_CFLAGS_set=${CFLAGS+set} -ac_env_CFLAGS_value=$CFLAGS -ac_cv_env_CFLAGS_set=${CFLAGS+set} -ac_cv_env_CFLAGS_value=$CFLAGS -ac_env_LDFLAGS_set=${LDFLAGS+set} -ac_env_LDFLAGS_value=$LDFLAGS -ac_cv_env_LDFLAGS_set=${LDFLAGS+set} -ac_cv_env_LDFLAGS_value=$LDFLAGS -ac_env_CPPFLAGS_set=${CPPFLAGS+set} -ac_env_CPPFLAGS_value=$CPPFLAGS -ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set} -ac_cv_env_CPPFLAGS_value=$CPPFLAGS -ac_env_CPP_set=${CPP+set} -ac_env_CPP_value=$CPP -ac_cv_env_CPP_set=${CPP+set} -ac_cv_env_CPP_value=$CPP - -# -# Report the --help message. -# -if test "$ac_init_help" = "long"; then - # Omit some internal or obsolete options to make the list less imposing. - # This message is too long to be a string in the A/UX 3.1 sh. - cat <<_ACEOF -\`configure' configures this package to adapt to many kinds of systems. - -Usage: $0 [OPTION]... [VAR=VALUE]... - -To assign environment variables (e.g., CC, CFLAGS...), specify them as -VAR=VALUE. See below for descriptions of some of the useful variables. - -Defaults for the options are specified in brackets. - -Configuration: - -h, --help display this help and exit - --help=short display options specific to this package - --help=recursive display the short help of all the included packages - -V, --version display version information and exit - -q, --quiet, --silent do not print \`checking...' messages - --cache-file=FILE cache test results in FILE [disabled] - -C, --config-cache alias for \`--cache-file=config.cache' - -n, --no-create do not create output files - --srcdir=DIR find the sources in DIR [configure dir or \`..'] - -_ACEOF - - cat <<_ACEOF -Installation directories: - --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [PREFIX] - -By default, \`make install' will install all the files in -\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify -an installation prefix other than \`$ac_default_prefix' using \`--prefix', -for instance \`--prefix=\$HOME'. - -For better control, use the options below. - -Fine tuning of the installation directories: - --bindir=DIR user executables [EPREFIX/bin] - --sbindir=DIR system admin executables [EPREFIX/sbin] - --libexecdir=DIR program executables [EPREFIX/libexec] - --datadir=DIR read-only architecture-independent data [PREFIX/share] - --sysconfdir=DIR read-only single-machine data [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] - --localstatedir=DIR modifiable single-machine data [PREFIX/var] - --libdir=DIR object code libraries [EPREFIX/lib] - --includedir=DIR C header files [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc [/usr/include] - --infodir=DIR info documentation [PREFIX/info] - --mandir=DIR man documentation [PREFIX/man] -_ACEOF - - cat <<\_ACEOF -_ACEOF -fi - -if test -n "$ac_init_help"; then - - cat <<\_ACEOF - -Some influential environment variables: - CC C compiler command - CFLAGS C compiler flags - LDFLAGS linker flags, e.g. -L if you have libraries in a - nonstandard directory - CPPFLAGS C/C++ preprocessor flags, e.g. -I if you have - headers in a nonstandard directory - CPP C preprocessor - -Use these variables to override the choices made by `configure' or to help -it to find libraries and programs with nonstandard names/locations. - -_ACEOF -fi - -if test "$ac_init_help" = "recursive"; then - # If there are subdirs, report their specific --help. - ac_popdir=`pwd` - for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue - test -d $ac_dir || continue - ac_builddir=. - -if test "$ac_dir" != .; then - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` - # A "../" for each directory in $ac_dir_suffix. - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` -else - ac_dir_suffix= ac_top_builddir= -fi - -case $srcdir in - .) # No --srcdir option. We are building in place. - ac_srcdir=. - if test -z "$ac_top_builddir"; then - ac_top_srcdir=. - else - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` - fi ;; - [\\/]* | ?:[\\/]* ) # Absolute path. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir ;; - *) # Relative path. - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_builddir$srcdir ;; -esac -# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be -# absolute. -ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` -ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd` -ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` -ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` - - cd $ac_dir - # Check for guested configure; otherwise get Cygnus style configure. - if test -f $ac_srcdir/configure.gnu; then - echo - $SHELL $ac_srcdir/configure.gnu --help=recursive - elif test -f $ac_srcdir/configure; then - echo - $SHELL $ac_srcdir/configure --help=recursive - elif test -f $ac_srcdir/configure.ac || - test -f $ac_srcdir/configure.in; then - echo - $ac_configure --help - else - echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 - fi - cd $ac_popdir - done -fi - -test -n "$ac_init_help" && exit 0 -if $ac_init_version; then - cat <<\_ACEOF - -Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002 -Free Software Foundation, Inc. -This configure script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it. -_ACEOF - exit 0 -fi -exec 5>config.log -cat >&5 <<_ACEOF -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. - -It was created by $as_me, which was -generated by GNU Autoconf 2.57. Invocation command line was - - $ $0 $@ - -_ACEOF -{ -cat <<_ASUNAME -## --------- ## -## Platform. ## -## --------- ## - -hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` - -/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` -hostinfo = `(hostinfo) 2>/dev/null || echo unknown` -/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` -/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` - -_ASUNAME - -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - echo "PATH: $as_dir" -done - -} >&5 - -cat >&5 <<_ACEOF - - -## ----------- ## -## Core tests. ## -## ----------- ## - -_ACEOF - - -# Keep a trace of the command line. -# Strip out --no-create and --no-recursion so they do not pile up. -# Strip out --silent because we don't want to record it for future runs. -# Also quote any args containing shell meta-characters. -# Make two passes to allow for proper duplicate-argument suppression. -ac_configure_args= -ac_configure_args0= -ac_configure_args1= -ac_sep= -ac_must_keep_next=false -for ac_pass in 1 2 -do - for ac_arg - do - case $ac_arg in - -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - continue ;; - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) - ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - case $ac_pass in - 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; - 2) - ac_configure_args1="$ac_configure_args1 '$ac_arg'" - if test $ac_must_keep_next = true; then - ac_must_keep_next=false # Got value, back to normal. - else - case $ac_arg in - *=* | --config-cache | -C | -disable-* | --disable-* \ - | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ - | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ - | -with-* | --with-* | -without-* | --without-* | --x) - case "$ac_configure_args0 " in - "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; - esac - ;; - -* ) ac_must_keep_next=true ;; - esac - fi - ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" - # Get rid of the leading space. - ac_sep=" " - ;; - esac - done -done -$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } -$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } - -# When interrupted or exit'd, cleanup temporary files, and complete -# config.log. We remove comments because anyway the quotes in there -# would cause problems or look ugly. -# WARNING: Be sure not to use single quotes in there, as some shells, -# such as our DU 5.0 friend, will then `close' the trap. -trap 'exit_status=$? - # Save into config.log some information that might help in debugging. - { - echo - - cat <<\_ASBOX -## ---------------- ## -## Cache variables. ## -## ---------------- ## -_ASBOX - echo - # The following way of writing the cache mishandles newlines in values, -{ - (set) 2>&1 | - case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in - *ac_space=\ *) - sed -n \ - "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" - ;; - *) - sed -n \ - "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" - ;; - esac; -} - echo - - cat <<\_ASBOX -## ----------------- ## -## Output variables. ## -## ----------------- ## -_ASBOX - echo - for ac_var in $ac_subst_vars - do - eval ac_val=$`echo $ac_var` - echo "$ac_var='"'"'$ac_val'"'"'" - done | sort - echo - - if test -n "$ac_subst_files"; then - cat <<\_ASBOX -## ------------- ## -## Output files. ## -## ------------- ## -_ASBOX - echo - for ac_var in $ac_subst_files - do - eval ac_val=$`echo $ac_var` - echo "$ac_var='"'"'$ac_val'"'"'" - done | sort - echo - fi - - if test -s confdefs.h; then - cat <<\_ASBOX -## ----------- ## -## confdefs.h. ## -## ----------- ## -_ASBOX - echo - sed "/^$/d" confdefs.h | sort - echo - fi - test "$ac_signal" != 0 && - echo "$as_me: caught signal $ac_signal" - echo "$as_me: exit $exit_status" - } >&5 - rm -f core core.* *.core && - rm -rf conftest* confdefs* conf$$* $ac_clean_files && - exit $exit_status - ' 0 -for ac_signal in 1 2 13 15; do - trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal -done -ac_signal=0 - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -rf conftest* confdefs.h -# AIX cpp loses on an empty file, so make sure it contains at least a newline. -echo >confdefs.h - -# Predefined preprocessor variables. - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_NAME "$PACKAGE_NAME" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_TARNAME "$PACKAGE_TARNAME" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_VERSION "$PACKAGE_VERSION" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_STRING "$PACKAGE_STRING" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" -_ACEOF - - -# Let the site file select an alternate cache file if it wants to. -# Prefer explicitly selected file to automatically selected ones. -if test -z "$CONFIG_SITE"; then - if test "x$prefix" != xNONE; then - CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" - else - CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" - fi -fi -for ac_site_file in $CONFIG_SITE; do - if test -r "$ac_site_file"; then - { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 -echo "$as_me: loading site script $ac_site_file" >&6;} - sed 's/^/| /' "$ac_site_file" >&5 - . "$ac_site_file" - fi -done - -if test -r "$cache_file"; then - # Some versions of bash will fail to source /dev/null (special - # files actually), so we avoid doing that. - if test -f "$cache_file"; then - { echo "$as_me:$LINENO: loading cache $cache_file" >&5 -echo "$as_me: loading cache $cache_file" >&6;} - case $cache_file in - [\\/]* | ?:[\\/]* ) . $cache_file;; - *) . ./$cache_file;; - esac - fi -else - { echo "$as_me:$LINENO: creating cache $cache_file" >&5 -echo "$as_me: creating cache $cache_file" >&6;} - >$cache_file -fi - -# Check that the precious variables saved in the cache have kept the same -# value. -ac_cache_corrupted=false -for ac_var in `(set) 2>&1 | - sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do - eval ac_old_set=\$ac_cv_env_${ac_var}_set - eval ac_new_set=\$ac_env_${ac_var}_set - eval ac_old_val="\$ac_cv_env_${ac_var}_value" - eval ac_new_val="\$ac_env_${ac_var}_value" - case $ac_old_set,$ac_new_set in - set,) - { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,set) - { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 -echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,);; - *) - if test "x$ac_old_val" != "x$ac_new_val"; then - { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 -echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 -echo "$as_me: former value: $ac_old_val" >&2;} - { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 -echo "$as_me: current value: $ac_new_val" >&2;} - ac_cache_corrupted=: - fi;; - esac - # Pass precious variables to config.status. - if test "$ac_new_set" = set; then - case $ac_new_val in - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) - ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; - *) ac_arg=$ac_var=$ac_new_val ;; - esac - case " $ac_configure_args " in - *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. - *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; - esac - fi -done -if $ac_cache_corrupted; then - { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 -echo "$as_me: error: changes in the environment can compromise the build" >&2;} - { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 -echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} - { (exit 1); exit 1; }; } -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - - - - - - - - - - - - - - - - - - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. -set dummy ${ac_tool_prefix}gcc; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}gcc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="gcc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - CC=$ac_ct_CC -else - CC="$ac_cv_prog_CC" -fi - -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. -set dummy ${ac_tool_prefix}cc; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}cc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="cc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - CC=$ac_ct_CC -else - CC="$ac_cv_prog_CC" -fi - -fi -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - ac_prog_rejected=no -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# != 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" - fi -fi -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cl -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$ac_ct_CC" && break -done - - CC=$ac_ct_CC -fi - -fi - - -test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH -See \`config.log' for more details." >&5 -echo "$as_me: error: no acceptable C compiler found in \$PATH -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } - -# Provide some information about the compiler. -echo "$as_me:$LINENO:" \ - "checking for C compiler version" >&5 -ac_compiler=`set X $ac_compile; echo $2` -{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 - (eval $ac_compiler --version &5) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 - (eval $ac_compiler -v &5) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 - (eval $ac_compiler -V &5) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } - -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out a.exe b.out" -# Try to create an executable without -o first, disregard a.out. -# It will help us diagnose broken compilers, and finding out an intuition -# of exeext. -echo "$as_me:$LINENO: checking for C compiler default output" >&5 -echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6 -ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` -if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5 - (eval $ac_link_default) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - # Find the output, starting from the most likely. This scheme is -# not robust to junk in `.', hence go to wildcards (a.*) only as a last -# resort. - -# Be careful to initialize this variable, since it used to be cached. -# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile. -ac_cv_exeext= -# b.out is created by i960 compilers. -for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out -do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) - ;; - conftest.$ac_ext ) - # This is the source file. - ;; - [ab].out ) - # We found the default executable, but exeext='' is most - # certainly right. - break;; - *.* ) - ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - # FIXME: I believe we export ac_cv_exeext for Libtool, - # but it would be cool to find out if it's true. Does anybody - # maintain Libtool? --akim. - export ac_cv_exeext - break;; - * ) - break;; - esac -done -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { echo "$as_me:$LINENO: error: C compiler cannot create executables -See \`config.log' for more details." >&5 -echo "$as_me: error: C compiler cannot create executables -See \`config.log' for more details." >&2;} - { (exit 77); exit 77; }; } -fi - -ac_exeext=$ac_cv_exeext -echo "$as_me:$LINENO: result: $ac_file" >&5 -echo "${ECHO_T}$ac_file" >&6 - -# Check the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -echo "$as_me:$LINENO: checking whether the C compiler works" >&5 -echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6 -# FIXME: These cross compiler hacks should be removed for Autoconf 3.0 -# If not cross compiling, check that we can run a simple program. -if test "$cross_compiling" != yes; then - if { ac_try='./$ac_file' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cross_compiling=no - else - if test "$cross_compiling" = maybe; then - cross_compiling=yes - else - { { echo "$as_me:$LINENO: error: cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } - fi - fi -fi -echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - -rm -f a.out a.exe conftest$ac_cv_exeext b.out -ac_clean_files=$ac_clean_files_save -# Check the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 -echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6 -echo "$as_me:$LINENO: result: $cross_compiling" >&5 -echo "${ECHO_T}$cross_compiling" >&6 - -echo "$as_me:$LINENO: checking for suffix of executables" >&5 -echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - # If both `conftest.exe' and `conftest' are `present' (well, observable) -# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will -# work properly (i.e., refer to `conftest.exe'), while it won't with -# `rm'. -for ac_file in conftest.exe conftest conftest.*; do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;; - *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - export ac_cv_exeext - break;; - * ) break;; - esac -done -else - { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi - -rm -f conftest$ac_cv_exeext -echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 -echo "${ECHO_T}$ac_cv_exeext" >&6 - -rm -f conftest.$ac_ext -EXEEXT=$ac_cv_exeext -ac_exeext=$EXEEXT -echo "$as_me:$LINENO: checking for suffix of object files" >&5 -echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6 -if test "${ac_cv_objext+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.o conftest.obj -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;; - *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` - break;; - esac -done -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute suffix of object files: cannot compile -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi - -rm -f conftest.$ac_cv_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 -echo "${ECHO_T}$ac_cv_objext" >&6 -OBJEXT=$ac_cv_objext -ac_objext=$OBJEXT -echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 -echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6 -if test "${ac_cv_c_compiler_gnu+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_compiler_gnu=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_compiler_gnu=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -ac_cv_c_compiler_gnu=$ac_compiler_gnu - -fi -echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 -echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6 -GCC=`test $ac_compiler_gnu = yes && echo yes` -ac_test_CFLAGS=${CFLAGS+set} -ac_save_CFLAGS=$CFLAGS -CFLAGS="-g" -echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 -echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6 -if test "${ac_cv_prog_cc_g+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_prog_cc_g=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_prog_cc_g=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_g" >&6 -if test "$ac_test_CFLAGS" = set; then - CFLAGS=$ac_save_CFLAGS -elif test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-g" - fi -else - if test "$GCC" = yes; then - CFLAGS="-O2" - else - CFLAGS= - fi -fi -echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5 -echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6 -if test "${ac_cv_prog_cc_stdc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_prog_cc_stdc=no -ac_save_CC=$CC -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -#include -#include -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; -int -main () -{ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; - ; - return 0; -} -_ACEOF -# Don't try gcc -ansi; that turns off useful extensions and -# breaks some systems' header files. -# AIX -qlanglvl=ansi -# Ultrix and OSF/1 -std1 -# HP-UX 10.20 and later -Ae -# HP-UX older versions -Aa -D_HPUX_SOURCE -# SVR4 -Xc -D__EXTENSIONS__ -for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_prog_cc_stdc=$ac_arg -break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.$ac_objext -done -rm -f conftest.$ac_ext conftest.$ac_objext -CC=$ac_save_CC - -fi - -case "x$ac_cv_prog_cc_stdc" in - x|xno) - echo "$as_me:$LINENO: result: none needed" >&5 -echo "${ECHO_T}none needed" >&6 ;; - *) - echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6 - CC="$CC $ac_cv_prog_cc_stdc" ;; -esac - -# Some people use a C++ compiler to compile C. Since we use `exit', -# in C++ we need to declare it. In case someone uses the same compiler -# for both compiling C and C++ we need to have the C++ compiler decide -# the declaration of exit, since it's the most demanding environment. -cat >conftest.$ac_ext <<_ACEOF -#ifndef __cplusplus - choke me -#endif -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - for ac_declaration in \ - ''\ - '#include ' \ - 'extern "C" void std::exit (int) throw (); using std::exit;' \ - 'extern "C" void std::exit (int); using std::exit;' \ - 'extern "C" void exit (int) throw ();' \ - 'extern "C" void exit (int);' \ - 'void exit (int);' -do - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -$ac_declaration -int -main () -{ -exit (42); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -continue -fi -rm -f conftest.$ac_objext conftest.$ac_ext - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_declaration -int -main () -{ -exit (42); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.$ac_objext conftest.$ac_ext -done -rm -f conftest* -if test -n "$ac_declaration"; then - echo '#ifdef __cplusplus' >>confdefs.h - echo $ac_declaration >>confdefs.h - echo '#endif' >>confdefs.h -fi - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.$ac_objext conftest.$ac_ext -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. -set dummy ${ac_tool_prefix}ranlib; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_RANLIB+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$RANLIB"; then - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -RANLIB=$ac_cv_prog_RANLIB -if test -n "$RANLIB"; then - echo "$as_me:$LINENO: result: $RANLIB" >&5 -echo "${ECHO_T}$RANLIB" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$ac_cv_prog_RANLIB"; then - ac_ct_RANLIB=$RANLIB - # Extract the first word of "ranlib", so it can be a program name with args. -set dummy ranlib; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_RANLIB"; then - ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_RANLIB="ranlib" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":" -fi -fi -ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB -if test -n "$ac_ct_RANLIB"; then - echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 -echo "${ECHO_T}$ac_ct_RANLIB" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - RANLIB=$ac_ct_RANLIB -else - RANLIB="$ac_cv_prog_RANLIB" -fi - -ac_aux_dir= -for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do - if test -f $ac_dir/install-sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f $ac_dir/install.sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - elif test -f $ac_dir/shtool; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/shtool install -c" - break - fi -done -if test -z "$ac_aux_dir"; then - { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5 -echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;} - { (exit 1); exit 1; }; } -fi -ac_config_guess="$SHELL $ac_aux_dir/config.guess" -ac_config_sub="$SHELL $ac_aux_dir/config.sub" -ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure. - -# Find a good install program. We prefer a C program (faster), -# so one script is as good as another. But avoid the broken or -# incompatible versions: -# SysV /etc/install, /usr/sbin/install -# SunOS /usr/etc/install -# IRIX /sbin/install -# AIX /bin/install -# AmigaOS /C/install, which installs bootblocks on floppy discs -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag -# AFS /usr/afsws/bin/install, which mishandles nonexistent args -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" -# ./install, which can be erroneously created by make from ./install.sh. -echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 -echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 -if test -z "$INSTALL"; then -if test "${ac_cv_path_install+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - # Account for people who put trailing slashes in PATH elements. -case $as_dir/ in - ./ | .// | /cC/* | \ - /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ - /usr/ucb/* ) ;; - *) - # OSF1 and SCO ODT 3.0 have their own names for install. - # Don't use installbsd from OSF since it installs stuff as root - # by default. - for ac_prog in ginstall scoinst install; do - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then - if test $ac_prog = install && - grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # AIX install. It has an incompatible calling convention. - : - elif test $ac_prog = install && - grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # program-specific install script used by HP pwplus--don't use. - : - else - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" - break 3 - fi - fi - done - done - ;; -esac -done - - -fi - if test "${ac_cv_path_install+set}" = set; then - INSTALL=$ac_cv_path_install - else - # As a last resort, use the slow shell script. We don't cache a - # path for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the path is relative. - INSTALL=$ac_install_sh - fi -fi -echo "$as_me:$LINENO: result: $INSTALL" >&5 -echo "${ECHO_T}$INSTALL" >&6 - -# Use test -z because SunOS4 sh mishandles braces in ${var-val}. -# It thinks the first close brace ends the variable substitution. -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' - -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' - -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' - - -if test x$GCC = xyes; then - CFLAGS="$CFLAGS -Wall" -fi - - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 -echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6 -# On Suns, sometimes $CPP names a directory. -if test -n "$CPP" && test -d "$CPP"; then - CPP= -fi -if test -z "$CPP"; then - if test "${ac_cv_prog_CPP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - # Double quotes because CPP needs to be expanded - for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" - do - ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.$ac_ext - - # OK, works on sane cases. Now check whether non-existent headers - # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - # Broken: success on invalid input. -continue -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then - break -fi - - done - ac_cv_prog_CPP=$CPP - -fi - CPP=$ac_cv_prog_CPP -else - ac_cv_prog_CPP=$CPP -fi -echo "$as_me:$LINENO: result: $CPP" >&5 -echo "${ECHO_T}$CPP" >&6 -ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.$ac_ext - - # OK, works on sane cases. Now check whether non-existent headers - # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - # Broken: success on invalid input. -continue -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then - : -else - { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details." >&5 -echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -echo "$as_me:$LINENO: checking for egrep" >&5 -echo $ECHO_N "checking for egrep... $ECHO_C" >&6 -if test "${ac_cv_prog_egrep+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if echo a | (grep -E '(a|b)') >/dev/null 2>&1 - then ac_cv_prog_egrep='grep -E' - else ac_cv_prog_egrep='egrep' - fi -fi -echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5 -echo "${ECHO_T}$ac_cv_prog_egrep" >&6 - EGREP=$ac_cv_prog_egrep - - -echo "$as_me:$LINENO: checking for ANSI C header files" >&5 -echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 -if test "${ac_cv_header_stdc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -#include -#include - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_header_stdc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_header_stdc=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memchr" >/dev/null 2>&1; then - : -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "free" >/dev/null 2>&1; then - : -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then - : -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) \ - (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif - -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int -main () -{ - int i; - for (i = 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - exit(2); - exit (0); -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -ac_cv_header_stdc=no -fi -rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi -fi -echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 -echo "${ECHO_T}$ac_cv_header_stdc" >&6 -if test $ac_cv_header_stdc = yes; then - -cat >>confdefs.h <<\_ACEOF -#define STDC_HEADERS 1 -_ACEOF - -fi - -# On IRIX 5.3, sys/types and inttypes.h are conflicting. - - - - - - - - - -for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ - inttypes.h stdint.h unistd.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default - -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_Header=yes" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -eval "$as_ac_Header=no" -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - -if test "${ac_cv_header_getopt_h+set}" = set; then - echo "$as_me:$LINENO: checking for getopt.h" >&5 -echo $ECHO_N "checking for getopt.h... $ECHO_C" >&6 -if test "${ac_cv_header_getopt_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: $ac_cv_header_getopt_h" >&5 -echo "${ECHO_T}$ac_cv_header_getopt_h" >&6 -else - # Is the header compilable? -echo "$as_me:$LINENO: checking getopt.h usability" >&5 -echo $ECHO_N "checking getopt.h usability... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#include -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_header_compiler=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_header_compiler=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 - -# Is the header present? -echo "$as_me:$LINENO: checking getopt.h presence" >&5 -echo $ECHO_N "checking getopt.h presence... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=no -fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) - { echo "$as_me:$LINENO: WARNING: getopt.h: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: getopt.h: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: getopt.h: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: getopt.h: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; - no:yes ) - { echo "$as_me:$LINENO: WARNING: getopt.h: present but cannot be compiled" >&5 -echo "$as_me: WARNING: getopt.h: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: getopt.h: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: getopt.h: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: getopt.h: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: getopt.h: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -echo "$as_me:$LINENO: checking for getopt.h" >&5 -echo $ECHO_N "checking for getopt.h... $ECHO_C" >&6 -if test "${ac_cv_header_getopt_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_header_getopt_h=$ac_header_preproc -fi -echo "$as_me:$LINENO: result: $ac_cv_header_getopt_h" >&5 -echo "${ECHO_T}$ac_cv_header_getopt_h" >&6 - -fi -if test $ac_cv_header_getopt_h = yes; then - : -else - NO_GETOPT=-DNO_GETOPT;GETOPT_O=compat/getopt.o -fi - - -if test "${ac_cv_header_paper_h+set}" = set; then - echo "$as_me:$LINENO: checking for paper.h" >&5 -echo $ECHO_N "checking for paper.h... $ECHO_C" >&6 -if test "${ac_cv_header_paper_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: $ac_cv_header_paper_h" >&5 -echo "${ECHO_T}$ac_cv_header_paper_h" >&6 -else - # Is the header compilable? -echo "$as_me:$LINENO: checking paper.h usability" >&5 -echo $ECHO_N "checking paper.h usability... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#include -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_header_compiler=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_header_compiler=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 - -# Is the header present? -echo "$as_me:$LINENO: checking paper.h presence" >&5 -echo $ECHO_N "checking paper.h presence... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=no -fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) - { echo "$as_me:$LINENO: WARNING: paper.h: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: paper.h: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: paper.h: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: paper.h: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; - no:yes ) - { echo "$as_me:$LINENO: WARNING: paper.h: present but cannot be compiled" >&5 -echo "$as_me: WARNING: paper.h: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: paper.h: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: paper.h: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: paper.h: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: paper.h: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -echo "$as_me:$LINENO: checking for paper.h" >&5 -echo $ECHO_N "checking for paper.h... $ECHO_C" >&6 -if test "${ac_cv_header_paper_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_header_paper_h=$ac_header_preproc -fi -echo "$as_me:$LINENO: result: $ac_cv_header_paper_h" >&5 -echo "${ECHO_T}$ac_cv_header_paper_h" >&6 - -fi -if test $ac_cv_header_paper_h = yes; then - LIBPAPER=-lpaper -else - NO_LIBPAPER=-DNO_LIBPAPER -fi - - - -for ac_header in unistd.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -else - # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_header_compiler=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_header_compiler=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 - -# Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=no -fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; - no:yes ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - eval "$as_ac_Header=$ac_header_preproc" -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 - -fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - -echo "$as_me:$LINENO: checking for strerror" >&5 -echo $ECHO_N "checking for strerror... $ECHO_C" >&6 -if test "${ac_cv_func_strerror+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char strerror (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ -#ifdef __STDC__ -# include -#else -# include -#endif -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char strerror (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_strerror) || defined (__stub___strerror) -choke me -#else -char (*f) () = strerror; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != strerror; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_strerror=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_strerror=no -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_strerror" >&5 -echo "${ECHO_T}$ac_cv_func_strerror" >&6 -if test $ac_cv_func_strerror = yes; then - : -else - NO_STRERROR=-DNO_STRERROR -fi - - -for ac_func in strcasecmp -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ -#ifdef __STDC__ -# include -#else -# include -#endif -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char $ac_func (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -choke me -#else -char (*f) () = $ac_func; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != $ac_func; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -eval "$as_ac_var=no" -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - - -echo "$as_me:$LINENO: checking \"for gmake\"" >&5 -echo $ECHO_N "checking \"for gmake\"... $ECHO_C" >&6 -GMAKE=no -${MAKE=make} --version 2> /dev/null | grep GNU > /dev/null && GMAKE=yes -echo "$as_me:$LINENO: result: $GMAKE" >&5 -echo "${ECHO_T}$GMAKE" >&6 -if test "$GMAKE" = "yes"; then - GMAKEDEPEND0='ifeq (.depend,$(wildcard .depend))' - GMAKEDEPEND1='include .depend' - GMAKEDEPEND2='endif' -fi - -echo "$as_me:$LINENO: checking \"if makeinfo can output html\"" >&5 -echo $ECHO_N "checking \"if makeinfo can output html\"... $ECHO_C" >&6 -MAKEINFOHTML=no -${MAKEINFO=makeinfo} --help | grep .--html > /dev/null && MAKEINFOHTML=yes -echo "$as_me:$LINENO: result: $MAKEINFOHTML" >&5 -echo "${ECHO_T}$MAKEINFOHTML" >&6 -if test "$MAKEINFOHTML" = "yes"; then - REMOVEHTMLTAGS="cat" - INFOTOHTML="$MAKEINFO --html" -else - REMOVEHTMLTAGS="sed 's/ifnottex/ifinfo/; s/ifnotinfo/iftex/'" - INFOTOHTML="perl texi2html -monolithic" -fi - - - - - - - - - - - - ac_config_files="$ac_config_files Makefile" -cat >confcache <<\_ACEOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs, see configure's option --config-cache. -# It is not useful on other systems. If it contains results you don't -# want to keep, you may remove or edit it. -# -# config.status only pays attention to the cache file if you give it -# the --recheck option to rerun configure. -# -# `ac_cv_env_foo' variables (set or unset) will be overridden when -# loading this file, other *unset* `ac_cv_foo' will be assigned the -# following values. - -_ACEOF - -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, don't put newlines in cache variables' values. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -{ - (set) 2>&1 | - case `(ac_space=' '; set | grep ac_space) 2>&1` in - *ac_space=\ *) - # `set' does not quote correctly, so add quotes (double-quote - # substitution turns \\\\ into \\, and sed turns \\ into \). - sed -n \ - "s/'/'\\\\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" - ;; - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n \ - "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" - ;; - esac; -} | - sed ' - t clear - : clear - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ - t end - /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ - : end' >>confcache -if diff $cache_file confcache >/dev/null 2>&1; then :; else - if test -w $cache_file; then - test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file" - cat confcache >$cache_file - else - echo "not updating unwritable cache $cache_file" - fi -fi -rm -f confcache - -test "x$prefix" = xNONE && prefix=$ac_default_prefix -# Let make expand exec_prefix. -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' - -# VPATH may cause trouble with some makes, so we remove $(srcdir), -# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and -# trailing colons and then remove the whole line if VPATH becomes empty -# (actually we leave an empty line to preserve line numbers). -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=/{ -s/:*\$(srcdir):*/:/; -s/:*\${srcdir}:*/:/; -s/:*@srcdir@:*/:/; -s/^\([^=]*=[ ]*\):*/\1/; -s/:*$//; -s/^[^=]*=[ ]*$//; -}' -fi - -# Transform confdefs.h into DEFS. -# Protect against shell expansion while executing Makefile rules. -# Protect against Makefile macro expansion. -# -# If the first sed substitution is executed (which looks for macros that -# take arguments), then we branch to the quote section. Otherwise, -# look for a macro that doesn't take arguments. -cat >confdef2opt.sed <<\_ACEOF -t clear -: clear -s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\),-D\1=\2,g -t quote -s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\),-D\1=\2,g -t quote -d -: quote -s,[ `~#$^&*(){}\\|;'"<>?],\\&,g -s,\[,\\&,g -s,\],\\&,g -s,\$,$$,g -p -_ACEOF -# We use echo to avoid assuming a particular line-breaking character. -# The extra dot is to prevent the shell from consuming trailing -# line-breaks from the sub-command output. A line-break within -# single-quotes doesn't work because, if this script is created in a -# platform that uses two characters for line-breaks (e.g., DOS), tr -# would break. -ac_LF_and_DOT=`echo; echo .` -DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'` -rm -f confdef2opt.sed - - -ac_libobjs= -ac_ltlibobjs= -for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue - # 1. Remove the extension, and $U if already installed. - ac_i=`echo "$ac_i" | - sed 's/\$U\././;s/\.o$//;s/\.obj$//'` - # 2. Add them. - ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext" - ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo' -done -LIBOBJS=$ac_libobjs - -LTLIBOBJS=$ac_ltlibobjs - - - -: ${CONFIG_STATUS=./config.status} -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 -echo "$as_me: creating $CONFIG_STATUS" >&6;} -cat >$CONFIG_STATUS <<_ACEOF -#! $SHELL -# Generated by $as_me. -# Run this file to recreate the current configuration. -# Compiler output produced by configure, useful for debugging -# configure, is in config.log if it exists. - -debug=false -ac_cs_recheck=false -ac_cs_silent=false -SHELL=\${CONFIG_SHELL-$SHELL} -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF -## --------------------- ## -## M4sh Initialization. ## -## --------------------- ## - -# Be Bourne compatible -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' -elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then - set -o posix -fi - -# Support unset when possible. -if (FOO=FOO; unset FOO) >/dev/null 2>&1; then - as_unset=unset -else - as_unset=false -fi - - -# Work around bugs in pre-3.0 UWIN ksh. -$as_unset ENV MAIL MAILPATH -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -for as_var in \ - LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ - LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ - LC_TELEPHONE LC_TIME -do - if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then - eval $as_var=C; export $as_var - else - $as_unset $as_var - fi -done - -# Required to use basename. -if expr a : '\(a\)' >/dev/null 2>&1; then - as_expr=expr -else - as_expr=false -fi - -if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - - -# Name of the executable. -as_me=`$as_basename "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)$' \| \ - . : '\(.\)' 2>/dev/null || -echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } - /^X\/\(\/\/\)$/{ s//\1/; q; } - /^X\/\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - - -# PATH needs CR, and LINENO needs CR and PATH. -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - - - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" || { - # Find who we are. Look in the path if we contain no path at all - # relative or not. - case $0 in - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break -done - - ;; - esac - # We did not find ourselves, most probably we were run as `sh COMMAND' - # in which case we are not to be found in the path. - if test "x$as_myself" = x; then - as_myself=$0 - fi - if test ! -f "$as_myself"; then - { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5 -echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;} - { (exit 1); exit 1; }; } - fi - case $CONFIG_SHELL in - '') - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for as_base in sh bash ksh sh5; do - case $as_dir in - /*) - if ("$as_dir/$as_base" -c ' - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then - $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } - $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } - CONFIG_SHELL=$as_dir/$as_base - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$0" ${1+"$@"} - fi;; - esac - done -done -;; - esac - - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO - # uniformly replaced by the line number. The first 'sed' inserts a - # line-number line before each line; the second 'sed' does the real - # work. The second script uses 'N' to pair each line-number line - # with the numbered line, and appends trailing '-' during - # substitution so that $LINENO is not a special case at line end. - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the - # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) - sed '=' <$as_myself | - sed ' - N - s,$,-, - : loop - s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, - t loop - s,-$,, - s,^['$as_cr_digits']*\n,, - ' >$as_me.lineno && - chmod +x $as_me.lineno || - { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5 -echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;} - { (exit 1); exit 1; }; } - - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensible to this). - . ./$as_me.lineno - # Exit status is that of the last command. - exit -} - - -case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in - *c*,-n*) ECHO_N= ECHO_C=' -' ECHO_T=' ' ;; - *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; - *) ECHO_N= ECHO_C='\c' ECHO_T= ;; -esac - -if expr a : '\(a\)' >/dev/null 2>&1; then - as_expr=expr -else - as_expr=false -fi - -rm -f conf$$ conf$$.exe conf$$.file -echo >conf$$.file -if ln -s conf$$.file conf$$ 2>/dev/null; then - # We could just check for DJGPP; but this test a) works b) is more generic - # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). - if test -f conf$$.exe; then - # Don't use ln at all; we don't have any links - as_ln_s='cp -p' - else - as_ln_s='ln -s' - fi -elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln -else - as_ln_s='cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.file - -if mkdir -p . 2>/dev/null; then - as_mkdir_p=: -else - as_mkdir_p=false -fi - -as_executable_p="test -f" - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g" - - -# IFS -# We need space, tab and new line, in precisely that order. -as_nl=' -' -IFS=" $as_nl" - -# CDPATH. -$as_unset CDPATH - -exec 6>&1 - -# Open the log real soon, to keep \$[0] and so on meaningful, and to -# report actual input values of CONFIG_FILES etc. instead of their -# values after options handling. Logging --version etc. is OK. -exec 5>>config.log -{ - echo - sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX -## Running $as_me. ## -_ASBOX -} >&5 -cat >&5 <<_CSEOF - -This file was extended by $as_me, which was -generated by GNU Autoconf 2.57. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS - CONFIG_LINKS = $CONFIG_LINKS - CONFIG_COMMANDS = $CONFIG_COMMANDS - $ $0 $@ - -_CSEOF -echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5 -echo >&5 -_ACEOF - -# Files that config.status was made for. -if test -n "$ac_config_files"; then - echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS -fi - -if test -n "$ac_config_headers"; then - echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS -fi - -if test -n "$ac_config_links"; then - echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS -fi - -if test -n "$ac_config_commands"; then - echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS -fi - -cat >>$CONFIG_STATUS <<\_ACEOF - -ac_cs_usage="\ -\`$as_me' instantiates files from templates according to the -current configuration. - -Usage: $0 [OPTIONS] [FILE]... - - -h, --help print this help, then exit - -V, --version print version number, then exit - -q, --quiet do not print progress messages - -d, --debug don't remove temporary files - --recheck update $as_me by reconfiguring in the same conditions - --file=FILE[:TEMPLATE] - instantiate the configuration file FILE - -Configuration files: -$config_files - -Report bugs to ." -_ACEOF - -cat >>$CONFIG_STATUS <<_ACEOF -ac_cs_version="\\ -config.status -configured by $0, generated by GNU Autoconf 2.57, - with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" - -Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001 -Free Software Foundation, Inc. -This config.status script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it." -srcdir=$srcdir -INSTALL="$INSTALL" -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF -# If no file are specified by the user, then we need to provide default -# value. By we need to know if files were specified by the user. -ac_need_defaults=: -while test $# != 0 -do - case $1 in - --*=*) - ac_option=`expr "x$1" : 'x\([^=]*\)='` - ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'` - ac_shift=: - ;; - -*) - ac_option=$1 - ac_optarg=$2 - ac_shift=shift - ;; - *) # This is not an option, so the user has probably given explicit - # arguments. - ac_option=$1 - ac_need_defaults=false;; - esac - - case $ac_option in - # Handling of the options. -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - ac_cs_recheck=: ;; - --version | --vers* | -V ) - echo "$ac_cs_version"; exit 0 ;; - --he | --h) - # Conflict between --help and --header - { { echo "$as_me:$LINENO: error: ambiguous option: $1 -Try \`$0 --help' for more information." >&5 -echo "$as_me: error: ambiguous option: $1 -Try \`$0 --help' for more information." >&2;} - { (exit 1); exit 1; }; };; - --help | --hel | -h ) - echo "$ac_cs_usage"; exit 0 ;; - --debug | --d* | -d ) - debug=: ;; - --file | --fil | --fi | --f ) - $ac_shift - CONFIG_FILES="$CONFIG_FILES $ac_optarg" - ac_need_defaults=false;; - --header | --heade | --head | --hea ) - $ac_shift - CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" - ac_need_defaults=false;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil | --si | --s) - ac_cs_silent=: ;; - - # This is an error. - -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1 -Try \`$0 --help' for more information." >&5 -echo "$as_me: error: unrecognized option: $1 -Try \`$0 --help' for more information." >&2;} - { (exit 1); exit 1; }; } ;; - - *) ac_config_targets="$ac_config_targets $1" ;; - - esac - shift -done - -ac_configure_extra_args= - -if $ac_cs_silent; then - exec 6>/dev/null - ac_configure_extra_args="$ac_configure_extra_args --silent" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF -if \$ac_cs_recheck; then - echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 - exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion -fi - -_ACEOF - - - - - -cat >>$CONFIG_STATUS <<\_ACEOF -for ac_config_target in $ac_config_targets -do - case "$ac_config_target" in - # Handling of arguments. - "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;; - *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 -echo "$as_me: error: invalid argument: $ac_config_target" >&2;} - { (exit 1); exit 1; }; };; - esac -done - -# If the user did not use the arguments to specify the items to instantiate, -# then the envvar interface is used. Set only those that are not. -# We use the long form for the default assignment because of an extremely -# bizarre bug on SunOS 4.1.3. -if $ac_need_defaults; then - test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files -fi - -# Have a temporary directory for convenience. Make it in the build tree -# simply because there is no reason to put it here, and in addition, -# creating and moving files from /tmp can sometimes cause problems. -# Create a temporary directory, and hook for its removal unless debugging. -$debug || -{ - trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 - trap '{ (exit 1); exit 1; }' 1 2 13 15 -} - -# Create a (secure) tmp directory for tmp files. - -{ - tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` && - test -n "$tmp" && test -d "$tmp" -} || -{ - tmp=./confstat$$-$RANDOM - (umask 077 && mkdir $tmp) -} || -{ - echo "$me: cannot create a temporary directory in ." >&2 - { (exit 1); exit 1; } -} - -_ACEOF - -cat >>$CONFIG_STATUS <<_ACEOF - -# -# CONFIG_FILES section. -# - -# No need to generate the scripts if there are no CONFIG_FILES. -# This happens for instance when ./config.status config.h -if test -n "\$CONFIG_FILES"; then - # Protect against being on the right side of a sed subst in config.status. - sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g; - s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF -s,@SHELL@,$SHELL,;t t -s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t -s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t -s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t -s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t -s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t -s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t -s,@exec_prefix@,$exec_prefix,;t t -s,@prefix@,$prefix,;t t -s,@program_transform_name@,$program_transform_name,;t t -s,@bindir@,$bindir,;t t -s,@sbindir@,$sbindir,;t t -s,@libexecdir@,$libexecdir,;t t -s,@datadir@,$datadir,;t t -s,@sysconfdir@,$sysconfdir,;t t -s,@sharedstatedir@,$sharedstatedir,;t t -s,@localstatedir@,$localstatedir,;t t -s,@libdir@,$libdir,;t t -s,@includedir@,$includedir,;t t -s,@oldincludedir@,$oldincludedir,;t t -s,@infodir@,$infodir,;t t -s,@mandir@,$mandir,;t t -s,@build_alias@,$build_alias,;t t -s,@host_alias@,$host_alias,;t t -s,@target_alias@,$target_alias,;t t -s,@DEFS@,$DEFS,;t t -s,@ECHO_C@,$ECHO_C,;t t -s,@ECHO_N@,$ECHO_N,;t t -s,@ECHO_T@,$ECHO_T,;t t -s,@LIBS@,$LIBS,;t t -s,@CC@,$CC,;t t -s,@CFLAGS@,$CFLAGS,;t t -s,@LDFLAGS@,$LDFLAGS,;t t -s,@CPPFLAGS@,$CPPFLAGS,;t t -s,@ac_ct_CC@,$ac_ct_CC,;t t -s,@EXEEXT@,$EXEEXT,;t t -s,@OBJEXT@,$OBJEXT,;t t -s,@RANLIB@,$RANLIB,;t t -s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t -s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t -s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t -s,@INSTALL_DATA@,$INSTALL_DATA,;t t -s,@CPP@,$CPP,;t t -s,@EGREP@,$EGREP,;t t -s,@GETOPT_O@,$GETOPT_O,;t t -s,@NO_GETOPT@,$NO_GETOPT,;t t -s,@NO_LIBPAPER@,$NO_LIBPAPER,;t t -s,@LIBPAPER@,$LIBPAPER,;t t -s,@NO_STRERROR@,$NO_STRERROR,;t t -s,@GMAKEDEPEND0@,$GMAKEDEPEND0,;t t -s,@GMAKEDEPEND1@,$GMAKEDEPEND1,;t t -s,@GMAKEDEPEND2@,$GMAKEDEPEND2,;t t -s,@LIBOBJS@,$LIBOBJS,;t t -s,@LTLIBOBJS@,$LTLIBOBJS,;t t -CEOF - -_ACEOF - - cat >>$CONFIG_STATUS <<\_ACEOF - # Split the substitutions into bite-sized pieces for seds with - # small command number limits, like on Digital OSF/1 and HP-UX. - ac_max_sed_lines=48 - ac_sed_frag=1 # Number of current file. - ac_beg=1 # First line for current file. - ac_end=$ac_max_sed_lines # Line after last line for current file. - ac_more_lines=: - ac_sed_cmds= - while $ac_more_lines; do - if test $ac_beg -gt 1; then - sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag - else - sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag - fi - if test ! -s $tmp/subs.frag; then - ac_more_lines=false - else - # The purpose of the label and of the branching condition is to - # speed up the sed processing (if there are no `@' at all, there - # is no need to browse any of the substitutions). - # These are the two extra sed commands mentioned above. - (echo ':t - /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed - if test -z "$ac_sed_cmds"; then - ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" - else - ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" - fi - ac_sed_frag=`expr $ac_sed_frag + 1` - ac_beg=$ac_end - ac_end=`expr $ac_end + $ac_max_sed_lines` - fi - done - if test -z "$ac_sed_cmds"; then - ac_sed_cmds=cat - fi -fi # test -n "$CONFIG_FILES" - -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF -for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". - case $ac_file in - - | *:- | *:-:* ) # input from stdin - cat >$tmp/stdin - ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - * ) ac_file_in=$ac_file.in ;; - esac - - # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. - ac_dir=`(dirname "$ac_file") 2>/dev/null || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - { if $as_mkdir_p; then - mkdir -p "$ac_dir" - else - as_dir="$ac_dir" - as_dirs= - while test ! -d "$as_dir"; do - as_dirs="$as_dir $as_dirs" - as_dir=`(dirname "$as_dir") 2>/dev/null || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - done - test ! -n "$as_dirs" || mkdir $as_dirs - fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 -echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} - { (exit 1); exit 1; }; }; } - - ac_builddir=. - -if test "$ac_dir" != .; then - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` - # A "../" for each directory in $ac_dir_suffix. - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` -else - ac_dir_suffix= ac_top_builddir= -fi - -case $srcdir in - .) # No --srcdir option. We are building in place. - ac_srcdir=. - if test -z "$ac_top_builddir"; then - ac_top_srcdir=. - else - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` - fi ;; - [\\/]* | ?:[\\/]* ) # Absolute path. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir ;; - *) # Relative path. - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_builddir$srcdir ;; -esac -# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be -# absolute. -ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` -ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd` -ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` -ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` - - - case $INSTALL in - [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; - *) ac_INSTALL=$ac_top_builddir$INSTALL ;; - esac - - if test x"$ac_file" != x-; then - { echo "$as_me:$LINENO: creating $ac_file" >&5 -echo "$as_me: creating $ac_file" >&6;} - rm -f "$ac_file" - fi - # Let's still pretend it is `configure' which instantiates (i.e., don't - # use $as_me), people would be surprised to read: - # /* config.h. Generated by config.status. */ - if test x"$ac_file" = x-; then - configure_input= - else - configure_input="$ac_file. " - fi - configure_input=$configure_input"Generated from `echo $ac_file_in | - sed 's,.*/,,'` by configure." - - # First look for the input files in the build tree, otherwise in the - # src tree. - ac_file_inputs=`IFS=: - for f in $ac_file_in; do - case $f in - -) echo $tmp/stdin ;; - [\\/$]*) - # Absolute (can't be DOS-style, as IFS=:) - test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - echo $f;; - *) # Relative - if test -f "$f"; then - # Build tree - echo $f - elif test -f "$srcdir/$f"; then - # Source tree - echo $srcdir/$f - else - # /dev/null tree - { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - fi;; - esac - done` || { (exit 1); exit 1; } -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF - sed "$ac_vpsub -$extrasub -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF -:t -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b -s,@configure_input@,$configure_input,;t t -s,@srcdir@,$ac_srcdir,;t t -s,@abs_srcdir@,$ac_abs_srcdir,;t t -s,@top_srcdir@,$ac_top_srcdir,;t t -s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t -s,@builddir@,$ac_builddir,;t t -s,@abs_builddir@,$ac_abs_builddir,;t t -s,@top_builddir@,$ac_top_builddir,;t t -s,@abs_top_builddir@,$ac_abs_top_builddir,;t t -s,@INSTALL@,$ac_INSTALL,;t t -" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out - rm -f $tmp/stdin - if test x"$ac_file" != x-; then - mv $tmp/out $ac_file - else - cat $tmp/out - rm -f $tmp/out - fi - -done -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF - -{ (exit 0); exit 0; } -_ACEOF -chmod +x $CONFIG_STATUS -ac_clean_files=$ac_clean_files_save - - -# configure is writing to config.log, and then calls config.status. -# config.status does its own redirection, appending to config.log. -# Unfortunately, on DOS this fails, as config.log is still kept open -# by configure, so config.status won't be able to write to it; its -# output is simply discarded. So we exec the FD to /dev/null, -# effectively closing config.log, so it can be properly (re)opened and -# appended to by config.status. When coming back to configure, we -# need to make the FD available again. -if test "$no_create" != yes; then - ac_cs_success=: - ac_config_status_args= - test "$silent" = yes && - ac_config_status_args="$ac_config_status_args --quiet" - exec 5>/dev/null - $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false - exec 5>>config.log - # Use ||, not &&, to avoid exiting from the if with $? = 1, which - # would make configure fail if this is the last instruction. - $ac_cs_success || { (exit 1); exit 1; } -fi - - - - - - - ac_config_files="$ac_config_files doc/Makefile" -cat >confcache <<\_ACEOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs, see configure's option --config-cache. -# It is not useful on other systems. If it contains results you don't -# want to keep, you may remove or edit it. -# -# config.status only pays attention to the cache file if you give it -# the --recheck option to rerun configure. -# -# `ac_cv_env_foo' variables (set or unset) will be overridden when -# loading this file, other *unset* `ac_cv_foo' will be assigned the -# following values. - -_ACEOF - -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, don't put newlines in cache variables' values. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -{ - (set) 2>&1 | - case `(ac_space=' '; set | grep ac_space) 2>&1` in - *ac_space=\ *) - # `set' does not quote correctly, so add quotes (double-quote - # substitution turns \\\\ into \\, and sed turns \\ into \). - sed -n \ - "s/'/'\\\\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" - ;; - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n \ - "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" - ;; - esac; -} | - sed ' - t clear - : clear - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ - t end - /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ - : end' >>confcache -if diff $cache_file confcache >/dev/null 2>&1; then :; else - if test -w $cache_file; then - test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file" - cat confcache >$cache_file - else - echo "not updating unwritable cache $cache_file" - fi -fi -rm -f confcache - -test "x$prefix" = xNONE && prefix=$ac_default_prefix -# Let make expand exec_prefix. -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' - -# VPATH may cause trouble with some makes, so we remove $(srcdir), -# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and -# trailing colons and then remove the whole line if VPATH becomes empty -# (actually we leave an empty line to preserve line numbers). -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=/{ -s/:*\$(srcdir):*/:/; -s/:*\${srcdir}:*/:/; -s/:*@srcdir@:*/:/; -s/^\([^=]*=[ ]*\):*/\1/; -s/:*$//; -s/^[^=]*=[ ]*$//; -}' -fi - -# Transform confdefs.h into DEFS. -# Protect against shell expansion while executing Makefile rules. -# Protect against Makefile macro expansion. -# -# If the first sed substitution is executed (which looks for macros that -# take arguments), then we branch to the quote section. Otherwise, -# look for a macro that doesn't take arguments. -cat >confdef2opt.sed <<\_ACEOF -t clear -: clear -s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\),-D\1=\2,g -t quote -s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\),-D\1=\2,g -t quote -d -: quote -s,[ `~#$^&*(){}\\|;'"<>?],\\&,g -s,\[,\\&,g -s,\],\\&,g -s,\$,$$,g -p -_ACEOF -# We use echo to avoid assuming a particular line-breaking character. -# The extra dot is to prevent the shell from consuming trailing -# line-breaks from the sub-command output. A line-break within -# single-quotes doesn't work because, if this script is created in a -# platform that uses two characters for line-breaks (e.g., DOS), tr -# would break. -ac_LF_and_DOT=`echo; echo .` -DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'` -rm -f confdef2opt.sed - - -ac_libobjs= -ac_ltlibobjs= -for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue - # 1. Remove the extension, and $U if already installed. - ac_i=`echo "$ac_i" | - sed 's/\$U\././;s/\.o$//;s/\.obj$//'` - # 2. Add them. - ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext" - ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo' -done -LIBOBJS=$ac_libobjs - -LTLIBOBJS=$ac_ltlibobjs - - - -: ${CONFIG_STATUS=./config.status} -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 -echo "$as_me: creating $CONFIG_STATUS" >&6;} -cat >$CONFIG_STATUS <<_ACEOF -#! $SHELL -# Generated by $as_me. -# Run this file to recreate the current configuration. -# Compiler output produced by configure, useful for debugging -# configure, is in config.log if it exists. - -debug=false -ac_cs_recheck=false -ac_cs_silent=false -SHELL=\${CONFIG_SHELL-$SHELL} -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF -## --------------------- ## -## M4sh Initialization. ## -## --------------------- ## - -# Be Bourne compatible -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' -elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then - set -o posix -fi - -# Support unset when possible. -if (FOO=FOO; unset FOO) >/dev/null 2>&1; then - as_unset=unset -else - as_unset=false -fi - - -# Work around bugs in pre-3.0 UWIN ksh. -$as_unset ENV MAIL MAILPATH -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -for as_var in \ - LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ - LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ - LC_TELEPHONE LC_TIME -do - if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then - eval $as_var=C; export $as_var - else - $as_unset $as_var - fi -done - -# Required to use basename. -if expr a : '\(a\)' >/dev/null 2>&1; then - as_expr=expr -else - as_expr=false -fi - -if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - - -# Name of the executable. -as_me=`$as_basename "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)$' \| \ - . : '\(.\)' 2>/dev/null || -echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } - /^X\/\(\/\/\)$/{ s//\1/; q; } - /^X\/\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - - -# PATH needs CR, and LINENO needs CR and PATH. -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - - - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" || { - # Find who we are. Look in the path if we contain no path at all - # relative or not. - case $0 in - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break -done - - ;; - esac - # We did not find ourselves, most probably we were run as `sh COMMAND' - # in which case we are not to be found in the path. - if test "x$as_myself" = x; then - as_myself=$0 - fi - if test ! -f "$as_myself"; then - { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5 -echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;} - { (exit 1); exit 1; }; } - fi - case $CONFIG_SHELL in - '') - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for as_base in sh bash ksh sh5; do - case $as_dir in - /*) - if ("$as_dir/$as_base" -c ' - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then - $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } - $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } - CONFIG_SHELL=$as_dir/$as_base - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$0" ${1+"$@"} - fi;; - esac - done -done -;; - esac - - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO - # uniformly replaced by the line number. The first 'sed' inserts a - # line-number line before each line; the second 'sed' does the real - # work. The second script uses 'N' to pair each line-number line - # with the numbered line, and appends trailing '-' during - # substitution so that $LINENO is not a special case at line end. - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the - # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) - sed '=' <$as_myself | - sed ' - N - s,$,-, - : loop - s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, - t loop - s,-$,, - s,^['$as_cr_digits']*\n,, - ' >$as_me.lineno && - chmod +x $as_me.lineno || - { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5 -echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;} - { (exit 1); exit 1; }; } - - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensible to this). - . ./$as_me.lineno - # Exit status is that of the last command. - exit -} - - -case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in - *c*,-n*) ECHO_N= ECHO_C=' -' ECHO_T=' ' ;; - *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; - *) ECHO_N= ECHO_C='\c' ECHO_T= ;; -esac - -if expr a : '\(a\)' >/dev/null 2>&1; then - as_expr=expr -else - as_expr=false -fi - -rm -f conf$$ conf$$.exe conf$$.file -echo >conf$$.file -if ln -s conf$$.file conf$$ 2>/dev/null; then - # We could just check for DJGPP; but this test a) works b) is more generic - # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). - if test -f conf$$.exe; then - # Don't use ln at all; we don't have any links - as_ln_s='cp -p' - else - as_ln_s='ln -s' - fi -elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln -else - as_ln_s='cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.file - -if mkdir -p . 2>/dev/null; then - as_mkdir_p=: -else - as_mkdir_p=false -fi - -as_executable_p="test -f" - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g" - - -# IFS -# We need space, tab and new line, in precisely that order. -as_nl=' -' -IFS=" $as_nl" - -# CDPATH. -$as_unset CDPATH - -exec 6>&1 - -# Open the log real soon, to keep \$[0] and so on meaningful, and to -# report actual input values of CONFIG_FILES etc. instead of their -# values after options handling. Logging --version etc. is OK. -exec 5>>config.log -{ - echo - sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX -## Running $as_me. ## -_ASBOX -} >&5 -cat >&5 <<_CSEOF - -This file was extended by $as_me, which was -generated by GNU Autoconf 2.57. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS - CONFIG_LINKS = $CONFIG_LINKS - CONFIG_COMMANDS = $CONFIG_COMMANDS - $ $0 $@ - -_CSEOF -echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5 -echo >&5 -_ACEOF - -# Files that config.status was made for. -if test -n "$ac_config_files"; then - echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS -fi - -if test -n "$ac_config_headers"; then - echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS -fi - -if test -n "$ac_config_links"; then - echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS -fi - -if test -n "$ac_config_commands"; then - echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS -fi - -cat >>$CONFIG_STATUS <<\_ACEOF - -ac_cs_usage="\ -\`$as_me' instantiates files from templates according to the -current configuration. - -Usage: $0 [OPTIONS] [FILE]... - - -h, --help print this help, then exit - -V, --version print version number, then exit - -q, --quiet do not print progress messages - -d, --debug don't remove temporary files - --recheck update $as_me by reconfiguring in the same conditions - --file=FILE[:TEMPLATE] - instantiate the configuration file FILE - -Configuration files: -$config_files - -Report bugs to ." -_ACEOF - -cat >>$CONFIG_STATUS <<_ACEOF -ac_cs_version="\\ -config.status -configured by $0, generated by GNU Autoconf 2.57, - with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" - -Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001 -Free Software Foundation, Inc. -This config.status script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it." -srcdir=$srcdir -INSTALL="$INSTALL" -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF -# If no file are specified by the user, then we need to provide default -# value. By we need to know if files were specified by the user. -ac_need_defaults=: -while test $# != 0 -do - case $1 in - --*=*) - ac_option=`expr "x$1" : 'x\([^=]*\)='` - ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'` - ac_shift=: - ;; - -*) - ac_option=$1 - ac_optarg=$2 - ac_shift=shift - ;; - *) # This is not an option, so the user has probably given explicit - # arguments. - ac_option=$1 - ac_need_defaults=false;; - esac - - case $ac_option in - # Handling of the options. -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - ac_cs_recheck=: ;; - --version | --vers* | -V ) - echo "$ac_cs_version"; exit 0 ;; - --he | --h) - # Conflict between --help and --header - { { echo "$as_me:$LINENO: error: ambiguous option: $1 -Try \`$0 --help' for more information." >&5 -echo "$as_me: error: ambiguous option: $1 -Try \`$0 --help' for more information." >&2;} - { (exit 1); exit 1; }; };; - --help | --hel | -h ) - echo "$ac_cs_usage"; exit 0 ;; - --debug | --d* | -d ) - debug=: ;; - --file | --fil | --fi | --f ) - $ac_shift - CONFIG_FILES="$CONFIG_FILES $ac_optarg" - ac_need_defaults=false;; - --header | --heade | --head | --hea ) - $ac_shift - CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" - ac_need_defaults=false;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil | --si | --s) - ac_cs_silent=: ;; - - # This is an error. - -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1 -Try \`$0 --help' for more information." >&5 -echo "$as_me: error: unrecognized option: $1 -Try \`$0 --help' for more information." >&2;} - { (exit 1); exit 1; }; } ;; - - *) ac_config_targets="$ac_config_targets $1" ;; - - esac - shift -done - -ac_configure_extra_args= - -if $ac_cs_silent; then - exec 6>/dev/null - ac_configure_extra_args="$ac_configure_extra_args --silent" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF -if \$ac_cs_recheck; then - echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 - exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion -fi - -_ACEOF - - - - - -cat >>$CONFIG_STATUS <<\_ACEOF -for ac_config_target in $ac_config_targets -do - case "$ac_config_target" in - # Handling of arguments. - "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;; - "doc/Makefile" ) CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; - *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 -echo "$as_me: error: invalid argument: $ac_config_target" >&2;} - { (exit 1); exit 1; }; };; - esac -done - -# If the user did not use the arguments to specify the items to instantiate, -# then the envvar interface is used. Set only those that are not. -# We use the long form for the default assignment because of an extremely -# bizarre bug on SunOS 4.1.3. -if $ac_need_defaults; then - test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files -fi - -# Have a temporary directory for convenience. Make it in the build tree -# simply because there is no reason to put it here, and in addition, -# creating and moving files from /tmp can sometimes cause problems. -# Create a temporary directory, and hook for its removal unless debugging. -$debug || -{ - trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 - trap '{ (exit 1); exit 1; }' 1 2 13 15 -} - -# Create a (secure) tmp directory for tmp files. - -{ - tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` && - test -n "$tmp" && test -d "$tmp" -} || -{ - tmp=./confstat$$-$RANDOM - (umask 077 && mkdir $tmp) -} || -{ - echo "$me: cannot create a temporary directory in ." >&2 - { (exit 1); exit 1; } -} - -_ACEOF - -cat >>$CONFIG_STATUS <<_ACEOF - -# -# CONFIG_FILES section. -# - -# No need to generate the scripts if there are no CONFIG_FILES. -# This happens for instance when ./config.status config.h -if test -n "\$CONFIG_FILES"; then - # Protect against being on the right side of a sed subst in config.status. - sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g; - s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF -s,@SHELL@,$SHELL,;t t -s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t -s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t -s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t -s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t -s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t -s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t -s,@exec_prefix@,$exec_prefix,;t t -s,@prefix@,$prefix,;t t -s,@program_transform_name@,$program_transform_name,;t t -s,@bindir@,$bindir,;t t -s,@sbindir@,$sbindir,;t t -s,@libexecdir@,$libexecdir,;t t -s,@datadir@,$datadir,;t t -s,@sysconfdir@,$sysconfdir,;t t -s,@sharedstatedir@,$sharedstatedir,;t t -s,@localstatedir@,$localstatedir,;t t -s,@libdir@,$libdir,;t t -s,@includedir@,$includedir,;t t -s,@oldincludedir@,$oldincludedir,;t t -s,@infodir@,$infodir,;t t -s,@mandir@,$mandir,;t t -s,@build_alias@,$build_alias,;t t -s,@host_alias@,$host_alias,;t t -s,@target_alias@,$target_alias,;t t -s,@DEFS@,$DEFS,;t t -s,@ECHO_C@,$ECHO_C,;t t -s,@ECHO_N@,$ECHO_N,;t t -s,@ECHO_T@,$ECHO_T,;t t -s,@LIBS@,$LIBS,;t t -s,@CC@,$CC,;t t -s,@CFLAGS@,$CFLAGS,;t t -s,@LDFLAGS@,$LDFLAGS,;t t -s,@CPPFLAGS@,$CPPFLAGS,;t t -s,@ac_ct_CC@,$ac_ct_CC,;t t -s,@EXEEXT@,$EXEEXT,;t t -s,@OBJEXT@,$OBJEXT,;t t -s,@RANLIB@,$RANLIB,;t t -s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t -s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t -s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t -s,@INSTALL_DATA@,$INSTALL_DATA,;t t -s,@CPP@,$CPP,;t t -s,@EGREP@,$EGREP,;t t -s,@GETOPT_O@,$GETOPT_O,;t t -s,@NO_GETOPT@,$NO_GETOPT,;t t -s,@NO_LIBPAPER@,$NO_LIBPAPER,;t t -s,@LIBPAPER@,$LIBPAPER,;t t -s,@NO_STRERROR@,$NO_STRERROR,;t t -s,@GMAKEDEPEND0@,$GMAKEDEPEND0,;t t -s,@GMAKEDEPEND1@,$GMAKEDEPEND1,;t t -s,@GMAKEDEPEND2@,$GMAKEDEPEND2,;t t -s,@LIBOBJS@,$LIBOBJS,;t t -s,@LTLIBOBJS@,$LTLIBOBJS,;t t -s,@MAKEINFO@,$MAKEINFO,;t t -s,@REMOVEHTMLTAGS@,$REMOVEHTMLTAGS,;t t -s,@INFOTOHTML@,$INFOTOHTML,;t t -CEOF - -_ACEOF - - cat >>$CONFIG_STATUS <<\_ACEOF - # Split the substitutions into bite-sized pieces for seds with - # small command number limits, like on Digital OSF/1 and HP-UX. - ac_max_sed_lines=48 - ac_sed_frag=1 # Number of current file. - ac_beg=1 # First line for current file. - ac_end=$ac_max_sed_lines # Line after last line for current file. - ac_more_lines=: - ac_sed_cmds= - while $ac_more_lines; do - if test $ac_beg -gt 1; then - sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag - else - sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag - fi - if test ! -s $tmp/subs.frag; then - ac_more_lines=false - else - # The purpose of the label and of the branching condition is to - # speed up the sed processing (if there are no `@' at all, there - # is no need to browse any of the substitutions). - # These are the two extra sed commands mentioned above. - (echo ':t - /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed - if test -z "$ac_sed_cmds"; then - ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" - else - ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" - fi - ac_sed_frag=`expr $ac_sed_frag + 1` - ac_beg=$ac_end - ac_end=`expr $ac_end + $ac_max_sed_lines` - fi - done - if test -z "$ac_sed_cmds"; then - ac_sed_cmds=cat - fi -fi # test -n "$CONFIG_FILES" - -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF -for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". - case $ac_file in - - | *:- | *:-:* ) # input from stdin - cat >$tmp/stdin - ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - * ) ac_file_in=$ac_file.in ;; - esac - - # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. - ac_dir=`(dirname "$ac_file") 2>/dev/null || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - { if $as_mkdir_p; then - mkdir -p "$ac_dir" - else - as_dir="$ac_dir" - as_dirs= - while test ! -d "$as_dir"; do - as_dirs="$as_dir $as_dirs" - as_dir=`(dirname "$as_dir") 2>/dev/null || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - done - test ! -n "$as_dirs" || mkdir $as_dirs - fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 -echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} - { (exit 1); exit 1; }; }; } - - ac_builddir=. - -if test "$ac_dir" != .; then - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` - # A "../" for each directory in $ac_dir_suffix. - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` -else - ac_dir_suffix= ac_top_builddir= -fi - -case $srcdir in - .) # No --srcdir option. We are building in place. - ac_srcdir=. - if test -z "$ac_top_builddir"; then - ac_top_srcdir=. - else - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` - fi ;; - [\\/]* | ?:[\\/]* ) # Absolute path. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir ;; - *) # Relative path. - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_builddir$srcdir ;; -esac -# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be -# absolute. -ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` -ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd` -ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` -ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` - - - case $INSTALL in - [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; - *) ac_INSTALL=$ac_top_builddir$INSTALL ;; - esac - - if test x"$ac_file" != x-; then - { echo "$as_me:$LINENO: creating $ac_file" >&5 -echo "$as_me: creating $ac_file" >&6;} - rm -f "$ac_file" - fi - # Let's still pretend it is `configure' which instantiates (i.e., don't - # use $as_me), people would be surprised to read: - # /* config.h. Generated by config.status. */ - if test x"$ac_file" = x-; then - configure_input= - else - configure_input="$ac_file. " - fi - configure_input=$configure_input"Generated from `echo $ac_file_in | - sed 's,.*/,,'` by configure." - - # First look for the input files in the build tree, otherwise in the - # src tree. - ac_file_inputs=`IFS=: - for f in $ac_file_in; do - case $f in - -) echo $tmp/stdin ;; - [\\/$]*) - # Absolute (can't be DOS-style, as IFS=:) - test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - echo $f;; - *) # Relative - if test -f "$f"; then - # Build tree - echo $f - elif test -f "$srcdir/$f"; then - # Source tree - echo $srcdir/$f - else - # /dev/null tree - { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - fi;; - esac - done` || { (exit 1); exit 1; } -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF - sed "$ac_vpsub -$extrasub -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF -:t -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b -s,@configure_input@,$configure_input,;t t -s,@srcdir@,$ac_srcdir,;t t -s,@abs_srcdir@,$ac_abs_srcdir,;t t -s,@top_srcdir@,$ac_top_srcdir,;t t -s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t -s,@builddir@,$ac_builddir,;t t -s,@abs_builddir@,$ac_abs_builddir,;t t -s,@top_builddir@,$ac_top_builddir,;t t -s,@abs_top_builddir@,$ac_abs_top_builddir,;t t -s,@INSTALL@,$ac_INSTALL,;t t -" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out - rm -f $tmp/stdin - if test x"$ac_file" != x-; then - mv $tmp/out $ac_file - else - cat $tmp/out - rm -f $tmp/out - fi - -done -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF - -{ (exit 0); exit 0; } -_ACEOF -chmod +x $CONFIG_STATUS -ac_clean_files=$ac_clean_files_save - - -# configure is writing to config.log, and then calls config.status. -# config.status does its own redirection, appending to config.log. -# Unfortunately, on DOS this fails, as config.log is still kept open -# by configure, so config.status won't be able to write to it; its -# output is simply discarded. So we exec the FD to /dev/null, -# effectively closing config.log, so it can be properly (re)opened and -# appended to by config.status. When coming back to configure, we -# need to make the FD available again. -if test "$no_create" != yes; then - ac_cs_success=: - ac_config_status_args= - test "$silent" = yes && - ac_config_status_args="$ac_config_status_args --quiet" - exec 5>/dev/null - $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false - exec 5>>config.log - # Use ||, not &&, to avoid exiting from the if with $? = 1, which - # would make configure fail if this is the last instruction. - $ac_cs_success || { (exit 1); exit 1; } -fi - - diff --git a/barcode-0.98/configure.in.dist b/barcode-0.98/configure.in.dist deleted file mode 100644 index 07120b48..00000000 --- a/barcode-0.98/configure.in.dist +++ /dev/null @@ -1,65 +0,0 @@ -dnl Process this file with autoconf to produce a configure script. - -AC_INIT(barcode.h) -AC_PREREQ(2.12) - -AC_PROG_CC -AC_PROG_RANLIB -AC_PROG_INSTALL - -dnl Add "-Wall" if this is gcc -if test x$GCC = xyes; then - CFLAGS="$CFLAGS -Wall" -fi - - -dnl Check for getopt and libpaper. If getopt is missing, use our version -AC_CHECK_HEADER(getopt.h, ,NO_GETOPT=-DNO_GETOPT;GETOPT_O=compat/getopt.o) -AC_CHECK_HEADER(paper.h, LIBPAPER=-lpaper, NO_LIBPAPER=-DNO_LIBPAPER) -AC_CHECK_HEADERS(unistd.h) - -AC_CHECK_FUNC(strerror, , NO_STRERROR=-DNO_STRERROR) -AC_CHECK_FUNCS(strcasecmp) - -dnl Check if this is gmake, but allow ovverriding using $MAKE -AC_MSG_CHECKING("for gmake") -GMAKE=no -${MAKE=make} --version 2> /dev/null | grep GNU > /dev/null && GMAKE=yes -AC_MSG_RESULT($GMAKE) -if test "$GMAKE" = "yes"; then - GMAKEDEPEND0='ifeq (.depend,$(wildcard .depend))' - GMAKEDEPEND1='include .depend' - GMAKEDEPEND2='endif' -fi - -dnl Check if we use makeinfo or the local texi2html tool -AC_MSG_CHECKING("if makeinfo can output html") -MAKEINFOHTML=no -${MAKEINFO=makeinfo} --help | grep .--html > /dev/null && MAKEINFOHTML=yes -AC_MSG_RESULT($MAKEINFOHTML) -if test "$MAKEINFOHTML" = "yes"; then - REMOVEHTMLTAGS="cat" - INFOTOHTML="$MAKEINFO --html" -else - REMOVEHTMLTAGS="sed 's/ifnottex/ifinfo/; s/ifnotinfo/iftex/'" - INFOTOHTML="perl texi2html -monolithic" -fi - - -AC_SUBST(GETOPT_O) -AC_SUBST(NO_GETOPT) -AC_SUBST(NO_LIBPAPER) -AC_SUBST(LIBPAPER) -AC_SUBST(NO_STRERROR) -AC_SUBST(GMAKEDEPEND0) -AC_SUBST(GMAKEDEPEND1) -AC_SUBST(GMAKEDEPEND2) - -AC_OUTPUT(Makefile) - -AC_SUBST(MAKEINFO) -AC_SUBST(REMOVEHTMLTAGS) -AC_SUBST(INFOTOHTML) - -AC_OUTPUT(doc/Makefile) - diff --git a/barcode-0.98/contrib/barcode-SVG.tar.gz b/barcode-0.98/contrib/barcode-SVG.tar.gz deleted file mode 100644 index 69df9562ce09785778516c0fb6a73a8d2181eda5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2880 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 diff --git a/barcode-0.98/contrib/barcode-SVG.tar.gz.README b/barcode-0.98/contrib/barcode-SVG.tar.gz.README deleted file mode 100644 index 1608ebaf..00000000 --- a/barcode-0.98/contrib/barcode-SVG.tar.gz.README +++ /dev/null @@ -1,24 +0,0 @@ - -[readme written by GNU-barcode maintainer] - -This is a stripped version of what you can find at: - http://www.onefour.net/barcode/SVG/barcode097-SVG.tar.gz - -It's by David J. Humphreys, it's GPL code and the original tarball -(as per the previous URL) contains: - --rwxr--r-- david/david 243 2002-01-02 04:18:00 Makefile --rwxr--r-- david/david 1284 2002-01-08 00:26:42 main.c --rwxr--r-- david/david 37796 2002-01-02 04:33:00 screen1.png --rwxr--r-- david/david 5503 2002-01-08 00:30:00 svg.c --rwxr--r-- david/david 2499 2002-01-02 03:37:00 test1.svg --rwxr--r-- david/david 2499 2002-01-02 03:44:00 test2.svg --rwxr--r-- david/david 2499 2002-01-02 03:49:00 test3.svg --rwxr--r-- david/david 34185 2002-01-02 04:41:00 test4.png --rwxr--r-- david/david 1834 2002-01-02 04:19:00 test4.svg --rwxr--r-- david/david 92713 2002-01-02 04:36:00 transformation.png --rwxr--r-- david/david 586 2002-01-02 04:11:00 transformation.svg - -Here I only included Makefile, main.c, svg.c, after converting -newlines to unix-style and changing permissions. - diff --git a/barcode-0.98/contrib/barcode-for-delphi.tar.gz b/barcode-0.98/contrib/barcode-for-delphi.tar.gz deleted file mode 100644 index cbc8e67693f6a90df86e6aafb2debb625321e861..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19010 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 diff --git a/barcode-0.98/contrib/barcode-for-delphi.tar.gz.README b/barcode-0.98/contrib/barcode-for-delphi.tar.gz.README deleted file mode 100644 index 36d216d7..00000000 --- a/barcode-0.98/contrib/barcode-for-delphi.tar.gz.README +++ /dev/null @@ -1,10 +0,0 @@ - -The barcode-for-delphi tarball includes a version of this package -ported to run under Delphi. Please note that you can't distribute the -executable because of the GPL (i.e., disitributing it would be -copyright violation, because the executable is a derived work of GNU -barcode, whose authors don't allow distributing under non-GPL terms. - -I still think it may be useful to some users. - -The code has been contributed by Michael Geddes . diff --git a/barcode-0.98/contrib/barcodeps-0.1.tgz b/barcode-0.98/contrib/barcodeps-0.1.tgz deleted file mode 100644 index 1dadb1c6a6dc085cee750585295ea63d06b5e056..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2036 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 UE&rB({{nyi7cfXlfdG&J0B5`&mH+?% diff --git a/barcode-0.98/contrib/grab-0.0.4.tar.gz.README b/barcode-0.98/contrib/grab-0.0.4.tar.gz.README deleted file mode 100644 index 4a048075..00000000 --- a/barcode-0.98/contrib/grab-0.0.4.tar.gz.README +++ /dev/null @@ -1,13 +0,0 @@ - -The purpose of this program is to read a (scanned) image containing a -barcode. The image is then interpreted and the barcode is decoded. -The decoded string is outputted to stdout. - -Currently, only Code-128 is supported. - -The program is GPL'd and it's the work of Tuukka Toivonen. - -The home page for this and other programs by Tuukka is - http://www.ee.oulu.fi/~tuukkat/releases.html -while a bare ls-like listing of all packages is at - http://www.ee.oulu.fi/~tuukkat/rel/ diff --git a/barcode-0.98/debian/README.debian b/barcode-0.98/debian/README.debian deleted file mode 100644 index 7223023a..00000000 --- a/barcode-0.98/debian/README.debian +++ /dev/null @@ -1,9 +0,0 @@ -The Debian Package barcode ----------------------------- - -This Debian package is integrated in the upstream release of GNU -barcode, maintained by Alessandro Rubini (rubini@gnu.org, -rubini@prosa.it). Since I have no extended experience with Debian -packages, I'm willing to accept any fixes that seem fit, as well as a -real Debian maintainer for the Debian package. - diff --git a/barcode-0.98/debian/changelog b/barcode-0.98/debian/changelog deleted file mode 100644 index b43e686f..00000000 --- a/barcode-0.98/debian/changelog +++ /dev/null @@ -1,27 +0,0 @@ -barcode (0.98) unstable; urgency=low - - * New upstream release - - -- Alessandro Rubini Fri, 1 Mar 2002 23:04:14 +0100 - -barcode (0.96) unstable; urgency=low - - * New upstream release - - -- Alessandro Rubini Wed, 8 Nov 2000 18:29:18 +0200 - -barcode (0.95) unstable; urgency=low - - * New upstream release - - -- Alessandro Rubini Thu, 3 Feb 2000 21:16:59 +0200 - -barcode (0.94) unstable; urgency=low - - * Initial Release. - - -- Alessandro Rubini Sun, 24 Oct 1999 01:10:23 +0200 - -Local variables: -mode: debian-changelog -End: diff --git a/barcode-0.98/debian/control b/barcode-0.98/debian/control deleted file mode 100644 index aacbfd49..00000000 --- a/barcode-0.98/debian/control +++ /dev/null @@ -1,14 +0,0 @@ -Source: barcode -Section: misc -Priority: optional -Maintainer: Alessandro Rubini -Standards-Version: 2.5.0 - -Package: barcode -Architecture: any -Depends: ${shlibs:Depends} -Description: Creates barcodes in .ps format - GNU barcode can create printouts for the conventional - product packagging standards: UPC-A, UPC-E, EAN-13, EAN-8, ISBN, code 39 - code 128 (b and c), and interleaved 2 of 5 . Ouput is generated as - either Postscript or Encapsulated Postscript. diff --git a/barcode-0.98/debian/copyright b/barcode-0.98/debian/copyright deleted file mode 100644 index c193af2c..00000000 --- a/barcode-0.98/debian/copyright +++ /dev/null @@ -1,8 +0,0 @@ -This package was written by Alessandro Rubini rubini@gnu.org on Sun, 24 Oct 1999 01:10:23 +0200. - -The pristine source can be downloaded from ftp://ftp.gnu.org/pub/barcode -and GNU mirrors. Latest and greatest version (also beta) are immediately -uploaded to ftp://ftp.prosa.it/pub/software. - -Copyright: GPL (see /usr/doc/copyright/GPL) - diff --git a/barcode-0.98/debian/dirs b/barcode-0.98/debian/dirs deleted file mode 100644 index 6822e402..00000000 --- a/barcode-0.98/debian/dirs +++ /dev/null @@ -1,3 +0,0 @@ -usr/bin -usr/include -usr/info diff --git a/barcode-0.98/debian/info b/barcode-0.98/debian/info deleted file mode 100644 index 18336bfb..00000000 --- a/barcode-0.98/debian/info +++ /dev/null @@ -1,15 +0,0 @@ -# This is a configuration files for installing a .info menu -# The Description to be placed into the directory -DESCR="Barcode library and frontend" - -# The section this info file should be placed in (Regexp) followed by -# the new section name to be created if the Regexp does not match -# (Optional. If not given the .info will be appended to the directory) -SECTION_MATCH="[cC]ommands" -SECTION_NAME="General Commands" - -# The file referred to from the Info directory -FILE=barcode.info - -# Optional. The files to be copied to /usr/info -FILES=doc/*.info diff --git a/barcode-0.98/debian/rules b/barcode-0.98/debian/rules deleted file mode 100755 index c48c5a1c..00000000 --- a/barcode-0.98/debian/rules +++ /dev/null @@ -1,50 +0,0 @@ -#!/usr/bin/make -f -# Made with the aid of debmake, by Christoph Lameter, -# based on the sample debian/rules file for GNU hello by Ian Jackson. - -package=barcode - -build: - $(checkdir) - ./configure --prefix=/usr - $(MAKE) CFLAGS="-O2 -g -Wall" - touch build - -clean: - $(checkdir) - -rm -f build - -$(MAKE) distclean - -rm -f `find . -name "*~"` - -rm -rf debian/tmp debian/files* core debian/substvars - -binary-indep: checkroot build - $(checkdir) -# There are no architecture-independent files to be uploaded -# generated by this package. If there were any they would be -# made here. - -binary-arch: checkroot build - $(checkdir) - -rm -rf debian/tmp - install -d debian/tmp - cd debian/tmp && install -d `cat ../dirs` - $(MAKE) install prefix=`pwd`/debian/tmp/usr -# Must have debmake installed for this to work. Otherwise please copy -# /usr/bin/debstd into the debian directory and change debstd to debian/debstd - debstd ChangeLog README TODO INSTALL - dpkg-gencontrol - chown -R root.root debian/tmp - chmod -R go=rX debian/tmp - dpkg --build debian/tmp .. - -define checkdir - test -f debian/rules -endef - -binary: binary-indep binary-arch - -checkroot: - $(checkdir) - test root = "`whoami`" - -.PHONY: binary binary-arch binary-indep clean checkroot diff --git a/barcode-0.98/doc/Makefile.in b/barcode-0.98/doc/Makefile.in deleted file mode 100644 index dae8f6b6..00000000 --- a/barcode-0.98/doc/Makefile.in +++ /dev/null @@ -1,135 +0,0 @@ -# -# Makefile (now .in) for the documentation directory -# -# Copyright 1994,2000 rubini@gnu.org (Alessandro Rubini) -# -################# -# -# BE CAREFUL in editing: -# due to the large number of index files, and my use of a non standard -# info input file, any file $(TARGET).* is removed by "make clean" -# -# I chose to use a prefix for the input file ("doc.$(TARGET)"), to ease -# makeing clean and applying my own rules. -# -################################################################### -# -# First of all, retrieve features of makeinfo, to know if we can do images -# and --html. Also, allow MAKEINFO to be specified on the commandline to -# allow me testing with various versions. - -# NOTE: it looks like semi-old versions can do images too, so CANDOIMAGES -# is not (yet?) used - - -MAKEINFO = @MAKEINFO@ -# According to whether this makeinfo can output html, autoconf define these -REMOVEHTMLTAGS = @REMOVEHTMLTAGS@ -INFOTOHTML = @INFOTOHTML@ - -############################################## - - -TARGET = barcode -ALL = $(TARGET).ps $(TARGET).info $(TARGET)doc.txt $(TARGET).html \ - $(TARGET).pdf - -all: $(ALL) terse - -info: $(TARGET).info - -$(TARGET)doc.txt: mktxt - -mpage: all - mv $(TARGET).ps $(TARGET)1.ps - mpage -2A $(TARGET)1.ps > $(TARGET)2.ps && rm $(TARGET)1.ps - -terse: - # preserve the pdf copy - -mv -f $(TARGET).pdf PDF 2> /dev/null && \ - rm -f *~ *.dvi *.log *.aux \ - $(TARGET).*.bak $(TARGET).??? $(TARGET).texinfo && \ - mv PDF $(TARGET).pdf; - - # preserve the ps copy - -mv $(TARGET).ps PS; - -rm -f $(TARGET).??; - -mv PS $(TARGET).ps; - -clean: terse - rm -f $(ALL) $(TARGET)_toc.html - - -#################################################### - -# These rules used to be expressed as "%.texinfo: doc.%" etc. However, this -# is gmake-specific, so I turned every % to $(TARGET), thus loosing generality -# but gaining portability. I also had to drop "$^": it worked with gmake -# and not pmake, while "$<" worked with pmake and not gmake. -# with gmake and not pmake. -# ARub 2000-04-21 - -$(TARGET).texinfo: doc.$(TARGET) - @rm -f $@ 2> /dev/null - sed -f ./infofilter doc.$(TARGET) | $(REMOVEHTMLTAGS) > $@ - chmod 400 $@ - - -# This rule is somewhat a rewrite of texi2dvi. I like make more than sh :-) -# This had to be rewritten too, as "$*" is different in gmake and pmake - -$(TARGET).dvi: $(TARGET).texinfo - -# create a spurious index file to please silly sh (bash will work anyway) - touch $(TARGET).oo - -# get the index list - if test "x`ls $(TARGET).?? $(TARGET).aux`" != "x"; then \ - for i in `ls $(TARGET).?? $(TARGET).aux`; do \ - cp $$i $$i~; \ - done; \ - fi - tex $(TARGET).texinfo - -#check the file list, the file and if needed run TeX again - old="`ls $(TARGET).??~ $(TARGET).aux~ | sed 's/~//g'`"; \ - new="`ls $(TARGET).?? $(TARGET).aux`"; \ - need="n"; \ - if test "$$old" != "$$new"; then need="y"; \ - else \ - for i in `ls $(TARGET).?? $(TARGET).aux`; do \ - cmp -s $$i $$i~; if test $$? -ne 0; then need="y" break; fi; \ - done; \ - fi; \ - if test "$$need" = "y"; then \ - texindex $(TARGET).?? && tex $(TARGET).texinfo; \ - fi - - -$(TARGET).ps: $(TARGET).dvi - dvips -f $(TARGET).dvi > $@ - -$(TARGET).pdf: $(TARGET).ps - ps2pdf $(TARGET).ps > $@ - -$(TARGET).lj: $(TARGET).dvi - dvilj -e- $(TARGET).dvi > $@ - -$(TARGET).info: $(TARGET).texinfo - makeinfo $(TARGET).texinfo -o $@ - -$(TARGET).html: $(TARGET).texinfo - $(INFOTOHTML) -o $@ $< - -#$(TARGET).man: doc.$(TARGET) -# manpages are created by the toplevel Makefile - -$(TARGET)doc.txt: $(TARGET).info - awk -f ./mktxt $(TARGET).info > $@ - - - - - - - diff --git a/barcode-0.98/doc/README b/barcode-0.98/doc/README deleted file mode 100644 index 5af5490f..00000000 --- a/barcode-0.98/doc/README +++ /dev/null @@ -1,5 +0,0 @@ - -The input file is "doc.barcode". I preprocess this file to -build both a "barcode.texinfo" file and manual pages. - -The intermediat diff --git a/barcode-0.98/doc/barcode.info b/barcode-0.98/doc/barcode.info deleted file mode 100644 index 66b59d06..00000000 --- a/barcode-0.98/doc/barcode.info +++ /dev/null @@ -1,747 +0,0 @@ -This is barcode.info, produced by makeinfo version 4.0b from -barcode.texinfo. - - This file is the User's Manual for the barcode library (version -0.98). - - -File: barcode.info, Node: Top, Next: Overview, Prev: (dir), Up: (dir) - -Barcode tools -************* - - This file documents version 0.98 of the barcode library and sample -programs (March 2002). - -* Menu: - -* Overview:: -* The Barcode Object:: -* Supported Flags:: -* The API:: -* The barcode Executable:: -* Supported Encodings:: -* PCL Output:: -* Bugs and Pending Issues:: - - -File: barcode.info, Node: Overview, Next: The Barcode Object, Prev: Top, Up: Top - -Overview -******** - - The "barcode" package is mainly a C library for creating bar-code -output files. It also includes a command line front-end and (in a -foreseeable future) a graphic frontend. - - The package is designed as a library because we think the main use -for barcode-generation tools is inside more featured applications. The -library addresses bar code printing as two distinct problems: creation -of bar information and actual conversion to an output format. To this -aim we use an intermediate representation for bar codes, which is -currently documented in the `ps.c' source file (not in this document). - - Note that the library and the accompanying material is released -according to the GPL license, not the LGPL one. A copy of the GPL is -included in the distribution tarball. - - -File: barcode.info, Node: The Barcode Object, Next: Supported Flags, Prev: Overview, Up: Top - -The Underlying Data Structure -***************************** - - Every barcode-related function acts on a data structure defined in -the `barcode.h' header, which must be included by any C source file -that uses the library. The header is installed by make install. - - The definition of the data structure is included here for reference: - - struct Barcode_Item { - int flags; /* type of encoding and other flags */ - char *ascii; /* malloced */ - char *partial; /* malloced too */ - char *textinfo; /* information about text placement */ - char *encoding; /* code name, filled by encoding engine */ - int width, height; /* output units */ - int xoff, yoff; /* output units */ - int margin; /* output units */ - double scalef; /* requested scaling for barcode */ - int error; /* an errno-like value, in case of failure */ - }; - - The exact meaning of each field and the various flags implemented are -described in the following sections. - - Even though you won't usually need to act on the contents of this -structure, some of the functions in the library receive arguments that -are directly related to one or more of these fields. - -* Menu: - -* The Field List:: -* The Intermediate Representation:: - - -File: barcode.info, Node: The Field List, Next: The Intermediate Representation, Prev: The Barcode Object, Up: The Barcode Object - -The Fields -========== - -`int flags;' - The flags are, as you may suspect, meant to specify the exact - behaviour of the library. They are often passed as an argument to - barcode functions and are discussed in the next section. - -`char *ascii;' -`char *partial;' -`char *textinfo;' -`char *encoding;' - These fields are internally managed by the library, and you are - not expected to touch them if you use the provided API. All of - them are allocated with malloc. - -`int width;' -`int height;' - They specify the width and height of the active barcode region - (i.e., excluding the white margin), in the units used to create - output data (for postscript they are points, 1/72th of an inch, - 0.352 mm). The fields can be either assigned to in the structure - or via Barcode_Position(), at your choice. If either value or - both are left to their default value of zero, the output engine - will assign default values according to the specified scaling - factor. If the specified width is bigger than needed (according to - the scaling factor), the output barcode will be centered in its - requested region. If either the width of the height are too small - for the specified scale factor, the output bar code will expand - symmetrically around the requested region. - -`int xoff;' -`int yoff;' - The fields specify offset from the coordinate origin of the output - engine (for postscript, position 0,0 is the lower left corner of - the page). The fields can be either assigned to in the structure - or via Barcode_Position(), at your choice. The offset specifies - where the white margin begins, not where the first bar will be - printed. To print real ink to the specified position you should - set margin to 0. - -`int margin;' - The white margin that will be left around the printed area of the - bar code. The same margin is applied to all sides of the printed - area. The default value for the margin is defined in `barcode.h' - as BARCODE_DEFAULT_MARGIN (10). - -`double scalef;' - The enlarge or shrink value for the bar code over its default - dimension. The width and scalef fields interact deeply in the - creation of the output, and a complete description of the issues - appears later in this section. - -`int error;' - The field is used when a barcode function fails to host an - errno-like integer value. - -Use of the width and scalef fields. ------------------------------------ - - A width unit is the width of the thinnest bar and/or space in the -chosen code; it defaults to 1 point if the output is postscript or -encapsulated postscript. - - Either or both the code width and the scale factor can be left -unspecified (i.e., zero). The library deals with defaults in the -following way: - -Both unspecified - If both the width and the scale factor are unspecified, the scale - factor will default to 1.0 and the width is calculated according - to the actual width of the bar code being printed. - -Width unspecified - If the width is not specified, it is calculated according to the - values of scalef. - -Scale factor unspecified - If the scale factor is not specified, it will be chosen so that - the generated bar code exactly fits the specified width. - -Both specified - The code will be printed inside the specified region according to - the specified scale factor. It will be aligned to the left. If, - however, the chosen width is too small for the specific bar code - and scaling factor, then the code will extend symmetrically to the - left and to the right of the chosen region. - - -File: barcode.info, Node: The Intermediate Representation, Prev: The Field List, Up: The Barcode Object - -The Intermediate Representation -=============================== - - The encoding functions print their output into the partial and -texinfo fields of the barcode data structure. Those fields, together -with position information, are then used to generate actual output. -This is an informal description of the intermediate format. - - The first char in partial tells how much extra space to add to the -left of the bars. For EAN-13, it is used to leave space to print the -first digit, other codes may have '0' for no-extra-space-needed. - - The next characters are alternating bars and spaces, as multiples of -the base dimension which is 1 unless the code is rescaled. Rescaling is -calculated as the ratio from the requested width and the calculated -width. Digits represent bar/space dimensions. Lower-case letters -represent those bars that should extend lower than the others: 'a' is -equivalent to '1', 'b' is '2' and so on up to 'i' which is equivalent to -'9'. Other letters will be used for encoding-specific meanings, as soon -as I implement them. - - The textinfo string is made up of fields %lf:%lf:%c separated by -blank space. The first integer is the x position of the character, the -second is the font size (before rescaling) and the char item is the -character to be printed. - - Both the partial and textinfo strings may include "-" or "+" as -special characters (in textinfo the char should be a stand-alone word). -They state where the text should be printed: below the bars ("-", -default) or above the bars. This is used, for example, to print the -add-5 and add-2 codes to the right of UPC or EAN codes (the add-5 -extension is mostly used in ISBN codes). - - -File: barcode.info, Node: Supported Flags, Next: The API, Prev: The Barcode Object, Up: Top - -The Flags -********* - - The following flags are supported by version 0.98 of the library: - -`BARCODE_ENCODING_MASK' - The mask is used to extract the encoding-type identifier from the - flags field. - -`BARCODE_EAN' -`BARCODE_UPC' -`BARCODE_ISBN' -`BARCODE_128B' -`BARCODE_128C' -`BARCODE_128' -`BARCODE_128RAW' -`BARCODE_39' -`BARCODE_I25' -`BARCODE_CBR' -`BARCODE_MSI' -`BARCODE_PLS' -`BARCODE_93' - The currently supported encoding types: EAN (13 digits, 8 digits, - 13 + 2 add-on and 13 + 5 add-on), UPC (UPC-A, UPC-E, UPC-A with 2 - or 5 digit add-on), ISBN (with or without the 5-digit add-on), - CODE128-B (the whole set of printable ASCII characters), CODE128-C - (two digits encoded by each barcode symbol), CODE128 (all ASCII - values), a "raw-input" pseudo-code that generates CODE128 output, - CODE39 (alphanumeric), "interleaved 2 of 5" (numeric), Codabar - (numeric plus a few symbols), MSI (numeric) and Plessey (hex - digits). *Note Supported Encodings::. - -`BARCODE_ANY' - This special encoding type (represented by a value of zero, so it - will be the default) tells the encoding procedure to look for the - first encoding type that can deal with a textual string. - Therefore, a 11-digit code will be printed as UPC (as well as - 6-digit, 11+2 and 11+5), a 12-digit (or 7-digit, or 12+2 or 12+5) - as EAN13, an ISBN code (with or without hyphens, with or without - add-5) will be encoded in its EAN13 representation, an even number - of digits is encoded using CODE128C and a generic string is - encoded using CODE128B. Since code-39 offers a much larger - representation for the same text string, code128-b is preferred - over code39 for alphanumeric strings. - -`BARCODE_NO_ASCII' - Instructs the engine not to print the ascii string on output. By - default the bar code is accompanied with an ascii version of the - text it encodes. - -`BARCODE_NO_CHECKSUM' - Instructs the engine not to add the checksum character to the - output. Not all the encoding types can drop the checksum; those - where the checksum is mandatory (like EAN and UPC) just ignore the - flag. - -`BARCODE_OUTPUT_MASK' - The mask is used to extract the output-type identifier from the - flags field. - -`BARCODE_OUT_PS' -`BARCODE_OUT_EPS' -`BARCODE_OUT_PCL' -`BARCODE_OUT_PCL_III' - The currently supported encoding types: full-page postscript and - encapsulated postscript; PCL (print command language, for HP - printers) and PCL-III (same as PCL, but uses a font not available - on older printers). - -`BARCODE_OUT_NOHEADERS' - The flag instructs the printing engine not to print the header and - footer part of the file. This makes sense for the postscript - engine but might not make sense for other engines; such other - engines will silently ignore the flag just like the PCL back-end - does. - - -File: barcode.info, Node: The API, Next: The barcode Executable, Prev: Supported Flags, Up: Top - -Functions Exported by the Library -********************************* - - The functions included in the barcode library are declared in the -header file barcode.h. They perform the following tasks: - -`struct Barcode_Item *Barcode_Create(char *text);' - The function creates a new barcode object to deal with a specified - text string. It returns NULL in case of failure and a pointer to - a barcode data structure in case of success. - -`int Barcode_Delete(struct Barcode_Item *bc);' - Destroy a barcode object. Always returns 0 (success) - -`int Barcode_Encode(struct Barcode_Item *bc, int flags);' - Encode the text included in the bc object. Valid flags are the - encoding type (other flags are ignored) and BARCODE_NO_CHECKSUM - (other flags are silently ignored); if the flag argument is zero, - bc->flags will apply. The function returns 0 on success and -1 in - case of error. After successful termination the data structure - will host the description of the bar code and its textual - representation, after a failure the error field will include the - reason of the failure. - -`int Barcode_Print(struct Barcode_Item *bc, FILE *f, int flags);' - Print the bar code described by bc to the specified file. Valid - flags are the output type, BARCODE_NO_ASCII and - BARCODE_OUT_NOHEADERS, other flags are ignored. If any of these - flags is zero, it will be inherited from bc->flags which therefore - takes precedence. The function returns 0 on success and -1 in case - of error (with bc->error set accordingly). In case of success, the - bar code is printed to the specified file, which won't be closed - after use. - -`int Barcode_Position(struct Barcode_Item *bc, int wid, int hei, int xoff, int yoff, double scalef);' - The function is a shortcut to assign values to the data structure. - -`int Barcode_Encode_and_Print(char *text, FILE *f, int wid, int hei, int xoff, int yoff, int flags);' - The function deals with the whole life of the barcode object by - calling the other functions; it uses all the specified flags. - -`int Barcode_Version(char *versionname);' - Returns the current version as an integer number of the form major - * 10000 + minor * 100 + release. Therefore, version 1.03.5 will be - returned as 10305 and version 0.53 as 5300. If the argument is - non-null, it will be used to return the version number as a - string. Note that the same information is available from two - preprocessor macros: BARCODE_VERSION (the string) and - BARCODE_VERSION_INT (the integer number). - - -File: barcode.info, Node: The barcode Executable, Next: Supported Encodings, Prev: The API, Up: Top - -The barcode frontend program -**************************** - - The barcode program is a front-end to access some features of the -library from the command line. It is able to read user supplied -strings from the command line or a data file (standard input by default) -and encode all of them. - -* Menu: - -* The Command Line:: - - -File: barcode.info, Node: The Command Line, Prev: The barcode Executable, Up: The barcode Executable - -The Command Line -================ - - barcode accepts the following options: - -`--help or -h' - Print a usage summary and exit. - -`-i filename' - Identify a file where strings to be encoded are read from. If - missing (and if -b is not used) it defaults to standard input. - Each data line of the input file will be used to create one - barcode output. - -`-o filename' - Output file. It defaults to standard output. - -`-b string' - Specify a single "barcode" string to be encoded. The option can - be used multiple times in order to encode multiple strings (this - will result in multi-page postscript output or a table of barcodes - if -t is specified). The strings must match the encoding chosen; - if it doesn't match the program will print a warning to stderr and - generate "blank" output (although not zero-length). Please note - that a string including spaces or other special characters must be - properly quoted. - -`-e encoding' - encoding is the name of the chosen encoding format being used. It - defaults to the value of the environment variable BARCODE_ENCODING - or to auto detection if the environment is also unset. - -`-g geometry' - The geometry argument is of the form "[ x ] [+ - + ]" (with no intervening spaces). Unspecified - margin values will result in no margin; unspecified size results - in default size. The specified values represent print points by - default, and can be inches, millimeters or other units according - to the -u option or the BARCODE_UNIT environment variable. The - argument is used to place the printout code on the page. Note that - an additional white margin of 10 points is added to the printout. - If the option is unspecified, BARCODE_GEOMETRY is looked up in the - environment, if missing a default size and no margin (but the - default 10 points) are used. - -`-t table-geometry' - Used to print several barcodes to a single page, this option is - meant to be used to print stickers. The argument is of the form - " x [+ + [- - [- ]]]" (with no intervening spaces); if - missing, the top and right margin will default to be the same as - the bottom and left margin. The margins are specified in print - points or in the chosen unit (see -u below). If the option is not - specified, BARCODE_TABLE is looked up in the environment, - otherwise no table is printed and each barcode will get its own - page. The size (but not the position) of a barcode item within a - table can also be selected using -g (see "geometry" above), - without struggling with external and internal margins. I still - think management of geometries in a table is suboptimal, but I - can't make it better without introducing incompatibilities. - -`-m margin(s)' - Specifies an internal margin for each sticker in the table. The - argument is of the form "," and the margin is - applied symmetrically to the sticker. If unspecified, the - environment variable BARCODE_MARGIN is used or a default internal - margin of 10 points is used. - -`-n' - "Numeric" output: don't print the ASCII form of the code, only the - bars. - -`-c' - No checksum character (for encodings that allow it, like code 39, - other codes, like UPC or EAN, ignore this option). - -`-E' - Encapsulated postscript (default is normal postscript). When the - output is generated as EPS only one barcode is encoded. - -`-P' - PCL output. Please note that the Y direction goes from top to - bottom for PCL, and the origin for an image is the top-left corner - instead of the bottom-left - -`-p pagesize' - Specify a non-default page size. The page size can be specified in - millimeters, inches or plain numbers (for example: "210x297mm", - "8.5x11in", "595x842"). A page specification as numbers will be - interpreted according to the current unit specification (see -u - below). If libpaper is available, you can also specify the page - size with its name, like "A3" or "letter" (libpaper is a standard - component of Debian GNU/Linux, but may be missing elsewhere). The - default page size is your system-wide default if libpaper is - there, A4 otherwise. - -`-u unit' - Choose the unit used in size specifications. Accepted values are - "mm", "cm", "in" and "pt". By default, the program will check - BARCODE_UNIT in the environment, and assume points otherwise (this - behaviour is compatible with 0.92 and previous versions. If -u - appears more than once, each instance will modified the behaviour - for the arguments at its right, as the command line is processes - left to right. The program internally works with points, and any - size is approximated to the nearest multiple of one point. The -u - option affect -g (geometry), -t (table) and -p (page size). - - -File: barcode.info, Node: Supported Encodings, Next: PCL Output, Prev: The barcode Executable, Up: Top - -Supported Encodings -******************* - - The program encodes text strings passed either on the command line -(with -b) or retrieved from standard input. The text representation is -interpreted according to the following rules. When auto-detection of -the encoding is enabled (i.e, no explicit encoding type is specified), -the encoding types are scanned to find one that can digest the text -string. The following list of supported types is sorted in the same -order the library uses when auto-detecting a suitable encoding for a -string. - -EAN - The EAN frontend is similar to UPC; it accepts strings of digits, - 12 or 7 characters long. Strings of 13 or 8 characters are - accepted if the provided checksum digit is correct. I expect most - users to feed input without a checksum, though. The add-2 and - add-5 extension are accepted for both the EAN-13 and the EAN-8 - encodings. The following are example of valid input strings: - "123456789012" (EAN-13), "1234567890128" (EAN-13 wih checksum), - "1234567" (EAN-8), "12345670 12345" (EAN-8 with checksum and - add-5), "123456789012 12" (EAN-13 with add-2), "123456789012 - 12345" (EAN-13 with add-5). - -UPC - The UPC frontend accepts only strings made up of digits (and, if a - supplemental encoding is used, a blank to separate it). It - accepts strings of 11 or 12 digits (UPC-A) and 6 or 7 or 8 digits - (UPC-E). - - The 12th digit of UPC-A is the checksum and is added by the - library if not specified in the input; if it is specified, it must - be the right checksum or the code is rejected as invalid. For - UPC-E, 6 digit are considered to be the middle part of the code, a - leading 0 is assumed and the checksum is added; 7 digits are - either considered the initial part (leading digit 0 or 1, checksum - missing) or the final part (checksum specified, leading 0 - assumed); 8 digits are considered to be the complete code, with - leading 0 or 1 and checksum. For both UPC-A and UPC-E, a trailing - string of 2 digits or 5 digits is accepted as well. Therefore, the - following are examples of valid strings that can be encoded as UPC: - "01234567890" (UPC-A) "012345678905" (UPC-A with checksum), - "012345" (UPC-E), "01234567890 12" (UPC-A, add-2) and "01234567890 - 12345" (UPC-A, add-5), "0123456 12" (UPC-E, add-2). Please note - that when setting BARCODE_ANY to auto-detect the encoding to be - used, 12-digit strings and 7-digit strings will always be - identified as EAN. This because I expect most user to provide - input without a checksum. If you need to specify UPC-with-checksum - as input you must explicitly set BARCODE_UPC as a flag or use -e - upc on the command line. - -ISBN - ISBN numbers are encoded as EAN-13 symbols, with an optional add-5 - trailer. The ISBN frontend of the library accepts real ISBN - numbers and deals with any hyphen and, if present, the ISBN - checksum character before encoding data. Valid representations for - ISBN strings are for example: "1-56592-292-1", "3-89721-122-X" and - "3-89721-122-X 06900". - -CODE 128-B - This encoding can represent all of the printing ASCII characters, - from the space (32) to DEL (127). The checksum digit is mandatory - in this encoding. - -CODE 128-C - The "C" variation of Code-128 uses Code-128 symbols to represent - two digits at a time (Code-128 is made up of 104 symbols whose - interpretation is controlled by the start symbol being used). Code - 128-C is thus the most compact way to represent any even number of - digits. The encoder refuses to deal with an odd number of digits - because the caller is expected to provide proper padding to an - even number of digits. (Since Code-128 includes control symbols to - switch charset, it is theoretically possible to represent the odd - digit as a Code 128-A or 128-B symbol, but this tool doesn't - currently implement this option). - -CODE 128 RAW - Code-128 output represented symbol-by-symbol in the input string. - To override part of the problems outlined below in specifying - code128 symbols, this pseudo-encoding allows the used to specify a - list of code128 symbols separated by spaces. Each symbol is - represented by a number in the range 0-105. The list should - include the leading character.The checksum and the stop character - are automatically added by the library. Most likely this - pseudo-encoding will be used with BARCODE_NO_ASCII and some - external program to supply the printed text. - -CODE 39 - The code-39 standard can encode uppercase letters, digits, the - blank space, plus, minus, dot, star, dollar, slash, percent. Any - string that is only composed of such characters is accepted by the - code-39 encoder. To avoid loosing information, the encoder refuses - to encode mixed-case strings (a lowercase string is nonetheless - accepted as a shortcut, but is encoded as uppercase). - -INTERLEAVED 2 OF 5 - This encoding can only represent an even number of digits (odd - digits are represented by bars, and even digits by the - interleaving spaces). The name stresses the fact that two of the - five items (bars or spaces) allocated to each symbol are wide, - while the rest are narrow. The checksum digit is optional (can be - disabled via BARCODE_NO_CHECKSUM). Since the number of digits, - including the checksum, must be even, a leading zero is inserted - in the string being encoded if needed (this is specifically stated - in the specs I have access to). - -CODE 128 - Automatic selection between alphabet A, B and C of the Code-128 - standard. This encoding can represent all ASCII symbols, from 0 - (NUL) to 127 (DEL), as well as four special symbols, named F1, F2, - F3, F4. The set of symbols available in this encoding is not - easily represented as input to the barcode library, so the - following convention is used. In the input string, which is a - C-language null-terminated string, the NUL char is represented by - the value 128 (0x80, 0200) and the F1-F4 characters are - represented by the values 193-196 (0xc1-0xc4, 0301-0304). The - values have been chosen to ease their representation as escape - sequences. - - Since the shell doesn't seem to interpret escape sequences on the - command line, the "-b" option cannot be easily used to designate - the strings to be encoded. As a workaround you can resort to the - command echo, either within back-ticks or used separately to - create a file that is then fed to the standard-input of barcode - - assuming your echo command processes escape sequences. The - newline character is especially though to encode (but not - impossible unless you use a csh variant. - - These problems only apply to the command-line tool; the use of - library functions doesn't give any problem. In needed, you can use - the "code 128 raw" pseudo-encoding to represent code128 symbols by - their numerical value. This encoding is used late in the - auto-selection mechanism because (almost) any input string can be - represented using code128. - -CODABAR - Codabar can encode the ten digits and a few special symbols - (minus, plus, dollar, colon, bar, dot). The characters "A", "B", - "C" and "D" are used to represent four different start/stop - characters. The input string to the barcode library can include - the start and stop characters or not include them (in which case - "A" is used as start and "B" as stop). Start and stop characters - in the input string can be either all lowercase or all uppercase - and are always printed as uppercase. - -PLESSEY - Plessey barcodes can encode all the hexadecimal digits. Alphabetic - digits in the input string must either be all lowercase or all - uppercase. The output text is always uppercase. - -MSI - MSI can only encode the decimal digits. While the standard - specifies either one or two check digits, the current - implementation in this library only generates one check digit. - -CODE 93 - The code-93 standard can natively encode 48 different characters, - including uppercase letters, digits, the blank space, plus, minus, - dot, star, dollar, slash, percent, as well as five special - characters: a start/stop delimiter and four "shift characters" - used for extended encoding. Using this "extended encoding" - method, any standard 7-bit ASCII character can be encoded, but it - takes up two symbol lengths in barcode if the character is not - natively supported (one of the 48). The encoder here fully - implements the code 93 encoding standard. Any characters natively - supported (A-Z, 0-9, ".+-/$&%") will be encoded as such - for any - other characters (such as lower case letters, brackets, - parentheses, etc.), the encoder will revert to extended encoding. - As a note, the option to exclude the checksum will eliminate the - two modulo-47 checksums (called C and K) from the barcode, but this - probably will make it unreadable by 99% of all scanning systems. - These checksums are specified to be used at the firmware level, - and their absence will be interpreted as an invalid barcode. - - -File: barcode.info, Node: PCL Output, Next: Bugs and Pending Issues, Prev: Supported Encodings, Up: Top - -PCL Output -********** - - While the default output is Postscript (possibly EPS), and Postscript -can be post-processed to almost anything, it is sometimes desirable to -create output directly usable by the specific printer at hand. PCL is -currently supported as an output format for this reason. Please note -that the Y coordinate for PCL goes from top to bottom, while for -Postscript it goes from bottom to top. Consistently, while in -Postscript you specify the bottom-left corner as origin, for PCL you -specify the top-left corner. - - Barcode output for PCL Printers (HP LaserJet and compatibles), was -developed using PCL5 Reference manuals from HP. that really refers to -these printers: - * LaserJet III, III P, III D, III Si, - - * LaserJet 4 family - - * LaserJet 5 family - - * LaserJet 6 family - - * Color LaserJet - - * DeskJet 1200 and 1600. - - - However, barcode printing uses a very small subset of PCL, probably -also LaserJet II should print it without problem, but the resulting -text may be horrible. - - The only real difference from one printer to another really depends -on which font are available in the printer, used in printing the label -associated to the bars (if requested). - - Earlier LaserJet supports only bitmaps fonts, so these are not -"scalable". (Ljet II ?), Also these fonts, when available, have a -specified direction, and not all of them are available in both Portrait -and Landscape mode. - - From LaserJet 4 series, (except 4L/5L that are entry-level printers), -Arial scalable font should be available, so it's the "default font" -used by this program. - - LaserJet III series printers (and 4L, 5L), don't feature "Arial" as a -resident font, so you should use BARCODE_OUT_PCL_III instead of -BARCODE_OUT_PCL., and font the font used will be "Univers" instead of -"Arial". - - Results on compatible printers, may depend on consistency of PCL5 -compatibility, in doubt, try BARCODE_OUT_PCL_III - - PJL commands are not used here, as it's not very compatible. - - Tested Printers: - * Hp LaserJet 4050 - - * Hp LaserJet 2100 - - * Epson N-1200 emul PCL - - * Toshiba DP2570 (copier) + PCL option - - * Epson EPL-7100 emul. HP LaserJet II: bars print fine but text is - bad. - - -File: barcode.info, Node: Bugs and Pending Issues, Prev: PCL Output, Up: Top - -Bugs and Pending Issues. -************************ - - The current management of borders/margins is far from optimal. The -"default" margin applied by the library interferes with the external -representation, but I feel it is mandatory to avoid creating barcode -output with no surrounding white space (the problem is especially -relevant for EPS output). - - EAN-128 is not (yet) supported. I plan to implement it pretty soon -and then bless the package as version 1.0. - - - -Tag Table: -Node: Top154 -Node: Overview526 -Node: The Barcode Object1404 -Node: The Field List2821 -Node: The Intermediate Representation6586 -Node: Supported Flags8359 -Node: The API11343 -Node: The barcode Executable14029 -Node: The Command Line14458 -Node: Supported Encodings19557 -Node: PCL Output28997 -Node: Bugs and Pending Issues31316 - -End Tag Table diff --git a/barcode-0.98/doc/barcode.pdf b/barcode-0.98/doc/barcode.pdf deleted file mode 100644 index b2268f4d88df746dbb6c3602aa7d3ed82e327410..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 192464 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%0AsEDtDucP|JSd#jS#anV^@KuE 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

    ImD7Dy2pKZ~hpnmDvEW{zBbsi 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 diff --git a/barcode-0.98/doc/barcode.ps b/barcode-0.98/doc/barcode.ps deleted file mode 100644 index cc6cc2c4..00000000 --- a/barcode-0.98/doc/barcode.ps +++ /dev/null @@ -1,2378 +0,0 @@ -%!PS-Adobe-2.0 -%%Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software -%%Title: barcode.dvi -%%Pages: 12 -%%PageOrder: Ascend -%%BoundingBox: 0 0 596 842 -%%EndComments -%DVIPSWebPage: (www.radicaleye.com) -%DVIPSCommandLine: dvips -f barcode.dvi -%DVIPSParameters: dpi=600, compressed -%DVIPSSource: TeX output 2002.08.21:2135 -%%BeginProcSet: texc.pro -%! -/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S -N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72 -mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0 -0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{ -landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize -mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[ -matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round -exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{ -statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0] -N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin -/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array -/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2 -array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N -df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A -definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get -}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub} -B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr -1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3 -1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx -0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx -sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{ -rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp -gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B -/chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{ -/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{ -A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy -get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse} -ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp -fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17 -{2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add -chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{ -1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop} -forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn -/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put -}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{ -bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A -mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{ -SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{ -userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X -1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4 -index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N -/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{ -/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT) -(LaserWriter 16/600)]{A length product length le{A length product exch 0 -exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse -end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask -grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot} -imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round -exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto -fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p -delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M} -B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{ -p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S -rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end - -%%EndProcSet -TeXDict begin 39158280 55380996 1000 600 600 (barcode.dvi) -@start -%DVIPSBitmapFont: Fa cmbxti10 14.4 8 -/Fa 8 115 df<13FCEA03FF000F13804813C05AA25AA2B5FCA31480A214006C5A6C5A6C -5AEA0FE0121271912B>46 D97 DI<923807FF80037F13F00203B512FC02 -0F80023F8091B500031380499038F8007F010701E0EBFFC049EB800149495A49485B495A -49485B5A485BA248491580180048496D5A486F5A93C8FC485BA35A91CAFCA3B5FC5BA45B -A65B17036C6CED0780170FEF3FC0003F167F6DEC01FF001F4B13806C6C021F13006C6DEB -7FFC6C9039F00FFFF86C90B612E06C5E013F4AC7FC010F14F0010049C8FC323773B540> -II<923807FF8092B512E0020714F8021F80027F80903A01FFFE03FF49D9F000 -13804901C0EB7FC0495B013F90C7123F495A495A5C5A485B4849147F18804816FF4A4913 -00485DEE0FFE4849EB7FFC923807FFF891B612E0485E94C7FC16F04BC8FCB5CAFC5BA45B -A7007F1603EF0780170F003FEE3FC0177F6C6CEC01FF4C13806C6C021F13006C01C0EB7F -FC6C9039F00FFFF86C90B612E06C6C5D6D4AC7FC010714F09026007FFEC8FC323773B540 ->I<923807FFC0037F13FC0203B6FC020F15C0023F8191B5000313F8499039F8007FFC01 -0701E0133F4901806D7E4990C76C7E49481680495A4948804818C0485BA2485BA248494A -13E05AA2485BA24D13C05A91C8FCA25FB517805BA25F19005B6017FF605E60495E5E6C6C -4A5B604C5B003F4B90C7FC6D4A5A001F4B5A6C6C4A5A6CD980035B6CD9F01F13C06C90B6 -5A6C4BC8FC013F14F0010F14C0010001F8C9FC3B3773B547>111 -D114 -D E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fb cmsy10 10.95 1 -/Fb 1 16 df15 -D E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fc cmb10 10.95 10 -/Fc 10 115 df97 D<13FFB5FCA512077EAFEC03FE91381FFF -C0027F13F091B57E9138FE0FFE9138F003FF4A7E02C014804A6C13C017E0A3EE7FF0A317 -F8AC17F0A3EEFFE0A217C05D02C014806E4813006E485A9138FC1FFC01FCB55A496C13E0 -D9F01F1380C7D807FCC7FC2D407EBE33>III<49B47E010F13F0013F7F90B512FE48EBC3FF480100 -13804848EB7FC04848133F001F15E05B003FEC1FF0A2485A150F16F8A212FFA290B6FCA4 -01F0C8FCA5127FA37F003F15F8A26C6C1301000F15F06D13036C6CEB07E06C9038800FC0 -6C9038F07F806C6CB512006D5B010F13F8010013C0252B7EA92A>I103 -D105 D<01FFEB7FE0B53801FFF802077F4A7F91381FC3FFDA3E03 -13800007137C6CEB780102F014C014E0A214C0A31480B3A4B5D8FE1F13FFA530297EA833 ->110 D<49B47E010F13F0013F13FC90B6FC48018113803A03FE007FC04848EB3FE0000F -15F049131F001F15F8A24848EB0FFCA2007F15FEA400FF15FFAB007F15FEA3003F15FC6D -131F001F15F8A26C6CEB3FF0000715E06C6CEB7FC03A01FF81FF806C90B51200013F13FC -010F13F001011380282B7EA92D>I<3901FE07F800FFEB0FFE91383FFF804A13C0EC7C7F -9138F8FFE03807FFF06C5B5CA2ED7FC09138803F80ED1F0092C7FCA291C8FCB3A3B6FCA5 -23297FA827>114 D E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fd cmbxti10 17.28 7 -/Fd 7 115 df97 -DII<963803FFC0061FB512E06060A47214C0F000 -1F61A21B80A261A21B00A296B5FCA262A260A262A260A262A260A262A260A2DCFFE05C03 -0F13FC037FEBFF1F4AB6129F020792B55A4AEBE07F023FEB000F4A487F4948486D5C4913 -F04981495B49496D91C7FC495B5B92C8FC90B55E485B5F485B4860A248495CA248605C5F -5A4A5EA2485EA24A5EA2B55DA24A5EA25FA291C85CA24DEC3F801A7F19005B94B513FFA2 -4E1400A24C5C007F614C13FC4C1403003F4B5D6D4A14076C4B5D6C6D49140F4BB55C6CD9 -C007013F495A6C9026F03FFEEBFE3FC690B5D8F81FB55A6DDAF0075C011FDAC00349C7FC -010749C75B9026007FF0EC1FF04B6571E355>II<93381FFF804BB512F8031F14 -FF037F15C04AB77E0207D9FC0313F8021FD9E0007F4A0180EB3FFEDAFFFEC76C7E494916 -8049496E13C0495B49496E13E0495B494916F05B90B5C87E1AF8485B485F5C5A5C5AA248 -5B605A5CA2485FA24A17F0A2B55EA24A17E0A2601AC091C9FC95B51280A21A005F615F49 -5F4D5B127F6D4B5B616C4C5B4D5B6C6D4A90C7FC4D5A6C6D495B6C4B5B6C6D010F13E06C -01F8013F5B6CD9FE01B5C8FC013FB612FC6D15F0010715C0010002FCC9FC020F13C04542 -71C055>111 D114 D E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fe cmbxti10 13.15 11 -/Fe 11 120 df97 D99 D<943801FF800403B512C05E1980A282EE000F1900A25FA260A2173FA260 -A2177FA260A217FFA260A25EEDFFC1020701F15B023F13FD91B7FC4913E00107D9003F5B -49487F49487F495A49486D5B495A485D5C4894C7FC5A4A5B5A91C75B5A163FA248485DA2 -167F127F495DA216FF12FF495DA25D181E49EDE03FA24B5C187E17C0A2007F5F5D4B1380 -003F4AEB81F85D6C6C49EB83F06C6C48B55B2707FE0FFC13CF6CB539F07FFFC06C4A6C5B -6C6CD9800F90C7FC903A0FFC0003FC3A4D75CB41>III104 D<15F8EC03FC4A7E4A7EA25CA35DA2 -5D6E5AEC03E091C8FCAEEB07F8EB1FFEEB7FFF90B57E3901FC7FC0D803F07FEA07E0D80F -C07FA2381F80FFA2485A5B007E5CA25B00FE5C485A007C5C12005B92C7FCA25B5C133F5C -A2137F5CA213FFECF00F48EC1F8014E0153F48150014C05D48147E14805D14816CEB01F8 -4A5A4A5A6CEB1FC06CEBFF806D90C7FC6D5AEB07F0214E78CC27>I108 D<913801FFC0021F13F8027F13FE91B6FC4901001380D903FC -EB3FC0D907F0130F010FEC3FE04948137F4A13FF133FA2017F4913C0A26F138017006E13 -7E02FC90C7FCECFFC015FE6F7E16E06D80826D807F6D80010180EB003F1403EC003FD803 -C0130FD80FE01303EA3FF0486C7FA200FF5DA34B5A5B49495A495C49130F6CC7485AD83F -C0EB7FC03A1FF803FF806CB548C7FC6C14F8000114E026001FFEC8FC2B3377B135>115 -DI119 -D E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Ff cmbx12 13.14 13 -/Ff 13 117 df<923803FFE092B512FC020714FF021F81027F9038007FC0DAFFF0EB0FE0 -010301C0804990C7EA3FF84948147F4A81494814FF495AA2137F5CA2715A715A715AEF07 -8094C8FCA8EF07FCB9FCA526007FF0C7123F171FB3B3003FB5D8E00FB512F8A53D4D7ECC -44>12 D46 D85 D97 D100 DII< -EB7FC0B5FCA512037EB3A2923801FFC0030F13F8033F13FE4B7F9126C1FE077F9126C3F0 -037F9138C7C001DACF8080150002DE7F02FC81A25CA25CA35CB3A9B6D8C07FEBFFE0A53B -4C7BCB44>104 D108 -D<903A7FC001FFC0B5010F13F8033F13FE4B7F9126C1FE077F9126C3F0037F00039038C7 -C0016CD9CF8080150002DE7F02FC81A25CA25CA35CB3A9B6D8C07FEBFFE0A53B317BB044 ->110 D<913807FF80027F13F80103B6FC010F15C090261FFE017F903A7FF0003FF8D9FF -C0EB0FFC48496D7E4890C76C7E4817804980000F17C048486E13E0A2003F17F049157FA2 -007F17F8A400FF17FCAB007F17F8A36C6CEDFFF0A3001F17E06D5C000F17C06C6C4A1380 -6C17006C6D495A6C01E0EB1FFC6D6C495A903A3FFE01FFF0010FB612C0010392C7FCD900 -7F13F80207138036337DB13D>I<90390FFF8070017FEBF1F048B6FC1207380FFC01391F -E0003F4848130F491307127F90C712035A1501A27FA213E06D90C7FC13FE387FFFF0ECFF -C015F06C14FC6C14FF6C15806C15C06C15E0C615F0013F14F8010714FCEB007F14019138 -003FFE150F0078140700F81403A26C1401A37E16FC6C14036D14F87F6DEB07F001F8EB1F -E001FFEBFFC091B51280D8FC7F1400D8F81F13FCD8E00313C027337CB130>115 -D<14F8A61301A41303A21307A2130FA2131F133F137F13FF1203000F90B512F0B7FCA426 -007FF8C7FCB3A6167CAA013F14F880A290391FFE01F0010F1303903907FF87E06DEBFFC0 -6D14806D6C1300EC0FFC26467EC430>I E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fg cmti10 10.95 35 -/Fg 35 122 df<933807FF80043F13E09338FE00F8DB01F0133EDB07E0130E4B48131F4C -137F031F14FF4BC7FCA218FE157E1878180015FE5DA31401A25DA414030103B712F0A218 -E0903A0003F000070207140F4B14C0A3171F020F15805DA2173F1800141F5D5F177EA214 -3F92C712FE5FA34A1301027EECF81CA3160302FEECF03C4A1538A21878187013014A0101 -13F018E0933800F1C0EF7F804948EC1F0094C7FCA35C1307A2001E5B127F130F00FF5BA2 -49CAFC12FEEAF81EEA703CEA7878EA1FF0EA07C0385383BF33>12 -DI40 -D<14031580A2EC01C0EC00E0A21570A215781538153CA3151EA4151FA2150FA7151FA915 -3FA2153EA3157EA2157CA215FCA215F8A21401A215F0A2140315E0A2140715C0A2EC0F80 -A2141F15005C143EA25CA25CA2495A5C1303495A5C130F49C7FC131E5B137C5B5B485A48 -5A485A48C8FC121E5A12705A5A205A7FC325>I<387FFFFCA3B5FCA21605799521>45 -D<120FEA3FC0127FA212FFA31380EA7F00123C0A0A77891C>I<15031507150F151F151E -153E157EEC01FEEC03FC1407141FEB01FF90380FFBF8EB1FC3EB0E07130015F0A2140FA2 -15E0A2141FA215C0A2143FA21580A2147FA21500A25CA25CA21301A25CA21303A25CA213 -07A25CA2130FA25CA2131FA25CEB7FE0B612F0A215E0203D77BC2E>49 -D<15FE913803FFC091380F01F091383C00F84A137C4A7F4948133F49487F4A148049C7FC -5BEB0E0C011E15C0EB1C0EEB3C06133813781370020E133FD9F00C148013E0141C021813 -7F00011600EBC0384A13FEEC600102E05B3A00E3C003F89039FF0007F0013C495A90C748 -5A5E037FC7FC15FC4A5A4A5AEC0FC04AC8FC147E14F8EB03E0495A011FC9FC133E491418 -01F0143C48481438485A1678485A48C85A120E001E4A5AD83FE0130301FF495A397C3FF0 -1FD8780FB55AD8700391C7FCD8F0015B486C6C5A6E5AEC07C02A3F79BC2E>I<157F9138 -01FFE0913807C0F091381F007C023C133C4A133E4A131F1301495A5C1307A2495AA2163F -011F143EA2167E6E137C16F8ECE00102F013F09138F803E09138FC07C090390FFE0F00EC -FFBE6D13F86D5B7F6D7F8101037F90380F9FFFD91F0F1380D97C0713C0497E48486C13E0 -3903E0007F4848133F4848131F001F140F90C7FC003E1407A2127E127CA200FC15C05AA2 -ED0F80A2ED1F00153E007C143C157C007E5C6CEB03F0391F8007C0390FE03F802607FFFE -C7FC000113F838003FC0283F78BC2E>56 D<49B712C018F818FE903B0003FC0001FF9438 -007F804BEC3FC0A2F01FE014074B15F0180FA2140F5D181FA2021F16E05D183F19C0023F -ED7F804B14FF19004D5A027F4A5A92C7EA07F0EF1FE0EF7F804AD903FEC7FC92B512F017 -FE4AC7EA3F800101ED1FE04A6E7E17078401036F7E5CA30107825CA3010F5E4A1407A260 -011F150F5C4D5A60013F153F4A4A5A4D5A017F4A90C7FC4C5A91C7EA0FF849EC3FF0B812 -C094C8FC16F83C3E7BBD40>66 D<49B77E18F018FC903B0003FE0003FEEF00FF4BEC7F80 -F03FC00207151F19E05DA2020F16F0A25DA2141FF03FE05DA2023F16C0187F4B1580A202 -7FEDFF00604B495A4D5A02FF4A5A4D5A92C7EA3FC04CB4C7FC4990B512FC17E04ACAFCA2 -1303A25CA21307A25CA2130FA25CA2131FA25CA2133FA25CA2137FA25C497EB67EA33C3E -7BBD3E>80 D<92391FE00380ED7FFC913A01FFFE0700913907F01F8F91390FC007DF4AC6 -6CB4FC023E6D5A4A130014FC495A4948147CA2495AA2010F15785CA3011F1570A46E91C7 -FCA2808014FE90380FFFE015FC6DEBFF8016E06D806D806D6C7F141F02037FEC003FED07 -FF1501A281A282A212075A167E120EA2001E15FE5EA25E003E14015E003F14034B5A486C -5C150F6D495A6D49C8FCD8F9F0137C39F8FE01F839F03FFFF0D8E00F13C026C001FEC9FC -314279BF33>83 D<277FFFFE01B500FC90B512E0B5FCA20003902680000790C7380FFC00 -6C90C701FCEC07F049725A04035EA26350C7FCA20407150EA2040F5D1A3C041F15386216 -3B6216734F5A6D14E303014B5A6C15C303034BC8FC1683DB0703140E191E030E151C6103 -1C7F61ED380161157003F04A5A15E002014B5A15C0DA03804AC9FC60DA0700140E60140E -605C029C5D14B8D97FF85D5C715A5C4A5DA24A92CAFC5F91C7FC705A137E5F137C5F1378 -01705D53406EBD5B>87 D<147E49B47E903907C1C38090391F80EFC090383F00FF017E13 -7F4914804848133F485AA248481400120F5B001F5C157E485AA215FE007F5C90C7FCA214 -01485C5AA21403EDF0385AA21407EDE078020F1370127C021F13F0007E013F13E0003E13 -7FECF3E1261F01E313C03A0F8781E3803A03FF00FF00D800FC133E252977A72E>97 -DIIII<167C4BB4FC923807C78092380F83C0ED1F87161FED3F3FA2157EA21780EE0E004B -C7FCA414015DA414035DA30103B512F8A390260007E0C7FCA3140F5DA5141F5DA4143F92 -C8FCA45C147EA414FE5CA413015CA4495AA4495AA4495A121E127F5C12FF49C9FCA2EAFE -1EEAF83C1270EA7878EA3FE0EA0F802A5383BF1C>III<1478EB01FCA21303A314F8EB00E01400AD137C48 -B4FC38038F80EA0707000E13C0121E121CEA3C0F1238A2EA781F00701380A2EAF03F1400 -12005B137E13FE5BA212015BA212035B1438120713E0000F1378EBC070A214F0EB80E0A2 -EB81C01383148038078700EA03FEEA00F8163E79BC1C>I108 -DIII<903903E001F890390FF807FE903A1E7C1E0F80903A1C3E3C07C001 -3C137801389038E003E0EB783F017001C013F0ED80019038F07F0001E015F8147E160300 -0113FEA2C75AA20101140717F05CA20103140F17E05CA20107EC1FC0A24A1480163F010F -15005E167E5E131F4B5A6E485A4B5A90393FB80F80DA9C1FC7FCEC0FFCEC03E049C9FCA2 -137EA213FEA25BA21201A25BA21203A2387FFFE0B5FCA22D3A80A72E>I114 DII<137C48B4141C26038F80137EEA0707000E7F001E15FE -121CD83C0F5C12381501EA781F007001805BA2D8F03F1303140000005D5B017E1307A201 -FE5C5B150F1201495CA2151F0003EDC1C0491481A2153F1683EE0380A2ED7F07000102FF -13005C01F8EBDF0F00009038079F0E90397C0F0F1C90391FFC07F8903907F001F02A2979 -A731>I<017CEB01C048B4EB07F038038F80EA0707000E01C013F8121E001C1403EA3C0F -0038EC01F0A2D8781F130000705BA2EAF03F91C712E012005B017E130116C013FE5B1503 -000115805BA2ED07001203495B150EA25DA25D1578000114706D5B0000495A6D485AD97E -0FC7FCEB1FFEEB03F0252979A72A>I<017C167048B491387001FC3A038F8001F8EA0707 -000E01C015FE001E1403001CEDF000EA3C0F0038177C1507D8781F4A133C00701380A2D8 -F03F130F020049133812005B017E011F14784C137013FE5B033F14F0000192C712E05BA2 -170100034A14C049137E17031880A2EF070015FE170E00010101141E01F86D131C0000D9 -039F5BD9FC076D5A903A3E0F07C1E0903A1FFC03FFC0902703F0007FC7FC372979A73C> -I<903903F001F890390FFC07FE90393C1E0E0F9026780F1C138001F0EBB83FD801E013F8 -9039C007F07FEA0380000714E0D9000F140048151C000E4AC7FCA2001E131FA2C75BA214 -3F92C8FCA35C147EA314FE4A131CA30101143C001E1538003F491378D87F811470018314 -F000FF5D9039077801C039FE0F7C033A7C0E3C078027783C1E1EC7FC391FF80FFC3907E0 -03F029297CA72A>I<137C48B4143826038F8013FCEA0707000E7F001E1401001C15F8EA -3C0F12381503D8781F14F000701380A2D8F03F1307020013E012005B017E130F16C013FE -5B151F1201491480A2153F000315005BA25D157EA315FE5D00011301EBF8030000130790 -387C1FF8EB3FF9EB07E1EB00035DA21407000E5CEA3F80007F495AA24A5AD8FF0090C7FC -143E007C137E00705B387801F0383803E0381E0FC06CB4C8FCEA03F8263B79A72C>I -E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fh cmsl10 10.95 33 -/Fh 33 122 df<007FB5FCA2B512FEA418067C961E>45 D<157015F014011407143F9038 -03FFE0137FEBFFCFEBF80F1300141F15C0A5143F1580A5147F1500A55C5CA513015CA513 -035CA513075CA5130F5CA3131F497EB612F8A31D3D78BC2D>49 DII<01061403D90780131F90390FF801FE91B512FC16F816F016E0168049EB -FE0015F890381C7FC091C8FCA3133C1338A513781370A2EC1FE0ECFFF8903873E03E9038 -FF001F01FCEB0F804914C049EB07E04914F049130390C7FC16F8A61507A21206EA3F8048 -7EA2150F00FF15F0A24914E090C7121F00FC15C000F0143F00701580ED7F0012786C14FE -4A5A6C495A390F800FE03907E03FC06CB5C7FCC613FCEB1FE0283F7ABC2D>53 -D56 DI<17E016011603831607A2160FA2161F83163FA2167F167716F7EEE7FCED -01E316C3150316831507EE03FEED0F01150E151E151C153C03387FED7800157015F05D4A -4880177F4A5AA24AC7FCA2020E81173F5C021FB6FC5CA20270C7EA3FE0171F5CA2495AA2 -494881170F49C8FCA2130EA24982013C1507A2137CD801FE4B7E2607FF80EC3FFEB500F0 -0107B512FC19F85E3E417DC044>65 D<013FB7FC18E018FC903B007FE00007FE6E489038 -01FF809438007FC05DF03FE0F01FF0A3027F16F892C8FCA54A16F04A153F19E0187F19C0 -F0FF8001014B13004A4A5A4D5AEF1FF04D5ADC03FFC7FC49B612F8EFFF8002F8C7EA3FE0 -EF0FF0EF07FC717E010715014A81711380A319C0130F5CA5011F4B13805C19005F601707 -013F4B5A4A4A5A4D5A4D5A017F913801FF8001FF020F90C7FCB812FC17F094C8FC3D3E7D -BD40>II<013FB812F8A39026007F -F0C7127F6E48140F18034B14011800A31978147F4B1570A502FF147092C7FCA3190017F0 -495D4A1301A21607161F91B6FC495DA29138FC003F160F1607160301075D5CA219E01801 -19C0010FEC07004A90C712031980A218071900011F5E5C181EA2183E183C013F167C4A15 -FC4D5A1707017F151F01FF4AB45AB9FCA2603D3E7DBD3E>69 D<011FB512FC5BA2903900 -3FF8006E5AA25DA5143F5DA5147F5DA514FF92C7FCA55B5CA513035CA513075CA5130F5C -A5131F5CA3133F497E007FB512F0A2B6FC263E7EBD21>73 D<90263FFFF093381FFFF850 -13F0629026007FF8EFF000023F4D5AA2023B933801DFC0A2DA39FCED039FA2F1073F1479 -0271040E5BEC70FE191C19381A7F02F01670DAE07F94C7FC19E0A2F001C06201016D6C49 -5A02C05FF00700A2180E6F6C14010103161C028003385BA218706F7EF0E00313070200DA -01C05BA2923907F00380A294380700075B010E902603F80E5C5FA25F190F011E6D6C5A01 -1C605FA2EEFDC0DB00FF141F013C5D013860013C92C7FC017C5C01FE027E143F2607FF80 -017C4A7EB500FC037FB512E004785E4A1338553E7CBD53>77 D<90263FFFE0023FB5FC6F -16FEA29026003FF8020313C0021F030013004A6C157C023B163C6F153814398102381678 -02787FDA707F157082153F82031F15F002F07FDAE00F5D8215078203031401010180DAC0 -015D82811780047F1303010315C04A013F5C17E0161F17F0040F1307010715F891C70007 -91C7FC17FC160317FE04015B4915FF010E6E130E188E177F18CEEF3FDE011E16FE011C6F -5AA2170FA21707133C01386F5A133C017C150113FE2607FF801400B512FC18705C483E7D -BD44>I<013FB612FEEFFFE018F8903B007FF0000FFC6E48EB01FF7113804BEC7FC0183F -19E0F01FF0A2147F5D19F8A402FFED3FF092C8FCA219E0A2F07FC05B4AEDFF8019004D5A -4D5AEF0FF80103ED3FE04A903801FF8091B648C7FC17F002FCCAFCA213075CA5130F5CA5 -131F5CA5133F5CA3137F497EB612E0A25D3D3E7DBD3E>80 D<9238FF80070207EBE00F02 -1FEBF81E91387F00FE02FCEB1F3ED903F0EB0FFE49481307494813034AEB01FC49C7FC49 -1400133E137E177C491578A57F1770A26D1500808080EB7FFEECFFE06D13FEEDFFC06D14 -F06D14FC010380010080143F02031480DA003F13C015031500EE7FE0163F161FA2160F12 -1CA31607160F003C16C0A31780003E151F1700007E5D007F153E6D5C16FC01E0495AD87D -F0495AD8FCFCEB0FC03AF87F803F8027F01FFFFEC7FCD8E00713F839C0007FC030427BBF -33>83 D85 D97 DIIIII<1478EB01FE130314FFA25B14FE130314FCEB00F0 -1400ACEB03F8EA01FF14F0A2EA001F130FA314E0A5131F14C0A5133F1480A5137F1400A5 -5B5BA4EA03FF007F13F0A2B5FC183E7DBD1A>105 D<143FEB1FFF5BA213017FA214FEA5 -130114FCA5130314F8A5130714F0A5130F14E0A5131F14C0A5133F1480A5137F1400A55B -5BA4EA03FF007F13F8A2B5FC183F7DBE1A>108 D<903907F007F8D803FFEB1FFF9139E0 -781FC09138E1E00F3B001FE38007E090380FE70002EE14F014FC14D814F85CA24A130F13 -1F4A14E0A4161F133F4A14C0A4163F137F91C71380A4167F5B491500A300015D486C4913 -80B5D8F87F13FCA32E287DA733>110 DI<903907F01F80D803 -FFEB7FE09138E1E1F09138E387F839001FE707EB0FE614EE02FC13F002D813E09138F801 -804AC7FCA25C131FA25CA4133F5CA5137F91C8FCA55B5BA31201487EB512FEA325287EA7 -24>114 D<9138FF81C0010713E390381F807F90397C003F8049131F4848130F5B000314 -07A248481400A27FA27F6D90C7FCEBFF8014FC6C13FF6C14C015F06C6C7F011F7F130790 -38007FFE1403140100381300157EA2123C153E157E007C147CA2007E147815F8007F495A -4A5A486C485A26F9E01FC7FC38E0FFFC38C01FE0222A7DA824>II118 -DI<90B539E007 -FFF05E18E0902707FE000313006D48EB01FC705A5F01014A5A5F16036E5C0100140794C7 -FC160E805E805E1678ED8070023F13F05EED81C015C191381FC38015C793C8FC15EF15EE -EC0FFCA25DA26E5AA25DA26E5A5DA24AC9FC5C140E141E141C5C121C003F5B5A485B495A -130300FE5B4848CAFCEA701EEA783CEA3FF0EA0FC0343A80A630>121 -D E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fi cmbx12 17.28 43 -/Fi 43 122 df46 D<16F04B7E1507151F153FEC01FF1407 -147F010FB5FCB7FCA41487EBF007C7FCB3B3B3B3007FB91280A6395E74DD51>49 -D<913801FFF8021FEBFFC091B612F8010315FF010F16C0013F8290267FFC0114F89027FF -E0003F7F4890C7000F7F48486E7FD807F86E148048486E14C048486E14E048486F13F001 -FC17F8486C816D17FC6E80B56C16FE8380A219FFA283A36C5BA26C5B6C90C8FCD807FC5D -EA01F0CA14FEA34D13FCA219F85F19F04D13E0A294B512C019804C14004C5B604C5B4C5B -604C13804C90C7FC4C5A4C5A4B13F05F4B13804B90C8FC4B5AED1FF84B5A4B5A4B48143F -4A5B4A48C8FC4A5A4A48157E4A5A4A5AEC7F8092C9FC02FE16FE495A495A4948ED01FCD9 -0FC0150749B8FC5B5B90B9FC5A4818F85A5A5A5A5ABAFCA219F0A4405E78DD51>I<92B5 -FC020F14F8023F14FF49B712C04916F0010FD9C01F13FC90271FFC00077FD93FE001017F -49486D8049C86C7F484883486C6F7F14C0486D826E806E82487FA4805CA36C5E4A5E6C5B -6C5B6C495E011FC85A90C95CA294B55A614C91C7FC604C5B4C5B4C5B4C5B047F13809226 -0FFFFEC8FC020FB512F817E094C9FC17F817FF91C7003F13E0040713F8040113FE707F71 -7F7113E085717FA2717F85A285831A80A31AC0EA03FCEA0FFF487F487F487FA2B57EA31A -80A34D14005C7E4A5E5F6C495E49C8485BD81FF85F000F5ED807FE92B55A6C6C6C491480 -6C01F0010791C7FC6C9026FF803F5B6D90B65A011F16F0010716C001014BC8FCD9001F14 -F0020149C9FC426079DD51>II<01C0EE01C0D801F8160F01FF167F02F0EC07FFDAFF8090B5FC92B712 -8019006060606060606095C7FC17FC5F17E0178004FCC8FC16E09026FC3FFCC9FC91CBFC -ADED3FFE0203B512F0020F14FE023F6E7E91B712E001FDD9E00F7F9027FFFE00037F02F8 -01007F02E06EB4FC02806E138091C8FC496F13C04917E07113F0EA00F090C914F8A219FC -83A219FEA419FFA3EA03F0EA0FFC487E487E487FA2B57EA319FEA35C4D13FC6C90C8FC5B -4917F8EA3FF001804B13F06D17E0001F5E6C6C17C06D4B1380D807FC92B512006C6C4A5B -6C6C6C01075B6C01E0011F5BD97FFE90B55A6DB712C0010F93C7FC6D15FC010115F0D900 -3F1480020301F0C8FC406078DD51>III<92383FFF800203B512FC021FECFF80027F -15E049B712F849D9F0077F010F90C76C7ED91FFCEC1FFFD93FF06E7F494802037F494882 -717F484980854890C9127FA24884183FA25A80A380806E157F6E5E14FE6E7E6F4A5A6C14 -F003FC495B03FF495B6C1580DCE0075B6CDBF80F90C7FC9338FE1FFE6C9238FF7FF84D5A -6D16C06D5E6D4BC8FC6D6F7E6D16E00101826D16FC023F814A8149B87E01078349839026 -3FFE3F8190267FFC0F819026FFF003814849C6FC48496D804849131F4890C70007801601 -48486E1580003F163F49150F007F7014C0491501717E8400FF835B8484A384A21A80A27F -007F1900607F003F606D160F001F606D4C5A6C6D153F6C6D4B5A6C01F04B5A6C01FC0203 -5B6C01FF021F5B6D9027F001FFFEC7FC6D90B65A010F16F001035E010093C8FC020F14F8 -DA007F90C9FC426079DD51>I66 D<4DB5ED03C0057F02F01407 -0407B600FE140F047FDBFFC0131F4BB800F0133F030F05FC137F033F9127F8007FFE13FF -92B6C73807FF814A02F0020113C3020702C09138007FE74A91C9001FB5FC023F01FC1607 -4A01F08291B54882490280824991CB7E49498449498449498449865D49498490B5FC484A -84A2484A84A24891CD127FA25A4A1A3F5AA348491A1FA44899C7FCA25CA3B5FCB07EA380 -A27EA2F50FC0A26C7FA37E6E1A1F6C1D80A26C801D3F6C6E1A00A26C6E616D1BFE6D7F6F -4E5A7F6D6D4E5A6D6D4E5A6D6D4E5A6D6E171F6D02E04D5A6E6DEFFF806E01FC4C90C7FC -020F01FFEE07FE6E02C0ED1FF8020102F8ED7FF06E02FF913803FFE0033F02F8013F1380 -030F91B648C8FC030117F86F6C16E004071680DC007F02F8C9FC050191CAFC626677E375 ->IIII73 D76 D<94381FFFE00407B67E043F15F04BB712FE030F -EEFFC0033FD9FC0014F092B500C0010F13FC020349C7000113FF4A01F86E6C7F021F496F -13E04A01C0030F7F4A496F7F91B5C96C7F0103497013FF494970804B834949717F498749 -49717F49874B8390B586484A717FA24891CB6C7FA2481D804A84481DC0A348497214E0A3 -481DF0A34A85481DF8A5B51CFCB06C1DF8A36E96B5FCA36C1DF0A46C6D4E14E0A36C1DC0 -6E606C1D80A26C6E4D1400A26C6E4D5BA26C6E4D5BA26D6D4D5B6D636D6D4D5B6F94B5FC -6D636D6D4C5C6D6D4C91C7FC6D6E4B5B6D02E0031F5B023F6D4B13F06E01FC92B55A6E01 -FF02035C020302C0010F91C8FC020002FC90B512FC033F90B712F0030F17C0030394C9FC -DB007F15F804071580DC001F01E0CAFC666677E379>79 DI83 D<001FBEFCA64849C79126E0000F -148002E0180091C8171F498601F81A0349864986A2491B7FA2491B3F007F1DC090C9181F -A4007E1C0FA600FE1DE0481C07A5CA95C7FCB3B3B3A3021FBAFCA663617AE070>II<913803FFFE027FEBFF -F00103B612FE010F6F7E4916E090273FFE001F7FD97FE001077FD9FFF801017F486D6D7F -717E486D6E7F85717FA2717FA36C496E7FA26C5B6D5AEB1FC090C9FCA74BB6FC157F0207 -B7FC147F49B61207010F14C0013FEBFE004913F048B512C04891C7FC485B4813F85A5C48 -5B5A5CA2B55AA45FA25F806C5E806C047D7F6EEB01F96C6DD903F1EBFF806C01FED90FE1 -14FF6C9027FFC07FC01580000191B5487E6C6C4B7E011F02FC130F010302F001011400D9 -001F90CBFC49437CC14E>97 D<903807FF80B6FCA6C6FC7F7FB3A8EFFFF8040FEBFF8004 -7F14F00381B612FC038715FF038F010014C0DBBFF0011F7FDBFFC001077F93C76C7F4B02 -007F03F8824B6F7E4B6F13804B17C0851BE0A27313F0A21BF8A37313FCA41BFEAE1BFCA4 -4F13F8A31BF0A24F13E0A24F13C06F17804F1300816F4B5A6F4A5B4AB402075B4A6C6C49 -5B9126F83FE0013F13C09127F00FFC03B55A4A6CB648C7FCDAC00115F84A6C15E091C700 -1F91C8FC90C8000313E04F657BE35A>I<92380FFFF04AB67E020F15F0023F15FC91B77E -01039039FE001FFF4901F8010113804901E0010713C04901804913E0017F90C7FC49484A -13F0A2485B485B5A5C5A7113E0485B7113C048701380943800FE0095C7FC485BA4B5FCAE -7EA280A27EA2806C18FCA26C6D150119F87E6C6D15036EED07F06C18E06C6D150F6D6DEC -1FC06D01E0EC7F806D6DECFF00010701FCEB03FE6D9039FFC03FFC010091B512F0023F5D -020F1580020102FCC7FCDA000F13C03E437BC148>II<92380FFFC04AB512FC020FECFF8002 -3F15E091B712F80103D9FE037F499039F0007FFF011F01C0011F7F49496D7F4990C76C7F -49486E7F48498048844A804884485B727E5A5C48717EA35A5C721380A2B5FCA391B9FCA4 -1A0002C0CBFCA67EA380A27EA27E6E160FF11F806C183F6C7FF17F006C7F6C6D16FE6C17 -016D6C4B5A6D6D4A5A6D01E04A5A6D6DEC3FE0010301FC49B45A6D9026FFC01F90C7FC6D -6C90B55A021F15F8020715E0020092C8FC030713F041437CC14A>III<903807FF80B6FCA6C6FC7F7FB3A8EF1FFF94B512F0040714FC041F14FF4C8193267F -E07F7F922781FE001F7FDB83F86D7FDB87F07FDB8FC0814C7F039FC78015BE03BC8003FC -825DA25DA25DA45DB3B2B7D8F007B71280A651647BE35A>II<903807FF80B6FCA6C6FC7F7FB3B3B3B3 -ADB712E0A623647BE32C>108 D<902607FF80D91FFFEEFFF8B691B500F00207EBFF8004 -0702FC023F14E0041F02FF91B612F84C6F488193267FE07F6D4801037F922781FE001F90 -27E00FF0007FC6DA83F86D9026F01FC06D7F6DD987F06D4A487F6DD98FC0DBF87EC7804C -6D027C80039FC76E488203BEEEFDF003BC6E4A8003FC04FF834B5FA24B5FA24B94C8FCA4 -4B5EB3B2B7D8F007B7D8803FB612FCA67E417BC087>I<902607FF80EB1FFFB691B512F0 -040714FC041F14FF4C8193267FE07F7F922781FE001F7FC6DA83F86D7F6DD987F07F6DD9 -8FC0814C7F039FC78015BE03BC8003FC825DA25DA25DA45DB3B2B7D8F007B71280A65141 -7BC05A>I<923807FFE092B6FC020715E0021F15F8027F15FE494848C66C6C7E010701F0 -010F13E04901C001037F49496D7F4990C87F49486F7E49486F7E48496F13804819C04A81 -4819E048496F13F0A24819F8A348496F13FCA34819FEA4B518FFAD6C19FEA46C6D4B13FC -A36C19F8A26C6D4B13F0A26C19E06C6D4B13C0A26C6D4B13806C6D4B13006D6C4B5A6D6D -495B6D6D495B010701F0010F13E06D01FE017F5B010090B7C7FC023F15FC020715E00200 -92C8FC030713E048437CC151>I<902607FF80EBFFF8B6010FEBFF80047F14F00381B612 -FC038715FF038F010114C09227BFF0003F7FC6DAFFC0010F7F6D91C76C7F6D496E7F03F8 -6E7F4B6E7F4B17804B6F13C0A27313E0A27313F0A21BF885A21BFCA3851BFEAE4F13FCA4 -1BF861A21BF0611BE0611BC06F92B512801B006F5C6F4A5B6F4A5B03FF4A5B70495B04E0 -017F13C09226CFFC03B55A03C7B648C7FC03C115F803C015E0041F91C8FC040313E093CB -FCB3A3B712F0A64F5D7BC05A>I114 -D<913A3FFF8007800107B5EAF81F011FECFE7F017F91B5FC48B8FC48EBE0014890C7121F -D80FFC1407D81FF0801600485A007F167F49153FA212FF171FA27F7F7F6D92C7FC13FF14 -E014FF6C14F8EDFFC06C15FC16FF6C16C06C16F06C826C826C826C82013F1680010F16C0 -1303D9007F15E0020315F0EC001F1500041F13F81607007C150100FC81177F6C163FA217 -1F7EA26D16F0A27F173F6D16E06D157F6D16C001FEEDFF806D0203130002C0EB0FFE02FC -EB7FFC01DFB65A010F5DD8FE0315C026F8007F49C7FC48010F13E035437BC140>II<902607FFC0ED3F -FEB60207B5FCA6C6EE00076D826D82B3B3A260A360A2607F60183E6D6D147E4E7F6D6D49 -48806D6DD907F0ECFF806D01FFEB3FE06D91B55A6E1500021F5C020314F8DA003F018002 -F0C7FC51427BC05A>III<007FB600C0017FB512F8A6 -D8001F01F8C70007EBF0006D040190C7FC6D6D5D6D6D4A5A6D6D4A5A70495A6D4C5A6E7F -6E6D495A6E6D495A7049C8FC6E4A5A6E6D485A6E6D485A6E13FFEF8FF06EEC9FE06FEBFF -C06F5C6F91C9FC5F6F5B816F7F6F7F8481707F8493B57E4B805D4B80DB0FF37FDB1FE17F -04C080153F4B486C7F4B486C7F4A486D7F4A486D7F4A5A4B6D7F020F6E7F4A486D7F4A48 -6D804A5A4AC86C7F49486F7F4A6F7F0107707FEB3FFFB600F049B7FCA650407EBF55>I< -B700C00103B512FCA6D8003F01C0C8381FFE006FED07F0A26D6D5E190F6D6D5E191F6D6D -5E193F6D95C7FC6F5D6D177E6F15FEA26D6E495AA26E6D5C18036E6D5C18076E5E70130F -6E5E70131FA26E6D495AA26E6D91C8FC606E6D137E18FE6E5D17816F5C17C3A26FEBE7F0 -A26FEBF7E017FF6F5CA26F5CA26F91C9FCA36F5BA26F5BA2705AA2705AA2705AA35FA25F -163F94CAFC5E167E16FED807E05CD81FF81301487E486C495AA2B5495AA24B5A5E151F4B -5A6C4849CBFC15FEEBFC01393FF807FC391FF03FF06CB55A6C5C6C91CCFCC613FCEB1FE0 -4E5D7DBF55>I E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fj cmtt10 10.95 76 -/Fj 76 126 df<00101304007C131F00FEEB3F80A26C137FA248133FB2007E1400007C7F -003C131E00101304191C75B830>34 D37 D<141E147F14FF5BEB03FEEB07FCEB0FF0EB1FE0EB3FC0 -EB7F80EBFF00485A5B12035B485A120F5BA2485AA2123F5BA2127F90C7FCA412FEAD127F -A47F123FA27F121FA26C7EA27F12076C7E7F12017F6C7EEB7F80EB3FC0EB1FE0EB0FF0EB -07FCEB03FEEB01FF7F147F141E184771BE30>40 D<127812FE7E7F6C7E6C7EEA0FF06C7E -6C7E6C7E6C7EEB7F80133F14C0131FEB0FE014F01307A2EB03F8A214FC1301A214FE1300 -A4147FAD14FEA4130114FCA2130314F8A2EB07F0A2130F14E0EB1FC0133F1480137FEBFF -00485A485A485A485AEA3FE0485A485A90C7FC5A1278184778BE30>I<14E0497E497EA6 -0038EC0380007EEC0FC0D8FF83EB3FE001C3137F9038F3F9FF267FFBFB13C06CB6128000 -0FECFE00000314F86C5C6C6C13C0011F90C7FC017F13C048B512F04880000F14FE003FEC -FF80267FFBFB13C026FFF3F913E09038C3F87F0183133FD87E03EB0FC00038EC03800000 -91C7FCA66D5A6D5A23277AAE30>I<143EA2147FAF007FB7FCA2B81280A36C1600A2C76C -C8FCAF143EA229297DAF30>II<007FB612F0A2B712F8A36C15F0A225077B9E30>I<120FEA3FC0EA7FE0A2EAFFF0A4EA -7FE0A2EA3FC0EA0F000C0C6E8B30>I<16F01501ED03F8A21507A2ED0FF0A2ED1FE0A2ED -3FC0A2ED7F80A2EDFF00A24A5AA25D1403A24A5AA24A5AA24A5AA24A5AA24A5AA24AC7FC -A2495AA25C1303A2495AA2495AA2495AA2495AA2495AA249C8FCA2485AA25B1203A2485A -A2485AA2485AA2485AA2485AA248C9FCA25AA2127CA225477BBE30>I<14FE903807FFC0 -497F013F13F8497F90B57E48EB83FF4848C6138049137F4848EB3FC04848EB1FE049130F -001F15F0491307A24848EB03F8A290C712014815FCA400FEEC00FEAD6C14016C15FCA36D -1303003F15F8A26D1307001F15F0A26D130F6C6CEB1FE0A26C6CEB3FC06C6CEB7F806D13 -FF2601FF8313006CEBFFFE6D5B6D5B010F13E06D5BD900FEC7FC273A7CB830>IIIII<000FB612804815C05AA316800180C8FCAEEB -83FF019F13C090B512F015FC8181D9FE0313809039F0007FC049133F0180EB1FE06CC712 -0F000E15F0C81207A216F81503A31218127EA2B4FC150716F048140F6C15E06C141F6DEB -3FC06D137F3A3FE001FF80261FFC0F13006CB55A6C5C6C5C6C14E06C6C1380D90FFCC7FC -25397BB730>II<127CB712FC16FEA416FC48C7EA0FF816F0ED1FE0007CEC3FC0 -C8EA7F80EDFF00A24A5A4A5A5D14075D140F5D4A5AA24A5AA24AC7FCA25C5C13015CA213 -035CA213075CA4495AA6131F5CA96D5A6DC8FC273A7CB830>I<49B4FC011F13F0017F13 -FC90B57E0003ECFF804815C048010113E03A1FF8003FF049131FD83FC0EB07F8A24848EB -03FC90C71201A56D1303003F15F86D13076C6CEB0FF06C6CEB1FE0D807FCEB7FC03A03FF -83FF806C90B512006C6C13FC011F13F0497F90B512FE48802607FE0013C0D80FF8EB3FE0 -D81FE0EB0FF04848EB07F8491303007F15FC90C712014815FE481400A66C14016C15FC6D -1303003F15F86D1307D81FF0EB1FF06D133F3A0FFF01FFE06C90B512C06C1580C6ECFE00 -6D5B011F13F0010190C7FC273A7CB830>I<49B4FC010F13E0013F13F890B57E48804880 -48010113803A0FFC007FC0D81FF0EB3FE04848131F49EB0FF048481307A290C7EA03F85A -4815FC1501A416FEA37E7E6D1303A26C6C13076C6C130F6D133FD80FFC13FF6CB6FC7E6C -14FE6C14F9013FEBE1FC010F138190380060011400ED03F8A2150716F0150F000F15E048 -6C131F486CEB3FC0157FEDFF804A1300EC07FE391FF01FFC90B55A6C5C6C5C6C1480C649 -C7FCEB3FF0273A7CB830>I<120FEA3FC0EA7FE0A2EAFFF0A4EA7FE0A2EA3FC0EA0F00C7 -FCAF120FEA3FC0EA7FE0A2EAFFF0A4EA7FE0A2EA3FC0EA0F000C276EA630>II<16F01503ED07F8151F157FEDFFF014034A13C0021F138091383F -FE00ECFFF8495B010713C0495BD93FFEC7FC495A3801FFF0485B000F13804890C8FCEA7F -FC5BEAFFE05B7FEA7FF87FEA1FFF6C7F000313E06C7F38007FFC6D7E90380FFF806D7F01 -0113F06D7FEC3FFE91381FFF80020713C06E13F01400ED7FF8151F1507ED03F01500252F -7BB230>I<1278127EB4FC13C07FEA7FF813FEEA1FFF6C13C000037F6C13F86C6C7EEB1F -FF6D7F010313E06D7F9038007FFC6E7E91380FFF806E13C0020113F080ED3FF8151F153F -EDFFF05C020713C04A138091383FFE004A5A903801FFF0495B010F13804990C7FCEB7FFC -48485A4813E0000F5B4890C8FCEA7FFE13F8EAFFE05B90C9FC127E1278252F7BB230>62 -D64 -D<147F4A7EA2497FA4497F14F7A401077F14E3A3010F7FA314C1A2011F7FA490383F80FE -A590387F007FA4498049133F90B6FCA34881A39038FC001F00038149130FA40007814913 -07A2D87FFFEB7FFFB56CB51280A46C496C130029397DB830>I<007FB512F0B612FE6F7E -82826C813A03F8001FF815076F7E1501A26F7EA615015EA24B5A1507ED1FF0ED7FE090B6 -5A5E4BC7FC6F7E16E0829039F8000FF8ED03FC6F7E1500167FA3EE3F80A6167F1700A25E -4B5A1503ED1FFC007FB6FCB75A5E16C05E6C02FCC7FC29387EB730>I<91387F803C9039 -03FFF03E49EBFC7E011F13FE49EBFFFE5B9038FFE07F48EB801F3903FE000F484813075B -48481303A2484813015B123F491300A2127F90C8FC167C16005A5AAC7E7EA2167C6D14FE -123FA27F121F6D13016C6C14FCA26C6CEB03F86D13076C6CEB0FF03901FF801F6C9038E0 -7FE06DB512C06D14806D1400010713FC6D13F09038007FC0273A7CB830>I<003FB512E0 -4814FCB67E6F7E6C816C813A03F8007FF0ED1FF8150F6F7E6F7E15016F7EA2EE7F80A216 -3F17C0161FA4EE0FE0AC161F17C0A3163F1780A2167F17005E4B5A15034B5A150F4B5AED -7FF0003FB65A485DB75A93C7FC6C14FC6C14E02B387FB730>I<007FB7FCB81280A47ED8 -03F8C7123FA8EE1F0093C7FCA4157C15FEA490B5FCA6EBF800A4157C92C8FCA5EE07C0EE -0FE0A9007FB7FCB8FCA46C16C02B387EB730>I<003FB712804816C0B8FCA27E7ED801FC -C7121FA8EE0F8093C7FCA5153E157FA490B6FCA69038FC007FA4153E92C8FCAE383FFFF8 -487FB5FCA27E6C5B2A387EB730>I<02FF13F00103EBC0F8010F13F1013F13FD4913FF90 -B6FC4813C1EC007F4848133F4848131F49130F485A491307121F5B123F491303A2127F90 -C7FC6F5A92C8FC5A5AA892B5FC4A14805CA26C7F6C6D1400ED03F8A27F003F1407A27F12 -1F6D130F120F7F6C6C131FA2D803FE133F6C6C137FECC1FF6C90B5FC7F6D13FB010F13F3 -0103EBC1F0010090C8FC293A7DB830>I<3B3FFF800FFFE0486D4813F0B56C4813F8A26C -496C13F06C496C13E0D803F8C7EAFE00B290B6FCA601F8C7FCB3A23B3FFF800FFFE0486D -4813F0B56C4813F8A26C496C13F06C496C13E02D387FB730>I<007FB6FCB71280A46C15 -00260007F0C7FCB3B3A8007FB6FCB71280A46C1500213879B730>I75 -D<383FFFF8487FB57EA26C5B6C5BD801FCC9FCB3B0EE0F80EE1FC0A9003FB7FC5AB8FCA2 -7E6C16802A387EB730>III<90383FFFE048B512FC000714FF4815804815C04815E0EB -F80001E0133FD87F80EB0FF0A290C71207A44815F8481403B3A96C1407A26C15F0A36D13 -0FA26D131F6C6CEB3FE001F813FF90B6FC6C15C06C15806C1500000114FCD8003F13E025 -3A7BB830>I<007FB512F0B612FE6F7E16E0826C813903F8003FED0FFCED03FE15016F7E -A2821780163FA6167F17005EA24B5A1503ED0FFCED3FF890B6FC5E5E16804BC7FC15F001 -F8C9FCB0387FFFC0B57EA46C5B29387EB730>I<003FB57E4814F0B612FC15FF6C816C81 -2603F8017F9138003FF0151F6F7E15071503821501A515035E1507150F4B5A153F4AB45A -90B65A5E93C7FC5D8182D9F8007FED3FE0151F150F821507A817F8EEF1FCA53A3FFF8003 -FB4801C0EBFFF8B56C7E17F06C496C13E06C49EB7FC0C9EA1F002E397FB730>82 -D<90390FF803C0D97FFF13E048B512C74814F74814FF5A381FF80F383FE001497E484813 -7F90C7123F5A48141FA2150FA37EED07C06C91C7FC7F7FEA3FF0EA1FFEEBFFF06C13FF6C -14E0000114F86C80011F13FF01031480D9003F13C014019138007FE0151FED0FF0A2ED07 -F8A2007C140312FEA56C140716F07F6DEB0FE06D131F01F8EB3FC001FF13FF91B5128016 -0000FD5CD8FC7F13F8D8F81F5BD878011380253A7BB830>I<003FB712C04816E0B8FCA4 -3AFE003F800FA8007CED07C0C791C7FCB3B1011FB5FC4980A46D91C7FC2B387EB730>I< -3B7FFFC007FFFCB56C4813FEA46C496C13FCD803F8C7EA3F80B3B16D147F00011600A36C -6C14FE6D13016D5CEC800390393FE00FF890391FF83FF06DB55A6D5C6D5C6D91C7FC9038 -007FFCEC1FF02F3980B730>III<3A3FFF01FFF84801837F02C77FA202835B6C01015B3A01FC007F806D91C7FC00 -005C6D5BEB7F01EC81FCEB3F8314C3011F5B14E7010F5B14FF6D5BA26D5BA26D5BA26D90 -C8FCA4497FA2497FA2815B81EB0FE781EB1FC381EB3F8181EB7F0081497F49800001143F -49800003141F49800007140FD87FFEEB7FFFB590B5128080A25C6C486D130029387DB730 ->II<007FB612F0A2B712F8A36C15F0A225077B7D30>95 D97 DII<913801FFE04A -7F5CA28080EC0007AAEB03FE90381FFF874913E790B6FC5A5A481303380FFC00D81FF013 -3F49131F485A150F4848130790C7FCA25AA25AA87E6C140FA27F003F141F6D133F6C7E6D -137F390FF801FF2607FE07EBFFC06CB712E06C16F06C14F76D01C713E0011F010313C0D9 -07FCC8FC2C397DB730>I<49B4FC010713E0011F13F8017F7F90B57E488048018113803A -07FC007FC04848133FD81FE0EB1FE0150F484814F0491307127F90C7FCED03F85A5AB7FC -A516F048C9FC7E7EA27F003FEC01F06DEB03F86C7E6C7E6D1307D807FEEB1FF03A03FFC0 -7FE06C90B5FC6C15C0013F14806DEBFE00010713F8010013C0252A7CA830>IIII<14E0EB03F8A2497EA36D5AA2EB00E091C8FCA9381FFFF8487F5AA27E7EEA0001B3A9 -003FB612C04815E0B7FCA27E6C15C023397AB830>I107 -D<387FFFF8B57EA47EEA0001B3B3A8007FB612F0B712F8A46C15F025387BB730>I<02FC -137E3B7FC3FF01FF80D8FFEF01877F90B500CF7F15DF92B57E6C010F13872607FE07EB03 -F801FC13FE9039F803FC01A201F013F8A301E013F0B3A23C7FFE0FFF07FF80B548018F13 -C0A46C486C01071380322881A730>II<49B4FC010F -13E0013F13F8497F90B57E0003ECFF8014013A07FC007FC04848EB3FE0D81FE0EB0FF0A2 -4848EB07F8491303007F15FC90C71201A300FEEC00FEA86C14016C15FCA26D1303003F15 -F86D13076D130F6C6CEB1FF06C6CEB3FE06D137F3A07FF01FFC06C90B512806C15006C6C -13FC6D5B010F13E0010190C7FC272A7CA830>II<49B413F8010FEBC1FC013F13F14913FD48B6FC5A481381390FFC00 -7F49131F4848130F491307485A491303127F90C7FC15015A5AA77E7E15037FA26C6C1307 -150F6C6C131F6C6C133F01FC137F3907FF01FF6C90B5FC6C14FD6C14F9013F13F1010F13 -C1903803FE0190C7FCAD92B512F84A14FCA46E14F82E3C7DA730>II<9038 -1FFC1E48B5129F000714FF5A5A5A387FF007EB800100FEC7FC4880A46C143E007F91C7FC -13E06CB4FC6C13FC6CEBFF806C14E0000114F86C6C7F01037F9038000FFF02001380007C -147F00FEEC1FC0A2150F7EA27F151F6DEB3F806D137F9039FC03FF0090B6FC5D5D00FC14 -F0D8F83F13C026780FFEC7FC222A79A830>III<3B3FFFC07FFF80 -486DB512C0B515E0A26C16C06C496C13803B01F80003F000A26D130700005DA26D130F01 -7E5CA2017F131F6D5CA2EC803F011F91C7FCA26E5A010F137EA2ECE0FE01075BA214F101 -035BA3903801FBF0A314FF6D5BA36E5A6E5A2B277EA630>I<3B3FFFC01FFFE0486D4813 -F0B515F8A26C16F06C496C13E0D807E0C7EA3F00A26D5C0003157EA56D14FE00015DEC0F -80EC1FC0EC3FE0A33A00FC7FF1F8A2147DA2ECFDF9017C5C14F8A3017E13FBA290393FF0 -7FE0A3ECE03FA2011F5C90390F800F802D277FA630>I<3A3FFF81FFFC4801C37FB580A2 -6C5D6C01815BC648C66CC7FC137FEC80FE90383F81FC90381FC3F8EB0FE3ECE7F06DB45A -6D5B7F6D5B92C8FC147E147F5C497F81903803F7E0EB07E790380FE3F0ECC1F890381F81 -FC90383F80FE90387F007E017E137F01FE6D7E48486D7E267FFF80B5FCB500C1148014E3 -A214C16C0180140029277DA630>I<3B3FFFC07FFF80486DB512C0B515E0A26C16C06C49 -6C13803B01FC0003F000A2000014076D5C137E150F017F5C7F151FD91F805BA214C0010F -49C7FCA214E00107137EA2EB03F0157C15FCEB01F85DA2EB00F9ECFDF0147D147FA26E5A -A36E5AA35DA2143F92C8FCA25C147EA2000F13FE486C5AEA3FC1EBC3F81387EB8FF0EBFF -E06C5B5C6C90C9FC6C5AEA01F02B3C7EA630>I<001FB612FC4815FE5AA316FC90C7EA0F -F8ED1FF0ED3FE0ED7FC0EDFF80003E491300C7485A4A5A4A5A4A5A4A5A4A5A4A5A4990C7 -FC495A495A495A495A495A495A4948133E4890C7127F485A485A485A485A485A48B7FCB8 -FCA46C15FE28277DA630>II125 D E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fk cmbx12 14.4 49 -/Fk 49 122 df<151E153E157E15FCEC01F8EC07F0EC0FE0EC1FC01580143FEC7F0014FE -1301495A5C1307495AA2495A133F5C137FA2495AA24890C7FCA25A5BA21207A2485AA312 -1F5BA3123FA25BA3127FA55B12FFB3A3127F7FA5123FA37FA2121FA37F120FA36C7EA212 -03A27F7EA26C7FA26D7EA2133F80131F6D7EA26D7E1303806D7E1300147FEC3F80141F15 -C0EC0FE0EC07F0EC01F8EC00FC157E153E151E1F7973D934>40 D<127012F8127C127E7E -EA1FC06C7E6C7E12037F6C7E6C7E7F6D7E133F806D7EA26D7E80130780A26D7EA26D7EA2 -15807FA215C0A2EC7FE0A315F0143FA315F8A2141FA315FCA5140F15FEB3A315FC141FA5 -15F8A3143FA215F0A3147F15E0A3ECFFC0A21580A25B1500A2495AA2495AA25C130F5C49 -5AA2495A5C137F49C7FC5B485A485A5B1207485A485A48C8FC127E127C5A12701F7979D9 -34>I46 -D<913803FFC0023F13FC91B6FC010315C0010F018113F0903A1FFC003FF849486D7E4948 -6D7E49486D7E48496D138048496D13C0A24817E04890C813F0A34817F8A24817FC49157F -A3007F17FEA600FF17FFB3A5007F17FEA6003F17FCA26D15FFA26C17F8A36C17F0A26C6D -4913E0A26C6D4913C06C17806E5B6C6D4913006D6C495AD91FFCEB3FF8903A0FFF81FFF0 -6D90B55A01011580D9003F01FCC7FC020313C0384F7BCD43>48 D<157815FC1403140714 -1F14FF130F0007B5FCB6FCA2147F13F0EAF800C7FCB3B3B3A6007FB712FEA52F4E76CD43 ->II<91380FFFC091B512FC0107ECFF80011F15E090 -263FF8077F9026FF800113FC4848C76C7ED803F86E7E491680D807FC8048B416C080486D -15E0A4805CA36C17C06C5B6C90C75AD801FC1680C9FC4C13005FA24C5A4B5B4B5B4B13C0 -4B5BDBFFFEC7FC91B512F816E016FCEEFF80DA000713E0030113F89238007FFE707E7013 -807013C018E07013F0A218F8A27013FCA218FEA2EA03E0EA0FF8487E487E487EB57EA318 -FCA25E18F891C7FC6C17F0495C6C4816E001F04A13C06C484A1380D80FF84A13006CB44A -5A6CD9F0075BC690B612F06D5D011F1580010302FCC7FCD9001F1380374F7ACD43>I<17 -7C17FEA2160116031607160FA2161F163F167FA216FF5D5DA25D5DED1FBFED3F3F153E15 -7C15FCEC01F815F0EC03E01407EC0FC01580EC1F005C147E147C5C1301495A495A5C495A -131F49C7FC133E5B13FC485A5B485A1207485A485A90C8FC123E127E5ABA12C0A5C96C48 -C7FCAF020FB712C0A53A4F7CCE43>III<121F7F7F -EBFF8091B81280A45A1900606060A2606060485F0180C86CC7FC007EC95A4C5A007C4B5A -5F4C5A160F4C5A484B5A4C5A94C8FC16FEC812014B5A5E4B5A150F4B5AA24B5AA24B5A15 -FFA24A90C9FCA25C5D1407A2140FA25D141FA2143FA4147F5DA314FFA55BAC6D5BA2EC3F -C06E5A395279D043>I<913807FFC0027F13FC0103B67E010F15E090261FFC0113F8903A -3FE0003FFCD97F80EB0FFE49C76C7E48488048486E1380000717C04980120F18E0177FA2 -121F7FA27F7F6E14FF02E015C014F802FE4913806C7FDBC00313009238F007FE6C02F85B -9238FE1FF86C9138FFBFF06CEDFFE017806C4BC7FC6D806D81010F15E06D81010115FC01 -0781011F81491680EBFFE748018115C048D9007F14E04848011F14F048487F4848130303 -0014F8484880161F4848020713FC1601824848157F173FA2171FA2170FA218F8A27F007F -17F06D151FA26C6CED3FE0001F17C06D157F6C6CEDFF806C6C6C010313006C01E0EB0FFE -6C01FCEBFFFC6C6CB612F06D5D010F1580010102FCC7FCD9000F13C0364F7ACD43>I<91 -380FFF8091B512F8010314FE010F6E7E4901037F90267FF8007F4948EB3FF048496D7E48 -4980486F7E484980824817805A91C714C05A7013E0A218F0B5FCA318F8A618FCA46C5DA3 -7EA25E6C7F6C5DA26C5D6C7F6C6D137B6C6D13F390387FF803011FB512E36D14C3010302 -8313F89039007FFE03EC00401500A218F05EA3D801F816E0487E486C16C0487E486D4913 -80A218005E5F4C5A91C7FC6C484A5A494A5A49495B6C48495BD803FC010F5B9027FF807F -FEC7FC6C90B55A6C6C14F06D14C0010F49C8FC010013F0364F7ACD43>I<171F4D7E4D7E -A24D7EA34C7FA24C7FA34C7FA34C7FA24C7FA34C8083047F80167E8304FE804C7E030181 -16F8830303814C7E03078116E083030F814C7E031F81168083033F8293C77E4B82157E84 -03FE824B800201835D840203834B800207835D844AB87EA24A83A3DA3F80C88092C97E4A -84A2027E8202FE844A82010185A24A820103854A82010785A24A82010F855C011F717FEB -FFFCB600F8020FB712E0A55B547BD366>65 DI<932601FFFCEC01C0047FD9FFC013030307B600F81307033F03FE131F -92B8EA803F0203DAE003EBC07F020F01FCC7383FF0FF023F01E0EC0FF94A01800203B5FC -494848C9FC4901F8824949824949824949824949824990CA7E494883A2484983485B1B7F -485B481A3FA24849181FA3485B1B0FA25AA298C7FC5CA2B5FCAE7EA280A2F307C07EA36C -7FA21B0F6C6D1980A26C1A1F6C7F1C006C6D606C6D187EA26D6C606D6D4C5A6D6D16036D -6D4C5A6D6D4C5A6D01FC4C5A6D6DEE7F806D6C6C6C4BC7FC6E01E0EC07FE020F01FEEC1F -F80203903AFFE001FFF0020091B612C0033F93C8FC030715FCDB007F14E0040101FCC9FC -525479D261>I -III73 D76 -D<93380FFFC00303B6FC031F15E092B712FC0203D9FC0013FF020F01C0010F13C0023F90 -C7000313F0DA7FFC02007F494848ED7FFE4901E0ED1FFF49496F7F49496F7F4990C96C7F -49854948707F4948707FA24849717E48864A83481B804A83481BC0A2481BE04A83A2481B -F0A348497113F8A5B51AFCAF6C1BF86E5FA46C1BF0A26E5F6C1BE0A36C6D4D13C0A26C6D -4D1380A26C1B006C6D4D5A6E5E6C626D6C4C5B6D6D4B5B6D6D4B5B6D6D4B5B6D6D4B5B6D -6D4B90C7FC6D6D4B5A6D01FF02035B023F01E0011F13F0020F01FC90B512C0020390B7C8 -FC020016FC031F15E0030392C9FCDB001F13E0565479D265>79 DI82 D<91260FFF80130791B500F85B010702FF5B011FEDC0 -3F49EDF07F9026FFFC006D5A4801E0EB0FFD4801800101B5FC4848C87E48488149150F00 -1F824981123F4981007F82A28412FF84A27FA26D82A27F7F6D93C7FC14C06C13F014FF15 -F86CECFF8016FC6CEDFFC017F06C16FC6C16FF6C17C06C836C836D826D82010F82130301 -0082021F16801400030F15C0ED007F040714E01600173F050F13F08383A200788200F882 -A3187FA27EA219E07EA26CEFFFC0A27F6D4B13806D17006D5D01FC4B5A01FF4B5A02C04A -5A02F8EC7FF0903B1FFFC003FFE0486C90B65AD8FC0393C7FC48C66C14FC48010F14F048 -D9007F90C8FC3C5479D24B>I<003FBC1280A59126C0003F9038C0007F49C71607D87FF8 -060113C001E08449197F49193F90C8171FA2007E1A0FA3007C1A07A500FC1BE0481A03A6 -C994C7FCB3B3AC91B912F0A553517BD05E>II97 DI<913801FFF8021FEB -FF8091B612F0010315FC010F9038C00FFE903A1FFE0001FFD97FFC491380D9FFF05B4817 -C048495B5C5A485BA2486F138091C7FC486F1300705A4892C8FC5BA312FFAD127F7FA27E -A2EF03E06C7F17076C6D15C07E6E140F6CEE1F806C6DEC3F006C6D147ED97FFE5C6D6CEB -03F8010F9038E01FF0010390B55A01001580023F49C7FC020113E033387CB63C>I<4DB4 -7E0407B5FCA5EE001F1707B3A4913801FFE0021F13FC91B6FC010315C7010F9038E03FE7 -4990380007F7D97FFC0101B5FC49487F4849143F484980485B83485B5A91C8FC5AA3485A -A412FFAC127FA36C7EA37EA26C7F5F6C6D5C7E6C6D5C6C6D49B5FC6D6C4914E0D93FFED9 -0FEFEBFF80903A0FFFC07FCF6D90B5128F0101ECFE0FD9003F13F8020301C049C7FC4154 -7CD24B>I<913803FFC0023F13FC49B6FC010715C04901817F903A3FFC007FF849486D7E -49486D7E4849130F48496D7E48178048497F18C0488191C7FC4817E0A248815B18F0A212 -FFA490B8FCA318E049CAFCA6127FA27F7EA218E06CEE01F06E14037E6C6DEC07E0A26C6D -EC0FC06C6D141F6C6DEC3F806D6CECFF00D91FFEEB03FE903A0FFFC03FF8010390B55A01 -0015C0021F49C7FC020113F034387CB63D>IIII<137F497E000313E0487FA2487FA76C5BA2 -6C5BC613806DC7FC90C8FCADEB3FF0B5FCA512017EB3B3A6B612E0A51B547BD325>I108 DII<913801FFE0021F13FE91B612C0010315F0010F9038807F -FC903A1FFC000FFED97FF86D6C7E49486D7F48496D7F48496D7F4A147F48834890C86C7E -A24883A248486F7EA3007F1880A400FF18C0AC007F1880A3003F18006D5DA26C5FA26C5F -6E147F6C5F6C6D4A5A6C6D495B6C6D495B6D6C495BD93FFE011F90C7FC903A0FFF807FFC -6D90B55A010015C0023F91C8FC020113E03A387CB643>I<903A3FF001FFE0B5010F13FE -033FEBFFC092B612F002F301017F913AF7F8007FFE0003D9FFE0EB1FFFC602806D7F92C7 -6C7F4A824A6E7F4A6E7FA2717FA285187F85A4721380AC1A0060A36118FFA2615F616E4A -5BA26E4A5B6E4A5B6F495B6F4990C7FC03F0EBFFFC9126FBFE075B02F8B612E06F148003 -1F01FCC8FC030313C092CBFCB1B612F8A5414D7BB54B>I<90397FE003FEB590380FFF80 -033F13E04B13F09238FE1FF89139E1F83FFC0003D9E3E013FEC6ECC07FECE78014EF1500 -14EE02FEEB3FFC5CEE1FF8EE0FF04A90C7FCA55CB3AAB612FCA52F367CB537>114 -D<903903FFF00F013FEBFE1F90B7FC120348EB003FD80FF81307D81FE0130148487F4980 -127F90C87EA24881A27FA27F01F091C7FC13FCEBFFC06C13FF15F86C14FF16C06C15F06C -816C816C81C681013F1580010F15C01300020714E0EC003F030713F015010078EC007F00 -F8153F161F7E160FA27E17E07E6D141F17C07F6DEC3F8001F8EC7F0001FEEB01FE9039FF -C00FFC6DB55AD8FC1F14E0D8F807148048C601F8C7FC2C387CB635>I<143EA6147EA414 -FEA21301A313031307A2130F131F133F13FF5A000F90B6FCB8FCA426003FFEC8FCB3A9EE -07C0AB011FEC0F8080A26DEC1F0015806DEBC03E6DEBF0FC6DEBFFF86D6C5B021F5B0203 -13802A4D7ECB34>IIII<007FB500 -F090387FFFFEA5C66C48C7000F90C7FC6D6CEC07F86D6D5C6D6D495A6D4B5A6F495A6D6D -91C8FC6D6D137E6D6D5B91387FFE014C5A6E6C485A6EEB8FE06EEBCFC06EEBFF806E91C9 -FCA26E5B6E5B6F7E6F7EA26F7F834B7F4B7F92B5FCDA01FD7F03F87F4A486C7E4A486C7E -020F7FDA1FC0804A486C7F4A486C7F02FE6D7F4A6D7F495A49486D7F01076F7E49486E7E -49486E7FEBFFF0B500FE49B612C0A542357EB447>II -E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fl cmr10 10.95 83 -/Fl 83 124 df<4AB4EB0FE0021F9038E03FFC913A7F00F8FC1ED901FC90383FF03FD907 -F090397FE07F80494801FF13FF4948485BD93F805C137F0200ED7F00EF003E01FE6D91C7 -FC82ADB97EA3C648C76CC8FCB3AE486C4A7E007FD9FC3FEBFF80A339407FBF35>11 -DII<001E130F397F803FC000FF137F01C013E0A201E013F0A3007F13 -3F391E600F3000001300A401E01370491360A3000114E04913C000031301010013804813 -03000EEB070048130E0018130C0038131C003013181C1C7DBE2D>34 -D<14E0A4EB07FC90383FFF8090B512E03901F8E3F03903E0E0FCD807C0133CD80F807FD8 -1F007F003E80003C1580007C140316C00078141F00F8143F157FA47EED3F806CEC0E0092 -C7FC127F138013C0EA3FF013FEEA1FFF6C13FC6C13FF6C14C06C806C6C13F8011F7F1303 -01007FECE7FF14E102E01380157F153FED1FC0A2003E140F127FD8FF801307A5130000FC -158000F0140F1270007815005D6C141E153E6C5C6C5C3907C0E1F03903F8EFE0C6B51280 -D93FFEC7FCEB0FF8EB00E0A422497BC32D>36 D<013F1603D9FFC04B7E2601E0E0150F26 -07C070151F48486C4BC7FC023E157E48486C15FE48D90FC0EB03FC003ED90EF0EB0FF8DA -0F3F13FD007E903A070FFFF1F0007C0200EB03E0160000FC6D6C495A170F604DC8FC5F17 -3E5F17FC5F4C5A1603007CD907005B4C5A007E150F003E495C020E49C9FC003F5D6C4913 -3E260F803C5B023813FC6C6C485B3A01E0E001F03800FFC090273F0003E0133F90C70007 -ECFFC09339C001E0E0923A0F8007C070031F49487E0400143C033E90381F001C037E497F -037C133E4B150F0201027E7F4B137C4A5A020702FCEB03805D4A5A141F92C7FC143E147E -147C5CA2495A0103037CEB07005C4948147E010F033E5B4A160E49C8123F496F5B013E92 -380F803C49173801FC6F6C5A49923801E0E0496FB45A0160043FC7FC41497BC34C>II<121EEA7F8012FF13C0A213E0A3127FEA1E601200A413E013C0A3 -12011380120313005A120E5A1218123812300B1C79BE19>I<1430147014E0EB01C0EB03 -801307EB0F00131E133E133C5B13F85B12015B1203A2485AA2120F5BA2121F90C7FCA25A -A3123E127EA6127C12FCB2127C127EA6123E123FA37EA27F120FA27F1207A26C7EA21201 -7F12007F13787F133E131E7FEB07801303EB01C0EB00E014701430145A77C323>I<12C0 -7E12707E7E121E7E6C7E7F12036C7E7F12007F1378137CA27FA2133F7FA21480130FA214 -C0A3130714E0A6130314F0B214E01307A614C0130FA31480A2131F1400A25B133EA25BA2 -137813F85B12015B485A12075B48C7FC121E121C5A5A5A5A145A7BC323>II<121EEA7F80 -12FF13C0A213E0A3127FEA1E601200A413E013C0A312011380120313005A120E5A121812 -3812300B1C798919>44 DI<121EEA7F80A2EAFFC0A4EA7F80A2 -EA1E000A0A798919>IIIIII<150E151E153EA2157EA215FE -1401A21403EC077E1406140E141CA214381470A214E0EB01C0A2EB0380EB0700A2130E5B -A25B5BA25B5B1201485A90C7FC5A120E120C121C5AA25A5AB8FCA3C8EAFE00AC4A7E49B6 -FCA3283E7EBD2D>I<00061403D80780131F01F813FE90B5FC5D5D5D15C092C7FC14FCEB -3FE090C9FCACEB01FE90380FFF8090383E03E090387001F8496C7E49137E497F90C71380 -0006141FC813C0A216E0150FA316F0A3120C127F7F12FFA416E090C7121F12FC007015C0 -12780038EC3F80123C6CEC7F00001F14FE6C6C485A6C6C485A3903F80FE0C6B55A013F90 -C7FCEB07F8243F7CBC2D>II<1238 -123C123F90B612FCA316F85A16F016E00078C712010070EC03C0ED078016005D48141E15 -1C153C5DC8127015F04A5A5D14034A5A92C7FC5C141EA25CA2147C147814F8A213015C13 -03A31307A3130F5CA2131FA6133FAA6D5A0107C8FC26407BBD2D>III<121EEA7F80A2EAFFC0A4EA7F80A2EA1E00C7FCB3121EEA7F80A2EAFFC0A4EA -7F80A2EA1E000A2779A619>I<121EEA7F80A2EAFFC0A4EA7F80A2EA1E00C7FCB3121E12 -7FEAFF80A213C0A4127F121E1200A412011380A3120313005A1206120E120C121C5A1230 -A20A3979A619>I63 D<15074B7EA34B7EA34B7EA34B7EA34B7E15E7A2913801C7FC -15C3A291380381FEA34AC67EA3020E6D7EA34A6D7EA34A6D7EA34A6D7EA34A6D7EA34948 -6D7E91B6FCA249819138800001A249C87EA24982010E157FA2011E82011C153FA2013C82 -0138151FA2017882170F13FC00034C7ED80FFF4B7EB500F0010FB512F8A33D417DC044> -65 DIIIII -III<011FB512FCA3D9000713006E5A1401B3B3A6123F -EA7F80EAFFC0A44A5A1380D87F005B007C130700385C003C495A6C495A6C495A2603E07E -C7FC3800FFF8EB3FC026407CBD2F>IIIIIII82 DI<003FB91280A3903AF0007FE001018090393FC0003F48C7ED1FC0007E17 -07127C00781703A300701701A548EF00E0A5C81600B3B14B7E4B7E0107B612FEA33B3D7D -BC42>IIII89 -D<003FB712F8A391C7EA1FF013F801E0EC3FE00180EC7FC090C8FC003EEDFF80A2003C4A -1300007C4A5A12784B5A4B5AA200704A5AA24B5A4B5AA2C8485A4A90C7FCA24A5A4A5AA2 -4A5AA24A5A4A5AA24A5A4A5AA24990C8FCA2495A4948141CA2495A495AA2495A495A173C -495AA24890C8FC485A1778485A484815F8A24848140116034848140F4848143FED01FFB8 -FCA32E3E7BBD38>II<486C13C000 -03130101001380481303000EEB070048130E0018130C0038131C00301318007013380060 -1330A300E01370481360A400CFEB678039FFC07FE001E013F0A3007F133FA2003F131F01 -C013E0390F0007801C1C73BE2D>I -I96 D -II<49B4FC010F13E090383F00F8017C131E4848131F -4848137F0007ECFF80485A5B121FA24848EB7F00151C007F91C7FCA290C9FC5AAB6C7EA3 -003FEC01C07F001F140316806C6C13076C6C14000003140E6C6C131E6C6C137890383F01 -F090380FFFC0D901FEC7FC222A7DA828>II -II<167C903903F801 -FF903A1FFF078F8090397E0FDE1F9038F803F83803F001A23B07E000FC0600000F6EC7FC -49137E001F147FA8000F147E6D13FE00075C6C6C485AA23901F803E03903FE0FC026071F -FFC8FCEB03F80006CAFC120EA3120FA27F7F6CB512E015FE6C6E7E6C15E06C810003813A -0FC0001FFC48C7EA01FE003E140048157E825A82A46C5D007C153E007E157E6C5D6C6C49 -5A6C6C495AD803F0EB0FC0D800FE017FC7FC90383FFFFC010313C0293D7EA82D>III<1478EB01FEA2EB03FFA4EB01FEA2EB00781400AC147FEB7FFFA313 -017F147FB3B3A5123E127F38FF807E14FEA214FCEB81F8EA7F01387C03F0381E07C0380F -FF803801FC00185185BD1C>II -I<2701F801FE14FF00FF902707FFC00313E0913B1E07E00F03F0913B7803F03C01F80007 -903BE001F87000FC2603F9C06D487F000101805C01FBD900FF147F91C75B13FF4992C7FC -A2495CB3A6486C496CECFF80B5D8F87FD9FC3F13FEA347287DA74C>I<3901F801FE00FF -903807FFC091381E07E091387803F000079038E001F82603F9C07F0001138001FB6D7E91 -C7FC13FF5BA25BB3A6486C497EB5D8F87F13FCA32E287DA733>I<14FF010713E090381F -81F890387E007E01F8131F4848EB0F804848EB07C04848EB03E0000F15F04848EB01F8A2 -003F15FCA248C812FEA44815FFA96C15FEA36C6CEB01FCA3001F15F86C6CEB03F0A26C6C -EB07E06C6CEB0FC06C6CEB1F80D8007EEB7E0090383F81FC90380FFFF0010090C7FC282A -7EA82D>I<3901FC03FC00FF90381FFF8091387C0FE09039FDE003F03A07FFC001FC6C49 -6C7E6C90C7127F49EC3F805BEE1FC017E0A2EE0FF0A3EE07F8AAEE0FF0A4EE1FE0A2EE3F -C06D1580EE7F007F6E13FE9138C001F89039FDE007F09039FC780FC0DA3FFFC7FCEC07F8 -91C9FCAD487EB512F8A32D3A7EA733>I<02FF131C0107EBC03C90381F80F090397F0038 -7C01FC131CD803F8130E4848EB0FFC150748481303121F485A1501485AA448C7FCAA6C7E -A36C7EA2001F14036C7E15076C6C130F6C7E6C6C133DD8007E137990383F81F190380FFF -C1903801FE0190C7FCAD4B7E92B512F8A32D3A7DA730>I<3901F807E000FFEB1FF8EC78 -7CECE1FE3807F9C100031381EA01FB1401EC00FC01FF1330491300A35BB3A5487EB512FE -A31F287EA724>I<90383FC0603901FFF8E03807C03F381F000F003E1307003C1303127C -0078130112F81400A27E7E7E6D1300EA7FF8EBFFC06C13F86C13FE6C7F6C1480000114C0 -D8003F13E0010313F0EB001FEC0FF800E01303A214017E1400A27E15F07E14016C14E06C -EB03C0903880078039F3E01F0038E0FFFC38C01FE01D2A7DA824>I<131CA6133CA4137C -A213FCA2120112031207001FB512C0B6FCA2D801FCC7FCB3A215E0A912009038FE01C0A2 -EB7F03013F138090381F8700EB07FEEB01F81B397EB723>IIIIII<001FB61280A2EBE0000180140049485A001E495A121C4A5A003C -495A141F00385C4A5A147F5D4AC7FCC6485AA2495A495A130F5C495A90393FC00380A2EB -7F80EBFF005A5B484813071207491400485A48485BA248485B4848137F00FF495A90B6FC -A221277EA628>II E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fm cmbx12 20.736 11 -/Fm 11 115 df<137F3801FFC0000713F0487F487F487F487FA2B61280A96C1400A26C5B -6C5B6C5B6C5B000113C06C6CC7FC1919729836>46 D48 D<93B57E031F14FC92B7 -7E020316F0020F16FC023F16FF4A8349B5D8800314E04901F8C7003F7F4901C0020F7F49 -90C800037FD91FFC6F7F49486F6C7E137F4A7013804948827313C05A4A821BE05AA28548 -7FA38080806E5E8003C017C08103F85D03FE17806F6C5C6C6F160004F05C04FC4A5A6C6F -5D706C13FFDDE0015B6CDCF8035BDDFC0F13C06DDBFF1F5B6D93B5C7FC19FC6D17F06D5F -6D17806D17E06D836D6C16FC6E16FF020F836E17E06E83020F83023F8391B97E49840107 -01F0178049D9C07F16C0013FD9801F16E049EB00074948010116F048497F4849023F15F8 -4849140F4A6E15FC48160148496E6C14FE4A151F488391C9120348050014FF193F498385 -00FF84854983A28586A3861BFEA27FA2007F1AFC7F1A7F1BF86C7FF2FFF06C7F6E4C13E0 -6C6D4C13C06C6D5E6E4C13806C6D4C13006C6D6CED7FFE6C02E04A485A013F01FC020F13 -F06D9026FFC001B55A010791B712806D95C7FC010017FC021F16F002071680DA007F02FC -C8FC030191C9FC507378F061>56 D<93B5FC031F14F092B612FE02076F7E021F16E04A16 -F891B87E49DAF00713FF0107DA0001804901FC6D6C7F49496E7F49496E7F49496E7F90B5 -486E7F484A8048854891C86C7FA2487114805C481AC0A2487213E0A2484918F0A31BF8A2 -B5FCA27313FCA51BFEA71BFF61A27EA396B6FC7EA2806C5FA27E606C7F607E6C6E5C6CEF -1FBF6D6DEC3F3F6D6D147F6D6D14FE6D6DEB01FC6D01FE130701019039FFC01FF86D91B5 -00F014FE023F15C06E15800203ECFE00DA007F13F8030713C092C9FC4F13FCA41BF8A31B -F0D91FF093B5FCEB7FFC496C18E0487F486E17C06048801B804E1400A26260624E5B4B5C -626C91C8485B4A4B5B4A92B55A6C01F04A91C7FC02804A5B6C01E0020F5B6D6C023F13F0 -02FE91B55A90273FFFE00F5C6D90B7C8FC010716FC6D16F0010016C0023F92C9FC020714 -F09126007FFECAFC507378F061>I<92383FFFF80207B612E0027F15FC49B87E010717E0 -011F83499026F0007F13FC4948C7000F7F90B502036D7E486E6D806F6D80727F486E6E7F -8486727FA28684A26C5C72806C5C6D90C8FC6D5AEB0FF8EB03E090CAFCA70507B6FC041F -B7FC0303B8FC157F0203B9FC021FECFE0391B612800103ECF800010F14C04991C7FC017F -13FC90B512F04814C0485C4891C8FC485B5A485B5C5A5CA2B5FC5CA360A36E5DA26C5F6E -5D187E6C6D846E4A48806C6D4A4814FC6C6ED90FF0ECFFFC6C02E090263FE07F14FE0001 -9139FC03FFC06C91B6487E013F4B487E010F4B1307010303F01301D9003F0280D9003F13 -FC020101F8CBFC57507ACE5E>97 D<903801FFFCB6FCA8C67E131F7FB3ADF0FFFC050FEB -FFE0057F14FE0403B77E040F16E0043F16F84CD9007F13FE9226FDFFF001077F92B500C0 -01018094C86C13E004FC6F7F4C6F7F04E06F7F4C6F7F5E747F93C915804B7014C0A27414 -E0A21DF087A21DF8A31DFC87A41DFEAF1DFCA4631DF8A31DF098B5FC1DE0A25014C0A26F -1980501400705D705F704B5B505B704B5B04FC4B5BDBE7FE92B55A9226C3FF8001035C03 -8101E0011F49C7FC9226807FFC90B55A4B6CB712F04A010F16C04A010393C8FC4A010015 -F84A023F14C090C9000301F0C9FC5F797AF76C>I<93383FFFF00307B612C0033F15F84A -B712FE0207707E021F17E0027F8391B526FC001F7F010302C001037F4991C7487F49495C -495B4901F04A7F5B90B55A485CA2485C4891C8FCA248715B5C48715B725B4A6F5B489438 -007FC0071FC7FC96C8FC5AA25CA3B5FCAF7E80A47E80A27E806CF11F80F23FC06C6E167F -A26C6EEEFF80816C606C6E17006D6D4B5A6D6D15076D6D4B5A6D6D6C4A5A6D02E0EC7FF0 -6D02F849485A01009126FF801F5B6E91B6C7FC021F5E020716F8020116E06E6C15800307 -02FCC8FCDB003F13804A507ACE56>I<97380FFFE00607B6FCA8F00003190086B3AD9338 -3FFF800307B512F8033F14FF4AB712C0020716F0021F16FC027F9039FE007FFE91B500F0 -EB0FFF01030280010190B5FC4949C87E49498149498149498149498190B548814884484A -8192CAFC5AA2485BA25A5C5AA35A5CA4B5FCAF7EA4807EA37EA2807EA26C7F616C6E5D6C -606C80616D6D5D6D6D5D6D6D92B67E6D6D4A15FC010301FF0207EDFFFE6D02C0EB3FFE6D -6C9039FC01FFF86E90B65A020F16C002031600DA007F14FC030F14E09226007FFEC749C7 -FC5F797AF76C>I<93387FFF80030FB512FC037FECFF804AB712E0020716F8021F16FE02 -7FD9F8077F49B5D8C000804991C7003F13E04901FC020F7F49496E7F49498049496E7F49 -496E7F90B55A48727E92C914804884485B1BC048841BE0485BA27313F05AA25C5AA21BF8 -85A2B5FCA391BAFCA41BF002F8CCFCA67EA3807EA47E806CF103F0F207F86C7F1A0F6C6E -17F06C191F6F17E06C6E163F6D6DEE7FC06D6D16FF6D6D4B13806D6D4B13006D6D6CEC0F -FE6D02E0EC3FFC6D02F8ECFFF86D9126FFC00F5B023F91B65A020F178002034CC7FC0200 -16F8031F15E0030392C8FCDB000F13E04D507BCE58>I<93381FFFE00303B6FC031F15E0 -92B712FC020316FF020F17C0023FD9FC0014F091B500C0010F13FC4991C700037F4901FC -02007F010F496F13C049496F7F49496F7F4B8149496F7F90B5C96C7F4886A24849707F48 -1B80A248497014C0A2481BE0A348497113F0A3481BF8A5B51AFCAE6C1BF8A46C1BF06E94 -B5FCA36C1BE0A26C6D4C14C0A26C1B806E5E6C1B006C6E4B5BA26C6E4B5B6D6D4B5B6D6D -4B5B6D6D4B5B6D6D92B55A6D01FF02035C6D02C0010F91C7FC010002FC90B512FC6E90B7 -5A021F17E00207178002014CC8FCDA003F15F0030392C9FCDB001F13E056507BCE61> -111 D<902601FFF8EB07FEB691383FFFC094B512F00403804C14FE4C8093261FFC3F1380 -93263FE07F13C0DC7F80B5FCC66C5D011FDAFE0114E06DEBF9FC16F815FB16F016E015FF -16C07114C05E72138095381FFE0093C76C5AF001E095C8FCA25DA65DB3B3A2B812F8A843 -4E7ACD4F>114 D E -%EndDVIPSBitmapFont -end -%%EndProlog -%%BeginSetup -%%Feature: *Resolution 600dpi -TeXDict begin -%%PaperSize: A4 - -%%EndSetup -%%Page: 1 1 -1 0 bop 94 1385 a Fm(barco)5 b(de)65 b(0.98)p 94 1451 -3780 34 v 2617 1548 a Fl(A)31 b(library)d(for)i(dra)m(wing)f(bar)h(co)s -(des)3409 1656 y(Marc)m(h)h(2002)94 5367 y Fk(b)l(y)45 -b(Alessandro)h(Rubini)f(\()p Fj(rubini@gnu.org)p Fk(\))p -94 5446 3780 17 v eop -%%Page: 1 2 -1 1 bop 94 -116 a Fl(Chapter)30 b(2:)41 b(The)30 b(Underlying)e(Data)k -(Structure)2012 b(1)94 365 y Fi(Barco)t(de)54 b(to)t(ols)219 -549 y Fl(This)29 b(\014le)g(do)s(cumen)m(ts)h(v)m(ersion)g(0.98)i(of)e -(the)h(barco)s(de)f(library)e(and)i(sample)f(programs)h(\(Marc)m(h)i -(2002\).)94 815 y Fi(1)81 b(Ov)l(erview)219 999 y Fl(The)26 -b Fh(barco)s(de)32 b Fl(pac)m(k)-5 b(age)29 b(is)d(mainly)f(a)i(C)f -(library)f(for)h(creating)i(bar-co)s(de)f(output)f(\014les.)39 -b(It)27 b(also)f(includes)94 1099 y(a)31 b(command)f(line)f(fron)m -(t-end)h(and)g(\(in)f(a)i(foreseeable)g(future\))f(a)h(graphic)e(fron)m -(tend.)219 1215 y(The)k(pac)m(k)-5 b(age)35 b(is)d(designed)g(as)i(a)f -(library)e(b)s(ecause)i(w)m(e)h(think)e(the)h(main)g(use)f(for)h(barco) -s(de-generation)94 1315 y(to)s(ols)23 b(is)f(inside)f(more)i(featured)g -(applications.)37 b(The)22 b(library)f(addresses)h(bar)h(co)s(de)g -(prin)m(ting)e(as)i(t)m(w)m(o)i(distinct)94 1415 y(problems:)43 -b(creation)33 b(of)f(bar)g(information)e(and)i(actual)h(con)m(v)m -(ersion)f(to)h(an)f(output)g(format.)47 b(T)-8 b(o)32 -b(this)g(aim)94 1514 y(w)m(e)25 b(use)f(an)g(in)m(termediate)g -(represen)m(tation)g(for)g(bar)f(co)s(des,)j(whic)m(h)d(is)g(curren)m -(tly)g(do)s(cumen)m(ted)h(in)e(the)j(`)p Fj(ps.c)p Fl(')94 -1614 y(source)31 b(\014le)e(\(not)i(in)f(this)f(do)s(cumen)m(t\).)219 -1730 y(Note)24 b(that)e(the)h(library)d(and)h(the)i(accompan)m(ying)g -(material)e(is)h(released)g(according)g(to)h(the)f(GPL)h(license,)94 -1830 y(not)31 b(the)g(LGPL)f(one.)41 b(A)30 b(cop)m(y)h(of)g(the)g(GPL) -f(is)f(included)f(in)h(the)i(distribution)26 b(tarball.)94 -2096 y Fi(2)81 b(The)53 b(Underlying)h(Data)g(Structure)219 -2280 y Fl(Ev)m(ery)33 b(barco)s(de-related)g(function)f(acts)i(on)f(a)h -(data)f(structure)g(de\014ned)f(in)g(the)h(`)p Fj(barcode.h)p -Fl(')e(header,)94 2380 y(whic)m(h)j(m)m(ust)h(b)s(e)f(included)e(b)m(y) -j(an)m(y)g(C)g(source)g(\014le)f(that)h(uses)g(the)g(library)-8 -b(.)52 b(The)35 b(header)f(is)g(installed)f(b)m(y)94 -2480 y Fj(make)47 b(install)p Fl(.)219 2596 y(The)30 -b(de\014nition)e(of)i(the)h(data)g(structure)f(is)f(included)f(here)i -(for)g(reference:)334 2717 y Fj(struct)47 b(Barcode_Item)d({)525 -2820 y(int)j(flags;)428 b(/*)47 b(type)g(of)g(encoding)f(and)h(other)f -(flags)g(*/)525 2924 y(char)h(*ascii;)332 b(/*)47 b(malloced)f(*/)525 -3028 y(char)h(*partial;)236 b(/*)47 b(malloced)f(too)h(*/)525 -3132 y(char)g(*textinfo;)188 b(/*)47 b(information)e(about)h(text)h -(placement)e(*/)525 3236 y(char)i(*encoding;)188 b(/*)47 -b(code)g(name,)f(filled)g(by)i(encoding)d(engine)h(*/)525 -3339 y(int)h(width,)f(height;)g(/*)h(output)f(units)h(*/)525 -3443 y(int)g(xoff,)g(yoff;)189 b(/*)47 b(output)f(units)h(*/)525 -3547 y(int)g(margin;)380 b(/*)47 b(output)f(units)h(*/)525 -3651 y(double)f(scalef;)237 b(/*)47 b(requested)f(scaling)f(for)i -(barcode)f(*/)525 3754 y(int)h(error;)428 b(/*)47 b(an)h(errno-like)d -(value,)h(in)h(case)f(of)i(failure)d(*/)334 3858 y(};)219 -3975 y Fl(The)e(exact)i(meaning)e(of)g(eac)m(h)i(\014eld)d(and)h(the)g -(v)-5 b(arious)43 b(\015ags)g(implemen)m(ted)f(are)i(describ)s(ed)e(in) -g(the)94 4074 y(follo)m(wing)29 b(sections.)219 4191 -y(Ev)m(en)38 b(though)f(y)m(ou)h(w)m(on't)g(usually)d(need)i(to)h(act)h -(on)e(the)h(con)m(ten)m(ts)h(of)f(this)e(structure,)j(some)f(of)g(the) -94 4290 y(functions)25 b(in)f(the)i(library)d(receiv)m(e)k(argumen)m -(ts)e(that)i(are)f(directly)e(related)i(to)g(one)g(or)g(more)f(of)h -(these)g(\014elds.)94 4524 y Fk(2.1)69 b(The)44 b(Fields)94 -4715 y Fj(int)30 b(flags;)574 4815 y Fl(The)42 b(\015ags)g(are,)j(as)d -(y)m(ou)g(ma)m(y)g(susp)s(ect,)j(mean)m(t)d(to)h(sp)s(ecify)d(the)i -(exact)h(b)s(eha)m(viour)e(of)h(the)574 4914 y(library)-8 -b(.)37 b(They)22 b(are)h(often)h(passed)e(as)h(an)g(argumen)m(t)g(to)h -Fg(b)-5 b(ar)g(c)g(o)g(de)32 b Fl(functions)21 b(and)i(are)g(discussed) -574 5014 y(in)30 b(the)g(next)h(section.)94 5147 y Fj(char)f(*ascii;)94 -5247 y(char)g(*partial;)94 5347 y(char)g(*textinfo;)94 -5446 y(char)g(*encoding;)574 5546 y Fl(These)41 b(\014elds)f(are)h(in)m -(ternally)e(managed)i(b)m(y)g(the)h(library)-8 b(,)41 -b(and)g(y)m(ou)g(are)h(not)f(exp)s(ected)g(to)574 5645 -y(touc)m(h)31 b(them)g(if)e(y)m(ou)i(use)f(the)h(pro)m(vided)d(API.)j -(All)e(of)h(them)h(are)g(allo)s(cated)f(with)f Fg(mal)5 -b(lo)-5 b(c)p Fl(.)p eop -%%Page: 2 3 -2 2 bop 94 -116 a Fl(Chapter)30 b(2:)41 b(The)30 b(Underlying)e(Data)k -(Structure)2012 b(2)94 365 y Fj(int)30 b(width;)94 465 -y(int)g(height;)574 565 y Fl(They)i(sp)s(ecify)e(the)i(width)d(and)i -(heigh)m(t)h(of)g(the)f Fg(active)39 b Fl(barco)s(de)31 -b(region)g(\(i.e.,)i(excluding)d(the)574 664 y(white)21 -b(margin\),)i(in)d(the)i(units)e(used)h(to)h(create)i(output)d(data)h -(\(for)g(p)s(ostscript)e(they)i(are)g(p)s(oin)m(ts,)574 -764 y(1/72th)33 b(of)d(an)g(inc)m(h,)g(0.352)j(mm\).)40 -b(The)30 b(\014elds)f(can)i(b)s(e)f(either)g(assigned)f(to)j(in)d(the)h -(structure)574 863 y(or)37 b(via)e Fg(Bar)-5 b(c)g(o)g(de)p -1161 863 28 4 v 36 w(Position\(\))p Fl(,)39 b(at)e(y)m(our)f(c)m -(hoice.)59 b(If)35 b(either)h(v)-5 b(alue)35 b(or)h(b)s(oth)g(are)g -(left)g(to)h(their)574 963 y(default)c(v)-5 b(alue)33 -b(of)g(zero,)i(the)e(output)g(engine)g(will)d(assign)j(default)f(v)-5 -b(alues)33 b(according)g(to)h(the)574 1063 y(sp)s(eci\014ed)g(scaling)f -(factor.)55 b(If)35 b(the)g(sp)s(eci\014ed)e(width)g(is)h(bigger)g -(than)h(needed)f(\(according)h(to)574 1162 y(the)g(scaling)f(factor\),) -j(the)d(output)g(barco)s(de)h(will)c(b)s(e)j(cen)m(tered)i(in)d(its)h -(requested)g(region.)52 b(If)574 1262 y(either)27 b(the)h(width)d(of)i -(the)h(heigh)m(t)f(are)h(to)s(o)g(small)d(for)i(the)h(sp)s(eci\014ed)d -(scale)j(factor,)h(the)e(output)574 1362 y(bar)j(co)s(de)h(will)d -(expand)h(symmetrically)g(around)g(the)i(requested)f(region.)94 -1513 y Fj(int)g(xoff;)94 1612 y(int)g(yoff;)574 1738 -y Fl(The)53 b(\014elds)f(sp)s(ecify)g(o\013set)j(from)e(the)g(co)s -(ordinate)h(origin)e(of)h(the)h(output)f(engine)g(\(for)574 -1838 y(p)s(ostscript,)46 b(p)s(osition)c(0,0)i(is)f(the)g(lo)m(w)m(er)h -(left)f(corner)h(of)f(the)h(page\).)81 b(The)43 b(\014elds)f(can)i(b)s -(e)574 1937 y(either)36 b(assigned)e(to)j(in)d(the)i(structure)f(or)g -(via)g Fg(Bar)-5 b(c)g(o)g(de)p 2572 1937 V 36 w(Position\(\))p -Fl(,)39 b(at)d(y)m(our)f(c)m(hoice.)57 b(The)574 2037 -y(o\013set)24 b(sp)s(eci\014es)d(where)h(the)g(white)g(margin)f(b)s -(egins,)h(not)h(where)f(the)g(\014rst)g(bar)g(will)d(b)s(e)j(prin)m -(ted.)574 2136 y(T)-8 b(o)31 b(prin)m(t)e(real)h(ink)f(to)j(the)e(sp)s -(eci\014ed)f(p)s(osition)f(y)m(ou)j(should)d(set)j Fg(mar)-5 -b(gin)39 b Fl(to)31 b(0.)94 2288 y Fj(int)f(margin;)574 -2387 y Fl(The)36 b(white)g(margin)f(that)j(will)33 b(b)s(e)j(left)g -(around)g(the)h(prin)m(ted)e(area)i(of)g(the)f(bar)g(co)s(de.)59 -b(The)574 2487 y(same)37 b(margin)e(is)g(applied)f(to)j(all)e(sides)g -(of)h(the)g(prin)m(ted)f(area.)59 b(The)35 b(default)g(v)-5 -b(alue)36 b(for)g(the)574 2587 y(margin)30 b(is)f(de\014ned)g(in)g(`)p -Fj(barcode.h)p Fl(')g(as)h Fj(BARCODE_DEFAULT_MARGIN)25 -b Fl(\(10\).)94 2738 y Fj(double)k(scalef;)574 2837 y -Fl(The)j(enlarge)f(or)h(shrink)d(v)-5 b(alue)31 b(for)g(the)h(bar)f(co) -s(de)h(o)m(v)m(er)h(its)e(default)g(dimension.)42 b(The)31 -b Fg(width)574 2937 y Fl(and)j Fg(sc)-5 b(alef)54 b Fl(\014elds)33 -b(in)m(teract)h(deeply)f(in)g(the)h(creation)h(of)f(the)g(output,)h -(and)f(a)g(complete)h(de-)574 3037 y(scription)29 b(of)i(the)f(issues)f -(app)s(ears)h(later)g(in)f(this)g(section.)94 3188 y -Fj(int)h(error;)574 3288 y Fl(The)g(\014eld)f(is)h(used)f(when)h(a)g -Fg(b)-5 b(ar)g(c)g(o)g(de)40 b Fl(function)29 b(fails)g(to)i(host)g(an) -f Fj(errno)p Fl(-lik)m(e)f(in)m(teger)h(v)-5 b(alue.)94 -3515 y Ff(Use)42 b(of)f(the)g Fe(width)50 b Ff(and)41 -b Fe(sc)-6 b(alef)64 b Ff(\014elds.)219 3700 y Fl(A)29 -b(width)f(unit)f(is)h(the)i(width)d(of)i(the)h(thinnest)d(bar)i(and/or) -g(space)h(in)d(the)j(c)m(hosen)f(co)s(de;)h(it)f(defaults)f(to)94 -3800 y(1)j(p)s(oin)m(t)f(if)f(the)i(output)e(is)h(p)s(ostscript)f(or)h -(encapsulated)g(p)s(ostscript.)219 3926 y(Either)j(or)h(b)s(oth)g(the)g -(co)s(de)h(width)d(and)i(the)g(scale)h(factor)g(can)g(b)s(e)e(left)h -(unsp)s(eci\014ed)e(\(i.e.,)k(zero\).)53 b(The)94 4026 -y(library)28 b(deals)i(with)f(defaults)h(in)f(the)h(follo)m(wing)f(w)m -(a)m(y:)94 4178 y Fg(Both)34 b(unsp)-5 b(e)g(ci\014e)g(d)574 -4277 y Fl(If)26 b(b)s(oth)f(the)h(width)e(and)h(the)h(scale)g(factor)g -(are)g(unsp)s(eci\014ed,)f(the)h(scale)g(factor)g(will)d(default)i(to) -574 4377 y(1.0)31 b(and)e(the)h(width)e(is)g(calculated)i(according)f -(to)i(the)e(actual)h(width)e(of)i(the)g(bar)f(co)s(de)g(b)s(eing)574 -4477 y(prin)m(ted.)94 4628 y Fg(Width)34 b(unsp)-5 b(e)g(ci\014e)g(d) -574 4728 y Fl(If)30 b(the)h(width)e(is)g(not)i(sp)s(eci\014ed,)d(it)i -(is)g(calculated)g(according)g(to)i(the)e(v)-5 b(alues)30 -b(of)g Fg(sc)-5 b(alef)p Fl(.)94 4879 y Fg(Sc)g(ale)34 -b(factor)f(unsp)-5 b(e)g(ci\014e)g(d)574 4978 y Fl(If)32 -b(the)h(scale)f(factor)i(is)d(not)i(sp)s(eci\014ed,)e(it)h(will)d(b)s -(e)j(c)m(hosen)h(so)f(that)h(the)g(generated)g(bar)f(co)s(de)574 -5078 y(exactly)g(\014ts)e(the)g(sp)s(eci\014ed)f(width.)94 -5229 y Fg(Both)34 b(sp)-5 b(e)g(ci\014e)g(d)574 5329 -y Fl(The)31 b(co)s(de)g(will)d(b)s(e)i(prin)m(ted)g(inside)e(the)j(sp)s -(eci\014ed)f(region)g(according)h(to)g(the)g(sp)s(eci\014ed)f(scale)574 -5429 y(factor.)48 b(It)33 b(will)d(b)s(e)h(aligned)h(to)h(the)f(left.) -47 b(If,)33 b(ho)m(w)m(ev)m(er,)h(the)f(c)m(hosen)g(width)e(is)g(to)s -(o)i(small)e(for)574 5528 y(the)f(sp)s(eci\014c)e(bar)h(co)s(de)h(and)e -(scaling)h(factor,)h(then)f(the)h(co)s(de)g(will)c(extend)k -(symmetrically)d(to)574 5628 y(the)k(left)f(and)g(to)h(the)g(righ)m(t)f -(of)g(the)h(c)m(hosen)g(region.)p eop -%%Page: 3 4 -3 3 bop 94 -116 a Fl(Chapter)30 b(3:)41 b(The)30 b(Flags)2872 -b(3)94 365 y Fk(2.2)69 b(The)44 b(In)l(termediate)j(Represen)l(tation) -219 565 y Fl(The)23 b(enco)s(ding)g(functions)f(prin)m(t)g(their)g -(output)h(in)m(to)h(the)g Fj(partial)d Fl(and)i Fj(texinfo)f -Fl(\014elds)g(of)h(the)h(barco)s(de)94 664 y(data)g(structure.)37 -b(Those)23 b(\014elds,)g(together)h(with)d(p)s(osition)g(information,)h -(are)h(then)f(used)g(to)i(generate)g(actual)94 764 y(output.)41 -b(This)28 b(is)i(an)g(informal)e(description)h(of)h(the)h(in)m -(termediate)f(format.)219 905 y(The)38 b(\014rst)g(c)m(har)h(in)f -Fj(partial)f Fl(tells)g(ho)m(w)i(m)m(uc)m(h)g(extra)g(space)h(to)f(add) -f(to)i(the)f(left)f(of)h(the)g(bars.)65 b(F)-8 b(or)94 -1005 y(EAN-13,)33 b(it)d(is)f(used)h(to)h(lea)m(v)m(e)h(space)f(to)g -(prin)m(t)e(the)i(\014rst)f(digit,)f(other)i(co)s(des)f(ma)m(y)h(ha)m -(v)m(e)h('0')f(for)g(no-extra-)94 1104 y(space-needed.)219 -1245 y(The)23 b(next)h(c)m(haracters)i(are)e(alternating)f(bars)g(and)h -(spaces,)h(as)g(m)m(ultiples)c(of)j(the)g(base)g(dimension)d(whic)m(h) -94 1345 y(is)35 b(1)g(unless)f(the)i(co)s(de)f(is)f(rescaled.)56 -b(Rescaling)34 b(is)h(calculated)g(as)g(the)h(ratio)f(from)g(the)h -(requested)f(width)94 1445 y(and)e(the)h(calculated)f(width.)48 -b(Digits)33 b(represen)m(t)g(bar/space)h(dimensions.)47 -b(Lo)m(w)m(er-case)35 b(letters)f(represen)m(t)94 1544 -y(those)d(bars)f(that)h(should)e(extend)i(lo)m(w)m(er)f(than)h(the)f -(others:)41 b('a')32 b(is)d(equiv)-5 b(alen)m(t)30 b(to)h('1',)h('b')f -(is)e('2')i(and)f(so)h(on)94 1644 y(up)e(to)h('i')g(whic)m(h)e(is)g -(equiv)-5 b(alen)m(t)29 b(to)i('9'.)41 b(Other)29 b(letters)h(will)d(b) -s(e)i(used)g(for)g(enco)s(ding-sp)s(eci\014c)f(meanings,)h(as)94 -1743 y(so)s(on)i(as)f(I)g(implemen)m(t)f(them.)219 1885 -y(The)35 b Fj(textinfo)e Fl(string)h(is)h(made)g(up)f(of)i(\014elds)e -Fj(\045lf:\045lf:\045c)e Fl(separated)k(b)m(y)g(blank)e(space.)56 -b(The)35 b(\014rst)94 1984 y(in)m(teger)f(is)e(the)h(x)g(p)s(osition)e -(of)i(the)h(c)m(haracter,)h(the)e(second)g(is)f(the)i(fon)m(t)f(size)g -(\(b)s(efore)g(rescaling\))f(and)h(the)94 2084 y(c)m(har)e(item)f(is)g -(the)g(c)m(haracter)i(to)f(b)s(e)f(prin)m(ted.)219 2225 -y(Both)39 b(the)g Fj(partial)d Fl(and)i Fj(textinfo)f -Fl(strings)g(ma)m(y)i(include)d(\\)p Fj(-)p Fl(")j(or)g(\\)p -Fj(+)p Fl(")g(as)g(sp)s(ecial)e(c)m(haracters)j(\(in)94 -2325 y Fj(textinfo)25 b Fl(the)j(c)m(har)f(should)e(b)s(e)i(a)g -(stand-alone)g(w)m(ord\).)40 b(They)26 b(state)j(where)d(the)i(text)g -(should)d(b)s(e)h(prin)m(ted:)94 2424 y(b)s(elo)m(w)34 -b(the)g(bars)f(\(\\)p Fj(-)p Fl(",)j(default\))e(or)g(ab)s(o)m(v)m(e)h -(the)f(bars.)51 b(This)32 b(is)h(used,)i(for)e(example,)i(to)g(prin)m -(t)e(the)h(add-5)94 2524 y(and)27 b(add-2)g(co)s(des)g(to)h(the)f(righ) -m(t)f(of)i(UPC)e(or)h(EAN)g(co)s(des)g(\(the)h(add-5)f(extension)g(is)f -(mostly)g(used)g(in)g(ISBN)94 2623 y(co)s(des\).)94 2939 -y Fi(3)81 b(The)53 b(Flags)219 3213 y Fl(The)30 b(follo)m(wing)f -(\015ags)h(are)h(supp)s(orted)e(b)m(y)h(v)m(ersion)g(0.98)i(of)e(the)h -(library:)94 3387 y Fj(BARCODE_ENCODING_MASK)574 3487 -y Fl(The)f(mask)h(is)e(used)h(to)h(extract)h(the)e(enco)s(ding-t)m(yp)s -(e)g(iden)m(ti\014er)f(from)h(the)g Fg(\015ags)39 b Fl(\014eld.)94 -3653 y Fj(BARCODE_EAN)94 3753 y(BARCODE_UPC)94 3852 y(BARCODE_ISBN)94 -3952 y(BARCODE_128B)94 4051 y(BARCODE_128C)94 4151 y(BARCODE_128)94 -4251 y(BARCODE_128RAW)94 4350 y(BARCODE_39)94 4450 y(BARCODE_I25)94 -4550 y(BARCODE_CBR)94 4649 y(BARCODE_MSI)94 4749 y(BARCODE_PLS)94 -4848 y(BARCODE_93)574 4948 y Fl(The)d(curren)m(tly)f(supp)s(orted)g -(enco)s(ding)g(t)m(yp)s(es:)52 b(EAN)36 b(\(13)i(digits,)e(8)h(digits,) -f(13)h Fj(+)f Fl(2)g(add-on)574 5048 y(and)26 b(13)i -Fj(+)e Fl(5)h(add-on\),)g(UPC)f(\(UPC-A,)i(UPC-E,)e(UPC-A)h(with)e(2)i -(or)f(5)h(digit)f(add-on\),)h(ISBN)574 5147 y(\(with)e(or)f(without)g -(the)i(5-digit)e(add-on\),)i(CODE128-B)h(\(the)e(whole)g(set)g(of)g -(prin)m(table)e(ASCI)s(I)574 5247 y(c)m(haracters\),)36 -b(CODE128-C)d(\(t)m(w)m(o)i(digits)c(enco)s(ded)h(b)m(y)h(eac)m(h)h -(barco)s(de)e(sym)m(b)s(ol\),)h(CODE128)574 5347 y(\(all)41 -b(ASCI)s(I)f(v)-5 b(alues\),)44 b(a)e(\\ra)m(w-input")f(pseudo-co)s(de) -h(that)g(generates)h(CODE128)f(output,)574 5446 y(CODE39)32 -b(\(alphan)m(umeric\),)e Fj(")p Fl(in)m(terlea)m(v)m(ed)i(2)f(of)h(5)p -Fj(")f Fl(\(n)m(umeric\),)g(Co)s(dabar)f(\(n)m(umeric)g(plus)g(a)574 -5546 y(few)36 b(sym)m(b)s(ols\),)g(MSI)f(\(n)m(umeric\))g(and)g -(Plessey)g(\(hex)g(digits\).)55 b(See)36 b(Chapter)f(6)h([Supp)s(orted) -574 5645 y(Enco)s(dings],)30 b(page)h(7.)p eop -%%Page: 4 5 -4 4 bop 94 -116 a Fl(Chapter)30 b(4:)41 b(F)-8 b(unctions)30 -b(Exp)s(orted)g(b)m(y)g(the)h(Library)1871 b(4)94 365 -y Fj(BARCODE_ANY)574 465 y Fl(This)27 b(sp)s(ecial)g(enco)s(ding)g(t)m -(yp)s(e)h(\(represen)m(ted)h(b)m(y)f(a)h(v)-5 b(alue)27 -b(of)i(zero,)h(so)e(it)g(will)d(b)s(e)j(the)g(default\))574 -565 y(tells)33 b(the)g(enco)s(ding)f(pro)s(cedure)g(to)h(lo)s(ok)g(for) -g(the)g(\014rst)f(enco)s(ding)g(t)m(yp)s(e)i(that)f(can)h(deal)e(with) -574 664 y(a)44 b(textual)f(string.)77 b(Therefore,)46 -b(a)d(11-digit)f(co)s(de)h(will)e(b)s(e)h(prin)m(ted)f(as)i(UPC)g(\(as) -g(w)m(ell)f(as)574 764 y(6-digit,)48 b(11)p Fj(+)p Fl(2)e(and)e(11)p -Fj(+)p Fl(5\),)49 b(a)c(12-digit)g(\(or)g(7-digit,)i(or)e(12)p -Fj(+)p Fl(2)h(or)e(12)p Fj(+)p Fl(5\))i(as)f(EAN13,)k(an)574 -863 y(ISBN)39 b(co)s(de)f(\(with)g(or)g(without)f(h)m(yphens,)i(with)e -(or)i(without)e(add-5\))i(will)d(b)s(e)h(enco)s(ded)h(in)574 -963 y(its)e(EAN13)i(represen)m(tation,)g(an)e(ev)m(en)h(n)m(um)m(b)s -(er)e(of)i(digits)e(is)g(enco)s(ded)h(using)f(CODE128C)574 -1063 y(and)45 b(a)h(generic)f(string)f(is)h(enco)s(ded)g(using)f -(CODE128B.)j(Since)d(co)s(de-39)j(o\013ers)e(a)h(m)m(uc)m(h)574 -1162 y(larger)38 b(represen)m(tation)f(for)h(the)f(same)h(text)h -(string,)f(co)s(de128-b)h(is)e(preferred)f(o)m(v)m(er)j(co)s(de39)574 -1262 y(for)31 b(alphan)m(umeric)d(strings.)94 1411 y -Fj(BARCODE_NO_ASCII)574 1510 y Fl(Instructs)f(the)h(engine)e(not)i(to)g -(prin)m(t)e(the)i(ascii)e(string)h(on)g(output.)39 b(By)28 -b(default)e(the)i(bar)f(co)s(de)574 1610 y(is)j(accompanied)g(with)f -(an)i(ascii)e(v)m(ersion)h(of)h(the)f(text)i(it)d(enco)s(des.)94 -1759 y Fj(BARCODE_NO_CHECKSUM)574 1858 y Fl(Instructs)j(the)h(engine)f -(not)h(to)g(add)f(the)h(c)m(hec)m(ksum)g(c)m(haracter)h(to)f(the)g -(output.)47 b(Not)33 b(all)f(the)574 1958 y(enco)s(ding)23 -b(t)m(yp)s(es)g(can)h(drop)f(the)h(c)m(hec)m(ksum;)i(those)e(where)f -(the)h(c)m(hec)m(ksum)g(is)f(mandatory)g(\(lik)m(e)574 -2058 y(EAN)31 b(and)f(UPC\))g(just)g(ignore)g(the)h(\015ag.)94 -2206 y Fj(BARCODE_OUTPUT_MASK)574 2306 y Fl(The)f(mask)h(is)e(used)h -(to)h(extract)h(the)e(output-t)m(yp)s(e)h(iden)m(ti\014er)d(from)i(the) -h Fg(\015ags)38 b Fl(\014eld.)94 2455 y Fj(BARCODE_OUT_PS)94 -2554 y(BARCODE_OUT_EPS)94 2654 y(BARCODE_OUT_PCL)94 2753 -y(BARCODE_OUT_PCL_III)574 2853 y Fl(The)48 b(curren)m(tly)f(supp)s -(orted)f(enco)s(ding)g(t)m(yp)s(es:)76 b(full-page)47 -b(p)s(ostscript)f(and)h(encapsulated)574 2953 y(p)s(ostscript;)h(PCL)41 -b(\(prin)m(t)g(command)i(language,)j(for)c(HP)g(prin)m(ters\))f(and)h -(PCL-I)s(I)s(I)e(\(same)574 3052 y(as)31 b(PCL,)f(but)g(uses)g(a)g(fon) -m(t)h(not)g(a)m(v)-5 b(ailable)30 b(on)g(older)f(prin)m(ters\).)94 -3201 y Fj(BARCODE_OUT_NOHEADERS)574 3301 y Fl(The)f(\015ag)h(instructs) -d(the)j(prin)m(ting)d(engine)h(not)i(to)f(prin)m(t)f(the)h(header)g -(and)g(fo)s(oter)h(part)e(of)i(the)574 3400 y(\014le.)40 -b(This)29 b(mak)m(es)i(sense)f(for)f(the)i(p)s(ostscript)d(engine)i -(but)f(migh)m(t)h(not)h(mak)m(e)g(sense)f(for)g(other)574 -3500 y(engines;)k(suc)m(h)f(other)h(engines)e(will)e(silen)m(tly)i -(ignore)g(the)i(\015ag)f(just)g(lik)m(e)f(the)h(PCL)f(bac)m(k-end)574 -3600 y(do)s(es.)94 3881 y Fi(4)81 b(F)-13 b(unctions)52 -b(Exp)t(orted)h(b)l(y)g(the)g(Library)219 4103 y Fl(The)41 -b(functions)f(included)f(in)h(the)i(barco)s(de)f(library)e(are)j -(declared)f(in)g(the)g(header)h(\014le)e Fj(barcode.h)p -Fl(.)94 4203 y(They)30 b(p)s(erform)f(the)i(follo)m(wing)e(tasks:)94 -4352 y Fj(struct)g(Barcode_Item)e(*Barcode_Create\(char)e(*text\);)574 -4451 y Fl(The)35 b(function)e(creates)j(a)f(new)g(barco)s(de)f(ob)5 -b(ject)36 b(to)f(deal)g(with)e(a)i(sp)s(eci\014ed)e(text)j(string.)53 -b(It)574 4551 y(returns)27 b(NULL)h(in)e(case)j(of)f(failure)e(and)i(a) -g(p)s(oin)m(ter)f(to)h(a)h(barco)s(de)e(data)i(structure)e(in)g(case)i -(of)574 4651 y(success.)94 4799 y Fj(int)h(Barcode_Delete\(struct)25 -b(Barcode_Item)i(*bc\);)574 4899 y Fl(Destro)m(y)32 b(a)f(barco)s(de)f -(ob)5 b(ject.)42 b(Alw)m(a)m(ys)31 b(returns)e(0)h(\(success\))94 -5048 y Fj(int)g(Barcode_Encode\(struct)25 b(Barcode_Item)i(*bc,)i(int)g -(flags\);)574 5147 y Fl(Enco)s(de)h(the)h(text)g(included)d(in)h(the)h -Fg(b)-5 b(c)35 b Fl(ob)5 b(ject.)42 b(V)-8 b(alid)29 -b(\015ags)i(are)f(the)h(enco)s(ding)e(t)m(yp)s(e)h(\(other)574 -5247 y(\015ags)45 b(are)f(ignored\))g(and)g(BAR)m(CODE)p -1994 5247 28 4 v 33 w(NO)p 2166 5247 V 33 w(CHECKSUM)f(\(other)i -(\015ags)f(are)h(silen)m(tly)d(ig-)574 5347 y(nored\);)35 -b(if)e(the)g(\015ag)h(argumen)m(t)g(is)e(zero,)j Fj(bc->flags)c -Fl(will)g(apply)-8 b(.)49 b(The)32 b(function)g(returns)h(0)574 -5446 y(on)h(success)g(and)f(-1)i(in)d(case)j(of)f(error.)51 -b(After)34 b(successful)e(termination)h(the)h(data)g(structure)574 -5546 y(will)21 b(host)i(the)h(description)d(of)j(the)f(bar)g(co)s(de)g -(and)g(its)g(textual)g(represen)m(tation,)i(after)f(a)g(failure)574 -5645 y(the)31 b Fj(error)e Fl(\014eld)g(will)f(include)g(the)i(reason)h -(of)f(the)h(failure.)p eop -%%Page: 5 6 -5 5 bop 94 -116 a Fl(Chapter)30 b(5:)41 b(The)30 b Fg(b)-5 -b(ar)g(c)g(o)g(de)40 b Fl(fron)m(tend)30 b(program)2063 -b(5)94 365 y Fj(int)30 b(Barcode_Print\(struct)25 b(Barcode_Item)i -(*bc,)i(FILE)g(*f,)h(int)f(flags\);)574 465 y Fl(Prin)m(t)39 -b(the)g(bar)g(co)s(de)g(describ)s(ed)e(b)m(y)i Fj(bc)g -Fl(to)h(the)f(sp)s(eci\014ed)f(\014le.)66 b(V)-8 b(alid)38 -b(\015ags)h(are)h(the)f(out-)574 565 y(put)25 b(t)m(yp)s(e,)h -Fj(BARCODE_NO_ASCII)21 b Fl(and)j Fj(BARCODE_OUT_NOHEADERS)p -Fl(,)d(other)k(\015ags)g(are)h(ignored.)574 664 y(If)39 -b(an)m(y)h(of)f(these)h(\015ags)g(is)e(zero,)43 b(it)c(will)d(b)s(e)j -(inherited)e(from)i Fj(bc->flags)d Fl(whic)m(h)i(therefore)574 -764 y(tak)m(es)f(precedence.)57 b(The)35 b(function)g(returns)f(0)i(on) -f(success)h(and)f(-1)h(in)e(case)j(of)f(error)f(\(with)574 -863 y Fj(bc->error)28 b Fl(set)j(accordingly\).)40 b(In)29 -b(case)j(of)e(success,)h(the)f(bar)g(co)s(de)g(is)f(prin)m(ted)g(to)i -(the)f(sp)s(ec-)574 963 y(i\014ed)f(\014le,)h(whic)m(h)f(w)m(on't)i(b)s -(e)f(closed)g(after)h(use.)94 1115 y Fj(int)f(Barcode_Position\(struct) -24 b(Barcode_Item)j(*bc,)i(int)h(wid,)f(int)g(hei,)h(int)f(xoff,)g(int) -h(yoff,)94 1215 y(double)f(scalef\);)574 1315 y Fl(The)h(function)f(is) -h(a)h(shortcut)f(to)h(assign)f(v)-5 b(alues)29 b(to)j(the)e(data)h -(structure.)94 1467 y Fj(int)f(Barcode_Encode_and_Print)o(\(cha)o(r)24 -b(*text,)29 b(FILE)g(*f,)h(int)f(wid,)g(int)h(hei,)f(int)h(xoff,)f(int) -94 1567 y(yoff,)g(int)h(flags\);)574 1666 y Fl(The)38 -b(function)e(deals)h(with)g(the)h(whole)f(life)f(of)i(the)g(barco)s(de) -g(ob)5 b(ject)39 b(b)m(y)e(calling)g(the)h(other)574 -1766 y(functions;)30 b(it)g(uses)g(all)f(the)h(sp)s(eci\014ed)f -(\015ags.)94 1918 y Fj(int)h(Barcode_Version\(char)25 -b(*versionname\);)574 2018 y Fl(Returns)g(the)g(curren)m(t)f(v)m -(ersion)h(as)g(an)g(in)m(teger)g(n)m(um)m(b)s(er)f(of)h(the)g(form)f -(ma)5 b(jor)25 b(*)h(10000)h Fj(+)d Fl(minor)574 2118 -y(*)k(100)h Fj(+)e Fl(release.)40 b(Therefore,)28 b(v)m(ersion)f -(1.03.5)i(will)c(b)s(e)i(returned)f(as)h(10305)j(and)d(v)m(ersion)f -(0.53)574 2217 y(as)i(5300.)41 b(If)27 b(the)h(argumen)m(t)f(is)f -(non-n)m(ull,)g(it)h(will)e(b)s(e)h(used)h(to)h(return)e(the)h(v)m -(ersion)g(n)m(um)m(b)s(er)f(as)574 2317 y(a)h(string.)39 -b(Note)28 b(that)f(the)f(same)h(information)e(is)h(a)m(v)-5 -b(ailable)26 b(from)g(t)m(w)m(o)i(prepro)s(cessor)d(macros:)574 -2416 y Fj(BARCODE_VERSION)i Fl(\(the)k(string\))e(and)h -Fj(BARCODE_VERSION_INT)25 b Fl(\(the)31 b(in)m(teger)g(n)m(um)m(b)s -(er\).)94 2705 y Fi(5)81 b(The)53 b Fd(b)-8 b(ar)g(c)g(o)g(de)65 -b Fi(fron)l(tend)51 b(program)219 2938 y Fl(The)26 b -Fc(barco)s(de)g Fl(program)g(is)f(a)h(fron)m(t-end)g(to)h(access)h -(some)e(features)h(of)f(the)g(library)e(from)i(the)g(command)94 -3037 y(line.)63 b(It)38 b(is)g(able)f(to)i(read)f(user)g(supplied)d -(strings)i(from)h(the)g(command)g(line)e(or)j(a)f(data)h(\014le)e -(\(standard)94 3137 y(input)29 b(b)m(y)h(default\))g(and)g(enco)s(de)g -(all)g(of)g(them.)94 3401 y Fk(5.1)69 b(The)44 b(Command)h(Line)219 -3587 y Fc(barco)s(de)30 b Fl(accepts)i(the)e(follo)m(wing)f(options:)94 -3741 y Fj(--help)g(or)h(-h)574 3840 y Fl(Prin)m(t)g(a)h(usage)g -(summary)e(and)h(exit.)94 3993 y Fj(-i)g(filename)574 -4092 y Fl(Iden)m(tify)35 b(a)h(\014le)f(where)g(strings)f(to)j(b)s(e)e -(enco)s(ded)g(are)h(read)f(from.)56 b(If)36 b(missing)d(\(and)i(if)g -Fj(-b)g Fl(is)574 4192 y(not)29 b(used\))f(it)g(defaults)f(to)i -(standard)e(input.)38 b(Eac)m(h)29 b(data)g(line)e(of)h(the)h(input)d -(\014le)i(will)d(b)s(e)j(used)574 4292 y(to)k(create)g(one)e(barco)s -(de)g(output.)94 4444 y Fj(-o)g(filename)574 4544 y Fl(Output)g -(\014le.)40 b(It)30 b(defaults)f(to)j(standard)d(output.)94 -4696 y Fj(-b)h(string)66 b Fl(Sp)s(ecify)32 b(a)j(single)d(\\barco)s -(de")i(string)f(to)h(b)s(e)g(enco)s(ded.)50 b(The)33 -b(option)g(can)h(b)s(e)f(used)g(m)m(ultiple)574 4796 -y(times)j(in)e(order)h(to)h(enco)s(de)g(m)m(ultiple)d(strings)i(\(this) -f(will)f(result)i(in)f(m)m(ulti-page)h(p)s(ostscript)574 -4895 y(output)22 b(or)g(a)g(table)g(of)g(barco)s(des)g(if)f -Fj(-t)g Fl(is)g(sp)s(eci\014ed\).)37 b(The)21 b(strings)g(m)m(ust)h -(matc)m(h)h(the)f(enco)s(ding)574 4995 y(c)m(hosen;)29 -b(if)c(it)g(do)s(esn't)h(matc)m(h)h(the)f(program)g(will)d(prin)m(t)i -(a)h(w)m(arning)f(to)i Fj(stderr)d Fl(and)h(generate)574 -5095 y(\\blank")44 b(output)g(\(although)h(not)f(zero-length\).)84 -b(Please)44 b(note)h(that)g(a)g(string)e(including)574 -5194 y(spaces)31 b(or)g(other)f(sp)s(ecial)f(c)m(haracters)j(m)m(ust)e -(b)s(e)g(prop)s(erly)e(quoted.)94 5347 y Fj(-e)i(encoding)574 -5446 y Fc(enco)s(ding)j Fl(is)e(the)i(name)f(of)h(the)g(c)m(hosen)g -(enco)s(ding)e(format)i(b)s(eing)e(used.)46 b(It)32 b(defaults)g(to)h -(the)574 5546 y(v)-5 b(alue)41 b(of)f(the)h(en)m(vironmen)m(t)g(v)-5 -b(ariable)39 b Fj(BARCODE_ENCODING)d Fl(or)41 b(to)g(auto)h(detection)f -(if)f(the)574 5645 y(en)m(vironmen)m(t)30 b(is)g(also)g(unset.)p -eop -%%Page: 6 7 -6 6 bop 94 -116 a Fl(Chapter)30 b(6:)41 b(Supp)s(orted)29 -b(Enco)s(dings)2417 b(6)94 365 y Fj(-g)30 b(geometry)574 -465 y Fl(The)e(geometry)g(argumen)m(t)g(is)f(of)h(the)f(form)g(\\[)p -Fj(<)p Fg(width)p Fj(>)i(x)f(<)p Fg(height)p Fj(>)p Fl(])f([)p -Fj(+)h(<)p Fg(xmar)-5 b(gin)p Fj(>)28 b(+)f(<)p Fg(ymar-)574 -565 y(gin)p Fj(>)p Fl(]")42 b(\(with)f(no)h(in)m(terv)m(ening)f -(spaces\).)75 b(Unsp)s(eci\014ed)40 b(margin)h(v)-5 b(alues)41 -b(will)e(result)i(in)f(no)574 664 y(margin;)31 b(unsp)s(eci\014ed)d -(size)j(results)e(in)h(default)g(size.)42 b(The)30 b(sp)s(eci\014ed)f -(v)-5 b(alues)30 b(represen)m(t)h(prin)m(t)574 764 y(p)s(oin)m(ts)e(b)m -(y)g(default,)g(and)g(can)g(b)s(e)g(inc)m(hes,)g(millimeters)e(or)i -(other)h(units)e(according)h(to)h(the)g Fj(-u)574 863 -y Fl(option)j(or)h(the)g Fj(BARCODE_UNIT)c Fl(en)m(vironmen)m(t)j(v)-5 -b(ariable.)49 b(The)33 b(argumen)m(t)h(is)e(used)h(to)h(place)574 -963 y(the)g(prin)m(tout)f(co)s(de)h(on)f(the)h(page.)51 -b(Note)35 b(that)f(an)f(additional)f(white)g(margin)h(of)h(10)g(p)s -(oin)m(ts)574 1063 y(is)e(added)f(to)i(the)g(prin)m(tout.)45 -b(If)31 b(the)i(option)f(is)f(unsp)s(eci\014ed,)f Fj(BARCODE_GEOMETRY)e -Fl(is)j(lo)s(ok)m(ed)574 1162 y(up)h(in)f(the)h(en)m(vironmen)m(t,)h -(if)e(missing)f(a)j(default)f(size)g(and)g(no)g(margin)f(\(but)h(the)h -(default)e(10)574 1262 y(p)s(oin)m(ts\))f(are)h(used.)94 -1409 y Fj(-t)f(table-geometry)574 1508 y Fl(Used)j(to)g(prin)m(t)e(sev) -m(eral)i(barco)s(des)f(to)i(a)f(single)e(page,)j(this)d(option)h(is)g -(mean)m(t)h(to)h(b)s(e)d(used)h(to)574 1608 y(prin)m(t)e(stic)m(k)m -(ers.)43 b(The)30 b(argumen)m(t)h(is)f(of)h(the)g(form)g(\\)p -Fj(<)p Fg(c)-5 b(olumns)p Fj(>)32 b(x)e(<)p Fg(lines)p -Fj(>)h Fl([)p Fj(+)g(<)p Fg(leftmar)-5 b(gin)p Fj(>)31 -b(+)574 1707 y(<)p Fg(b)-5 b(ottommar)g(gin)p Fj(>)39 -b Fl([)p Fj(-)d(<)p Fg(rightmar)-5 b(gin)p Fj(>)38 b -Fl([)p Fj(-)e(<)p Fg(topmar)-5 b(gin)p Fj(>)p Fl(]]]")39 -b(\(with)c(no)h(in)m(terv)m(ening)f(spaces\);)574 1807 -y(if)42 b(missing,)i(the)f(top)g(and)f(righ)m(t)g(margin)g(will)e -(default)i(to)i(b)s(e)e(the)h(same)g(as)g(the)g(b)s(ottom)574 -1907 y(and)c(left)g(margin.)66 b(The)38 b(margins)g(are)i(sp)s -(eci\014ed)d(in)h(prin)m(t)g(p)s(oin)m(ts)g(or)h(in)e(the)j(c)m(hosen)f -(unit)574 2006 y(\(see)f Fj(-u)d Fl(b)s(elo)m(w\).)59 -b(If)35 b(the)i(option)f(is)f(not)i(sp)s(eci\014ed,)f -Fj(BARCODE_TABLE)d Fl(is)i(lo)s(ok)m(ed)h(up)g(in)f(the)574 -2106 y(en)m(vironmen)m(t,)d(otherwise)f(no)h(table)f(is)g(prin)m(ted)f -(and)h(eac)m(h)i(barco)s(de)f(will)c(get)33 b(its)e(o)m(wn)h(page.)574 -2206 y(The)27 b(size)g(\(but)f(not)h(the)g(p)s(osition\))e(of)j(a)f -(barco)s(de)f(item)h(within)d(a)k(table)e(can)h(also)g(b)s(e)f -(selected)574 2305 y(using)43 b Fj(-g)g Fl(\(see)i Fj(")p -Fl(geometry)p Fj(")g Fl(ab)s(o)m(v)m(e\),)k(without)43 -b(struggling)f(with)h(external)h(and)f(in)m(ternal)574 -2405 y(margins.)71 b(I)40 b(still)e(think)h(managemen)m(t)j(of)f -(geometries)g(in)f(a)h(table)f(is)g(sub)s(optimal,)g(but)g(I)574 -2504 y(can't)32 b(mak)m(e)f(it)f(b)s(etter)h(without)e(in)m(tro)s -(ducing)f(incompatibilities.)94 2651 y Fj(-m)i(margin\(s\))574 -2751 y Fl(Sp)s(eci\014es)21 b(an)g(in)m(ternal)g(margin)g(for)g(eac)m -(h)i(stic)m(k)m(er)g(in)d(the)i(table.)38 b(The)21 b(argumen)m(t)i(is)d -(of)i(the)g(form)574 2850 y(\\)p Fj(<)p Fg(xmar)-5 b(gin)p -Fj(>,<)p Fg(ymar)g(gin)p Fj(>)p Fl(")35 b(and)c(the)g(margin)g(is)g -(applied)e(symmetrically)h(to)i(the)g(stic)m(k)m(er.)45 -b(If)574 2950 y(unsp)s(eci\014ed,)28 b(the)h(en)m(vironmen)m(t)g(v)-5 -b(ariable)28 b Fj(BARCODE_MARGIN)e Fl(is)i(used)h(or)g(a)h(default)e -(in)m(ternal)574 3050 y(margin)i(of)g(10)i(p)s(oin)m(ts)d(is)g(used.)94 -3196 y Fj(-n)384 b Fl(\\Numeric")31 b(output:)40 b(don't)31 -b(prin)m(t)e(the)h(ASCI)s(I)f(form)h(of)g(the)h(co)s(de,)g(only)e(the)i -(bars.)94 3343 y Fj(-c)384 b Fl(No)35 b(c)m(hec)m(ksum)f(c)m(haracter)h -(\(for)f(enco)s(dings)e(that)j(allo)m(w)e(it,)h(lik)m(e)f(co)s(de)h -(39,)h(other)f(co)s(des,)h(lik)m(e)574 3442 y(UPC)c(or)f(EAN,)h(ignore) -f(this)f(option\).)94 3589 y Fj(-E)384 b Fl(Encapsulated)32 -b(p)s(ostscript)f(\(default)h(is)g(normal)f(p)s(ostscript\).)47 -b(When)32 b(the)h(output)f(is)f(gener-)574 3689 y(ated)h(as)e(EPS)g -(only)f(one)i(barco)s(de)f(is)f(enco)s(ded.)94 3835 y -Fj(-P)384 b Fl(PCL)35 b(output.)56 b(Please)36 b(note)g(that)g(the)f(Y) -h(direction)e(go)s(es)i(from)f(top)h(to)g(b)s(ottom)g(for)f(PCL,)574 -3935 y(and)30 b(the)h(origin)e(for)h(an)g(image)h(is)e(the)i(top-left)f -(corner)h(instead)e(of)i(the)f(b)s(ottom-left)94 4081 -y Fj(-p)g(pagesize)574 4181 y Fl(Sp)s(ecify)44 b(a)h(non-default)f -(page)i(size.)85 b(The)45 b(page)h(size)f(can)g(b)s(e)f(sp)s(eci\014ed) -g(in)g(millimeters,)574 4281 y(inc)m(hes)34 b(or)g(plain)e(n)m(um)m(b)s -(ers)g(\(for)i(example:)48 b Fj("210x297mm")p Fl(,)32 -b Fj("8.5x11in")p Fl(,)g Fj("595x842")p Fl(\).)50 b(A)574 -4380 y(page)27 b(sp)s(eci\014cation)d(as)i(n)m(um)m(b)s(ers)e(will)f(b) -s(e)i(in)m(terpreted)g(according)g(to)i(the)f(curren)m(t)f(unit)f(sp)s -(ec-)574 4480 y(i\014cation)33 b(\(see)h Fj(-u)e Fl(b)s(elo)m(w\).)49 -b(If)33 b(libpap)s(er)d(is)i(a)m(v)-5 b(ailable,)33 b(y)m(ou)h(can)f -(also)g(sp)s(ecify)f(the)h(page)h(size)574 4580 y(with)40 -b(its)g(name,)k(lik)m(e)d Fj("A3")e Fl(or)i Fj("letter")e -Fl(\(libpap)s(er)f(is)i(a)h(standard)g(comp)s(onen)m(t)g(of)g(De-)574 -4679 y(bian)d(GNU/Lin)m(ux,)k(but)d(ma)m(y)h(b)s(e)e(missing)f -(elsewhere\).)68 b(The)39 b(default)f(page)i(size)g(is)e(y)m(our)574 -4779 y(system-wide)30 b(default)g(if)f(libpap)s(er)e(is)j(there,)h(A4)g -(otherwise.)94 4925 y Fj(-u)f(unit)162 b Fl(Cho)s(ose)32 -b(the)f(unit)f(used)g(in)g(size)i(sp)s(eci\014cations.)42 -b(Accepted)32 b(v)-5 b(alues)31 b(are)g(\\mm",)i(\\cm",)f(\\in")574 -5025 y(and)37 b(\\pt".)61 b(By)37 b(default,)h(the)f(program)f(will)f -(c)m(hec)m(k)j Fj(BARCODE_UNIT)33 b Fl(in)j(the)h(en)m(vironmen)m(t,) -574 5125 y(and)c(assume)g(p)s(oin)m(ts)g(otherwise)f(\(this)h(b)s(eha)m -(viour)f(is)g(compatible)h(with)f(0.92)j(and)d(previous)574 -5224 y(v)m(ersions.)50 b(If)33 b Fj(-u)g Fl(app)s(ears)g(more)g(than)g -(once,)j(eac)m(h)e(instance)f(will)e(mo)s(di\014ed)h(the)h(b)s(eha)m -(viour)574 5324 y(for)h(the)g(argumen)m(ts)g(at)g(its)f(righ)m(t,)i(as) -f(the)g(command)f(line)f(is)h(pro)s(cesses)g(left)h(to)g(righ)m(t.)50 -b(The)574 5424 y(program)32 b(in)m(ternally)f(w)m(orks)h(with)f(p)s -(oin)m(ts,)h(and)f(an)m(y)i(size)f(is)f(appro)m(ximated)h(to)h(the)f -(nearest)574 5523 y(m)m(ultiple)c(of)j(one)f(p)s(oin)m(t.)40 -b(The)30 b Fj(-u)f Fl(option)h(a\013ect)i Fj(-g)e Fl(\(geometry\),)i -Fj(-t)e Fl(\(table\))h(and)e Fj(-p)h Fl(\(page)574 5623 -y(size\).)p eop -%%Page: 7 8 -7 7 bop 94 -116 a Fl(Chapter)30 b(6:)41 b(Supp)s(orted)29 -b(Enco)s(dings)2417 b(7)94 365 y Fi(6)81 b(Supp)t(orted)51 -b(Enco)t(dings)219 558 y Fl(The)31 b(program)h(enco)s(des)g(text)g -(strings)f(passed)g(either)g(on)h(the)g(command)g(line)e(\(with)g(-b\)) -i(or)g(retriev)m(ed)94 658 y(from)38 b(standard)f(input.)61 -b(The)37 b(text)i(represen)m(tation)f(is)f(in)m(terpreted)g(according)g -(to)i(the)f(follo)m(wing)e(rules.)94 758 y(When)42 b(auto-detection)g -(of)g(the)f(enco)s(ding)f(is)h(enabled)f(\(i.e,)k(no)e(explicit)d(enco) -s(ding)h(t)m(yp)s(e)i(is)e(sp)s(eci\014ed\),)94 857 y(the)c(enco)s -(ding)e(t)m(yp)s(es)h(are)h(scanned)f(to)h(\014nd)d(one)j(that)g(can)f -(digest)g(the)g(text)i(string.)54 b(The)35 b(follo)m(wing)e(list)94 -957 y(of)h(supp)s(orted)e(t)m(yp)s(es)h(is)g(sorted)g(in)g(the)g(same)h -(order)f(the)h(library)d(uses)i(when)f(auto-detecting)k(a)d(suitable)94 -1056 y(enco)s(ding)d(for)g(a)h(string.)94 1193 y Fh(EAN)282 -b Fl(The)36 b(EAN)h(fron)m(tend)f(is)g(similar)d(to)38 -b(UPC;)e(it)g(accepts)i(strings)d(of)i(digits,)g(12)g(or)g(7)f(c)m -(harac-)574 1293 y(ters)c(long.)41 b(Strings)30 b(of)h(13)g(or)g(8)g(c) -m(haracters)i(are)e(accepted)h(if)e(the)h(pro)m(vided)f(c)m(hec)m(ksum) -h(digit)574 1393 y(is)40 b(correct.)73 b(I)40 b(exp)s(ect)i(most)f -(users)e(to)j(feed)e(input)f(without)h(a)h(c)m(hec)m(ksum,)j(though.)71 -b(The)574 1492 y(add-2)36 b(and)g(add-5)g(extension)f(are)h(accepted)i -(for)d(b)s(oth)g(the)i(EAN-13)g(and)e(the)h(EAN-8)h(en-)574 -1592 y(co)s(dings.)42 b(The)30 b(follo)m(wing)f(are)j(example)e(of)h(v) --5 b(alid)29 b(input)g(strings:)41 b(\\)p Fj(123456789012)p -Fl(")28 b(\(EAN-)574 1692 y(13\),)43 b(\\)p Fj(1234567890128)p -Fl(")37 b(\(EAN-13)k(wih)c(c)m(hec)m(ksum\),)43 b(\\)p -Fj(1234567)p Fl(")38 b(\(EAN-8\),)44 b(\\)p Fj(12345670)574 -1791 y(12345)p Fl(")23 b(\(EAN-8)h(with)e(c)m(hec)m(ksum)h(and)g -(add-5\),)i(\\)p Fj(123456789012)45 b(12)p Fl(")23 b(\(EAN-13)i(with)c -(add-)574 1891 y(2\),)32 b(\\)p Fj(123456789012)45 b(12345)p -Fl(")29 b(\(EAN-13)j(with)d(add-5\).)94 2028 y Fh(UPC)284 -b Fl(The)35 b(UPC)g(fron)m(tend)g(accepts)i(only)d(strings)g(made)i(up) -e(of)h(digits)f(\(and,)j(if)d(a)i(supplemen)m(tal)574 -2127 y(enco)s(ding)27 b(is)g(used,)g(a)h(blank)f(to)h(separate)g(it\).) -40 b(It)28 b(accepts)h(strings)d(of)i(11)g(or)g(12)g(digits)f(\(UPC-) -574 2227 y(A\))k(and)f(6)h(or)f(7)h(or)f(8)h(digits)e(\(UPC-E\).)574 -2345 y(The)c(12th)h(digit)e(of)h(UPC-A)g(is)f(the)h(c)m(hec)m(ksum)h -(and)e(is)g(added)h(b)m(y)g(the)g(library)d(if)i(not)i(sp)s(eci\014ed) -574 2445 y(in)k(the)h(input;)e(if)h(it)h(is)f(sp)s(eci\014ed,)f(it)h(m) -m(ust)h(b)s(e)f(the)h(righ)m(t)g(c)m(hec)m(ksum)g(or)g(the)g(co)s(de)g -(is)f(rejected)574 2545 y(as)38 b(in)m(v)-5 b(alid.)59 -b(F)-8 b(or)38 b(UPC-E,)f(6)h(digit)e(are)i(considered)e(to)i(b)s(e)e -(the)i(middle)d(part)i(of)g(the)g(co)s(de,)574 2644 y(a)i(leading)d(0)i -(is)f(assumed)g(and)g(the)h(c)m(hec)m(ksum)g(is)f(added;)k(7)d(digits)e -(are)i(either)f(considered)574 2744 y(the)30 b(initial)d(part)i -(\(leading)g(digit)f(0)i(or)g(1,)g(c)m(hec)m(ksum)g(missing\))e(or)i -(the)f(\014nal)g(part)g(\(c)m(hec)m(ksum)574 2844 y(sp)s(eci\014ed,)f -(leading)g(0)i(assumed\);)g(8)f(digits)f(are)i(considered)e(to)i(b)s(e) -e(the)i(complete)f(co)s(de,)h(with)574 2943 y(leading)k(0)i(or)f(1)g -(and)g(c)m(hec)m(ksum.)55 b(F)-8 b(or)36 b(b)s(oth)f(UPC-A)g(and)f -(UPC-E,)i(a)f(trailing)e(string)h(of)i(2)574 3043 y(digits)30 -b(or)h(5)g(digits)e(is)h(accepted)i(as)f(w)m(ell.)40 -b(Therefore,)31 b(the)g(follo)m(wing)e(are)i(examples)g(of)g(v)-5 -b(alid)574 3142 y(strings)41 b(that)h(can)f(b)s(e)g(enco)s(ded)g(as)h -(UPC:)f(\\)p Fj(01234567890)p Fl(")e(\(UPC-A\))j(\\)p -Fj(012345678905)p Fl(")574 3242 y(\(UPC-A)33 b(with)d(c)m(hec)m -(ksum\),)k(\\)p Fj(012345)p Fl(")d(\(UPC-E\),)i(\\)p -Fj(01234567890)45 b(12)p Fl(")32 b(\(UPC-A,)g(add-2\))574 -3342 y(and)21 b(\\)p Fj(01234567890)45 b(12345)p Fl(")20 -b(\(UPC-A,)i(add-5\),)h(\\)p Fj(0123456)47 b(12)p Fl(")20 -b(\(UPC-E,)i(add-2\).)38 b(Please)574 3441 y(note)24 -b(that)f(when)f(setting)h Fj(BARCODE_ANY)c Fl(to)24 b(auto-detect)h -(the)e(enco)s(ding)f(to)h(b)s(e)f(used,)i(12-digit)574 -3541 y(strings)32 b(and)h(7-digit)f(strings)g(will)e(alw)m(a)m(ys)k(b)s -(e)e(iden)m(ti\014ed)f(as)i(EAN.)h(This)d(b)s(ecause)i(I)f(exp)s(ect) -574 3641 y(most)h(user)f(to)h(pro)m(vide)f(input)e(without)i(a)g(c)m -(hec)m(ksum.)48 b(If)32 b(y)m(ou)h(need)f(to)h(sp)s(ecify)e(UPC-with-) -574 3740 y(c)m(hec)m(ksum)h(as)g(input)d(y)m(ou)i(m)m(ust)g(explicitly) -e(set)j Fj(BARCODE_UPC)c Fl(as)j(a)g(\015ag)h(or)f(use)g -Fj(-e)47 b(upc)30 b Fl(on)574 3840 y(the)h(command)f(line.)94 -3977 y Fh(ISBN)264 b Fl(ISBN)26 b(n)m(um)m(b)s(ers)e(are)i(enco)s(ded)f -(as)h(EAN-13)g(sym)m(b)s(ols,)g(with)e(an)h(optional)g(add-5)g -(trailer.)38 b(The)574 4076 y(ISBN)27 b(fron)m(tend)f(of)h(the)g -(library)e(accepts)j(real)e(ISBN)h(n)m(um)m(b)s(ers)e(and)h(deals)h -(with)e(an)m(y)i(h)m(yphen)574 4176 y(and,)h(if)f(presen)m(t,)h(the)g -(ISBN)f(c)m(hec)m(ksum)i(c)m(haracter)g(b)s(efore)e(enco)s(ding)f -(data.)41 b(V)-8 b(alid)26 b(represen-)574 4276 y(tations)j(for)e(ISBN) -h(strings)e(are)j(for)e(example:)40 b(\\)p Fj(1-56592-292-1)p -Fl(",)25 b(\\)p Fj(3-89721-122-X)p Fl(")h(and)574 4375 -y(\\)p Fj(3-89721-122-X)45 b(06900)p Fl(".)94 4512 y -Fh(co)s(de)31 b(128-B)574 4612 y Fl(This)37 b(enco)s(ding)g(can)h -(represen)m(t)g(all)f(of)h(the)h(prin)m(ting)c(ASCI)s(I)i(c)m -(haracters,)42 b(from)37 b(the)h(space)574 4711 y(\(32\))32 -b(to)g(DEL)e(\(127\).)43 b(The)30 b(c)m(hec)m(ksum)h(digit)e(is)g -(mandatory)i(in)e(this)g(enco)s(ding.)94 4848 y Fh(co)s(de)i(128-C)574 -4948 y Fl(The)h(\\C")g(v)-5 b(ariation)31 b(of)h(Co)s(de-128)h(uses)e -(Co)s(de-128)i(sym)m(b)s(ols)d(to)j(represen)m(t)f(t)m(w)m(o)h(digits)d -(at)j(a)574 5048 y(time)28 b(\(Co)s(de-128)g(is)f(made)g(up)f(of)i(104) -g(sym)m(b)s(ols)e(whose)i(in)m(terpretation)e(is)h(con)m(trolled)g(b)m -(y)g(the)574 5147 y(start)35 b(sym)m(b)s(ol)e(b)s(eing)g(used\).)52 -b(Co)s(de)34 b(128-C)h(is)e(th)m(us)h(the)h(most)f(compact)i(w)m(a)m(y) -f(to)g(represen)m(t)574 5247 y(an)m(y)41 b(ev)m(en)h(n)m(um)m(b)s(er)d -(of)i(digits.)70 b(The)40 b(enco)s(der)g(refuses)g(to)h(deal)f(with)g -(an)g(o)s(dd)g(n)m(um)m(b)s(er)f(of)574 5347 y(digits)24 -b(b)s(ecause)h(the)g(caller)f(is)g(exp)s(ected)h(to)h(pro)m(vide)e -(prop)s(er)f(padding)g(to)j(an)f(ev)m(en)g(n)m(um)m(b)s(er)f(of)574 -5446 y(digits.)38 b(\(Since)23 b(Co)s(de-128)i(includes)d(con)m(trol)j -(sym)m(b)s(ols)d(to)j(switc)m(h)f(c)m(harset,)j(it)c(is)g -(theoretically)574 5546 y(p)s(ossible)29 b(to)j(represen)m(t)f(the)h(o) -s(dd)e(digit)g(as)h(a)g(Co)s(de)g(128-A)i(or)e(128-B)i(sym)m(b)s(ol,)e -(but)f(this)g(to)s(ol)574 5645 y(do)s(esn't)h(curren)m(tly)e(implemen)m -(t)g(this)g(option\).)p eop -%%Page: 8 9 -8 8 bop 94 -116 a Fl(Chapter)30 b(6:)41 b(Supp)s(orted)29 -b(Enco)s(dings)2417 b(8)94 365 y Fh(co)s(de)31 b(128)h(ra)m(w)574 -465 y Fl(Co)s(de-128)24 b(output)d(represen)m(ted)h(sym)m(b)s(ol-b)m -(y-sym)m(b)s(ol)e(in)h(the)h(input)f(string.)36 b(T)-8 -b(o)23 b(o)m(v)m(erride)f(part)574 565 y(of)27 b(the)g(problems)d -(outlined)h(b)s(elo)m(w)g(in)g(sp)s(ecifying)f(co)s(de128)k(sym)m(b)s -(ols,)e(this)f(pseudo-enco)s(ding)574 664 y(allo)m(ws)42 -b(the)h(used)f(to)h(sp)s(ecify)e(a)i(list)e(of)i(co)s(de128)h(sym)m(b)s -(ols)d(separated)i(b)m(y)g(spaces.)77 b(Eac)m(h)574 764 -y(sym)m(b)s(ol)31 b(is)g(represen)m(ted)h(b)m(y)g(a)g(n)m(um)m(b)s(er)f -(in)g(the)h(range)g(0-105.)48 b(The)31 b(list)g(should)f(include)g(the) -574 863 y(leading)e(c)m(haracter.The)i(c)m(hec)m(ksum)g(and)e(the)h -(stop)g(c)m(haracter)h(are)f(automatically)g(added)f(b)m(y)574 -963 y(the)k(library)-8 b(.)42 b(Most)33 b(lik)m(ely)d(this)g -(pseudo-enco)s(ding)g(will)f(b)s(e)i(used)f(with)g Fj(BARCODE_NO_ASCII) -574 1063 y Fl(and)g(some)h(external)f(program)g(to)i(supply)27 -b(the)k(prin)m(ted)e(text.)94 1245 y Fh(co)s(de)37 b(39)180 -b Fl(The)36 b(co)s(de-39)h(standard)f(can)g(enco)s(de)g(upp)s(ercase)g -(letters,)i(digits,)e(the)g(blank)f(space,)k(plus,)574 -1345 y(min)m(us,)d(dot,)i(star,)f(dollar,)f(slash,)g(p)s(ercen)m(t.)57 -b(An)m(y)36 b(string)f(that)h(is)f(only)g(comp)s(osed)g(of)h(suc)m(h) -574 1445 y(c)m(haracters)j(is)e(accepted)h(b)m(y)g(the)f(co)s(de-39)i -(enco)s(der.)61 b(T)-8 b(o)38 b(a)m(v)m(oid)g(lo)s(osing)e -(information,)i(the)574 1544 y(enco)s(der)c(refuses)g(to)h(enco)s(de)f -(mixed-case)g(strings)f(\(a)i(lo)m(w)m(ercase)g(string)e(is)g -(nonetheless)h(ac-)574 1644 y(cepted)d(as)g(a)g(shortcut,)f(but)g(is)f -(enco)s(ded)h(as)h(upp)s(ercase\).)94 1826 y Fh(in)m(terlea)m(v)m(ed)g -(2)g(of)g(5)574 1926 y Fl(This)36 b(enco)s(ding)g(can)i(only)e -(represen)m(t)h(an)g(ev)m(en)h(n)m(um)m(b)s(er)e(of)h(digits)f(\(o)s -(dd)h(digits)f(are)h(repre-)574 2026 y(sen)m(ted)c(b)m(y)g(bars,)f(and) -g(ev)m(en)h(digits)e(b)m(y)i(the)f(in)m(terlea)m(ving)g(spaces\).)48 -b(The)32 b(name)g(stresses)h(the)574 2125 y(fact)i(that)g(t)m(w)m(o)g -(of)f(the)g(\014v)m(e)g(items)f(\(bars)h(or)f(spaces\))i(allo)s(cated)f -(to)g(eac)m(h)h(sym)m(b)s(ol)e(are)h(wide,)574 2225 y(while)41 -b(the)i(rest)g(are)g(narro)m(w.)78 b(The)42 b(c)m(hec)m(ksum)h(digit)f -(is)g(optional)f(\(can)j(b)s(e)e(disabled)e(via)574 2325 -y Fj(BARCODE_NO_CHECKSUM)p Fl(\).)f(Since)31 b(the)h(n)m(um)m(b)s(er)e -(of)h(digits,)g(including)d(the)j(c)m(hec)m(ksum,)i(m)m(ust)574 -2424 y(b)s(e)40 b(ev)m(en,)k(a)c(leading)f(zero)i(is)e(inserted)g(in)g -(the)i(string)e(b)s(eing)g(enco)s(ded)g(if)h(needed)f(\(this)h(is)574 -2524 y(sp)s(eci\014cally)29 b(stated)i(in)e(the)h(sp)s(ecs)g(I)g(ha)m -(v)m(e)i(access)g(to\).)94 2707 y Fh(co)s(de)f(128)136 -b Fl(Automatic)31 b(selection)g(b)s(et)m(w)m(een)g(alphab)s(et)f(A,)h -(B)g(and)f(C)h(of)g(the)g(Co)s(de-128)h(standard.)41 -b(This)574 2806 y(enco)s(ding)31 b(can)i(represen)m(t)f(all)f(ASCI)s(I) -f(sym)m(b)s(ols,)i(from)f(0)h(\(NUL\))h(to)g(127)g(\(DEL\),)g(as)g(w)m -(ell)e(as)574 2906 y(four)36 b(sp)s(ecial)e(sym)m(b)s(ols,)i(named)f -(F1,)j(F2,)g(F3,)g(F4.)58 b(The)35 b(set)h(of)g(sym)m(b)s(ols)f(a)m(v) --5 b(ailable)35 b(in)f(this)574 3005 y(enco)s(ding)g(is)f(not)i(easily) -e(represen)m(ted)i(as)f(input)e(to)k(the)e Fg(b)-5 b(ar)g(c)g(o)g(de)44 -b Fl(library)-8 b(,)33 b(so)i(the)f(follo)m(wing)574 -3105 y(con)m(v)m(en)m(tion)24 b(is)e(used.)38 b(In)22 -b(the)g(input)f(string,)j(whic)m(h)d(is)h(a)h(C-language)g(n)m -(ull-terminated)e(string,)574 3205 y(the)26 b(NUL)g(c)m(har)f(is)g -(represen)m(ted)g(b)m(y)h(the)f(v)-5 b(alue)25 b(128)i(\(0x80,)h -(0200\))g(and)d(the)g(F1-F4)i(c)m(haracters)574 3304 -y(are)f(represen)m(ted)g(b)m(y)f(the)h(v)-5 b(alues)25 -b(193-196)k(\(0xc1-0xc4,)h(0301-0304\).)43 b(The)25 b(v)-5 -b(alues)25 b(ha)m(v)m(e)i(b)s(een)574 3404 y(c)m(hosen)k(to)h(ease)f -(their)e(represen)m(tation)i(as)f(escap)s(e)h(sequences.)574 -3545 y(Since)39 b(the)h(shell)d(do)s(esn't)j(seem)f(to)i(in)m(terpret)d -(escap)s(e)i(sequences)g(on)f(the)h(command)f(line,)574 -3645 y(the)e Fj(")p Fl(-b)p Fj(")e Fl(option)g(cannot)h(b)s(e)f(easily) -g(used)g(to)i(designate)f(the)g(strings)f(to)h(b)s(e)f(enco)s(ded.)57 -b(As)574 3744 y(a)44 b(w)m(ork)-5 b(around)42 b(y)m(ou)i(can)f(resort)h -(to)f(the)h(command)f Fj(echo)p Fl(,)i(either)e(within)d(bac)m(k-tic)m -(ks)45 b(or)574 3844 y(used)34 b(separately)g(to)g(create)i(a)e(\014le) -f(that)i(is)e(then)g(fed)h(to)h(the)f(standard-input)d(of)j -Fg(b)-5 b(ar)g(c)g(o)g(de)44 b Fl({)574 3944 y(assuming)34 -b(y)m(our)h Fj(echo)f Fl(command)h(pro)s(cesses)g(escap)s(e)h -(sequences.)56 b(The)34 b(newline)f(c)m(haracter)574 -4043 y(is)d(esp)s(ecially)f(though)h(to)h(enco)s(de)f(\(but)g(not)h -(imp)s(ossible)c(unless)h(y)m(ou)j(use)f(a)h Fj(csh)e -Fl(v)-5 b(arian)m(t.)574 4184 y(These)35 b(problems)f(only)g(apply)g -(to)i(the)f(command-line)f(to)s(ol;)j(the)f(use)e(of)i(library)c -(functions)574 4284 y(do)s(esn't)44 b(giv)m(e)f(an)m(y)h(problem.)78 -b(In)42 b(needed,)47 b(y)m(ou)c(can)h(use)f(the)h(\\)p -Fg(c)-5 b(o)g(de)46 b(128)f(r)-5 b(aw)10 b Fl(")45 b(pseudo-)574 -4384 y(enco)s(ding)33 b(to)h(represen)m(t)g(co)s(de128)h(sym)m(b)s(ols) -d(b)m(y)h(their)g(n)m(umerical)f(v)-5 b(alue.)50 b(This)31 -b(enco)s(ding)i(is)574 4483 y(used)28 b(late)h(in)e(the)h -(auto-selection)i(mec)m(hanism)d(b)s(ecause)h(\(almost\))i(an)m(y)e -(input)f(string)g(can)i(b)s(e)574 4583 y(represen)m(ted)i(using)e(co)s -(de128.)94 4765 y Fh(Co)s(dabar)138 b Fl(Co)s(dabar)33 -b(can)h(enco)s(de)g(the)g(ten)f(digits)g(and)g(a)h(few)f(sp)s(ecial)f -(sym)m(b)s(ols)g(\(min)m(us,)i(plus,)e(dollar,)574 4865 -y(colon,)k(bar,)g(dot\).)54 b(The)34 b(c)m(haracters)i(\\)p -Fj(A)p Fl(",)h(\\)p Fj(B)p Fl(",)f(\\)p Fj(C)p Fl(")f(and)g(\\)p -Fj(D)p Fl(")g(are)g(used)f(to)h(represen)m(t)g(four)574 -4965 y(di\013eren)m(t)30 b(start/stop)i(c)m(haracters.)42 -b(The)30 b(input)e(string)i(to)h(the)f(barco)s(de)h(library)d(can)i -(include)574 5064 y(the)d(start)g(and)f(stop)h(c)m(haracters)h(or)e -(not)h(include)d(them)j(\(in)e(whic)m(h)h(case)h(\\)p -Fj(A)p Fl(")g(is)f(used)g(as)g(start)574 5164 y(and)38 -b(\\)p Fj(B)p Fl(")g(as)g(stop\).)64 b(Start)38 b(and)f(stop)h(c)m -(haracters)h(in)e(the)h(input)e(string)g(can)j(b)s(e)e(either)g(all)574 -5264 y(lo)m(w)m(ercase)32 b(or)f(all)e(upp)s(ercase)g(and)h(are)h(alw)m -(a)m(ys)g(prin)m(ted)e(as)h(upp)s(ercase.)94 5446 y Fh(Plessey)192 -b Fl(Plessey)39 b(barco)s(des)f(can)h(enco)s(de)g(all)f(the)h -(hexadecimal)f(digits.)64 b(Alphab)s(etic)37 b(digits)g(in)h(the)574 -5546 y(input)25 b(string)g(m)m(ust)h(either)g(b)s(e)f(all)g(lo)m(w)m -(ercase)j(or)e(all)f(upp)s(ercase.)38 b(The)26 b(output)g(text)h(is)e -(alw)m(a)m(ys)574 5645 y(upp)s(ercase.)p eop -%%Page: 9 10 -9 9 bop 94 -116 a Fl(Chapter)30 b(7:)41 b(PCL)30 b(Output)2761 -b(9)94 365 y Fh(MSI)313 b Fl(MSI)39 b(can)g(only)e(enco)s(de)i(the)g -(decimal)e(digits.)64 b(While)38 b(the)h(standard)e(sp)s(eci\014es)h -(either)g(one)574 465 y(or)e(t)m(w)m(o)h(c)m(hec)m(k)g(digits,)e(the)h -(curren)m(t)f(implemen)m(tation)f(in)g(this)g(library)f(only)i -(generates)i(one)574 565 y(c)m(hec)m(k)32 b(digit.)94 -701 y Fh(co)s(de)f(93)180 b Fl(The)30 b(co)s(de-93)h(standard)f(can)g -(nativ)m(ely)g(enco)s(de)g(48)h(di\013eren)m(t)e(c)m(haracters,)j -(including)27 b(upp)s(er-)574 801 y(case)39 b(letters,)h(digits,)e(the) -g(blank)e(space,)k(plus,)e(min)m(us,)g(dot,)h(star,)h(dollar,)e(slash,) -h(p)s(ercen)m(t,)574 901 y(as)31 b(w)m(ell)f(as)g(\014v)m(e)h(sp)s -(ecial)e(c)m(haracters:)43 b(a)30 b(start/stop)i(delimiter)c(and)i -(four)g Fj(")p Fl(shift)f(c)m(haracters)p Fj(")574 1000 -y Fl(used)f(for)f(extended)h(enco)s(ding.)39 b(Using)27 -b(this)g Fj(")p Fl(extended)g(enco)s(ding)p Fj(")g Fl(metho)s(d,)h(an)m -(y)g(standard)574 1100 y(7-bit)34 b(ASCI)s(I)e(c)m(haracter)k(can)e(b)s -(e)f(enco)s(ded,)i(but)e(it)h(tak)m(es)h(up)e(t)m(w)m(o)i(sym)m(b)s(ol) -d(lengths)i(in)e(bar-)574 1200 y(co)s(de)k(if)f(the)g(c)m(haracter)j -(is)c(not)i(nativ)m(ely)f(supp)s(orted)f(\(one)i(of)g(the)f(48\).)58 -b(The)35 b(enco)s(der)g(here)574 1299 y(fully)24 b(implemen)m(ts)g(the) -i(co)s(de)g(93)g(enco)s(ding)f(standard.)38 b(An)m(y)26 -b(c)m(haracters)h(nativ)m(ely)e(supp)s(orted)574 1399 -y(\(A-Z,)35 b(0-9,)h Fj(")p Fl(.)p Fj(+)p Fl(-/$&\045)p -Fj(")p Fl(\))e(will)d(b)s(e)j(enco)s(ded)f(as)h(suc)m(h)g(-)g(for)f(an) -m(y)h(other)h(c)m(haracters)g(\(suc)m(h)f(as)574 1498 -y(lo)m(w)m(er)h(case)g(letters,)g(brac)m(k)m(ets,)h(paren)m(theses,)g -(etc.\),)h(the)d(enco)s(der)f(will)f(rev)m(ert)i(to)h(extended)574 -1598 y(enco)s(ding.)68 b(As)40 b(a)g(note,)j(the)d(option)f(to)h -(exclude)f(the)h(c)m(hec)m(ksum)g(will)d(eliminate)i(the)h(t)m(w)m(o) -574 1698 y(mo)s(dulo-47)f(c)m(hec)m(ksums)g(\(called)g(C)f(and)g(K\))h -(from)f(the)h(barco)s(de,)i(but)d(this)g(probably)f(will)574 -1797 y(mak)m(e)c(it)e(unreadable)e(b)m(y)i(99\045)h(of)g(all)e -(scanning)g(systems.)43 b(These)31 b(c)m(hec)m(ksums)h(are)g(sp)s -(eci\014ed)574 1897 y(to)f(b)s(e)e(used)g(at)i(the)f(\014rm)m(w)m(are)f -(lev)m(el,)h(and)f(their)g(absence)h(will)d(b)s(e)j(in)m(terpreted)f -(as)h(an)f(in)m(v)-5 b(alid)574 1997 y(barco)s(de.)94 -2266 y Fi(7)81 b(PCL)53 b(Output)219 2459 y Fl(While)28 -b(the)h(default)g(output)f(is)g(P)m(ostscript)i(\(p)s(ossibly)c(EPS\),) -j(and)g(P)m(ostscript)g(can)g(b)s(e)f(p)s(ost-pro)s(cessed)94 -2558 y(to)40 b(almost)e(an)m(ything,)i(it)e(is)f(sometimes)i(desirable) -d(to)j(create)h(output)e(directly)f(usable)g(b)m(y)i(the)f(sp)s -(eci\014c)94 2658 y(prin)m(ter)33 b(at)h(hand.)50 b(PCL)33 -b(is)g(curren)m(tly)f(supp)s(orted)g(as)i(an)g(output)f(format)h(for)g -(this)e(reason.)51 b(Please)34 b(note)94 2758 y(that)25 -b(the)f(Y)g(co)s(ordinate)g(for)f(PCL)h(go)s(es)g(from)f(top)i(to)f(b)s -(ottom,)i(while)c(for)h(P)m(ostscript)h(it)g(go)s(es)g(from)g(b)s -(ottom)94 2857 y(to)35 b(top.)51 b(Consisten)m(tly)-8 -b(,)34 b(while)d(in)i(P)m(ostscript)g(y)m(ou)h(sp)s(ecify)f(the)g(b)s -(ottom-left)i(corner)e(as)h(origin,)f(for)h(PCL)94 2957 -y(y)m(ou)d(sp)s(ecify)e(the)i(top-left)f(corner.)219 -3075 y(Barco)s(de)c(output)e(for)h(PCL)f(Prin)m(ters)g(\(HP)h(LaserJet) -g(and)g(compatibles\),)g(w)m(as)h(dev)m(elop)s(ed)e(using)f(PCL5)94 -3175 y(Reference)32 b(man)m(uals)d(from)h(HP)-8 b(.)31 -b(that)g(really)e(refers)h(to)h(these)g(prin)m(ters:)169 -3293 y Fb(\017)60 b Fl(LaserJet)31 b(I)s(I)s(I,)f(I)s(I)s(I)e(P)-8 -b(,)31 b(I)s(I)s(I)e(D,)i(I)s(I)s(I)e(Si,)169 3411 y -Fb(\017)60 b Fl(LaserJet)31 b(4)g(family)169 3529 y Fb(\017)60 -b Fl(LaserJet)31 b(5)g(family)169 3648 y Fb(\017)60 b -Fl(LaserJet)31 b(6)g(family)169 3766 y Fb(\017)60 b Fl(Color)30 -b(LaserJet)169 3884 y Fb(\017)60 b Fl(DeskJet)32 b(1200)g(and)e(1600.) -219 4021 y(Ho)m(w)m(ev)m(er,)g(barco)s(de)e(prin)m(ting)d(uses)i(a)h(v) -m(ery)g(small)e(subset)h(of)g(PCL,)g(probably)f(also)h(LaserJet)h(I)s -(I)f(should)94 4121 y(prin)m(t)i(it)h(without)g(problem,)f(but)g(the)i -(resulting)e(text)i(ma)m(y)g(b)s(e)f(horrible.)219 4239 -y(The)22 b(only)g(real)h(di\013erence)f(from)h(one)g(prin)m(ter)e(to)j -(another)f(really)f(dep)s(ends)f(on)h(whic)m(h)g(fon)m(t)h(are)h(a)m(v) --5 b(ailable)94 4338 y(in)30 b(the)g(prin)m(ter,)f(used)h(in)f(prin)m -(ting)f(the)j(lab)s(el)d(asso)s(ciated)j(to)g(the)g(bars)f(\(if)f -(requested\).)219 4457 y(Earlier)j(LaserJet)j(supp)s(orts)d(only)h -(bitmaps)f(fon)m(ts,)k(so)e(these)g(are)h(not)f Fj(")p -Fl(scalable)p Fj(")p Fl(.)50 b(\(Ljet)35 b(I)s(I)e(?\),)i(Also)94 -4556 y(these)c(fon)m(ts,)f(when)f(a)m(v)-5 b(ailable,)29 -b(ha)m(v)m(e)i(a)f(sp)s(eci\014ed)e(direction,)h(and)g(not)h(all)f(of)g -(them)h(are)g(a)m(v)-5 b(ailable)29 b(in)g(b)s(oth)94 -4656 y(P)m(ortrait)i(and)f(Landscap)s(e)g(mo)s(de.)219 -4774 y(F)-8 b(rom)23 b(LaserJet)g(4)f(series,)i(\(except)g(4L/5L)f -(that)g(are)g(en)m(try-lev)m(el)f(prin)m(ters\),)h(Arial)e(scalable)h -(fon)m(t)h(should)94 4874 y(b)s(e)30 b(a)m(v)-5 b(ailable,)30 -b(so)h(it's)f(the)g Fj(")p Fl(default)g(fon)m(t)p Fj(")g -Fl(used)g(b)m(y)g(this)f(program.)219 4992 y(LaserJet)41 -b(I)s(I)s(I)d(series)i(prin)m(ters)e(\(and)i(4L,)g(5L\),)h(don't)f -(feature)h Fj(")p Fl(Arial)p Fj(")d Fl(as)i(a)h(residen)m(t)e(fon)m(t,) -k(so)e(y)m(ou)94 5092 y(should)27 b(use)i Fj(BARCODE_OUT_PCL_III)23 -b Fl(instead)28 b(of)h Fj(BARCODE_OUT_PCL.)p Fl(,)c(and)j(fon)m(t)h -(the)g(fon)m(t)h(used)d(will)g(b)s(e)94 5191 y Fj(")p -Fl(Univ)m(ers)p Fj(")j Fl(instead)f(of)i Fj(")p Fl(Arial)p -Fj(")p Fl(.)219 5309 y(Results)26 b(on)i(compatible)e(prin)m(ters,)h -(ma)m(y)h(dep)s(end)d(on)i(consistency)g(of)h(PCL5)f(compatibilit)m(y) --8 b(,)26 b(in)g(doubt,)94 5409 y(try)31 b(BAR)m(CODE)p -713 5409 28 4 v 33 w(OUT)p 951 5409 V 32 w(PCL)p 1168 -5409 V 32 w(I)s(I)s(I)219 5527 y(PJL)f(commands)g(are)g(not)h(used)f -(here,)g(as)h(it's)f(not)g(v)m(ery)h(compatible.)219 -5645 y(T)-8 b(ested)31 b(Prin)m(ters:)p eop -%%Page: 10 11 -10 10 bop 94 -116 a Fl(Chapter)30 b(8:)41 b(Bugs)31 b(and)f(P)m(ending) -f(Issues.)2211 b(10)169 365 y Fb(\017)60 b Fl(Hp)30 b(LaserJet)h(4050) -169 490 y Fb(\017)60 b Fl(Hp)30 b(LaserJet)h(2100)169 -614 y Fb(\017)60 b Fl(Epson)30 b(N-1200)j(em)m(ul)c(PCL)169 -739 y Fb(\017)60 b Fl(T)-8 b(oshiba)30 b(DP2570)i(\(copier\))f -Fj(+)f Fl(PCL)g(option)169 863 y Fb(\017)60 b Fl(Epson)30 -b(EPL-7100)i(em)m(ul.)40 b(HP)30 b(LaserJet)h(I)s(I:)f(bars)g(prin)m(t) -f(\014ne)g(but)h(text)i(is)d(bad.)94 1146 y Fi(8)81 b(Bugs)52 -b(and)i(P)l(ending)f(Issues.)219 1370 y Fl(The)42 b(curren)m(t)g -(managemen)m(t)h(of)g(b)s(orders/margins)d(is)h(far)h(from)g(optimal.) -75 b(The)42 b(\\default")g(margin)94 1469 y(applied)d(b)m(y)h(the)h -(library)d(in)m(terferes)i(with)f(the)i(external)g(represen)m(tation,)i -(but)d(I)g(feel)g(it)g(is)g(mandatory)94 1569 y(to)f(a)m(v)m(oid)f -(creating)g(barco)s(de)f(output)h(with)e(no)i(surrounding)c(white)j -(space)h(\(the)g(problem)e(is)h(esp)s(ecially)94 1669 -y(relev)-5 b(an)m(t)31 b(for)f(EPS)g(output\).)219 1793 -y(EAN-128)44 b(is)d(not)h(\(y)m(et\))i(supp)s(orted.)73 -b(I)42 b(plan)e(to)j(implemen)m(t)e(it)g(prett)m(y)h(so)s(on)g(and)f -(then)h(bless)f(the)94 1893 y(pac)m(k)-5 b(age)33 b(as)d(v)m(ersion)g -(1.0.)p eop -%%Page: -1 12 --1 11 bop 3849 -116 a Fl(i)94 365 y Fi(T)-13 b(able)55 -b(of)e(Con)l(ten)l(ts)94 697 y Fk(Barco)t(de)45 b(to)t(ols)16 -b Fa(.)k(.)g(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.) -f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g -(.)h(.)60 b Fk(1)94 955 y(1)135 b(Ov)l(erview)12 b Fa(.)21 -b(.)f(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h -(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.) -f(.)57 b Fk(1)94 1212 y(2)135 b(The)45 b(Underlying)g(Data)h(Structure) -41 b Fa(.)20 b(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)86 -b Fk(1)393 1337 y Fl(2.1)92 b(The)30 b(Fields)19 b Fg(.)14 -b(.)h(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)49 -b Fl(1)692 1436 y(Use)31 b(of)g(the)f Fg(width)39 b Fl(and)30 -b Fg(sc)-5 b(alef)50 b Fl(\014elds.)25 b Fg(.)15 b(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)56 b Fl(2)393 1536 y(2.2)92 b(The)30 b(In)m(termediate)h -(Represen)m(tation)24 b Fg(.)15 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)54 b Fl(3)94 1768 y Fk(3)135 b(The)45 b(Flags)28 -b Fa(.)20 b(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f -(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.) -f(.)g(.)73 b Fk(3)94 2026 y(4)135 b(F)-11 b(unctions)44 -b(Exp)t(orted)h(b)l(y)g(the)g(Library)37 b Fa(.)19 b(.)h(.)f(.)g(.)h(.) -f(.)h(.)f(.)h(.)f(.)g(.)81 b Fk(4)94 2283 y(5)135 b(The)45 -b Fa(b)-7 b(ar)g(c)g(o)g(de)52 b Fk(fron)l(tend)46 b(program)11 -b Fa(.)19 b(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h -(.)55 b Fk(5)393 2408 y Fl(5.1)92 b(The)30 b(Command)g(Line)24 -b Fg(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)55 b Fl(5)94 2640 y Fk(6)135 -b(Supp)t(orted)44 b(Enco)t(dings)33 b Fa(.)20 b(.)f(.)g(.)h(.)f(.)h(.)f -(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.) -78 b Fk(7)94 2897 y(7)135 b(PCL)45 b(Output)40 b Fa(.)20 -b(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)85 -b Fk(9)94 3155 y(8)135 b(Bugs)45 b(and)f(P)l(ending)h(Issues.)36 -b Fa(.)19 b(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)g(.)h(.)79 b Fk(10)p eop -%%Trailer -end -userdict /end-hook known{end-hook}if -%%EOF diff --git a/barcode-0.98/doc/barcodedoc.txt b/barcode-0.98/doc/barcodedoc.txt deleted file mode 100644 index 2d242f99..00000000 --- a/barcode-0.98/doc/barcodedoc.txt +++ /dev/null @@ -1,734 +0,0 @@ - - -This is barcode.info, produced by makeinfo version 4.0b from -barcode.texinfo. - - This file is the User's Manual for the barcode library (version -0.98). - - - - -*Node: Overview - Overview - ******** - - The "barcode" package is mainly a C library for creating bar-code -output files. It also includes a command line front-end and (in a -foreseeable future) a graphic frontend. - - The package is designed as a library because we think the main use -for barcode-generation tools is inside more featured applications. The -library addresses bar code printing as two distinct problems: creation -of bar information and actual conversion to an output format. To this -aim we use an intermediate representation for bar codes, which is -currently documented in the `ps.c' source file (not in this document). - - Note that the library and the accompanying material is released -according to the GPL license, not the LGPL one. A copy of the GPL is -included in the distribution tarball. - - - - -*Node: The Barcode Object - The Underlying Data Structure - ***************************** - - Every barcode-related function acts on a data structure defined in -the `barcode.h' header, which must be included by any C source file -that uses the library. The header is installed by make install. - - The definition of the data structure is included here for reference: - - struct Barcode_Item { - int flags; /* type of encoding and other flags */ - char *ascii; /* malloced */ - char *partial; /* malloced too */ - char *textinfo; /* information about text placement */ - char *encoding; /* code name, filled by encoding engine */ - int width, height; /* output units */ - int xoff, yoff; /* output units */ - int margin; /* output units */ - double scalef; /* requested scaling for barcode */ - int error; /* an errno-like value, in case of failure */ - }; - - The exact meaning of each field and the various flags implemented are -described in the following sections. - - Even though you won't usually need to act on the contents of this -structure, some of the functions in the library receive arguments that -are directly related to one or more of these fields. - - - - -*Node: The Field List - The Fields - ========== - -`int flags;' - The flags are, as you may suspect, meant to specify the exact - behaviour of the library. They are often passed as an argument to - barcode functions and are discussed in the next section. - -`char *ascii;' -`char *partial;' -`char *textinfo;' -`char *encoding;' - These fields are internally managed by the library, and you are - not expected to touch them if you use the provided API. All of - them are allocated with malloc. - -`int width;' -`int height;' - They specify the width and height of the active barcode region - (i.e., excluding the white margin), in the units used to create - output data (for postscript they are points, 1/72th of an inch, - 0.352 mm). The fields can be either assigned to in the structure - or via Barcode_Position(), at your choice. If either value or - both are left to their default value of zero, the output engine - will assign default values according to the specified scaling - factor. If the specified width is bigger than needed (according to - the scaling factor), the output barcode will be centered in its - requested region. If either the width of the height are too small - for the specified scale factor, the output bar code will expand - symmetrically around the requested region. - -`int xoff;' -`int yoff;' - The fields specify offset from the coordinate origin of the output - engine (for postscript, position 0,0 is the lower left corner of - the page). The fields can be either assigned to in the structure - or via Barcode_Position(), at your choice. The offset specifies - where the white margin begins, not where the first bar will be - printed. To print real ink to the specified position you should - set margin to 0. - -`int margin;' - The white margin that will be left around the printed area of the - bar code. The same margin is applied to all sides of the printed - area. The default value for the margin is defined in `barcode.h' - as BARCODE_DEFAULT_MARGIN (10). - -`double scalef;' - The enlarge or shrink value for the bar code over its default - dimension. The width and scalef fields interact deeply in the - creation of the output, and a complete description of the issues - appears later in this section. - -`int error;' - The field is used when a barcode function fails to host an - errno-like integer value. - -Use of the width and scalef fields. ------------------------------------ - - A width unit is the width of the thinnest bar and/or space in the -chosen code; it defaults to 1 point if the output is postscript or -encapsulated postscript. - - Either or both the code width and the scale factor can be left -unspecified (i.e., zero). The library deals with defaults in the -following way: - -Both unspecified - If both the width and the scale factor are unspecified, the scale - factor will default to 1.0 and the width is calculated according - to the actual width of the bar code being printed. - -Width unspecified - If the width is not specified, it is calculated according to the - values of scalef. - -Scale factor unspecified - If the scale factor is not specified, it will be chosen so that - the generated bar code exactly fits the specified width. - -Both specified - The code will be printed inside the specified region according to - the specified scale factor. It will be aligned to the left. If, - however, the chosen width is too small for the specific bar code - and scaling factor, then the code will extend symmetrically to the - left and to the right of the chosen region. - - - - -*Node: The Intermediate Representation - The Intermediate Representation - =============================== - - The encoding functions print their output into the partial and -texinfo fields of the barcode data structure. Those fields, together -with position information, are then used to generate actual output. -This is an informal description of the intermediate format. - - The first char in partial tells how much extra space to add to the -left of the bars. For EAN-13, it is used to leave space to print the -first digit, other codes may have '0' for no-extra-space-needed. - - The next characters are alternating bars and spaces, as multiples of -the base dimension which is 1 unless the code is rescaled. Rescaling is -calculated as the ratio from the requested width and the calculated -width. Digits represent bar/space dimensions. Lower-case letters -represent those bars that should extend lower than the others: 'a' is -equivalent to '1', 'b' is '2' and so on up to 'i' which is equivalent to -'9'. Other letters will be used for encoding-specific meanings, as soon -as I implement them. - - The textinfo string is made up of fields %lf:%lf:%c separated by -blank space. The first integer is the x position of the character, the -second is the font size (before rescaling) and the char item is the -character to be printed. - - Both the partial and textinfo strings may include "-" or "+" as -special characters (in textinfo the char should be a stand-alone word). -They state where the text should be printed: below the bars ("-", -default) or above the bars. This is used, for example, to print the -add-5 and add-2 codes to the right of UPC or EAN codes (the add-5 -extension is mostly used in ISBN codes). - - - - -*Node: Supported Flags - The Flags - ********* - - The following flags are supported by version 0.98 of the library: - -`BARCODE_ENCODING_MASK' - The mask is used to extract the encoding-type identifier from the - flags field. - -`BARCODE_EAN' -`BARCODE_UPC' -`BARCODE_ISBN' -`BARCODE_128B' -`BARCODE_128C' -`BARCODE_128' -`BARCODE_128RAW' -`BARCODE_39' -`BARCODE_I25' -`BARCODE_CBR' -`BARCODE_MSI' -`BARCODE_PLS' -`BARCODE_93' - The currently supported encoding types: EAN (13 digits, 8 digits, - 13 + 2 add-on and 13 + 5 add-on), UPC (UPC-A, UPC-E, UPC-A with 2 - or 5 digit add-on), ISBN (with or without the 5-digit add-on), - CODE128-B (the whole set of printable ASCII characters), CODE128-C - (two digits encoded by each barcode symbol), CODE128 (all ASCII - values), a "raw-input" pseudo-code that generates CODE128 output, - CODE39 (alphanumeric), "interleaved 2 of 5" (numeric), Codabar - (numeric plus a few symbols), MSI (numeric) and Plessey (hex - digits). *Note Supported Encodings::. - -`BARCODE_ANY' - This special encoding type (represented by a value of zero, so it - will be the default) tells the encoding procedure to look for the - first encoding type that can deal with a textual string. - Therefore, a 11-digit code will be printed as UPC (as well as - 6-digit, 11+2 and 11+5), a 12-digit (or 7-digit, or 12+2 or 12+5) - as EAN13, an ISBN code (with or without hyphens, with or without - add-5) will be encoded in its EAN13 representation, an even number - of digits is encoded using CODE128C and a generic string is - encoded using CODE128B. Since code-39 offers a much larger - representation for the same text string, code128-b is preferred - over code39 for alphanumeric strings. - -`BARCODE_NO_ASCII' - Instructs the engine not to print the ascii string on output. By - default the bar code is accompanied with an ascii version of the - text it encodes. - -`BARCODE_NO_CHECKSUM' - Instructs the engine not to add the checksum character to the - output. Not all the encoding types can drop the checksum; those - where the checksum is mandatory (like EAN and UPC) just ignore the - flag. - -`BARCODE_OUTPUT_MASK' - The mask is used to extract the output-type identifier from the - flags field. - -`BARCODE_OUT_PS' -`BARCODE_OUT_EPS' -`BARCODE_OUT_PCL' -`BARCODE_OUT_PCL_III' - The currently supported encoding types: full-page postscript and - encapsulated postscript; PCL (print command language, for HP - printers) and PCL-III (same as PCL, but uses a font not available - on older printers). - -`BARCODE_OUT_NOHEADERS' - The flag instructs the printing engine not to print the header and - footer part of the file. This makes sense for the postscript - engine but might not make sense for other engines; such other - engines will silently ignore the flag just like the PCL back-end - does. - - - - -*Node: The API - Functions Exported by the Library - ********************************* - - The functions included in the barcode library are declared in the -header file barcode.h. They perform the following tasks: - -`struct Barcode_Item *Barcode_Create(char *text);' - The function creates a new barcode object to deal with a specified - text string. It returns NULL in case of failure and a pointer to - a barcode data structure in case of success. - -`int Barcode_Delete(struct Barcode_Item *bc);' - Destroy a barcode object. Always returns 0 (success) - -`int Barcode_Encode(struct Barcode_Item *bc, int flags);' - Encode the text included in the bc object. Valid flags are the - encoding type (other flags are ignored) and BARCODE_NO_CHECKSUM - (other flags are silently ignored); if the flag argument is zero, - bc->flags will apply. The function returns 0 on success and -1 in - case of error. After successful termination the data structure - will host the description of the bar code and its textual - representation, after a failure the error field will include the - reason of the failure. - -`int Barcode_Print(struct Barcode_Item *bc, FILE *f, int flags);' - Print the bar code described by bc to the specified file. Valid - flags are the output type, BARCODE_NO_ASCII and - BARCODE_OUT_NOHEADERS, other flags are ignored. If any of these - flags is zero, it will be inherited from bc->flags which therefore - takes precedence. The function returns 0 on success and -1 in case - of error (with bc->error set accordingly). In case of success, the - bar code is printed to the specified file, which won't be closed - after use. - -`int Barcode_Position(struct Barcode_Item *bc, int wid, int hei, int xoff, int yoff, double scalef);' - The function is a shortcut to assign values to the data structure. - -`int Barcode_Encode_and_Print(char *text, FILE *f, int wid, int hei, int xoff, int yoff, int flags);' - The function deals with the whole life of the barcode object by - calling the other functions; it uses all the specified flags. - -`int Barcode_Version(char *versionname);' - Returns the current version as an integer number of the form major - * 10000 + minor * 100 + release. Therefore, version 1.03.5 will be - returned as 10305 and version 0.53 as 5300. If the argument is - non-null, it will be used to return the version number as a - string. Note that the same information is available from two - preprocessor macros: BARCODE_VERSION (the string) and - BARCODE_VERSION_INT (the integer number). - - - - -*Node: The barcode Executable - The barcode frontend program - **************************** - - The barcode program is a front-end to access some features of the -library from the command line. It is able to read user supplied -strings from the command line or a data file (standard input by default) -and encode all of them. - - - - -*Node: The Command Line - The Command Line - ================ - - barcode accepts the following options: - -`--help or -h' - Print a usage summary and exit. - -`-i filename' - Identify a file where strings to be encoded are read from. If - missing (and if -b is not used) it defaults to standard input. - Each data line of the input file will be used to create one - barcode output. - -`-o filename' - Output file. It defaults to standard output. - -`-b string' - Specify a single "barcode" string to be encoded. The option can - be used multiple times in order to encode multiple strings (this - will result in multi-page postscript output or a table of barcodes - if -t is specified). The strings must match the encoding chosen; - if it doesn't match the program will print a warning to stderr and - generate "blank" output (although not zero-length). Please note - that a string including spaces or other special characters must be - properly quoted. - -`-e encoding' - encoding is the name of the chosen encoding format being used. It - defaults to the value of the environment variable BARCODE_ENCODING - or to auto detection if the environment is also unset. - -`-g geometry' - The geometry argument is of the form "[ x ] [+ - + ]" (with no intervening spaces). Unspecified - margin values will result in no margin; unspecified size results - in default size. The specified values represent print points by - default, and can be inches, millimeters or other units according - to the -u option or the BARCODE_UNIT environment variable. The - argument is used to place the printout code on the page. Note that - an additional white margin of 10 points is added to the printout. - If the option is unspecified, BARCODE_GEOMETRY is looked up in the - environment, if missing a default size and no margin (but the - default 10 points) are used. - -`-t table-geometry' - Used to print several barcodes to a single page, this option is - meant to be used to print stickers. The argument is of the form - " x [+ + [- - [- ]]]" (with no intervening spaces); if - missing, the top and right margin will default to be the same as - the bottom and left margin. The margins are specified in print - points or in the chosen unit (see -u below). If the option is not - specified, BARCODE_TABLE is looked up in the environment, - otherwise no table is printed and each barcode will get its own - page. The size (but not the position) of a barcode item within a - table can also be selected using -g (see "geometry" above), - without struggling with external and internal margins. I still - think management of geometries in a table is suboptimal, but I - can't make it better without introducing incompatibilities. - -`-m margin(s)' - Specifies an internal margin for each sticker in the table. The - argument is of the form "," and the margin is - applied symmetrically to the sticker. If unspecified, the - environment variable BARCODE_MARGIN is used or a default internal - margin of 10 points is used. - -`-n' - "Numeric" output: don't print the ASCII form of the code, only the - bars. - -`-c' - No checksum character (for encodings that allow it, like code 39, - other codes, like UPC or EAN, ignore this option). - -`-E' - Encapsulated postscript (default is normal postscript). When the - output is generated as EPS only one barcode is encoded. - -`-P' - PCL output. Please note that the Y direction goes from top to - bottom for PCL, and the origin for an image is the top-left corner - instead of the bottom-left - -`-p pagesize' - Specify a non-default page size. The page size can be specified in - millimeters, inches or plain numbers (for example: "210x297mm", - "8.5x11in", "595x842"). A page specification as numbers will be - interpreted according to the current unit specification (see -u - below). If libpaper is available, you can also specify the page - size with its name, like "A3" or "letter" (libpaper is a standard - component of Debian GNU/Linux, but may be missing elsewhere). The - default page size is your system-wide default if libpaper is - there, A4 otherwise. - -`-u unit' - Choose the unit used in size specifications. Accepted values are - "mm", "cm", "in" and "pt". By default, the program will check - BARCODE_UNIT in the environment, and assume points otherwise (this - behaviour is compatible with 0.92 and previous versions. If -u - appears more than once, each instance will modified the behaviour - for the arguments at its right, as the command line is processes - left to right. The program internally works with points, and any - size is approximated to the nearest multiple of one point. The -u - option affect -g (geometry), -t (table) and -p (page size). - - - - -*Node: Supported Encodings - Supported Encodings - ******************* - - The program encodes text strings passed either on the command line -(with -b) or retrieved from standard input. The text representation is -interpreted according to the following rules. When auto-detection of -the encoding is enabled (i.e, no explicit encoding type is specified), -the encoding types are scanned to find one that can digest the text -string. The following list of supported types is sorted in the same -order the library uses when auto-detecting a suitable encoding for a -string. - -EAN - The EAN frontend is similar to UPC; it accepts strings of digits, - 12 or 7 characters long. Strings of 13 or 8 characters are - accepted if the provided checksum digit is correct. I expect most - users to feed input without a checksum, though. The add-2 and - add-5 extension are accepted for both the EAN-13 and the EAN-8 - encodings. The following are example of valid input strings: - "123456789012" (EAN-13), "1234567890128" (EAN-13 wih checksum), - "1234567" (EAN-8), "12345670 12345" (EAN-8 with checksum and - add-5), "123456789012 12" (EAN-13 with add-2), "123456789012 - 12345" (EAN-13 with add-5). - -UPC - The UPC frontend accepts only strings made up of digits (and, if a - supplemental encoding is used, a blank to separate it). It - accepts strings of 11 or 12 digits (UPC-A) and 6 or 7 or 8 digits - (UPC-E). - - The 12th digit of UPC-A is the checksum and is added by the - library if not specified in the input; if it is specified, it must - be the right checksum or the code is rejected as invalid. For - UPC-E, 6 digit are considered to be the middle part of the code, a - leading 0 is assumed and the checksum is added; 7 digits are - either considered the initial part (leading digit 0 or 1, checksum - missing) or the final part (checksum specified, leading 0 - assumed); 8 digits are considered to be the complete code, with - leading 0 or 1 and checksum. For both UPC-A and UPC-E, a trailing - string of 2 digits or 5 digits is accepted as well. Therefore, the - following are examples of valid strings that can be encoded as UPC: - "01234567890" (UPC-A) "012345678905" (UPC-A with checksum), - "012345" (UPC-E), "01234567890 12" (UPC-A, add-2) and "01234567890 - 12345" (UPC-A, add-5), "0123456 12" (UPC-E, add-2). Please note - that when setting BARCODE_ANY to auto-detect the encoding to be - used, 12-digit strings and 7-digit strings will always be - identified as EAN. This because I expect most user to provide - input without a checksum. If you need to specify UPC-with-checksum - as input you must explicitly set BARCODE_UPC as a flag or use -e - upc on the command line. - -ISBN - ISBN numbers are encoded as EAN-13 symbols, with an optional add-5 - trailer. The ISBN frontend of the library accepts real ISBN - numbers and deals with any hyphen and, if present, the ISBN - checksum character before encoding data. Valid representations for - ISBN strings are for example: "1-56592-292-1", "3-89721-122-X" and - "3-89721-122-X 06900". - -CODE 128-B - This encoding can represent all of the printing ASCII characters, - from the space (32) to DEL (127). The checksum digit is mandatory - in this encoding. - -CODE 128-C - The "C" variation of Code-128 uses Code-128 symbols to represent - two digits at a time (Code-128 is made up of 104 symbols whose - interpretation is controlled by the start symbol being used). Code - 128-C is thus the most compact way to represent any even number of - digits. The encoder refuses to deal with an odd number of digits - because the caller is expected to provide proper padding to an - even number of digits. (Since Code-128 includes control symbols to - switch charset, it is theoretically possible to represent the odd - digit as a Code 128-A or 128-B symbol, but this tool doesn't - currently implement this option). - -CODE 128 RAW - Code-128 output represented symbol-by-symbol in the input string. - To override part of the problems outlined below in specifying - code128 symbols, this pseudo-encoding allows the used to specify a - list of code128 symbols separated by spaces. Each symbol is - represented by a number in the range 0-105. The list should - include the leading character.The checksum and the stop character - are automatically added by the library. Most likely this - pseudo-encoding will be used with BARCODE_NO_ASCII and some - external program to supply the printed text. - -CODE 39 - The code-39 standard can encode uppercase letters, digits, the - blank space, plus, minus, dot, star, dollar, slash, percent. Any - string that is only composed of such characters is accepted by the - code-39 encoder. To avoid loosing information, the encoder refuses - to encode mixed-case strings (a lowercase string is nonetheless - accepted as a shortcut, but is encoded as uppercase). - -INTERLEAVED 2 OF 5 - This encoding can only represent an even number of digits (odd - digits are represented by bars, and even digits by the - interleaving spaces). The name stresses the fact that two of the - five items (bars or spaces) allocated to each symbol are wide, - while the rest are narrow. The checksum digit is optional (can be - disabled via BARCODE_NO_CHECKSUM). Since the number of digits, - including the checksum, must be even, a leading zero is inserted - in the string being encoded if needed (this is specifically stated - in the specs I have access to). - -CODE 128 - Automatic selection between alphabet A, B and C of the Code-128 - standard. This encoding can represent all ASCII symbols, from 0 - (NUL) to 127 (DEL), as well as four special symbols, named F1, F2, - F3, F4. The set of symbols available in this encoding is not - easily represented as input to the barcode library, so the - following convention is used. In the input string, which is a - C-language null-terminated string, the NUL char is represented by - the value 128 (0x80, 0200) and the F1-F4 characters are - represented by the values 193-196 (0xc1-0xc4, 0301-0304). The - values have been chosen to ease their representation as escape - sequences. - - Since the shell doesn't seem to interpret escape sequences on the - command line, the "-b" option cannot be easily used to designate - the strings to be encoded. As a workaround you can resort to the - command echo, either within back-ticks or used separately to - create a file that is then fed to the standard-input of barcode - - assuming your echo command processes escape sequences. The - newline character is especially though to encode (but not - impossible unless you use a csh variant. - - These problems only apply to the command-line tool; the use of - library functions doesn't give any problem. In needed, you can use - the "code 128 raw" pseudo-encoding to represent code128 symbols by - their numerical value. This encoding is used late in the - auto-selection mechanism because (almost) any input string can be - represented using code128. - -CODABAR - Codabar can encode the ten digits and a few special symbols - (minus, plus, dollar, colon, bar, dot). The characters "A", "B", - "C" and "D" are used to represent four different start/stop - characters. The input string to the barcode library can include - the start and stop characters or not include them (in which case - "A" is used as start and "B" as stop). Start and stop characters - in the input string can be either all lowercase or all uppercase - and are always printed as uppercase. - -PLESSEY - Plessey barcodes can encode all the hexadecimal digits. Alphabetic - digits in the input string must either be all lowercase or all - uppercase. The output text is always uppercase. - -MSI - MSI can only encode the decimal digits. While the standard - specifies either one or two check digits, the current - implementation in this library only generates one check digit. - -CODE 93 - The code-93 standard can natively encode 48 different characters, - including uppercase letters, digits, the blank space, plus, minus, - dot, star, dollar, slash, percent, as well as five special - characters: a start/stop delimiter and four "shift characters" - used for extended encoding. Using this "extended encoding" - method, any standard 7-bit ASCII character can be encoded, but it - takes up two symbol lengths in barcode if the character is not - natively supported (one of the 48). The encoder here fully - implements the code 93 encoding standard. Any characters natively - supported (A-Z, 0-9, ".+-/$&%") will be encoded as such - for any - other characters (such as lower case letters, brackets, - parentheses, etc.), the encoder will revert to extended encoding. - As a note, the option to exclude the checksum will eliminate the - two modulo-47 checksums (called C and K) from the barcode, but this - probably will make it unreadable by 99% of all scanning systems. - These checksums are specified to be used at the firmware level, - and their absence will be interpreted as an invalid barcode. - - - - -*Node: PCL Output - PCL Output - ********** - - While the default output is Postscript (possibly EPS), and Postscript -can be post-processed to almost anything, it is sometimes desirable to -create output directly usable by the specific printer at hand. PCL is -currently supported as an output format for this reason. Please note -that the Y coordinate for PCL goes from top to bottom, while for -Postscript it goes from bottom to top. Consistently, while in -Postscript you specify the bottom-left corner as origin, for PCL you -specify the top-left corner. - - Barcode output for PCL Printers (HP LaserJet and compatibles), was -developed using PCL5 Reference manuals from HP. that really refers to -these printers: - * LaserJet III, III P, III D, III Si, - - * LaserJet 4 family - - * LaserJet 5 family - - * LaserJet 6 family - - * Color LaserJet - - * DeskJet 1200 and 1600. - - - However, barcode printing uses a very small subset of PCL, probably -also LaserJet II should print it without problem, but the resulting -text may be horrible. - - The only real difference from one printer to another really depends -on which font are available in the printer, used in printing the label -associated to the bars (if requested). - - Earlier LaserJet supports only bitmaps fonts, so these are not -"scalable". (Ljet II ?), Also these fonts, when available, have a -specified direction, and not all of them are available in both Portrait -and Landscape mode. - - From LaserJet 4 series, (except 4L/5L that are entry-level printers), -Arial scalable font should be available, so it's the "default font" -used by this program. - - LaserJet III series printers (and 4L, 5L), don't feature "Arial" as a -resident font, so you should use BARCODE_OUT_PCL_III instead of -BARCODE_OUT_PCL., and font the font used will be "Univers" instead of -"Arial". - - Results on compatible printers, may depend on consistency of PCL5 -compatibility, in doubt, try BARCODE_OUT_PCL_III - - PJL commands are not used here, as it's not very compatible. - - Tested Printers: - * Hp LaserJet 4050 - - * Hp LaserJet 2100 - - * Epson N-1200 emul PCL - - * Toshiba DP2570 (copier) + PCL option - - * Epson EPL-7100 emul. HP LaserJet II: bars print fine but text is - bad. - - - - -*Node: Bugs and Pending Issues - Bugs and Pending Issues. - ************************ - - The current management of borders/margins is far from optimal. The -"default" margin applied by the library interferes with the external -representation, but I feel it is mandatory to avoid creating barcode -output with no surrounding white space (the problem is especially -relevant for EPS output). - - EAN-128 is not (yet) supported. I plan to implement it pretty soon -and then bless the package as version 1.0. - - - - - -Tag Table:Node: Top154 - Node: Overview526 - Node: The Barcode Object1404 -Node: The Field List2821 -Node: The Intermediate Representation6586 -Node: Supported Flags8359 -Node: The API11343 -Node: The barcode Executable14029 -Node: The Command Line14458 -Node: Supported Encodings19557 -Node: PCL Output28997 -Node: Bugs and Pending Issues31316 - - - -End Tag Table \ No newline at end of file diff --git a/barcode-0.98/doc/doc.barcode b/barcode-0.98/doc/doc.barcode deleted file mode 100644 index 7b460558..00000000 --- a/barcode-0.98/doc/doc.barcode +++ /dev/null @@ -1,939 +0,0 @@ -\input texinfo @c -*-texinfo-*- -% -% doc.barcode - main file for the documentation -% -%%%% - -%------------------------------------------------------------------------------ -% -% NOTE FOR THE UNAWARE USER -% ========================= -% -% This file is a texinfo source. It isn't the binary file of some strange -% editor of mine. If you want ascii, you should "make barcodedoc.txt". -% -%------------------------------------------------------------------------------ - -% -% This is not a conventional info file... -% I use two extra features: -% - The '%' as a comment marker, if at beg. of line ("\%" -> "%") -% - leading blanks are allowed -% - -@comment %**start of header -@setfilename barcode.info -@settitle Barcode @value{version} -@iftex -@afourpaper -@end iftex -@comment %**end of header - -@setchapternewpage off - -@set version 0.98 -@set update-month March 2002 - -@finalout - -@ifinfo - -This file is the User's Manual for the barcode library (version -@value{version}). - -@end ifinfo - -@setchapternewpage odd -@titlepage -@c use the new format for titles -@title barcode @value{version} -@subtitle A library for drawing bar codes -@subtitle @value{update-month} - -@author by Alessandro Rubini (@code{rubini@@gnu.org}) - -@end titlepage -@setchapternewpage off -@headings single - - -@node Top, Overview, (dir), (dir) -@top Barcode tools - -This file documents version @value{version} of the barcode -library and sample programs (@value{update-month}). - -@menu -* Overview:: -* The Barcode Object:: -* Supported Flags:: -* The API:: -* The barcode Executable:: -* Supported Encodings:: -* PCL Output:: -* Bugs and Pending Issues:: -@end menu - - -%########################################################################## -%########################################################################## - -@node Overview, The Barcode Object, Top, Top -@chapter Overview - -The @dfn{barcode} package is mainly a C library for creating bar-code -output files. It also includes a command line front-end and (in a -foreseeable future) a graphic frontend. - -The package is designed as a library because we think the main use for -barcode-generation tools is inside more featured applications. The -library addresses bar code printing as two distinct problems: creation -of bar information and actual conversion to an output format. To this -aim we use an intermediate representation for bar codes, which is -currently documented in the @file{ps.c} source file (not in this -document). - -Note that the library and the accompanying material is released -according to the GPL license, not the LGPL one. A copy of the GPL is -included in the distribution tarball. - -%########################################################################## - -@node The Barcode Object, Supported Flags, Overview, Top -@chapter The Underlying Data Structure - -Every barcode-related function acts on a data structure defined in the -@file{barcode.h} header, which must be included by any C source file -that uses the library. The header is installed by @t{make install}. - -The definition of the data structure is included here for reference: - -@lisp -struct Barcode_Item @{ - int flags; /* type of encoding and other flags */ - char *ascii; /* malloced */ - char *partial; /* malloced too */ - char *textinfo; /* information about text placement */ - char *encoding; /* code name, filled by encoding engine */ - int width, height; /* output units */ - int xoff, yoff; /* output units */ - int margin; /* output units */ - double scalef; /* requested scaling for barcode */ - int error; /* an errno-like value, in case of failure */ -@}; -@end lisp - -The exact meaning of each field and the various flags implemented are -described in the following sections. - -Even though you won't usually need to act on the contents of this -structure, some of the functions in the library receive arguments that -are directly related to one or more of these fields. - -%========================================================================== - -@menu -* The Field List:: -* The Intermediate Representation:: -@end menu - -%-------------------------------------------------------------------------- -@node The Field List, The Intermediate Representation, The Barcode Object, The Barcode Object -@section The Fields - -@table @code - -@item int flags; - - The flags are, as you may suspect, meant to specify the exact - behaviour of the library. They are often passed as an argument - to @i{barcode} functions and are discussed in the next section. - -@item char *ascii; -@itemx char *partial; -@itemx char *textinfo; -@itemx char *encoding; - - These fields are internally managed by the library, and you are - not expected to touch them if you use the provided API. All - of them are allocated with @i{malloc}. - -@item int width; -@itemx int height; - - They specify the width and height of the @i{active} barcode - region (i.e., excluding the white margin), in the units used - to create output data (for postscript they are points, 1/72th - of an inch, 0.352 mm). The fields can be either assigned to - in the structure or via @i{Barcode_Position()}, at your - choice. If either value or both are left to their default - value of zero, the output engine will assign default values - according to the specified scaling factor. If the specified - width is bigger than needed (according to the scaling factor), - the output barcode will be centered in its requested - region. If either the width of the height are too small for - the specified scale factor, the output bar code will expand - symmetrically around the requested region. - -@item int xoff; -@itemx int yoff; - - The fields specify offset from the coordinate origin of the - output engine (for postscript, position 0,0 is the lower left - corner of the page). The fields can be either assigned to in - the structure or via @i{Barcode_Position()}, at your choice. - The offset specifies where the white margin begins, not where - the first bar will be printed. To print real ink to the - specified position you should set @i{margin} to 0. - -@item int margin; - - The white margin that will be left around the printed area of - the bar code. The same margin is applied to all sides of the - printed area. The default value for the margin is defined in - @file{barcode.h} as @t{BARCODE_DEFAULT_MARGIN} (10). - -@item double scalef; - - The enlarge or shrink value for the bar code over its default - dimension. The @i{width} and @i{scalef} fields interact deeply - in the creation of the output, and a complete description of - the issues appears later in this section. - -@item int error; - - The field is used when a @i{barcode} function fails to host - an @t{errno}-like integer value. - -@end table - - -@unnumberedsubsec Use of the @i{width} and @i{scalef} fields. - -A width unit is the width of the thinnest bar and/or space in the -chosen code; it defaults to 1 point if the output is postscript or -encapsulated postscript. - -Either or both the code width and the scale factor can be left -unspecified (i.e., zero). The library deals with defaults in the -following way: - -@table @i - -@item Both unspecified - - If both the width and the scale factor are unspecified, the - scale factor will default to 1.0 and the width is calculated - according to the actual width of the bar code being printed. - -@item Width unspecified - - If the width is not specified, it is calculated according to - the values of @i{scalef}. - -@item Scale factor unspecified - - If the scale factor is not specified, it will be chosen so - that the generated bar code exactly fits the specified width. - -@item Both specified - - The code will be printed inside the specified region according - to the specified scale factor. It will be aligned to the left. - If, however, the chosen width is too small for the specific - bar code and scaling factor, then the code will extend - symmetrically to the left and to the right of the chosen - region. - -@end table - -%-------------------------------------------------------------------------- -@node The Intermediate Representation, , The Field List, The Barcode Object -@section The Intermediate Representation - -The encoding functions print their output into the @t{partial} and -@t{texinfo} fields of the barcode data structure. Those fields, together -with position information, are then used to generate actual output. -This is an informal description of the intermediate format. - -The first char in @t{partial} tells how much extra space to add to the -left of the bars. For EAN-13, it is used to leave space to print the -first digit, other codes may have '0' for no-extra-space-needed. - -The next characters are alternating bars and spaces, as multiples of the -base dimension which is 1 unless the code is rescaled. Rescaling is -calculated as the ratio from the requested width and the calculated -width. Digits represent bar/space dimensions. Lower-case letters -represent those bars that should extend lower than the others: 'a' is -equivalent to '1', 'b' is '2' and so on up to 'i' which is equivalent to -'9'. Other letters will be used for encoding-specific meanings, as soon -as I implement them. - -The @t{textinfo} string is made up of fields @t{%lf:%lf:%c} separated by -blank space. The first integer is the x position of the character, -the second is the font size (before rescaling) and the char item is -the character to be printed. - -Both the @t{partial} and @t{textinfo} strings may include ``@t{-}'' or -``@t{+}'' as special characters (in @t{textinfo} the char should be a -stand-alone word). They state where the text should be printed: below -the bars (``@t{-}'', default) or above the bars. This is used, for -example, to print the add-5 and add-2 codes to the right of UPC or EAN -codes (the add-5 extension is mostly used in ISBN codes). - - - - -%========================================================================== - -@node Supported Flags, The API, The Barcode Object, Top -@chapter The Flags - -The following flags are supported by version @value{version} of the -library: - -@table @code - -@item BARCODE_ENCODING_MASK - - The mask is used to extract the encoding-type identifier from - the @i{flags} field. - -@item BARCODE_EAN -@itemx BARCODE_UPC -@itemx BARCODE_ISBN -@itemx BARCODE_128B -@itemx BARCODE_128C -@itemx BARCODE_128 -@itemx BARCODE_128RAW -@itemx BARCODE_39 -@itemx BARCODE_I25 -@itemx BARCODE_CBR -@itemx BARCODE_MSI -@itemx BARCODE_PLS -@itemx BARCODE_93 - - The currently supported encoding types: EAN (13 digits, 8 - digits, 13 + 2 add-on and 13 + 5 add-on), UPC (UPC-A, UPC-E, - UPC-A with 2 or 5 digit add-on), ISBN (with or without the - 5-digit add-on), CODE128-B (the whole set of printable - ASCII characters), CODE128-C (two digits encoded by each barcode - symbol), CODE128 (all ASCII values), a ``raw-input'' pseudo-code - that generates CODE128 output, CODE39 (alphanumeric), - "interleaved 2 of 5" (numeric), Codabar (numeric plus a few - symbols), MSI (numeric) and Plessey (hex digits). - @xref{Supported Encodings}. - -@item BARCODE_ANY - - This special encoding type (represented by a value of zero, so - it will be the default) tells the encoding procedure to look - for the first encoding type that can deal with a textual - string. Therefore, a 11-digit code will be printed as UPC (as - well as 6-digit, 11+2 and 11+5), a 12-digit (or 7-digit, or - 12+2 or 12+5) as EAN13, an ISBN code (with or without hyphens, - with or without add-5) will be encoded in its EAN13 - representation, an even number of digits is encoded using - CODE128C and a generic string is encoded using CODE128B. Since - code-39 offers a much larger representation for the same - text string, code128-b is preferred over code39 for - alphanumeric strings. - -@item BARCODE_NO_ASCII - - Instructs the engine not to print the ascii string on - output. By default the bar code is accompanied with an ascii - version of the text it encodes. - -@item BARCODE_NO_CHECKSUM - - Instructs the engine not to add the checksum character to the - output. Not all the encoding types can drop the checksum; - those where the checksum is mandatory (like EAN and UPC) - just ignore the flag. - -@item BARCODE_OUTPUT_MASK - - The mask is used to extract the output-type identifier from - the @i{flags} field. - -@item BARCODE_OUT_PS -@itemx BARCODE_OUT_EPS -@itemx BARCODE_OUT_PCL -@itemx BARCODE_OUT_PCL_III - - The currently supported encoding types: full-page postscript - and encapsulated postscript; PCL (print command language, for - HP printers) and PCL-III (same as PCL, but uses a font not - available on older printers). - -@item BARCODE_OUT_NOHEADERS - - The flag instructs the printing engine not to print the header - and footer part of the file. This makes sense for the - postscript engine but might not make sense for other engines; - such other engines will silently ignore the flag just like - the PCL back-end does. - -@end table - -%########################################################################## - -@node The API, The barcode Executable, Supported Flags, Top -@chapter Functions Exported by the Library - -%MANPAGE barcode.3 -%M .TH BARCODE 3 "October 1999" "GNU" "GNU barcode" -%M .UC 4 -%M .SH NAME -%M barcode \- a library to create and print bar codes -%M .SH SYNOPSIS -%M .B #include -%M .sp -%M .BI "struct Barcode_Item *Barcode_Create(char *" text ");" -%M .br -%M .BI "int Barcode_Delete(struct Barcode_Item *" bc ");" -%M .br -%M .BI "int Barcode_Encode(struct Barcode_Item *" bc ", int " flags ");" -%M .br -%M .BI "int Barcode_Print(struct Barcode_Item *" bc ", FILE *" f ", int " flags ");" -%M .br -%M .BI "int Barcode_Position(struct Barcode_Item *" bc ", int " wid ", int " hei ", int " xoff ", int " yoff " , double " scalef ");" -%M .br -%M .BI "int Barcode_Encode_and_Print(char *" text ", FILE *" f ", int " wid ", int " hei ", int " xoff ", int " yoff ", int " flags ");" -%M .br -%M .BI "int Barcode_Version(char *" versionname ");" -%M -%M .SH DESCRIPTION -%M -%M The barcode family of library functions is meant to ease -%M creation of bar-code printouts. -%M -%M The information below is extracted from the texinfo file, which is the -%M preferred source of information. - -The functions included in the barcode library are declared in the -header file @t{barcode.h}. They perform the following tasks: - -@table @code - -@item struct Barcode_Item *Barcode_Create(char *text); - The function creates a new barcode object to deal with a - specified text string. It returns NULL in case of failure and - a pointer to a barcode data structure in case of success. - -@item int Barcode_Delete(struct Barcode_Item *bc); - Destroy a barcode object. Always returns 0 (success) - -@item int Barcode_Encode(struct Barcode_Item *bc, int flags); - Encode the text included in the @i{bc} object. Valid flags are - the encoding type (other flags are ignored) and - BARCODE_NO_CHECKSUM (other flags are silently ignored); if the - flag argument is zero, @t{bc->flags} will apply. The function - returns 0 on success and -1 in case of error. After - successful termination the data structure will host the - description of the bar code and its textual representation, - after a failure the @t{error} field will include the reason of - the failure. - -@item int Barcode_Print(struct Barcode_Item *bc, FILE *f, int flags); - Print the bar code described by @t{bc} to the specified file. - Valid flags are the output type, @t{BARCODE_NO_ASCII} and - @t{BARCODE_OUT_NOHEADERS}, other flags are ignored. If any of - these flags is zero, it will be inherited from @t{bc->flags} - which therefore takes precedence. The function returns 0 on - success and -1 in case of error (with @t{bc->error} set - accordingly). In case of success, the bar code is printed to - the specified file, which won't be closed after use. - -@item int Barcode_Position(struct Barcode_Item *bc, int wid, int hei, int xoff, int yoff, double scalef); - The function is a shortcut to assign values to the data - structure. - -@item int Barcode_Encode_and_Print(char *text, FILE *f, int wid, int hei, int xoff, int yoff, int flags); - The function deals with the whole life of the barcode - object by calling the other functions; it uses all the specified - flags. - -@item int Barcode_Version(char *versionname); - Returns the current version as an integer number of the form - major * 10000 + minor * 100 + release. Therefore, version - 1.03.5 will be returned as 10305 and version 0.53 as 5300. If - the argument is non-null, it will be used to return the version - number as a string. Note that the same information is available from - two preprocessor macros: @t{BARCODE_VERSION} (the string) and - @t{BARCODE_VERSION_INT} (the integer number). - -@end table - -%MANPAGE END - -%########################################################################## - -@node The barcode Executable, Supported Encodings, The API, Top -@chapter The @i{barcode} frontend program - -%MANPAGE barcode.1 -%M .TH BARCODE 1 "October 2001" "GNU" "GNU barcode" -%M .UC 4 -%M .SH NAME -%M barcode \- a stand alone program to run the barcode library -%M .SH SYNOPSIS -%M .B barcode -%M [\-b - | string] [\-e encoding] [\-o - | outfile] [ -%M .I other-flags -%M ] -%M .SH DESCRIPTION -%M -%M The information below is extracted from the texinfo file, which is the -%M preferred source of information. -%M .PP -The @b{barcode} program is a front-end to access some features of the -library from the command line. It is able to read user supplied -strings from the command line or a data file (standard input by default) -and encode all of them. - -%M .SH OPTIONS -%M .PP - -@menu -* The Command Line:: -@end menu - -%-------------------------------------------------------------------------- -@node The Command Line, , The barcode Executable, The barcode Executable -@section The Command Line - - -@b{barcode} accepts the following options: - -@table @code - -@item --help or -h - Print a usage summary and exit. - -@item -i filename - Identify a file where strings to be encoded are read from. If - missing (and if @t{-b} is not used) it defaults to standard - input. Each data line of the input file will be used to create - one barcode output. - -@item -o filename - Output file. It defaults to standard output. - -@item -b string - Specify a single ``barcode'' string to be encoded. - The option can be used multiple times in order to encode - multiple strings (this will result in multi-page postscript - output or a table of barcodes if @t{-t} is specified). The - strings must match the encoding chosen; if it doesn't - match the program will print a warning to @t{stderr} and - generate ``blank'' output (although not zero-length). - Please note that a string including spaces or - other special characters must be properly quoted. - -@item -e encoding - @b{encoding} is the name of the chosen encoding format being - used. It defaults to the value of the environment variable - @t{BARCODE_ENCODING} or to auto detection if the environment is - also unset. - -@item -g geometry - The geometry argument is of the form ``[@i{} @t{x} - @i{}] [@t{+} @i{} @t{+} @i{}]'' (with - no intervening spaces). Unspecified margin values will result in - no margin; unspecified size results in default size. - The specified values represent print points by - default, and can be inches, millimeters or other units - according to the @t{-u} option or the @t{BARCODE_UNIT} - environment variable. The argument is used to place the - printout code on the page. Note that an additional white - margin of 10 points is added to the printout. If the option is - unspecified, @t{BARCODE_GEOMETRY} is looked up in the - environment, if missing a default size and no margin (but the - default 10 points) are used. - -@item -t table-geometry - Used to print several barcodes to a single page, this option - is meant to be used to print stickers. The argument is of the - form ``@i{} @t{x} @i{} [@t{+} @i{} - @t{+} @i{} [@t{-} @i{} [@t{-} - @i{}]]]'' (with no intervening spaces); if missing, - the top and right margin will default to be the same as the - bottom and left margin. The margins are specified in print - points or in the chosen unit (see @t{-u} below). If the - option is not specified, @t{BARCODE_TABLE} is looked up in the - environment, otherwise no table is printed and each barcode - will get its own page. The size (but not the position) - of a barcode item within a table can also be selected using - @t{-g} (see "geometry" above), without struggling with - external and internal margins. I still think management of - geometries in a table is suboptimal, but I can't make it - better without introducing incompatibilities. - - -@item -m margin(s) - Specifies an internal margin for each sticker in the - table. The argument is of the form - ``@i{}@t{,}@i{}'' and the margin is applied - symmetrically to the sticker. If unspecified, the environment - variable @t{BARCODE_MARGIN} is used or a default internal - margin of 10 points is used. - -@item -n - ``Numeric'' output: don't print the ASCII form of the code, - only the bars. - -@item -c - No checksum character (for encodings that allow it, like code 39, - other codes, like UPC or EAN, ignore this option). - -@item -E - Encapsulated postscript (default is normal postscript). When - the output is generated as EPS only one barcode is encoded. - -@item -P - PCL output. Please note that the Y direction goes from top - to bottom for PCL, and the origin for an image is the top-left - corner instead of the bottom-left - -@item -p pagesize - Specify a non-default page size. The page size can be specified - in millimeters, inches or plain numbers (for example: "@t{210x297mm}", - "@t{8.5x11in}", "@t{595x842}"). A page specification as numbers - will be interpreted according to the current unit specification - (see @t{-u} below). If libpaper is available, - you can also specify the page size with its name, like "@t{A3}" - or "@t{letter}" (libpaper is a standard component of Debian - GNU/Linux, but may be missing elsewhere). The default page - size is your system-wide default if libpaper is there, A4 otherwise. - -@item -u unit - Choose the unit used in size specifications. Accepted values - are ``mm'', ``cm'', ``in'' and ``pt''. By default, the program - will check @t{BARCODE_UNIT} in the environment, and assume - points otherwise (this behaviour is compatible with 0.92 and - previous versions. If @t{-u} appears more than once, each - instance will modified the behaviour for the arguments at its - right, as the command line is processes left to right. The - program internally works with points, and any size is - approximated to the nearest multiple of one point. The @t{-u} - option affect @t{-g} (geometry), @t{-t} (table) and @t{-p} - (page size). - -@end table - -%M .SH ENCODING TYPES -%M .PP - -%########################################################################## -@node Supported Encodings, PCL Output, The barcode Executable, Top -@chapter Supported Encodings - -The program encodes text strings passed either on the command line -(with -b) or retrieved from standard input. The text representation is -interpreted according to the following rules. When auto-detection -of the encoding is enabled (i.e, no explicit encoding type is specified), -the encoding types are scanned to find one that can digest the text string. -The following list of supported types is sorted in the same order -the library uses when auto-detecting a suitable encoding for a string. - -@table @var - -@item EAN - The EAN frontend is similar to UPC; it accepts strings of - digits, 12 or 7 characters long. Strings of 13 or 8 characters - are accepted if the provided checksum digit is correct. - I expect most users to feed input without a - checksum, though. The add-2 and add-5 extension are accepted for both - the EAN-13 and the EAN-8 encodings. - The following are example of valid input strings: - ``@t{123456789012}'' (EAN-13), ``@t{1234567890128}'' (EAN-13 wih - checksum), ``@t{1234567}'' (EAN-8), ``@t{12345670 12345}'' (EAN-8 - with checksum and add-5), - ``@t{123456789012 12}'' (EAN-13 with add-2), - ``@t{123456789012 12345}'' (EAN-13 with add-5). - -@item UPC - The UPC frontend accepts only strings made up of digits (and, - if a supplemental encoding is used, a blank to separate it). - It accepts strings of 11 or 12 digits (UPC-A) and 6 or 7 or 8 - digits (UPC-E). - - The 12th digit of UPC-A is the checksum and is added by the - library if not specified in the input; if it is specified, it - must be the right checksum or the code is rejected as invalid. - For UPC-E, 6 digit are considered to be the middle part of the - code, a leading 0 is assumed and the checksum is added; - 7 digits are either considered the initial part (leading digit - 0 or 1, checksum missing) or the final part (checksum specified, - leading 0 assumed); 8 digits are considered to be the complete code, - with leading 0 or 1 and checksum. - For both UPC-A and UPC-E, a trailing string of 2 digits or 5 digits - is accepted as well. Therefore, the following are examples - of valid strings that can be encoded as UPC: - ``@t{01234567890}'' (UPC-A) - ``@t{012345678905}'' (UPC-A with checksum), ``@t{012345}'' - (UPC-E), ``@t{01234567890 12}'' (UPC-A, add-2) and - ``@t{01234567890 12345}'' (UPC-A, add-5), ``@t{0123456 12}'' - (UPC-E, add-2). - Please note that when setting @t{BARCODE_ANY} to auto-detect - the encoding to be used, 12-digit strings and 7-digit strings - will always be identified as EAN. This because I expect most - user to provide input without a checksum. If you need to - specify UPC-with-checksum as input you must explicitly set - @t{BARCODE_UPC} as a flag or use @t{-e upc} on the command line. - -@item ISBN - ISBN numbers are encoded as EAN-13 symbols, with an optional - add-5 trailer. The ISBN frontend of the library accepts real - ISBN numbers and deals with any hyphen and, if present, the - ISBN checksum character before encoding data. Valid - representations for ISBN strings are for example: - ``@t{1-56592-292-1}'', ``@t{3-89721-122-X}'' and ``@t{3-89721-122-X - 06900}''. - -@item code 128-B - This encoding can represent all of the printing ASCII - characters, from the space (32) to DEL (127). The checksum - digit is mandatory in this encoding. - -@item code 128-C - The ``C'' variation of Code-128 uses Code-128 symbols to - represent two digits at a time (Code-128 is made up of 104 - symbols whose interpretation is controlled by the start symbol - being used). Code 128-C is thus the most compact way to - represent any even number of digits. The encoder refuses to - deal with an odd number of digits because the caller is - expected to provide proper padding to an even number of - digits. (Since Code-128 includes control symbols to switch - charset, it is theoretically possible to represent the odd - digit as a Code 128-A or 128-B symbol, but this tool doesn't - currently implement this option). - -@item code 128 raw - Code-128 output represented symbol-by-symbol in the input - string. To override part of the problems outlined below in - specifying code128 symbols, this pseudo-encoding allows the - used to specify a list of code128 symbols separated by - spaces. Each symbol is represented by a number in the range - 0-105. The list should include the leading character.The - checksum and the stop character are automatically added by the - library. Most likely this pseudo-encoding will be used with - @t{BARCODE_NO_ASCII} and some external program to supply the - printed text. - -@item code 39 - The code-39 standard can encode uppercase letters, digits, the - blank space, plus, minus, dot, star, dollar, slash, percent. - Any string that is only composed of such characters is - accepted by the code-39 encoder. To avoid loosing information, - the encoder refuses to encode mixed-case strings (a lowercase - string is nonetheless accepted as a shortcut, but is encoded - as uppercase). - -@item interleaved 2 of 5 - This encoding can only represent an even number of digits - (odd digits are represented by bars, and even digits by the - interleaving spaces). The name stresses the fact that two - of the five items (bars or spaces) allocated to each symbol - are wide, while the rest are narrow. The checksum digit is - optional (can be disabled via @t{BARCODE_NO_CHECKSUM}). - Since the number of digits, including the checksum, must be even, - a leading zero is inserted in the string being encoded if needed - (this is specifically stated in the specs I have access to). - -@item code 128 - Automatic selection between alphabet A, B and C of the Code-128 - standard. This encoding can represent all ASCII symbols, from - 0 (NUL) to 127 (DEL), as well as four special symbols, named - F1, F2, F3, F4. The set of symbols available in this encoding - is not easily represented as input to the @i{barcode} library, - so the following convention is used. In the input string, - which is a C-language null-terminated string, the NUL char - is represented by the value 128 (0x80, 0200) and the F1-F4 characters - are represented by the values 193-196 (0xc1-0xc4, 0301-0304). - The values have been chosen to ease their representation as - escape sequences. - - Since the shell doesn't seem to interpret escape sequences on the - command line, the "-b" option cannot be easily used to designate - the strings to be encoded. As a workaround you can resort - to the command @t{echo}, either within back-ticks or used - separately to create a file that is then fed to the standard-input - of @i{barcode} -- assuming your @t{echo} command processes escape - sequences. The newline character is especially though to encode - (but not impossible unless you use a @t{csh} variant. - - These problems only apply to the command-line tool; the use of - library functions doesn't give any problem. In needed, you can - use the ``@i{code 128 raw}'' pseudo-encoding to represent - code128 symbols by their numerical value. This encoding is - used late in the auto-selection mechanism because (almost) any - input string can be represented using code128. - -@item Codabar - Codabar can encode the ten digits and a few special symbols - (minus, plus, dollar, colon, bar, dot). The characters - ``@t{A}'', ``@t{B}'', ``@t{C}'' and ``@t{D}'' are used to - represent four different start/stop characters. The input - string to the barcode library can include the start and stop - characters or not include them (in which case ``@t{A}'' is - used as start and ``@t{B}'' as stop). Start and stop - characters in the input string can be either all lowercase or - all uppercase and are always printed as uppercase. - -@item Plessey - Plessey barcodes can encode all the hexadecimal - digits. Alphabetic digits in the input string must either be - all lowercase or all uppercase. The output text is always - uppercase. - -@item MSI - MSI can only encode the decimal digits. While the standard - specifies either one or two check digits, the current - implementation in this library only generates one check digit. - -@item code 93 - The code-93 standard can natively encode 48 different characters, - including uppercase letters, digits, the blank space, plus, minus, - dot, star, dollar, slash, percent, as well as five special - characters: a start/stop delimiter and four "shift characters" used - for extended encoding. Using this "extended encoding" method, any - standard 7-bit ASCII character can be encoded, but it takes up two - symbol lengths in barcode if the character is not natively supported - (one of the 48). - The encoder here fully implements the code 93 encoding standard. - Any characters natively supported (A-Z, 0-9, ".+-/$&%") will be - encoded as such - for any other characters (such as lower case - letters, brackets, parentheses, etc.), the encoder will revert - to extended encoding. - As a note, the option to exclude the checksum will eliminate the - two modulo-47 checksums (called C and K) from the barcode, but this - probably will make it unreadable by 99% of all scanning systems. - These checksums are specified to be used at the firmware level, - and their absence will be interpreted as an invalid barcode. - - -@end table - -%M .SH PCL OUTPUT - -%########################################################################## -@node PCL Output, Bugs and Pending Issues, Supported Encodings, Top -@chapter PCL Output - -While the default output is Postscript (possibly EPS), and Postscript -can be post-processed to almost anything, it is sometimes desirable to -create output directly usable by the specific printer at hand. -PCL is currently supported as an output format for this reason. -Please note that the Y coordinate for PCL goes from top to bottom, while -for Postscript it goes from bottom to top. Consistently, while in -Postscript you specify the bottom-left corner as origin, for PCL -you specify the top-left corner. - -Barcode output for PCL Printers (HP LaserJet and compatibles), -was developed using PCL5 Reference manuals from HP. -that really refers to these printers: -@itemize @bullet - -@item -LaserJet III, III P, III D, III Si, - -@item -LaserJet 4 family - -@item -LaserJet 5 family - -@item -LaserJet 6 family - -@item -Color LaserJet - -@item -DeskJet 1200 and 1600. - -@end itemize - -However, barcode printing uses a very small subset of PCL, probably also -LaserJet II should print it without problem, but the resulting text may -be horrible. - -The only real difference from one printer to another really depends on -which font are available in the printer, used in printing the label -associated to the bars (if requested). - -Earlier LaserJet supports only bitmaps fonts, so these are not -"scalable". (Ljet II ?), Also these fonts, when available, have a -specified direction, and not all of them are available in -both Portrait and Landscape mode. - -From LaserJet 4 series, (except 4L/5L that are entry-level printers), -Arial scalable font should be available, so it's the "default font" -used by this program. - -LaserJet III series printers (and 4L, 5L), don't feature "Arial" as a -resident font, so you should use @t{BARCODE_OUT_PCL_III} instead of -@t{BARCODE_OUT_PCL.}, and font the font used will be "Univers" instead -of "Arial". - -Results on compatible printers, may depend on consistency of -PCL5 compatibility, in doubt, try BARCODE_OUT_PCL_III - -PJL commands are not used here, as it's not very compatible. - - -Tested Printers: -@itemize @bullet -@item -Hp LaserJet 4050 -@item -Hp LaserJet 2100 -@item -Epson N-1200 emul PCL -@item -Toshiba DP2570 (copier) + PCL option -@item -Epson EPL-7100 emul. HP LaserJet II: bars print fine but text is bad. -@end itemize - - -%M .SH BUGS - -%########################################################################## -@node Bugs and Pending Issues, , PCL Output, Top -@chapter Bugs and Pending Issues. - -The current management of borders/margins is far from optimal. The -``default'' margin applied by the library interferes with the external -representation, but I feel it is mandatory to avoid creating barcode -output with no surrounding white space (the problem is especially -relevant for EPS output). - -EAN-128 is not (yet) supported. I plan to implement it pretty soon and -then bless the package as version 1.0. - -%M .SH "SEE ALSO" -%M \fBbarcode(3)\fP -%M -%M .SH AUTHORS -%M Alessandro Rubini (maintainer) -%M .PP -%M Leonid A. Broukhis (several encodings) -%M .PP -%M Andrea Scopece (PCL output) -%MANPAGE END - -@iftex -@contents -@end iftex - -@bye -@c LocalWords: barcode ifinfo titlepage iftex texinfo ascii frontend LGPL -@c LocalWords: tarball malloced textinfo scalef isbn Plessey codabar GPL Ljet -@c LocalWords: LocalWords LaserJet Univers Arial Debian libpaper pagesize -@c LocalWords: Epson MANPAGE stderr barcodes emul DeskJet xmargin ymargin -@c LocalWords: leftmargin rightmargin topmargin bottommargin unset struct -@c LocalWords: NOHEADERS yoff xoff versionname errno malloc behaviour charset diff --git a/barcode-0.98/doc/infofilter b/barcode-0.98/doc/infofilter deleted file mode 100755 index 92bc8b7d..00000000 --- a/barcode-0.98/doc/infofilter +++ /dev/null @@ -1,16 +0,0 @@ -#! /usr/bin/sed -f - - -# allow "%" as a comment char, but only at the beginning of the line -s/^%/@c / -#s/[^\\]%.*$// -s/^\\%/%/ - -#preserve blanks in @lisp blocks -/@lisp/,/@end lisp/ p -/@lisp/,/@end lisp/ d - -# remove leading blanks -s/^[ ]*// - -#s/\\t/@code/g diff --git a/barcode-0.98/doc/manpager b/barcode-0.98/doc/manpager deleted file mode 100755 index 46de5be2..00000000 --- a/barcode-0.98/doc/manpager +++ /dev/null @@ -1,120 +0,0 @@ -#! /usr/bin/awk -f -# Copyright (c) 1998-2001 Alessandro Rubini - -BEGIN {IN=0} - -/^%MANPAGE END/ {IN=0; next} -/^%MANPAGE/ {IN=1; USELP=NEEDLP=INTABLE=0; NAME=$2; next} -IN==0 {next} - -/^%MSKIP/ {SKIP=1;next} -/^%M/ {SKIP=0} - -/^@menu/ {SKIP=1;next} -/^@end menu/ {SKIP=0;next} - -SKIP==1 {next} -/^%M$/ {next} -/^@ignore/ {next} -/^@end ign/ {next} - -#now perform all the substitutions needed - - { gsub("^%M ?",""); } - -# Use gensub for converting tags: itz Sep 30 1998 -# -# However, the gensub function is gawk-specific, and we want things -# to work with original-awk too (for portability). -# Therefore, use a normal gsub, even though it's a subobptimal solution -# as it may step in extra braces. The good solution will be piping to sed, -# or match, extract subesxpression, replace, reinsert -- bleah... -# (ARub, Oct 10 2000) -/@b\{/ { - #$0 = gensub(/@b\{([^}]+)\}/, "\\\\fB\\1\\\\fP","g"); - gsub("@b\{","\\fB"); - gsub("\}","\\fP"); -} - -/@var\{/ { - #$0 = gensub(/@var\{([^}]+)\}/, "\\\\fI\\1\\\\fP","g"); - gsub("@var\{","\\fB"); - gsub("\}","\\fP"); -} - -/@(samp|code|file)\{/ { - #$0 = gensub(/@(samp|code|file)\{([^}]+)\}/, "`\\2'","g"); - gsub("@(samp|code|file)\{",""); - gsub("\}",""); -} - - -/@xref\{.*\}\./ { - gsub(/@xref\{.*\}\./,""); -} - -/@ref\{.*\}/ { - gsub("@ref\{",""); - gsub("\}",""); -} - -/@\*/ { - gsub(/@\* */,"\n.br\n"); -} - -/@[a-z]+\{/ { - gsub("@[a-z]+\\{",""); - gsub("}",""); - } - -/^@table/ { TABLE=1; } -/^@itemize/ { TABLE=1; next} - -/^@item/ { - gsub("^@item *",""); - printf ".TP\n%s\n",$0 > NAME; - NEEDLP=0; next; - } - -/^@end table/ {TABLE=0} -/^@end itemize/ {TABLE=0} - -# discard other texinfo commands - -/^@/ {next} - -# manage comments and '%' - -/^%/ {next} - - - { - gsub("[^\\\\]%.*$",""); - gsub("\\%","%"); - } - -# remove leading blanks - -/^[ \t]/ {gsub("^[ \t]*","");} - -# put a .LP at blank lines - -/^.nf/ {USELP=0} -/^.fi/ {USELP=1} - -/^$/ {if (USELP) {NEEDLP++; next;} } - - -/./ { if (NEEDLP) { printf "\n.LP\n" > NAME; NEEDLP=0; } } - -/^.TH/ {USELP=1} - -# Escape single slashes (e.g. in documentation for `-l' command line option) - - {gsub("\\\\ ", "\\\\ ");} - - {gsub("~", "~~");} - - {print > NAME} - - diff --git a/barcode-0.98/doc/mktxt b/barcode-0.98/doc/mktxt deleted file mode 100755 index bd3f88ba..00000000 --- a/barcode-0.98/doc/mktxt +++ /dev/null @@ -1,38 +0,0 @@ -#! /usr/bin/awk -f - -# Warning: this may use gnu-awk features - -# Program to create ascii from info; -# Missing: table of contents - -# skip - -BEGIN {NODELINE=0; NODE=0; KEEP=1; printf "\n\n"} - - -/^\037$/ { NODELINE=1; NODE=NODE+1; KEEP=1; next} - -NODE==1 { next } - -NODELINE==1 { - NODELINE=2; - sub("^.*Node: ","*Node: "); - sub(",.*$",""); - printf "\n\n\n%s",$0; -#print - next; - } - -NODELINE { NODELINE=NODELINE+1 } - -NODELINE==4 { printf "\t\t\t\t"; } -NODELINE==5 { printf "\t\t\t\t"; NODELINE=0} - - -/^\* Menu:$/ { KEEP=0 } - - - -KEEP==0 { next } - -{ print } diff --git a/barcode-0.98/doc/texi2html b/barcode-0.98/doc/texi2html deleted file mode 100755 index 2c61aa93..00000000 --- a/barcode-0.98/doc/texi2html +++ /dev/null @@ -1,2021 +0,0 @@ -#!/usr/local/bin/perl -'di '; -'ig 00 '; -#+############################################################################## -# # -# File: texi2html # -# # -# Description: Program to transform most Texinfo documents to HTML # -# # -#-############################################################################## - -# @(#)texi2html 1.51 09/10/96 Written (mainly) by Lionel Cons, Lionel.Cons@cern.ch - -# The man page for this program is included at the end of this file and can be -# viewed using the command 'nroff -man texi2html'. -# Please read the copyright at the end of the man page. - -#+++############################################################################ -# # -# Constants # -# # -#---############################################################################ - -$DEBUG_TOC = 1; -$DEBUG_INDEX = 2; -$DEBUG_BIB = 4; -$DEBUG_GLOSS = 8; -$DEBUG_DEF = 16; -$DEBUG_HTML = 32; -$DEBUG_USER = 64; - -$BIBRE = '\[[\w\/]+\]'; # RE for a bibliography reference -$FILERE = '[\/\w.+-]+'; # RE for a file name -$VARRE = '[^\s\{\}]+'; # RE for a variable name -$NODERE = '[^@{}:\'`",]+'; # RE for a node name -$NODESRE = '[^@{}:\'`"]+'; # RE for a list of node names -$XREFRE = '[^@{}]+'; # RE for a xref (should use NODERE) - -$ERROR = "***"; # prefix for errors and warnings -$THISPROG = "texi2html 1.51"; # program name and version -$HOMEPAGE = "http://wwwcn.cern.ch/dci/texi2html/"; # program home page -$TODAY = &pretty_date; # like "20 September 1993" -$SPLITTAG = "\n"; # tag to know where to split -$PROTECTTAG = "_ThisIsProtected_"; # tag to recognize protected sections -$html2_doctype = ''; - -# -# language dependent constants -# -#$LDC_SEE = 'see'; -#$LDC_SECTION = 'section'; -#$LDC_IN = 'in'; -#$LDC_TOC = 'Table of Contents'; -#$LDC_GOTO = 'Go to the'; -#$LDC_FOOT = 'Footnotes'; -# TODO: @def* shortcuts - -# -# pre-defined indices -# -%predefined_index = ( - 'cp', 'c', - 'fn', 'f', - 'vr', 'v', - 'ky', 'k', - 'pg', 'p', - 'tp', 't', - ); - -# -# valid indices -# -%valid_index = ( - 'c', 1, - 'f', 1, - 'v', 1, - 'k', 1, - 'p', 1, - 't', 1, - ); - -# -# texinfo section names to level -# -%sec2level = ( - 'top', 0, - 'chapter', 1, - 'unnumbered', 1, - 'majorheading', 1, - 'chapheading', 1, - 'appendix', 1, - 'section', 2, - 'unnumberedsec', 2, - 'heading', 2, - 'appendixsec', 2, - 'appendixsection', 2, - 'subsection', 3, - 'unnumberedsubsec', 3, - 'subheading', 3, - 'appendixsubsec', 3, - 'subsubsection', 4, - 'unnumberedsubsubsec', 4, - 'subsubheading', 4, - 'appendixsubsubsec', 4, - ); - -# -# accent map, TeX command to ISO name -# -%accent_map = ( - '"', 'uml', - '~', 'tilde', - '^', 'circ', - '`', 'grave', - '\'', 'acute', - ); - -# -# texinfo "simple things" (@foo) to HTML ones -# -%simple_map = ( - # cf. makeinfo.c - "*", "
    ", # HTML+ - " ", " ", - "\n", "\n", - "|", "", - # spacing commands - ":", "", - "!", "!", - "?", "?", - ".", ".", - ); - -# -# texinfo "things" (@foo{}) to HTML ones -# -%things_map = ( - 'TeX', 'TeX', - 'br', '

    ', # paragraph break - 'bullet', '*', - 'copyright', '(C)', - 'dots', '...', - 'equiv', '==', - 'error', 'error-->', - 'expansion', '==>', - 'minus', '-', - 'point', '-!-', - 'print', '-|', - 'result', '=>', - 'today', $TODAY, - ); - -# -# texinfo styles (@foo{bar}) to HTML ones -# -%style_map = ( - 'asis', '', - 'b', 'B', - 'cite', 'CITE', - 'code', 'CODE', - 'ctrl', '&do_ctrl', # special case - 'dfn', 'STRONG', # DFN tag is illegal in the standard - 'dmn', '', # useless - 'emph', 'EM', - 'file', '"TT', # will put quotes, cf. &apply_style - 'i', 'I', - 'kbd', 'KBD', - 'key', 'KBD', - 'r', '', # unsupported - 'samp', '"SAMP', # will put quotes, cf. &apply_style - 'sc', '&do_sc', # special case - 'strong', 'STRONG', - 't', 'TT', - 'titlefont', '', # useless - 'var', 'VAR', - 'w', '', # unsupported - ); - -# -# texinfo format (@foo/@end foo) to HTML ones -# -%format_map = ( - 'display', 'PRE', - 'example', 'PRE', - 'format', 'PRE', - 'lisp', 'PRE', - 'quotation', 'BLOCKQUOTE', - 'smallexample', 'PRE', - 'smalllisp', 'PRE', - # lists - 'itemize', 'UL', - 'enumerate', 'OL', - # poorly supported - 'flushleft', 'PRE', - 'flushright', 'PRE', - ); - -# -# texinfo definition shortcuts to real ones -# -%def_map = ( - # basic commands - 'deffn', 0, - 'defvr', 0, - 'deftypefn', 0, - 'deftypevr', 0, - 'defcv', 0, - 'defop', 0, - 'deftp', 0, - # basic x commands - 'deffnx', 0, - 'defvrx', 0, - 'deftypefnx', 0, - 'deftypevrx', 0, - 'defcvx', 0, - 'defopx', 0, - 'deftpx', 0, - # shortcuts - 'defun', 'deffn Function', - 'defmac', 'deffn Macro', - 'defspec', 'deffn {Special Form}', - 'defvar', 'defvr Variable', - 'defopt', 'defvr {User Option}', - 'deftypefun', 'deftypefn Function', - 'deftypevar', 'deftypevr Variable', - 'defivar', 'defcv {Instance Variable}', - 'defmethod', 'defop Method', - # x shortcuts - 'defunx', 'deffnx Function', - 'defmacx', 'deffnx Macro', - 'defspecx', 'deffnx {Special Form}', - 'defvarx', 'defvrx Variable', - 'defoptx', 'defvrx {User Option}', - 'deftypefunx', 'deftypefnx Function', - 'deftypevarx', 'deftypevrx Variable', - 'defivarx', 'defcvx {Instance Variable}', - 'defmethodx', 'defopx Method', - ); - -# -# things to skip -# -%to_skip = ( - # comments - 'c', 1, - 'comment', 1, - # useless - 'contents', 1, - 'shortcontents', 1, - 'summarycontents', 1, - 'footnotestyle', 1, - 'end ifclear', 1, - 'end ifset', 1, - 'titlepage', 1, - 'end titlepage', 1, - # unsupported commands (formatting) - 'afourpaper', 1, - 'cropmarks', 1, - 'finalout', 1, - 'headings', 1, - 'need', 1, - 'page', 1, - 'setchapternewpage', 1, - 'everyheading', 1, - 'everyfooting', 1, - 'evenheading', 1, - 'evenfooting', 1, - 'oddheading', 1, - 'oddfooting', 1, - 'smallbook', 1, - 'vskip', 1, - 'filbreak', 1, - # unsupported formats - 'cartouche', 1, - 'end cartouche', 1, - 'group', 1, - 'end group', 1, - ); - -#+++############################################################################ -# # -# Argument parsing, initialisation # -# # -#---############################################################################ - -$use_bibliography = 1; -$use_acc = 0; -$debug = 0; -$doctype = ''; -$check = 0; -$expandinfo = 0; -$use_glossary = 0; -$invisible_mark = ''; -$use_iso = 0; -@include_dirs = (); -$show_menu = 0; -$number_sections = 0; -$split_node = 0; -$split_chapter = 0; -$monolithic = 0; -$verbose = 0; -$usage = <= 0 && $ARGV[0] =~ /^-/) { - $_ = shift(@ARGV); - if (/^-acc$/) { $use_acc = 1; next; } - if (/^-d(ebug)?(\d+)?$/) { $debug = $2 || shift(@ARGV); next; } - if (/^-doctype$/) { $doctype = shift(@ARGV); next; } - if (/^-c(heck)?$/) { $check = 1; next; } - if (/^-e(xpandinfo)?$/) { $expandinfo = 1; next; } - if (/^-g(lossary)?$/) { $use_glossary = 1; next; } - if (/^-i(nvisible)?$/) { $invisible_mark = shift(@ARGV); next; } - if (/^-iso$/) { $use_iso = 1; next; } - if (/^-I(.+)?$/) { push(@include_dirs, $1 || shift(@ARGV)); next; } - if (/^-m(enu)?$/) { $show_menu = 1; next; } - if (/^-mono(lithic)?$/) { $monolithic = 1; next; } - if (/^-n(umber)?$/) { $number_sections = 1; next; } - if (/^-s(plit)?_?(n(ode)?|c(hapter)?)?$/) { - if ($2 =~ /^n/) { - $split_node = 1; - } else { - $split_chapter = 1; - } - next; - } - if (/^-v(erbose)?$/) { $verbose = 1; next; } - die $usage; -} -if ($check) { - die $usage unless @ARGV > 0; - ✓ - exit; -} - -if (($split_node || $split_chapter) && $monolithic) { - warn "Can't use -monolithic with -split, -monolithic ignored.\n"; - $monolithic = 0; -} -if ($expandinfo) { - $to_skip{'ifinfo'}++; - $to_skip{'end ifinfo'}++; -} else { - $to_skip{'iftex'}++; - $to_skip{'end iftex'}++; -} -$invisible_mark = '' if $invisible_mark eq 'xbm'; -die $usage unless @ARGV == 1; -$docu = shift(@ARGV); -if ($docu =~ /.*\//) { - chop($docu_dir = $&); - $docu_name = $'; -} else { - $docu_dir = '.'; - $docu_name = $docu; -} -unshift(@include_dirs, $docu_dir); -$docu_name =~ s/\.te?x(i|info)?$//; # basename of the document - -$docu_doc = "$docu_name.html"; # document's contents -if ($monolithic) { - $docu_toc = $docu_foot = $docu_doc; -} else { - $docu_toc = "${docu_name}_toc.html"; # document's table of contents - $docu_foot = "${docu_name}_foot.html"; # document's footnotes -} - -# -# variables -# -%value = (); # hold texinfo variables -$value{'html'} = 1; # predefine html (the output format) -$value{'texi2html'} = '1.51'; # predefine texi2html (the translator) -# _foo: internal to track @foo -foreach ('_author', '_title', '_subtitle', - '_settitle', '_setfilename') { - $value{$_} = ''; # prevent -w warnings -} -%node2sec = (); # node to section name -%node2href = (); # node to HREF -%bib2href = (); # bibliography reference to HREF -%gloss2href = (); # glossary term to HREF -@sections = (); # list of sections -%tag2pro = (); # protected sections - -# -# initial indexes -# -$bib_num = 0; -$foot_num = 0; -$gloss_num = 0; -$idx_num = 0; -$sec_num = 0; -$doc_num = 0; -$html_num = 0; - -# -# can I use ISO8879 characters? (HTML+) -# -if ($use_iso) { - $things_map{'bullet'} = "•"; - $things_map{'copyright'} = "©"; - $things_map{'dots'} = "…"; - $things_map{'equiv'} = "≡"; - $things_map{'expansion'} = "→"; - $things_map{'point'} = "∗"; - $things_map{'result'} = "⇒"; -} - -# -# read texi2html extensions (if any) -# -$extensions = 'texi2html.ext'; # extensions in working directory -if (-f $extensions) { - print "# reading extensions from $extensions\n" if $verbose; - require($extensions); -} -($progdir = $0) =~ s/[^\/]+$//; -if ($progdir && ($progdir ne './')) { - $extensions = "${progdir}texi2html.ext"; # extensions in texi2html directory - if (-f $extensions) { - print "# reading extensions from $extensions\n" if $verbose; - require($extensions); - } -} - -print "# reading from $docu\n" if $verbose; - -#+++############################################################################ -# # -# Pass 1: read source, handle command, variable, simple substitution # -# # -#---############################################################################ - -@lines = (); # whole document -@toc_lines = (); # table of contents -$toplevel = 0; # top level seen in hierarchy -$curlevel = 0; # current level in TOC -$node = ''; # current node name -$in_table = 0; # am I inside a table -$table_type = ''; # type of table ('', 'f', 'v') -@tables = (); # nested table support -$in_bibliography = 0; # am I inside a bibliography -$in_glossary = 0; # am I inside a glossary -$in_top = 0; # am I inside the top node -$in_pre = 0; # am I inside a preformatted section -$in_list = 0; # am I inside a list -$in_html = 0; # am I inside an HTML section -$first_line = 1; # is it the first line -$dont_html = 0; # don't protect HTML on this line -$split_num = 0; # split index -$deferred_ref = ''; # deferred reference for indexes -@html_stack = (); # HTML elements stack -$html_element = ''; # current HTML element -&html_reset; - -# build code for simple substitutions -# the maps used (%simple_map and %things_map) MUST be aware of this -# watch out for regexps, / and escaped characters! -$subst_code = ''; -foreach (keys(%simple_map)) { - ($re = $_) =~ s/(\W)/\\$1/g; # protect regexp chars - $subst_code .= "s/\\\@$re/$simple_map{$_}/g;\n"; -} -foreach (keys(%things_map)) { - $subst_code .= "s/\\\@$_\\{\\}/$things_map{$_}/g;\n"; -} -if ($use_acc) { - # accentuated characters - foreach (keys(%accent_map)) { - if ($_ eq "`") { - $subst_code .= "s/$;3"; - } elsif ($_ eq "'") { - $subst_code .= "s/$;4"; - } else { - $subst_code .= "s/\\\@\\$_"; - } - $subst_code .= "([aeiou])/&\${1}$accent_map{$_};/gi;\n"; - } -} -eval("sub simple_substitutions { $subst_code }"); - -&init_input; -while ($_ = &next_line) { - # - # remove \input on the first lines only - # - if ($first_line) { - next if /^\\input/; - $first_line = 0; - } - # - # parse texinfo tags - # - $tag = ''; - $end_tag = ''; - if (/^\@end\s+(\w+)\b/) { - $end_tag = $1; - } elsif (/^\@(\w+)\b/) { - $tag = $1; - } - # - # handle @ifhtml / @end ifhtml - # - if ($in_html) { - if ($end_tag eq 'ifhtml') { - $in_html = 0; - } else { - $tag2pro{$in_html} .= $_; - } - next; - } elsif ($tag eq 'ifhtml') { - $in_html = $PROTECTTAG . ++$html_num; - push(@lines, $in_html); - next; - } - # - # try to skip the line - # - if ($end_tag) { - next if $to_skip{"end $end_tag"}; - } elsif ($tag) { - next if $to_skip{$tag}; - last if $tag eq 'bye'; - } - if ($in_top) { - # parsing the top node - if ($tag eq 'node' || $tag eq 'include' || $sec2level{$tag}) { - # no more in top - $in_top = 0; - } else { - # skip it - next; - } - } - # - # try to remove inlined comments - # syntax from tex-mode.el comment-start-skip - # - s/((^|[^\@])(\@\@)*)\@c(omment)? .*/$1/; - # non-@ substitutions cf. texinfmt.el - s/``/\"/g; - s/''/\"/g; - s/([\w ])---([\w ])/$1--$2/g; - # - # analyze the tag - # - if ($tag) { - # skip lines - &skip_until($tag), next if $tag eq 'ignore'; - if ($expandinfo) { - &skip_until($tag), next if $tag eq 'iftex'; - } else { - &skip_until($tag), next if $tag eq 'ifinfo'; - } - &skip_until($tag), next if $tag eq 'tex'; - # handle special tables - if ($tag eq 'table') { - $table_type = ''; - } elsif ($tag eq 'ftable') { - $tag = 'table'; - $table_type = 'f'; - } elsif ($tag eq 'vtable') { - $tag = 'table'; - $table_type = 'v'; - } - # special cases - if ($tag eq 'top' || ($tag eq 'node' && /^\@node\s+top\s*,/i)) { - $in_top = 1; - @lines = (); # ignore all lines before top (title page garbage) - next; - } elsif ($tag eq 'node') { - $in_top = 0; - warn "$ERROR Bad node line: $_" unless $_ =~ /^\@node\s$NODESRE$/o; - $_ = &protect_html($_); # if node contains '&' for instance - s/^\@node\s+//; - ($node) = split(/,/); - &normalise_node($node); - if ($split_node) { - &next_doc; - push(@lines, $SPLITTAG) if $split_num++; - push(@sections, $node); - } - next; - } elsif ($tag eq 'include') { - if (/^\@include\s+($FILERE)\s*$/o) { - $file = $1; - unless (-e $file) { - foreach $dir (@include_dirs) { - $file = "$dir/$1"; - last if -e $file; - } - } - if (-e $file) { - &open($file); - print "# including $file\n" if $verbose; - } else { - warn "$ERROR Can't find $file, skipping"; - } - } else { - warn "$ERROR Bad include line: $_"; - } - next; - } elsif ($tag eq 'ifclear') { - if (/^\@ifclear\s+($VARRE)\s*$/o) { - next unless defined($value{$1}); - &skip_until($tag); - } else { - warn "$ERROR Bad ifclear line: $_"; - } - next; - } elsif ($tag eq 'ifset') { - if (/^\@ifset\s+($VARRE)\s*$/o) { - next if defined($value{$1}); - &skip_until($tag); - } else { - warn "$ERROR Bad ifset line: $_"; - } - next; - } elsif ($tag eq 'menu') { - unless ($show_menu) { - &skip_until($tag); - next; - } - &html_push_if($tag); - push(@lines, &html_debug("\n", __LINE__)); - } elsif ($format_map{$tag}) { - $in_pre = 1 if $format_map{$tag} eq 'PRE'; - &html_push_if($format_map{$tag}); - push(@lines, &html_debug("\n", __LINE__)); - $in_list++ if $format_map{$tag} eq 'UL' || $format_map{$tag} eq 'OL' ; - push(@lines, &debug("<$format_map{$tag}>\n", __LINE__)); - next; - } elsif ($tag eq 'table') { - if (/^\@[fv]?table\s+\@(\w+)\s*$/) { - $in_table = $1; - unshift(@tables, join($;, $table_type, $in_table)); - push(@lines, &debug("

    \n", __LINE__)); - &html_push_if('DL'); - push(@lines, &html_debug("\n", __LINE__)); - } else { - warn "$ERROR Bad table line: $_"; - } - next; - } elsif ($tag eq 'synindex' || $tag eq 'syncodeindex') { - if (/^\@$tag\s+(\w)\w\s+(\w)\w\s*$/) { - eval("*${1}index = *${2}index"); - } else { - warn "$ERROR Bad syn*index line: $_"; - } - next; - } elsif ($tag eq 'sp') { - push(@lines, &debug("

    \n", __LINE__)); - next; - } elsif ($tag eq 'setref') { - &protect_html; # if setref contains '&' for instance - if (/^\@$tag\s*{($NODERE)}\s*$/) { - $setref = $1; - $setref =~ s/\s+/ /g; # normalize - $setref =~ s/ $//; - $node2sec{$setref} = $name; - $node2href{$setref} = "$docu_doc#$docid"; - } else { - warn "$ERROR Bad setref line: $_"; - } - next; - } elsif ($tag eq 'defindex' || $tag eq 'defcodeindex') { - if (/^\@$tag\s+(\w\w)\s*$/) { - $valid_index{$1} = 1; - } else { - warn "$ERROR Bad defindex line: $_"; - } - next; - } elsif (defined($def_map{$tag})) { - if ($def_map{$tag}) { - s/^\@$tag\s+//; - $tag = $def_map{$tag}; - $_ = "\@$tag $_"; - $tag =~ s/\s.*//; - } - } elsif (defined($user_sub{$tag})) { - s/^\@$tag\s+//; - $sub = $user_sub{$tag}; - print "# user $tag = $sub, arg: $_" if $debug & $DEBUG_USER; - if (defined(&$sub)) { - chop($_); - &$sub($_); - } else { - warn "$ERROR Bad user sub for $tag: $sub\n"; - } - next; - } - if (defined($def_map{$tag})) { - s/^\@$tag\s+//; - if ($tag =~ /x$/) { - # extra definition line - $tag = $`; - $is_extra = 1; - } else { - $is_extra = 0; - } - while (/\{([^\{\}]*)\}/) { - # this is a {} construct - ($before, $contents, $after) = ($`, $1, $'); - # protect spaces - $contents =~ s/\s+/$;9/g; - # restore $_ protecting {} - $_ = "$before$;7$contents$;8$after"; - } - @args = split(/\s+/, &protect_html($_)); - foreach (@args) { - s/$;9/ /g; # unprotect spaces - s/$;7/\{/g; # ... { - s/$;8/\}/g; # ... } - } - $type = shift(@args); - $type =~ s/^\{(.*)\}$/$1/; - print "# def ($tag): {$type} ", join(', ', @args), "\n" - if $debug & $DEBUG_DEF; - $type .= ':'; # it's nicer like this - $name = shift(@args); - $name =~ s/^\{(.*)\}$/$1/; - if ($is_extra) { - $_ = &debug("

    ", __LINE__); - } else { - $_ = &debug("
    \n
    ", __LINE__); - } - if ($tag eq 'deffn' || $tag eq 'defvr' || $tag eq 'deftp') { - $_ .= "$type $name"; - $_ .= " @args" if @args; - } elsif ($tag eq 'deftypefn' || $tag eq 'deftypevr' - || $tag eq 'defcv' || $tag eq 'defop') { - $ftype = $name; - $name = shift(@args); - $name =~ s/^\{(.*)\}$/$1/; - $_ .= "$type $ftype $name"; - $_ .= " @args" if @args; - } else { - warn "$ERROR Unknown definition type: $tag\n"; - $_ .= "$type $name"; - $_ .= " @args" if @args; - } - $_ .= &debug("\n
    ", __LINE__); - $name = &unprotect_html($name); - if ($tag eq 'deffn' || $tag eq 'deftypefn') { - unshift(@input_spool, "\@findex $name\n"); - } elsif ($tag eq 'defop') { - unshift(@input_spool, "\@findex $name on $ftype\n"); - } elsif ($tag eq 'defvr' || $tag eq 'deftypevr' || $tag eq 'defcv') { - unshift(@input_spool, "\@vindex $name\n"); - } else { - unshift(@input_spool, "\@tindex $name\n"); - } - $dont_html = 1; - } - } elsif ($end_tag) { - if ($format_map{$end_tag}) { - $in_pre = 0 if $format_map{$end_tag} eq 'PRE'; - $in_list-- if $format_map{$end_tag} eq 'UL' || $format_map{$end_tag} eq 'OL' ; - &html_pop_if('LI', 'P'); - &html_pop_if(); - push(@lines, &debug("\n", __LINE__)); - push(@lines, &html_debug("\n", __LINE__)); - } elsif ($end_tag eq 'table' || - $end_tag eq 'ftable' || - $end_tag eq 'vtable') { - shift(@tables); - if (@tables) { - ($table_type, $in_table) = split($;, $tables[0]); - } else { - $in_table = 0; - } - push(@lines, "
    \n"); - &html_pop_if('DD'); - &html_pop_if(); - } elsif (defined($def_map{$end_tag})) { - push(@lines, &debug("
    \n", __LINE__)); - } elsif ($end_tag eq 'menu') { - &html_pop_if(); - push(@lines, $_); # must keep it for pass 2 - } - next; - } - # - # misc things - # - # protect texi and HTML things - &protect_texi; - $_ = &protect_html($_) unless $dont_html; - $dont_html = 0; - # substitution (unsupported things) - s/^\@center\s+//g; - s/^\@exdent\s+//g; - s/\@noindent\s+//g; - s/\@refill\s+//g; - # other substitutions - &simple_substitutions; - s/\@value{($VARRE)}/$value{$1}/eg; - s/\@footnote\{/\@footnote$docu_doc\{/g; # mark footnotes, cf. pass 4 - # - # analyze the tag again - # - if ($tag) { - if (defined($sec2level{$tag}) && $sec2level{$tag} > 0) { - if (/^\@$tag\s+(.+)$/) { - $name = $1; - $name =~ s/\s+$//; - $level = $sec2level{$tag}; - $name = &update_sec_num($tag, $level) . " $name" - if $number_sections && $tag !~ /^unnumbered/; - if ($tag =~ /heading$/) { - push(@lines, &html_debug("\n", __LINE__)); - if ($html_element ne 'body') { - # We are in a nice pickle here. We are trying to get a H? heading - # even though we are not in the body level. So, we convert it to a - # nice, bold, line by itself. - $_ = &debug("\n\n

    $name

    \n\n", __LINE__); - } else { - $_ = &debug("$name\n", __LINE__); - &html_push_if('body'); - } - print "# heading, section $name, level $level\n" - if $debug & $DEBUG_TOC; - } else { - if ($split_chapter) { - unless ($toplevel) { - # first time we see a "section" - unless ($level == 1) { - warn "$ERROR The first section found is not of level 1: $_"; - warn "$ERROR I'll split on sections of level $level...\n"; - } - $toplevel = $level; - } - if ($level == $toplevel) { - &next_doc; - push(@lines, $SPLITTAG) if $split_num++; - push(@sections, $name); - } - } - $sec_num++; - $docid = "SEC$sec_num"; - $tocid = "TOC$sec_num"; - # check biblio and glossary - $in_bibliography = ($name =~ /^([A-Z]|\d+)?(\.\d+)*\s*bibliography$/i); - $in_glossary = ($name =~ /^([A-Z]|\d+)?(\.\d+)*\s*glossary$/i); - # check node - if ($node) { - if ($node2sec{$node}) { - warn "$ERROR Duplicate node found: $node\n"; - } else { - $node2sec{$node} = $name; - $node2href{$node} = "$docu_doc#$docid"; - print "# node $node, section $name, level $level\n" - if $debug & $DEBUG_TOC; - } - $node = ''; - } else { - print "# no node, section $name, level $level\n" - if $debug & $DEBUG_TOC; - } - # update TOC - while ($level > $curlevel) { - $curlevel++; - push(@toc_lines, "
      \n"); - } - while ($level < $curlevel) { - $curlevel--; - push(@toc_lines, "
    \n"); - } - $_ = "
  • " . &anchor($tocid, "$docu_doc#$docid", $name, 1); - push(@toc_lines, &substitute_style($_)); - # update DOC - push(@lines, &html_debug("\n", __LINE__)); - &html_reset; - $_ = "".&anchor($docid, "$docu_toc#$tocid", $name)."\n"; - $_ = &debug($_, __LINE__); - push(@lines, &html_debug("\n", __LINE__)); - } - # update DOC - foreach $line (split(/\n+/, $_)) { - push(@lines, "$line\n"); - } - next; - } else { - warn "$ERROR Bad section line: $_"; - } - } else { - # track variables - $value{$1} = $2, next if /^\@set\s+($VARRE)\s+(.*)$/o; - delete $value{$1}, next if /^\@clear\s+($VARRE)\s*$/o; - # store things - $value{'_setfilename'} = $1, next if /^\@setfilename\s+(.*)$/; - $value{'_settitle'} = $1, next if /^\@settitle\s+(.*)$/; - $value{'_author'} .= "$1\n", next if /^\@author\s+(.*)$/; - $value{'_subtitle'} .= "$1\n", next if /^\@subtitle\s+(.*)$/; - $value{'_title'} .= "$1\n", next if /^\@title\s+(.*)$/; - # index - if (/^\@(..?)index\s+/) { - unless ($valid_index{$1}) { - warn "$ERROR Undefined index command: $_"; - next; - } - $id = 'IDX' . ++$idx_num; - $index = $1 . 'index'; - $what = &substitute_style($'); - $what =~ s/\s+$//; - print "# found $index for '$what' id $id\n" - if $debug & $DEBUG_INDEX; - eval(<\n", __LINE__)); - push(@lines, &anchor($id, '', $invisible_mark, !$in_pre)); - &html_push('P'); - } elsif ($html_element eq 'DL' || - $html_element eq 'UL' || - $html_element eq 'OL' ) { - $deferred_ref .= &anchor($id, '', $invisible_mark, !$in_pre) . " "; - } - next; - } - # list item - if (/^\@itemx?\s+/) { - $what = $'; - $what =~ s/\s+$//; - if ($in_bibliography && $use_bibliography) { - if ($what =~ /^$BIBRE$/o) { - $id = 'BIB' . ++$bib_num; - $bib2href{$what} = "$docu_doc#$id"; - print "# found bibliography for '$what' id $id\n" - if $debug & $DEBUG_BIB; - $what = &anchor($id, '', $what); - } - } elsif ($in_glossary && $use_glossary) { - $id = 'GLOSS' . ++$gloss_num; - $entry = $what; - $entry =~ tr/A-Z/a-z/ unless $entry =~ /^[A-Z\s]+$/; - $gloss2href{$entry} = "$docu_doc#$id"; - print "# found glossary for '$entry' id $id\n" - if $debug & $DEBUG_GLOSS; - $what = &anchor($id, '', $what); - } - &html_pop_if('P'); - if ($html_element eq 'DL' || $html_element eq 'DD') { - if ($things_map{$in_table} && !$what) { - # special case to allow @table @bullet for instance - push(@lines, &debug("
    $things_map{$in_table}\n", __LINE__)); - } else { - push(@lines, &debug("
    \@$in_table\{$what\}\n", __LINE__)); - } - push(@lines, "
    "); - &html_push('DD') unless $html_element eq 'DD'; - if ($table_type) { # add also an index - unshift(@input_spool, "\@${table_type}index $what\n"); - } - } else { - push(@lines, &debug("
  • $what\n", __LINE__)); - &html_push('LI') unless $html_element eq 'LI'; - } - push(@lines, &html_debug("\n", __LINE__)); - if ($deferred_ref) { - push(@lines, &debug("$deferred_ref\n", __LINE__)); - $deferred_ref = ''; - } - next; - } - } - } - # paragraph separator - if ($_ eq "\n") { - next if $#lines >= 0 && $lines[$#lines] eq "\n"; - if ($html_element eq 'P') { - push(@lines, "\n"); - $_ = &debug("

    \n", __LINE__); - &html_pop; - } - } elsif ($html_element eq 'body' || $html_element eq 'BLOCKQUOTE') { - push(@lines, "

    \n"); - &html_push('P'); - $_ = &debug($_, __LINE__); - } - # otherwise - push(@lines, $_); -} - -# finish TOC -$level = 0; -while ($level < $curlevel) { - $curlevel--; - push(@toc_lines, "

\n"); -} - -print "# end of pass 1\n" if $verbose; - -#+++############################################################################ -# # -# Pass 2/3: handle style, menu, index, cross-reference # -# # -#---############################################################################ - -@lines2 = (); # whole document (2nd pass) -@lines3 = (); # whole document (3rd pass) -$in_menu = 0; # am I inside a menu - -while (@lines) { - $_ = shift(@lines); - # - # special case (protected sections) - # - if (/^$PROTECTTAG/o) { - push(@lines2, $_); - next; - } - # - # menu - # - $in_menu = 1, push(@lines2, &debug("
    \n", __LINE__)), next if /^\@menu\b/; - $in_menu = 0, push(@lines2, &debug("
\n", __LINE__)), next if /^\@end\s+menu\b/; - if ($in_menu) { - if (/^\*\s+($NODERE)::/o) { - $descr = $'; - chop($descr); - &menu_entry($1, $1, $descr); - } elsif (/^\*\s+(.+):\s+([^\t,\.\n]+)[\t,\.\n]/) { - $descr = $'; - chop($descr); - &menu_entry($1, $2, $descr); - } elsif (/^\*/) { - warn "$ERROR Bad menu line: $_"; - } else { # description continued? - push(@lines2, $_); - } - next; - } - # - # printindex - # - if (/^\@printindex\s+(\w\w)\b/) { - local($index, *ary, @keys, $key, $letter, $last_letter, @refs); - if ($predefined_index{$1}) { - $index = $predefined_index{$1} . 'index'; - } else { - $index = $1 . 'index'; - } - eval("*ary = *$index"); - @keys = keys(%ary); - foreach $key (@keys) { - $_ = $key; - 1 while s/<(\w+)>\`(.*)\'<\/\1>/$2/; # remove HTML tags with quotes - 1 while s/<(\w+)>(.*)<\/\1>/$2/; # remove HTML tags - $_ = &unprotect_html($_); - &unprotect_texi; - tr/A-Z/a-z/; # lowercase - $key2alpha{$key} = $_; - print "# index $key sorted as $_\n" - if $key ne $_ && $debug & $DEBUG_INDEX; - } - $last_letter = undef; - foreach $key (sort byalpha @keys) { - $letter = substr($key2alpha{$key}, 0, 1); - $letter = substr($key2alpha{$key}, 0, 2) if $letter eq $;; - if (!defined($last_letter) || $letter ne $last_letter) { - push(@lines2, "\n") if defined($last_letter); - push(@lines2, "

" . &protect_html($letter) . "

\n"); - push(@lines2, "\n"); - $last_letter = $letter; - } - @refs = (); - foreach (split(/$;/, $ary{$key})) { - push(@refs, &anchor('', $_, $key, 0)); - } - push(@lines2, "
  • " . join(", ", @refs) . "\n"); - } - push(@lines2, "
  • \n") if defined($last_letter); - next; - } - # - # simple style substitutions - # - $_ = &substitute_style($_); - # - # xref - # - while (/\@(x|px|info|)ref{($XREFRE)(}?)/o) { - # note: Texinfo may accept other characters - ($type, $nodes, $full) = ($1, $2, $3); - ($before, $after) = ($`, $'); - if (! $full && $after) { - warn "$ERROR Bad xref (no ending } on line): $_"; - $_ = "$before$;0${type}ref\{$nodes$after"; - next; # while xref - } - if ($type eq 'x') { - $type = 'See '; - } elsif ($type eq 'px') { - $type = 'see '; - } elsif ($type eq 'info') { - $type = 'See Info'; - } else { - $type = ''; - } - unless ($full) { - $next = shift(@lines); - $next = &substitute_style($next); - chop($nodes); # remove final newline - if ($next =~ /\}/) { # split on 2 lines - $nodes .= " $`"; - $after = $'; - } else { - $nodes .= " $next"; - $next = shift(@lines); - $next = &substitute_style($next); - chop($nodes); - if ($next =~ /\}/) { # split on 3 lines - $nodes .= " $`"; - $after = $'; - } else { - warn "$ERROR Bad xref (no ending }): $_"; - $_ = "$before$;0xref\{$nodes$after"; - unshift(@lines, $next); - next; # while xref - } - } - } - $nodes =~ s/\s+/ /g; # remove useless spaces - @args = split(/\s*,\s*/, $nodes); - $node = $args[0]; # the node is always the first arg - &normalise_node($node); - $sec = $node2sec{$node}; - if (@args == 5) { # reference to another manual - $sec = $args[2] || $node; - $man = $args[4] || $args[3]; - $_ = "${before}${type}section `$sec' in \@cite{$man}$after"; - } elsif ($type =~ /Info/) { # inforef - warn "$ERROR Wrong number of arguments: $_" unless @args == 3; - ($nn, $_, $in) = @args; - $_ = "${before}${type} file `$in', node `$nn'$after"; - } elsif ($sec) { - $href = $node2href{$node}; - $_ = "${before}${type}section " . &anchor('', $href, $sec) . $after; - } else { - warn "$ERROR Undefined node ($node): $_"; - $_ = "$before$;0xref{$nodes}$after"; - } - } - # - # try to guess bibliography references or glossary terms - # - unless (/^/) { - $done .= $pre . &anchor('', $href, $what); - } else { - $done .= "$pre$what"; - } - $_ = $post; - } - $_ = $done . $_; - } - if ($use_glossary) { - $done = ''; - while (/\b\w+\b/) { - ($pre, $what, $post) = ($`, $&, $'); - $entry = $what; - $entry =~ tr/A-Z/a-z/ unless $entry =~ /^[A-Z\s]+$/; - $href = $gloss2href{$entry}; - if (defined($href) && $post !~ /^[^<]*<\/A>/) { - $done .= $pre . &anchor('', $href, $what); - } else { - $done .= "$pre$what"; - } - $_ = $post; - } - $_ = $done . $_; - } - } - # otherwise - push(@lines2, $_); -} -print "# end of pass 2\n" if $verbose; - -# -# split style substitutions -# -while (@lines2) { - $_ = shift(@lines2); - # - # special case (protected sections) - # - if (/^$PROTECTTAG/o) { - push(@lines3, $_); - next; - } - # - # split style substitutions - # - $old = ''; - while ($old ne $_) { - $old = $_; - if (/\@(\w+)\{/) { - ($before, $style, $after) = ($`, $1, $'); - if (defined($style_map{$style})) { - $_ = $after; - $text = ''; - $after = ''; - $failed = 1; - while (@lines2) { - if (/\}/) { - $text .= $`; - $after = $'; - $failed = 0; - last; - } else { - $text .= $_; - $_ = shift(@lines2); - } - } - if ($failed) { - die "* Bad syntax (\@$style) after: $before\n"; - } else { - $text = &apply_style($style, $text); - $_ = "$before$text$after"; - } - } - } - } - # otherwise - push(@lines3, $_); -} -print "# end of pass 3\n" if $verbose; - -#+++############################################################################ -# # -# Pass 4: foot notes, final cleanup # -# # -#---############################################################################ - -@foot_lines = (); # footnotes -@doc_lines = (); # final document -$end_of_para = 0; # true if last line is

    - -while (@lines3) { - $_ = shift(@lines3); - # - # special case (protected sections) - # - if (/^$PROTECTTAG/o) { - push(@doc_lines, $_); - $end_of_para = 0; - next; - } - # - # footnotes - # - while (/\@footnote([^\{\s]+)\{/) { - ($before, $d, $after) = ($`, $1, $'); - $_ = $after; - $text = ''; - $after = ''; - $failed = 1; - while (@lines3) { - if (/\}/) { - $text .= $`; - $after = $'; - $failed = 0; - last; - } else { - $text .= $_; - $_ = shift(@lines3); - } - } - if ($failed) { - die "* Bad syntax (\@footnote) after: $before\n"; - } else { - $foot_num++; - $docid = "DOCF$foot_num"; - $footid = "FOOT$foot_num"; - $foot = "($foot_num)"; - push(@foot_lines, "

    " . &anchor($footid, "$d#$docid", $foot) . "

    \n"); - $text = "

    $text" unless $text =~ /^\s*

    /; - push(@foot_lines, "$text\n"); - $_ = $before . &anchor($docid, "$docu_foot#$footid", $foot) . $after; - } - } - # - # remove unnecessary

    - # - if (/^\s*

    \s*$/) { - next if $end_of_para++; - } else { - $end_of_para = 0; - } - # otherwise - push(@doc_lines, $_); -} -print "# end of pass 4\n" if $verbose; - -#+++############################################################################ -# # -# Pass 5: print things # -# # -#---############################################################################ - -$header = < -EOT - -$full_title = $value{'_title'} || $value{'_settitle'} || "Untitled Document"; -$title = $value{'_settitle'} || $full_title; -$_ = &substitute_style($full_title); -&unprotect_texi; -s/\n$//; # rmv last \n (if any) -$full_title = "

    " . join("

    \n

    ", split(/\n/, $_)) . "

    \n"; - -# -# print ToC -# -if (!$monolithic && @toc_lines) { - if (open(FILE, "> $docu_toc")) { - print "# creating $docu_toc...\n" if $verbose; - &print_toplevel_header("$title - Table of Contents"); - &print_ruler; - &print(*toc_lines, FILE); - &print_toplevel_footer; - close(FILE); - } else { - warn "$ERROR Can't write to $docu_toc: $!\n"; - } -} - -# -# print footnotes -# -if (!$monolithic && @foot_lines) { - if (open(FILE, "> $docu_foot")) { - print "# creating $docu_foot...\n" if $verbose; - &print_toplevel_header("$title - Footnotes"); - &print_ruler; - &print(*foot_lines, FILE); - &print_toplevel_footer; - close(FILE); - } else { - warn "$ERROR Can't write to $docu_foot: $!\n"; - } -} - -# -# print document -# -if ($split_chapter || $split_node) { # split - $doc_num = 0; - $last_num = scalar(@sections); - $first_doc = &doc_name(1); - $last_doc = &doc_name($last_num); - while (@sections) { - $section = shift(@sections); - &next_doc; - if (open(FILE, "> $docu_doc")) { - print "# creating $docu_doc...\n" if $verbose; - &print_header("$title - $section"); - $prev_doc = ($doc_num == 1 ? undef : &doc_name($doc_num - 1)); - $next_doc = ($doc_num == $last_num ? undef : &doc_name($doc_num + 1)); - $navigation = "Go to the "; - $navigation .= ($prev_doc ? &anchor('', $first_doc, "first") : "first"); - $navigation .= ", "; - $navigation .= ($prev_doc ? &anchor('', $prev_doc, "previous") : "previous"); - $navigation .= ", "; - $navigation .= ($next_doc ? &anchor('', $next_doc, "next") : "next"); - $navigation .= ", "; - $navigation .= ($next_doc ? &anchor('', $last_doc, "last") : "last"); - $navigation .= " section, " . &anchor('', $docu_toc, "table of contents") . ".\n"; - print FILE $navigation; - &print_ruler; - # find corresponding lines - @tmp_lines = (); - while (@doc_lines) { - $_ = shift(@doc_lines); - last if ($_ eq $SPLITTAG); - push(@tmp_lines, $_); - } - &print(*tmp_lines, FILE); - &print_ruler; - print FILE $navigation; - &print_footer; - close(FILE); - } else { - warn "$ERROR Can't write to $docu_doc: $!\n"; - } - } -} else { # not split - if (open(FILE, "> $docu_doc")) { - print "# creating $docu_doc...\n" if $verbose; - if ($monolithic || !@toc_lines) { - &print_toplevel_header($title); - } else { - &print_header($title); - print FILE $full_title; - } - if ($monolithic && @toc_lines) { - &print_ruler; - print FILE "

    Table of Contents

    \n"; - &print(*toc_lines, FILE); - } - &print_ruler; - &print(*doc_lines, FILE); - if ($monolithic && @foot_lines) { - &print_ruler; - print FILE "

    Footnotes

    \n"; - &print(*foot_lines, FILE); - } - if ($monolithic || !@toc_lines) { - &print_toplevel_footer; - } else { - &print_footer; - } - close(FILE); - } else { - warn "$ERROR Can't write to $docu_doc: $!\n"; - } -} - -print "# that's all folks\n" if $verbose; - -#+++############################################################################ -# # -# Low level functions # -# # -#---############################################################################ - -sub update_sec_num { - local($name, $level) = @_; - - $level--; # here we start at 0 - if ($name =~ /^appendix/) { - # appendix style - if (defined(@appendix_sec_num)) { - &incr_sec_num($level, @appendix_sec_num); - } else { - @appendix_sec_num = ('A', 0, 0, 0); - } - return(join('.', @appendix_sec_num[0..$level])); - } else { - # normal style - if (defined(@normal_sec_num)) { - &incr_sec_num($level, @normal_sec_num); - } else { - @normal_sec_num = (1, 0, 0, 0); - } - return(join('.', @normal_sec_num[0..$level])); - } -} - -sub incr_sec_num { - local($level, $l); - $level = shift(@_); - $_[$level]++; - foreach $l ($level+1 .. 3) { - $_[$l] = 0; - } -} - -sub check { - local($_, %seen, %context, $before, $match, $after); - - while (<>) { - if (/\@(\*|\.|\:|\@|\{|\})/) { - $seen{$&}++; - $context{$&} .= "> $_" if $verbose; - $_ = "$`XX$'"; - redo; - } - if (/\@(\w+)/) { - ($before, $match, $after) = ($`, $&, $'); - if ($before =~ /\b[\w-]+$/ && $after =~ /^[\w-.]*\b/) { # e-mail address - $seen{'e-mail address'}++; - $context{'e-mail address'} .= "> $_" if $verbose; - } else { - $seen{$match}++; - $context{$match} .= "> $_" if $verbose; - } - $match =~ s/^\@/X/; - $_ = "$before$match$after"; - redo; - } - } - - foreach (sort(keys(%seen))) { - if ($verbose) { - print "$_\n"; - print $context{$_}; - } else { - print "$_ ($seen{$_})\n"; - } - } -} - -sub open { - local($name) = @_; - - ++$fh_name; - if (open($fh_name, $name)) { - unshift(@fhs, $fh_name); - } else { - warn "$ERROR Can't read file $name: $!\n"; - } -} - -sub init_input { - @fhs = (); # hold the file handles to read - @input_spool = (); # spooled lines to read - $fh_name = 'FH000'; - &open($docu); -} - -sub next_line { - local($fh, $line); - - if (@input_spool) { - $line = shift(@input_spool); - return($line); - } - while (@fhs) { - $fh = $fhs[0]; - $line = <$fh>; - return($line) if $line; - close($fh); - shift(@fhs); - } - return(undef); -} - -# used in pass 1, use &next_line -sub skip_until { - local($tag) = @_; - local($_); - - while ($_ = &next_line) { - return if /^\@end\s+$tag\s*$/; - } - die "* Failed to find '$tag' after: " . $lines[$#lines]; -} - -# -# HTML stacking to have a better HTML output -# - -sub html_reset { - @html_stack = ('html'); - $html_element = 'body'; -} - -sub html_push { - local($what) = @_; - push(@html_stack, $html_element); - $html_element = $what; -} - -sub html_push_if { - local($what) = @_; - push(@html_stack, $html_element) - if ($html_element && $html_element ne 'P'); - $html_element = $what; -} - -sub html_pop { - $html_element = pop(@html_stack); -} - -sub html_pop_if { - local($elt); - - if (@_) { - foreach $elt (@_) { - if ($elt eq $html_element) { - $html_element = pop(@html_stack) if @html_stack; - last; - } - } - } else { - $html_element = pop(@html_stack) if @html_stack; - } -} - -sub html_debug { - local($what, $line) = @_; - return("$what") - if $debug & $DEBUG_HTML; - return($what); -} - -# to debug the output... -sub debug { - local($what, $line) = @_; - return("$what") - if $debug & $DEBUG_HTML; - return($what); -} - -sub normalise_node { - $_[0] =~ s/\s+/ /g; - $_[0] =~ s/ $//; - $_[0] =~ s/^ //; -} - -sub menu_entry { - local($entry, $node, $descr) = @_; - local($href); - - &normalise_node($node); - $href = $node2href{$node}; - if ($href) { - $descr =~ s/^\s+//; - $descr = ": $descr" if $descr; - push(@lines2, "
  • " . &anchor('', $href, $entry) . "$descr\n"); - } else { - warn "$ERROR Undefined node ($node): $_"; - } -} - -sub do_ctrl { "^$_[0]" } - -sub do_sc { "\U$_[0]\E" } - -sub apply_style { - local($texi_style, $text) = @_; - local($style); - - $style = $style_map{$texi_style}; - if (defined($style)) { # known style - if ($style =~ /^\"/) { # add quotes - $style = $'; - $text = "\`$text\'"; - } - if ($style =~ /^\&/) { # custom - $style = $'; - $text = &$style($text); - } elsif ($style) { # good style - $text = "<$style>$text"; - } else { # no style - } - } else { # unknown style - $text = undef; - } - return($text); -} - -# remove Texinfo styles -sub remove_style { - local($_) = @_; - s/\@\w+{([^\{\}]+)}/$1/g; - return($_); -} - -sub substitute_style { - local($_) = @_; - local($changed, $done, $style, $text); - - $changed = 1; - while ($changed) { - $changed = 0; - $done = ''; - while (/\@(\w+){([^\{\}]+)}/) { - $text = &apply_style($1, $2); - if ($text) { - $_ = "$`$text$'"; - $changed = 1; - } else { - $done .= "$`\@$1"; - $_ = "{$2}$'"; - } - } - $_ = $done . $_; - } - return($_); -} - -sub anchor { - local($name, $href, $text, $newline) = @_; - local($result); - - $result = "

    \n"; -} - -sub print_header { - local($_); - - # clean the title - $_ = &remove_style($_[0]); - &unprotect_texi; - # print the header - if ($doctype eq 'html2') { - print FILE $html2_doctype; - } elsif ($doctype) { - print FILE $doctype; - } - print FILE < - -$header -$_ - - -EOT -} - -sub print_toplevel_header { - local($_); - - &print_header; # pass given arg... - print FILE $full_title; - if ($value{'_subtitle'}) { - $value{'_subtitle'} =~ s/\n+$//; - foreach (split(/\n/, $value{'_subtitle'})) { - $_ = &substitute_style($_); - &unprotect_texi; - print FILE "

    $_

    \n"; - } - } - if ($value{'_author'}) { - $value{'_author'} =~ s/\n+$//; - foreach (split(/\n/, $value{'_author'})) { - $_ = &substitute_style($_); - &unprotect_texi; - s/[\w.-]+\@[\w.-]+/
    $&<\/A>/g; - print FILE "
    $_
    \n"; - } - } - print FILE "

    \n"; -} - -sub print_footer { - print FILE < - -EOT -} - -sub print_toplevel_footer { - &print_ruler; - print FILE <texi2html -translator version 1.51.

    -EOT - &print_footer; -} - -sub protect_texi { - # protect @ { } ` ' - s/\@\@/$;0/go; - s/\@\{/$;1/go; - s/\@\}/$;2/go; - s/\@\`/$;3/go; - s/\@\'/$;4/go; -} - -sub protect_html { - local($what) = @_; - # protect & < > - $what =~ s/\&/\&\#38;/g; - $what =~ s/\/\&\#62;/g; - # but recognize some HTML things - $what =~ s/\&\#60;\/A\&\#62;/<\/A>/g; # - $what =~ s/\&\#60;A ([^\&]+)\&\#62;//g; # - $what =~ s/\&\#60;IMG ([^\&]+)\&\#62;//g; # - return($what); -} - -sub unprotect_texi { - s/$;0/\@/go; - s/$;1/\{/go; - s/$;2/\}/go; - s/$;3/\`/go; - s/$;4/\'/go; -} - -sub unprotect_html { - local($what) = @_; - $what =~ s/\&\#38;/\&/g; - $what =~ s/\&\#60;/\/g; - return($what); -} - -sub byalpha { - $key2alpha{$a} cmp $key2alpha{$b}; -} - -############################################################################## - - # These next few lines are legal in both Perl and nroff. - -.00 ; # finish .ig - -'di \" finish diversion--previous line must be blank -.nr nl 0-1 \" fake up transition to first page again -.nr % 0 \" start at page 1 -'; __END__ ############# From here on it's a standard manual page ############ -.TH TEXI2HTML 1 "09/10/96" -.AT 3 -.SH NAME -texi2html \- a Texinfo to HTML converter -.SH SYNOPSIS -.B texi2html [options] file -.PP -.B texi2html -check [-verbose] files -.SH DESCRIPTION -.I Texi2html -converts the given Texinfo file to a set of HTML files. It tries to handle -most of the Texinfo commands. It creates hypertext links for cross-references, -footnotes... -.PP -It also tries to add links from a reference to its corresponding entry in the -bibliography (if any). It may also handle a glossary (see the -.B \-glossary -option). -.PP -.I Texi2html -creates several files depending on the contents of the Texinfo file and on -the chosen options (see FILES). -.PP -The HTML files created by -.I texi2html -are closer to TeX than to Info, that's why -.I texi2html -converts @iftex sections and not @ifinfo ones by default. You can reverse -this with the \-expandinfo option. -.SH OPTIONS -.TP 12 -.B \-check -Check the given file and give the list of all things that may be Texinfo commands. -This may be used to check the output of -.I texi2html -to find the Texinfo commands that have been left in the HTML file. -.TP -.B \-expandinfo -Expand @ifinfo sections, not @iftex ones. -.TP -.B \-glossary -Use the section named 'Glossary' to build a list of terms and put links in the HTML -document from each term toward its definition. -.TP -.B \-invisible \fIname\fP -Use \fIname\fP to create invisible destination anchors for index links. This is a workaround -for a known bug of many WWW browsers, including xmosaic. -.TP -.B \-I \fIdir\fP -Look also in \fIdir\fP to find included files. -.TP -.B \-menu -Show the Texinfo menus; by default they are ignored. -.TP -.B \-monolithic -Output only one file, including the table of contents and footnotes. -.TP -.B \-number -Number the sections. -.TP -.B \-split_chapter -Split the output into several HTML files (one per main section: -chapter, appendix...). -.TP -.B \-split_node -Split the output into several HTML files (one per node). -.TP -.B \-usage -Print usage instructions, listing the current available command-line options. -.TP -.B \-verbose -Give a verbose output. Can be used with the -.B \-check -option. -.PP -.SH FILES -By default -.I texi2html -creates the following files (foo being the name of the Texinfo file): -.TP 16 -.B foo_toc.html -The table of contents. -.TP -.B foo.html -The document's contents. -.TP -.B foo_foot.html -The footnotes (if any). -.PP -When used with the -.B \-split -option, it creates several files (one per chapter or node), named -.B foo_n.html -(n being the indice of the chapter or node), instead of the single -.B foo.html -file. -.PP -When used with the -.B \-monolithic -option, it creates only one file: -.B foo.html -.SH VARIABLES -.I texi2html -predefines the following variables: \fBhtml\fP, \fBtexi2html\fP. -.SH ADDITIONAL COMMANDS -.I texi2html -implements the following non-Texinfo commands: -.TP 16 -.B @ifhtml -This indicates the start of an HTML section, this section will passed through -without any modofication. -.TP -.B @end ifhtml -This indcates the end of an HTML section. -.SH VERSION -This is \fItexi2html\fP version 1.51, 09/10/96. -.PP -The latest version of \fItexi2html\fP can be found in WWW, cf. URL -http://wwwcn.cern.ch/dci/texi2html/ -.SH AUTHOR -The main author is Lionel Cons, CERN CN/DCI/UWS, Lionel.Cons@cern.ch. -Many other people around the net contributed to this program. -.SH COPYRIGHT -This program is the intellectual property of the European -Laboratory for Particle Physics (known as CERN). No guarantee whatsoever is -provided by CERN. No liability whatsoever is accepted for any loss or damage -of any kind resulting from any defect or inaccuracy in this information or -code. -.PP -CERN, 1211 Geneva 23, Switzerland -.SH "SEE ALSO" -GNU Texinfo Documentation Format, -HyperText Markup Language (HTML), -World Wide Web (WWW). -.SH BUGS -This program does not understand all Texinfo commands (yet). -.PP -TeX specific commands (normally enclosed in @iftex) will be -passed unmodified. -.ex diff --git a/barcode-0.98/ean.c b/barcode-0.98/ean.c deleted file mode 100644 index 0801a0ef..00000000 --- a/barcode-0.98/ean.c +++ /dev/null @@ -1,774 +0,0 @@ -/* - * ean.c -- encoding for ean, upc and isbn - * - * Copyright (c) 1999 Alessandro Rubini - * Copyright (c) 1999 Prosa Srl. - * Copyright (c) 2001 Boszormenyi Zoltan - * - * 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 2 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, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. - */ - -#include -#include -#include -#include -#include - -#include "barcode.h" - -/* - * IMPORTANT NOTE: if you are reading this file to learn how to add a - * new encoding type, this is the wrong place as there are too many - * special cases. Please refer to code39.c instead. If you want to - * learn how UPC, EAN, ISBN work, on the other hand, I did my best to - * commend things and hope you enjoy it. - */ - -/* - * These following static arrays are used to describe the barcode. - * - * The various forms of UPC and EAN are documented as using three - * different alphabets to encode the ten digits. However, each digit - * has exactly one encoding; only, it is sometimes mirrored. Moreover, - * if you represent the width of each symbol (bar/space) instead of - * the sequence of 1's and 0's, you find that even-parity and odd-parity - * encoding are exactly the same. So, here are the digits: */ -static char *digits[] = { - "3211","2221","2122","1411","1132", - "1231","1114","1312","1213","3112"}; - -/* - * What EAN encoding does is adding a leading digit (the 13th digit). - * Such an extra digit is encoded by mirroring three of the six digits that - * appear in the left half of the UPC code. Here how mirroring works: - */ -static char *ean_mirrortab[] = { - "------","--1-11","--11-1","--111-","-1--11", - "-11--1","-111--","-1-1-1","-1-11-","-11-1-" -}; - -/* - * UPC-E (the 6-digit one), instead, encodes the check character as - * a mirroring of the symbols. This is similar, but the encoding for "0" is - * different (EAN uses no mirroring for "0" to be compatible with UPC). - * The same rule is used for UPC-5 (the supplemental digits for ISBN) - */ -static char *upc_mirrortab[] = { - "---111","--1-11","--11-1","--111-","-1--11", - "-11--1","-111--","-1-1-1","-1-11-","-11-1-" -}; - -/* - * UPC-E mirroring for encoding "1" - */ -static char *upc_mirrortab1[] = { - "111---","11-1--","11--1-","11---1","1-11--", - "1--11-","1---11","1-1-1-","1-1--1","1--1-1" -}; - -/* UPC-2 has just two digits to mirror */ -static char *upc_mirrortab2[] = { - "11","1-","-1","--" -}; - -/* - * initial, middle, final guard bars (first symbol is a a space). - * EAN-13 overwrites the first "0" with "9" to make space for the extra digit. - */ -static char *guard[] = {"0a1a","1a1a1","a1a"}; - -/* initial, final guard bars for UPC-E*/ -static char *guardE[] = {"0a1a","1a1a1a"}; - -/* initial and inter-char guard bars for supplementals (first is space) */ -static char *guardS[] = {"9112","11"}; - -/* - * These functions are shortcuts I use in the encoding engine - */ -static int ean_make_checksum(char *text, int mode) -{ - int esum = 0, osum = 0, i; - int even=1; /* last char is even */ - - if (strchr(text, ' ')) - i = strchr(text, ' ') - text; /* end of first part */ - else - i = strlen(text); /* end of all */ - - while (i-- > 0) { - if (even) esum += text[i]-'0'; - else osum += text[i]-'0'; - even = !even; - } - if (!mode) { /* standard upc/ean checksum */ - i = (3*esum + osum) % 10; - return (10-i) % 10; /* complement to 10 */ - } else { /* add-5 checksum */ - i = (3*esum + 9*osum); - return i%10; - } -} - -/* - * Check that the text can be encoded. Returns 0 or -1. - * Accept: - * 13 or 12 digits: EAN-13 w/ or w/o checksum - * or - * 8 or 7 digits: EAN-8 w/ or w/o checksum. - * For both EAN-13 and EAN-8, accept an addon of 2 or 5 digits, - * separated by ' ' - */ -int Barcode_ean_verify(unsigned char *text) -{ - int i, len0, len, addon; - unsigned char tmp[24], *spc; - - len = strlen(text); - spc = strchr(text, ' '); - if (spc) { - len0 = spc - text; - addon = len - len0 - 1; - if (addon != 2 && addon != 5) - return -1; - for (i=len0+1; i= '5' && text[10] <= '9') { - memcpy(&result[1], text+1, 5); - result[6] = text[10]; - } else { - return NULL; - } - result[7] = chksum + '0'; - - return result; -} - -/* - * UPC-A is the same as EAN, but accept - * 12 or 11 digits (UPC-A w/ or w/o checksum) - * or accept UPC-E as: - * 6 digits (w/o number system and checksum): number system '0' assumed, - * 7 digits (either w/o number system or checksum), - * 8 digits (w/ number system and checksum) - * plus the 2 or 5-digit add-on - */ -int Barcode_upc_verify(unsigned char *text) -{ - int i, len0, len, addon; - unsigned char tmp[24], *spc; - - len = strlen(text); - spc = strchr(text, ' '); - if (spc) { - len0 = spc - text; - addon = len - len0 - 1; - if (addon != 2 && addon != 5) - return -1; - for (i=len0+1; iascii) { - bc->error = EINVAL; - return -1; - } - - /* Find out whether the barcode has addon and - * the length of the barcode w/o the addon. - */ - len = strlen(bc->ascii); - spc = strchr(bc->ascii, ' '); - if (spc) { - len0 = spc - bc->ascii; - addon = strlen(spc + 1); - if (addon != 2 && addon != 5) { - bc->error = EINVAL; /* impossible, actually */ - return -1; - } - } else { - len0 = len; - addon = 0; - } - - if (!bc->encoding) { - /* ISBN already wrote what it is; if unknown, find it out */ - - /* - * Do not decide only by barcode length, it may be ambiguous. - * Anyway, either the user specified the barcode type or - * we already found a fitting one. - */ - switch(bc->flags & BARCODE_ENCODING_MASK) { - case BARCODE_EAN: - switch (len0) { - case 7: case 8: - bc->encoding = strdup("EAN-8"); - encoding = EAN8; - break; - case 12: case 13: - bc->encoding = strdup("EAN-13"); - encoding = EAN13; - break; - default: - bc->error = -EINVAL; - return -1; - } - break; - - case BARCODE_UPC: - switch (len0) { - case 6: case 7: case 8: - bc->encoding = strdup("UPC-E"); - encoding = UPCE; - break; - case 11: case 12: - bc->encoding = strdup("UPC-A"); - encoding = UPCA; - break; - default: - bc->error = -EINVAL; - return -1; - } - break; - default: - /* else, it's wrong (impossible, as the text is checked) */ - bc->error = -EINVAL; - return -1; - } - } - - /* better safe than sorry */ - if (bc->partial) free(bc->partial); bc->partial = NULL; - if (bc->textinfo) free(bc->textinfo); bc->textinfo = NULL; - - if (encoding == UPCA) { /* add the leading 0 (not printed) */ - text[0] = '0'; - strcpy(text+1, bc->ascii); - } else if (encoding == UPCE) { - strcpy(text, upc_a_to_e(upc_e_to_a(bc->ascii))); - } else { - strcpy(text, bc->ascii); - } - - /* - * build the checksum and the bars: any encoding is slightly different - */ - if (encoding == UPCA || encoding == EAN13 || encoding == ISBN) { - if (!(encoding == UPCA && len0 == 12) && - !(encoding == EAN13 && len0 == 13)) { - checksum = ean_make_checksum(text, 0); - text[12] = '0' + checksum; /* add it to the text */ - text[13] = '\0'; - } - - strcpy(partial, guard[0]); - if (encoding == EAN13 || encoding == ISBN) { /* The first digit */ - sprintf(tptr,"0:12:%c ",text[0]); - tptr += strlen(tptr); - partial[0] = '9'; /* extra space for the digit */ - } else if (encoding == UPCA) - partial[0] = '9'; /* UPC has one digit before the symbol, too */ - xpos = width_of_partial(partial); - mirror = ean_mirrortab[text[0]-'0']; - - /* left part */ - for (i=1;i<7;i++) { - ptr1 = partial + strlen(partial); /* target */ - ptr2 = digits[text[i]-'0']; /* source */ - strcpy(ptr1, ptr2); - if (mirror[i-1] == '1') { - /* mirror this */ - ptr1[0] = ptr2[3]; - ptr1[1] = ptr2[2]; - ptr1[2] = ptr2[1]; - ptr1[3] = ptr2[0]; - } - /* - * Write the ascii digit. UPC has a special case - * for the first digit, which is out of the bars - */ - if (encoding == UPCA && i==1) { - sprintf(tptr, "0:10:%c ", text[i]); - tptr += strlen(tptr); - ptr1[1] += 'a'-'1'; /* bars are long */ - ptr1[3] += 'a'-'1'; - } else { - sprintf(tptr, "%i:12:%c ", xpos, text[i]); - tptr += strlen(tptr); - } - /* count the width of the symbol */ - xpos += 7; /* width_of_partial(ptr2) */ - } - - strcat(partial, guard[1]); /* middle */ - xpos += width_of_partial(guard[1]); - - /* right part */ - for (i=7;i<13;i++) { - ptr1 = partial + strlen(partial); /* target */ - ptr2 = digits[text[i]-'0']; /* source */ - strcpy(ptr1, ptr2); - /* - * Ascii digit. Once again, UPC has a special - * case for the last digit - */ - if (encoding == UPCA && i==12) { - sprintf(tptr, "%i:10:%c ", xpos+13, text[i]); - tptr += strlen(tptr); - ptr1[0] += 'a'-'1'; /* bars are long */ - ptr1[2] += 'a'-'1'; - } else { - sprintf(tptr, "%i:12:%c ", xpos, text[i]); - tptr += strlen(tptr); - } - xpos += 7; /* width_of_partial(ptr2) */ - } - tptr[-1] = '\0'; /* overwrite last space */ - strcat(partial, guard[2]); /* end */ - xpos += width_of_partial(guard[2]); - - } else if (encoding == UPCE) { - checksum = text[7] - '0'; - - strcpy(partial, guardE[0]); - partial[0] = '9'; /* UPC-A has one digit before the symbol, too */ - xpos = width_of_partial(partial); - - /* UPC-E has the number system written before the bars. */ - sprintf(tptr, "0:10:%c ", text[0]); - tptr += strlen(tptr); - - if (text[0] == '0') - mirror = upc_mirrortab[checksum]; - else - mirror = upc_mirrortab1[checksum]; - - for (i=0;i<6;i++) { - ptr1 = partial + strlen(partial); /* target */ - ptr2 = digits[text[i+1]-'0']; /* source */ - strcpy(ptr1, ptr2); - if (mirror[i] != '1') { /* negated wrt EAN13 */ - /* mirror this */ - ptr1[0] = ptr2[3]; - ptr1[1] = ptr2[2]; - ptr1[2] = ptr2[1]; - ptr1[3] = ptr2[0]; - } - sprintf(tptr, "%i:12:%c ", xpos, text[i+1]); - tptr += strlen(tptr); - xpos += 7; /* width_of_partial(ptr2) */ - } - - sprintf(tptr, "%i:10:%c ", xpos+10, text[7]); - tptr += strlen(tptr); - ptr1[0] += 'a'-'1'; /* bars are long */ - ptr1[2] += 'a'-'1'; - - tptr[-1] = '\0'; /* overwrite last space */ - strcat(partial, guardE[1]); /* end */ - - } else { /* EAN-8 almost identical to EAN-13 but no mirroring */ - - if (len0 != 8) { - checksum = ean_make_checksum(text, 0); - text[7] = '0' + checksum; /* add it to the text */ - text[8] = '\0'; - } - - strcpy(partial, guard[0]); - xpos = width_of_partial(partial); - - /* left part */ - for (i=0;i<4;i++) { - strcpy(partial + strlen(partial), digits[text[i]-'0']); - sprintf(tptr, "%i:12:%c ", xpos, text[i]); - tptr += strlen(tptr); - xpos += 7; /* width_of_partial(digits[text[i]-'0' */ - } - strcat(partial, guard[1]); /* middle */ - xpos += width_of_partial(guard[1]); - - /* right part */ - for (i=4;i<8;i++) { - strcpy(partial + strlen(partial), digits[text[i]-'0']); - sprintf(tptr, "%i:12:%c ", xpos, text[i]); - tptr += strlen(tptr); - xpos += 7; /* width_of_partial(digits[text[i]-'0' */ - } - tptr[-1] = '\0'; /* overwrite last space */ - strcat(partial, guard[2]); /* end */ - } - - /* - * And that's it. Now, in case some add-on is specified it - * must be encoded too. Look for it. - */ - if ( (ptr1 = spc) ) { - ptr1++; - strcpy(text, ptr1); - if (strlen(ptr1)==5) { - checksum = ean_make_checksum(text, 1 /* special way */); - mirror = upc_mirrortab[checksum]+1; /* only last 5 digits */ - } else { - checksum = atoi(text)%4; - mirror = upc_mirrortab2[checksum]; - } - strcat(textinfo, " +"); strcat(partial, "+"); - tptr = textinfo + strlen(textinfo); - for (i=0; ipartial = strdup(partial); - if (!bc->partial) { - bc->error = errno; - return -1; - } - bc->textinfo = strdup(textinfo); - if (!bc->textinfo) { - bc->error = errno; - free(bc->partial); - bc->partial = NULL; - return -1; - } - if (!bc->width) - bc->width = width_of_partial(partial); - - return 0; /* success */ -} - -int Barcode_upc_encode(struct Barcode_Item *bc) -{ - return Barcode_ean_encode(bc); /* UPC is folded into EAN */ -} - -int Barcode_isbn_encode(struct Barcode_Item *bc) -{ - /* For ISBN we must normalize the string and prefix "978" */ - unsigned char *text = malloc(24); /* 13 + ' ' + 5 plus some slack */ - unsigned char *otext; - int i, j, retval; - - if (!text) { - bc->error = ENOMEM; - return -1; - } - strcpy(text, "978"); j=3; - - otext = bc->ascii; - for (i=0; otext[i]; i++) { - if (isdigit(otext[i])) - text[j++] = otext[i]; - if (j == 12) /* checksum added later */ - break; - } - text[j]='\0'; - if (strchr(otext, ' ')) - strcat(text, strchr(otext, ' ')); - bc->ascii = text; - bc->encoding = strdup("ISBN"); - retval = Barcode_ean_encode(bc); - bc->ascii = otext; /* restore ascii for the ps comments */ - free(text); - return retval; -} - diff --git a/barcode-0.98/i25.c b/barcode-0.98/i25.c deleted file mode 100644 index 72bd0358..00000000 --- a/barcode-0.98/i25.c +++ /dev/null @@ -1,164 +0,0 @@ -/* - * i25.c -- "interleaved 2 of 5" - * - * Copyright (c) 1999,2000 Alessandro Rubini (rubini@gnu.org) - * Copyright (c) 1999 Prosa Srl. (prosa@prosa.it) - * - * 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 2 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, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. - */ - -#include -#include -#include -#include -#include - -#include "barcode.h" - -static char *codes[] = { - "11331", "31113", "13113", "33111", "11313", - "31311", "13311", "11133", "31131", "13131" -}; - -static char *guard[] = {"a1a1", "c1a"}; /* begin end */ - -int Barcode_i25_verify(unsigned char *text) -{ - if (!text[0]) - return -1; - while (*text && isdigit(*text)) - text++; - if (*text) - return -1; /* a non-digit char */ - return 0; /* ok */ -} - -int Barcode_i25_encode(struct Barcode_Item *bc) -{ - unsigned char *text; - unsigned char *partial; /* dynamic */ - unsigned char *textinfo; /* dynamic */ - unsigned char *textptr, *p1, *p2, *pd; - int i, len, sum[2], textpos, usesum = 0; - - if (bc->partial) - free(bc->partial); - if (bc->textinfo) - free(bc->textinfo); - bc->partial = bc->textinfo = NULL; /* safe */ - - if (!bc->encoding) - bc->encoding = strdup("interleaved 2 of 5"); - - text = bc->ascii; - if (!bc->ascii) { - bc->error = EINVAL; - return -1; - } - - if ((bc->flags & BARCODE_NO_CHECKSUM)) usesum = 0; else usesum = 1; - - /* create the real text string, padded to an even number of digits */ - text = malloc(strlen(bc->ascii) + 3); /* leading 0, checksum, term. */ - if (!text) { - bc->error = errno; - return -1; - } - /* add the leading 0 if needed */ - i = strlen(bc->ascii) + usesum; - if (i % 2) { - /* add a leading 0 */ - text[0] = '0'; - strcpy(text+1, bc->ascii); - } else { - strcpy(text, bc->ascii); - } - /* add the trailing checksum if needed, the leading 0 is ignored */ - if (usesum) { - sum[0] = sum[1] = 0; - for (i=0; text[i]; i++) - sum[i%2] += text[i]-'0'; - /* - * The "even" sum must be multiplied by three, and the * - * rightmost digit is defined as "even". The digits' position - * is already correct, whether or not we added a leading zero. - * (e.g., they are in pos. 0..4 or 1..4 of the string) - */ - i = sum[0] * 3 + sum[1]; - strcat(text, "0"); - text[strlen(text)-1] += (10 - (i%10)) % 10; - } - - /* the partial code is 5 * (text + check) + 4(head) + 3(tail) + term. */ - partial = malloc( (strlen(text) + 3) * 5 +2); /* be large... */ - if (!partial) { - bc->error = errno; - free(text); - return -1; - } - - /* the text information is at most "nnn:fff:c " * (strlen+1) +term */ - textinfo = malloc(10*(strlen(text)+1) + 2); - if (!textinfo) { - bc->error = errno; - free(partial); - free(text); - return -1; - } - - - strcpy(partial, "0"); /* the first space */ - strcat(partial, guard[0]); /* start */ - textpos = 4; /* width of initial guard */ - textptr = textinfo; - - len = strlen(text); - for (i=0; ierror = EINVAL; /* impossible if text is verified */ - free(partial); - free(textinfo); - free(text); - return -1; - } - /* interleave two digits */ - p1 = codes[text[i]-'0']; - p2 = codes[text[i+1]-'0']; - pd = partial + strlen(partial); /* destination */ - while (*p1) { - *(pd++) = *(p1++); - *(pd++) = *(p2++); - } - *pd = '\0'; - /* and print the ascii text (but don't print the checksum, if any */ - if (usesum && strlen(text+i)==2) { - /* print only one digit, discard the checksum */ - sprintf(textptr, "%i:12:%c ", textpos, text[i]); - } else { - sprintf(textptr, "%i:12:%c %i:12:%c ", textpos, text[i], - textpos+9, text[i+1]); - } - textpos += 18; /* width of two codes */ - textptr += strlen(textptr); - } - strcat(partial, guard[1]); - - bc->partial = partial; - bc->textinfo = textinfo; - free(text); - - return 0; -} - diff --git a/barcode-0.98/install-sh b/barcode-0.98/install-sh deleted file mode 100644 index ab74c882..00000000 --- a/barcode-0.98/install-sh +++ /dev/null @@ -1,238 +0,0 @@ -#!/bin/sh -# -# install - install a program, script, or datafile -# This comes from X11R5. -# -# Calling this script install-sh is preferred over install.sh, to prevent -# `make' implicit rules from creating a file called install from it -# when there is no Makefile. -# -# This script is compatible with the BSD install script, but was written -# from scratch. -# - - -# set DOITPROG to echo to test this script - -# Don't use :- since 4.3BSD and earlier shells don't like it. -doit="${DOITPROG-}" - - -# put in absolute paths if you don't have them in your path; or use env. vars. - -mvprog="${MVPROG-mv}" -cpprog="${CPPROG-cp}" -chmodprog="${CHMODPROG-chmod}" -chownprog="${CHOWNPROG-chown}" -chgrpprog="${CHGRPPROG-chgrp}" -stripprog="${STRIPPROG-strip}" -rmprog="${RMPROG-rm}" -mkdirprog="${MKDIRPROG-mkdir}" - -tranformbasename="" -transform_arg="" -instcmd="$mvprog" -chmodcmd="$chmodprog 0755" -chowncmd="" -chgrpcmd="" -stripcmd="" -rmcmd="$rmprog -f" -mvcmd="$mvprog" -src="" -dst="" -dir_arg="" - -while [ x"$1" != x ]; do - case $1 in - -c) instcmd="$cpprog" - shift - continue;; - - -d) dir_arg=true - shift - continue;; - - -m) chmodcmd="$chmodprog $2" - shift - shift - continue;; - - -o) chowncmd="$chownprog $2" - shift - shift - continue;; - - -g) chgrpcmd="$chgrpprog $2" - shift - shift - continue;; - - -s) stripcmd="$stripprog" - shift - continue;; - - -t=*) transformarg=`echo $1 | sed 's/-t=//'` - shift - continue;; - - -b=*) transformbasename=`echo $1 | sed 's/-b=//'` - shift - continue;; - - *) if [ x"$src" = x ] - then - src=$1 - else - # this colon is to work around a 386BSD /bin/sh bug - : - dst=$1 - fi - shift - continue;; - esac -done - -if [ x"$src" = x ] -then - echo "install: no input file specified" - exit 1 -else - true -fi - -if [ x"$dir_arg" != x ]; then - dst=$src - src="" - - if [ -d $dst ]; then - instcmd=: - else - instcmd=mkdir - fi -else - -# Waiting for this to be detected by the "$instcmd $src $dsttmp" command -# might cause directories to be created, which would be especially bad -# if $src (and thus $dsttmp) contains '*'. - - if [ -f $src -o -d $src ] - then - true - else - echo "install: $src does not exist" - exit 1 - fi - - if [ x"$dst" = x ] - then - echo "install: no destination specified" - exit 1 - else - true - fi - -# If destination is a directory, append the input filename; if your system -# does not like double slashes in filenames, you may need to add some logic - - if [ -d $dst ] - then - dst="$dst"/`basename $src` - else - true - fi -fi - -## this sed command emulates the dirname command -dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` - -# Make sure that the destination directory exists. -# this part is taken from Noah Friedman's mkinstalldirs script - -# Skip lots of stat calls in the usual case. -if [ ! -d "$dstdir" ]; then -defaultIFS=' -' -IFS="${IFS-${defaultIFS}}" - -oIFS="${IFS}" -# Some sh's can't handle IFS=/ for some reason. -IFS='%' -set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` -IFS="${oIFS}" - -pathcomp='' - -while [ $# -ne 0 ] ; do - pathcomp="${pathcomp}${1}" - shift - - if [ ! -d "${pathcomp}" ] ; - then - $mkdirprog "${pathcomp}" - else - true - fi - - pathcomp="${pathcomp}/" -done -fi - -if [ x"$dir_arg" != x ] -then - $doit $instcmd $dst && - - if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && - if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && - if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && - if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi -else - -# If we're going to rename the final executable, determine the name now. - - if [ x"$transformarg" = x ] - then - dstfile=`basename $dst` - else - dstfile=`basename $dst $transformbasename | - sed $transformarg`$transformbasename - fi - -# don't allow the sed command to completely eliminate the filename - - if [ x"$dstfile" = x ] - then - dstfile=`basename $dst` - else - true - fi - -# Make a temp file name in the proper directory. - - dsttmp=$dstdir/#inst.$$# - -# Move or copy the file name to the temp name - - $doit $instcmd $src $dsttmp && - - trap "rm -f ${dsttmp}" 0 && - -# and set any options; do chmod last to preserve setuid bits - -# If any of these fail, we abort the whole thing. If we want to -# ignore errors from any of these, just make sure not to ignore -# errors from the above "$doit $instcmd $src $dsttmp" command. - - if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && - if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && - if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && - if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && - -# Now rename the file to the real destination. - - $doit $rmcmd -f $dstdir/$dstfile && - $doit $mvcmd $dsttmp $dstdir/$dstfile - -fi && - - -exit 0 diff --git a/barcode-0.98/library.c b/barcode-0.98/library.c deleted file mode 100644 index a8787020..00000000 --- a/barcode-0.98/library.c +++ /dev/null @@ -1,244 +0,0 @@ -/* - * library.c -- external functions of libbarcode - * - * Copyright (c) 1999 Alessandro Rubini (rubini@gnu.org) - * Copyright (c) 1999 Prosa Srl. (prosa@prosa.it) - * - * 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 2 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, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. - */ - -#include -#include -#include -#include -#ifdef HAVE_UNISTD_H /* sometimes (windows, for instance) it's missing */ -# include -#endif -#include - -#include "barcode.h" - -/* - * This function allocates a barcode structure and strdup()s the - * text string. It returns NULL in case of error - */ -struct Barcode_Item *Barcode_Create(char *text) -{ - struct Barcode_Item *bc; - - bc = malloc(sizeof(*bc)); - if (!bc) return NULL; - - memset(bc, 0, sizeof(*bc)); - bc->ascii = strdup(text); - bc->margin = BARCODE_DEFAULT_MARGIN; /* default margin */ - return bc; -} - - -/* - * Free a barcode structure - */ -int Barcode_Delete(struct Barcode_Item *bc) -{ - if (bc->ascii) - free(bc->ascii); - if (bc->partial) - free(bc->partial); - if (bc->textinfo) - free(bc->textinfo); - if (bc->encoding) - free(bc->encoding); - free(bc); - return 0; /* always success */ -} - - -/* - * The various supported encodings. This might be extended to support - * dynamic addition of extra encodings - */ -extern int Barcode_ean_verify(unsigned char *text); -extern int Barcode_ean_encode(struct Barcode_Item *bc); -extern int Barcode_upc_verify(unsigned char *text); -extern int Barcode_upc_encode(struct Barcode_Item *bc); -extern int Barcode_isbn_verify(unsigned char *text); -extern int Barcode_isbn_encode(struct Barcode_Item *bc); -extern int Barcode_39_verify(unsigned char *text); -extern int Barcode_39_encode(struct Barcode_Item *bc); -extern int Barcode_128b_verify(unsigned char *text); -extern int Barcode_128b_encode(struct Barcode_Item *bc); -extern int Barcode_128c_verify(unsigned char *text); -extern int Barcode_128c_encode(struct Barcode_Item *bc); -extern int Barcode_128_verify(unsigned char *text); -extern int Barcode_128_encode(struct Barcode_Item *bc); -extern int Barcode_128raw_verify(unsigned char *text); -extern int Barcode_128raw_encode(struct Barcode_Item *bc); -extern int Barcode_i25_verify(unsigned char *text); -extern int Barcode_i25_encode(struct Barcode_Item *bc); -extern int Barcode_cbr_verify(unsigned char *text); -extern int Barcode_cbr_encode(struct Barcode_Item *bc); -extern int Barcode_msi_verify(unsigned char *text); -extern int Barcode_msi_encode(struct Barcode_Item *bc); -extern int Barcode_pls_verify(unsigned char *text); -extern int Barcode_pls_encode(struct Barcode_Item *bc); -extern int Barcode_93_verify(unsigned char *text); -extern int Barcode_93_encode(struct Barcode_Item *bc); - - -struct encoding { - int type; - int (*verify)(unsigned char *text); - int (*encode)(struct Barcode_Item *bc); -}; - -struct encoding encodings[] = { - {BARCODE_EAN, Barcode_ean_verify, Barcode_ean_encode}, - {BARCODE_UPC, Barcode_upc_verify, Barcode_upc_encode}, - {BARCODE_ISBN, Barcode_isbn_verify, Barcode_isbn_encode}, - {BARCODE_128B, Barcode_128b_verify, Barcode_128b_encode}, - {BARCODE_128C, Barcode_128c_verify, Barcode_128c_encode}, - {BARCODE_128RAW, Barcode_128raw_verify, Barcode_128raw_encode}, - {BARCODE_39, Barcode_39_verify, Barcode_39_encode}, - {BARCODE_I25, Barcode_i25_verify, Barcode_i25_encode}, - {BARCODE_128, Barcode_128_verify, Barcode_128_encode}, - {BARCODE_CBR, Barcode_cbr_verify, Barcode_cbr_encode}, - {BARCODE_PLS, Barcode_pls_verify, Barcode_pls_encode}, - {BARCODE_MSI, Barcode_msi_verify, Barcode_msi_encode}, - {BARCODE_93, Barcode_93_verify, Barcode_93_encode}, - {0, NULL, NULL} -}; - -/* - * A function to encode a string into bc->partial, ready for - * postprocessing to the output file. Meaningful bits for "flags" are - * the encoding mask and the no-checksum flag. These bits - * get saved in the data structure. - */ -int Barcode_Encode(struct Barcode_Item *bc, int flags) -{ - int validbits = BARCODE_ENCODING_MASK | BARCODE_NO_CHECKSUM; - struct encoding *cptr; - - /* If any flag is cleared in "flags", inherit it from "bc->flags" */ - if (!(flags & BARCODE_ENCODING_MASK)) - flags |= bc->flags & BARCODE_ENCODING_MASK; - if (!(flags & BARCODE_NO_CHECKSUM)) - flags |= bc->flags & BARCODE_NO_CHECKSUM; - flags = bc->flags = (flags & validbits) | (bc->flags & ~validbits); - - if (!(flags & BARCODE_ENCODING_MASK)) { - /* get the first code able to handle the text */ - for (cptr = encodings; cptr->verify; cptr++) - if (cptr->verify((unsigned char *)bc->ascii)==0) - break; - if (!cptr->verify) { - bc->error = EINVAL; /* no code can handle this text */ - return -1; - } - flags |= cptr->type; /* this works */ - bc->flags |= cptr->type; - } - for (cptr = encodings; cptr->verify; cptr++) - if (cptr->type == (flags & BARCODE_ENCODING_MASK)) - break; - if (!cptr->verify) { - bc->error = EINVAL; /* invalid barcode type */ - return -1; - } - if (cptr->verify(bc->ascii) != 0) { - bc->error = EINVAL; - return -1; - } - return cptr->encode(bc); -} - - -/* - * When multiple output formats are supported, there will - * be a jumpt table like the one for the types. Now we don't need it - */ -extern int Barcode_ps_print(struct Barcode_Item *bc, FILE *f); -extern int Barcode_pcl_print(struct Barcode_Item *bc, FILE *f); - -/* - * A function to print a partially decoded string. Meaningful bits for - * "flags" are the output mask etc. These bits get saved in the data - * structure. - */ -int Barcode_Print(struct Barcode_Item *bc, FILE *f, int flags) -{ - int validbits = BARCODE_OUTPUT_MASK | BARCODE_NO_ASCII - | BARCODE_OUT_NOHEADERS; - - /* If any flag is clear in "flags", inherit it from "bc->flags" */ - if (!(flags & BARCODE_OUTPUT_MASK)) - flags |= bc->flags & BARCODE_OUTPUT_MASK; - if (!(flags & BARCODE_NO_ASCII)) - flags |= bc->flags & BARCODE_NO_ASCII; - if (!(flags & BARCODE_OUT_NOHEADERS)) - flags |= bc->flags & BARCODE_OUT_NOHEADERS; - flags = bc->flags = (flags & validbits) | (bc->flags & ~validbits); - - if (bc->flags & BARCODE_OUT_PCL) - return Barcode_pcl_print(bc, f); - return Barcode_ps_print(bc, f); -} - -/* - * Choose the position - */ -int Barcode_Position(struct Barcode_Item *bc, int wid, int hei, - int xoff, int yoff, double scalef) -{ - bc->width = wid; bc->height = hei; - bc->xoff = xoff; bc->yoff = yoff; - bc->scalef = scalef; - return 0; -} - -/* - * Do it all in one step - */ -int Barcode_Encode_and_Print(char *text, FILE *f, int wid, int hei, - int xoff, int yoff, int flags) -{ - struct Barcode_Item * bc; - - if (!(bc=Barcode_Create(text))) { - errno = -ENOMEM; - return -1; - } - if ( Barcode_Position(bc, wid, hei, xoff, yoff, 0.0) < 0 - || Barcode_Encode(bc, flags) < 0 - || Barcode_Print(bc, f, flags) < 0) { - errno = bc->error; - Barcode_Delete(bc); - return -1; - } - Barcode_Delete(bc); - return 0; -} - -/* - * Return the version - */ - -int Barcode_Version(char *vptr) -{ - if (vptr) - strcpy(vptr, BARCODE_VERSION); - return BARCODE_VERSION_INT; -} diff --git a/barcode-0.98/main.c b/barcode-0.98/main.c deleted file mode 100644 index e07e4d3c..00000000 --- a/barcode-0.98/main.c +++ /dev/null @@ -1,604 +0,0 @@ -/* - * main.c - a commandline frontend for the barcode library - * - * Copyright (c) 1999 Michele Comitini (mcm@glisco.it) - * Copyright (c) 1999 Alessandro Rubini (rubini@gnu.org) - * Copyright (c) 1999 Prosa Srl. (prosa@prosa.it) - * - * 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 2 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, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. - */ - -#include -#include -#include -#include - -#include "cmdline.h" -#include "barcode.h" - -#ifndef NO_LIBPAPER -#include -#endif - -/* - * Most of this file deals with command line options, by exploiting - * the cmdline.[ch] engine to offer defaults via environment variables - * and handling functions for complex options. - * - * In order to offer a friendly interface (for those who feel the - * cmdline *is* friendly, like me), we have to convert names to enums... - */ - -struct { - char *name; - int type; -} encode_tab[] = { - {"ean", BARCODE_EAN}, - {"ean13", BARCODE_EAN}, - {"ean-13", BARCODE_EAN}, - {"ean8", BARCODE_EAN}, - {"ean-8", BARCODE_EAN}, - {"upc", BARCODE_UPC}, - {"upc-a", BARCODE_UPC}, - {"upc-e", BARCODE_UPC}, - {"isbn", BARCODE_ISBN}, - {"39", BARCODE_39}, - {"code39", BARCODE_39}, - {"128c", BARCODE_128C}, - {"code128c", BARCODE_128C}, - {"128b", BARCODE_128B}, - {"code128b", BARCODE_128B}, - {"128", BARCODE_128}, - {"code128", BARCODE_128}, - {"128raw", BARCODE_128RAW}, - {"i25", BARCODE_I25}, - {"interleaved 2 of 5", BARCODE_I25}, - {"cbr", BARCODE_CBR}, - {"codabar", BARCODE_CBR}, - {"msi", BARCODE_MSI}, - {"pls", BARCODE_PLS}, - {"plessey", BARCODE_PLS}, - {"code93", BARCODE_93}, - {"93", BARCODE_93}, - - {NULL, 0} -}; - -/* - * Get encoding type from string rapresentation. - * Returns -1 on error. - */ -#ifndef HAVE_STRCASECMP /* some libs (windows, for example) have stricmp */ -# define strcasecmp stricmp -#endif - -int encode_id(char *encode_name) -{ - int i; - for (i = 0; encode_tab[i].name; i++) - if (!strcasecmp(encode_tab[i].name, encode_name)) - return encode_tab[i].type; - return -1; -} - -int list_encodes(FILE *f) /* used in the help message */ -{ - int prev = -1; - int i; - - fprintf(f, "Known encodings are (synonyms appear on the same line):"); - for (i = 0; encode_tab[i].name; i++) { - if (encode_tab[i].type != prev) - fprintf(f, "\n\t"); - else - fprintf(f, ", "); - fprintf(f, "\"%s\"", encode_tab[i].name); - prev = encode_tab[i].type; - } - fprintf(f, "\n"); - return 0; -} - - -/* - * Variables to hold cmdline arguments (or defaults) - */ - -char *ifilename, *ofilename; -int encoding_type; /* filled by get_encoding() */ -int code_width, code_height; /* "-g" for standalone codes */ -int lines, columns; /* "-t" for tables */ -int xmargin0, ymargin0; /* both for "-g" and "-t" */ -int xmargin1, ymargin1; /* same, but right and top */ -int ximargin, yimargin; /* "-m": internal margins */ -int eps, pcl, ps, noascii, nochecksum; /* boolean flags */ -int page_wid, page_hei; /* page size in points */ -char *page_name; /* name of the media */ -double unit = 1.0; /* unit specification */ - -char *prgname; /* used to print error msgs, initialized to argv[0] by main */ - -/* - * Functions to handle command line arguments - */ - -struct encode_item { - char *string; - struct encode_item *next; -} *list_head, *list_tail; - -/* each "-b" option adds a string to the input pool allocating its space */ -int get_input_string(void *arg) -{ - struct encode_item *item = malloc(sizeof(*item)); - if (!item) { - fprintf(stderr, "%s: malloc: %s\n", prgname, strerror(errno)); - return -2; - } - item->string = strdup(arg); - if (!list_head) { - list_head = list_tail = item; - } else { - list_tail->next = item; - list_tail = item; - } - item->next = NULL; - return 0; -} - -/* and this function extracts strings from the pool */ -unsigned char *retrieve_input_string(FILE *ifile) -{ - char *string; - static char fileline[128]; - - struct encode_item *item = list_head; - if (list_tail) { /* this means at least one "-b" was specified */ - if (!item) - return NULL; /* the list is empty */ - string = item->string; - list_head = item->next; - free(item); - return string; - } - - /* else, read from the file */ - if (!fgets(fileline, 128, ifile)) - return NULL; - if (fileline[strlen(fileline)-1]=='\n') - fileline[strlen(fileline)-1]= '\0'; - return strdup(fileline); -} - -/* accept a unit specification */ -int get_unit(void *arg) -{ - static struct { - char *str; - double unit; - } *ptr, unittab[] = { - {"pt", 1.0}, - {"in", 72.0}, - {"cm", 72.0/2.54}, - {"mm", 72.0/25.4}, - {NULL, 0.0} - }; - - for (ptr = unittab; ptr->str && strcmp((char *)arg, ptr->str); ptr++) - ; - unit = ptr->unit; - if (ptr->str) return 0; - - fprintf(stderr, "%s: incorrect unit \"%s\" (use one of", - prgname, (char *)arg); - for (ptr = unittab; ptr->str; ptr++) - fprintf(stderr, " \"%s\"", ptr->str); - fprintf(stderr, ")\n"); - return -2; -} - -/* convert an encoding name to an encoding integer code */ -int get_encoding(void *arg) -{ - encoding_type = encode_id((char *)arg); - if (encoding_type >=0) return 0; - fprintf(stderr, "%s: wrong encoding \"%s\"\n", prgname, - (char *)arg); - return -2; /* error, no help */ -} - -/* convert a geometry specification */ -int get_geometry(void *arg) -{ - double w = 0.0, h = 0.0; - double x = 0.0, y = 0.0; - int n; - - if (((char *)arg)[0]=='+') { - n = sscanf((char *)arg, "+%lf+%lf%s", &x, &y, (char *)arg); - } else { - n = sscanf((char *)arg, "%lfx%lf+%lf+%lf%s", &w, &h, &x, &y, - (char *)arg); - } - if (n!=4 && n!=2) { - fprintf(stderr, "%s: wrong geometry \"%s\"\n", prgname, (char *)arg); - return -2; - } - /* convert to points */ - code_width = w * unit; - code_height = h * unit; - xmargin0 = x * unit; - ymargin0 = y * unit; - return 0; -} - -/* convert a geometry specification */ -int get_table(void *arg) -{ - double x0 = 0.0, y0 = 0.0, x1 = 0.0, y1 = 0.0; - int n; - - n = sscanf((char *)arg, "%dx%d+%lf+%lf-%lf-%lf", - &columns, &lines, &x0, &y0, &x1, &y1); - - if (n==1 || n==3) { /* error: 2, 4, 5, 6 are fine */ - fprintf(stderr, "%s: wrong table specification \"%s\"\n", prgname, - (char *)arg); - return -2; - } - if (n < 6) y1 = y0; /* symmetric by default */ - if (n < 5) x1 = x0; - - /* convert and return */ - xmargin0 = x0 * unit; - ymargin0 = y0 * unit; - xmargin1 = x1 * unit; - ymargin1 = y1 * unit; - return 0; -} - -/* convert an internal margin specification */ -int get_margin(void *arg) -{ - char separator; - double x,y; - int n; - - /* accept one number or two, separated by any char */ - n = sscanf((char *)arg, "%lf%c%lf", &x, &separator, &y); - - if (n==1) { - n=3; y = x; - } - if (n==3) { - ximargin = x * unit; - yimargin = y * unit; - return 0; - } - fprintf(stderr, "%s: wrong margin specification \"%s\"\n", prgname, - (char *)arg); - return -2; - return 0; -} - -/* convert a page geometry specification */ -int get_page_geometry(void *arg) -{ - int n; - double dpw, dph; /* page width, height in mm or inches */ - static char tmpstr[20]; - page_name = arg; /* if undecipherable, we won't run the program :) */ - /* - * try to decode a "mm" string (eg. "210mmx297mm" or "210x297mm") - */ - n = sscanf((char *)arg, "%lfmmx%lf", &dpw, &dph); - if (n != 2 && strlen(arg)<20) { - n = sscanf((char *)arg, "%lfx%lf%s", &dpw, &dph, tmpstr); - if (n == 3 && !strcmp(tmpstr, "mm")) { - /* Ok, convert to points: 1in is 25.4mm, 1in is also 72p */ - page_wid = (int)(dpw / 25.4 * 72.0 + 0.5); - page_hei = (int)(dph / 25.4 * 72.0 + 0.5); - return 0; - } - } - - /* - * try to decode an "in" string (eg. "8.5inx11in" or "8.5x11in") - */ - n = sscanf((char *)arg, "%lfinx%lf", &dpw, &dph); - if (n != 2 && strlen(arg)<20) { - n = sscanf((char *)arg, "%lfx%lf%s", &dpw, &dph, tmpstr); - if (n == 3 && !strcmp(tmpstr, "in")) { - page_wid = (int)(dpw * 72.0 + 0.5); /* round to points */ - page_hei = (int)(dph * 72.0 + 0.5); - return 0; - } - } - - /* - * try to decode a numeric specification - */ - n = sscanf((char *)arg, "%lfx%lf", &dpw, &dph); - if (n == 2) { - page_wid = dpw * unit; - page_hei = dph * unit; - if (unit != 1.0) { /* rebuild the page name */ - page_name = malloc(32); /* big, to avoid snprintf, missing on HP */ - if (page_name) - sprintf(page_name, "%dx%d\n", page_wid, page_hei); - } - return 0; - } - -#ifndef NO_LIBPAPER - /* - * try to use libpaper, since it is available - */ - { - const struct paper* paptr; - - paperinit(); - paptr = paperinfo(arg); - if (!paptr) { /* unknown name */ - paperdone(); - return -1; - } - page_wid = (int)(paperpswidth(paptr) + 0.5); - page_hei = (int)(paperpsheight(paptr) + 0.5); - paperdone(); - return 0; - } -#endif - /* If we got here, the argument is undecipherable: fail */ - fprintf(stderr, "%s: wrong page size specification \"%s\"\n", prgname, - (char *)arg); - return -2; -} - -/* - * The table of possible arguments - */ -struct commandline option_table[] = { - {'i', CMDLINE_S, &ifilename, NULL, NULL, NULL, - "input file (strings to encode), default is stdin"}, - {'o', CMDLINE_S, &ofilename, NULL, NULL, NULL, - "output file, default is stdout"}, - {'b', CMDLINE_S, NULL, get_input_string, NULL, NULL, - "string to encode (use input file if missing)"}, - {'e', CMDLINE_S, NULL, get_encoding, "BARCODE_ENCODING", NULL, - "encoding type (default is best fit for first string)"}, - {'u', CMDLINE_S, NULL, get_unit, "BARCODE_UNIT", NULL, - "unit (\"mm\", \"in\", ...) used to decode -g, -t, -p"}, - {'g', CMDLINE_S, NULL, get_geometry, "BARCODE_GEOMETRY", NULL, - "geometry on the page: [x][++]"}, - {'t', CMDLINE_S, NULL, get_table, "BARCODE_TABLE", NULL, - "table geometry: x[++]"}, - {'m', CMDLINE_S, NULL, get_margin, "BARCODE_MARGIN", "10", - "internal margin for each item in a table: [,]"}, - {'n', CMDLINE_NONE, &noascii, NULL, NULL, NULL, - "\"numeric\": avoid printing text along with the bars"}, - {'c', CMDLINE_NONE, &nochecksum, NULL, NULL, NULL, - "no Checksum character, if the chosen encoding allows it"}, - {'E', CMDLINE_NONE, &eps, NULL, NULL, NULL, - "print one code as eps file (default: multi-page ps)"}, - {'P', CMDLINE_NONE, &pcl, NULL, NULL, NULL, - "create PCL output instead of postscript"}, - {'p', CMDLINE_S, NULL, get_page_geometry, NULL, NULL, - "page size (refer to the man page)"}, - {0,} -}; - -#ifdef NO_STRERROR -/* - * A strerror replacement (thanks to Thad Floryan ) - */ -char *strerror(int error) -{ - static char msg[16]; - if (error >= 0 && error < sys_nerr) - return sys_errlist[error]; - sprintf(msg, "Error %d", error); - return msg; -} -#endif - -/* - * The main function - */ -int main(int argc, char **argv) -{ - struct Barcode_Item * bc; - FILE *ifile = stdin; - FILE *ofile = stdout; - char *line; - int flags=0; /* for the library */ - int page, retval; - - prgname = argv[0]; - - /* First of all, accept "--help" and "-h" as a special case */ - if (argc == 2 && (!strcmp(argv[1],"--help") || !strcmp(argv[1],"-h"))) { - commandline_errormsg(stderr, option_table, argv[0], "Options:\n"); - fprintf(stderr,"\n"); - list_encodes(stderr); - exit(1); - } - /* Also, accept "--version" as a special case */ - if (argc == 2 && (!strcmp(argv[1],"--version"))) { - printf("barcode frontend (GNU barcode) " BARCODE_VERSION "\n"); - exit(0); - } - - /* Otherwise, parse the commandline */ - retval = commandline(option_table, argc, argv, "Use: %s [options]\n"); - if (retval) { - if (retval == -1) /* help printed, complete it */ - list_encodes(stderr); - else /* no help printed, suggest it */ - fprintf(stderr, "%s: try \"%s --help\"\n", prgname, prgname); - exit(1); - } - - /* If no paper size has been specified, use the default, if any */ - if (!page_name) { - page_wid = 595; page_hei = 842; - page_name = "A4"; /* I live in Europe :) */ -#ifndef NO_LIBPAPER - get_page_geometry(systempapername()); /* or the system default */ -#endif - } - - /* FIXME: print warnings for incompatible options */ - - /* open the input stream if specified */ - if (ifilename) - ifile = fopen(ifilename,"r"); - if (!ifile) { - fprintf(stderr, "%s: %s: %s\n", argv[0], ifilename, - strerror(errno)); - exit(1); - } - - /* open the output stream if specified */ - if (ofilename) - ofile = fopen(ofilename,"w"); - if (!ofile) { - fprintf(stderr, "%s: %s: %s\n", argv[0], ofilename, - strerror(errno)); - exit(1); - } - - if (encoding_type < 0) { /* unknown type specified */ - fprintf(stderr,"%s: Unknown endoding. Try \"%s --help\"\n", - argv[0], argv[0]); - exit(1); - } - flags |= encoding_type; - if (pcl) { - flags |= BARCODE_OUT_PCL; - } else { - ps = !eps; /* a shortcut */ - if (eps) - flags |= BARCODE_OUT_EPS; /* print headers too */ - else - flags |= BARCODE_OUT_PS | BARCODE_OUT_NOHEADERS; - } - if (noascii) - flags |= BARCODE_NO_ASCII; - if (nochecksum) - flags |= BARCODE_NO_CHECKSUM; - - /* the table is not available in eps mode */ - if (eps && (lines>1 || columns>1)) { - fprintf(stderr, "%s: can't print tables in EPS format\n",argv[0]); - exit(1); - } - - if (ps) { /* The header is independent of single/table mode */ - /* Headers. Don't let the library do it, we may need multi-page */ - fprintf(ofile, "%%!PS-Adobe-2.0\n"); - /* It would be nice to know the bounding box. Leave it alone */ - fprintf(ofile, "%%%%Creator: \"barcode\", " - "libbarcode sample frontend\n"); - if (page_name) - fprintf(ofile, "%%%%DocumentPaperSizes: %s\n", page_name); - fprintf(ofile, "%%%%EndComments\n"); - fprintf(ofile, "%%%%EndProlog\n\n"); - } - - /* - * Here we are, ready to work. Handle the one-per-page case first, - * as it is shorter. - */ - if (!lines && !columns) { - page = 0; - while ( (line = retrieve_input_string(ifile)) ) { - page++; - if (ps) { - fprintf(ofile, "%%%%Page: %i %i\n\n",page,page); - } - if (Barcode_Encode_and_Print(line, ofile, code_width, code_height, - xmargin0, ymargin0, flags) < 0) { - fprintf(stderr, "%s: can't encode \"%s\"\n", argv[0], line); - } - if (eps) break; /* if output is eps, do it once only */ - if (ps) fprintf(ofile, "showpage\n"); - if (pcl) fprintf(ofile, "\f"); - } - /* no more lines, print footers */ - if (ps) { - fprintf(ofile, "%%%%Trailer\n\n"); - } - } else { - - /* table mode, the header has been already printed */ - - int xstep = (page_wid - xmargin0 - xmargin1)/columns; - int ystep = (page_hei - ymargin0 - ymargin1)/lines; - int x = columns, y = -1; /* position in the table, start off-page */ - - if (!ximargin) ximargin = BARCODE_DEFAULT_MARGIN; - if (!yimargin) yimargin = BARCODE_DEFAULT_MARGIN; - /* Assign default size unless -g did it (Joachim Reichelt) */ - if ( !code_width && !code_height) { - code_width = xstep - 2*ximargin; - code_height = ystep - 2*yimargin; - } - - page=0; - while ( (line = retrieve_input_string(ifile)) ) { - x++; /* fit x and y */ - if (x >= columns) { - x=0; y--; - if (y<0) { - y = lines-1; page++; - /* flush page */ - if (ps && page > 1) fprintf(ofile, "showpage\n"); - if (pcl && page > 1) fprintf(ofile, "\f"); - /* new page */ - if (ps) fprintf(ofile, "%%%%Page: %i %i\n\n",page,page); - } - } - - /* - * Create a barcode item. This allows to set the margin to 0, as - * we have [xy]imargin to use. But don't use Encode_and_Print(), - * unroll it here instead - */ - bc = Barcode_Create(line); - if (!bc) { - fprintf(stderr, "%s: Barcode_Create(): %s\n", argv[0], - strerror(errno)); - exit(1); - } - bc->margin = 0; - if ( (Barcode_Position(bc, code_width, code_height, - xmargin0 + ximargin + x * xstep, - ymargin0 + yimargin + y * ystep, 0.0) < 0) - || (Barcode_Encode(bc, flags) < 0) - || (Barcode_Print(bc, ofile, flags) < 0) ) { - fprintf(stderr, "%s: can't encode \"%s\": %s\n", argv[0], - line, strerror(bc->error)); - } - Barcode_Delete(bc); - } - if (ps) fprintf(ofile, "showpage\n\n%%%%Trailer\n\n"); - if (pcl) fprintf(ofile, "\f"); - } - return 0; -} - - - diff --git a/barcode-0.98/missing b/barcode-0.98/missing deleted file mode 100755 index d46f79f6..00000000 --- a/barcode-0.98/missing +++ /dev/null @@ -1,198 +0,0 @@ -#! /bin/sh -# Common stub for a few missing GNU programs while installing. -# Copyright (C) 1996, 1997, 2001 Free Software Foundation, Inc. -# Franc,ois Pinard , 1996. - -# 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 2, 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, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -if test $# -eq 0; then - echo 1>&2 "Try \`$0 --help' for more information" - exit 1 -fi - -# In the cases where this matters, `missing' is being run in the -# srcdir already. -if test -f configure.in; then - configure_ac=configure.ac -else - configure_ac=configure.in -fi - -case "$1" in - - -h|--h|--he|--hel|--help) - echo "\ -$0 [OPTION]... PROGRAM [ARGUMENT]... - -Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an -error status if there is no known handling for PROGRAM. - -Options: - -h, --help display this help and exit - -v, --version output version information and exit - -Supported PROGRAM values: - aclocal touch file \`aclocal.m4' - autoconf touch file \`configure' - autoheader touch file \`config.h.in' - automake touch all \`Makefile.in' files - bison create \`y.tab.[ch]', if possible, from existing .[ch] - flex create \`lex.yy.c', if possible, from existing .c - lex create \`lex.yy.c', if possible, from existing .c - makeinfo touch the output file - yacc create \`y.tab.[ch]', if possible, from existing .[ch]" - ;; - - -v|--v|--ve|--ver|--vers|--versi|--versio|--version) - echo "missing - GNU libit 0.0" - ;; - - -*) - echo 1>&2 "$0: Unknown \`$1' option" - echo 1>&2 "Try \`$0 --help' for more information" - exit 1 - ;; - - aclocal) - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified \`acinclude.m4' or \`$configure_ac'. You might want - to install the \`Automake' and \`Perl' packages. Grab them from - any GNU archive site." - touch aclocal.m4 - ;; - - autoconf) - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified \`$configure_ac'. You might want to install the - \`Autoconf' and \`GNU m4' packages. Grab them from any GNU - archive site." - touch configure - ;; - - autoheader) - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified \`acconfig.h' or \`$configure_ac'. You might want - to install the \`Autoconf' and \`GNU m4' packages. Grab them - from any GNU archive site." - files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' $configure_ac` - test -z "$files" && files="config.h" - touch_files= - for f in $files; do - case "$f" in - *:*) touch_files="$touch_files "`echo "$f" | - sed -e 's/^[^:]*://' -e 's/:.*//'`;; - *) touch_files="$touch_files $f.in";; - esac - done - touch $touch_files - ;; - - automake) - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified \`Makefile.am', \`acinclude.m4' or \`$configure_ac'. - You might want to install the \`Automake' and \`Perl' packages. - Grab them from any GNU archive site." - find . -type f -name Makefile.am -print | - sed 's/\.am$/.in/' | - while read f; do touch "$f"; done - ;; - - bison|yacc) - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified a \`.y' file. You may need the \`Bison' package - in order for those modifications to take effect. You can get - \`Bison' from any GNU archive site." - rm -f y.tab.c y.tab.h - if [ $# -ne 1 ]; then - eval LASTARG="\${$#}" - case "$LASTARG" in - *.y) - SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` - if [ -f "$SRCFILE" ]; then - cp "$SRCFILE" y.tab.c - fi - SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` - if [ -f "$SRCFILE" ]; then - cp "$SRCFILE" y.tab.h - fi - ;; - esac - fi - if [ ! -f y.tab.h ]; then - echo >y.tab.h - fi - if [ ! -f y.tab.c ]; then - echo 'main() { return 0; }' >y.tab.c - fi - ;; - - lex|flex) - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified a \`.l' file. You may need the \`Flex' package - in order for those modifications to take effect. You can get - \`Flex' from any GNU archive site." - rm -f lex.yy.c - if [ $# -ne 1 ]; then - eval LASTARG="\${$#}" - case "$LASTARG" in - *.l) - SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` - if [ -f "$SRCFILE" ]; then - cp "$SRCFILE" lex.yy.c - fi - ;; - esac - fi - if [ ! -f lex.yy.c ]; then - echo 'main() { return 0; }' >lex.yy.c - fi - ;; - - makeinfo) - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified a \`.texi' or \`.texinfo' file, or any other file - indirectly affecting the aspect of the manual. The spurious - call might also be the consequence of using a buggy \`make' (AIX, - DU, IRIX). You might want to install the \`Texinfo' package or - the \`GNU make' package. Grab either from any GNU archive site." - file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` - if test -z "$file"; then - file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` - file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file` - fi - touch $file - ;; - - *) - echo 1>&2 "\ -WARNING: \`$1' is needed, and you do not seem to have it handy on your - system. You might have modified some files without having the - proper tools for further handling them. Check the \`README' file, - it often tells you about the needed prerequirements for installing - this package. You may also peek at any GNU archive site, in case - some other package would contain this missing \`$1' program." - exit 1 - ;; -esac - -exit 0 diff --git a/barcode-0.98/mkinstalldirs b/barcode-0.98/mkinstalldirs deleted file mode 100755 index 6b3b5fc5..00000000 --- a/barcode-0.98/mkinstalldirs +++ /dev/null @@ -1,40 +0,0 @@ -#! /bin/sh -# mkinstalldirs --- make directory hierarchy -# Author: Noah Friedman -# Created: 1993-05-16 -# Public domain - -# $Id$ - -errstatus=0 - -for file -do - set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` - shift - - pathcomp= - for d - do - pathcomp="$pathcomp$d" - case "$pathcomp" in - -* ) pathcomp=./$pathcomp ;; - esac - - if test ! -d "$pathcomp"; then - echo "mkdir $pathcomp" - - mkdir "$pathcomp" || lasterr=$? - - if test ! -d "$pathcomp"; then - errstatus=$lasterr - fi - fi - - pathcomp="$pathcomp/" - done -done - -exit $errstatus - -# mkinstalldirs ends here diff --git a/barcode-0.98/msi.c b/barcode-0.98/msi.c deleted file mode 100644 index 77a373b2..00000000 --- a/barcode-0.98/msi.c +++ /dev/null @@ -1,155 +0,0 @@ -/* - * msi.c -- encoding for MSI-Plessey - * - * Copyright (c) 2000 Leonid A. Broukhis (leob@mailcom.com) - * - * 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 2 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, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. - */ - -#include -#include -#include -#include -#include - -#include "barcode.h" - - -/* Patterns */ -static char *patterns[] = { "13", "31" }; - -static char *fillers[] = { "031", "131" }; - -static int width = 16 /* each character uses 4 patterns */, - startpos = 6 /* length of the first filler */; - -/* - * Check that the text can be encoded. Returns 0 or -1. - */ -int Barcode_msi_verify(unsigned char *text) -{ - int i; - - if (!strlen(text)) - return -1; - for (i=0; text[i]; i++) { - if (!isdigit(text[i])) - return -1; - } - return 0; -} - -static int add_one(char *ptr, int code) -{ - sprintf(ptr, "%s%s%s%s", - patterns[(code >> 3) & 1], - patterns[(code >> 2) & 1], - patterns[(code >> 1) & 1], - patterns[code & 1]); - return 0; -} - -/* - * The encoding functions fills the "partial" and "textinfo" fields. - * Lowercase chars are converted to uppercase - */ -int Barcode_msi_encode(struct Barcode_Item *bc) -{ - static char *text; - static char *partial; /* dynamic */ - static char *textinfo; /* dynamic */ - char *ptr, *textptr; - int i, code, textpos, usesum, checksum = 0; - - if (bc->partial) - free(bc->partial); - if (bc->textinfo) - free(bc->textinfo); - bc->partial = bc->textinfo = NULL; /* safe */ - - if (!bc->encoding) - bc->encoding = strdup("msi"); - - if ((bc->flags & BARCODE_NO_CHECKSUM)) - usesum = 0; - else - usesum = 1; - - text = bc->ascii; - - /* the partial code is head + 8 * (text + check) + tail + margin + term. */ - partial = malloc( 3 + 8 * (strlen(text) + 1) + 3 + 2 ); - if (!partial) { - bc->error = errno; - return -1; - } - - /* the text information is at most "nnn:fff:c " * strlen +term */ - textinfo = malloc(10*strlen(text) + 2); - if (!textinfo) { - bc->error = errno; - free(partial); - return -1; - } - - strcpy(partial, fillers[0]); - ptr = partial + strlen(partial); - textptr = textinfo; - textpos = startpos; - - for (i=0; ipartial = partial; - bc->textinfo = textinfo; - - return 0; -} diff --git a/barcode-0.98/pcl.c b/barcode-0.98/pcl.c deleted file mode 100644 index d5ec097a..00000000 --- a/barcode-0.98/pcl.c +++ /dev/null @@ -1,200 +0,0 @@ -/* - * pcl.c -- printing the "partial" bar encoding in PCL format - * - * Copyright (c) 1999 Alessandro Rubini (rubini@gnu.org) - * Copyright (c) 1999 Prosa Srl. (prosa@prosa.it) - * Copyright (c) 2001 Andrea Scopece (a.scopece@tin.it) - * - * 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 2 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, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. - */ - -#include -#include -#include -#include -#include - -#include "barcode.h" - -#define SHRINK_AMOUNT 0.15 /* shrink the bars to account for ink spreading */ - - -/* - * How do the "partial" and "textinfo" strings work? See file "ps.c" - */ - - -int Barcode_pcl_print(struct Barcode_Item *bc, FILE *f) -{ - int i, j, k, barlen; - double f1, f2, fsav=0; - int mode = '-'; /* text below bars */ - double scalef=1, xpos, x0, y0, yr; - unsigned char *ptr; - unsigned char c; - - char font_id[6]; /* default font, should be "scalable" */ - /* 0 Line printer, use on older LJet II, isn't scalable */ - /* 4148 Univers, use on LJet III series, and Lj 4L, 5L */ - /* 16602 Arial, default LJ family 4, 5, 6, Color, Djet */ - - if (!bc->partial || !bc->textinfo) { - bc->error = EINVAL; - return -1; - } - - /* - * Maybe this first part can be made common to several printing back-ends, - * we'll see how that works when other ouput engines are added - */ - - /* First, calculate barlen */ - barlen = bc->partial[0] - '0'; - for (ptr = bc->partial+1; *ptr; ptr++) - if (isdigit(*ptr)) - barlen += (*ptr - '0'); - else if (islower(*ptr)) - barlen += (*ptr - 'a'+1); - - /* The scale factor depends on bar length */ - if (!bc->scalef) { - if (!bc->width) bc->width = barlen; /* default */ - scalef = bc->scalef = (double)bc->width / (double)barlen; - } - - /* The width defaults to "just enough" */ - if (!bc->width) bc->width = barlen * scalef +1; - - /* But it can be too small, in this case enlarge and center the area */ - if (bc->width < barlen * scalef) { - int wid = barlen * scalef + 1; - bc->xoff -= (wid - bc->width)/2 ; - bc->width = wid; - /* Can't extend too far on the left */ - if (bc->xoff < 0) { - bc->width += -bc->xoff; - bc->xoff = 0; - } - } - - /* The height defaults to 80 points (rescaled) */ - if (!bc->height) bc->height = 80 * scalef; - -#if 0 - /* If too small (5 + text), enlarge and center */ - i = 5 + 10 * ((bc->flags & BARCODE_NO_ASCII)==0); - if (bc->height < i * scalef ) { - int hei = i * scalef; - bc->yoff -= (hei-bc->height)/2; - bc->height = hei; - if (bc->yoff < 0) { - bc->height += -bc->yoff; - bc->yoff = 0; - } - } -#else - /* If too small (5 + text), reduce the scale factor and center */ - i = 5 + 10 * ((bc->flags & BARCODE_NO_ASCII)==0); - if (bc->height < i * scalef ) { - double scaleg = ((double)bc->height) / i; - int wid = bc->width * scaleg / scalef; - bc->xoff += (bc->width - wid)/2; - bc->width = wid; - scalef = scaleg; - } -#endif - - /* - * deal with PCL output - */ - - xpos = bc->margin + (bc->partial[0]-'0') * scalef; - for (ptr = bc->partial+1, i=1; *ptr; ptr++, i++) { - /* special cases: '+' and '-' */ - if (*ptr == '+' || *ptr == '-') { - mode = *ptr; /* don't count it */ i++; continue; - } - - /* j is the width of this bar/space */ - if (isdigit (*ptr)) j = *ptr-'0'; - else j = *ptr-'a'+1; - if (i%2) { /* bar */ - x0 = bc->xoff + xpos; - y0 = bc->yoff + bc->margin; - yr = bc->height; - if (!(bc->flags & BARCODE_NO_ASCII)) { /* leave space for text */ - if (mode == '-') { - /* text below bars: 10 points or five points */ - yr -= (isdigit(*ptr) ? 10 : 5) * scalef; - } else { /* '+' */ - /* text above bars: 10 or 0 from bottom, and 10 from top */ - y0 += (isdigit(*ptr) ? 10 : 0) * scalef; - yr -= (isdigit(*ptr) ? 20 : 10) * scalef; - } - } - - fprintf(f,"%c&a%.0fH", 27, x0 * 10.0); - fprintf(f,"%c&a%.0fV", 27, y0 * 10.0); - fprintf(f,"%c*c%.0fH", 27, ((j*scalef)-SHRINK_AMOUNT) * 10.0); - fprintf(f,"%c*c%.0fV", 27, yr * 10.0); - fprintf(f,"%c*c0P\n", 27); - } - xpos += j * scalef; - } - - /* the text */ - - mode = '-'; /* reinstantiate default */ - if (!(bc->flags & BARCODE_NO_ASCII)) { - k=0; /* k is the "previous font size" */ - for (ptr = bc->textinfo; ptr; ptr = strchr(ptr, ' ')) { - while (*ptr == ' ') ptr++; - if (!*ptr) break; - if (*ptr == '+' || *ptr == '-') { - mode = *ptr; continue; - } - if (sscanf(ptr, "%lf:%lf:%c", &f1, &f2, &c) != 3) { - fprintf(stderr, "barcode: impossible data: %s\n", ptr); - continue; - } - - /* select a Scalable Font */ - - if (fsav != f2) - { - if ((bc->flags & BARCODE_OUT_PCL_III) == BARCODE_OUT_PCL_III) - { strcpy(font_id, "4148"); /* font Univers */ - } - else - { strcpy(font_id, "16602"); /* font Arial */ - } - - fprintf(f,"%c(8U%c(s1p%5.2fv0s0b%sT", 27, 27, f2 * scalef, font_id); - } - fsav = f2; - - fprintf(f,"%c&a%.0fH", 27, (bc->xoff + f1 * scalef + bc->margin) * 10.0); - fprintf(f,"%c&a%.0fV", 27, - mode != '-' - ? ((double)bc->yoff + bc->margin + 8*scalef) * 10.0 - : ((double)bc->yoff + bc->margin + bc->height ) * 10.0); - - fprintf(f, "%c", c); - } - - } - - return 0; -} diff --git a/barcode-0.98/plessey.c b/barcode-0.98/plessey.c deleted file mode 100644 index ec471005..00000000 --- a/barcode-0.98/plessey.c +++ /dev/null @@ -1,164 +0,0 @@ -/* - * plessey.c -- encoding for Plessey - * - * Copyright (c) 2000 Leonid A. Broukhis (leob@mailcom.com) - * - * 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 2 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, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. - */ - -#include -#include -#include -#include -#include - -#include "barcode.h" - -static char * patterns[] = { "13", "31" }; - -/* this is ordered in decades to simplify encoding */ -static char alphabet[] = - "0123456789" "ABCDEF"; - -/* stop sequence may be 231311313 (barcodemill.com) */ -static char *fillers[] = { "031311331", "331311313" }; - -static int width = 16, startpos = 16; - -/* - * Check that the text can be encoded. Returns 0 or -1. - * If it's all lowecase convert to uppercase and accept it - */ -int Barcode_pls_verify(unsigned char *text) -{ - int i, upper = 0, lower = 0; - - if (!strlen(text)) - return -1; - for (i=0; text[i]; i++) { - if (!strchr(alphabet,toupper(text[i]))) - return -1; - if (isupper(text[i])) upper++; - if (islower(text[i])) lower++; - } - if (upper && lower) - return -1; - return 0; -} - -static int add_one(char *ptr, int code) -{ - sprintf(ptr, "%s%s%s%s", - patterns[code & 1], - patterns[(code >> 1) & 1], - patterns[(code >> 2) & 1], - patterns[(code >> 3) & 1] - ); - return 0; -} - -/* - * The encoding functions fills the "partial" and "textinfo" fields. - * Lowercase chars are converted to uppercase - */ -int Barcode_pls_encode(struct Barcode_Item *bc) -{ - static char *text; - static char *partial; /* dynamic */ - static char *textinfo; /* dynamic */ - char *c, *ptr, *textptr; - unsigned char *checkptr; - int i, code, textpos; - static char check[9] = {1,1,1,1,0,1,0,0,1}; - if (bc->partial) - free(bc->partial); - if (bc->textinfo) - free(bc->textinfo); - bc->partial = bc->textinfo = NULL; /* safe */ - - if (!bc->encoding) - bc->encoding = strdup("plessey"); - - text = bc->ascii; - if (!text) { - bc->error = EINVAL; - return -1; - } - /* the partial code is 8 * (head + text + check + tail) + margin + term. */ - partial = malloc( (strlen(text) + 4) * 8 + 3); - checkptr = calloc (1, strlen(text) * 4 + 8); - - if (!partial || !checkptr) { - if (partial) free(partial); - if (checkptr) free(checkptr); - bc->error = errno; - return -1; - } - - /* the text information is at most "nnn:fff:c " * strlen +term */ - textinfo = malloc(10*strlen(text) + 2); - if (!textinfo) { - bc->error = errno; - free(partial); - return -1; - } - - strcpy(partial, fillers[0]); - ptr = partial + strlen(partial); - textptr = textinfo; - textpos = startpos; - - for (i=0; ierror = EINVAL; /* impossible if text is verified */ - free(partial); - free(textinfo); - return -1; - } - code = c - alphabet; - add_one(ptr, code); - sprintf(textptr, "%i:12:%c ", textpos, toupper(text[i])); - - textpos += width; /* width of each code */ - textptr += strlen(textptr); - ptr += strlen(ptr); - checkptr[4*i] = code & 1; - checkptr[4*i+1] = (code >> 1) & 1; - checkptr[4*i+2] = (code >> 2) & 1; - checkptr[4*i+3] = (code >> 3) & 1; - } - /* The CRC checksum is required */ - for (i=0; i < 4*strlen(text); i++) { - int j; - if (checkptr[i]) - for (j = 0; j < 9; j++) - checkptr[i+j] ^= check[j]; - } - for (i = 0; i < 8; i++) { - sprintf(ptr, patterns[checkptr[strlen(text) * 4 + i]]); - ptr += 2; - } - fprintf(stderr, "CRC: "); - for (i = 0; i < 8; i++) { - fputc('0' + checkptr[strlen(text) * 4 + i], stderr); - } - fputc('\n', stderr); - strcpy(ptr, fillers[1]); - bc->partial = partial; - bc->textinfo = textinfo; - - return 0; -} diff --git a/barcode-0.98/ps.c b/barcode-0.98/ps.c deleted file mode 100644 index 35917517..00000000 --- a/barcode-0.98/ps.c +++ /dev/null @@ -1,272 +0,0 @@ -/* - * ps.c -- printing the "partial" bar encoding - * - * Copyright (c) 1999 Alessandro Rubini (rubini@gnu.org) - * Copyright (c) 1999 Prosa Srl. (prosa@prosa.it) - * - * 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 2 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, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. - */ - -#include -#include -#include -#include -#include - -#include "barcode.h" - -#define SHRINK_AMOUNT 0.15 /* shrink the bars to account for ink spreading */ - - -/* - * How do the "partial" and "textinfo" strings work? - * - * The first char in "partial" tells how much extra space to add to the - * left of the bars. For EAN-13, it is used to leave space to print the - * first digit, other codes may have '0' for no-extra-space-needed. - * - * The next characters are alternating bars and spaces, as multiples - * of the base dimension which is 1 unless the code is - * rescaled. Rescaling is calculated as the ratio from the requested - * width and the calculated width. Digits represent bar/space - * dimensions. Lower-case letters represent those bars that should - * extend lower than the others: 'a' is equivalent to '1', 'b' is '2' and - * so on. - * - * The "textinfo" string is made up of fields "%lf:%lf:%c" separated by - * blank space. The first integer is the x position of the character, - * the second is the font size (before rescaling) and the char item is - * the charcter to be printed. - * - * Both the "partial" and "textinfo" strings may include "-" or "+" as - * special characters (in "textinfo" the char should be a standalone - * word). They state where the text should be printed: below the bars - * ("-", default) or above the bars. This is used, for example, to - * print the add-5 and add-2 codes to the right of UPC or EAN codes - * (the add-5 extension is mostly used in ISBN codes. - */ - - -int Barcode_ps_print(struct Barcode_Item *bc, FILE *f) -{ - int i, j, k, barlen, printable=1; - double f1, f2, fsav=0; - int mode = '-'; /* text below bars */ - double scalef=1, xpos, x0, y0, yr; - unsigned char *ptr; - unsigned char c; - - if (!bc->partial || !bc->textinfo) { - bc->error = EINVAL; - return -1; - } - - - /* - * Maybe this first part can be made common to several printing back-ends, - * we'll see how that works when other ouput engines are added - */ - - /* First, calculate barlen */ - barlen = bc->partial[0] - '0'; - for (ptr = bc->partial+1; *ptr; ptr++) - if (isdigit(*ptr)) - barlen += (*ptr - '0'); - else if (islower(*ptr)) - barlen += (*ptr - 'a'+1); - - /* The scale factor depends on bar length */ - if (!bc->scalef) { - if (!bc->width) bc->width = barlen; /* default */ - scalef = bc->scalef = (double)bc->width / (double)barlen; - } - - /* The width defaults to "just enough" */ - if (!bc->width) bc->width = barlen * scalef +1; - - /* But it can be too small, in this case enlarge and center the area */ - if (bc->width < barlen * scalef) { - int wid = barlen * scalef + 1; - bc->xoff -= (wid - bc->width)/2 ; - bc->width = wid; - /* Can't extend too far on the left */ - if (bc->xoff < 0) { - bc->width += -bc->xoff; - bc->xoff = 0; - } - } - - /* The height defaults to 80 points (rescaled) */ - if (!bc->height) bc->height = 80 * scalef; - -#if 0 - /* If too small (5 + text), enlarge and center */ - i = 5 + 10 * ((bc->flags & BARCODE_NO_ASCII)==0); - if (bc->height < i * scalef ) { - int hei = i * scalef; - bc->yoff -= (hei-bc->height)/2; - bc->height = hei; - if (bc->yoff < 0) { - bc->height += -bc->yoff; - bc->yoff = 0; - } - } -#else - /* If too small (5 + text), reduce the scale factor and center */ - i = 5 + 10 * ((bc->flags & BARCODE_NO_ASCII)==0); - if (bc->height < i * scalef ) { - double scaleg = ((double)bc->height) / i; - int wid = bc->width * scaleg / scalef; - bc->xoff += (bc->width - wid)/2; - bc->width = wid; - scalef = scaleg; - } -#endif - - /* - * Ok, then deal with actual ps (eps) output - */ - - if (!(bc->flags & BARCODE_OUT_NOHEADERS)) { /* spit a header first */ - if (bc->flags & BARCODE_OUT_EPS) - fprintf(f, "%%!PS-Adobe-2.0 EPSF-1.2\n"); - else - fprintf(f, "%%!PS-Adobe-2.0\n"); - fprintf(f, "%%%%Creator: libbarcode\n"); - if (bc->flags & BARCODE_OUT_EPS) { - fprintf(f, "%%%%BoundingBox: %i %i %i %i\n", - bc->xoff, - bc->yoff, - bc->xoff + bc->width + 2* bc->margin, - bc->yoff + bc->height + 2* bc->margin); - } - fprintf(f, "%%%%EndComments\n"); - if (bc->flags & BARCODE_OUT_PS) { - fprintf(f, "%%%%EndProlog\n\n"); - fprintf(f, "%%%%Page: 1 1\n\n"); - } - } - - /* Print some informative comments */ - for (i=0; bc->ascii[i]; i++) - if (bc->ascii[i] < ' ') - printable = 0; - - fprintf(f,"%% Printing barcode for \"%s\", scaled %5.2f", - printable ? bc->ascii : "", scalef); - if (bc->encoding) - fprintf(f,", encoded using \"%s\"",bc->encoding); - fprintf(f, "\n"); - fprintf(f,"%% The space/bar succession is represented " - "by the following widths (space first):\n" - "%% "); - for (i=0; ipartial); i++) { - unsigned char c = bc->partial[i]; - if (isdigit(c)) putc(c, f); - if (islower(c)) putc(c-'a'+'1', f); - if (isupper(c)) putc(c-'A'+'1', f); - } - /* open array for "forall" */ - fprintf(f, "\n[\n%% height xpos ypos width" - " height xpos ypos width\n"); - - xpos = bc->margin + (bc->partial[0]-'0') * scalef; - for (ptr = bc->partial+1, i=1; *ptr; ptr++, i++) { - /* special cases: '+' and '-' */ - if (*ptr == '+' || *ptr == '-') { - mode = *ptr; /* don't count it */ i++; continue; - } - /* j is the width of this bar/space */ - if (isdigit (*ptr)) j = *ptr-'0'; - else j = *ptr-'a'+1; - if (i%2) { /* bar */ - x0 = bc->xoff + xpos + (j*scalef)/2; - y0 = bc->yoff + bc->margin; - yr = bc->height; - if (!(bc->flags & BARCODE_NO_ASCII)) { /* leave space for text */ - if (mode == '-') { - /* text below bars: 10 points or five points */ - y0 += (isdigit(*ptr) ? 10 : 5) * scalef; - yr -= (isdigit(*ptr) ? 10 : 5) * scalef; - } else { /* '+' */ - /* text above bars: 10 or 0 from bottom, and 10 from top */ - y0 += (isdigit(*ptr) ? 10 : 0) * scalef; - yr -= (isdigit(*ptr) ? 20 : 10) * scalef; - } - } - /* Define an array and then use "forall" (Hans Schou) */ - fprintf(f," [%5.2f %6.2f %6.2f %5.2f]%s", - yr, x0, y0, (j * scalef) - SHRINK_AMOUNT, - i%4 == 1 ? " " : "\n"); - } - xpos += j * scalef; - } - fprintf(f,"\n]\t{ {} forall setlinewidth moveto 0 exch rlineto stroke} " - "bind forall\n"); - - /* Then, the text */ - - mode = '-'; /* reinstantiate default */ - if (!(bc->flags & BARCODE_NO_ASCII)) { - fprintf(f, "[\n%% char xpos ypos fontsize\n"); - k=0; /* k is the "previous font size" */ - for (ptr = bc->textinfo; ptr; ptr = strchr(ptr, ' ')) { - while (*ptr == ' ') ptr++; - if (!*ptr) break; - if (*ptr == '+' || *ptr == '-') { - mode = *ptr; continue; - } - if (sscanf(ptr, "%lf:%lf:%c", &f1, &f2, &c) != 3) { - fprintf(stderr, "barcode: impossible data: %s\n", ptr); - continue; - } - - fprintf(f, " [("); - /* Both the backslash and the two parens are special */ - if (c=='\\' || c==')' || c=='(') - fprintf(f, "\\%c) ", c); - else - fprintf(f, "%c) ", c); - fprintf(f, "%6.2f %6.2f %5.2f]\n", - bc->xoff + f1 * scalef + bc->margin, - mode == '-' - ? (double)bc->yoff + bc->margin - : (double)bc->yoff + bc->margin+bc->height - 8*scalef, - fsav == f2 ? 0.0 : f2 * scalef); - fsav = f2; - } - fprintf(f,"] { {} forall dup 0.00 ne {\n\t" - "/Helvetica findfont exch scalefont setfont\n" - " } {pop} ifelse\n" - " moveto show} bind forall\n"); - - - } - - fprintf(f,"%% End barcode for \"%s\"\n\n", - printable ? bc->ascii : ""); - - if (!(bc->flags & BARCODE_OUT_NOHEADERS)) { - if (bc->flags & BARCODE_OUT_PS) { - fprintf(f,"showpage\n"); - fprintf(f, "%%%%Trailer\n\n"); - } - } - return 0; -} - - - - diff --git a/barcode-0.98/sample.c b/barcode-0.98/sample.c deleted file mode 100644 index 46e62058..00000000 --- a/barcode-0.98/sample.c +++ /dev/null @@ -1,98 +0,0 @@ -#include -#include - -#include "barcode.h" - -int main(int argc, char **argv) -{ - int ps = 1, pcl = 0, oflags; - if (argc == 2 && !strcmp(argv[1],"-P")) { - ps = 0; pcl = 1; argc=1; - } - if (argc>2) { - fprintf(stderr, "%s: use \"%s\" for postscript or \"%s -P\" for PCL\n", - argv[0], argv[0], argv[0]); - exit(1); - } - if (pcl) { - oflags = BARCODE_OUT_PCL; - } else { - oflags = BARCODE_OUT_PS | BARCODE_OUT_NOHEADERS; - printf("%%!PS-Adobe-2.0\n"); - printf("%%%%Creator: barcode sample program\n"); - printf("%%%%EndComments\n"); - printf("%%%%EndProlog\n\n"); - printf("%%%%Page: 1 1\n\n"); - } - /* Print a few barcodes in several places in the page */ - - /* default size, bottom left */ - Barcode_Encode_and_Print("800894002700",stdout, 0, 0, 40, 40, - BARCODE_EAN | oflags); - - /* smaller */ - Barcode_Encode_and_Print("800894002700",stdout, 70, 50, 160, 55, - BARCODE_EAN | oflags); - - /* smallest */ - Barcode_Encode_and_Print("800894002700",stdout, 40, 30, 270, 70, - BARCODE_EAN | oflags); - - /* A bigger all-0 */ - Barcode_Encode_and_Print("000000000000",stdout, 170, 0, 40, 160, - BARCODE_EAN | oflags); - - /* Still bigger all-0 (but UPC, this time) */ - Barcode_Encode_and_Print("00000000000",stdout, 250, 0, 270, 160, - BARCODE_UPC | oflags); - - /* A few code-39 ones */ - Barcode_Encode_and_Print("silly code",stdout, 0, 0, 40, 320, - BARCODE_39 | oflags); - Barcode_Encode_and_Print("SAMPLE CODES",stdout, 100, 30, 400, 80, - BARCODE_39 | oflags); - - /* ISBN with add-5 */ - Barcode_Encode_and_Print("1-56592-292-1 90000",stdout, 0, 0, 40, 430, - BARCODE_ISBN | oflags); - - /* UPC with add-2 */ - Barcode_Encode_and_Print("07447084452 07",stdout, 0, 0, 300, 410, - BARCODE_UPC | oflags); - - /* code 128-C */ - Barcode_Encode_and_Print("12345678900123456789",stdout, 0, 0, 40, 530, - BARCODE_128C | oflags); - - /* and my data as code-128B autodetected */ - Barcode_Encode_and_Print("RBNLSN68T11E897W",stdout, 0, 60, 240, 510, - oflags); - /* same as code-39, forced */ - Barcode_Encode_and_Print("RBNLSN68T11E897W",stdout, 0, 60, 240, 590, - BARCODE_NO_CHECKSUM | BARCODE_39 | oflags); - - /* one interleaved 2 of 5 */ - Barcode_Encode_and_Print("0123456789",stdout, 0, 0, 40, 620, - BARCODE_I25 | oflags); - - /* upc-e and ean-8 (autotected based on code size) */ - Barcode_Encode_and_Print("012345",stdout, 0, 0, 50, 720, oflags); - Barcode_Encode_and_Print("0123456",stdout, 0, 0, 160, 720, oflags); - - - - if (pcl) { - printf("\f"); - } else { - printf("\nshowpage\n"); - printf("%%%%Trailer\n\n"); - } - return 0; -} - - - - - - - diff --git a/config.h.in b/config.h.in index 9a3a81a5..15109265 100644 --- a/config.h.in +++ b/config.h.in @@ -1,4 +1,4 @@ -/* config.h.in. Generated from configure.in by autoheader. */ +/* config.h.in. Generated from configure.ac by autoheader. */ /* always defined to indicate that i18n is enabled */ #undef ENABLE_NLS @@ -24,9 +24,21 @@ /* Define if your file defines LC_MESSAGES. */ #undef HAVE_LC_MESSAGES +/* Define to 1 for GNU Barcode support */ +#undef HAVE_LIBBARCODE + /* Define to 1 for EDS support */ #undef HAVE_LIBEBOOK +/* Define to 1 for IEC 16022 support */ +#undef HAVE_LIBIEC16022 + +/* Define to 1 for QR code support */ +#undef HAVE_LIBQRENCODE + +/* Define to 1 for Zint Barcode support */ +#undef HAVE_LIBZINT + /* Define to 1 if you have the header file. */ #undef HAVE_LOCALE_H @@ -73,6 +85,9 @@ /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME +/* Define to the home page for this package. */ +#undef PACKAGE_URL + /* Define to the version of this package. */ #undef PACKAGE_VERSION diff --git a/configure b/configure index 041da4d9..60830ff4 100755 --- a/configure +++ b/configure @@ -1,20 +1,24 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.63 for glabels 2.2.8. +# Generated by GNU Autoconf 2.68 for glabels 3.0.0. +# +# Report bugs to . # -# Report bugs to . # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -# 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software +# Foundation, Inc. +# +# # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. -## --------------------- ## -## M4sh Initialization. ## -## --------------------- ## +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which @@ -22,23 +26,15 @@ if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else - case `(set -o) 2>/dev/null` in - *posix*) set -o posix ;; + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; esac - fi - - -# PATH needs CR -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - as_nl=' ' export as_nl @@ -46,7 +42,13 @@ export as_nl as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else @@ -57,7 +59,7 @@ else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; - case $arg in + case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; @@ -80,13 +82,6 @@ if test "${PATH_SEPARATOR+set}" != set; then } fi -# Support unset when possible. -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then - as_unset=unset -else - as_unset=false -fi - # IFS # We need space, tab and new line, in precisely that order. Quoting is @@ -96,15 +91,16 @@ fi IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. -case $0 in +as_myself= +case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break -done + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done IFS=$as_save_IFS ;; @@ -116,12 +112,16 @@ if test "x$as_myself" = x; then fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - { (exit 1); exit 1; } + exit 1 fi -# Work around bugs in pre-3.0 UWIN ksh. -for as_var in ENV MAIL MAILPATH -do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' @@ -133,7 +133,265 @@ export LC_ALL LANGUAGE=C export LANGUAGE -# Required to use basename. +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +if test "x$CONFIG_SHELL" = x; then + as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else + case \`(set -o) 2>/dev/null\` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi +" + as_required="as_fn_return () { (exit \$1); } +as_fn_success () { as_fn_return 0; } +as_fn_failure () { as_fn_return 1; } +as_fn_ret_success () { return 0; } +as_fn_ret_failure () { return 1; } + +exitcode=0 +as_fn_success || { exitcode=1; echo as_fn_success failed.; } +as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } +as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } +as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } +if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : + +else + exitcode=1; echo positional parameters were not saved. +fi +test x\$exitcode = x0 || exit 1" + as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO + as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO + eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && + test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 + + test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( + ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO + ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO + PATH=/empty FPATH=/empty; export PATH FPATH + test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ + || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1 +test \$(( 1 + 1 )) = 2 || exit 1" + if (eval "$as_required") 2>/dev/null; then : + as_have_required=yes +else + as_have_required=no +fi + if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : + +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_found=false +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + as_found=: + case $as_dir in #( + /*) + for as_base in sh bash ksh sh5; do + # Try only shells that exist, to save several forks. + as_shell=$as_dir/$as_base + if { test -f "$as_shell" || test -f "$as_shell.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : + CONFIG_SHELL=$as_shell as_have_required=yes + if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : + break 2 +fi +fi + done;; + esac + as_found=false +done +$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : + CONFIG_SHELL=$SHELL as_have_required=yes +fi; } +IFS=$as_save_IFS + + + if test "x$CONFIG_SHELL" != x; then : + # We cannot yet assume a decent shell, so we have to provide a + # neutralization value for shells without unset; and this also + # works around shells that cannot unset nonexistent variables. + # Preserve -v and -x to the replacement shell. + BASH_ENV=/dev/null + ENV=/dev/null + (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV + export CONFIG_SHELL + case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; + esac + exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"} +fi + + if test x$as_have_required = xno; then : + $as_echo "$0: This script requires a shell more modern than all" + $as_echo "$0: the shells that I found on your system." + if test x${ZSH_VERSION+set} = xset ; then + $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" + $as_echo "$0: be upgraded to zsh 4.3.4 or later." + else + $as_echo "$0: Please tell bug-autoconf@gnu.org and +$0: http://bugzilla.gnome.org/enter_bug.cgi?product=glabels +$0: about your system, including any error possibly output +$0: before this message. Then install a modern shell, or +$0: manually run the script under such a shell if you do +$0: have one." + fi + exit 1 +fi +fi +fi +SHELL=${CONFIG_SHELL-/bin/sh} +export SHELL +# Unset more variables known to interfere with behavior of common tools. +CLICOLOR_FORCE= GREP_OPTIONS= +unset CLICOLOR_FORCE GREP_OPTIONS + +## --------------------- ## +## M4sh Shell Functions. ## +## --------------------- ## +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} # as_fn_mkdir_p +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} # as_fn_error + if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr @@ -147,8 +405,12 @@ else as_basename=false fi +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi -# Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ @@ -168,564 +430,129 @@ $as_echo X/"$0" | } s/.*/./; q'` -# CDPATH. -$as_unset CDPATH +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits -if test "x$CONFIG_SHELL" = x; then - if (eval ":") 2>/dev/null; then - as_have_required=yes -else - as_have_required=no -fi + as_lineno_1=$LINENO as_lineno_1a=$LINENO + as_lineno_2=$LINENO as_lineno_2a=$LINENO + eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && + test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { + # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } - if test $as_have_required = yes && (eval ": -(as_func_return () { - (exit \$1) -} -as_func_success () { - as_func_return 0 -} -as_func_failure () { - as_func_return 1 -} -as_func_ret_success () { - return 0 -} -as_func_ret_failure () { - return 1 + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit } -exitcode=0 -if as_func_success; then - : -else - exitcode=1 - echo as_func_success failed. -fi +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in #((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac -if as_func_failure; then - exitcode=1 - echo as_func_failure succeeded. +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null fi - -if as_func_ret_success; then - : +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -p' + fi else - exitcode=1 - echo as_func_ret_success failed. + as_ln_s='cp -p' fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null -if as_func_ret_failure; then - exitcode=1 - echo as_func_ret_failure succeeded. +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false fi -if ( set x; as_func_ret_success y && test x = \"\$1\" ); then - : +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' else - exitcode=1 - echo positional parameters were not saved. + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in #( + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' fi +as_executable_p=$as_test_x -test \$exitcode = 0) || { (exit 1); exit 1; } +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" -( - as_lineno_1=\$LINENO - as_lineno_2=\$LINENO - test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" && - test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; } -") 2> /dev/null; then - : -else - as_candidate_shells= - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - case $as_dir in - /*) - for as_base in sh bash ksh sh5; do - as_candidate_shells="$as_candidate_shells $as_dir/$as_base" - done;; - esac -done -IFS=$as_save_IFS +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" +SHELL=${CONFIG_SHELL-/bin/sh} - for as_shell in $as_candidate_shells $SHELL; do - # Try only shells that exist, to save several forks. - if { test -f "$as_shell" || test -f "$as_shell.exe"; } && - { ("$as_shell") 2> /dev/null <<\_ASEOF -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in - *posix*) set -o posix ;; -esac - -fi - - -: -_ASEOF -}; then - CONFIG_SHELL=$as_shell - as_have_required=yes - if { "$as_shell" 2> /dev/null <<\_ASEOF -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in - *posix*) set -o posix ;; -esac - -fi - - -: -(as_func_return () { - (exit $1) -} -as_func_success () { - as_func_return 0 -} -as_func_failure () { - as_func_return 1 -} -as_func_ret_success () { - return 0 -} -as_func_ret_failure () { - return 1 -} - -exitcode=0 -if as_func_success; then - : -else - exitcode=1 - echo as_func_success failed. -fi - -if as_func_failure; then - exitcode=1 - echo as_func_failure succeeded. -fi - -if as_func_ret_success; then - : -else - exitcode=1 - echo as_func_ret_success failed. -fi - -if as_func_ret_failure; then - exitcode=1 - echo as_func_ret_failure succeeded. -fi - -if ( set x; as_func_ret_success y && test x = "$1" ); then - : -else - exitcode=1 - echo positional parameters were not saved. -fi - -test $exitcode = 0) || { (exit 1); exit 1; } - -( - as_lineno_1=$LINENO - as_lineno_2=$LINENO - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; } - -_ASEOF -}; then - break -fi - -fi - - done - - if test "x$CONFIG_SHELL" != x; then - for as_var in BASH_ENV ENV - do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var - done - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} -fi - - - if test $as_have_required = no; then - echo This script requires a shell more modern than all the - echo shells that I found on your system. Please install a - echo modern shell, or manually run the script under such a - echo shell if you do have one. - { (exit 1); exit 1; } -fi - - -fi - -fi - - - -(eval "as_func_return () { - (exit \$1) -} -as_func_success () { - as_func_return 0 -} -as_func_failure () { - as_func_return 1 -} -as_func_ret_success () { - return 0 -} -as_func_ret_failure () { - return 1 -} - -exitcode=0 -if as_func_success; then - : -else - exitcode=1 - echo as_func_success failed. -fi - -if as_func_failure; then - exitcode=1 - echo as_func_failure succeeded. -fi - -if as_func_ret_success; then - : -else - exitcode=1 - echo as_func_ret_success failed. -fi - -if as_func_ret_failure; then - exitcode=1 - echo as_func_ret_failure succeeded. -fi - -if ( set x; as_func_ret_success y && test x = \"\$1\" ); then - : -else - exitcode=1 - echo positional parameters were not saved. -fi - -test \$exitcode = 0") || { - echo No shell found that supports shell functions. - echo Please tell bug-autoconf@gnu.org about your system, - echo including any error possibly output before this message. - echo This can help us improve future autoconf versions. - echo Configuration will now proceed without shell functions. -} - - - - as_lineno_1=$LINENO - as_lineno_2=$LINENO - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { - - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO - # uniformly replaced by the line number. The first 'sed' inserts a - # line-number line after each line using $LINENO; the second 'sed' - # does the real work. The second script uses 'N' to pair each - # line-number line with the line containing $LINENO, and appends - # trailing '-' during substitution so that $LINENO is not a special - # case at line end. - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the - # scripts with optimization help from Paolo Bonzini. Blame Lee - # E. McMahon (1931-1989) for sed's syntax. :-) - sed -n ' - p - /[$]LINENO/= - ' <$as_myself | - sed ' - s/[$]LINENO.*/&-/ - t lineno - b - :lineno - N - :loop - s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ - t loop - s/-\n.*// - ' >$as_me.lineno && - chmod +x "$as_me.lineno" || - { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 - { (exit 1); exit 1; }; } - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensitive to this). - . "./$as_me.lineno" - # Exit status is that of the last command. - exit -} - - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in --n*) - case `echo 'x\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - *) ECHO_C='\c';; - esac;; -*) - ECHO_N='-n';; -esac -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir 2>/dev/null -fi -if (echo >conf$$.file) 2>/dev/null; then - if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' - elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln - else - as_ln_s='cp -p' - fi -else - as_ln_s='cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - -if mkdir -p . 2>/dev/null; then - as_mkdir_p=: -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - - - -# Check that we are running under the correct shell. -SHELL=${CONFIG_SHELL-/bin/sh} - -case X$lt_ECHO in -X*--fallback-echo) - # Remove one level of quotation (which was required for Make). - ECHO=`echo "$lt_ECHO" | sed 's,\\\\\$\\$0,'$0','` - ;; -esac - -ECHO=${lt_ECHO-echo} -if test "X$1" = X--no-reexec; then - # Discard the --no-reexec flag, and continue. - shift -elif test "X$1" = X--fallback-echo; then - # Avoid inline document here, it may be left over - : -elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then - # Yippee, $ECHO works! - : -else - # Restart under the correct shell. - exec $SHELL "$0" --no-reexec ${1+"$@"} -fi - -if test "X$1" = X--fallback-echo; then - # used as fallback echo - shift - cat <<_LT_EOF -$* -_LT_EOF - exit 0 -fi - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -if test -z "$lt_ECHO"; then - if test "X${echo_test_string+set}" != Xset; then - # find a string as large as possible, as long as the shell can cope with it - for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do - # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... - if { echo_test_string=`eval $cmd`; } 2>/dev/null && - { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null - then - break - fi - done - fi - - if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && - echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - : - else - # The Solaris, AIX, and Digital Unix default echo programs unquote - # backslashes. This makes it impossible to quote backslashes using - # echo "$something" | sed 's/\\/\\\\/g' - # - # So, first we look for a working echo in the user's PATH. - - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for dir in $PATH /usr/ucb; do - IFS="$lt_save_ifs" - if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && - test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && - echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - ECHO="$dir/echo" - break - fi - done - IFS="$lt_save_ifs" - - if test "X$ECHO" = Xecho; then - # We didn't find a better echo, so look for alternatives. - if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' && - echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - # This shell has a builtin print -r that does the trick. - ECHO='print -r' - elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } && - test "X$CONFIG_SHELL" != X/bin/ksh; then - # If we have ksh, try running configure again with it. - ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} - export ORIGINAL_CONFIG_SHELL - CONFIG_SHELL=/bin/ksh - export CONFIG_SHELL - exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"} - else - # Try using printf. - ECHO='printf %s\n' - if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && - echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - # Cool, printf works - : - elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && - test "X$echo_testing_string" = 'X\t' && - echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL - export CONFIG_SHELL - SHELL="$CONFIG_SHELL" - export SHELL - ECHO="$CONFIG_SHELL $0 --fallback-echo" - elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && - test "X$echo_testing_string" = 'X\t' && - echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - ECHO="$CONFIG_SHELL $0 --fallback-echo" - else - # maybe with a smaller string... - prev=: - - for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do - if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null - then - break - fi - prev="$cmd" - done - - if test "$prev" != 'sed 50q "$0"'; then - echo_test_string=`eval $prev` - export echo_test_string - exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"} - else - # Oops. We lost completely, so just stick with echo. - ECHO=echo - fi - fi - fi - fi - fi -fi - -# Copy echo and quote the copy suitably for passing to libtool from -# the Makefile, instead of quoting the original, which is used later. -lt_ECHO=$ECHO -if test "X$lt_ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then - lt_ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" -fi - - - - -exec 7<&0 &1 +test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. -# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, +# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` @@ -740,14 +567,14 @@ cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= -SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='glabels' PACKAGE_TARNAME='glabels' -PACKAGE_VERSION='2.2.8' -PACKAGE_STRING='glabels 2.2.8' -PACKAGE_BUGREPORT='http://sourceforge.net/tracker/?func=add&group_id=46122&atid=445116' +PACKAGE_VERSION='3.0.0' +PACKAGE_STRING='glabels 3.0.0' +PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=glabels' +PACKAGE_URL='' ac_unique_file="src/glabels.c" # Factoring default headers for most tests. @@ -802,54 +629,82 @@ CATOBJEXT CATALOGS MSGFMT_OPTS GETTEXT_PACKAGE -ENABLE_UPDATE_DESKTOPDB_FALSE -ENABLE_UPDATE_DESKTOPDB_TRUE -ENABLE_UPDATE_MIMEDB_FALSE -ENABLE_UPDATE_MIMEDB_TRUE -HAVE_NEWER_MIME_FALSE -HAVE_NEWER_MIME_TRUE -UPDATE_DESKTOP_DATABASE -HAVE_NEW_MIME_FALSE -HAVE_NEW_MIME_TRUE -UPDATE_MIME_DATABASE DISABLE_DEPRECATED_CFLAGS -HAVE_XML_PARSE_HUGE -XML_PARSE_HUGE_LIBS -XML_PARSE_HUGE_CFLAGS -MYGAL_LIBS -MYGAL_CFLAGS +LIBIEC16022_LIBS +LIBIEC16022_CFLAGS +LIBQRENCODE_LIBS +LIBQRENCODE_CFLAGS +LIBZINT_LIBS +LIBZINT_CFLAGS +LIBBARCODE_LIBS +LIBBARCODE_CFLAGS +LIBEBOOK_LIBS +LIBEBOOK_CFLAGS +LIBGLBARCODE_LIBS +LIBGLBARCODE_CFLAGS LIBGLABELS_LIBS LIBGLABELS_CFLAGS GLABELS_LIBS GLABELS_CFLAGS -LIBEBOOK_LIBS -LIBEBOOK_CFLAGS +LIBZINT_REQUIRED +LIBIEC16022_REQUIRED +LIBQRENCODE_REQUIRED +LIBBARCODE_REQUIRED LIBEBOOK_REQUIRED -LIBGLADE_REQUIRED +PANGO_REQUIRED +CAIRO_REQUIRED +LIBRSVG_REQUIRED LIBXML_REQUIRED -LIBGNOMEUI_REQUIRED -LIBGNOME_REQUIRED GTK_REQUIRED GLIB_REQUIRED -LIBGLABELS_VERSION_INFO +LIBGLBARCODE_API_VERSION +LIBGLABELS_API_VERSION +LIBGLBARCODE_BRANCH +LIBGLABELS_BRANCH +GLABELS_BRANCH +GTK_UPDATE_ICON_CACHE +GDK_PIXBUF_CSOURCE +GLIB_GENMARSHAL +WARN_CFLAGS +GSETTINGS_RULES +GLIB_COMPILE_SCHEMAS +gsettingsschemadir +GSETTINGS_DISABLE_SCHEMAS_COMPILE +GTK_DOC_USE_REBASE_FALSE +GTK_DOC_USE_REBASE_TRUE GTK_DOC_USE_LIBTOOL_FALSE GTK_DOC_USE_LIBTOOL_TRUE +GTK_DOC_BUILD_PDF_FALSE +GTK_DOC_BUILD_PDF_TRUE +GTK_DOC_BUILD_HTML_FALSE +GTK_DOC_BUILD_HTML_TRUE ENABLE_GTK_DOC_FALSE ENABLE_GTK_DOC_TRUE -GTKDOC_CHECK HTML_DIR -GLIB_GENMARSHAL -WARN_CFLAGS +GTKDOC_MKPDF +GTKDOC_REBASE +GTKDOC_CHECK +HAVE_GNOME_DOC_UTILS_FALSE +HAVE_GNOME_DOC_UTILS_TRUE +DISTCHECK_CONFIGURE_FLAGS +ENABLE_SK_FALSE +ENABLE_SK_TRUE +DOC_USER_FORMATS +OMF_DIR +HELP_DIR CPP OTOOL64 OTOOL LIPO NMEDIT DSYMUTIL -lt_ECHO +MANIFEST_TOOL RANLIB +ac_ct_AR AR +DLLTOOL OBJDUMP +LN_S NM ac_ct_DUMPBIN DUMPBIN @@ -867,6 +722,9 @@ build_vendor build_cpu build LIBTOOL +PKG_CONFIG_LIBDIR +PKG_CONFIG_PATH +PKG_CONFIG DATADIRNAME am__fastdepCC_FALSE am__fastdepCC_TRUE @@ -913,19 +771,11 @@ INTLTOOL_EXTRACT INTLTOOL_MERGE INTLTOOL_UPDATE USE_NLS +AM_BACKSLASH +AM_DEFAULT_VERBOSITY MAINT MAINTAINER_MODE_FALSE MAINTAINER_MODE_TRUE -HAVE_GNOME_DOC_UTILS_FALSE -HAVE_GNOME_DOC_UTILS_TRUE -DISTCHECK_CONFIGURE_FLAGS -ENABLE_SK_FALSE -ENABLE_SK_TRUE -DOC_USER_FORMATS -OMF_DIR -HELP_DIR -PKG_CONFIG -LN_S am__untar am__tar AMTAR @@ -979,6 +829,7 @@ bindir program_transform_name prefix exec_prefix +PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION @@ -989,11 +840,8 @@ SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking -with_help_dir -with_omf_dir -with_help_formats -enable_scrollkeeper enable_maintainer_mode +enable_silent_rules enable_nls enable_dependency_tracking enable_shared @@ -1001,36 +849,50 @@ enable_static with_pic enable_fast_install with_gnu_ld +with_sysroot enable_libtool_lock -enable_compile_warnings -enable_iso_c +with_help_dir +with_omf_dir +with_help_formats +enable_scrollkeeper with_html_dir enable_gtk_doc +enable_gtk_doc_html +enable_gtk_doc_pdf +enable_schemas_compile +enable_compile_warnings +enable_iso_c with_libebook +with_libbarcode +with_libzint +with_libqrencode +with_libiec16022 enable_deprecations -enable_update_mimedb -enable_update_desktopdb ' ac_precious_vars='build_alias host_alias target_alias -PKG_CONFIG CC CFLAGS LDFLAGS LIBS CPPFLAGS +PKG_CONFIG +PKG_CONFIG_PATH +PKG_CONFIG_LIBDIR CPP -LIBEBOOK_CFLAGS -LIBEBOOK_LIBS GLABELS_CFLAGS GLABELS_LIBS LIBGLABELS_CFLAGS LIBGLABELS_LIBS -MYGAL_CFLAGS -MYGAL_LIBS -XML_PARSE_HUGE_CFLAGS -XML_PARSE_HUGE_LIBS' +LIBGLBARCODE_CFLAGS +LIBGLBARCODE_LIBS +LIBEBOOK_CFLAGS +LIBEBOOK_LIBS +LIBQRENCODE_CFLAGS +LIBQRENCODE_LIBS +LIBIEC16022_CFLAGS +LIBIEC16022_LIBS' # Initialize some variables set by options. @@ -1093,8 +955,9 @@ do fi case $ac_option in - *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; - *) ac_optarg=yes ;; + *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; + *=) ac_optarg= ;; + *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. @@ -1139,8 +1002,7 @@ do ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2 - { (exit 1); exit 1; }; } + as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in @@ -1166,8 +1028,7 @@ do ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2 - { (exit 1); exit 1; }; } + as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in @@ -1371,8 +1232,7 @@ do ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2 - { (exit 1); exit 1; }; } + as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in @@ -1388,8 +1248,7 @@ do ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2 - { (exit 1); exit 1; }; } + as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in @@ -1419,17 +1278,17 @@ do | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; - -*) { $as_echo "$as_me: error: unrecognized option: $ac_option -Try \`$0 --help' for more information." >&2 - { (exit 1); exit 1; }; } + -*) as_fn_error $? "unrecognized option: \`$ac_option' +Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. - expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && - { $as_echo "$as_me: error: invalid variable name: $ac_envvar" >&2 - { (exit 1); exit 1; }; } + case $ac_envvar in #( + '' | [0-9]* | *[!_$as_cr_alnum]* ) + as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; + esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; @@ -1438,7 +1297,7 @@ Try \`$0 --help' for more information." >&2 $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 - : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} + : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac @@ -1446,15 +1305,13 @@ done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` - { $as_echo "$as_me: error: missing argument to $ac_option" >&2 - { (exit 1); exit 1; }; } + as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; - fatal) { $as_echo "$as_me: error: unrecognized options: $ac_unrecognized_opts" >&2 - { (exit 1); exit 1; }; } ;; + fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi @@ -1477,8 +1334,7 @@ do [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac - { $as_echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 - { (exit 1); exit 1; }; } + as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' @@ -1492,8 +1348,8 @@ target=$target_alias if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe - $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. - If a cross compiler is detected then cross compile mode will be used." >&2 + $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. + If a cross compiler is detected then cross compile mode will be used" >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi @@ -1508,11 +1364,9 @@ test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || - { $as_echo "$as_me: error: working directory cannot be determined" >&2 - { (exit 1); exit 1; }; } + as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || - { $as_echo "$as_me: error: pwd does not report name of working directory" >&2 - { (exit 1); exit 1; }; } + as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. @@ -1551,13 +1405,11 @@ else fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." - { $as_echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 - { (exit 1); exit 1; }; } + as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( - cd "$srcdir" && test -r "./$ac_unique_file" || { $as_echo "$as_me: error: $ac_msg" >&2 - { (exit 1); exit 1; }; } + cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then @@ -1583,7 +1435,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures glabels 2.2.8 to adapt to many kinds of systems. +\`configure' configures glabels 3.0.0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1597,7 +1449,7 @@ Configuration: --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit - -q, --quiet, --silent do not print \`checking...' messages + -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files @@ -1653,7 +1505,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of glabels 2.2.8:";; + short | recursive ) echo "Configuration of glabels 3.0.0:";; esac cat <<\_ACEOF @@ -1661,9 +1513,10 @@ Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --disable-scrollkeeper do not make updates to the scrollkeeper database --enable-maintainer-mode enable make rules and dependencies not useful (and sometimes confusing) to the casual installer + --enable-silent-rules less verbose build output (undo: `make V=1') + --disable-silent-rules verbose build output (undo: `make V=0') --disable-nls do not use Native Language Support --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors @@ -1672,44 +1525,50 @@ Optional Features: --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) + --disable-scrollkeeper do not make updates to the scrollkeeper database + --enable-gtk-doc use gtk-doc to build documentation [[default=no]] + --enable-gtk-doc-html build documentation in html format [[default=yes]] + --enable-gtk-doc-pdf build documentation in pdf format [[default=no]] + --disable-schemas-compile + Disable regeneration of gschemas.compiled on install --enable-compile-warnings=[no/minimum/yes/maximum/error] Turn on compiler warnings --enable-iso-c Try to warn if code is not ISO C - --enable-gtk-doc use gtk-doc to build documentation [default=no] --enable-deprecations warn about deprecated usages [default=no] - --disable-update-mimedb disable the update-mime-database after install - default=no - --disable-update-desktopdb - disable the update-desktop-database after install - default=no Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-pic try to use only PIC/non-PIC objects [default=use + both] + --with-gnu-ld assume the C compiler uses GNU ld [default=no] + --with-sysroot=DIR Search for dependent libraries within DIR + (or the compiler's sysroot if not specified). --with-help-dir=DIR path to help docs --with-omf-dir=DIR path to OMF files --with-help-formats=FORMATS list of formats - --with-pic try to use only PIC/non-PIC objects [default=use - both] - --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-html-dir=PATH path to installed docs --without-libebook build without Evolution Data Server support + --without-libbarcode build without GNU Barcode support + --without-libzint build without Zint Barcode support + --without-libqrencode build without QR code support + --without-libiec16022 build without IEC 16022 support Some influential environment variables: - PKG_CONFIG path to pkg-config utility CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l - CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if + CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory + PKG_CONFIG path to pkg-config utility + PKG_CONFIG_PATH + directories to add to pkg-config's search path + PKG_CONFIG_LIBDIR + path overriding pkg-config's built-in search path CPP C preprocessor - LIBEBOOK_CFLAGS - C compiler flags for LIBEBOOK, overriding pkg-config - LIBEBOOK_LIBS - linker flags for LIBEBOOK, overriding pkg-config GLABELS_CFLAGS C compiler flags for GLABELS, overriding pkg-config GLABELS_LIBS @@ -1718,18 +1577,27 @@ Some influential environment variables: C compiler flags for LIBGLABELS, overriding pkg-config LIBGLABELS_LIBS linker flags for LIBGLABELS, overriding pkg-config - MYGAL_CFLAGS - C compiler flags for MYGAL, overriding pkg-config - MYGAL_LIBS linker flags for MYGAL, overriding pkg-config - XML_PARSE_HUGE_CFLAGS - C compiler flags for XML_PARSE_HUGE, overriding pkg-config - XML_PARSE_HUGE_LIBS - linker flags for XML_PARSE_HUGE, overriding pkg-config + LIBGLBARCODE_CFLAGS + C compiler flags for LIBGLBARCODE, overriding pkg-config + LIBGLBARCODE_LIBS + linker flags for LIBGLBARCODE, overriding pkg-config + LIBEBOOK_CFLAGS + C compiler flags for LIBEBOOK, overriding pkg-config + LIBEBOOK_LIBS + linker flags for LIBEBOOK, overriding pkg-config + LIBQRENCODE_CFLAGS + C compiler flags for LIBQRENCODE, overriding pkg-config + LIBQRENCODE_LIBS + linker flags for LIBQRENCODE, overriding pkg-config + LIBIEC16022_CFLAGS + C compiler flags for LIBIEC16022, overriding pkg-config + LIBIEC16022_LIBS + linker flags for LIBIEC16022, overriding pkg-config Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. -Report bugs to . +Report bugs to . _ACEOF ac_status=$? fi @@ -1792,22 +1660,377 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -glabels configure 2.2.8 -generated by GNU Autoconf 2.63 +glabels configure 3.0.0 +generated by GNU Autoconf 2.68 -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +Copyright (C) 2010 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi + +## ------------------------ ## +## Autoconf initialization. ## +## ------------------------ ## + +# ac_fn_c_try_compile LINENO +# -------------------------- +# Try to compile conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext + if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_compile + +# ac_fn_c_try_link LINENO +# ----------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_link () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext conftest$ac_exeext + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information + # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would + # interfere with the next link command; also delete a directory that is + # left behind by Apple's compiler. We do this before executing the actions. + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_link + +# ac_fn_c_check_func LINENO FUNC VAR +# ---------------------------------- +# Tests whether FUNC exists, setting the cache variable VAR accordingly +ac_fn_c_check_func () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Define $2 to an innocuous variant, in case declares $2. + For example, HP-UX 11i declares gettimeofday. */ +#define $2 innocuous_$2 + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $2 (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $2 + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $2 (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$2 || defined __stub___$2 +choke me +#endif + +int +main () +{ +return $2 (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_func + +# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES +# ------------------------------------------------------- +# Tests whether HEADER exists and can be compiled using the include files in +# INCLUDES, setting the cache variable VAR accordingly. +ac_fn_c_check_header_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +#include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_header_compile + +# ac_fn_c_try_cpp LINENO +# ---------------------- +# Try to preprocess conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_cpp () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } > conftest.i && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_cpp + +# ac_fn_c_try_run LINENO +# ---------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes +# that executables *can* be run. +ac_fn_c_try_run () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then : + ac_retval=0 +else + $as_echo "$as_me: program exited with status $ac_status" >&5 + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=$ac_status +fi + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_run + +# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES +# ------------------------------------------------------- +# Tests whether HEADER exists, giving a warning if it cannot be compiled using +# the include files in INCLUDES and setting the cache variable VAR +# accordingly. +ac_fn_c_check_header_mongrel () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if eval \${$3+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +else + # Is the header compilable? +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 +$as_echo_n "checking $2 usability... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +#include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_header_compiler=yes +else + ac_header_compiler=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } + +# Is the header present? +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 +$as_echo_n "checking $2 presence... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <$2> +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + ac_header_preproc=yes +else + ac_header_preproc=no +fi +rm -f conftest.err conftest.i conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( + yes:no: ) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} + ;; + no:yes:* ) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} +( $as_echo "## ---------------------------------------------------------------------- ## +## Report this to http://bugzilla.gnome.org/enter_bug.cgi?product=glabels ## +## ---------------------------------------------------------------------- ##" + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + eval "$3=\$ac_header_compiler" +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_header_mongrel cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by glabels $as_me 2.2.8, which was -generated by GNU Autoconf 2.63. Invocation command line was +It was created by glabels $as_me 3.0.0, which was +generated by GNU Autoconf 2.68. Invocation command line was $ $0 $@ @@ -1843,8 +2066,8 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - $as_echo "PATH: $as_dir" -done + $as_echo "PATH: $as_dir" + done IFS=$as_save_IFS } >&5 @@ -1881,9 +2104,9 @@ do ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in - 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; + 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) - ac_configure_args1="$ac_configure_args1 '$ac_arg'" + as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else @@ -1899,13 +2122,13 @@ do -* ) ac_must_keep_next=true ;; esac fi - ac_configure_args="$ac_configure_args '$ac_arg'" + as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done -$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } -$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } +{ ac_configure_args0=; unset ac_configure_args0;} +{ ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there @@ -1917,11 +2140,9 @@ trap 'exit_status=$? { echo - cat <<\_ASBOX -## ---------------- ## + $as_echo "## ---------------- ## ## Cache variables. ## -## ---------------- ## -_ASBOX +## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( @@ -1930,13 +2151,13 @@ _ASBOX case $ac_val in #( *${as_nl}*) case $ac_var in #( - *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5 + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) $as_unset $ac_var ;; + *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done @@ -1955,11 +2176,9 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; ) echo - cat <<\_ASBOX -## ----------------- ## + $as_echo "## ----------------- ## ## Output variables. ## -## ----------------- ## -_ASBOX +## ----------------- ##" echo for ac_var in $ac_subst_vars do @@ -1972,11 +2191,9 @@ _ASBOX echo if test -n "$ac_subst_files"; then - cat <<\_ASBOX -## ------------------- ## + $as_echo "## ------------------- ## ## File substitutions. ## -## ------------------- ## -_ASBOX +## ------------------- ##" echo for ac_var in $ac_subst_files do @@ -1990,11 +2207,9 @@ _ASBOX fi if test -s confdefs.h; then - cat <<\_ASBOX -## ----------- ## + $as_echo "## ----------- ## ## confdefs.h. ## -## ----------- ## -_ASBOX +## ----------- ##" echo cat confdefs.h echo @@ -2008,46 +2223,53 @@ _ASBOX exit $exit_status ' 0 for ac_signal in 1 2 13 15; do - trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal + trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h +$as_echo "/* confdefs.h */" > confdefs.h + # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF - cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF - cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF - cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF - cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF +cat >>confdefs.h <<_ACEOF +#define PACKAGE_URL "$PACKAGE_URL" +_ACEOF + # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then - ac_site_file1=$CONFIG_SITE + # We do not want a PATH search for config.site. + case $CONFIG_SITE in #(( + -*) ac_site_file1=./$CONFIG_SITE;; + */*) ac_site_file1=$CONFIG_SITE;; + *) ac_site_file1=./$CONFIG_SITE;; + esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site @@ -2058,19 +2280,23 @@ fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue - if test -r "$ac_site_file"; then - { $as_echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 + if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 - . "$ac_site_file" + . "$ac_site_file" \ + || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "failed to load site script $ac_site_file +See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then - # Some versions of bash will fail to source /dev/null (special - # files actually), so we avoid doing that. - if test -f "$cache_file"; then - { $as_echo "$as_me:$LINENO: loading cache $cache_file" >&5 + # Some versions of bash will fail to source /dev/null (special files + # actually), so we avoid doing that. DJGPP emulates it as a regular file. + if test /dev/null != "$cache_file" && test -f "$cache_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; @@ -2078,7 +2304,7 @@ $as_echo "$as_me: loading cache $cache_file" >&6;} esac fi else - { $as_echo "$as_me:$LINENO: creating cache $cache_file" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi @@ -2093,11 +2319,11 @@ for ac_var in $ac_precious_vars; do eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) - { $as_echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) - { $as_echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; @@ -2107,17 +2333,17 @@ $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then - { $as_echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else - { $as_echo "$as_me:$LINENO: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi - { $as_echo "$as_me:$LINENO: former value: \`$ac_old_val'" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} - { $as_echo "$as_me:$LINENO: current value: \`$ac_new_val'" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac @@ -2129,43 +2355,20 @@ $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. - *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then - { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} - { $as_echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} - { { $as_echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 -$as_echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi - - - - - - - - - - - - - - - - - - - - - - - - +## -------------------- ## +## Main body of script. ## +## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' @@ -2175,6 +2378,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu + + am__api_version='1.11' ac_aux_dir= @@ -2194,9 +2399,7 @@ for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do fi done if test -z "$ac_aux_dir"; then - { { $as_echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5 -$as_echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 fi # These three variables are undocumented and unsupported, @@ -2222,10 +2425,10 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. -{ $as_echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then -if test "${ac_cv_path_install+set}" = set; then +if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -2233,11 +2436,11 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - # Account for people who put trailing slashes in PATH elements. -case $as_dir/ in - ./ | .// | /cC/* | \ + # Account for people who put trailing slashes in PATH elements. +case $as_dir/ in #(( + ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ - ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ + ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. @@ -2274,7 +2477,7 @@ case $as_dir/ in ;; esac -done + done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir @@ -2290,7 +2493,7 @@ fi INSTALL=$ac_install_sh fi fi -{ $as_echo "$as_me:$LINENO: result: $INSTALL" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. @@ -2301,7 +2504,7 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' -{ $as_echo "$as_me:$LINENO: checking whether build environment is sane" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } # Just in case sleep 1 @@ -2312,15 +2515,11 @@ am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) - { { $as_echo "$as_me:$LINENO: error: unsafe absolute working directory name" >&5 -$as_echo "$as_me: error: unsafe absolute working directory name" >&2;} - { (exit 1); exit 1; }; };; + as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) - { { $as_echo "$as_me:$LINENO: error: unsafe srcdir value: \`$srcdir'" >&5 -$as_echo "$as_me: error: unsafe srcdir value: \`$srcdir'" >&2;} - { (exit 1); exit 1; }; };; + as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;; esac # Do `set' in a subshell so we don't clobber the current shell's @@ -2342,11 +2541,8 @@ if ( # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". - { { $as_echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken -alias in your environment" >&5 -$as_echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken -alias in your environment" >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "ls -t appears to fail. Make sure there is not a broken +alias in your environment" "$LINENO" 5 fi test "$2" = conftest.file @@ -2355,13 +2551,10 @@ then # Ok. : else - { { $as_echo "$as_me:$LINENO: error: newly created file is older than distributed files! -Check your system clock" >&5 -$as_echo "$as_me: error: newly created file is older than distributed files! -Check your system clock" >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "newly created file is older than distributed files! +Check your system clock" "$LINENO" 5 fi -{ $as_echo "$as_me:$LINENO: result: yes" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" @@ -2389,7 +2582,7 @@ if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= - { $as_echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5 $as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi @@ -2410,9 +2603,9 @@ if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_STRIP+set}" = set; then +if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then @@ -2423,24 +2616,24 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then - { $as_echo "$as_me:$LINENO: result: $STRIP" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -2450,9 +2643,9 @@ if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then +if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then @@ -2463,24 +2656,24 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then - { $as_echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -2489,7 +2682,7 @@ fi else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac @@ -2502,10 +2695,10 @@ fi fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" -{ $as_echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then - if test "${ac_cv_path_mkdir+set}" = set; then + if ${ac_cv_path_mkdir+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -2513,7 +2706,7 @@ for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_prog in mkdir gmkdir; do + for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( @@ -2525,11 +2718,12 @@ do esac done done -done + done IFS=$as_save_IFS fi + test -d ./--version && rmdir ./--version if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else @@ -2537,11 +2731,10 @@ fi # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. - test -d ./--version && rmdir ./--version MKDIR_P="$ac_install_sh -d" fi fi -{ $as_echo "$as_me:$LINENO: result: $MKDIR_P" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } mkdir_p="$MKDIR_P" @@ -2554,9 +2747,9 @@ for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_AWK+set}" = set; then +if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then @@ -2567,24 +2760,24 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AWK="$ac_prog" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then - { $as_echo "$as_me:$LINENO: result: $AWK" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -2592,11 +2785,11 @@ fi test -n "$AWK" && break done -{ $as_echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` -if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then +if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF @@ -2604,7 +2797,7 @@ SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF -# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; @@ -2614,11 +2807,11 @@ esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then - { $as_echo "$as_me:$LINENO: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi @@ -2638,9 +2831,7 @@ if test "`cd $srcdir && pwd`" != "`pwd`"; then am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then - { { $as_echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 -$as_echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi fi @@ -2656,7 +2847,7 @@ fi # Define the identity of the package. PACKAGE=glabels - VERSION=2.2.8 + VERSION=3.0.0 cat >>confdefs.h <<_ACEOF @@ -2696,236 +2887,18 @@ am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' -{ $as_echo "$as_me:$LINENO: checking whether ln -s works" >&5 -$as_echo_n "checking whether ln -s works... " >&6; } -LN_S=$as_ln_s -if test "$LN_S" = "ln -s"; then - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no, using $LN_S" >&5 -$as_echo "no, using $LN_S" >&6; } -fi - - - -if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. -set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_PKG_CONFIG+set}" = set; then - $as_echo_n "(cached) " >&6 -else - case $PKG_CONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - - ;; -esac -fi -PKG_CONFIG=$ac_cv_path_PKG_CONFIG -if test -n "$PKG_CONFIG"; then - { $as_echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5 -$as_echo "$PKG_CONFIG" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_path_PKG_CONFIG"; then - ac_pt_PKG_CONFIG=$PKG_CONFIG - # Extract the first word of "pkg-config", so it can be a program name with args. -set dummy pkg-config; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then - $as_echo_n "(cached) " >&6 -else - case $ac_pt_PKG_CONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - - ;; -esac -fi -ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG -if test -n "$ac_pt_PKG_CONFIG"; then - { $as_echo "$as_me:$LINENO: result: $ac_pt_PKG_CONFIG" >&5 -$as_echo "$ac_pt_PKG_CONFIG" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_pt_PKG_CONFIG" = x; then - PKG_CONFIG="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - PKG_CONFIG=$ac_pt_PKG_CONFIG - fi -else - PKG_CONFIG="$ac_cv_path_PKG_CONFIG" -fi - -fi -if test -n "$PKG_CONFIG"; then - _pkg_min_version=0.9.0 - { $as_echo "$as_me:$LINENO: checking pkg-config is at least version $_pkg_min_version" >&5 -$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } - if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } - PKG_CONFIG="" - fi - -fi - -gdu_cv_version_required=0.3.2 - -{ $as_echo "$as_me:$LINENO: checking gnome-doc-utils >= $gdu_cv_version_required" >&5 -$as_echo_n "checking gnome-doc-utils >= $gdu_cv_version_required... " >&6; } -if test -n "$PKG_CONFIG" && \ - { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gnome-doc-utils >= \$gdu_cv_version_required\"") >&5 - ($PKG_CONFIG --exists --print-errors "gnome-doc-utils >= $gdu_cv_version_required") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - gdu_cv_have_gdu=yes -else - gdu_cv_have_gdu=no -fi - -if test "$gdu_cv_have_gdu" = "yes"; then - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } - : -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } - { { $as_echo "$as_me:$LINENO: error: gnome-doc-utils >= $gdu_cv_version_required not found" >&5 -$as_echo "$as_me: error: gnome-doc-utils >= $gdu_cv_version_required not found" >&2;} - { (exit 1); exit 1; }; } -fi - - - -# Check whether --with-help-dir was given. -if test "${with_help_dir+set}" = set; then - withval=$with_help_dir; -else - with_help_dir='${datadir}/gnome/help' -fi - -HELP_DIR="$with_help_dir" - - - -# Check whether --with-omf-dir was given. -if test "${with_omf_dir+set}" = set; then - withval=$with_omf_dir; -else - with_omf_dir='${datadir}/omf' -fi - -OMF_DIR="$with_omf_dir" - - - -# Check whether --with-help-formats was given. -if test "${with_help_formats+set}" = set; then - withval=$with_help_formats; -else - with_help_formats='' -fi - -DOC_USER_FORMATS="$with_help_formats" - - -# Check whether --enable-scrollkeeper was given. -if test "${enable_scrollkeeper+set}" = set; then - enableval=$enable_scrollkeeper; -else - enable_scrollkeeper=yes -fi - - if test "$gdu_cv_have_gdu" = "yes" -a "$enable_scrollkeeper" = "yes"; then - ENABLE_SK_TRUE= - ENABLE_SK_FALSE='#' -else - ENABLE_SK_TRUE='#' - ENABLE_SK_FALSE= -fi - - -DISTCHECK_CONFIGURE_FLAGS="--disable-scrollkeeper $DISTCHECK_CONFIGURE_FLAGS" - - - if test "$gdu_cv_have_gdu" = "yes"; then - HAVE_GNOME_DOC_UTILS_TRUE= - HAVE_GNOME_DOC_UTILS_FALSE='#' -else - HAVE_GNOME_DOC_UTILS_TRUE='#' - HAVE_GNOME_DOC_UTILS_FALSE= -fi - - - -{ $as_echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 $as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } # Check whether --enable-maintainer-mode was given. -if test "${enable_maintainer_mode+set}" = set; then +if test "${enable_maintainer_mode+set}" = set; then : enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval else USE_MAINTAINER_MODE=no fi - { $as_echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 $as_echo "$USE_MAINTAINER_MODE" >&6; } if test $USE_MAINTAINER_MODE = yes; then MAINTAINER_MODE_TRUE= @@ -2938,20 +2911,33 @@ fi MAINT=$MAINTAINER_MODE_TRUE +# Check whether --enable-silent-rules was given. +if test "${enable_silent_rules+set}" = set; then : + enableval=$enable_silent_rules; +fi + +case $enable_silent_rules in +yes) AM_DEFAULT_VERBOSITY=0;; +no) AM_DEFAULT_VERBOSITY=1;; +*) AM_DEFAULT_VERBOSITY=0;; +esac +AM_BACKSLASH='\' + + ac_config_headers="$ac_config_headers config.h" - { $as_echo "$as_me:$LINENO: checking whether NLS is requested" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5 $as_echo_n "checking whether NLS is requested... " >&6; } # Check whether --enable-nls was given. -if test "${enable_nls+set}" = set; then +if test "${enable_nls+set}" = set; then : enableval=$enable_nls; USE_NLS=$enableval else USE_NLS=yes fi - { $as_echo "$as_me:$LINENO: result: $USE_NLS" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 $as_echo "$USE_NLS" >&6; } @@ -2967,7 +2953,7 @@ am__doit: .PHONY: am__doit END # If we don't find an include directive, just comment out the code. -{ $as_echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 $as_echo_n "checking for style of include used by $am_make... " >&6; } am__include="#" am__quote= @@ -2995,12 +2981,12 @@ if test "$am__include" = "#"; then fi -{ $as_echo "$as_me:$LINENO: result: $_am_result" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 $as_echo "$_am_result" >&6; } rm -f confinc confmf # Check whether --enable-dependency-tracking was given. -if test "${enable_dependency_tracking+set}" = set; then +if test "${enable_dependency_tracking+set}" = set; then : enableval=$enable_dependency_tracking; fi @@ -3025,9 +3011,9 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -3038,24 +3024,24 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { $as_echo "$as_me:$LINENO: result: $CC" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -3065,9 +3051,9 @@ if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then +if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then @@ -3078,24 +3064,24 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -3104,7 +3090,7 @@ fi else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac @@ -3118,9 +3104,9 @@ if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -3131,24 +3117,24 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { $as_echo "$as_me:$LINENO: result: $CC" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -3158,9 +3144,9 @@ fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -3172,18 +3158,18 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then @@ -3202,10 +3188,10 @@ fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { $as_echo "$as_me:$LINENO: result: $CC" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -3217,9 +3203,9 @@ if test -z "$CC"; then do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -3230,24 +3216,24 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { $as_echo "$as_me:$LINENO: result: $CC" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -3261,9 +3247,9 @@ if test -z "$CC"; then do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then +if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then @@ -3274,24 +3260,24 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -3304,7 +3290,7 @@ done else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac @@ -3315,57 +3301,37 @@ fi fi -test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: no acceptable C compiler found in \$PATH -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; }; } +as_fn_error $? "no acceptable C compiler found in \$PATH +See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. -$as_echo "$as_me:$LINENO: checking for C compiler version" >&5 +$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 -{ (ac_try="$ac_compiler --version >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compiler --version >&5") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (ac_try="$ac_compiler -v >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compiler -v >&5") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (ac_try="$ac_compiler -V >&5" +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compiler -V >&5") 2>&5 +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -3381,8 +3347,8 @@ ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. -{ $as_echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 -$as_echo_n "checking for C compiler default output file name... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 +$as_echo_n "checking whether the C compiler works... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: @@ -3398,17 +3364,17 @@ do done rm -f $ac_rmfiles -if { (ac_try="$ac_link_default" +if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, @@ -3425,7 +3391,7 @@ do # certainly right. break;; *.* ) - if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; + if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi @@ -3444,84 +3410,41 @@ test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi - -{ $as_echo "$as_me:$LINENO: result: $ac_file" >&5 -$as_echo "$ac_file" >&6; } -if test -z "$ac_file"; then - $as_echo "$as_me: failed program was:" >&5 +if test -z "$ac_file"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ { $as_echo "$as_me:$LINENO: error: C compiler cannot create executables -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: C compiler cannot create executables -See \`config.log' for more details." >&2;} - { (exit 77); exit 77; }; }; } -fi - -ac_exeext=$ac_cv_exeext - -# Check that the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -{ $as_echo "$as_me:$LINENO: checking whether the C compiler works" >&5 -$as_echo_n "checking whether the C compiler works... " >&6; } -# FIXME: These cross compiler hacks should be removed for Autoconf 3.0 -# If not cross compiling, check that we can run a simple program. -if test "$cross_compiling" != yes; then - if { ac_try='./$ac_file' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cross_compiling=no - else - if test "$cross_compiling" = maybe; then - cross_compiling=yes - else - { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ { $as_echo "$as_me:$LINENO: error: cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; }; } - fi - fi -fi -{ $as_echo "$as_me:$LINENO: result: yes" >&5 +as_fn_error 77 "C compiler cannot create executables +See \`config.log' for more details" "$LINENO" 5; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 +$as_echo_n "checking for C compiler default output file name... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 +$as_echo "$ac_file" >&6; } +ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save -# Check that the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -{ $as_echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 -$as_echo_n "checking whether we are cross compiling... " >&6; } -{ $as_echo "$as_me:$LINENO: result: $cross_compiling" >&5 -$as_echo "$cross_compiling" >&6; } - -{ $as_echo "$as_me:$LINENO: checking for suffix of executables" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } -if { (ac_try="$ac_link" +if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with @@ -3536,32 +3459,83 @@ for ac_file in conftest.exe conftest conftest.*; do esac done else - { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; }; } +as_fn_error $? "cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details" "$LINENO" 5; } fi - -rm -f conftest$ac_cv_exeext -{ $as_echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 +rm -f conftest conftest$ac_cv_exeext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT -{ $as_echo "$as_me:$LINENO: checking for suffix of object files" >&5 +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +FILE *f = fopen ("conftest.out", "w"); + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +ac_clean_files="$ac_clean_files conftest.out" +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 +$as_echo_n "checking whether we are cross compiling... " >&6; } +if test "$cross_compiling" != yes; then + { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if { ac_try='./conftest$ac_cv_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details" "$LINENO" 5; } + fi + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 +$as_echo "$cross_compiling" >&6; } + +rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } -if test "${ac_cv_objext+set}" = set; then +if ${ac_cv_objext+:} false; then : $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -3573,17 +3547,17 @@ main () } _ACEOF rm -f conftest.o conftest.obj -if { (ac_try="$ac_compile" +if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in @@ -3596,31 +3570,23 @@ else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: cannot compute suffix of object files: cannot compile -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; }; } +as_fn_error $? "cannot compute suffix of object files: cannot compile +See \`config.log' for more details" "$LINENO" 5; } fi - rm -f conftest.$ac_cv_objext conftest.$ac_ext fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT -{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if test "${ac_cv_c_compiler_gnu+set}" = set; then +if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -3634,37 +3600,16 @@ main () return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then +if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_compiler_gnu=no + ac_compiler_gnu=no fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes @@ -3673,20 +3618,16 @@ else fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS -{ $as_echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } -if test "${ac_cv_prog_cc_g+set}" = set; then +if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -3697,35 +3638,11 @@ main () return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then +if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - CFLAGS="" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + CFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -3736,36 +3653,12 @@ main () return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - : -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 +if ac_fn_c_try_compile "$LINENO"; then : - ac_c_werror_flag=$ac_save_c_werror_flag +else + ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -3776,42 +3669,17 @@ main () return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then +if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS @@ -3828,18 +3696,14 @@ else CFLAGS= fi fi -{ $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if test "${ac_cv_prog_cc_c89+set}" = set; then +if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include @@ -3896,32 +3760,9 @@ for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" - rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then + if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - fi - rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done @@ -3932,17 +3773,19 @@ fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) - { $as_echo "$as_me:$LINENO: result: none needed" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) - { $as_echo "$as_me:$LINENO: result: unsupported" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" - { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac +if test "x$ac_cv_prog_cc_c89" != xno; then : +fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' @@ -3952,9 +3795,9 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CC" am_compiler_list= -{ $as_echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } -if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then +if ${am_cv_CC_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then @@ -4062,7 +3905,7 @@ else fi fi -{ $as_echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type @@ -4082,35 +3925,31 @@ fi case "$am__api_version" in 1.01234) - { { $as_echo "$as_me:$LINENO: error: Automake 1.5 or newer is required to use intltool" >&5 -$as_echo "$as_me: error: Automake 1.5 or newer is required to use intltool" >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "Automake 1.5 or newer is required to use intltool" "$LINENO" 5 ;; *) ;; esac if test -n "0.21"; then - { $as_echo "$as_me:$LINENO: checking for intltool >= 0.21" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for intltool >= 0.21" >&5 $as_echo_n "checking for intltool >= 0.21... " >&6; } INTLTOOL_REQUIRED_VERSION_AS_INT=`echo 0.21 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` - { $as_echo "$as_me:$LINENO: result: $INTLTOOL_APPLIED_VERSION found" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_APPLIED_VERSION found" >&5 $as_echo "$INTLTOOL_APPLIED_VERSION found" >&6; } test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || - { { $as_echo "$as_me:$LINENO: error: Your intltool is too old. You need intltool 0.21 or later." >&5 -$as_echo "$as_me: error: Your intltool is too old. You need intltool 0.21 or later." >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "Your intltool is too old. You need intltool 0.21 or later." "$LINENO" 5 fi # Extract the first word of "intltool-update", so it can be a program name with args. set dummy intltool-update; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_INTLTOOL_UPDATE+set}" = set; then +if ${ac_cv_path_INTLTOOL_UPDATE+:} false; then : $as_echo_n "(cached) " >&6 else case $INTLTOOL_UPDATE in @@ -4123,14 +3962,14 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_INTLTOOL_UPDATE="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS ;; @@ -4138,19 +3977,19 @@ esac fi INTLTOOL_UPDATE=$ac_cv_path_INTLTOOL_UPDATE if test -n "$INTLTOOL_UPDATE"; then - { $as_echo "$as_me:$LINENO: result: $INTLTOOL_UPDATE" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_UPDATE" >&5 $as_echo "$INTLTOOL_UPDATE" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "intltool-merge", so it can be a program name with args. set dummy intltool-merge; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_INTLTOOL_MERGE+set}" = set; then +if ${ac_cv_path_INTLTOOL_MERGE+:} false; then : $as_echo_n "(cached) " >&6 else case $INTLTOOL_MERGE in @@ -4163,14 +4002,14 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_INTLTOOL_MERGE="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS ;; @@ -4178,19 +4017,19 @@ esac fi INTLTOOL_MERGE=$ac_cv_path_INTLTOOL_MERGE if test -n "$INTLTOOL_MERGE"; then - { $as_echo "$as_me:$LINENO: result: $INTLTOOL_MERGE" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_MERGE" >&5 $as_echo "$INTLTOOL_MERGE" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "intltool-extract", so it can be a program name with args. set dummy intltool-extract; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_INTLTOOL_EXTRACT+set}" = set; then +if ${ac_cv_path_INTLTOOL_EXTRACT+:} false; then : $as_echo_n "(cached) " >&6 else case $INTLTOOL_EXTRACT in @@ -4203,14 +4042,14 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_INTLTOOL_EXTRACT="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS ;; @@ -4218,18 +4057,16 @@ esac fi INTLTOOL_EXTRACT=$ac_cv_path_INTLTOOL_EXTRACT if test -n "$INTLTOOL_EXTRACT"; then - { $as_echo "$as_me:$LINENO: result: $INTLTOOL_EXTRACT" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_EXTRACT" >&5 $as_echo "$INTLTOOL_EXTRACT" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then - { { $as_echo "$as_me:$LINENO: error: The intltool scripts were not found. Please install intltool." >&5 -$as_echo "$as_me: error: The intltool scripts were not found. Please install intltool." >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "The intltool scripts were not found. Please install intltool." "$LINENO" 5 fi INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' @@ -4351,9 +4188,9 @@ INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcar # Check the gettext tools to make sure they are GNU # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_XGETTEXT+set}" = set; then +if ${ac_cv_path_XGETTEXT+:} false; then : $as_echo_n "(cached) " >&6 else case $XGETTEXT in @@ -4366,14 +4203,14 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_XGETTEXT="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS ;; @@ -4381,19 +4218,19 @@ esac fi XGETTEXT=$ac_cv_path_XGETTEXT if test -n "$XGETTEXT"; then - { $as_echo "$as_me:$LINENO: result: $XGETTEXT" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 $as_echo "$XGETTEXT" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "msgmerge", so it can be a program name with args. set dummy msgmerge; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_MSGMERGE+set}" = set; then +if ${ac_cv_path_MSGMERGE+:} false; then : $as_echo_n "(cached) " >&6 else case $MSGMERGE in @@ -4406,14 +4243,14 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_MSGMERGE="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS ;; @@ -4421,19 +4258,19 @@ esac fi MSGMERGE=$ac_cv_path_MSGMERGE if test -n "$MSGMERGE"; then - { $as_echo "$as_me:$LINENO: result: $MSGMERGE" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 $as_echo "$MSGMERGE" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_MSGFMT+set}" = set; then +if ${ac_cv_path_MSGFMT+:} false; then : $as_echo_n "(cached) " >&6 else case $MSGFMT in @@ -4446,14 +4283,14 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_MSGFMT="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS ;; @@ -4461,19 +4298,19 @@ esac fi MSGFMT=$ac_cv_path_MSGFMT if test -n "$MSGFMT"; then - { $as_echo "$as_me:$LINENO: result: $MSGFMT" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 $as_echo "$MSGFMT" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_GMSGFMT+set}" = set; then +if ${ac_cv_path_GMSGFMT+:} false; then : $as_echo_n "(cached) " >&6 else case $GMSGFMT in @@ -4486,14 +4323,14 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" @@ -4502,33 +4339,29 @@ esac fi GMSGFMT=$ac_cv_path_GMSGFMT if test -n "$GMSGFMT"; then - { $as_echo "$as_me:$LINENO: result: $GMSGFMT" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 $as_echo "$GMSGFMT" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then - { { $as_echo "$as_me:$LINENO: error: GNU gettext tools not found; required for intltool" >&5 -$as_echo "$as_me: error: GNU gettext tools not found; required for intltool" >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "GNU gettext tools not found; required for intltool" "$LINENO" 5 fi xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then - { { $as_echo "$as_me:$LINENO: error: GNU gettext tools not found; required for intltool" >&5 -$as_echo "$as_me: error: GNU gettext tools not found; required for intltool" >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "GNU gettext tools not found; required for intltool" "$LINENO" 5 fi # Extract the first word of "perl", so it can be a program name with args. set dummy perl; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_INTLTOOL_PERL+set}" = set; then +if ${ac_cv_path_INTLTOOL_PERL+:} false; then : $as_echo_n "(cached) " >&6 else case $INTLTOOL_PERL in @@ -4541,14 +4374,14 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_INTLTOOL_PERL="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS ;; @@ -4556,41 +4389,35 @@ esac fi INTLTOOL_PERL=$ac_cv_path_INTLTOOL_PERL if test -n "$INTLTOOL_PERL"; then - { $as_echo "$as_me:$LINENO: result: $INTLTOOL_PERL" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_PERL" >&5 $as_echo "$INTLTOOL_PERL" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$INTLTOOL_PERL"; then - { { $as_echo "$as_me:$LINENO: error: perl not found" >&5 -$as_echo "$as_me: error: perl not found" >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "perl not found" "$LINENO" 5 fi -{ $as_echo "$as_me:$LINENO: checking for perl >= 5.8.1" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for perl >= 5.8.1" >&5 $as_echo_n "checking for perl >= 5.8.1... " >&6; } $INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 if test $? -ne 0; then - { { $as_echo "$as_me:$LINENO: error: perl 5.8.1 is required for intltool" >&5 -$as_echo "$as_me: error: perl 5.8.1 is required for intltool" >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "perl 5.8.1 is required for intltool" "$LINENO" 5 else IT_PERL_VERSION="`$INTLTOOL_PERL -e \"printf '%vd', $^V\"`" - { $as_echo "$as_me:$LINENO: result: $IT_PERL_VERSION" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $IT_PERL_VERSION" >&5 $as_echo "$IT_PERL_VERSION" >&6; } fi if test "x" != "xno-xml"; then - { $as_echo "$as_me:$LINENO: checking for XML::Parser" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XML::Parser" >&5 $as_echo_n "checking for XML::Parser... " >&6; } if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then - { $as_echo "$as_me:$LINENO: result: ok" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 $as_echo "ok" >&6; } else - { { $as_echo "$as_me:$LINENO: error: XML::Parser perl module is required for intltool" >&5 -$as_echo "$as_me: error: XML::Parser perl module is required for intltool" >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "XML::Parser perl module is required for intltool" "$LINENO" 5 fi fi @@ -4600,11 +4427,7 @@ fi # Set DATADIRNAME correctly if it is not set yet # (copied from glib-gettext.m4) if test -z "$DATADIRNAME"; then - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -4616,120 +4439,13 @@ extern int _nl_msg_cat_cntr; return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +if ac_fn_c_try_link "$LINENO"; then : DATADIRNAME=share else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - case $host in + case $host in *-*-solaris*) - { $as_echo "$as_me:$LINENO: checking for bind_textdomain_codeset" >&5 -$as_echo_n "checking for bind_textdomain_codeset... " >&6; } -if test "${ac_cv_func_bind_textdomain_codeset+set}" = set; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define bind_textdomain_codeset to an innocuous variant, in case declares bind_textdomain_codeset. - For example, HP-UX 11i declares gettimeofday. */ -#define bind_textdomain_codeset innocuous_bind_textdomain_codeset - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char bind_textdomain_codeset (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef bind_textdomain_codeset - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char bind_textdomain_codeset (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_bind_textdomain_codeset || defined __stub___bind_textdomain_codeset -choke me -#endif - -int -main () -{ -return bind_textdomain_codeset (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then - ac_cv_func_bind_textdomain_codeset=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_func_bind_textdomain_codeset=no -fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_bind_textdomain_codeset" >&5 -$as_echo "$ac_cv_func_bind_textdomain_codeset" >&6; } -if test "x$ac_cv_func_bind_textdomain_codeset" = x""yes; then + ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" +if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : DATADIRNAME=share else DATADIRNAME=lib @@ -4741,10 +4457,8 @@ fi ;; esac fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi @@ -4753,13 +4467,18 @@ fi + + + + + if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_PKG_CONFIG+set}" = set; then +if ${ac_cv_path_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in @@ -4772,14 +4491,14 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS ;; @@ -4787,10 +4506,10 @@ esac fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then - { $as_echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 $as_echo "$PKG_CONFIG" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -4800,9 +4519,9 @@ if test -z "$ac_cv_path_PKG_CONFIG"; then ac_pt_PKG_CONFIG=$PKG_CONFIG # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then +if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $ac_pt_PKG_CONFIG in @@ -4815,14 +4534,14 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS ;; @@ -4830,10 +4549,10 @@ esac fi ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG if test -n "$ac_pt_PKG_CONFIG"; then - { $as_echo "$as_me:$LINENO: result: $ac_pt_PKG_CONFIG" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 $as_echo "$ac_pt_PKG_CONFIG" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -4842,7 +4561,7 @@ fi else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac @@ -4855,29 +4574,28 @@ fi fi if test -n "$PKG_CONFIG"; then _pkg_min_version=0.9.0 - { $as_echo "$as_me:$LINENO: checking pkg-config is at least version $_pkg_min_version" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 $as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then - { $as_echo "$as_me:$LINENO: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } PKG_CONFIG="" fi - fi case `pwd` in *\ * | *\ *) - { $as_echo "$as_me:$LINENO: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 $as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; esac -macro_version='2.2.6b' -macro_revision='1.3017' +macro_version='2.4' +macro_revision='1.3293' @@ -4895,35 +4613,27 @@ ltmain="$ac_aux_dir/ltmain.sh" # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || - { { $as_echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5 -$as_echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 -{ $as_echo "$as_me:$LINENO: checking build system type" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } -if test "${ac_cv_build+set}" = set; then +if ${ac_cv_build+:} false; then : $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && - { { $as_echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 -$as_echo "$as_me: error: cannot guess build type; you must specify one" >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || - { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5 -$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_build" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; -*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical build" >&5 -$as_echo "$as_me: error: invalid value of canonical build" >&2;} - { (exit 1); exit 1; }; };; +*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' @@ -4939,28 +4649,24 @@ IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac -{ $as_echo "$as_me:$LINENO: checking host system type" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } -if test "${ac_cv_host+set}" = set; then +if ${ac_cv_host+:} false; then : $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || - { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5 -$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 fi fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_host" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; -*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical host" >&5 -$as_echo "$as_me: error: invalid value of canonical host" >&2;} - { (exit 1); exit 1; }; };; +*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' @@ -4976,9 +4682,78 @@ IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac -{ $as_echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5 +# Backslashify metacharacters that are still active within +# double-quoted strings. +sed_quote_subst='s/\(["`$\\]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\(["`\\]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' + +ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 +$as_echo_n "checking how to print strings... " >&6; } +# Test print first, because it will be a builtin if present. +if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' +elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='printf %s\n' +else + # Use this function as a fallback that always works. + func_fallback_echo () + { + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' + } + ECHO='func_fallback_echo' +fi + +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "" +} + +case "$ECHO" in + printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 +$as_echo "printf" >&6; } ;; + print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 +$as_echo "print -r" >&6; } ;; + *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5 +$as_echo "cat" >&6; } ;; +esac + + + + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 $as_echo_n "checking for a sed that does not truncate output... " >&6; } -if test "${ac_cv_path_SED+set}" = set; then +if ${ac_cv_path_SED+:} false; then : $as_echo_n "(cached) " >&6 else ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ @@ -4986,7 +4761,7 @@ else ac_script="$ac_script$as_nl$ac_script" done echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed - $as_unset ac_script || ac_script= + { ac_script=; unset ac_script;} if test -z "$SED"; then ac_path_SED_found=false # Loop through the user's path and test for each of PROGNAME-LIST @@ -4995,7 +4770,7 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_prog in sed gsed; do + for ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue @@ -5015,7 +4790,7 @@ case `"$ac_path_SED" --version 2>&1` in $as_echo '' >> "conftest.nl" "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - ac_count=`expr $ac_count + 1` + as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_SED_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_SED="$ac_path_SED" @@ -5030,19 +4805,17 @@ esac $ac_path_SED_found && break 3 done done -done + done IFS=$as_save_IFS if test -z "$ac_cv_path_SED"; then - { { $as_echo "$as_me:$LINENO: error: no acceptable sed could be found in \$PATH" >&5 -$as_echo "$as_me: error: no acceptable sed could be found in \$PATH" >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 fi else ac_cv_path_SED=$SED fi fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_SED" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 $as_echo "$ac_cv_path_SED" >&6; } SED="$ac_cv_path_SED" rm -f conftest.sed @@ -5060,9 +4833,9 @@ Xsed="$SED -e 1s/^X//" -{ $as_echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } -if test "${ac_cv_path_GREP+set}" = set; then +if ${ac_cv_path_GREP+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then @@ -5073,7 +4846,7 @@ for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_prog in grep ggrep; do + for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue @@ -5093,7 +4866,7 @@ case `"$ac_path_GREP" --version 2>&1` in $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - ac_count=`expr $ac_count + 1` + as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" @@ -5108,26 +4881,24 @@ esac $ac_path_GREP_found && break 3 done done -done + done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then - { { $as_echo "$as_me:$LINENO: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 -$as_echo "$as_me: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" -{ $as_echo "$as_me:$LINENO: checking for egrep" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } -if test "${ac_cv_path_EGREP+set}" = set; then +if ${ac_cv_path_EGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 @@ -5141,7 +4912,7 @@ for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_prog in egrep; do + for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue @@ -5161,7 +4932,7 @@ case `"$ac_path_EGREP" --version 2>&1` in $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - ac_count=`expr $ac_count + 1` + as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" @@ -5176,12 +4947,10 @@ esac $ac_path_EGREP_found && break 3 done done -done + done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then - { { $as_echo "$as_me:$LINENO: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 -$as_echo "$as_me: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP @@ -5189,14 +4958,14 @@ fi fi fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" -{ $as_echo "$as_me:$LINENO: checking for fgrep" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 $as_echo_n "checking for fgrep... " >&6; } -if test "${ac_cv_path_FGREP+set}" = set; then +if ${ac_cv_path_FGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 @@ -5210,7 +4979,7 @@ for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_prog in fgrep; do + for ac_prog in fgrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue @@ -5230,7 +4999,7 @@ case `"$ac_path_FGREP" --version 2>&1` in $as_echo 'FGREP' >> "conftest.nl" "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - ac_count=`expr $ac_count + 1` + as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_FGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_FGREP="$ac_path_FGREP" @@ -5245,12 +5014,10 @@ esac $ac_path_FGREP_found && break 3 done done -done + done IFS=$as_save_IFS if test -z "$ac_cv_path_FGREP"; then - { { $as_echo "$as_me:$LINENO: error: no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 -$as_echo "$as_me: error: no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_FGREP=$FGREP @@ -5258,7 +5025,7 @@ fi fi fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_FGREP" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 $as_echo "$ac_cv_path_FGREP" >&6; } FGREP="$ac_cv_path_FGREP" @@ -5284,7 +5051,7 @@ test -z "$GREP" && GREP=grep # Check whether --with-gnu-ld was given. -if test "${with_gnu_ld+set}" = set; then +if test "${with_gnu_ld+set}" = set; then : withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no @@ -5293,7 +5060,7 @@ fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. - { $as_echo "$as_me:$LINENO: checking for ld used by $CC" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 $as_echo_n "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) @@ -5323,13 +5090,13 @@ $as_echo_n "checking for ld used by $CC... " >&6; } ;; esac elif test "$with_gnu_ld" = yes; then - { $as_echo "$as_me:$LINENO: checking for GNU ld" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else - { $as_echo "$as_me:$LINENO: checking for non-GNU ld" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi -if test "${lt_cv_path_LD+set}" = set; then +if ${lt_cv_path_LD+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then @@ -5360,18 +5127,16 @@ fi LD="$lt_cv_path_LD" if test -n "$LD"; then - { $as_echo "$as_me:$LINENO: result: $LD" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5 $as_echo "$LD" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi -test -z "$LD" && { { $as_echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 -$as_echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} - { (exit 1); exit 1; }; } -{ $as_echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 +test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } -if test "${lt_cv_prog_gnu_ld+set}" = set; then +if ${lt_cv_prog_gnu_ld+:} false; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. @@ -5384,7 +5149,7 @@ case `$LD -v 2>&1 &5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5 $as_echo "$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld @@ -5396,9 +5161,9 @@ with_gnu_ld=$lt_cv_prog_gnu_ld -{ $as_echo "$as_me:$LINENO: checking for BSD- or MS-compatible name lister (nm)" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 $as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } -if test "${lt_cv_path_NM+set}" = set; then +if ${lt_cv_path_NM+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$NM"; then @@ -5445,20 +5210,23 @@ else : ${lt_cv_path_NM=no} fi fi -{ $as_echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 $as_echo "$lt_cv_path_NM" >&6; } if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. - if test -n "$ac_tool_prefix"; then - for ac_prog in "dumpbin -symbols" "link -dump -symbols" + if test -n "$DUMPBIN"; then : + # Let the user override the test. + else + if test -n "$ac_tool_prefix"; then + for ac_prog in dumpbin "link -dump" do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_DUMPBIN+set}" = set; then +if ${ac_cv_prog_DUMPBIN+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DUMPBIN"; then @@ -5469,24 +5237,24 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi DUMPBIN=$ac_cv_prog_DUMPBIN if test -n "$DUMPBIN"; then - { $as_echo "$as_me:$LINENO: result: $DUMPBIN" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 $as_echo "$DUMPBIN" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -5496,13 +5264,13 @@ fi fi if test -z "$DUMPBIN"; then ac_ct_DUMPBIN=$DUMPBIN - for ac_prog in "dumpbin -symbols" "link -dump -symbols" + for ac_prog in dumpbin "link -dump" do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; then +if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DUMPBIN"; then @@ -5513,24 +5281,24 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN if test -n "$ac_ct_DUMPBIN"; then - { $as_echo "$as_me:$LINENO: result: $ac_ct_DUMPBIN" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 $as_echo "$ac_ct_DUMPBIN" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -5543,7 +5311,7 @@ done else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac @@ -5551,6 +5319,15 @@ esac fi fi + case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols" + ;; + *) + DUMPBIN=: + ;; + esac + fi if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" @@ -5563,33 +5340,44 @@ test -z "$NM" && NM=nm -{ $as_echo "$as_me:$LINENO: checking the name lister ($NM) interface" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 $as_echo_n "checking the name lister ($NM) interface... " >&6; } -if test "${lt_cv_nm_interface+set}" = set; then +if ${lt_cv_nm_interface+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext - (eval echo "\"\$as_me:5573: $ac_compile\"" >&5) + (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 - (eval echo "\"\$as_me:5576: $NM \\\"conftest.$ac_objext\\\"\"" >&5) + (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 - (eval echo "\"\$as_me:5579: output\"" >&5) + (eval echo "\"\$as_me:$LINENO: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest* fi -{ $as_echo "$as_me:$LINENO: result: $lt_cv_nm_interface" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 $as_echo "$lt_cv_nm_interface" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 +$as_echo_n "checking whether ln -s works... " >&6; } +LN_S=$as_ln_s +if test "$LN_S" = "ln -s"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 +$as_echo "no, using $LN_S" >&6; } +fi + # find the maximum length of command line arguments -{ $as_echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 $as_echo_n "checking the maximum length of command line arguments... " >&6; } -if test "${lt_cv_sys_max_cmd_len+set}" = set; then +if ${lt_cv_sys_max_cmd_len+:} false; then : $as_echo_n "(cached) " >&6 else i=0 @@ -5622,6 +5410,11 @@ else lt_cv_sys_max_cmd_len=8192; ;; + mint*) + # On MiNT this can take a long time and run out of memory. + lt_cv_sys_max_cmd_len=8192; + ;; + amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. @@ -5686,8 +5479,8 @@ else # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. - while { test "X"`$SHELL $0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ - = "XX$teststring$teststring"; } >/dev/null 2>&1 && + while { test "X"`func_fallback_echo "$teststring$teststring" 2>/dev/null` \ + = "X$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` @@ -5707,10 +5500,10 @@ else fi if test -n $lt_cv_sys_max_cmd_len ; then - { $as_echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 $as_echo "$lt_cv_sys_max_cmd_len" >&6; } else - { $as_echo "$as_me:$LINENO: result: none" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 $as_echo "none" >&6; } fi max_cmd_len=$lt_cv_sys_max_cmd_len @@ -5724,27 +5517,27 @@ max_cmd_len=$lt_cv_sys_max_cmd_len : ${MV="mv -f"} : ${RM="rm -f"} -{ $as_echo "$as_me:$LINENO: checking whether the shell understands some XSI constructs" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5 $as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" - test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ - = c,a/b,, \ + test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ + = c,a/b,b/c, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes -{ $as_echo "$as_me:$LINENO: result: $xsi_shell" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5 $as_echo "$xsi_shell" >&6; } -{ $as_echo "$as_me:$LINENO: checking whether the shell understands \"+=\"" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5 $as_echo_n "checking whether the shell understands \"+=\"... " >&6; } lt_shell_append=no ( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ >/dev/null 2>&1 \ && lt_shell_append=yes -{ $as_echo "$as_me:$LINENO: result: $lt_shell_append" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5 $as_echo "$lt_shell_append" >&6; } @@ -5779,14 +5572,88 @@ esac -{ $as_echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 +$as_echo_n "checking how to convert $build file names to $host format... " >&6; } +if ${lt_cv_to_host_file_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 + ;; + esac + ;; + *-*-cygwin* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin + ;; + esac + ;; + * ) # unhandled hosts (and "normal" native builds) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; +esac + +fi + +to_host_file_cmd=$lt_cv_to_host_file_cmd +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 +$as_echo "$lt_cv_to_host_file_cmd" >&6; } + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 +$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } +if ${lt_cv_to_tool_file_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + #assume ordinary cross tools, or native build. +lt_cv_to_tool_file_cmd=func_convert_file_noop +case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 + ;; + esac + ;; +esac + +fi + +to_tool_file_cmd=$lt_cv_to_tool_file_cmd +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 +$as_echo "$lt_cv_to_tool_file_cmd" >&6; } + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 $as_echo_n "checking for $LD option to reload object files... " >&6; } -if test "${lt_cv_ld_reload_flag+set}" = set; then +if ${lt_cv_ld_reload_flag+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_reload_flag='-r' fi -{ $as_echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 $as_echo "$lt_cv_ld_reload_flag" >&6; } reload_flag=$lt_cv_ld_reload_flag case $reload_flag in @@ -5795,6 +5662,11 @@ case $reload_flag in esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + if test "$GCC" != yes; then + reload_cmds=false + fi + ;; darwin*) if test "$GCC" = yes; then reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' @@ -5815,9 +5687,9 @@ esac if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. set dummy ${ac_tool_prefix}objdump; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_OBJDUMP+set}" = set; then +if ${ac_cv_prog_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJDUMP"; then @@ -5828,24 +5700,24 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi OBJDUMP=$ac_cv_prog_OBJDUMP if test -n "$OBJDUMP"; then - { $as_echo "$as_me:$LINENO: result: $OBJDUMP" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 $as_echo "$OBJDUMP" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -5855,9 +5727,9 @@ if test -z "$ac_cv_prog_OBJDUMP"; then ac_ct_OBJDUMP=$OBJDUMP # Extract the first word of "objdump", so it can be a program name with args. set dummy objdump; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then +if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OBJDUMP"; then @@ -5868,24 +5740,24 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OBJDUMP="objdump" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP if test -n "$ac_ct_OBJDUMP"; then - { $as_echo "$as_me:$LINENO: result: $ac_ct_OBJDUMP" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 $as_echo "$ac_ct_OBJDUMP" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -5894,7 +5766,7 @@ fi else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac @@ -5914,9 +5786,9 @@ test -z "$OBJDUMP" && OBJDUMP=objdump -{ $as_echo "$as_me:$LINENO: checking how to recognize dependent libraries" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 $as_echo_n "checking how to recognize dependent libraries... " >&6; } -if test "${lt_cv_deplibs_check_method+set}" = set; then +if ${lt_cv_deplibs_check_method+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_file_magic_cmd='$MAGIC_CMD' @@ -5958,16 +5830,18 @@ mingw* | pw32*) # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump', # unless we find 'file', for example because we are cross-compiling. - if ( file / ) >/dev/null 2>&1; then + # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin. + if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else - lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' + # Keep this pattern in sync with the one in func_win32_libid. + lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; -cegcc) +cegcc*) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' @@ -5997,6 +5871,10 @@ gnu*) lt_cv_deplibs_check_method=pass_all ;; +haiku*) + lt_cv_deplibs_check_method=pass_all + ;; + hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in @@ -6005,11 +5883,11 @@ hpux10.20* | hpux11*) lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) - lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]' + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]' lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) - lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac @@ -6031,7 +5909,7 @@ irix5* | irix6* | nonstopux*) ;; # This must be Linux ELF. -linux* | k*bsd*-gnu) +linux* | k*bsd*-gnu | kopensolaris*-gnu) lt_cv_deplibs_check_method=pass_all ;; @@ -6041,85 +5919,251 @@ netbsd*) else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' fi - ;; + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +*nto* | *qnx*) + lt_cv_deplibs_check_method=pass_all + ;; + +openbsd*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +tpf*) + lt_cv_deplibs_check_method=pass_all + ;; +esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 +$as_echo "$lt_cv_deplibs_check_method" >&6; } + +file_magic_glob= +want_nocaseglob=no +if test "$build" = "$host"; then + case $host_os in + mingw* | pw32*) + if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then + want_nocaseglob=yes + else + file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` + fi + ;; + esac +fi + +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown + + + + + + + + + + + + + + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. +set dummy ${ac_tool_prefix}dlltool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DLLTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DLLTOOL"; then + ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DLLTOOL=$ac_cv_prog_DLLTOOL +if test -n "$DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 +$as_echo "$DLLTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DLLTOOL"; then + ac_ct_DLLTOOL=$DLLTOOL + # Extract the first word of "dlltool", so it can be a program name with args. +set dummy dlltool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DLLTOOL"; then + ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_DLLTOOL="dlltool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL +if test -n "$ac_ct_DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 +$as_echo "$ac_ct_DLLTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_DLLTOOL" = x; then + DLLTOOL="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DLLTOOL=$ac_ct_DLLTOOL + fi +else + DLLTOOL="$ac_cv_prog_DLLTOOL" +fi -newos6*) - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=/usr/lib/libnls.so - ;; +test -z "$DLLTOOL" && DLLTOOL=dlltool -*nto* | *qnx*) - lt_cv_deplibs_check_method=pass_all - ;; -openbsd*) - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' - else - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' - fi - ;; -osf3* | osf4* | osf5*) - lt_cv_deplibs_check_method=pass_all - ;; -rdos*) - lt_cv_deplibs_check_method=pass_all - ;; -solaris*) - lt_cv_deplibs_check_method=pass_all - ;; -sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - lt_cv_deplibs_check_method=pass_all - ;; -sysv4 | sysv4.3*) - case $host_vendor in - motorola) - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` - ;; - ncr) - lt_cv_deplibs_check_method=pass_all - ;; - sequent) - lt_cv_file_magic_cmd='/bin/file' - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' - ;; - sni) - lt_cv_file_magic_cmd='/bin/file' - lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" - lt_cv_file_magic_test_file=/lib/libc.so - ;; - siemens) - lt_cv_deplibs_check_method=pass_all + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 +$as_echo_n "checking how to associate runtime and link libraries... " >&6; } +if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_sharedlib_from_linklib_cmd='unknown' + +case $host_os in +cygwin* | mingw* | pw32* | cegcc*) + # two different shell functions defined in ltmain.sh + # decide which to use based on capabilities of $DLLTOOL + case `$DLLTOOL --help 2>&1` in + *--identify-strict*) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ;; - pc) - lt_cv_deplibs_check_method=pass_all + *) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ;; esac ;; - -tpf*) - lt_cv_deplibs_check_method=pass_all +*) + # fallback: assume linklib IS sharedlib + lt_cv_sharedlib_from_linklib_cmd="$ECHO" ;; esac fi -{ $as_echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5 -$as_echo "$lt_cv_deplibs_check_method" >&6; } -file_magic_cmd=$lt_cv_file_magic_cmd -deplibs_check_method=$lt_cv_deplibs_check_method -test -z "$deplibs_check_method" && deplibs_check_method=unknown - - - - - +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 +$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } +sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd +test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO @@ -6128,11 +6172,13 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. -set dummy ${ac_tool_prefix}ar; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 + for ac_prog in ar + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_AR+set}" = set; then +if ${ac_cv_prog_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AR"; then @@ -6143,36 +6189,40 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_AR="${ac_tool_prefix}ar" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + ac_cv_prog_AR="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then - { $as_echo "$as_me:$LINENO: result: $AR" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 $as_echo "$AR" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi + test -n "$AR" && break + done fi -if test -z "$ac_cv_prog_AR"; then +if test -z "$AR"; then ac_ct_AR=$AR - # Extract the first word of "ar", so it can be a program name with args. -set dummy ar; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 + for ac_prog in ar +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_AR+set}" = set; then +if ${ac_cv_prog_ac_ct_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AR"; then @@ -6183,50 +6233,110 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_AR="ar" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + ac_cv_prog_ac_ct_AR="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then - { $as_echo "$as_me:$LINENO: result: $ac_ct_AR" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 $as_echo "$ac_ct_AR" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi + + test -n "$ac_ct_AR" && break +done + if test "x$ac_ct_AR" = x; then AR="false" else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR fi -else - AR="$ac_cv_prog_AR" fi -test -z "$AR" && AR=ar -test -z "$AR_FLAGS" && AR_FLAGS=cru +: ${AR=ar} +: ${AR_FLAGS=cru} + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 +$as_echo_n "checking for archiver @FILE support... " >&6; } +if ${lt_cv_ar_at_file+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ar_at_file=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + echo conftest.$ac_objext > conftest.lst + lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 + (eval $lt_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test "$ac_status" -eq 0; then + # Ensure the archiver fails upon bogus file names. + rm -f conftest.$ac_objext libconftest.a + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 + (eval $lt_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test "$ac_status" -ne 0; then + lt_cv_ar_at_file=@ + fi + fi + rm -f conftest.* libconftest.a + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 +$as_echo "$lt_cv_ar_at_file" >&6; } + +if test "x$lt_cv_ar_at_file" = xno; then + archiver_list_spec= +else + archiver_list_spec=$lt_cv_ar_at_file +fi + + @@ -6235,9 +6345,9 @@ test -z "$AR_FLAGS" && AR_FLAGS=cru if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_STRIP+set}" = set; then +if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then @@ -6248,24 +6358,24 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then - { $as_echo "$as_me:$LINENO: result: $STRIP" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -6275,9 +6385,9 @@ if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then +if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then @@ -6288,24 +6398,24 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then - { $as_echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -6314,7 +6424,7 @@ fi else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac @@ -6334,9 +6444,9 @@ test -z "$STRIP" && STRIP=: if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_RANLIB+set}" = set; then +if ${ac_cv_prog_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then @@ -6347,24 +6457,24 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then - { $as_echo "$as_me:$LINENO: result: $RANLIB" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 $as_echo "$RANLIB" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -6374,9 +6484,9 @@ if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then +if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then @@ -6387,24 +6497,24 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_RANLIB="ranlib" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then - { $as_echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 $as_echo "$ac_ct_RANLIB" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -6413,7 +6523,7 @@ fi else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac @@ -6447,6 +6557,18 @@ if test -n "$RANLIB"; then old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi +case $host_os in + darwin*) + lock_old_archive_extraction=yes ;; + *) + lock_old_archive_extraction=no ;; +esac + + + + + + @@ -6491,9 +6613,9 @@ compiler=$CC # Check for command to grab the raw symbol name followed by C symbol from nm. -{ $as_echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 $as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } -if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then +if ${lt_cv_sys_global_symbol_pipe+:} false; then : $as_echo_n "(cached) " >&6 else @@ -6554,8 +6676,8 @@ esac lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address -lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" -lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" +lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # Handle CRLF in mingw tool chain opt_cr= @@ -6591,6 +6713,7 @@ for ac_symprfx in "" "_"; do else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" # Check to see that the pipe works correctly. pipe_works=no @@ -6609,18 +6732,18 @@ void nm_test_func(void){} int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then # Now try to grab the symbols. nlist=conftest.nm - if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5 - (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5 + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5 + (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5 ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && test -s "$nlist"; then + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" @@ -6632,6 +6755,18 @@ _LT_EOF if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) +/* DATA imports from DLLs on WIN32 con't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT_DLSYM_CONST +#elif defined(__osf__) +/* This system does not cope well with relocations in const data. */ +# define LT_DLSYM_CONST +#else +# define LT_DLSYM_CONST const +#endif + #ifdef __cplusplus extern "C" { #endif @@ -6643,7 +6778,7 @@ _LT_EOF cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ -const struct { +LT_DLSYM_CONST struct { const char *name; void *address; } @@ -6669,19 +6804,19 @@ static const void *lt_preloaded_setup() { _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext - lt_save_LIBS="$LIBS" - lt_save_CFLAGS="$CFLAGS" + lt_globsym_save_LIBS=$LIBS + lt_globsym_save_CFLAGS=$CFLAGS LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" - if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && test -s conftest${ac_exeext}; then + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext}; then pipe_works=yes fi - LIBS="$lt_save_LIBS" - CFLAGS="$lt_save_CFLAGS" + LIBS=$lt_globsym_save_LIBS + CFLAGS=$lt_globsym_save_CFLAGS else echo "cannot find nm_test_func in $nlist" >&5 fi @@ -6711,13 +6846,31 @@ if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then - { $as_echo "$as_me:$LINENO: result: failed" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 $as_echo "failed" >&6; } else - { $as_echo "$as_me:$LINENO: result: ok" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 $as_echo "ok" >&6; } fi +# Response file support. +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + nm_file_list_spec='@' +elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then + nm_file_list_spec='@' +fi + + + + + + + + + + + + @@ -6733,14 +6886,45 @@ fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 +$as_echo_n "checking for sysroot... " >&6; } +# Check whether --with-sysroot was given. +if test "${with_sysroot+set}" = set; then : + withval=$with_sysroot; +else + with_sysroot=no +fi + + +lt_sysroot= +case ${with_sysroot} in #( + yes) + if test "$GCC" = yes; then + lt_sysroot=`$CC --print-sysroot 2>/dev/null` + fi + ;; #( + /*) + lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + ;; #( + no|'') + ;; #( + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5 +$as_echo "${with_sysroot}" >&6; } + as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 + ;; +esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 +$as_echo "${lt_sysroot:-no}" >&6; } # Check whether --enable-libtool-lock was given. -if test "${enable_libtool_lock+set}" = set; then +if test "${enable_libtool_lock+set}" = set; then : enableval=$enable_libtool_lock; fi @@ -6752,11 +6936,11 @@ case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" @@ -6770,12 +6954,12 @@ ia64-*-hpux*) ;; *-*-irix6*) # Find out which ABI we are using. - echo '#line 6773 "configure"' > conftest.$ac_ext - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + echo '#line '$LINENO' "configure"' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) @@ -6809,11 +6993,11 @@ x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *32-bit*) case $host in @@ -6862,9 +7046,9 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" - { $as_echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 $as_echo_n "checking whether the C compiler needs -belf... " >&6; } -if test "${lt_cv_cc_needs_belf+set}" = set; then +if ${lt_cv_cc_needs_belf+:} false; then : $as_echo_n "(cached) " >&6 else ac_ext=c @@ -6873,11 +7057,7 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -6888,38 +7068,13 @@ main () return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +if ac_fn_c_try_link "$LINENO"; then : lt_cv_cc_needs_belf=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - lt_cv_cc_needs_belf=no + lt_cv_cc_needs_belf=no fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -6927,7 +7082,7 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $ ac_compiler_gnu=$ac_cv_c_compiler_gnu fi -{ $as_echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 $as_echo "$lt_cv_cc_needs_belf" >&6; } if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf @@ -6937,11 +7092,11 @@ $as_echo "$lt_cv_cc_needs_belf" >&6; } sparc*-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in @@ -6959,7 +7114,124 @@ sparc*-*solaris*) ;; esac -need_locks="$enable_libtool_lock" +need_locks="$enable_libtool_lock" + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. +set dummy ${ac_tool_prefix}mt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$MANIFEST_TOOL"; then + ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL +if test -n "$MANIFEST_TOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 +$as_echo "$MANIFEST_TOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_MANIFEST_TOOL"; then + ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL + # Extract the first word of "mt", so it can be a program name with args. +set dummy mt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_MANIFEST_TOOL"; then + ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL +if test -n "$ac_ct_MANIFEST_TOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 +$as_echo "$ac_ct_MANIFEST_TOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_MANIFEST_TOOL" = x; then + MANIFEST_TOOL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL + fi +else + MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" +fi + +test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 +$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } +if ${lt_cv_path_mainfest_tool+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_path_mainfest_tool=no + echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 + $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out + cat conftest.err >&5 + if $GREP 'Manifest Tool' conftest.out > /dev/null; then + lt_cv_path_mainfest_tool=yes + fi + rm -f conftest* +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 +$as_echo "$lt_cv_path_mainfest_tool" >&6; } +if test "x$lt_cv_path_mainfest_tool" != xyes; then + MANIFEST_TOOL=: +fi + + + + case $host_os in @@ -6967,9 +7239,9 @@ need_locks="$enable_libtool_lock" if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_DSYMUTIL+set}" = set; then +if ${ac_cv_prog_DSYMUTIL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DSYMUTIL"; then @@ -6980,24 +7252,24 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi DSYMUTIL=$ac_cv_prog_DSYMUTIL if test -n "$DSYMUTIL"; then - { $as_echo "$as_me:$LINENO: result: $DSYMUTIL" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 $as_echo "$DSYMUTIL" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -7007,9 +7279,9 @@ if test -z "$ac_cv_prog_DSYMUTIL"; then ac_ct_DSYMUTIL=$DSYMUTIL # Extract the first word of "dsymutil", so it can be a program name with args. set dummy dsymutil; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then +if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DSYMUTIL"; then @@ -7020,24 +7292,24 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL if test -n "$ac_ct_DSYMUTIL"; then - { $as_echo "$as_me:$LINENO: result: $ac_ct_DSYMUTIL" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 $as_echo "$ac_ct_DSYMUTIL" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -7046,7 +7318,7 @@ fi else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac @@ -7059,9 +7331,9 @@ fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. set dummy ${ac_tool_prefix}nmedit; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_NMEDIT+set}" = set; then +if ${ac_cv_prog_NMEDIT+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$NMEDIT"; then @@ -7072,24 +7344,24 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi NMEDIT=$ac_cv_prog_NMEDIT if test -n "$NMEDIT"; then - { $as_echo "$as_me:$LINENO: result: $NMEDIT" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 $as_echo "$NMEDIT" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -7099,9 +7371,9 @@ if test -z "$ac_cv_prog_NMEDIT"; then ac_ct_NMEDIT=$NMEDIT # Extract the first word of "nmedit", so it can be a program name with args. set dummy nmedit; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then +if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_NMEDIT"; then @@ -7112,24 +7384,24 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_NMEDIT="nmedit" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT if test -n "$ac_ct_NMEDIT"; then - { $as_echo "$as_me:$LINENO: result: $ac_ct_NMEDIT" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 $as_echo "$ac_ct_NMEDIT" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -7138,7 +7410,7 @@ fi else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac @@ -7151,9 +7423,9 @@ fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. set dummy ${ac_tool_prefix}lipo; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_LIPO+set}" = set; then +if ${ac_cv_prog_LIPO+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$LIPO"; then @@ -7164,24 +7436,24 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_LIPO="${ac_tool_prefix}lipo" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi LIPO=$ac_cv_prog_LIPO if test -n "$LIPO"; then - { $as_echo "$as_me:$LINENO: result: $LIPO" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 $as_echo "$LIPO" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -7191,9 +7463,9 @@ if test -z "$ac_cv_prog_LIPO"; then ac_ct_LIPO=$LIPO # Extract the first word of "lipo", so it can be a program name with args. set dummy lipo; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then +if ${ac_cv_prog_ac_ct_LIPO+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_LIPO"; then @@ -7204,24 +7476,24 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_LIPO="lipo" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO if test -n "$ac_ct_LIPO"; then - { $as_echo "$as_me:$LINENO: result: $ac_ct_LIPO" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 $as_echo "$ac_ct_LIPO" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -7230,7 +7502,7 @@ fi else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac @@ -7243,9 +7515,9 @@ fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. set dummy ${ac_tool_prefix}otool; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_OTOOL+set}" = set; then +if ${ac_cv_prog_OTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL"; then @@ -7256,24 +7528,24 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OTOOL="${ac_tool_prefix}otool" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi OTOOL=$ac_cv_prog_OTOOL if test -n "$OTOOL"; then - { $as_echo "$as_me:$LINENO: result: $OTOOL" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 $as_echo "$OTOOL" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -7283,9 +7555,9 @@ if test -z "$ac_cv_prog_OTOOL"; then ac_ct_OTOOL=$OTOOL # Extract the first word of "otool", so it can be a program name with args. set dummy otool; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; then +if ${ac_cv_prog_ac_ct_OTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL"; then @@ -7296,24 +7568,24 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OTOOL="otool" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL if test -n "$ac_ct_OTOOL"; then - { $as_echo "$as_me:$LINENO: result: $ac_ct_OTOOL" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 $as_echo "$ac_ct_OTOOL" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -7322,7 +7594,7 @@ fi else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac @@ -7335,9 +7607,9 @@ fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. set dummy ${ac_tool_prefix}otool64; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_OTOOL64+set}" = set; then +if ${ac_cv_prog_OTOOL64+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL64"; then @@ -7348,24 +7620,24 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi OTOOL64=$ac_cv_prog_OTOOL64 if test -n "$OTOOL64"; then - { $as_echo "$as_me:$LINENO: result: $OTOOL64" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 $as_echo "$OTOOL64" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -7375,9 +7647,9 @@ if test -z "$ac_cv_prog_OTOOL64"; then ac_ct_OTOOL64=$OTOOL64 # Extract the first word of "otool64", so it can be a program name with args. set dummy otool64; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; then +if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL64"; then @@ -7388,24 +7660,24 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OTOOL64="otool64" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 if test -n "$ac_ct_OTOOL64"; then - { $as_echo "$as_me:$LINENO: result: $ac_ct_OTOOL64" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 $as_echo "$ac_ct_OTOOL64" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -7414,7 +7686,7 @@ fi else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac @@ -7450,9 +7722,9 @@ fi - { $as_echo "$as_me:$LINENO: checking for -single_module linker flag" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 $as_echo_n "checking for -single_module linker flag... " >&6; } -if test "${lt_cv_apple_cc_single_mod+set}" = set; then +if ${lt_cv_apple_cc_single_mod+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_apple_cc_single_mod=no @@ -7477,22 +7749,18 @@ else rm -f conftest.* fi fi -{ $as_echo "$as_me:$LINENO: result: $lt_cv_apple_cc_single_mod" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 $as_echo "$lt_cv_apple_cc_single_mod" >&6; } - { $as_echo "$as_me:$LINENO: checking for -exported_symbols_list linker flag" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 $as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } -if test "${lt_cv_ld_exported_symbols_list+set}" = set; then +if ${lt_cv_ld_exported_symbols_list+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -7503,43 +7771,50 @@ main () return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +if ac_fn_c_try_link "$LINENO"; then : lt_cv_ld_exported_symbols_list=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - lt_cv_ld_exported_symbols_list=no + lt_cv_ld_exported_symbols_list=no fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" fi -{ $as_echo "$as_me:$LINENO: result: $lt_cv_ld_exported_symbols_list" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 $as_echo "$lt_cv_ld_exported_symbols_list" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 +$as_echo_n "checking for -force_load linker flag... " >&6; } +if ${lt_cv_ld_force_load+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_force_load=no + cat > conftest.c << _LT_EOF +int forced_loaded() { return 2;} +_LT_EOF + echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 + echo "$AR cru libconftest.a conftest.o" >&5 + $AR cru libconftest.a conftest.o 2>&5 + echo "$RANLIB libconftest.a" >&5 + $RANLIB libconftest.a 2>&5 + cat > conftest.c << _LT_EOF +int main() { return 0;} +_LT_EOF + echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err + _lt_result=$? + if test -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; then + lt_cv_ld_force_load=yes + else + cat conftest.err >&5 + fi + rm -f conftest.err libconftest.a conftest conftest.c + rm -rf conftest.dSYM + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 +$as_echo "$lt_cv_ld_force_load" >&6; } case $host_os in rhapsody* | darwin1.[012]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; @@ -7567,7 +7842,7 @@ $as_echo "$lt_cv_ld_exported_symbols_list" >&6; } else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi - if test "$DSYMUTIL" != ":"; then + if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= @@ -7580,14 +7855,14 @@ ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then - if test "${ac_cv_prog_CPP+set}" = set; then + if ${ac_cv_prog_CPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded @@ -7602,11 +7877,7 @@ do # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include @@ -7615,78 +7886,34 @@ cat >>conftest.$ac_ext <<_ACEOF #endif Syntax error _ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - : -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 +if ac_fn_c_try_cpp "$LINENO"; then : +else # Broken: fails on valid input. continue fi - -rm -f conftest.err conftest.$ac_ext +rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then +if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - # Passes both tests. ac_preproc_ok=: break fi - -rm -f conftest.err conftest.$ac_ext +rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : break fi @@ -7698,7 +7925,7 @@ fi else ac_cv_prog_CPP=$CPP fi -{ $as_echo "$as_me:$LINENO: result: $CPP" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes @@ -7709,11 +7936,7 @@ do # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include @@ -7722,87 +7945,40 @@ cat >>conftest.$ac_ext <<_ACEOF #endif Syntax error _ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - : -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 +if ac_fn_c_try_cpp "$LINENO"; then : +else # Broken: fails on valid input. continue fi - -rm -f conftest.err conftest.$ac_ext +rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then +if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - # Passes both tests. ac_preproc_ok=: break fi - -rm -f conftest.err conftest.$ac_ext +rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then - : +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + else - { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ { $as_echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; }; } +as_fn_error $? "C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c @@ -7812,16 +7988,12 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $ ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:$LINENO: checking for ANSI C header files" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } -if test "${ac_cv_header_stdc+set}" = set; then +if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include @@ -7836,48 +8008,23 @@ main () return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then +if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_header_stdc=no + ac_cv_header_stdc=no fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memchr" >/dev/null 2>&1; then - : + $EGREP "memchr" >/dev/null 2>&1; then : + else ac_cv_header_stdc=no fi @@ -7887,18 +8034,14 @@ fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "free" >/dev/null 2>&1; then - : + $EGREP "free" >/dev/null 2>&1; then : + else ac_cv_header_stdc=no fi @@ -7908,14 +8051,10 @@ fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then + if test "$cross_compiling" = yes; then : : else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include @@ -7942,118 +8081,33 @@ main () return 0; } _ACEOF -rm -f conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : -else - $as_echo "$as_me: program exited with status $ac_status" >&5 -$as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 +if ac_fn_c_try_run "$LINENO"; then : -( exit $ac_status ) -ac_cv_header_stdc=no +else + ac_cv_header_stdc=no fi -rm -rf conftest.dSYM -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext fi - fi fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then -cat >>confdefs.h <<\_ACEOF -#define STDC_HEADERS 1 -_ACEOF +$as_echo "#define STDC_HEADERS 1" >>confdefs.h fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. - - - - - - - - - for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h -do -as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 -$as_echo_n "checking for $ac_header... " >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default - -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - eval "$as_ac_Header=yes" -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - eval "$as_ac_Header=no" -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -ac_res=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -as_val=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - if test "x$as_val" = x""yes; then +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default +" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF @@ -8063,62 +8117,13 @@ fi done - for ac_header in dlfcn.h -do -as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 -$as_echo_n "checking for $ac_header... " >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default - -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - eval "$as_ac_Header=yes" -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - eval "$as_ac_Header=no" -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -ac_res=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -as_val=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - if test "x$as_val" = x""yes; then +do : + ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default +" +if test "x$ac_cv_header_dlfcn_h" = xyes; then : cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +#define HAVE_DLFCN_H 1 _ACEOF fi @@ -8127,6 +8132,8 @@ done + + # Set options @@ -8138,7 +8145,7 @@ done # Check whether --enable-shared was given. -if test "${enable_shared+set}" = set; then +if test "${enable_shared+set}" = set; then : enableval=$enable_shared; p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; @@ -8169,7 +8176,7 @@ fi # Check whether --enable-static was given. -if test "${enable_static+set}" = set; then +if test "${enable_static+set}" = set; then : enableval=$enable_static; p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; @@ -8201,7 +8208,7 @@ fi # Check whether --with-pic was given. -if test "${with_pic+set}" = set; then +if test "${with_pic+set}" = set; then : withval=$with_pic; pic_mode="$withval" else pic_mode=default @@ -8217,7 +8224,7 @@ test -z "$pic_mode" && pic_mode=default # Check whether --enable-fast-install was given. -if test "${enable_fast_install+set}" = set; then +if test "${enable_fast_install+set}" = set; then : enableval=$enable_fast_install; p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; @@ -8277,6 +8284,7 @@ LIBTOOL='$(SHELL) $(top_builddir)/libtool' + test -z "$LN_S" && LN_S="ln -s" @@ -8298,9 +8306,9 @@ if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi -{ $as_echo "$as_me:$LINENO: checking for objdir" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 $as_echo_n "checking for objdir... " >&6; } -if test "${lt_cv_objdir+set}" = set; then +if ${lt_cv_objdir+:} false; then : $as_echo_n "(cached) " >&6 else rm -f .libs 2>/dev/null @@ -8313,7 +8321,7 @@ else fi rmdir .libs 2>/dev/null fi -{ $as_echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 $as_echo "$lt_cv_objdir" >&6; } objdir=$lt_cv_objdir @@ -8328,47 +8336,17 @@ _ACEOF - - - - - - - - - - - - - case $host_os in aix3*) - # AIX sometimes has problems with the GCC collect2 program. For some - # reason, if we set the COLLECT_NAMES environment variable, the problems - # vanish in a puff of smoke. - if test "X${COLLECT_NAMES+set}" != Xset; then - COLLECT_NAMES= - export COLLECT_NAMES - fi - ;; -esac - -# Sed substitution that helps us do robust quoting. It backslashifies -# metacharacters that are still active within double-quoted strings. -sed_quote_subst='s/\(["`$\\]\)/\\\1/g' - -# Same as above, but do not quote variable references. -double_quote_subst='s/\(["`\\]\)/\\\1/g' - -# Sed substitution to delay expansion of an escaped shell variable in a -# double_quote_subst'ed string. -delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' - -# Sed substitution to delay expansion of an escaped single quote. -delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' - -# Sed substitution to avoid accidental globbing in evaled expressions -no_glob_subst='s/\*/\\\*/g' + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac # Global variables: ofile=libtool @@ -8398,7 +8376,7 @@ for cc_temp in $compiler""; do *) break;; esac done -cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` +cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` # Only perform the check for file, if the check method requires it @@ -8406,9 +8384,9 @@ test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then - { $as_echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 $as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } -if test "${lt_cv_path_MAGIC_CMD+set}" = set; then +if ${lt_cv_path_MAGIC_CMD+:} false; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in @@ -8459,10 +8437,10 @@ fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then - { $as_echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -8472,9 +8450,9 @@ fi if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then - { $as_echo "$as_me:$LINENO: checking for file" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 $as_echo_n "checking for file... " >&6; } -if test "${lt_cv_path_MAGIC_CMD+set}" = set; then +if ${lt_cv_path_MAGIC_CMD+:} false; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in @@ -8525,10 +8503,10 @@ fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then - { $as_echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -8603,11 +8581,16 @@ if test -n "$compiler"; then lt_prog_compiler_no_builtin_flag= if test "$GCC" = yes; then - lt_prog_compiler_no_builtin_flag=' -fno-builtin' + case $cc_basename in + nvcc*) + lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; + *) + lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; + esac - { $as_echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 $as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } -if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then +if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_rtti_exceptions=no @@ -8623,15 +8606,15 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:8626: $lt_compile\"" >&5) + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:8630: \$? = $ac_status" >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. - $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes @@ -8640,7 +8623,7 @@ else $RM conftest* fi -{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 $as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then @@ -8660,8 +8643,6 @@ fi lt_prog_compiler_pic= lt_prog_compiler_static= -{ $as_echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 -$as_echo_n "checking for $compiler option to produce PIC... " >&6; } if test "$GCC" = yes; then lt_prog_compiler_wl='-Wl,' @@ -8709,6 +8690,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } lt_prog_compiler_pic='-fno-common' ;; + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + lt_prog_compiler_static= + ;; + hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag @@ -8751,6 +8738,13 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } lt_prog_compiler_pic='-fPIC' ;; esac + + case $cc_basename in + nvcc*) # Cuda Compiler Driver 2.2 + lt_prog_compiler_wl='-Xlinker ' + lt_prog_compiler_pic='-Xcompiler -fPIC' + ;; + esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in @@ -8792,7 +8786,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } lt_prog_compiler_static='-non_shared' ;; - linux* | k*bsd*-gnu) + linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) @@ -8813,7 +8807,13 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } lt_prog_compiler_pic='--shared' lt_prog_compiler_static='--static' ;; - pgcc* | pgf77* | pgf90* | pgf95*) + nagfor*) + # NAG Fortran compiler + lt_prog_compiler_wl='-Wl,-Wl,,' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl='-Wl,' @@ -8825,25 +8825,25 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } # All Alpha code is PIC. lt_prog_compiler_static='-non_shared' ;; - xl*) - # IBM XL C 8.0/Fortran 10.1 on PPC + xl* | bgxl* | bgf* | mpixl*) + # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-qpic' lt_prog_compiler_static='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) - # Sun C 5.9 + *Sun\ F* | *Sun*Fortran*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' - lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_wl='' ;; - *Sun\ F*) - # Sun Fortran 8.3 passes all unrecognized flags to the linker + *Sun\ C*) + # Sun C 5.9 lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' - lt_prog_compiler_wl='' + lt_prog_compiler_wl='-Wl,' ;; esac ;; @@ -8875,7 +8875,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' case $cc_basename in - f77* | f90* | f95*) + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) lt_prog_compiler_wl='-Qoption ld ';; *) lt_prog_compiler_wl='-Wl,';; @@ -8932,21 +8932,25 @@ case $host_os in lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" ;; esac -{ $as_echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5 -$as_echo "$lt_prog_compiler_pic" >&6; } - - - - +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 +$as_echo_n "checking for $compiler option to produce PIC... " >&6; } +if ${lt_cv_prog_compiler_pic+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic=$lt_prog_compiler_pic +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 +$as_echo "$lt_cv_prog_compiler_pic" >&6; } +lt_prog_compiler_pic=$lt_cv_prog_compiler_pic # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic"; then - { $as_echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } -if test "${lt_cv_prog_compiler_pic_works+set}" = set; then +if ${lt_cv_prog_compiler_pic_works+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works=no @@ -8962,15 +8966,15 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:8965: $lt_compile\"" >&5) + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:8969: \$? = $ac_status" >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. - $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works=yes @@ -8979,7 +8983,7 @@ else $RM conftest* fi -{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 $as_echo "$lt_cv_prog_compiler_pic_works" >&6; } if test x"$lt_cv_prog_compiler_pic_works" = xyes; then @@ -8999,13 +9003,18 @@ fi + + + + + # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" -{ $as_echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } -if test "${lt_cv_prog_compiler_static_works+set}" = set; then +if ${lt_cv_prog_compiler_static_works+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works=no @@ -9018,7 +9027,7 @@ else if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 - $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works=yes @@ -9031,7 +9040,7 @@ else LDFLAGS="$save_LDFLAGS" fi -{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 $as_echo "$lt_cv_prog_compiler_static_works" >&6; } if test x"$lt_cv_prog_compiler_static_works" = xyes; then @@ -9046,9 +9055,9 @@ fi - { $as_echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } -if test "${lt_cv_prog_compiler_c_o+set}" = set; then +if ${lt_cv_prog_compiler_c_o+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no @@ -9067,16 +9076,16 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:9070: $lt_compile\"" >&5) + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:9074: \$? = $ac_status" >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings - $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes @@ -9093,7 +9102,7 @@ else $RM conftest* fi -{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } @@ -9101,9 +9110,9 @@ $as_echo "$lt_cv_prog_compiler_c_o" >&6; } - { $as_echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } -if test "${lt_cv_prog_compiler_c_o+set}" = set; then +if ${lt_cv_prog_compiler_c_o+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no @@ -9122,16 +9131,16 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:9125: $lt_compile\"" >&5) + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:9129: \$? = $ac_status" >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings - $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes @@ -9148,7 +9157,7 @@ else $RM conftest* fi -{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } @@ -9157,7 +9166,7 @@ $as_echo "$lt_cv_prog_compiler_c_o" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user - { $as_echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 $as_echo_n "checking if we can lock with hard links... " >&6; } hard_links=yes $RM conftest* @@ -9165,10 +9174,10 @@ $as_echo_n "checking if we can lock with hard links... " >&6; } touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no - { $as_echo "$as_me:$LINENO: result: $hard_links" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 $as_echo "$hard_links" >&6; } if test "$hard_links" = no; then - { $as_echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 $as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi @@ -9181,7 +9190,7 @@ fi - { $as_echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } runpath_var= @@ -9244,7 +9253,33 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie esac ld_shlibs=yes + + # On some targets, GNU ld is compatible enough with the native linker + # that we're better off using the native interface for both. + lt_use_gnu_ld_interface=no if test "$with_gnu_ld" = yes; then + case $host_os in + aix*) + # The AIX port of GNU ld has always aspired to compatibility + # with the native linker. However, as the warning in the GNU ld + # block says, versions before 2.19.5* couldn't really create working + # shared libraries, regardless of the interface used. + case `$LD -v 2>&1` in + *\ \(GNU\ Binutils\)\ 2.19.5*) ;; + *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; + *\ \(GNU\ Binutils\)\ [3-9]*) ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + fi + + if test "$lt_use_gnu_ld_interface" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' @@ -9262,6 +9297,7 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie fi supports_anon_versioning=no case `$LD -v 2>&1` in + *GNU\ gold*) supports_anon_versioning=yes ;; *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... @@ -9277,11 +9313,12 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie ld_shlibs=no cat <<_LT_EOF 1>&2 -*** Warning: the GNU linker, at least up to release 2.9.1, is reported +*** Warning: the GNU linker, at least up to release 2.19, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you -*** really care for shared libraries, you may want to modify your PATH -*** so that a non-GNU linker is found, and then restart. +*** really care for shared libraries, you may want to install binutils +*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. +*** You will then need to restart the configuration process. _LT_EOF fi @@ -9317,10 +9354,12 @@ _LT_EOF # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' + export_dynamic_flag_spec='${wl}--export-all-symbols' allow_undefined_flag=unsupported always_export_symbols=no enable_shared_with_static_runtimes=yes - export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' + exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' @@ -9338,6 +9377,11 @@ _LT_EOF fi ;; + haiku*) + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + link_all_deplibs=yes + ;; + interix[3-9]*) hardcode_direct=no hardcode_shlibpath_var=no @@ -9353,7 +9397,7 @@ _LT_EOF archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; - gnu* | linux* | tpf* | k*bsd*-gnu) + gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in @@ -9363,15 +9407,16 @@ _LT_EOF if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then - tmp_addflag= + tmp_addflag=' $pic_flag' tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler - whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; - pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers - whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group f77 and f90 compilers + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; @@ -9382,13 +9427,17 @@ _LT_EOF lf95*) # Lahey Fortran 8.1 whole_archive_flag_spec= tmp_sharedflag='--shared' ;; - xl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) + xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; + nvcc*) # Cuda Compiler Driver 2.2 + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + compiler_needs_object=yes + ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 - whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 @@ -9404,17 +9453,17 @@ _LT_EOF fi case $cc_basename in - xlf*) + xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' hardcode_libdir_flag_spec= hardcode_libdir_flag_spec_ld='-rpath $libdir' - archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' + archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ - $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac @@ -9428,8 +9477,8 @@ _LT_EOF archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; @@ -9447,8 +9496,8 @@ _LT_EOF _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi @@ -9494,8 +9543,8 @@ _LT_EOF *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi @@ -9535,8 +9584,10 @@ _LT_EOF else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm + # Also, AIX nm treats weak defined symbols like other global + # defined symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then - export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi @@ -9623,11 +9674,13 @@ _LT_EOF allow_undefined_flag='-berok' # Determine the default libpath from the value encoded in an # empty executable. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + if test "${lt_cv_aix_libpath+set}" = set; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath_+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -9638,54 +9691,34 @@ main () return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +if ac_fn_c_try_link "$LINENO"; then : -lt_aix_libpath_sed=' - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\(.*\)$/\1/ - p - } - }' -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then - aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi fi -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_="/usr/lib:/lib" + fi fi -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + aix_libpath=$lt_cv_aix_libpath_ +fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' @@ -9694,11 +9727,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi else # Determine the default libpath from the value encoded in an # empty executable. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + if test "${lt_cv_aix_libpath+set}" = set; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath_+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -9709,59 +9744,44 @@ main () return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +if ac_fn_c_try_link "$LINENO"; then : -lt_aix_libpath_sed=' - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\(.*\)$/\1/ - p - } - }' -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then - aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi fi -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_="/usr/lib:/lib" + fi fi -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + aix_libpath=$lt_cv_aix_libpath_ +fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag=' ${wl}-bernotok' allow_undefined_flag=' ${wl}-berok' - # Exported symbols can be pulled into shared objects from archives - whole_archive_flag_spec='$convenience' + if test "$with_gnu_ld" = yes; then + # We only use this code for GNU lds that support --whole-archive. + whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec='$convenience' + fi archive_cmds_need_lc=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' @@ -9793,20 +9813,63 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. - hardcode_libdir_flag_spec=' ' - allow_undefined_flag=unsupported - # Tell ltmain to make .lib files, not .a files. - libext=lib - # Tell ltmain to make .dll files, not .so files. - shrext_cmds=".dll" - # FIXME: Setting linknames here is a bad hack. - archive_cmds='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames=' - # The linker will automatically build a .lib file if we build a DLL. - old_archive_from_new_cmds='true' - # FIXME: Should let the user specify the lib program. - old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' - fix_srcfile_path='`cygpath -w "$srcfile"`' - enable_shared_with_static_runtimes=yes + case $cc_basename in + cl*) + # Native MSVC + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + always_export_symbols=yes + file_list_spec='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' + archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; + else + sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, )='true' + enable_shared_with_static_runtimes=yes + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' + # Don't use ranlib + old_postinstall_cmds='chmod 644 $oldlib' + postlink_cmds='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile="$lt_outputfile.exe" + lt_tool_outputfile="$lt_tool_outputfile.exe" + ;; + esac~ + if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # Assume MSVC wrapper + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + old_archive_from_new_cmds='true' + # FIXME: Should let the user specify the lib program. + old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' + enable_shared_with_static_runtimes=yes + ;; + esac ;; darwin* | rhapsody*) @@ -9816,7 +9879,11 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported - whole_archive_flag_spec='' + if test "$lt_cv_ld_force_load" = "yes"; then + whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + else + whole_archive_flag_spec='' + fi link_all_deplibs=yes allow_undefined_flag="$_lt_dar_allow_undefined" case $cc_basename in @@ -9824,7 +9891,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then - output_verbose_link_cmd=echo + output_verbose_link_cmd=func_echo_all archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" @@ -9867,7 +9934,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) - archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no @@ -9875,7 +9942,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hpux9*) if test "$GCC" = yes; then - archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi @@ -9890,8 +9957,8 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ;; hpux10*) - if test "$GCC" = yes -a "$with_gnu_ld" = no; then - archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + if test "$GCC" = yes && test "$with_gnu_ld" = no; then + archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi @@ -9909,16 +9976,16 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ;; hpux11*) - if test "$GCC" = yes -a "$with_gnu_ld" = no; then + if test "$GCC" = yes && test "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) - archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) - archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else @@ -9930,7 +9997,46 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) - archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + + # Older versions of the 11.00 compiler do not understand -b yet + # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 +$as_echo_n "checking if $CC understands -b... " >&6; } +if ${lt_cv_prog_compiler__b+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler__b=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -b" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler__b=yes + fi + else + lt_cv_prog_compiler__b=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 +$as_echo "$lt_cv_prog_compiler__b" >&6; } + +if test x"$lt_cv_prog_compiler__b" = xyes; then + archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' +else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' +fi + ;; esac fi @@ -9958,52 +10064,39 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" - cat >conftest.$ac_ext <<_ACEOF -int foo(void) {} + # This should be the same for all languages, so no per-tag cache variable. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 +$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } +if ${lt_cv_irix_exported_symbol+:} false; then : + $as_echo_n "(cached) " >&6 +else + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int foo (void) { return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' - +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_irix_exported_symbol=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - + lt_cv_irix_exported_symbol=no fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext - LDFLAGS="$save_LDFLAGS" +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS="$save_LDFLAGS" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 +$as_echo "$lt_cv_irix_exported_symbol" >&6; } + if test "$lt_cv_irix_exported_symbol" = yes; then + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' + fi else - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' @@ -10065,17 +10158,17 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported - archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' + archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' @@ -10085,13 +10178,13 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else allow_undefined_flag=' -expect_unresolved \*' - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ - $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' + $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' @@ -10104,9 +10197,9 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ no_undefined_flag=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' - archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) @@ -10255,7 +10348,7 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ fi fi -{ $as_echo "$as_me:$LINENO: result: $ld_shlibs" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 $as_echo "$ld_shlibs" >&6; } test "$ld_shlibs" = no && can_build_shared=no @@ -10292,46 +10385,52 @@ x|xyes) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. - { $as_echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } - $RM conftest* - echo "$lt_simple_compile_test_code" > conftest.$ac_ext +if ${lt_cv_archive_cmds_need_lc+:} false; then : + $as_echo_n "(cached) " >&6 +else + $RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } 2>conftest.err; then - soname=conftest - lib=conftest - libobjs=conftest.$ac_objext - deplibs= - wl=$lt_prog_compiler_wl - pic_flag=$lt_prog_compiler_pic - compiler_flags=-v - linker_flags=-v - verstring= - output_objdir=. - libname=conftest - lt_save_allow_undefined_flag=$allow_undefined_flag - allow_undefined_flag= - if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl + pic_flag=$lt_prog_compiler_pic + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag + allow_undefined_flag= + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } - then - archive_cmds_need_lc=no - else - archive_cmds_need_lc=yes - fi - allow_undefined_flag=$lt_save_allow_undefined_flag - else - cat conftest.err 1>&5 - fi - $RM conftest* - { $as_echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5 -$as_echo "$archive_cmds_need_lc" >&6; } + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + then + lt_cv_archive_cmds_need_lc=no + else + lt_cv_archive_cmds_need_lc=yes + fi + allow_undefined_flag=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 +$as_echo "$lt_cv_archive_cmds_need_lc" >&6; } + archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc ;; esac fi @@ -10494,7 +10593,7 @@ esac - { $as_echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 $as_echo_n "checking dynamic linker characteristics... " >&6; } if test "$GCC" = yes; then @@ -10502,16 +10601,23 @@ if test "$GCC" = yes; then darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac - lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then + case $host_os in + mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;; + *) lt_sed_strip_eq="s,=/,/,g" ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` + case $lt_search_path_spec in + *\;*) # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. - lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'` - else - lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` + ;; + *) + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` + ;; + esac # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= @@ -10524,7 +10630,7 @@ if test "$GCC" = yes; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done - lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk ' + lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; @@ -10544,7 +10650,13 @@ BEGIN {RS=" "; FS="/|\n";} { if (lt_foo != "") { lt_freq[lt_foo]++; } if (lt_freq[lt_foo] == 1) { print lt_foo; } }'` - sys_lib_search_path_spec=`$ECHO $lt_search_path_spec` + # AWK program above erroneously prepends '/' to C:/dos/paths + # for these hosts. + case $host_os in + mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ + $SED 's,/\([A-Za-z]:\),\1,g'` ;; + esac + sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi @@ -10632,7 +10744,7 @@ amigaos*) m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. - finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; @@ -10663,8 +10775,9 @@ cygwin* | mingw* | pw32* | cegcc*) need_version=no need_lib_prefix=no - case $GCC,$host_os in - yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) + case $GCC,$cc_basename in + yes,*) + # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ @@ -10685,36 +10798,83 @@ cygwin* | mingw* | pw32* | cegcc*) cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then - # It is most probably a Windows format PATH printed by - # mingw gcc, but we are running on Cygwin. Gcc prints its search - # path with ; separators, and with drive letters. We can handle the - # drive letters (cygwin fileutils understands them), so leave them, - # especially as we might pass files found there to a mingw objdump, - # which wouldn't understand a cygwinified path. Ahh. - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac + dynamic_linker='Win32 ld.exe' + ;; + + *,cl*) + # Native MSVC + libname_spec='$name' + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + library_names_spec='${libname}.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec="$LIB" + if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac + + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' ;; *) + # Assume MSVC wrapper library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' + dynamic_linker='Win32 ld.exe' ;; esac - dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; @@ -10801,6 +10961,19 @@ gnu*) hardcode_into_libs=yes ;; +haiku*) + version_type=linux + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=yes + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. @@ -10843,8 +11016,10 @@ hpux9* | hpux10* | hpux11*) soname_spec='${libname}${release}${shared_ext}$major' ;; esac - # HP-UX runs *really* slowly unless shared libraries are mode 555. + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 ;; interix[3-9]*) @@ -10902,7 +11077,7 @@ linux*oldld* | linux*aout* | linux*coff*) ;; # This must be Linux ELF. -linux* | k*bsd*-gnu) +linux* | k*bsd*-gnu | kopensolaris*-gnu) version_type=linux need_lib_prefix=no need_version=no @@ -10911,16 +11086,17 @@ linux* | k*bsd*-gnu) finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no + # Some binutils ld are patched to set DT_RUNPATH - save_LDFLAGS=$LDFLAGS - save_libdir=$libdir - eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ - LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + if ${lt_cv_shlibpath_overrides_runpath+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ + LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -10931,43 +11107,19 @@ main () return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then - if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then - shlibpath_overrides_runpath=yes +if ac_fn_c_try_link "$LINENO"; then : + if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : + lt_cv_shlibpath_overrides_runpath=yes fi - -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir fi -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext - LDFLAGS=$save_LDFLAGS - libdir=$save_libdir + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install @@ -10979,8 +11131,9 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then - lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" + fi # We used to test for /lib/ld.so.1 and disable shared libraries on @@ -11180,7 +11333,7 @@ uts4*) dynamic_linker=no ;; esac -{ $as_echo "$as_me:$LINENO: result: $dynamic_linker" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 $as_echo "$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no @@ -11282,7 +11435,12 @@ fi - { $as_echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 $as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action= if test -n "$hardcode_libdir_flag_spec" || @@ -11307,7 +11465,7 @@ else # directories. hardcode_action=unsupported fi -{ $as_echo "$as_me:$LINENO: result: $hardcode_action" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 $as_echo "$hardcode_action" >&6; } if test "$hardcode_action" = relink || @@ -11352,18 +11510,14 @@ else darwin*) # if libdl is installed we need to link against it - { $as_echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } -if test "${ac_cv_lib_dl_dlopen+set}" = set; then +if ${ac_cv_lib_dl_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -11381,43 +11535,18 @@ return dlopen (); return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_dl_dlopen=no + ac_cv_lib_dl_dlopen=no fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } -if test "x$ac_cv_lib_dl_dlopen" = x""yes; then +if test "x$ac_cv_lib_dl_dlopen" = xyes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else @@ -11430,106 +11559,18 @@ fi ;; *) - { $as_echo "$as_me:$LINENO: checking for shl_load" >&5 -$as_echo_n "checking for shl_load... " >&6; } -if test "${ac_cv_func_shl_load+set}" = set; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define shl_load to an innocuous variant, in case declares shl_load. - For example, HP-UX 11i declares gettimeofday. */ -#define shl_load innocuous_shl_load - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char shl_load (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef shl_load - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char shl_load (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_shl_load || defined __stub___shl_load -choke me -#endif - -int -main () -{ -return shl_load (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then - ac_cv_func_shl_load=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_func_shl_load=no -fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 -$as_echo "$ac_cv_func_shl_load" >&6; } -if test "x$ac_cv_func_shl_load" = x""yes; then + ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" +if test "x$ac_cv_func_shl_load" = xyes; then : lt_cv_dlopen="shl_load" else - { $as_echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 $as_echo_n "checking for shl_load in -ldld... " >&6; } -if test "${ac_cv_lib_dld_shl_load+set}" = set; then +if ${ac_cv_lib_dld_shl_load+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -11547,145 +11588,32 @@ return shl_load (); return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_shl_load=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_dld_shl_load=no + ac_cv_lib_dld_shl_load=no fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 $as_echo "$ac_cv_lib_dld_shl_load" >&6; } -if test "x$ac_cv_lib_dld_shl_load" = x""yes; then +if test "x$ac_cv_lib_dld_shl_load" = xyes; then : lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" else - { $as_echo "$as_me:$LINENO: checking for dlopen" >&5 -$as_echo_n "checking for dlopen... " >&6; } -if test "${ac_cv_func_dlopen+set}" = set; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define dlopen to an innocuous variant, in case declares dlopen. - For example, HP-UX 11i declares gettimeofday. */ -#define dlopen innocuous_dlopen - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char dlopen (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef dlopen - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dlopen (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_dlopen || defined __stub___dlopen -choke me -#endif - -int -main () -{ -return dlopen (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then - ac_cv_func_dlopen=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_func_dlopen=no -fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 -$as_echo "$ac_cv_func_dlopen" >&6; } -if test "x$ac_cv_func_dlopen" = x""yes; then + ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" +if test "x$ac_cv_func_dlopen" = xyes; then : lt_cv_dlopen="dlopen" else - { $as_echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } -if test "${ac_cv_lib_dl_dlopen+set}" = set; then +if ${ac_cv_lib_dl_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -11703,57 +11631,28 @@ return dlopen (); return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_dl_dlopen=no + ac_cv_lib_dl_dlopen=no fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } -if test "x$ac_cv_lib_dl_dlopen" = x""yes; then +if test "x$ac_cv_lib_dl_dlopen" = xyes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else - { $as_echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 $as_echo_n "checking for dlopen in -lsvld... " >&6; } -if test "${ac_cv_lib_svld_dlopen+set}" = set; then +if ${ac_cv_lib_svld_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -11771,57 +11670,28 @@ return dlopen (); return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_svld_dlopen=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_svld_dlopen=no + ac_cv_lib_svld_dlopen=no fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 $as_echo "$ac_cv_lib_svld_dlopen" >&6; } -if test "x$ac_cv_lib_svld_dlopen" = x""yes; then +if test "x$ac_cv_lib_svld_dlopen" = xyes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" else - { $as_echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 $as_echo_n "checking for dld_link in -ldld... " >&6; } -if test "${ac_cv_lib_dld_dld_link+set}" = set; then +if ${ac_cv_lib_dld_dld_link+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -11839,43 +11709,18 @@ return dld_link (); return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_dld_link=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_dld_dld_link=no + ac_cv_lib_dld_dld_link=no fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 $as_echo "$ac_cv_lib_dld_dld_link" >&6; } -if test "x$ac_cv_lib_dld_dld_link" = x""yes; then +if test "x$ac_cv_lib_dld_dld_link" = xyes; then : lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" fi @@ -11914,9 +11759,9 @@ fi save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" - { $as_echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 $as_echo_n "checking whether a program can dlopen itself... " >&6; } -if test "${lt_cv_dlopen_self+set}" = set; then +if ${lt_cv_dlopen_self+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : @@ -11925,7 +11770,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11928 "configure" +#line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11966,7 +11811,13 @@ else # endif #endif -void fnord() { int i=42;} +/* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); @@ -11975,7 +11826,11 @@ int main () if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; - else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } /* dlclose (self); */ } else @@ -11984,11 +11839,11 @@ int main () return status; } _LT_EOF - if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in @@ -12005,14 +11860,14 @@ rm -fr conftest* fi -{ $as_echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 $as_echo "$lt_cv_dlopen_self" >&6; } if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" - { $as_echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 $as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } -if test "${lt_cv_dlopen_self_static+set}" = set; then +if ${lt_cv_dlopen_self_static+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : @@ -12021,7 +11876,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 12024 "configure" +#line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -12062,7 +11917,13 @@ else # endif #endif -void fnord() { int i=42;} +/* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); @@ -12071,7 +11932,11 @@ int main () if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; - else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } /* dlclose (self); */ } else @@ -12080,11 +11945,11 @@ int main () return status; } _LT_EOF - if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in @@ -12101,7 +11966,7 @@ rm -fr conftest* fi -{ $as_echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 $as_echo "$lt_cv_dlopen_self_static" >&6; } fi @@ -12140,12 +12005,12 @@ fi striplib= old_striplib= -{ $as_echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 $as_echo_n "checking whether stripping libraries is possible... " >&6; } if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" - { $as_echo "$as_me:$LINENO: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else # FIXME - insert some real tests, host_os isn't really good enough @@ -12154,15 +12019,15 @@ else if test -n "$STRIP" ; then striplib="$STRIP -x" old_striplib="$STRIP -S" - { $as_echo "$as_me:$LINENO: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi ;; *) - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } ;; esac @@ -12180,12 +12045,12 @@ fi # Report which library types will actually be built - { $as_echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 $as_echo_n "checking if libtool supports shared libraries... " >&6; } - { $as_echo "$as_me:$LINENO: result: $can_build_shared" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 $as_echo "$can_build_shared" >&6; } - { $as_echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 $as_echo_n "checking whether to build shared libraries... " >&6; } test "$can_build_shared" = "no" && enable_shared=no @@ -12206,14 +12071,14 @@ $as_echo_n "checking whether to build shared libraries... " >&6; } fi ;; esac - { $as_echo "$as_me:$LINENO: result: $enable_shared" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 $as_echo "$enable_shared" >&6; } - { $as_echo "$as_me:$LINENO: checking whether to build static libraries" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 $as_echo_n "checking whether to build static libraries... " >&6; } # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes - { $as_echo "$as_me:$LINENO: result: $enable_static" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 $as_echo "$enable_static" >&6; } @@ -12249,902 +12114,610 @@ CC="$lt_save_CC" -{ $as_echo "$as_me:$LINENO: checking for library containing strerror" >&5 -$as_echo_n "checking for library containing strerror... " >&6; } -if test "${ac_cv_search_strerror+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char strerror (); -int -main () -{ -return strerror (); - ; - return 0; -} -_ACEOF -for ac_lib in '' cposix; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 +gdu_cv_version_required=0.3.2 + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking gnome-doc-utils >= $gdu_cv_version_required" >&5 +$as_echo_n "checking gnome-doc-utils >= $gdu_cv_version_required... " >&6; } +if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gnome-doc-utils >= \$gdu_cv_version_required\""; } >&5 + ($PKG_CONFIG --exists --print-errors "gnome-doc-utils >= $gdu_cv_version_required") 2>&5 ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then - ac_cv_search_strerror=$ac_res + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + gdu_cv_have_gdu=yes +else + gdu_cv_have_gdu=no +fi + +if test "$gdu_cv_have_gdu" = "yes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + : else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + as_fn_error $? "gnome-doc-utils >= $gdu_cv_version_required not found" "$LINENO" 5 +fi + +# Check whether --with-help-dir was given. +if test "${with_help_dir+set}" = set; then : + withval=$with_help_dir; +else + with_help_dir='${datadir}/gnome/help' fi -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext - if test "${ac_cv_search_strerror+set}" = set; then - break +HELP_DIR="$with_help_dir" + + + +# Check whether --with-omf-dir was given. +if test "${with_omf_dir+set}" = set; then : + withval=$with_omf_dir; +else + with_omf_dir='${datadir}/omf' fi -done -if test "${ac_cv_search_strerror+set}" = set; then - : + +OMF_DIR="$with_omf_dir" + + + +# Check whether --with-help-formats was given. +if test "${with_help_formats+set}" = set; then : + withval=$with_help_formats; else - ac_cv_search_strerror=no + with_help_formats='' fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS + +DOC_USER_FORMATS="$with_help_formats" + + +# Check whether --enable-scrollkeeper was given. +if test "${enable_scrollkeeper+set}" = set; then : + enableval=$enable_scrollkeeper; +else + enable_scrollkeeper=yes fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_strerror" >&5 -$as_echo "$ac_cv_search_strerror" >&6; } -ac_res=$ac_cv_search_strerror -if test "$ac_res" != no; then - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + if test "$gdu_cv_have_gdu" = "yes" -a "$enable_scrollkeeper" = "yes"; then + ENABLE_SK_TRUE= + ENABLE_SK_FALSE='#' +else + ENABLE_SK_TRUE='#' + ENABLE_SK_FALSE= fi -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. -set dummy ${ac_tool_prefix}gcc; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 + +DISTCHECK_CONFIGURE_FLAGS="--disable-scrollkeeper $DISTCHECK_CONFIGURE_FLAGS" + + + if test "$gdu_cv_have_gdu" = "yes"; then + HAVE_GNOME_DOC_UTILS_TRUE= + HAVE_GNOME_DOC_UTILS_FALSE='#' +else + HAVE_GNOME_DOC_UTILS_TRUE='#' + HAVE_GNOME_DOC_UTILS_FALSE= +fi + + + + + + # Extract the first word of "gtkdoc-check", so it can be a program name with args. +set dummy gtkdoc-check; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then +if ${ac_cv_path_GTKDOC_CHECK+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + case $GTKDOC_CHECK in + [\\/]* | ?:[\\/]*) + ac_cv_path_GTKDOC_CHECK="$GTKDOC_CHECK" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CC="${ac_tool_prefix}gcc" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + ac_cv_path_GTKDOC_CHECK="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS + ;; +esac fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:$LINENO: result: $CC" >&5 -$as_echo "$CC" >&6; } +GTKDOC_CHECK=$ac_cv_path_GTKDOC_CHECK +if test -n "$GTKDOC_CHECK"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_CHECK" >&5 +$as_echo "$GTKDOC_CHECK" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 + for ac_prog in gtkdoc-rebase +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then +if ${ac_cv_path_GTKDOC_REBASE+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + case $GTKDOC_REBASE in + [\\/]* | ?:[\\/]*) + ac_cv_path_GTKDOC_REBASE="$GTKDOC_REBASE" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_CC="gcc" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + ac_cv_path_GTKDOC_REBASE="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS + ;; +esac fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } +GTKDOC_REBASE=$ac_cv_path_GTKDOC_REBASE +if test -n "$GTKDOC_REBASE"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_REBASE" >&5 +$as_echo "$GTKDOC_REBASE" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -else - CC="$ac_cv_prog_CC" -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. -set dummy ${ac_tool_prefix}cc; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 + test -n "$GTKDOC_REBASE" && break +done +test -n "$GTKDOC_REBASE" || GTKDOC_REBASE="true" + + # Extract the first word of "gtkdoc-mkpdf", so it can be a program name with args. +set dummy gtkdoc-mkpdf; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then +if ${ac_cv_path_GTKDOC_MKPDF+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + case $GTKDOC_MKPDF in + [\\/]* | ?:[\\/]*) + ac_cv_path_GTKDOC_MKPDF="$GTKDOC_MKPDF" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CC="${ac_tool_prefix}cc" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + ac_cv_path_GTKDOC_MKPDF="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS + ;; +esac fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:$LINENO: result: $CC" >&5 -$as_echo "$CC" >&6; } +GTKDOC_MKPDF=$ac_cv_path_GTKDOC_MKPDF +if test -n "$GTKDOC_MKPDF"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_MKPDF" >&5 +$as_echo "$GTKDOC_MKPDF" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi - fi + + +# Check whether --with-html-dir was given. +if test "${with_html_dir+set}" = set; then : + withval=$with_html_dir; +else + with_html_dir='${datadir}/gtk-doc/html' fi -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then - $as_echo_n "(cached) " >&6 + + HTML_DIR="$with_html_dir" + + + # Check whether --enable-gtk-doc was given. +if test "${enable_gtk_doc+set}" = set; then : + enableval=$enable_gtk_doc; else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. + enable_gtk_doc=no +fi + + + if test x$enable_gtk_doc = xyes; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk-doc >= 1.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "gtk-doc >= 1.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + : else - ac_prog_rejected=no -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 + as_fn_error $? "You need to have gtk-doc >= 1.0 installed to build $PACKAGE_NAME" "$LINENO" 5 +fi fi -done -done -IFS=$as_save_IFS -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# != 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build gtk-doc documentation" >&5 +$as_echo_n "checking whether to build gtk-doc documentation... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_gtk_doc" >&5 +$as_echo "$enable_gtk_doc" >&6; } + + # Check whether --enable-gtk-doc-html was given. +if test "${enable_gtk_doc_html+set}" = set; then : + enableval=$enable_gtk_doc_html; +else + enable_gtk_doc_html=yes +fi + + # Check whether --enable-gtk-doc-pdf was given. +if test "${enable_gtk_doc_pdf+set}" = set; then : + enableval=$enable_gtk_doc_pdf; +else + enable_gtk_doc_pdf=no +fi + + + if test -z "$GTKDOC_MKPDF"; then + enable_gtk_doc_pdf=no fi + + + if test x$enable_gtk_doc = xyes; then + ENABLE_GTK_DOC_TRUE= + ENABLE_GTK_DOC_FALSE='#' +else + ENABLE_GTK_DOC_TRUE='#' + ENABLE_GTK_DOC_FALSE= +fi + + if test x$enable_gtk_doc_html = xyes; then + GTK_DOC_BUILD_HTML_TRUE= + GTK_DOC_BUILD_HTML_FALSE='#' +else + GTK_DOC_BUILD_HTML_TRUE='#' + GTK_DOC_BUILD_HTML_FALSE= fi + + if test x$enable_gtk_doc_pdf = xyes; then + GTK_DOC_BUILD_PDF_TRUE= + GTK_DOC_BUILD_PDF_FALSE='#' +else + GTK_DOC_BUILD_PDF_TRUE='#' + GTK_DOC_BUILD_PDF_FALSE= fi + + if test -n "$LIBTOOL"; then + GTK_DOC_USE_LIBTOOL_TRUE= + GTK_DOC_USE_LIBTOOL_FALSE='#' +else + GTK_DOC_USE_LIBTOOL_TRUE='#' + GTK_DOC_USE_LIBTOOL_FALSE= fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:$LINENO: result: $CC" >&5 -$as_echo "$CC" >&6; } + + if test -n "$GTKDOC_REBASE"; then + GTK_DOC_USE_REBASE_TRUE= + GTK_DOC_USE_REBASE_FALSE='#' else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } + GTK_DOC_USE_REBASE_TRUE='#' + GTK_DOC_USE_REBASE_FALSE= fi + + + + # Check whether --enable-schemas-compile was given. +if test "${enable_schemas_compile+set}" = set; then : + enableval=$enable_schemas_compile; case ${enableval} in + yes) GSETTINGS_DISABLE_SCHEMAS_COMPILE="" ;; + no) GSETTINGS_DISABLE_SCHEMAS_COMPILE="1" ;; + *) as_fn_error $? "bad value ${enableval} for --enable-schemas-compile" "$LINENO" 5 ;; + esac fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl.exe - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 + + + + + + + + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then +if ${ac_cv_path_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + case $PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS + ;; +esac fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:$LINENO: result: $CC" >&5 -$as_echo "$CC" >&6; } +PKG_CONFIG=$ac_cv_path_PKG_CONFIG +if test -n "$PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 +$as_echo "$PKG_CONFIG" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi - test -n "$CC" && break - done fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cl.exe -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +if test -z "$ac_cv_path_PKG_CONFIG"; then + ac_pt_PKG_CONFIG=$PKG_CONFIG + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then +if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + case $ac_pt_PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_CC="$ac_prog" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS + ;; +esac fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } +ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG +if test -n "$ac_pt_PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 +$as_echo "$ac_pt_PKG_CONFIG" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi - - test -n "$ac_ct_CC" && break -done - - if test "x$ac_ct_CC" = x; then - CC="" + if test "x$ac_pt_PKG_CONFIG" = x; then + PKG_CONFIG="" else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac - CC=$ac_ct_CC + PKG_CONFIG=$ac_pt_PKG_CONFIG fi -fi - -fi - - -test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: no acceptable C compiler found in \$PATH -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; }; } - -# Provide some information about the compiler. -$as_echo "$as_me:$LINENO: checking for C compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -{ (ac_try="$ac_compiler --version >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compiler --version >&5") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (ac_try="$ac_compiler -v >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compiler -v >&5") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (ac_try="$ac_compiler -V >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compiler -V >&5") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } - -{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 -$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if test "${ac_cv_c_compiler_gnu+set}" = set; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_compiler_gnu=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_compiler_gnu=no + PKG_CONFIG="$ac_cv_path_PKG_CONFIG" fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_c_compiler_gnu=$ac_compiler_gnu - fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 -$as_echo "$ac_cv_c_compiler_gnu" >&6; } -if test $ac_compiler_gnu = yes; then - GCC=yes -else - GCC= +if test -n "$PKG_CONFIG"; then + _pkg_min_version=0.16 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 +$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + PKG_CONFIG="" + fi fi -ac_test_CFLAGS=${CFLAGS+set} -ac_save_CFLAGS=$CFLAGS -{ $as_echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 -$as_echo_n "checking whether $CC accepts -g... " >&6; } -if test "${ac_cv_prog_cc_g+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_save_c_werror_flag=$ac_c_werror_flag - ac_c_werror_flag=yes - ac_cv_prog_cc_g=no - CFLAGS="-g" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_prog_cc_g=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - CFLAGS="" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - : -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_c_werror_flag=$ac_save_c_werror_flag - CFLAGS="-g" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ + gsettingsschemadir=${datadir}/glib-2.0/schemas - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_prog_cc_g=yes + if test x$cross_compiling != xyes; then + GLIB_COMPILE_SCHEMAS=`$PKG_CONFIG --variable glib_compile_schemas gio-2.0` + else + # Extract the first word of "glib-compile-schemas", so it can be a program name with args. +set dummy glib-compile-schemas; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_GLIB_COMPILE_SCHEMAS+:} false; then : + $as_echo_n "(cached) " >&6 else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - + case $GLIB_COMPILE_SCHEMAS in + [\\/]* | ?:[\\/]*) + ac_cv_path_GLIB_COMPILE_SCHEMAS="$GLIB_COMPILE_SCHEMAS" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_GLIB_COMPILE_SCHEMAS="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + ;; +esac fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +GLIB_COMPILE_SCHEMAS=$ac_cv_path_GLIB_COMPILE_SCHEMAS +if test -n "$GLIB_COMPILE_SCHEMAS"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GLIB_COMPILE_SCHEMAS" >&5 +$as_echo "$GLIB_COMPILE_SCHEMAS" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_c_werror_flag=$ac_save_c_werror_flag -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 -$as_echo "$ac_cv_prog_cc_g" >&6; } -if test "$ac_test_CFLAGS" = set; then - CFLAGS=$ac_save_CFLAGS -elif test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-g" fi -else - if test "$GCC" = yes; then - CFLAGS="-O2" + + if test "x$GLIB_COMPILE_SCHEMAS" = "x"; then + as_fn_error $? "glib-compile-schemas not found." "$LINENO" 5 else - CFLAGS= + : fi -fi -{ $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 -$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if test "${ac_cv_prog_cc_c89+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_cv_prog_cc_c89=no -ac_save_CC=$CC -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -#include -#include -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + GSETTINGS_RULES=' +.PHONY : uninstall-gsettings-schemas install-gsettings-schemas clean-gsettings-schemas -/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters - inside strings and character constants. */ -#define FOO(x) 'x' -int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; +mostlyclean-am: clean-gsettings-schemas -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; -int -main () -{ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; - ; - return 0; -} -_ACEOF -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_prog_cc_c89=$ac_arg -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 +gsettings__enum_file = $(addsuffix .enums.xml,$(gsettings_ENUM_NAMESPACE)) +%.gschema.valid: %.gschema.xml $(gsettings__enum_file) + $(AM_V_GEN) if test -f "$<"; then d=; else d="$(srcdir)/"; fi; $(GLIB_COMPILE_SCHEMAS) --strict --dry-run $(addprefix --schema-file=,$(gsettings__enum_file)) --schema-file=$${d}$< && touch $@ -fi +all-am: $(gsettings_SCHEMAS:.xml=.valid) +uninstall-am: uninstall-gsettings-schemas +install-data-am: install-gsettings-schemas -rm -f core conftest.err conftest.$ac_objext - test "x$ac_cv_prog_cc_c89" != "xno" && break -done -rm -f conftest.$ac_ext -CC=$ac_save_CC +.SECONDARY: $(gsettings_SCHEMAS) -fi -# AC_CACHE_VAL -case "x$ac_cv_prog_cc_c89" in - x) - { $as_echo "$as_me:$LINENO: result: none needed" >&5 -$as_echo "none needed" >&6; } ;; - xno) - { $as_echo "$as_me:$LINENO: result: unsupported" >&5 -$as_echo "unsupported" >&6; } ;; - *) - CC="$CC $ac_cv_prog_cc_c89" - { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 -$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; -esac +install-gsettings-schemas: $(gsettings_SCHEMAS) $(gsettings__enum_file) + @$(NORMAL_INSTALL) + if test -n "$^"; then \ + test -z "$(gsettingsschemadir)" || $(MKDIR_P) "$(DESTDIR)$(gsettingsschemadir)"; \ + $(INSTALL_DATA) $^ "$(DESTDIR)$(gsettingsschemadir)"; \ + test -n "$(GSETTINGS_DISABLE_SCHEMAS_COMPILE)$(DESTDIR)" || $(GLIB_COMPILE_SCHEMAS) $(gsettingsschemadir); \ + fi +uninstall-gsettings-schemas: + @$(NORMAL_UNINSTALL) + @list='\''$(gsettings_SCHEMAS) $(gsettings__enum_file)'\''; test -n "$(gsettingsschemadir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e '\''s|^.*/||'\''`; \ + test -n "$$files" || exit 0; \ + echo " ( cd '\''$(DESTDIR)$(gsettingsschemadir)'\'' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(gsettingsschemadir)" && rm -f $$files + test -n "$(GSETTINGS_DISABLE_SCHEMAS_COMPILE)$(DESTDIR)" || $(GLIB_COMPILE_SCHEMAS) $(gsettingsschemadir) + +clean-gsettings-schemas: + rm -f $(gsettings_SCHEMAS:.xml=.valid) $(gsettings__enum_file) + +ifdef gsettings_ENUM_NAMESPACE +$(gsettings__enum_file): $(gsettings_ENUM_FILES) + $(AM_V_GEN) glib-mkenums --comments '\'''\'' --fhead "" --vhead " <@type@ id='\''$(gsettings_ENUM_NAMESPACE).@EnumName@'\''>" --vprod " " --vtail " " --ftail "" $^ > $@.tmp && mv $@.tmp $@ +endif +' -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -depcc="$CC" am_compiler_list= -{ $as_echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 -$as_echo_n "checking dependency style of $depcc... " >&6; } -if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named `D' -- because `-MD' means `put the output - # in D'. - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub - am_cv_CC_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` - fi - am__universal=false - case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with - # Solaris 8's {/usr,}/bin/sh. - touch sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - # We check with `-c' and `-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle `-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs - am__obj=sub/conftest.${OBJEXT-o} - am__minus_obj="-o $am__obj" - case $depmode in - gcc) - # This depmode causes a compiler race in universal mode. - test "$am__universal" = false || continue - ;; - nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - msvisualcpp | msvcmsys) - # This compiler won't grok `-c -o', but also, the minuso test has - # not run yet. These depmodes are late enough in the game, and - # so weak that their functioning should not be impacted. - am__obj=conftest.${OBJEXT-o} - am__minus_obj= - ;; - none) break ;; - esac - if depmode=$depmode \ - source=sub/conftest.c object=$am__obj \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep $am__obj sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_CC_dependencies_compiler_type=$depmode - break - fi - fi - done - cd .. - rm -rf conftest.dir +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing strerror" >&5 +$as_echo_n "checking for library containing strerror... " >&6; } +if ${ac_cv_search_strerror+:} false; then : + $as_echo_n "(cached) " >&6 else - am_cv_CC_dependencies_compiler_type=none -fi + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char strerror (); +int +main () +{ +return strerror (); + ; + return 0; +} +_ACEOF +for ac_lib in '' cposix; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_strerror=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_strerror+:} false; then : + break fi -{ $as_echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 -$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } -CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type +done +if ${ac_cv_search_strerror+:} false; then : - if - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then - am__fastdepCC_TRUE= - am__fastdepCC_FALSE='#' else - am__fastdepCC_TRUE='#' - am__fastdepCC_FALSE= + ac_cv_search_strerror=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_strerror" >&5 +$as_echo "$ac_cv_search_strerror" >&6; } +ac_res=$ac_cv_search_strerror +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" +fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' @@ -13154,9 +12727,9 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -13167,24 +12740,24 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { $as_echo "$as_me:$LINENO: result: $CC" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -13194,9 +12767,9 @@ if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then +if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then @@ -13207,24 +12780,24 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -13233,7 +12806,7 @@ fi else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac @@ -13247,9 +12820,9 @@ if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -13260,24 +12833,24 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { $as_echo "$as_me:$LINENO: result: $CC" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -13287,9 +12860,9 @@ fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -13301,18 +12874,18 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then @@ -13331,10 +12904,10 @@ fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { $as_echo "$as_me:$LINENO: result: $CC" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -13346,9 +12919,9 @@ if test -z "$CC"; then do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -13359,24 +12932,24 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { $as_echo "$as_me:$LINENO: result: $CC" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -13390,9 +12963,9 @@ if test -z "$CC"; then do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then +if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then @@ -13403,24 +12976,24 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -13433,7 +13006,7 @@ done else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac @@ -13444,62 +13017,42 @@ fi fi -test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: no acceptable C compiler found in \$PATH -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; }; } +as_fn_error $? "no acceptable C compiler found in \$PATH +See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. -$as_echo "$as_me:$LINENO: checking for C compiler version" >&5 +$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 -{ (ac_try="$ac_compiler --version >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compiler --version >&5") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (ac_try="$ac_compiler -v >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compiler -v >&5") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (ac_try="$ac_compiler -V >&5" +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compiler -V >&5") 2>&5 +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done -{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if test "${ac_cv_c_compiler_gnu+set}" = set; then +if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -13513,37 +13066,16 @@ main () return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then +if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_compiler_gnu=no + ac_compiler_gnu=no fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes @@ -13552,20 +13084,16 @@ else fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS -{ $as_echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } -if test "${ac_cv_prog_cc_g+set}" = set; then +if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -13576,35 +13104,11 @@ main () return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then +if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - CFLAGS="" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + CFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -13615,36 +13119,12 @@ main () return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - : -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 +if ac_fn_c_try_compile "$LINENO"; then : - ac_c_werror_flag=$ac_save_c_werror_flag +else + ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -13655,42 +13135,17 @@ main () return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then +if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS @@ -13707,18 +13162,14 @@ else CFLAGS= fi fi -{ $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if test "${ac_cv_prog_cc_c89+set}" = set; then +if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include @@ -13775,32 +13226,9 @@ for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" - rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then + if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - fi - rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done @@ -13811,17 +13239,19 @@ fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) - { $as_echo "$as_me:$LINENO: result: none needed" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) - { $as_echo "$as_me:$LINENO: result: unsupported" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" - { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac +if test "x$ac_cv_prog_cc_c89" != xno; then : +fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' @@ -13831,9 +13261,9 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CC" am_compiler_list= -{ $as_echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } -if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then +if ${am_cv_CC_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then @@ -13878,270 +13308,90 @@ else # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - # We check with `-c' and `-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle `-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs - am__obj=sub/conftest.${OBJEXT-o} - am__minus_obj="-o $am__obj" - case $depmode in - gcc) - # This depmode causes a compiler race in universal mode. - test "$am__universal" = false || continue - ;; - nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - msvisualcpp | msvcmsys) - # This compiler won't grok `-c -o', but also, the minuso test has - # not run yet. These depmodes are late enough in the game, and - # so weak that their functioning should not be impacted. - am__obj=conftest.${OBJEXT-o} - am__minus_obj= - ;; - none) break ;; - esac - if depmode=$depmode \ - source=sub/conftest.c object=$am__obj \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep $am__obj sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_CC_dependencies_compiler_type=$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_CC_dependencies_compiler_type=none -fi - -fi -{ $as_echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 -$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } -CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type - - if - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then - am__fastdepCC_TRUE= - am__fastdepCC_FALSE='#' -else - am__fastdepCC_TRUE='#' - am__fastdepCC_FALSE= -fi - - - -am_cv_prog_cc_stdc=$ac_cv_prog_cc_stdc - -{ $as_echo "$as_me:$LINENO: checking for ANSI C header files" >&5 -$as_echo_n "checking for ANSI C header files... " >&6; } -if test "${ac_cv_header_stdc+set}" = set; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -#include -#include - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_header_stdc=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_header_stdc=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memchr" >/dev/null 2>&1; then - : -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "free" >/dev/null 2>&1; then - : + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvisualcpp | msvcmsys) + # This compiler won't grok `-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CC_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir else - ac_cv_header_stdc=no + am_cv_CC_dependencies_compiler_type=none fi -rm -f conftest* fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 +$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } +CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then - : -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) \ - (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif - -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int -main () -{ - int i; - for (i = 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - return 2; - return 0; -} -_ACEOF -rm -f conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then + am__fastdepCC_TRUE= + am__fastdepCC_FALSE='#' else - $as_echo "$as_me: program exited with status $ac_status" >&5 -$as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -ac_cv_header_stdc=no -fi -rm -rf conftest.dSYM -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi - - -fi + am__fastdepCC_TRUE='#' + am__fastdepCC_FALSE= fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 -$as_echo "$ac_cv_header_stdc" >&6; } -if test $ac_cv_header_stdc = yes; then -cat >>confdefs.h <<\_ACEOF -#define STDC_HEADERS 1 -_ACEOF -fi # Check whether --enable-compile-warnings was given. -if test "${enable_compile_warnings+set}" = set; then +if test "${enable_compile_warnings+set}" = set; then : enableval=$enable_compile_warnings; else enable_compile_warnings="yes" @@ -14172,13 +13422,9 @@ fi for option in -Wno-sign-compare; do SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $option" - { $as_echo "$as_me:$LINENO: checking whether gcc understands $option" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether gcc understands $option" >&5 $as_echo_n "checking whether gcc understands $option... " >&6; } - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -14189,35 +13435,14 @@ main () return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then +if ac_fn_c_try_compile "$LINENO"; then : has_option=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - has_option=no + has_option=no fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS="$SAVE_CFLAGS" - { $as_echo "$as_me:$LINENO: result: $has_option" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $has_option" >&5 $as_echo "$has_option" >&6; } if test $has_option = yes; then warning_flags="$warning_flags $option" @@ -14231,26 +13456,24 @@ $as_echo "$has_option" >&6; } fi ;; *) - { { $as_echo "$as_me:$LINENO: error: Unknown argument '$enable_compile_warnings' to --enable-compile-warnings" >&5 -$as_echo "$as_me: error: Unknown argument '$enable_compile_warnings' to --enable-compile-warnings" >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "Unknown argument '$enable_compile_warnings' to --enable-compile-warnings" "$LINENO" 5 ;; esac CFLAGS="$realsave_CFLAGS" - { $as_echo "$as_me:$LINENO: checking what warning flags to pass to the C compiler" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking what warning flags to pass to the C compiler" >&5 $as_echo_n "checking what warning flags to pass to the C compiler... " >&6; } - { $as_echo "$as_me:$LINENO: result: $warning_flags" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $warning_flags" >&5 $as_echo "$warning_flags" >&6; } # Check whether --enable-iso-c was given. -if test "${enable_iso_c+set}" = set; then +if test "${enable_iso_c+set}" = set; then : enableval=$enable_iso_c; else enable_iso_c=no fi - { $as_echo "$as_me:$LINENO: checking what language compliance flags to pass to the C compiler" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking what language compliance flags to pass to the C compiler" >&5 $as_echo_n "checking what language compliance flags to pass to the C compiler... " >&6; } complCFLAGS= if test "x$enable_iso_c" != "xno"; then @@ -14265,7 +13488,7 @@ $as_echo_n "checking what language compliance flags to pass to the C compiler... esac fi fi - { $as_echo "$as_me:$LINENO: result: $complCFLAGS" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $complCFLAGS" >&5 $as_echo "$complCFLAGS" >&6; } WARN_CFLAGS="$warning_flags $complCFLAGS" @@ -14274,9 +13497,9 @@ $as_echo "$complCFLAGS" >&6; } # Extract the first word of "glib-genmarshal", so it can be a program name with args. set dummy glib-genmarshal; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_GLIB_GENMARSHAL+set}" = set; then +if ${ac_cv_path_GLIB_GENMARSHAL+:} false; then : $as_echo_n "(cached) " >&6 else case $GLIB_GENMARSHAL in @@ -14289,14 +13512,14 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_GLIB_GENMARSHAL="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS ;; @@ -14304,67 +13527,24 @@ esac fi GLIB_GENMARSHAL=$ac_cv_path_GLIB_GENMARSHAL if test -n "$GLIB_GENMARSHAL"; then - { $as_echo "$as_me:$LINENO: result: $GLIB_GENMARSHAL" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GLIB_GENMARSHAL" >&5 $as_echo "$GLIB_GENMARSHAL" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi - - - -# Check whether --with-html-dir was given. -if test "${with_html_dir+set}" = set; then - withval=$with_html_dir; -else - with_html_dir='${datadir}/gtk-doc/html' -fi - - HTML_DIR="$with_html_dir" - - - # Check whether --enable-gtk-doc was given. -if test "${enable_gtk_doc+set}" = set; then - enableval=$enable_gtk_doc; -else - enable_gtk_doc=no -fi - - - if test x$enable_gtk_doc = xyes; then - if test -n "$PKG_CONFIG" && \ - { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gtk-doc >= 1.0\"") >&5 - ($PKG_CONFIG --exists --print-errors "gtk-doc >= 1.0") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - : -else - { { $as_echo "$as_me:$LINENO: error: You need to have gtk-doc >= 1.0 installed to build gtk-doc" >&5 -$as_echo "$as_me: error: You need to have gtk-doc >= 1.0 installed to build gtk-doc" >&2;} - { (exit 1); exit 1; }; } -fi - fi - - { $as_echo "$as_me:$LINENO: checking whether to build gtk-doc documentation" >&5 -$as_echo_n "checking whether to build gtk-doc documentation... " >&6; } - { $as_echo "$as_me:$LINENO: result: $enable_gtk_doc" >&5 -$as_echo "$enable_gtk_doc" >&6; } - - for ac_prog in gtkdoc-check -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +# Extract the first word of "gdk-pixbuf-csource", so it can be a program name with args. +set dummy gdk-pixbuf-csource; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_GTKDOC_CHECK+set}" = set; then +if ${ac_cv_path_GDK_PIXBUF_CSOURCE+:} false; then : $as_echo_n "(cached) " >&6 else - case $GTKDOC_CHECK in + case $GDK_PIXBUF_CSOURCE in [\\/]* | ?:[\\/]*) - ac_cv_path_GTKDOC_CHECK="$GTKDOC_CHECK" # Let the user override the test with a path. + ac_cv_path_GDK_PIXBUF_CSOURCE="$GDK_PIXBUF_CSOURCE" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -14372,201 +13552,149 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_GTKDOC_CHECK="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + ac_cv_path_GDK_PIXBUF_CSOURCE="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS ;; esac fi -GTKDOC_CHECK=$ac_cv_path_GTKDOC_CHECK -if test -n "$GTKDOC_CHECK"; then - { $as_echo "$as_me:$LINENO: result: $GTKDOC_CHECK" >&5 -$as_echo "$GTKDOC_CHECK" >&6; } +GDK_PIXBUF_CSOURCE=$ac_cv_path_GDK_PIXBUF_CSOURCE +if test -n "$GDK_PIXBUF_CSOURCE"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GDK_PIXBUF_CSOURCE" >&5 +$as_echo "$GDK_PIXBUF_CSOURCE" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi - test -n "$GTKDOC_CHECK" && break +# Extract the first word of "gtk-update-icon-cache", so it can be a program name with args. +set dummy gtk-update-icon-cache; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_GTK_UPDATE_ICON_CACHE+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $GTK_UPDATE_ICON_CACHE in + [\\/]* | ?:[\\/]*) + ac_cv_path_GTK_UPDATE_ICON_CACHE="$GTK_UPDATE_ICON_CACHE" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_GTK_UPDATE_ICON_CACHE="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi done + done +IFS=$as_save_IFS - - if test x$enable_gtk_doc = xyes; then - ENABLE_GTK_DOC_TRUE= - ENABLE_GTK_DOC_FALSE='#' -else - ENABLE_GTK_DOC_TRUE='#' - ENABLE_GTK_DOC_FALSE= + ;; +esac fi - - if test -n "$LIBTOOL"; then - GTK_DOC_USE_LIBTOOL_TRUE= - GTK_DOC_USE_LIBTOOL_FALSE='#' +GTK_UPDATE_ICON_CACHE=$ac_cv_path_GTK_UPDATE_ICON_CACHE +if test -n "$GTK_UPDATE_ICON_CACHE"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTK_UPDATE_ICON_CACHE" >&5 +$as_echo "$GTK_UPDATE_ICON_CACHE" >&6; } else - GTK_DOC_USE_LIBTOOL_TRUE='#' - GTK_DOC_USE_LIBTOOL_FALSE= + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi -LIBGLABELS_C=6 -LIBGLABELS_R=2 -LIBGLABELS_A=1 -LIBGLABELS_VERSION_INFO=${LIBGLABELS_C}:${LIBGLABELS_R}:${LIBGLABELS_A} +GLABELS_BRANCH=glabels-3.0 +LIBGLABELS_BRANCH=libglabels-3.0 -GLIB_REQUIRED=2.12.0 -GTK_REQUIRED=2.10.0 -LIBGNOME_REQUIRED=2.16.0 -LIBGNOMEUI_REQUIRED=2.16.0 -LIBXML_REQUIRED=2.6.0 -LIBGLADE_REQUIRED=2.6.0 -LIBEBOOK_REQUIRED=1.8.0 +LIBGLBARCODE_BRANCH=libglbarcode-3.0 +LIBGLABELS_C=8 +LIBGLABELS_R=0 +LIBGLABELS_A=0 +LIBGLABELS_API_VERSION=${LIBGLABELS_C}:${LIBGLABELS_R}:${LIBGLABELS_A} +LIBGLBARCODE_C=0 +LIBGLBARCODE_R=0 +LIBGLBARCODE_A=0 +LIBGLBARCODE_API_VERSION=${LIBGLBARCODE_C}:${LIBGLBARCODE_R}:${LIBGLBARCODE_A} + + +GLIB_REQUIRED=2.28.2 +GTK_REQUIRED=3.0.9 +LIBXML_REQUIRED=2.7.8 +LIBRSVG_REQUIRED=2.32.0 +CAIRO_REQUIRED=1.10.0 +PANGO_REQUIRED=1.28.1 + +LIBEBOOK_REQUIRED=2.30.3 +LIBBARCODE_REQUIRED=0.98 +LIBQRENCODE_REQUIRED=3.1.0 +LIBIEC16022_REQUIRED=0.2.4 +LIBZINT_REQUIRED=2.4.0 -# Check whether --with-libebook was given. -if test "${with_libebook+set}" = set; then - withval=$with_libebook; -fi - -have_libebook=no -if test "x$with_libebook" != xno; then - -pkg_failed=no -{ $as_echo "$as_me:$LINENO: checking for LIBEBOOK" >&5 -$as_echo_n "checking for LIBEBOOK... " >&6; } - -if test -n "$LIBEBOOK_CFLAGS"; then - pkg_cv_LIBEBOOK_CFLAGS="$LIBEBOOK_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libebook-1.2 >= \$LIBEBOOK_REQUIRED\"") >&5 - ($PKG_CONFIG --exists --print-errors "libebook-1.2 >= $LIBEBOOK_REQUIRED") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - pkg_cv_LIBEBOOK_CFLAGS=`$PKG_CONFIG --cflags "libebook-1.2 >= $LIBEBOOK_REQUIRED" 2>/dev/null` -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$LIBEBOOK_LIBS"; then - pkg_cv_LIBEBOOK_LIBS="$LIBEBOOK_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libebook-1.2 >= \$LIBEBOOK_REQUIRED\"") >&5 - ($PKG_CONFIG --exists --print-errors "libebook-1.2 >= $LIBEBOOK_REQUIRED") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - pkg_cv_LIBEBOOK_LIBS=`$PKG_CONFIG --libs "libebook-1.2 >= $LIBEBOOK_REQUIRED" 2>/dev/null` -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test $pkg_failed = yes; then -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - LIBEBOOK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libebook-1.2 >= $LIBEBOOK_REQUIRED" 2>&1` - else - LIBEBOOK_PKG_ERRORS=`$PKG_CONFIG --print-errors "libebook-1.2 >= $LIBEBOOK_REQUIRED" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$LIBEBOOK_PKG_ERRORS" >&5 - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } - have_libebook=no -elif test $pkg_failed = untried; then - have_libebook=no -else - LIBEBOOK_CFLAGS=$pkg_cv_LIBEBOOK_CFLAGS - LIBEBOOK_LIBS=$pkg_cv_LIBEBOOK_LIBS - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } - have_libebook=yes -fi -fi -if test "x$have_libebook" = "xyes"; then -cat >>confdefs.h <<\_ACEOF -#define HAVE_LIBEBOOK 1 -_ACEOF - OPTIONAL_MODULES="$OPTIONAL_MODULES libebook-1.2 >= $LIBEBOOK_REQUIRED" -fi pkg_failed=no -{ $as_echo "$as_me:$LINENO: checking for GLABELS" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GLABELS" >&5 $as_echo_n "checking for GLABELS... " >&6; } if test -n "$GLABELS_CFLAGS"; then pkg_cv_GLABELS_CFLAGS="$GLABELS_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\\ -glib-2.0 >= \$GLIB_REQUIRED \\ -gtk+-2.0 >= \$GTK_REQUIRED \\ -libgnome-2.0 >= \$LIBGNOME_REQUIRED \\ -libgnomeui-2.0 >= \$LIBGNOMEUI_REQUIRED \\ -libxml-2.0 >= \$LIBXML_REQUIRED \\ -libglade-2.0 >= \$LIBGLADE_REQUIRED \\ -\$OPTIONAL_MODULES \\ -\"") >&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\\ + glib-2.0 >= \$GLIB_REQUIRED \\ + gtk+-3.0 >= \$GTK_REQUIRED \\ + libxml-2.0 >= \$LIBXML_REQUIRED \\ + librsvg-2.0 >= \$LIBRSVG_REQUIRED \\ +\""; } >&5 ($PKG_CONFIG --exists --print-errors "\ -glib-2.0 >= $GLIB_REQUIRED \ -gtk+-2.0 >= $GTK_REQUIRED \ -libgnome-2.0 >= $LIBGNOME_REQUIRED \ -libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED \ -libxml-2.0 >= $LIBXML_REQUIRED \ -libglade-2.0 >= $LIBGLADE_REQUIRED \ -$OPTIONAL_MODULES \ + glib-2.0 >= $GLIB_REQUIRED \ + gtk+-3.0 >= $GTK_REQUIRED \ + libxml-2.0 >= $LIBXML_REQUIRED \ + librsvg-2.0 >= $LIBRSVG_REQUIRED \ ") 2>&5 ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then pkg_cv_GLABELS_CFLAGS=`$PKG_CONFIG --cflags "\ -glib-2.0 >= $GLIB_REQUIRED \ -gtk+-2.0 >= $GTK_REQUIRED \ -libgnome-2.0 >= $LIBGNOME_REQUIRED \ -libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED \ -libxml-2.0 >= $LIBXML_REQUIRED \ -libglade-2.0 >= $LIBGLADE_REQUIRED \ -$OPTIONAL_MODULES \ + glib-2.0 >= $GLIB_REQUIRED \ + gtk+-3.0 >= $GTK_REQUIRED \ + libxml-2.0 >= $LIBXML_REQUIRED \ + librsvg-2.0 >= $LIBRSVG_REQUIRED \ " 2>/dev/null` else pkg_failed=yes @@ -14578,35 +13706,26 @@ if test -n "$GLABELS_LIBS"; then pkg_cv_GLABELS_LIBS="$GLABELS_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\\ -glib-2.0 >= \$GLIB_REQUIRED \\ -gtk+-2.0 >= \$GTK_REQUIRED \\ -libgnome-2.0 >= \$LIBGNOME_REQUIRED \\ -libgnomeui-2.0 >= \$LIBGNOMEUI_REQUIRED \\ -libxml-2.0 >= \$LIBXML_REQUIRED \\ -libglade-2.0 >= \$LIBGLADE_REQUIRED \\ -\$OPTIONAL_MODULES \\ -\"") >&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\\ + glib-2.0 >= \$GLIB_REQUIRED \\ + gtk+-3.0 >= \$GTK_REQUIRED \\ + libxml-2.0 >= \$LIBXML_REQUIRED \\ + librsvg-2.0 >= \$LIBRSVG_REQUIRED \\ +\""; } >&5 ($PKG_CONFIG --exists --print-errors "\ -glib-2.0 >= $GLIB_REQUIRED \ -gtk+-2.0 >= $GTK_REQUIRED \ -libgnome-2.0 >= $LIBGNOME_REQUIRED \ -libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED \ -libxml-2.0 >= $LIBXML_REQUIRED \ -libglade-2.0 >= $LIBGLADE_REQUIRED \ -$OPTIONAL_MODULES \ + glib-2.0 >= $GLIB_REQUIRED \ + gtk+-3.0 >= $GTK_REQUIRED \ + libxml-2.0 >= $LIBXML_REQUIRED \ + librsvg-2.0 >= $LIBRSVG_REQUIRED \ ") 2>&5 ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then pkg_cv_GLABELS_LIBS=`$PKG_CONFIG --libs "\ -glib-2.0 >= $GLIB_REQUIRED \ -gtk+-2.0 >= $GTK_REQUIRED \ -libgnome-2.0 >= $LIBGNOME_REQUIRED \ -libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED \ -libxml-2.0 >= $LIBXML_REQUIRED \ -libglade-2.0 >= $LIBGLADE_REQUIRED \ -$OPTIONAL_MODULES \ + glib-2.0 >= $GLIB_REQUIRED \ + gtk+-3.0 >= $GTK_REQUIRED \ + libxml-2.0 >= $LIBXML_REQUIRED \ + librsvg-2.0 >= $LIBRSVG_REQUIRED \ " 2>/dev/null` else pkg_failed=yes @@ -14618,6 +13737,8 @@ fi if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes @@ -14626,36 +13747,27 @@ else fi if test $_pkg_short_errors_supported = yes; then GLABELS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "\ -glib-2.0 >= $GLIB_REQUIRED \ -gtk+-2.0 >= $GTK_REQUIRED \ -libgnome-2.0 >= $LIBGNOME_REQUIRED \ -libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED \ -libxml-2.0 >= $LIBXML_REQUIRED \ -libglade-2.0 >= $LIBGLADE_REQUIRED \ -$OPTIONAL_MODULES \ + glib-2.0 >= $GLIB_REQUIRED \ + gtk+-3.0 >= $GTK_REQUIRED \ + libxml-2.0 >= $LIBXML_REQUIRED \ + librsvg-2.0 >= $LIBRSVG_REQUIRED \ " 2>&1` else GLABELS_PKG_ERRORS=`$PKG_CONFIG --print-errors "\ -glib-2.0 >= $GLIB_REQUIRED \ -gtk+-2.0 >= $GTK_REQUIRED \ -libgnome-2.0 >= $LIBGNOME_REQUIRED \ -libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED \ -libxml-2.0 >= $LIBXML_REQUIRED \ -libglade-2.0 >= $LIBGLADE_REQUIRED \ -$OPTIONAL_MODULES \ + glib-2.0 >= $GLIB_REQUIRED \ + gtk+-3.0 >= $GTK_REQUIRED \ + libxml-2.0 >= $LIBXML_REQUIRED \ + librsvg-2.0 >= $LIBRSVG_REQUIRED \ " 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$GLABELS_PKG_ERRORS" >&5 - { { $as_echo "$as_me:$LINENO: error: Package requirements (\ -glib-2.0 >= $GLIB_REQUIRED \ -gtk+-2.0 >= $GTK_REQUIRED \ -libgnome-2.0 >= $LIBGNOME_REQUIRED \ -libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED \ -libxml-2.0 >= $LIBXML_REQUIRED \ -libglade-2.0 >= $LIBGLADE_REQUIRED \ -$OPTIONAL_MODULES \ + as_fn_error $? "Package requirements (\ + glib-2.0 >= $GLIB_REQUIRED \ + gtk+-3.0 >= $GTK_REQUIRED \ + libxml-2.0 >= $LIBXML_REQUIRED \ + librsvg-2.0 >= $LIBRSVG_REQUIRED \ ) were not met: $GLABELS_PKG_ERRORS @@ -14665,32 +13777,14 @@ installed software in a non-standard prefix. Alternatively, you may set the environment variables GLABELS_CFLAGS and GLABELS_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details. -" >&5 -$as_echo "$as_me: error: Package requirements (\ -glib-2.0 >= $GLIB_REQUIRED \ -gtk+-2.0 >= $GTK_REQUIRED \ -libgnome-2.0 >= $LIBGNOME_REQUIRED \ -libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED \ -libxml-2.0 >= $LIBXML_REQUIRED \ -libglade-2.0 >= $LIBGLADE_REQUIRED \ -$OPTIONAL_MODULES \ -) were not met: +See the pkg-config man page for more details." "$LINENO" 5 -$GLABELS_PKG_ERRORS - -Consider adjusting the PKG_CONFIG_PATH environment variable if you -installed software in a non-standard prefix. - -Alternatively, you may set the environment variables GLABELS_CFLAGS -and GLABELS_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details. -" >&2;} - { (exit 1); exit 1; }; } elif test $pkg_failed = untried; then - { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ { $as_echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old. Make sure it +as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. @@ -14699,24 +13793,14 @@ and GLABELS_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: The pkg-config script could not be found or is too old. Make sure it -is in your PATH or set the PKG_CONFIG environment variable to the full -path to pkg-config. - -Alternatively, you may set the environment variables GLABELS_CFLAGS -and GLABELS_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details. +See \`config.log' for more details" "$LINENO" 5; } -To get pkg-config, see . -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; }; } else GLABELS_CFLAGS=$pkg_cv_GLABELS_CFLAGS GLABELS_LIBS=$pkg_cv_GLABELS_LIBS - { $as_echo "$as_me:$LINENO: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - : + fi @@ -14725,27 +13809,27 @@ fi pkg_failed=no -{ $as_echo "$as_me:$LINENO: checking for LIBGLABELS" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBGLABELS" >&5 $as_echo_n "checking for LIBGLABELS... " >&6; } if test -n "$LIBGLABELS_CFLAGS"; then pkg_cv_LIBGLABELS_CFLAGS="$LIBGLABELS_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\\ -glib-2.0 >= \$GLIB_REQUIRED \\ -libxml-2.0 >= \$LIBXML_REQUIRED \\ -\"") >&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\\ + glib-2.0 >= \$GLIB_REQUIRED \\ + libxml-2.0 >= \$LIBXML_REQUIRED \\ +\""; } >&5 ($PKG_CONFIG --exists --print-errors "\ -glib-2.0 >= $GLIB_REQUIRED \ -libxml-2.0 >= $LIBXML_REQUIRED \ + glib-2.0 >= $GLIB_REQUIRED \ + libxml-2.0 >= $LIBXML_REQUIRED \ ") 2>&5 ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then pkg_cv_LIBGLABELS_CFLAGS=`$PKG_CONFIG --cflags "\ -glib-2.0 >= $GLIB_REQUIRED \ -libxml-2.0 >= $LIBXML_REQUIRED \ + glib-2.0 >= $GLIB_REQUIRED \ + libxml-2.0 >= $LIBXML_REQUIRED \ " 2>/dev/null` else pkg_failed=yes @@ -14757,20 +13841,20 @@ if test -n "$LIBGLABELS_LIBS"; then pkg_cv_LIBGLABELS_LIBS="$LIBGLABELS_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\\ -glib-2.0 >= \$GLIB_REQUIRED \\ -libxml-2.0 >= \$LIBXML_REQUIRED \\ -\"") >&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\\ + glib-2.0 >= \$GLIB_REQUIRED \\ + libxml-2.0 >= \$LIBXML_REQUIRED \\ +\""; } >&5 ($PKG_CONFIG --exists --print-errors "\ -glib-2.0 >= $GLIB_REQUIRED \ -libxml-2.0 >= $LIBXML_REQUIRED \ + glib-2.0 >= $GLIB_REQUIRED \ + libxml-2.0 >= $LIBXML_REQUIRED \ ") 2>&5 ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then pkg_cv_LIBGLABELS_LIBS=`$PKG_CONFIG --libs "\ -glib-2.0 >= $GLIB_REQUIRED \ -libxml-2.0 >= $LIBXML_REQUIRED \ + glib-2.0 >= $GLIB_REQUIRED \ + libxml-2.0 >= $LIBXML_REQUIRED \ " 2>/dev/null` else pkg_failed=yes @@ -14782,6 +13866,8 @@ fi if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes @@ -14790,21 +13876,21 @@ else fi if test $_pkg_short_errors_supported = yes; then LIBGLABELS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "\ -glib-2.0 >= $GLIB_REQUIRED \ -libxml-2.0 >= $LIBXML_REQUIRED \ + glib-2.0 >= $GLIB_REQUIRED \ + libxml-2.0 >= $LIBXML_REQUIRED \ " 2>&1` else LIBGLABELS_PKG_ERRORS=`$PKG_CONFIG --print-errors "\ -glib-2.0 >= $GLIB_REQUIRED \ -libxml-2.0 >= $LIBXML_REQUIRED \ + glib-2.0 >= $GLIB_REQUIRED \ + libxml-2.0 >= $LIBXML_REQUIRED \ " 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$LIBGLABELS_PKG_ERRORS" >&5 - { { $as_echo "$as_me:$LINENO: error: Package requirements (\ -glib-2.0 >= $GLIB_REQUIRED \ -libxml-2.0 >= $LIBXML_REQUIRED \ + as_fn_error $? "Package requirements (\ + glib-2.0 >= $GLIB_REQUIRED \ + libxml-2.0 >= $LIBXML_REQUIRED \ ) were not met: $LIBGLABELS_PKG_ERRORS @@ -14814,27 +13900,14 @@ installed software in a non-standard prefix. Alternatively, you may set the environment variables LIBGLABELS_CFLAGS and LIBGLABELS_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details. -" >&5 -$as_echo "$as_me: error: Package requirements (\ -glib-2.0 >= $GLIB_REQUIRED \ -libxml-2.0 >= $LIBXML_REQUIRED \ -) were not met: - -$LIBGLABELS_PKG_ERRORS - -Consider adjusting the PKG_CONFIG_PATH environment variable if you -installed software in a non-standard prefix. +See the pkg-config man page for more details." "$LINENO" 5 -Alternatively, you may set the environment variables LIBGLABELS_CFLAGS -and LIBGLABELS_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details. -" >&2;} - { (exit 1); exit 1; }; } elif test $pkg_failed = untried; then - { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ { $as_echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old. Make sure it +as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. @@ -14843,24 +13916,14 @@ and LIBGLABELS_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: The pkg-config script could not be found or is too old. Make sure it -is in your PATH or set the PKG_CONFIG environment variable to the full -path to pkg-config. +See \`config.log' for more details" "$LINENO" 5; } -Alternatively, you may set the environment variables LIBGLABELS_CFLAGS -and LIBGLABELS_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details. - -To get pkg-config, see . -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; }; } else LIBGLABELS_CFLAGS=$pkg_cv_LIBGLABELS_CFLAGS LIBGLABELS_LIBS=$pkg_cv_LIBGLABELS_LIBS - { $as_echo "$as_me:$LINENO: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - : + fi @@ -14869,27 +13932,30 @@ fi pkg_failed=no -{ $as_echo "$as_me:$LINENO: checking for MYGAL" >&5 -$as_echo_n "checking for MYGAL... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBGLBARCODE" >&5 +$as_echo_n "checking for LIBGLBARCODE... " >&6; } -if test -n "$MYGAL_CFLAGS"; then - pkg_cv_MYGAL_CFLAGS="$MYGAL_CFLAGS" +if test -n "$LIBGLBARCODE_CFLAGS"; then + pkg_cv_LIBGLBARCODE_CFLAGS="$LIBGLBARCODE_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\\ -gtk+-2.0 >= \$GTK_REQUIRED \\ -libgnomeui-2.0 >= \$LIBGNOMEUI_REQUIRED \\ -\"") >&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\\ + glib-2.0 >= \$GLIB_REQUIRED \\ + cairo >= \$CAIRO_REQUIRED \\ + pango >= \$PANGO_REQUIRED \\ +\""; } >&5 ($PKG_CONFIG --exists --print-errors "\ -gtk+-2.0 >= $GTK_REQUIRED \ -libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED \ + glib-2.0 >= $GLIB_REQUIRED \ + cairo >= $CAIRO_REQUIRED \ + pango >= $PANGO_REQUIRED \ ") 2>&5 ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - pkg_cv_MYGAL_CFLAGS=`$PKG_CONFIG --cflags "\ -gtk+-2.0 >= $GTK_REQUIRED \ -libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED \ + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_LIBGLBARCODE_CFLAGS=`$PKG_CONFIG --cflags "\ + glib-2.0 >= $GLIB_REQUIRED \ + cairo >= $CAIRO_REQUIRED \ + pango >= $PANGO_REQUIRED \ " 2>/dev/null` else pkg_failed=yes @@ -14897,24 +13963,27 @@ fi else pkg_failed=untried fi -if test -n "$MYGAL_LIBS"; then - pkg_cv_MYGAL_LIBS="$MYGAL_LIBS" +if test -n "$LIBGLBARCODE_LIBS"; then + pkg_cv_LIBGLBARCODE_LIBS="$LIBGLBARCODE_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\\ -gtk+-2.0 >= \$GTK_REQUIRED \\ -libgnomeui-2.0 >= \$LIBGNOMEUI_REQUIRED \\ -\"") >&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\\ + glib-2.0 >= \$GLIB_REQUIRED \\ + cairo >= \$CAIRO_REQUIRED \\ + pango >= \$PANGO_REQUIRED \\ +\""; } >&5 ($PKG_CONFIG --exists --print-errors "\ -gtk+-2.0 >= $GTK_REQUIRED \ -libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED \ + glib-2.0 >= $GLIB_REQUIRED \ + cairo >= $CAIRO_REQUIRED \ + pango >= $PANGO_REQUIRED \ ") 2>&5 ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - pkg_cv_MYGAL_LIBS=`$PKG_CONFIG --libs "\ -gtk+-2.0 >= $GTK_REQUIRED \ -libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED \ + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_LIBGLBARCODE_LIBS=`$PKG_CONFIG --libs "\ + glib-2.0 >= $GLIB_REQUIRED \ + cairo >= $CAIRO_REQUIRED \ + pango >= $PANGO_REQUIRED \ " 2>/dev/null` else pkg_failed=yes @@ -14926,6 +13995,8 @@ fi if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes @@ -14933,78 +14004,58 @@ else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - MYGAL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "\ -gtk+-2.0 >= $GTK_REQUIRED \ -libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED \ + LIBGLBARCODE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "\ + glib-2.0 >= $GLIB_REQUIRED \ + cairo >= $CAIRO_REQUIRED \ + pango >= $PANGO_REQUIRED \ " 2>&1` else - MYGAL_PKG_ERRORS=`$PKG_CONFIG --print-errors "\ -gtk+-2.0 >= $GTK_REQUIRED \ -libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED \ + LIBGLBARCODE_PKG_ERRORS=`$PKG_CONFIG --print-errors "\ + glib-2.0 >= $GLIB_REQUIRED \ + cairo >= $CAIRO_REQUIRED \ + pango >= $PANGO_REQUIRED \ " 2>&1` fi # Put the nasty error message in config.log where it belongs - echo "$MYGAL_PKG_ERRORS" >&5 + echo "$LIBGLBARCODE_PKG_ERRORS" >&5 - { { $as_echo "$as_me:$LINENO: error: Package requirements (\ -gtk+-2.0 >= $GTK_REQUIRED \ -libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED \ + as_fn_error $? "Package requirements (\ + glib-2.0 >= $GLIB_REQUIRED \ + cairo >= $CAIRO_REQUIRED \ + pango >= $PANGO_REQUIRED \ ) were not met: -$MYGAL_PKG_ERRORS +$LIBGLBARCODE_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. -Alternatively, you may set the environment variables MYGAL_CFLAGS -and MYGAL_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details. -" >&5 -$as_echo "$as_me: error: Package requirements (\ -gtk+-2.0 >= $GTK_REQUIRED \ -libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED \ -) were not met: - -$MYGAL_PKG_ERRORS - -Consider adjusting the PKG_CONFIG_PATH environment variable if you -installed software in a non-standard prefix. +Alternatively, you may set the environment variables LIBGLBARCODE_CFLAGS +and LIBGLBARCODE_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details." "$LINENO" 5 -Alternatively, you may set the environment variables MYGAL_CFLAGS -and MYGAL_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details. -" >&2;} - { (exit 1); exit 1; }; } elif test $pkg_failed = untried; then - { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ { $as_echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old. Make sure it +as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. -Alternatively, you may set the environment variables MYGAL_CFLAGS -and MYGAL_LIBS to avoid the need to call pkg-config. +Alternatively, you may set the environment variables LIBGLBARCODE_CFLAGS +and LIBGLBARCODE_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: The pkg-config script could not be found or is too old. Make sure it -is in your PATH or set the PKG_CONFIG environment variable to the full -path to pkg-config. - -Alternatively, you may set the environment variables MYGAL_CFLAGS -and MYGAL_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details. +See \`config.log' for more details" "$LINENO" 5; } -To get pkg-config, see . -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; }; } else - MYGAL_CFLAGS=$pkg_cv_MYGAL_CFLAGS - MYGAL_LIBS=$pkg_cv_MYGAL_LIBS - { $as_echo "$as_me:$LINENO: result: yes" >&5 + LIBGLBARCODE_CFLAGS=$pkg_cv_LIBGLBARCODE_CFLAGS + LIBGLBARCODE_LIBS=$pkg_cv_LIBGLBARCODE_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - : + fi @@ -15012,36 +14063,44 @@ fi +# Check whether --with-libebook was given. +if test "${with_libebook+set}" = set; then : + withval=$with_libebook; +fi + +have_libebook=no +if test "x$with_libebook" != xno; then + pkg_failed=no -{ $as_echo "$as_me:$LINENO: checking for XML_PARSE_HUGE" >&5 -$as_echo_n "checking for XML_PARSE_HUGE... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBEBOOK" >&5 +$as_echo_n "checking for LIBEBOOK... " >&6; } -if test -n "$XML_PARSE_HUGE_CFLAGS"; then - pkg_cv_XML_PARSE_HUGE_CFLAGS="$XML_PARSE_HUGE_CFLAGS" +if test -n "$LIBEBOOK_CFLAGS"; then + pkg_cv_LIBEBOOK_CFLAGS="$LIBEBOOK_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libxml-2.0 >= 2.7.0\"") >&5 - ($PKG_CONFIG --exists --print-errors "libxml-2.0 >= 2.7.0") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libebook-1.2 >= \$LIBEBOOK_REQUIRED\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libebook-1.2 >= $LIBEBOOK_REQUIRED") 2>&5 ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - pkg_cv_XML_PARSE_HUGE_CFLAGS=`$PKG_CONFIG --cflags "libxml-2.0 >= 2.7.0" 2>/dev/null` + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_LIBEBOOK_CFLAGS=`$PKG_CONFIG --cflags "libebook-1.2 >= $LIBEBOOK_REQUIRED" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi -if test -n "$XML_PARSE_HUGE_LIBS"; then - pkg_cv_XML_PARSE_HUGE_LIBS="$XML_PARSE_HUGE_LIBS" +if test -n "$LIBEBOOK_LIBS"; then + pkg_cv_LIBEBOOK_LIBS="$LIBEBOOK_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libxml-2.0 >= 2.7.0\"") >&5 - ($PKG_CONFIG --exists --print-errors "libxml-2.0 >= 2.7.0") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libebook-1.2 >= \$LIBEBOOK_REQUIRED\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libebook-1.2 >= $LIBEBOOK_REQUIRED") 2>&5 ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - pkg_cv_XML_PARSE_HUGE_LIBS=`$PKG_CONFIG --libs "libxml-2.0 >= 2.7.0" 2>/dev/null` + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_LIBEBOOK_LIBS=`$PKG_CONFIG --libs "libebook-1.2 >= $LIBEBOOK_REQUIRED" 2>/dev/null` else pkg_failed=yes fi @@ -15052,6 +14111,8 @@ fi if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes @@ -15059,335 +14120,379 @@ else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - XML_PARSE_HUGE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libxml-2.0 >= 2.7.0" 2>&1` + LIBEBOOK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libebook-1.2 >= $LIBEBOOK_REQUIRED" 2>&1` else - XML_PARSE_HUGE_PKG_ERRORS=`$PKG_CONFIG --print-errors "libxml-2.0 >= 2.7.0" 2>&1` + LIBEBOOK_PKG_ERRORS=`$PKG_CONFIG --print-errors "libebook-1.2 >= $LIBEBOOK_REQUIRED" 2>&1` fi # Put the nasty error message in config.log where it belongs - echo "$XML_PARSE_HUGE_PKG_ERRORS" >&5 + echo "$LIBEBOOK_PKG_ERRORS" >&5 - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } - HAVE_XML_PARSE_HUGE="-UHAVE_XML_PARSE_HUGE" + have_libebook=no elif test $pkg_failed = untried; then - HAVE_XML_PARSE_HUGE="-UHAVE_XML_PARSE_HUGE" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + have_libebook=no else - XML_PARSE_HUGE_CFLAGS=$pkg_cv_XML_PARSE_HUGE_CFLAGS - XML_PARSE_HUGE_LIBS=$pkg_cv_XML_PARSE_HUGE_LIBS - { $as_echo "$as_me:$LINENO: result: yes" >&5 + LIBEBOOK_CFLAGS=$pkg_cv_LIBEBOOK_CFLAGS + LIBEBOOK_LIBS=$pkg_cv_LIBEBOOK_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - HAVE_XML_PARSE_HUGE="-DHAVE_XML_PARSE_HUGE" + have_libebook=yes +fi fi +if test "x$have_libebook" = "xyes"; then + +$as_echo "#define HAVE_LIBEBOOK 1" >>confdefs.h + -# Check whether --enable-deprecations was given. -if test "${enable_deprecations+set}" = set; then - enableval=$enable_deprecations; -else - enable_deprecations=no fi -if test "x$enable_deprecations" = "xyes"; then - DISABLE_DEPRECATED_CFLAGS="\ --DG_DISABLE_DEPRECATED \ --DGDK_DISABLE_DEPRECATED \ --DGTK_DISABLE_DEPRECATED \ --DGDK_PIXBUF_DISABLE_DEPRECATED \ --DGNOME_DISABLE_DEPRECATED \ --DLIBGLADE_DISABLE_DEPRECATED" +# Check whether --with-libbarcode was given. +if test "${with_libbarcode+set}" = set; then : + withval=$with_libbarcode; fi - -# Extract the first word of "update-mime-database", so it can be a program name with args. -set dummy update-mime-database; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_UPDATE_MIME_DATABASE+set}" = set; then +have_libbarcode=no +if test "x$with_libbarcode" != xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Barcode_Create in -lbarcode" >&5 +$as_echo_n "checking for Barcode_Create in -lbarcode... " >&6; } +if ${ac_cv_lib_barcode_Barcode_Create+:} false; then : $as_echo_n "(cached) " >&6 else - case $UPDATE_MIME_DATABASE in - [\\/]* | ?:[\\/]*) - ac_cv_path_UPDATE_MIME_DATABASE="$UPDATE_MIME_DATABASE" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_UPDATE_MIME_DATABASE="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS + ac_check_lib_save_LIBS=$LIBS +LIBS="-lbarcode $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - test -z "$ac_cv_path_UPDATE_MIME_DATABASE" && ac_cv_path_UPDATE_MIME_DATABASE="no" - ;; -esac +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char Barcode_Create (); +int +main () +{ +return Barcode_Create (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_barcode_Barcode_Create=yes +else + ac_cv_lib_barcode_Barcode_Create=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi -UPDATE_MIME_DATABASE=$ac_cv_path_UPDATE_MIME_DATABASE -if test -n "$UPDATE_MIME_DATABASE"; then - { $as_echo "$as_me:$LINENO: result: $UPDATE_MIME_DATABASE" >&5 -$as_echo "$UPDATE_MIME_DATABASE" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_barcode_Barcode_Create" >&5 +$as_echo "$ac_cv_lib_barcode_Barcode_Create" >&6; } +if test "x$ac_cv_lib_barcode_Barcode_Create" = xyes; then : + have_libbarcode=yes else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } + have_libbarcode=no +fi + fi +if test "x$have_libbarcode" = "xyes"; then + +$as_echo "#define HAVE_LIBBARCODE 1" >>confdefs.h + + LIBBARCODE_CFLAGS="" + LIBBARCODE_LIBS="-lbarcode" + - if test x$UPDATE_MIME_DATABASE != xno; then - HAVE_NEW_MIME_TRUE= - HAVE_NEW_MIME_FALSE='#' else - HAVE_NEW_MIME_TRUE='#' - HAVE_NEW_MIME_FALSE= + help_libbarcode="(See http://www.gnu.org/software/barcode/barcode.html)" fi -# Extract the first word of "update-desktop-database", so it can be a program name with args. -set dummy update-desktop-database; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_UPDATE_DESKTOP_DATABASE+set}" = set; then +# Check whether --with-libzint was given. +if test "${with_libzint+set}" = set; then : + withval=$with_libzint; +fi + +have_libzint=no +if test "x$with_libzint" != xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ZBarcode_Render in -lzint" >&5 +$as_echo_n "checking for ZBarcode_Render in -lzint... " >&6; } +if ${ac_cv_lib_zint_ZBarcode_Render+:} false; then : $as_echo_n "(cached) " >&6 else - case $UPDATE_DESKTOP_DATABASE in - [\\/]* | ?:[\\/]*) - ac_cv_path_UPDATE_DESKTOP_DATABASE="$UPDATE_DESKTOP_DATABASE" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_UPDATE_DESKTOP_DATABASE="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS + ac_check_lib_save_LIBS=$LIBS +LIBS="-lzint $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - test -z "$ac_cv_path_UPDATE_DESKTOP_DATABASE" && ac_cv_path_UPDATE_DESKTOP_DATABASE="no" - ;; -esac +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ZBarcode_Render (); +int +main () +{ +return ZBarcode_Render (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_zint_ZBarcode_Render=yes +else + ac_cv_lib_zint_ZBarcode_Render=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_zint_ZBarcode_Render" >&5 +$as_echo "$ac_cv_lib_zint_ZBarcode_Render" >&6; } +if test "x$ac_cv_lib_zint_ZBarcode_Render" = xyes; then : + have_libzint=yes +else + have_libzint=no +fi + +fi + +if test "x$have_libzint" = "xyes"; then + +$as_echo "#define HAVE_LIBZINT 1" >>confdefs.h + + LIBZINT_CFLAGS="" + LIBZINT_LIBS="-lzint" + + +else + help_libzint="(See http://www.zint.org.uk)" +fi + + + +# Check whether --with-libqrencode was given. +if test "${with_libqrencode+set}" = set; then : + withval=$with_libqrencode; +fi + +have_libqrencode=no +if test "x$with_libqrencode" != xno; then + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBQRENCODE" >&5 +$as_echo_n "checking for LIBQRENCODE... " >&6; } + +if test -n "$LIBQRENCODE_CFLAGS"; then + pkg_cv_LIBQRENCODE_CFLAGS="$LIBQRENCODE_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libqrencode >= \$LIBQRENCODE_REQUIRED\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libqrencode >= $LIBQRENCODE_REQUIRED") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_LIBQRENCODE_CFLAGS=`$PKG_CONFIG --cflags "libqrencode >= $LIBQRENCODE_REQUIRED" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$LIBQRENCODE_LIBS"; then + pkg_cv_LIBQRENCODE_LIBS="$LIBQRENCODE_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libqrencode >= \$LIBQRENCODE_REQUIRED\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libqrencode >= $LIBQRENCODE_REQUIRED") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_LIBQRENCODE_LIBS=`$PKG_CONFIG --libs "libqrencode >= $LIBQRENCODE_REQUIRED" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried fi -UPDATE_DESKTOP_DATABASE=$ac_cv_path_UPDATE_DESKTOP_DATABASE -if test -n "$UPDATE_DESKTOP_DATABASE"; then - { $as_echo "$as_me:$LINENO: result: $UPDATE_DESKTOP_DATABASE" >&5 -$as_echo "$UPDATE_DESKTOP_DATABASE" >&6; } + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes else - { $as_echo "$as_me:$LINENO: result: no" >&5 + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + LIBQRENCODE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libqrencode >= $LIBQRENCODE_REQUIRED" 2>&1` + else + LIBQRENCODE_PKG_ERRORS=`$PKG_CONFIG --print-errors "libqrencode >= $LIBQRENCODE_REQUIRED" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$LIBQRENCODE_PKG_ERRORS" >&5 + + have_libqrencode=no +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } + have_libqrencode=no +else + LIBQRENCODE_CFLAGS=$pkg_cv_LIBQRENCODE_CFLAGS + LIBQRENCODE_LIBS=$pkg_cv_LIBQRENCODE_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + have_libqrencode=yes fi +fi + +if test "x$have_libqrencode" = "xyes"; then + +$as_echo "#define HAVE_LIBQRENCODE 1" >>confdefs.h + - if test x$UPDATE_DESKTOP_DATABASE != xno; then - HAVE_NEWER_MIME_TRUE= - HAVE_NEWER_MIME_FALSE='#' else - HAVE_NEWER_MIME_TRUE='#' - HAVE_NEWER_MIME_FALSE= + help_libqrencode="(See http://megaui.net/fukuchi/works/qrencode/index.en.html)" fi -# Check whether --enable-update-mimedb was given. -if test "${enable_update_mimedb+set}" = set; then - enableval=$enable_update_mimedb; -else - enable_update_mimedb=yes + +# Check whether --with-libiec16022 was given. +if test "${with_libiec16022+set}" = set; then : + withval=$with_libiec16022; fi - if test x$enable_update_mimedb = xyes; then - ENABLE_UPDATE_MIMEDB_TRUE= - ENABLE_UPDATE_MIMEDB_FALSE='#' +have_libiec16022=no +if test "x$with_libiec16022" != xno; then + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBIEC16022" >&5 +$as_echo_n "checking for LIBIEC16022... " >&6; } + +if test -n "$LIBIEC16022_CFLAGS"; then + pkg_cv_LIBIEC16022_CFLAGS="$LIBIEC16022_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libiec16022 >= \$LIBIEC16022_REQUIRED\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libiec16022 >= $LIBIEC16022_REQUIRED") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_LIBIEC16022_CFLAGS=`$PKG_CONFIG --cflags "libiec16022 >= $LIBIEC16022_REQUIRED" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$LIBIEC16022_LIBS"; then + pkg_cv_LIBIEC16022_LIBS="$LIBIEC16022_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libiec16022 >= \$LIBIEC16022_REQUIRED\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libiec16022 >= $LIBIEC16022_REQUIRED") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_LIBIEC16022_LIBS=`$PKG_CONFIG --libs "libiec16022 >= $LIBIEC16022_REQUIRED" 2>/dev/null` else - ENABLE_UPDATE_MIMEDB_TRUE='#' - ENABLE_UPDATE_MIMEDB_FALSE= + pkg_failed=yes fi + else + pkg_failed=untried +fi + -# Check whether --enable-update-desktopdb was given. -if test "${enable_update_desktopdb+set}" = set; then - enableval=$enable_update_desktopdb; +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes else - enable_update_desktopdb=yes + _pkg_short_errors_supported=no fi + if test $_pkg_short_errors_supported = yes; then + LIBIEC16022_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libiec16022 >= $LIBIEC16022_REQUIRED" 2>&1` + else + LIBIEC16022_PKG_ERRORS=`$PKG_CONFIG --print-errors "libiec16022 >= $LIBIEC16022_REQUIRED" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$LIBIEC16022_PKG_ERRORS" >&5 - if test x$enable_update_desktopdb = xyes; then - ENABLE_UPDATE_DESKTOPDB_TRUE= - ENABLE_UPDATE_DESKTOPDB_FALSE='#' + have_libiec16022=no +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + have_libiec16022=no else - ENABLE_UPDATE_DESKTOPDB_TRUE='#' - ENABLE_UPDATE_DESKTOPDB_FALSE= + LIBIEC16022_CFLAGS=$pkg_cv_LIBIEC16022_CFLAGS + LIBIEC16022_LIBS=$pkg_cv_LIBIEC16022_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + have_libiec16022=yes +fi fi +if test "x$have_libiec16022" = "xyes"; then +$as_echo "#define HAVE_LIBIEC16022 1" >>confdefs.h -GETTEXT_PACKAGE=glabels -cat >>confdefs.h <<_ACEOF -#define GETTEXT_PACKAGE "$GETTEXT_PACKAGE" -_ACEOF +else + help_libiec16022="(See http://datenfreihafen.org/projects/iec16022.html)" +fi +# Check whether --enable-deprecations was given. +if test "${enable_deprecations+set}" = set; then : + enableval=$enable_deprecations; +else + enable_deprecations=no +fi -for ac_header in locale.h -do -as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 -$as_echo_n "checking for $ac_header... " >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - $as_echo_n "(cached) " >&6 -fi -ac_res=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -else - # Is the header compilable? -{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 -$as_echo_n "checking $ac_header usability... " >&6; } -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_header_compiler=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 +if test "x$enable_deprecations" = "xyes"; then + DISABLE_DEPRECATED_CFLAGS="\ +-DG_DISABLE_DEPRECATED \ +-DGDK_DISABLE_DEPRECATED \ +-DGTK_DISABLE_DEPRECATED \ +-DGDK_PIXBUF_DISABLE_DEPRECATED \ +" - ac_header_compiler=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -$as_echo "$ac_header_compiler" >&6; } -# Is the header present? -{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 -$as_echo_n "checking $ac_header presence... " >&6; } -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <$ac_header> -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - ac_header_preproc=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 +GETTEXT_PACKAGE=${GLABELS_BRANCH} - ac_header_preproc=no -fi -rm -f conftest.err conftest.$ac_ext -{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -$as_echo "$ac_header_preproc" >&6; } +cat >>confdefs.h <<_ACEOF +#define GETTEXT_PACKAGE "$GETTEXT_PACKAGE" +_ACEOF -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - no:yes:* ) - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - ( cat <<\_ASBOX -## ---------------------------------------------------------------------------------- ## -## Report this to http://sourceforge.net/tracker/?func=add&group_id=46122&atid=445116 ## -## ---------------------------------------------------------------------------------- ## -_ASBOX - ) | sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 -$as_echo_n "checking for $ac_header... " >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - $as_echo_n "(cached) " >&6 -else - eval "$as_ac_Header=\$ac_header_preproc" -fi -ac_res=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -fi -as_val=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - if test "x$as_val" = x""yes; then + + for ac_header in locale.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "locale.h" "ac_cv_header_locale_h" "$ac_includes_default" +if test "x$ac_cv_header_locale_h" = xyes; then : cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +#define HAVE_LOCALE_H 1 _ACEOF fi @@ -15395,16 +14500,12 @@ fi done if test $ac_cv_header_locale_h = yes; then - { $as_echo "$as_me:$LINENO: checking for LC_MESSAGES" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LC_MESSAGES" >&5 $as_echo_n "checking for LC_MESSAGES... " >&6; } -if test "${am_cv_val_LC_MESSAGES+set}" = set; then +if ${am_cv_val_LC_MESSAGES+:} false; then : $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int @@ -15415,46 +14516,19 @@ return LC_MESSAGES return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +if ac_fn_c_try_link "$LINENO"; then : am_cv_val_LC_MESSAGES=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - am_cv_val_LC_MESSAGES=no + am_cv_val_LC_MESSAGES=no fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi -{ $as_echo "$as_me:$LINENO: result: $am_cv_val_LC_MESSAGES" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_val_LC_MESSAGES" >&5 $as_echo "$am_cv_val_LC_MESSAGES" >&6; } if test $am_cv_val_LC_MESSAGES = yes; then -cat >>confdefs.h <<\_ACEOF -#define HAVE_LC_MESSAGES 1 -_ACEOF +$as_echo "#define HAVE_LC_MESSAGES 1" >>confdefs.h fi fi @@ -15467,155 +14541,20 @@ _ACEOF XGETTEXT=: INTLLIBS= - if test "${ac_cv_header_libintl_h+set}" = set; then - { $as_echo "$as_me:$LINENO: checking for libintl.h" >&5 -$as_echo_n "checking for libintl.h... " >&6; } -if test "${ac_cv_header_libintl_h+set}" = set; then - $as_echo_n "(cached) " >&6 -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_libintl_h" >&5 -$as_echo "$ac_cv_header_libintl_h" >&6; } -else - # Is the header compilable? -{ $as_echo "$as_me:$LINENO: checking libintl.h usability" >&5 -$as_echo_n "checking libintl.h usability... " >&6; } -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#include -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_header_compiler=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_compiler=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -$as_echo "$ac_header_compiler" >&6; } - -# Is the header present? -{ $as_echo "$as_me:$LINENO: checking libintl.h presence" >&5 -$as_echo_n "checking libintl.h presence... " >&6; } -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - ac_header_preproc=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=no -fi - -rm -f conftest.err conftest.$ac_ext -{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -$as_echo "$ac_header_preproc" >&6; } - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) - { $as_echo "$as_me:$LINENO: WARNING: libintl.h: accepted by the compiler, rejected by the preprocessor!" >&5 -$as_echo "$as_me: WARNING: libintl.h: accepted by the compiler, rejected by the preprocessor!" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: libintl.h: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: libintl.h: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - no:yes:* ) - { $as_echo "$as_me:$LINENO: WARNING: libintl.h: present but cannot be compiled" >&5 -$as_echo "$as_me: WARNING: libintl.h: present but cannot be compiled" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: libintl.h: check for missing prerequisite headers?" >&5 -$as_echo "$as_me: WARNING: libintl.h: check for missing prerequisite headers?" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: libintl.h: see the Autoconf documentation" >&5 -$as_echo "$as_me: WARNING: libintl.h: see the Autoconf documentation" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: libintl.h: section \"Present But Cannot Be Compiled\"" >&5 -$as_echo "$as_me: WARNING: libintl.h: section \"Present But Cannot Be Compiled\"" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: libintl.h: proceeding with the preprocessor's result" >&5 -$as_echo "$as_me: WARNING: libintl.h: proceeding with the preprocessor's result" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: libintl.h: in the future, the compiler will take precedence" >&5 -$as_echo "$as_me: WARNING: libintl.h: in the future, the compiler will take precedence" >&2;} - ( cat <<\_ASBOX -## ---------------------------------------------------------------------------------- ## -## Report this to http://sourceforge.net/tracker/?func=add&group_id=46122&atid=445116 ## -## ---------------------------------------------------------------------------------- ## -_ASBOX - ) | sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -{ $as_echo "$as_me:$LINENO: checking for libintl.h" >&5 -$as_echo_n "checking for libintl.h... " >&6; } -if test "${ac_cv_header_libintl_h+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_cv_header_libintl_h=$ac_header_preproc -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_libintl_h" >&5 -$as_echo "$ac_cv_header_libintl_h" >&6; } - -fi -if test "x$ac_cv_header_libintl_h" = x""yes; then + ac_fn_c_check_header_mongrel "$LINENO" "libintl.h" "ac_cv_header_libintl_h" "$ac_includes_default" +if test "x$ac_cv_header_libintl_h" = xyes; then : gt_cv_func_dgettext_libintl="no" libintl_extra_libs="" # # First check in libc # - { $as_echo "$as_me:$LINENO: checking for ngettext in libc" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in libc" >&5 $as_echo_n "checking for ngettext in libc... " >&6; } -if test "${gt_cv_func_ngettext_libc+set}" = set; then +if ${gt_cv_func_ngettext_libc+:} false; then : $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include @@ -15626,203 +14565,59 @@ main () return !ngettext ("","", 1) ; return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then - gt_cv_func_ngettext_libc=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - gt_cv_func_ngettext_libc=no -fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext - -fi -{ $as_echo "$as_me:$LINENO: result: $gt_cv_func_ngettext_libc" >&5 -$as_echo "$gt_cv_func_ngettext_libc" >&6; } - - if test "$gt_cv_func_ngettext_libc" = "yes" ; then - { $as_echo "$as_me:$LINENO: checking for dgettext in libc" >&5 -$as_echo_n "checking for dgettext in libc... " >&6; } -if test "${gt_cv_func_dgettext_libc+set}" = set; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include - -int -main () -{ -return !dgettext ("","") - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then - gt_cv_func_dgettext_libc=yes +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gt_cv_func_ngettext_libc=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - gt_cv_func_dgettext_libc=no + gt_cv_func_ngettext_libc=no fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi -{ $as_echo "$as_me:$LINENO: result: $gt_cv_func_dgettext_libc" >&5 -$as_echo "$gt_cv_func_dgettext_libc" >&6; } - fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_ngettext_libc" >&5 +$as_echo "$gt_cv_func_ngettext_libc" >&6; } if test "$gt_cv_func_ngettext_libc" = "yes" ; then - -for ac_func in bind_textdomain_codeset -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 -$as_echo_n "checking for $ac_func... " >&6; } -if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgettext in libc" >&5 +$as_echo_n "checking for dgettext in libc... " >&6; } +if ${gt_cv_func_dgettext_libc+:} false; then : $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case declares $ac_func. - For example, HP-UX 11i declares gettimeofday. */ -#define $ac_func innocuous_$ac_func - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef $ac_func -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char $ac_func (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_$ac_func || defined __stub___$ac_func -choke me -#endif +#include int main () { -return $ac_func (); +return !dgettext ("","") ; return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then - eval "$as_ac_var=yes" +if ac_fn_c_try_link "$LINENO"; then : + gt_cv_func_dgettext_libc=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - eval "$as_ac_var=no" + gt_cv_func_dgettext_libc=no fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext fi -ac_res=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -as_val=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` - if test "x$as_val" = x""yes; then +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_dgettext_libc" >&5 +$as_echo "$gt_cv_func_dgettext_libc" >&6; } + fi + + if test "$gt_cv_func_ngettext_libc" = "yes" ; then + for ac_func in bind_textdomain_codeset +do : + ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" +if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define HAVE_BIND_TEXTDOMAIN_CODESET 1 _ACEOF fi @@ -15837,18 +14632,14 @@ done || test "$gt_cv_func_ngettext_libc" != "yes" \ || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then - { $as_echo "$as_me:$LINENO: checking for bindtextdomain in -lintl" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bindtextdomain in -lintl" >&5 $as_echo_n "checking for bindtextdomain in -lintl... " >&6; } -if test "${ac_cv_lib_intl_bindtextdomain+set}" = set; then +if ${ac_cv_lib_intl_bindtextdomain+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -15866,55 +14657,26 @@ return bindtextdomain (); return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_bindtextdomain=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_intl_bindtextdomain=no + ac_cv_lib_intl_bindtextdomain=no fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_intl_bindtextdomain" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_bindtextdomain" >&5 $as_echo "$ac_cv_lib_intl_bindtextdomain" >&6; } -if test "x$ac_cv_lib_intl_bindtextdomain" = x""yes; then - { $as_echo "$as_me:$LINENO: checking for ngettext in -lintl" >&5 +if test "x$ac_cv_lib_intl_bindtextdomain" = xyes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in -lintl" >&5 $as_echo_n "checking for ngettext in -lintl... " >&6; } -if test "${ac_cv_lib_intl_ngettext+set}" = set; then +if ${ac_cv_lib_intl_ngettext+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -15932,55 +14694,26 @@ return ngettext (); return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_ngettext=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_intl_ngettext=no + ac_cv_lib_intl_ngettext=no fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_intl_ngettext" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_ngettext" >&5 $as_echo "$ac_cv_lib_intl_ngettext" >&6; } -if test "x$ac_cv_lib_intl_ngettext" = x""yes; then - { $as_echo "$as_me:$LINENO: checking for dgettext in -lintl" >&5 +if test "x$ac_cv_lib_intl_ngettext" = xyes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgettext in -lintl" >&5 $as_echo_n "checking for dgettext in -lintl... " >&6; } -if test "${ac_cv_lib_intl_dgettext+set}" = set; then +if ${ac_cv_lib_intl_dgettext+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -15998,43 +14731,18 @@ return dgettext (); return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_dgettext=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_intl_dgettext=no + ac_cv_lib_intl_dgettext=no fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_intl_dgettext" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_dgettext" >&5 $as_echo "$ac_cv_lib_intl_dgettext" >&6; } -if test "x$ac_cv_lib_intl_dgettext" = x""yes; then +if test "x$ac_cv_lib_intl_dgettext" = xyes; then : gt_cv_func_dgettext_libintl=yes fi @@ -16044,22 +14752,18 @@ fi if test "$gt_cv_func_dgettext_libintl" != "yes" ; then - { $as_echo "$as_me:$LINENO: checking if -liconv is needed to use gettext" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if -liconv is needed to use gettext" >&5 $as_echo_n "checking if -liconv is needed to use gettext... " >&6; } - { $as_echo "$as_me:$LINENO: result: " >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } - { $as_echo "$as_me:$LINENO: checking for ngettext in -lintl" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in -lintl" >&5 $as_echo_n "checking for ngettext in -lintl... " >&6; } -if test "${ac_cv_lib_intl_ngettext+set}" = set; then +if ${ac_cv_lib_intl_ngettext+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl -liconv $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -16077,55 +14781,26 @@ return ngettext (); return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_ngettext=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_intl_ngettext=no + ac_cv_lib_intl_ngettext=no fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_intl_ngettext" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_ngettext" >&5 $as_echo "$ac_cv_lib_intl_ngettext" >&6; } -if test "x$ac_cv_lib_intl_ngettext" = x""yes; then - { $as_echo "$as_me:$LINENO: checking for dcgettext in -lintl" >&5 +if test "x$ac_cv_lib_intl_ngettext" = xyes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dcgettext in -lintl" >&5 $as_echo_n "checking for dcgettext in -lintl... " >&6; } -if test "${ac_cv_lib_intl_dcgettext+set}" = set; then +if ${ac_cv_lib_intl_dcgettext+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl -liconv $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -16143,43 +14818,18 @@ return dcgettext (); return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_dcgettext=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_intl_dcgettext=no + ac_cv_lib_intl_dcgettext=no fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_intl_dcgettext" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_dcgettext" >&5 $as_echo "$ac_cv_lib_intl_dcgettext" >&6; } -if test "x$ac_cv_lib_intl_dcgettext" = x""yes; then +if test "x$ac_cv_lib_intl_dcgettext" = xyes; then : gt_cv_func_dgettext_libintl=yes libintl_extra_libs=-liconv else @@ -16201,102 +14851,12 @@ fi glib_save_LIBS="$LIBS" LIBS="$LIBS -lintl $libintl_extra_libs" unset ac_cv_func_bind_textdomain_codeset - -for ac_func in bind_textdomain_codeset -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 -$as_echo_n "checking for $ac_func... " >&6; } -if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case declares $ac_func. - For example, HP-UX 11i declares gettimeofday. */ -#define $ac_func innocuous_$ac_func - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef $ac_func - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char $ac_func (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_$ac_func || defined __stub___$ac_func -choke me -#endif - -int -main () -{ -return $ac_func (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then - eval "$as_ac_var=yes" -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - eval "$as_ac_var=no" -fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi -ac_res=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -as_val=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` - if test "x$as_val" = x""yes; then + for ac_func in bind_textdomain_codeset +do : + ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" +if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define HAVE_BIND_TEXTDOMAIN_CODESET 1 _ACEOF fi @@ -16326,15 +14886,13 @@ done if test "$gt_cv_have_gettext" = "yes"; then -cat >>confdefs.h <<\_ACEOF -#define HAVE_GETTEXT 1 -_ACEOF +$as_echo "#define HAVE_GETTEXT 1" >>confdefs.h # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_MSGFMT+set}" = set; then +if ${ac_cv_path_MSGFMT+:} false; then : $as_echo_n "(cached) " >&6 else case "$MSGFMT" in @@ -16359,118 +14917,28 @@ esac fi MSGFMT="$ac_cv_path_MSGFMT" if test "$MSGFMT" != "no"; then - { $as_echo "$as_me:$LINENO: result: $MSGFMT" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 $as_echo "$MSGFMT" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "$MSGFMT" != "no"; then - glib_save_LIBS="$LIBS" - LIBS="$LIBS $INTLLIBS" - -for ac_func in dcgettext -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 -$as_echo_n "checking for $ac_func... " >&6; } -if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case declares $ac_func. - For example, HP-UX 11i declares gettimeofday. */ -#define $ac_func innocuous_$ac_func - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef $ac_func - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char $ac_func (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_$ac_func || defined __stub___$ac_func -choke me -#endif - -int -main () -{ -return $ac_func (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then - eval "$as_ac_var=yes" -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - eval "$as_ac_var=no" -fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi -ac_res=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -as_val=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` - if test "x$as_val" = x""yes; then + glib_save_LIBS="$LIBS" + LIBS="$LIBS $INTLLIBS" + for ac_func in dcgettext +do : + ac_fn_c_check_func "$LINENO" "dcgettext" "ac_cv_func_dcgettext" +if test "x$ac_cv_func_dcgettext" = xyes; then : cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define HAVE_DCGETTEXT 1 _ACEOF fi done MSGFMT_OPTS= - { $as_echo "$as_me:$LINENO: checking if msgfmt accepts -c" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if msgfmt accepts -c" >&5 $as_echo_n "checking if msgfmt accepts -c... " >&6; } cat >conftest.foo <<_ACEOF @@ -16485,14 +14953,14 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" _ACEOF -if { ($as_echo "$as_me:$LINENO: \$MSGFMT -c -o /dev/null conftest.foo") >&5 +if { { $as_echo "$as_me:${as_lineno-$LINENO}: \$MSGFMT -c -o /dev/null conftest.foo"; } >&5 ($MSGFMT -c -o /dev/null conftest.foo) 2>&5 ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - MSGFMT_OPTS=-c; { $as_echo "$as_me:$LINENO: result: yes" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + MSGFMT_OPTS=-c; { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -else { $as_echo "$as_me:$LINENO: result: no" >&5 +else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } echo "$as_me: failed input was:" >&5 sed 's/^/| /' conftest.foo >&5 @@ -16500,9 +14968,9 @@ fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_GMSGFMT+set}" = set; then +if ${ac_cv_path_GMSGFMT+:} false; then : $as_echo_n "(cached) " >&6 else case $GMSGFMT in @@ -16515,14 +14983,14 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" @@ -16531,19 +14999,19 @@ esac fi GMSGFMT=$ac_cv_path_GMSGFMT if test -n "$GMSGFMT"; then - { $as_echo "$as_me:$LINENO: result: $GMSGFMT" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 $as_echo "$GMSGFMT" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_XGETTEXT+set}" = set; then +if ${ac_cv_path_XGETTEXT+:} false; then : $as_echo_n "(cached) " >&6 else case "$XGETTEXT" in @@ -16568,18 +15036,14 @@ esac fi XGETTEXT="$ac_cv_path_XGETTEXT" if test "$XGETTEXT" != ":"; then - { $as_echo "$as_me:$LINENO: result: $XGETTEXT" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 $as_echo "$XGETTEXT" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -16591,121 +15055,14 @@ extern int _nl_msg_cat_cntr; return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +if ac_fn_c_try_link "$LINENO"; then : CATOBJEXT=.gmo DATADIRNAME=share else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - case $host in + case $host in *-*-solaris*) - { $as_echo "$as_me:$LINENO: checking for bind_textdomain_codeset" >&5 -$as_echo_n "checking for bind_textdomain_codeset... " >&6; } -if test "${ac_cv_func_bind_textdomain_codeset+set}" = set; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define bind_textdomain_codeset to an innocuous variant, in case declares bind_textdomain_codeset. - For example, HP-UX 11i declares gettimeofday. */ -#define bind_textdomain_codeset innocuous_bind_textdomain_codeset - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char bind_textdomain_codeset (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef bind_textdomain_codeset - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char bind_textdomain_codeset (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_bind_textdomain_codeset || defined __stub___bind_textdomain_codeset -choke me -#endif - -int -main () -{ -return bind_textdomain_codeset (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then - ac_cv_func_bind_textdomain_codeset=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_func_bind_textdomain_codeset=no -fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_bind_textdomain_codeset" >&5 -$as_echo "$ac_cv_func_bind_textdomain_codeset" >&6; } -if test "x$ac_cv_func_bind_textdomain_codeset" = x""yes; then + ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" +if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : CATOBJEXT=.gmo DATADIRNAME=share else @@ -16720,10 +15077,8 @@ fi ;; esac fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS="$glib_save_LIBS" INSTOBJEXT=.mo else @@ -16737,9 +15092,7 @@ fi if test "$gt_cv_have_gettext" = "yes" ; then -cat >>confdefs.h <<\_ACEOF -#define ENABLE_NLS 1 -_ACEOF +$as_echo "#define ENABLE_NLS 1" >>confdefs.h fi @@ -16747,7 +15100,7 @@ _ACEOF if $XGETTEXT --omit-header /dev/null 2> /dev/null; then : ; else - { $as_echo "$as_me:$LINENO: result: found xgettext program is not GNU xgettext; ignore it" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: found xgettext program is not GNU xgettext; ignore it" >&5 $as_echo "found xgettext program is not GNU xgettext; ignore it" >&6; } XGETTEXT=":" fi @@ -16780,7 +15133,7 @@ $as_echo "found xgettext program is not GNU xgettext; ignore it" >&6; } if test "x$ALL_LINGUAS" = "x"; then LINGUAS= else - { $as_echo "$as_me:$LINENO: checking for catalogs to be installed" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for catalogs to be installed" >&5 $as_echo_n "checking for catalogs to be installed... " >&6; } NEW_LINGUAS= for presentlang in $ALL_LINGUAS; do @@ -16805,7 +15158,7 @@ $as_echo_n "checking for catalogs to be installed... " >&6; } fi done LINGUAS=$NEW_LINGUAS - { $as_echo "$as_me:$LINENO: result: $LINGUAS" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LINGUAS" >&5 $as_echo "$LINGUAS" >&6; } fi @@ -16839,7 +15192,7 @@ $as_echo "$LINGUAS" >&6; } -ac_config_files="$ac_config_files Makefile barcode-0.98/Makefile iec16022-0.2.1/Makefile libglabels/Makefile libglabels/libglabels.pc src/Makefile src/pixmaps/Makefile src/stock-pixmaps/Makefile src/mygal/Makefile data/Makefile data/templates/Makefile data/pixmaps/Makefile data/mime/Makefile data/glade/Makefile data/desktop/Makefile data/dtd/Makefile data/man/Makefile po/Makefile.in help/Makefile docs/Makefile docs/libglabels/Makefile glabels.spec" +ac_config_files="$ac_config_files Makefile libglabels/Makefile libglabels/${LIBGLABELS_BRANCH}.pc libglbarcode/Makefile libglbarcode/${LIBGLBARCODE_BRANCH}.pc src/Makefile src/cursors/Makefile src/pixmaps/Makefile data/Makefile data/desktop/Makefile data/icons/Makefile data/icons/16x16/Makefile data/icons/22x22/Makefile data/icons/24x24/Makefile data/icons/32x32/Makefile data/icons/48x48/Makefile data/man/Makefile data/mime/Makefile data/pixmaps/Makefile data/schemas/Makefile data/schemas/org.gnome.glabels-3.gschema.xml.in data/ui/Makefile templates/Makefile po/Makefile.in help/Makefile docs/Makefile docs/libglabels/Makefile docs/libglbarcode/Makefile glabels.spec" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure @@ -16868,13 +15221,13 @@ _ACEOF case $ac_val in #( *${as_nl}*) case $ac_var in #( - *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5 + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) $as_unset $ac_var ;; + *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done @@ -16882,8 +15235,8 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) - # `set' does not quote correctly, so add quotes (double-quote - # substitution turns \\\\ into \\, and sed turns \\ into \). + # `set' does not quote correctly, so add quotes: double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" @@ -16905,12 +15258,23 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then - test "x$cache_file" != "x/dev/null" && - { $as_echo "$as_me:$LINENO: updating cache $cache_file" >&5 + if test "x$cache_file" != "x/dev/null"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} - cat confcache >$cache_file + if test ! -f "$cache_file" || test -h "$cache_file"; then + cat confcache >"$cache_file" + else + case $cache_file in #( + */* | ?:*) + mv -f confcache "$cache_file"$$ && + mv -f "$cache_file"$$ "$cache_file" ;; #( + *) + mv -f confcache "$cache_file" ;; + esac + fi + fi else - { $as_echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi @@ -16924,14 +15288,15 @@ DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= +U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. - ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" - ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' + as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" + as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs @@ -16946,109 +15311,63 @@ else am__EXEEXT_FALSE= fi -if test -z "${ENABLE_SK_TRUE}" && test -z "${ENABLE_SK_FALSE}"; then - { { $as_echo "$as_me:$LINENO: error: conditional \"ENABLE_SK\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -$as_echo "$as_me: error: conditional \"ENABLE_SK\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi -if test -z "${HAVE_GNOME_DOC_UTILS_TRUE}" && test -z "${HAVE_GNOME_DOC_UTILS_FALSE}"; then - { { $as_echo "$as_me:$LINENO: error: conditional \"HAVE_GNOME_DOC_UTILS\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -$as_echo "$as_me: error: conditional \"HAVE_GNOME_DOC_UTILS\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then - { { $as_echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -$as_echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then - { { $as_echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -$as_echo "$as_me: error: conditional \"AMDEP\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "conditional \"AMDEP\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then - { { $as_echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -$as_echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi ac_config_commands="$ac_config_commands po/stamp-it" -if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then - { { $as_echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -$as_echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } +if test -z "${ENABLE_SK_TRUE}" && test -z "${ENABLE_SK_FALSE}"; then + as_fn_error $? "conditional \"ENABLE_SK\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi -if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then - { { $as_echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -$as_echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } +if test -z "${HAVE_GNOME_DOC_UTILS_TRUE}" && test -z "${HAVE_GNOME_DOC_UTILS_FALSE}"; then + as_fn_error $? "conditional \"HAVE_GNOME_DOC_UTILS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${ENABLE_GTK_DOC_TRUE}" && test -z "${ENABLE_GTK_DOC_FALSE}"; then - { { $as_echo "$as_me:$LINENO: error: conditional \"ENABLE_GTK_DOC\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -$as_echo "$as_me: error: conditional \"ENABLE_GTK_DOC\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "conditional \"ENABLE_GTK_DOC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${GTK_DOC_BUILD_HTML_TRUE}" && test -z "${GTK_DOC_BUILD_HTML_FALSE}"; then + as_fn_error $? "conditional \"GTK_DOC_BUILD_HTML\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${GTK_DOC_BUILD_PDF_TRUE}" && test -z "${GTK_DOC_BUILD_PDF_FALSE}"; then + as_fn_error $? "conditional \"GTK_DOC_BUILD_PDF\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GTK_DOC_USE_LIBTOOL_TRUE}" && test -z "${GTK_DOC_USE_LIBTOOL_FALSE}"; then - { { $as_echo "$as_me:$LINENO: error: conditional \"GTK_DOC_USE_LIBTOOL\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -$as_echo "$as_me: error: conditional \"GTK_DOC_USE_LIBTOOL\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi -if test -z "${HAVE_NEW_MIME_TRUE}" && test -z "${HAVE_NEW_MIME_FALSE}"; then - { { $as_echo "$as_me:$LINENO: error: conditional \"HAVE_NEW_MIME\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -$as_echo "$as_me: error: conditional \"HAVE_NEW_MIME\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi -if test -z "${HAVE_NEWER_MIME_TRUE}" && test -z "${HAVE_NEWER_MIME_FALSE}"; then - { { $as_echo "$as_me:$LINENO: error: conditional \"HAVE_NEWER_MIME\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -$as_echo "$as_me: error: conditional \"HAVE_NEWER_MIME\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi -if test -z "${ENABLE_UPDATE_MIMEDB_TRUE}" && test -z "${ENABLE_UPDATE_MIMEDB_FALSE}"; then - { { $as_echo "$as_me:$LINENO: error: conditional \"ENABLE_UPDATE_MIMEDB\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -$as_echo "$as_me: error: conditional \"ENABLE_UPDATE_MIMEDB\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi -if test -z "${ENABLE_UPDATE_DESKTOPDB_TRUE}" && test -z "${ENABLE_UPDATE_DESKTOPDB_FALSE}"; then - { { $as_echo "$as_me:$LINENO: error: conditional \"ENABLE_UPDATE_DESKTOPDB\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -$as_echo "$as_me: error: conditional \"ENABLE_UPDATE_DESKTOPDB\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi - -: ${CONFIG_STATUS=./config.status} + as_fn_error $? "conditional \"GTK_DOC_USE_LIBTOOL\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${GTK_DOC_USE_REBASE_TRUE}" && test -z "${GTK_DOC_USE_REBASE_FALSE}"; then + as_fn_error $? "conditional \"GTK_DOC_USE_REBASE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then + as_fn_error $? "conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi + +: "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ $as_echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} -cat >$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +as_write_fail=0 +cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. @@ -17058,17 +15377,18 @@ cat >$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 debug=false ac_cs_recheck=false ac_cs_silent=false -SHELL=\${CONFIG_SHELL-$SHELL} -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -## --------------------- ## -## M4sh Initialization. ## -## --------------------- ## +SHELL=\${CONFIG_SHELL-$SHELL} +export SHELL +_ASEOF +cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which @@ -17076,23 +15396,15 @@ if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else - case `(set -o) 2>/dev/null` in - *posix*) set -o posix ;; + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; esac - fi - - -# PATH needs CR -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - as_nl=' ' export as_nl @@ -17100,7 +15412,13 @@ export as_nl as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else @@ -17111,7 +15429,7 @@ else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; - case $arg in + case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; @@ -17134,13 +15452,6 @@ if test "${PATH_SEPARATOR+set}" != set; then } fi -# Support unset when possible. -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then - as_unset=unset -else - as_unset=false -fi - # IFS # We need space, tab and new line, in precisely that order. Quoting is @@ -17150,15 +15461,16 @@ fi IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. -case $0 in +as_myself= +case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break -done + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done IFS=$as_save_IFS ;; @@ -17170,12 +15482,16 @@ if test "x$as_myself" = x; then fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - { (exit 1); exit 1; } + exit 1 fi -# Work around bugs in pre-3.0 UWIN ksh. -for as_var in ENV MAIL MAILPATH -do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' @@ -17187,7 +15503,89 @@ export LC_ALL LANGUAGE=C export LANGUAGE -# Required to use basename. +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + + +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} # as_fn_error + + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit + +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr @@ -17201,8 +15599,12 @@ else as_basename=false fi +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi -# Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ @@ -17222,106 +15624,103 @@ $as_echo X/"$0" | } s/.*/./; q'` -# CDPATH. -$as_unset CDPATH - - - - as_lineno_1=$LINENO - as_lineno_2=$LINENO - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { - - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO - # uniformly replaced by the line number. The first 'sed' inserts a - # line-number line after each line using $LINENO; the second 'sed' - # does the real work. The second script uses 'N' to pair each - # line-number line with the line containing $LINENO, and appends - # trailing '-' during substitution so that $LINENO is not a special - # case at line end. - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the - # scripts with optimization help from Paolo Bonzini. Blame Lee - # E. McMahon (1931-1989) for sed's syntax. :-) - sed -n ' - p - /[$]LINENO/= - ' <$as_myself | - sed ' - s/[$]LINENO.*/&-/ - t lineno - b - :lineno - N - :loop - s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ - t loop - s/-\n.*// - ' >$as_me.lineno && - chmod +x "$as_me.lineno" || - { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 - { (exit 1); exit 1; }; } - - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensitive to this). - . "./$as_me.lineno" - # Exit status is that of the last command. - exit -} - - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in +case `echo -n x` in #((((( -n*) - case `echo 'x\c'` in + case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. - *) ECHO_C='\c';; + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file else - as_expr=false + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -p' + fi +else + as_ln_s='cp -p' fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir 2>/dev/null -fi -if (echo >conf$$.file) 2>/dev/null; then - if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' - elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln - else - as_ln_s='cp -p' - fi -else - as_ln_s='cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null +} # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then - as_mkdir_p=: + as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false @@ -17340,10 +15739,10 @@ else if test -d "$1"; then test -d "$1/."; else - case $1 in + case $1 in #( -*)set "./$1";; esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( ???[sx]*):;;*)false;;esac;fi '\'' sh ' @@ -17358,13 +15757,19 @@ as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 +## ----------------------------------- ## +## Main body of $CONFIG_STATUS script. ## +## ----------------------------------- ## +_ASEOF +test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 -# Save the log message, to keep $[0] and so on meaningful, and to +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by glabels $as_me 2.2.8, which was -generated by GNU Autoconf 2.63. Invocation command line was +This file was extended by glabels $as_me 3.0.0, which was +generated by GNU Autoconf 2.68. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -17396,13 +15801,15 @@ _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ -\`$as_me' instantiates files from templates according to the -current configuration. +\`$as_me' instantiates files and other configuration actions +from templates according to the current configuration. Unless the files +and actions are specified as TAGs, all are instantiated by default. -Usage: $0 [OPTION]... [FILE]... +Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit + --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files @@ -17421,16 +15828,17 @@ $config_headers Configuration commands: $config_commands -Report bugs to ." +Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -glabels config.status 2.2.8 -configured by $0, generated by GNU Autoconf 2.63, - with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" +glabels config.status 3.0.0 +configured by $0, generated by GNU Autoconf 2.68, + with options \\"\$ac_cs_config\\" -Copyright (C) 2008 Free Software Foundation, Inc. +Copyright (C) 2010 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." @@ -17448,11 +15856,16 @@ ac_need_defaults=: while test $# != 0 do case $1 in - --*=*) + --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; + --*=) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg= + ac_shift=: + ;; *) ac_option=$1 ac_optarg=$2 @@ -17466,27 +15879,29 @@ do ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; + --config | --confi | --conf | --con | --co | --c ) + $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + '') as_fn_error $? "missing file argument" ;; esac - CONFIG_FILES="$CONFIG_FILES '$ac_optarg'" + as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac - CONFIG_HEADERS="$CONFIG_HEADERS '$ac_optarg'" + as_fn_append CONFIG_HEADERS " '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header - { $as_echo "$as_me: error: ambiguous option: $1 -Try \`$0 --help' for more information." >&2 - { (exit 1); exit 1; }; };; + as_fn_error $? "ambiguous option: \`$1' +Try \`$0 --help' for more information.";; --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ @@ -17494,11 +15909,10 @@ Try \`$0 --help' for more information." >&2 ac_cs_silent=: ;; # This is an error. - -*) { $as_echo "$as_me: error: unrecognized option: $1 -Try \`$0 --help' for more information." >&2 - { (exit 1); exit 1; }; } ;; + -*) as_fn_error $? "unrecognized option: \`$1' +Try \`$0 --help' for more information." ;; - *) ac_config_targets="$ac_config_targets $1" + *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac @@ -17549,131 +15963,153 @@ AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' -macro_version='`$ECHO "X$macro_version" | $Xsed -e "$delay_single_quote_subst"`' -macro_revision='`$ECHO "X$macro_revision" | $Xsed -e "$delay_single_quote_subst"`' -enable_shared='`$ECHO "X$enable_shared" | $Xsed -e "$delay_single_quote_subst"`' -enable_static='`$ECHO "X$enable_static" | $Xsed -e "$delay_single_quote_subst"`' -pic_mode='`$ECHO "X$pic_mode" | $Xsed -e "$delay_single_quote_subst"`' -enable_fast_install='`$ECHO "X$enable_fast_install" | $Xsed -e "$delay_single_quote_subst"`' -host_alias='`$ECHO "X$host_alias" | $Xsed -e "$delay_single_quote_subst"`' -host='`$ECHO "X$host" | $Xsed -e "$delay_single_quote_subst"`' -host_os='`$ECHO "X$host_os" | $Xsed -e "$delay_single_quote_subst"`' -build_alias='`$ECHO "X$build_alias" | $Xsed -e "$delay_single_quote_subst"`' -build='`$ECHO "X$build" | $Xsed -e "$delay_single_quote_subst"`' -build_os='`$ECHO "X$build_os" | $Xsed -e "$delay_single_quote_subst"`' -SED='`$ECHO "X$SED" | $Xsed -e "$delay_single_quote_subst"`' -Xsed='`$ECHO "X$Xsed" | $Xsed -e "$delay_single_quote_subst"`' -GREP='`$ECHO "X$GREP" | $Xsed -e "$delay_single_quote_subst"`' -EGREP='`$ECHO "X$EGREP" | $Xsed -e "$delay_single_quote_subst"`' -FGREP='`$ECHO "X$FGREP" | $Xsed -e "$delay_single_quote_subst"`' -LD='`$ECHO "X$LD" | $Xsed -e "$delay_single_quote_subst"`' -NM='`$ECHO "X$NM" | $Xsed -e "$delay_single_quote_subst"`' -LN_S='`$ECHO "X$LN_S" | $Xsed -e "$delay_single_quote_subst"`' -max_cmd_len='`$ECHO "X$max_cmd_len" | $Xsed -e "$delay_single_quote_subst"`' -ac_objext='`$ECHO "X$ac_objext" | $Xsed -e "$delay_single_quote_subst"`' -exeext='`$ECHO "X$exeext" | $Xsed -e "$delay_single_quote_subst"`' -lt_unset='`$ECHO "X$lt_unset" | $Xsed -e "$delay_single_quote_subst"`' -lt_SP2NL='`$ECHO "X$lt_SP2NL" | $Xsed -e "$delay_single_quote_subst"`' -lt_NL2SP='`$ECHO "X$lt_NL2SP" | $Xsed -e "$delay_single_quote_subst"`' -reload_flag='`$ECHO "X$reload_flag" | $Xsed -e "$delay_single_quote_subst"`' -reload_cmds='`$ECHO "X$reload_cmds" | $Xsed -e "$delay_single_quote_subst"`' -OBJDUMP='`$ECHO "X$OBJDUMP" | $Xsed -e "$delay_single_quote_subst"`' -deplibs_check_method='`$ECHO "X$deplibs_check_method" | $Xsed -e "$delay_single_quote_subst"`' -file_magic_cmd='`$ECHO "X$file_magic_cmd" | $Xsed -e "$delay_single_quote_subst"`' -AR='`$ECHO "X$AR" | $Xsed -e "$delay_single_quote_subst"`' -AR_FLAGS='`$ECHO "X$AR_FLAGS" | $Xsed -e "$delay_single_quote_subst"`' -STRIP='`$ECHO "X$STRIP" | $Xsed -e "$delay_single_quote_subst"`' -RANLIB='`$ECHO "X$RANLIB" | $Xsed -e "$delay_single_quote_subst"`' -old_postinstall_cmds='`$ECHO "X$old_postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' -old_postuninstall_cmds='`$ECHO "X$old_postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' -old_archive_cmds='`$ECHO "X$old_archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' -CC='`$ECHO "X$CC" | $Xsed -e "$delay_single_quote_subst"`' -CFLAGS='`$ECHO "X$CFLAGS" | $Xsed -e "$delay_single_quote_subst"`' -compiler='`$ECHO "X$compiler" | $Xsed -e "$delay_single_quote_subst"`' -GCC='`$ECHO "X$GCC" | $Xsed -e "$delay_single_quote_subst"`' -lt_cv_sys_global_symbol_pipe='`$ECHO "X$lt_cv_sys_global_symbol_pipe" | $Xsed -e "$delay_single_quote_subst"`' -lt_cv_sys_global_symbol_to_cdecl='`$ECHO "X$lt_cv_sys_global_symbol_to_cdecl" | $Xsed -e "$delay_single_quote_subst"`' -lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address" | $Xsed -e "$delay_single_quote_subst"`' -lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' -objdir='`$ECHO "X$objdir" | $Xsed -e "$delay_single_quote_subst"`' -SHELL='`$ECHO "X$SHELL" | $Xsed -e "$delay_single_quote_subst"`' -ECHO='`$ECHO "X$ECHO" | $Xsed -e "$delay_single_quote_subst"`' -MAGIC_CMD='`$ECHO "X$MAGIC_CMD" | $Xsed -e "$delay_single_quote_subst"`' -lt_prog_compiler_no_builtin_flag='`$ECHO "X$lt_prog_compiler_no_builtin_flag" | $Xsed -e "$delay_single_quote_subst"`' -lt_prog_compiler_wl='`$ECHO "X$lt_prog_compiler_wl" | $Xsed -e "$delay_single_quote_subst"`' -lt_prog_compiler_pic='`$ECHO "X$lt_prog_compiler_pic" | $Xsed -e "$delay_single_quote_subst"`' -lt_prog_compiler_static='`$ECHO "X$lt_prog_compiler_static" | $Xsed -e "$delay_single_quote_subst"`' -lt_cv_prog_compiler_c_o='`$ECHO "X$lt_cv_prog_compiler_c_o" | $Xsed -e "$delay_single_quote_subst"`' -need_locks='`$ECHO "X$need_locks" | $Xsed -e "$delay_single_quote_subst"`' -DSYMUTIL='`$ECHO "X$DSYMUTIL" | $Xsed -e "$delay_single_quote_subst"`' -NMEDIT='`$ECHO "X$NMEDIT" | $Xsed -e "$delay_single_quote_subst"`' -LIPO='`$ECHO "X$LIPO" | $Xsed -e "$delay_single_quote_subst"`' -OTOOL='`$ECHO "X$OTOOL" | $Xsed -e "$delay_single_quote_subst"`' -OTOOL64='`$ECHO "X$OTOOL64" | $Xsed -e "$delay_single_quote_subst"`' -libext='`$ECHO "X$libext" | $Xsed -e "$delay_single_quote_subst"`' -shrext_cmds='`$ECHO "X$shrext_cmds" | $Xsed -e "$delay_single_quote_subst"`' -extract_expsyms_cmds='`$ECHO "X$extract_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' -archive_cmds_need_lc='`$ECHO "X$archive_cmds_need_lc" | $Xsed -e "$delay_single_quote_subst"`' -enable_shared_with_static_runtimes='`$ECHO "X$enable_shared_with_static_runtimes" | $Xsed -e "$delay_single_quote_subst"`' -export_dynamic_flag_spec='`$ECHO "X$export_dynamic_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' -whole_archive_flag_spec='`$ECHO "X$whole_archive_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' -compiler_needs_object='`$ECHO "X$compiler_needs_object" | $Xsed -e "$delay_single_quote_subst"`' -old_archive_from_new_cmds='`$ECHO "X$old_archive_from_new_cmds" | $Xsed -e "$delay_single_quote_subst"`' -old_archive_from_expsyms_cmds='`$ECHO "X$old_archive_from_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' -archive_cmds='`$ECHO "X$archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' -archive_expsym_cmds='`$ECHO "X$archive_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' -module_cmds='`$ECHO "X$module_cmds" | $Xsed -e "$delay_single_quote_subst"`' -module_expsym_cmds='`$ECHO "X$module_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' -with_gnu_ld='`$ECHO "X$with_gnu_ld" | $Xsed -e "$delay_single_quote_subst"`' -allow_undefined_flag='`$ECHO "X$allow_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' -no_undefined_flag='`$ECHO "X$no_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_libdir_flag_spec='`$ECHO "X$hardcode_libdir_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_libdir_flag_spec_ld='`$ECHO "X$hardcode_libdir_flag_spec_ld" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_libdir_separator='`$ECHO "X$hardcode_libdir_separator" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_direct='`$ECHO "X$hardcode_direct" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_direct_absolute='`$ECHO "X$hardcode_direct_absolute" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_minus_L='`$ECHO "X$hardcode_minus_L" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_shlibpath_var='`$ECHO "X$hardcode_shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_automatic='`$ECHO "X$hardcode_automatic" | $Xsed -e "$delay_single_quote_subst"`' -inherit_rpath='`$ECHO "X$inherit_rpath" | $Xsed -e "$delay_single_quote_subst"`' -link_all_deplibs='`$ECHO "X$link_all_deplibs" | $Xsed -e "$delay_single_quote_subst"`' -fix_srcfile_path='`$ECHO "X$fix_srcfile_path" | $Xsed -e "$delay_single_quote_subst"`' -always_export_symbols='`$ECHO "X$always_export_symbols" | $Xsed -e "$delay_single_quote_subst"`' -export_symbols_cmds='`$ECHO "X$export_symbols_cmds" | $Xsed -e "$delay_single_quote_subst"`' -exclude_expsyms='`$ECHO "X$exclude_expsyms" | $Xsed -e "$delay_single_quote_subst"`' -include_expsyms='`$ECHO "X$include_expsyms" | $Xsed -e "$delay_single_quote_subst"`' -prelink_cmds='`$ECHO "X$prelink_cmds" | $Xsed -e "$delay_single_quote_subst"`' -file_list_spec='`$ECHO "X$file_list_spec" | $Xsed -e "$delay_single_quote_subst"`' -variables_saved_for_relink='`$ECHO "X$variables_saved_for_relink" | $Xsed -e "$delay_single_quote_subst"`' -need_lib_prefix='`$ECHO "X$need_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' -need_version='`$ECHO "X$need_version" | $Xsed -e "$delay_single_quote_subst"`' -version_type='`$ECHO "X$version_type" | $Xsed -e "$delay_single_quote_subst"`' -runpath_var='`$ECHO "X$runpath_var" | $Xsed -e "$delay_single_quote_subst"`' -shlibpath_var='`$ECHO "X$shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' -shlibpath_overrides_runpath='`$ECHO "X$shlibpath_overrides_runpath" | $Xsed -e "$delay_single_quote_subst"`' -libname_spec='`$ECHO "X$libname_spec" | $Xsed -e "$delay_single_quote_subst"`' -library_names_spec='`$ECHO "X$library_names_spec" | $Xsed -e "$delay_single_quote_subst"`' -soname_spec='`$ECHO "X$soname_spec" | $Xsed -e "$delay_single_quote_subst"`' -postinstall_cmds='`$ECHO "X$postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' -postuninstall_cmds='`$ECHO "X$postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' -finish_cmds='`$ECHO "X$finish_cmds" | $Xsed -e "$delay_single_quote_subst"`' -finish_eval='`$ECHO "X$finish_eval" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_into_libs='`$ECHO "X$hardcode_into_libs" | $Xsed -e "$delay_single_quote_subst"`' -sys_lib_search_path_spec='`$ECHO "X$sys_lib_search_path_spec" | $Xsed -e "$delay_single_quote_subst"`' -sys_lib_dlsearch_path_spec='`$ECHO "X$sys_lib_dlsearch_path_spec" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_action='`$ECHO "X$hardcode_action" | $Xsed -e "$delay_single_quote_subst"`' -enable_dlopen='`$ECHO "X$enable_dlopen" | $Xsed -e "$delay_single_quote_subst"`' -enable_dlopen_self='`$ECHO "X$enable_dlopen_self" | $Xsed -e "$delay_single_quote_subst"`' -enable_dlopen_self_static='`$ECHO "X$enable_dlopen_self_static" | $Xsed -e "$delay_single_quote_subst"`' -old_striplib='`$ECHO "X$old_striplib" | $Xsed -e "$delay_single_quote_subst"`' -striplib='`$ECHO "X$striplib" | $Xsed -e "$delay_single_quote_subst"`' +macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' +macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' +enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' +enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' +pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' +enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' +SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' +ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' +host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' +host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' +host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' +build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' +build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' +build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' +SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' +Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' +GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' +EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' +FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' +LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' +NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' +LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' +max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' +ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' +exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' +lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' +lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' +lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' +lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' +lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' +reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' +reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' +OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' +deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' +file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' +file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' +want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' +DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' +sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' +AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' +AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' +archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' +STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' +RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' +old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' +old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' +old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' +lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' +CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' +CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' +compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' +GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' +nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' +lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' +objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' +MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' +lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' +need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' +MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' +DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' +NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' +LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' +OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' +OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' +libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' +shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' +extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' +archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' +enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' +export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' +whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' +compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' +old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' +old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' +archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' +archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' +module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' +module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' +with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' +allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' +no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec_ld='`$ECHO "$hardcode_libdir_flag_spec_ld" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' +hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' +hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' +hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' +hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' +hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' +inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' +link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' +always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' +export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' +exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' +include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' +prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' +postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' +file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' +variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' +need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' +need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' +version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' +runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' +shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' +shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' +libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' +library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' +soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' +install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' +postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' +postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' +finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' +finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' +hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' +sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' +sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`' +hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' +enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' +enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' +enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' +old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' +striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$1 +_LTECHO_EOF' +} + # Quote evaled strings. -for var in SED \ +for var in SHELL \ +ECHO \ +SED \ GREP \ EGREP \ FGREP \ @@ -17686,8 +16122,13 @@ reload_flag \ OBJDUMP \ deplibs_check_method \ file_magic_cmd \ +file_magic_glob \ +want_nocaseglob \ +DLLTOOL \ +sharedlib_from_linklib_cmd \ AR \ AR_FLAGS \ +archiver_list_spec \ STRIP \ RANLIB \ CC \ @@ -17697,14 +16138,14 @@ lt_cv_sys_global_symbol_pipe \ lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ -SHELL \ -ECHO \ +nm_file_list_spec \ lt_prog_compiler_no_builtin_flag \ -lt_prog_compiler_wl \ lt_prog_compiler_pic \ +lt_prog_compiler_wl \ lt_prog_compiler_static \ lt_cv_prog_compiler_c_o \ need_locks \ +MANIFEST_TOOL \ DSYMUTIL \ NMEDIT \ LIPO \ @@ -17720,7 +16161,6 @@ no_undefined_flag \ hardcode_libdir_flag_spec \ hardcode_libdir_flag_spec_ld \ hardcode_libdir_separator \ -fix_srcfile_path \ exclude_expsyms \ include_expsyms \ file_list_spec \ @@ -17728,12 +16168,13 @@ variables_saved_for_relink \ libname_spec \ library_names_spec \ soname_spec \ +install_override_mode \ finish_eval \ old_striplib \ striplib; do - case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" @@ -17755,14 +16196,15 @@ module_cmds \ module_expsym_cmds \ export_symbols_cmds \ prelink_cmds \ +postlink_cmds \ postinstall_cmds \ postuninstall_cmds \ finish_cmds \ sys_lib_search_path_spec \ sys_lib_dlsearch_path_spec; do - case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" @@ -17770,12 +16212,6 @@ sys_lib_dlsearch_path_spec; do esac done -# Fix-up fallback echo if it was mangled by the above quoting rules. -case \$lt_ECHO in -*'\\\$0 --fallback-echo"') lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\$0 --fallback-echo"\$/\$0 --fallback-echo"/'\` - ;; -esac - ac_aux_dir='$ac_aux_dir' xsi_shell='$xsi_shell' lt_shell_append='$lt_shell_append' @@ -17810,32 +16246,37 @@ do "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; - "barcode-0.98/Makefile") CONFIG_FILES="$CONFIG_FILES barcode-0.98/Makefile" ;; - "iec16022-0.2.1/Makefile") CONFIG_FILES="$CONFIG_FILES iec16022-0.2.1/Makefile" ;; "libglabels/Makefile") CONFIG_FILES="$CONFIG_FILES libglabels/Makefile" ;; - "libglabels/libglabels.pc") CONFIG_FILES="$CONFIG_FILES libglabels/libglabels.pc" ;; + "libglabels/${LIBGLABELS_BRANCH}.pc") CONFIG_FILES="$CONFIG_FILES libglabels/${LIBGLABELS_BRANCH}.pc" ;; + "libglbarcode/Makefile") CONFIG_FILES="$CONFIG_FILES libglbarcode/Makefile" ;; + "libglbarcode/${LIBGLBARCODE_BRANCH}.pc") CONFIG_FILES="$CONFIG_FILES libglbarcode/${LIBGLBARCODE_BRANCH}.pc" ;; "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; + "src/cursors/Makefile") CONFIG_FILES="$CONFIG_FILES src/cursors/Makefile" ;; "src/pixmaps/Makefile") CONFIG_FILES="$CONFIG_FILES src/pixmaps/Makefile" ;; - "src/stock-pixmaps/Makefile") CONFIG_FILES="$CONFIG_FILES src/stock-pixmaps/Makefile" ;; - "src/mygal/Makefile") CONFIG_FILES="$CONFIG_FILES src/mygal/Makefile" ;; "data/Makefile") CONFIG_FILES="$CONFIG_FILES data/Makefile" ;; - "data/templates/Makefile") CONFIG_FILES="$CONFIG_FILES data/templates/Makefile" ;; - "data/pixmaps/Makefile") CONFIG_FILES="$CONFIG_FILES data/pixmaps/Makefile" ;; - "data/mime/Makefile") CONFIG_FILES="$CONFIG_FILES data/mime/Makefile" ;; - "data/glade/Makefile") CONFIG_FILES="$CONFIG_FILES data/glade/Makefile" ;; "data/desktop/Makefile") CONFIG_FILES="$CONFIG_FILES data/desktop/Makefile" ;; - "data/dtd/Makefile") CONFIG_FILES="$CONFIG_FILES data/dtd/Makefile" ;; + "data/icons/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/Makefile" ;; + "data/icons/16x16/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/16x16/Makefile" ;; + "data/icons/22x22/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/22x22/Makefile" ;; + "data/icons/24x24/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/24x24/Makefile" ;; + "data/icons/32x32/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/32x32/Makefile" ;; + "data/icons/48x48/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/48x48/Makefile" ;; "data/man/Makefile") CONFIG_FILES="$CONFIG_FILES data/man/Makefile" ;; + "data/mime/Makefile") CONFIG_FILES="$CONFIG_FILES data/mime/Makefile" ;; + "data/pixmaps/Makefile") CONFIG_FILES="$CONFIG_FILES data/pixmaps/Makefile" ;; + "data/schemas/Makefile") CONFIG_FILES="$CONFIG_FILES data/schemas/Makefile" ;; + "data/schemas/org.gnome.glabels-3.gschema.xml.in") CONFIG_FILES="$CONFIG_FILES data/schemas/org.gnome.glabels-3.gschema.xml.in" ;; + "data/ui/Makefile") CONFIG_FILES="$CONFIG_FILES data/ui/Makefile" ;; + "templates/Makefile") CONFIG_FILES="$CONFIG_FILES templates/Makefile" ;; "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; "help/Makefile") CONFIG_FILES="$CONFIG_FILES help/Makefile" ;; "docs/Makefile") CONFIG_FILES="$CONFIG_FILES docs/Makefile" ;; "docs/libglabels/Makefile") CONFIG_FILES="$CONFIG_FILES docs/libglabels/Makefile" ;; + "docs/libglbarcode/Makefile") CONFIG_FILES="$CONFIG_FILES docs/libglbarcode/Makefile" ;; "glabels.spec") CONFIG_FILES="$CONFIG_FILES glabels.spec" ;; "po/stamp-it") CONFIG_COMMANDS="$CONFIG_COMMANDS po/stamp-it" ;; - *) { { $as_echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 -$as_echo "$as_me: error: invalid argument: $ac_config_target" >&2;} - { (exit 1); exit 1; }; };; + *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done @@ -17858,26 +16299,24 @@ fi # after its creation but before its name has been assigned to `$tmp'. $debug || { - tmp= + tmp= ac_tmp= trap 'exit_status=$? - { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status + : "${ac_tmp:=$tmp}" + { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 - trap '{ (exit 1); exit 1; }' 1 2 13 15 + trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && - test -n "$tmp" && test -d "$tmp" + test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") -} || -{ - $as_echo "$as_me: cannot create a temporary directory in ." >&2 - { (exit 1); exit 1; } -} +} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 +ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. @@ -17885,7 +16324,13 @@ $debug || if test -n "$CONFIG_FILES"; then -ac_cr=' ' +ac_cr=`echo X | tr X '\015'` +# On cygwin, bash can eat \r inside `` if the user requested igncr. +# But we know of no other shell where ac_cr would be empty at this +# point, so we can use a bashism as a fallback. +if test "x$ac_cr" = x; then + eval ac_cr=\$\'\\r\' +fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' @@ -17893,7 +16338,7 @@ else ac_cs_awk_cr=$ac_cr fi -echo 'BEGIN {' >"$tmp/subs1.awk" && +echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF @@ -17902,24 +16347,18 @@ _ACEOF echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || - { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 -$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} - { (exit 1); exit 1; }; } -ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'` + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 +ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || - { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 -$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then - { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 -$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi @@ -17927,7 +16366,7 @@ done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -cat >>"\$tmp/subs1.awk" <<\\_ACAWK && +cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h @@ -17941,7 +16380,7 @@ s/'"$ac_delim"'$// t delim :nl h -s/\(.\{148\}\).*/\1/ +s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p @@ -17955,7 +16394,7 @@ s/.\{148\}// t nl :delim h -s/\(.\{148\}\).*/\1/ +s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p @@ -17975,7 +16414,7 @@ t delim rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK -cat >>"\$tmp/subs1.awk" <<_ACAWK && +cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" @@ -18007,23 +16446,29 @@ if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat -fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ - || { { $as_echo "$as_me:$LINENO: error: could not setup config files machinery" >&5 -$as_echo "$as_me: error: could not setup config files machinery" >&2;} - { (exit 1); exit 1; }; } +fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ + || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF -# VPATH may cause trouble with some makes, so we remove $(srcdir), -# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and +# VPATH may cause trouble with some makes, so we remove sole $(srcdir), +# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=/{ -s/:*\$(srcdir):*/:/ -s/:*\${srcdir}:*/:/ -s/:*@srcdir@:*/:/ -s/^\([^=]*=[ ]*\):*/\1/ + ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ +h +s/// +s/^/:/ +s/[ ]*$/:/ +s/:\$(srcdir):/:/g +s/:\${srcdir}:/:/g +s/:@srcdir@:/:/g +s/^:*// s/:*$// +x +s/\(=[ ]*\).*/\1/ +G +s/\n// s/^[^=]*=[ ]*$// }' fi @@ -18035,7 +16480,7 @@ fi # test -n "$CONFIG_FILES" # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then -cat >"$tmp/defines.awk" <<\_ACAWK || +cat >"$ac_tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF @@ -18047,13 +16492,11 @@ _ACEOF # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do - ac_t=`sed -n "/$ac_delim/p" confdefs.h` - if test -z "$ac_t"; then + ac_tt=`sed -n "/$ac_delim/p" confdefs.h` + if test -z "$ac_tt"; then break elif $ac_last_try; then - { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_HEADERS" >&5 -$as_echo "$as_me: error: could not make $CONFIG_HEADERS" >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi @@ -18138,9 +16581,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - { { $as_echo "$as_me:$LINENO: error: could not setup config headers machinery" >&5 -$as_echo "$as_me: error: could not setup config headers machinery" >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 fi # test -n "$CONFIG_HEADERS" @@ -18153,9 +16594,7 @@ do esac case $ac_mode$ac_tag in :[FHL]*:*);; - :L* | :C*:*) { { $as_echo "$as_me:$LINENO: error: invalid tag $ac_tag" >&5 -$as_echo "$as_me: error: invalid tag $ac_tag" >&2;} - { (exit 1); exit 1; }; };; + :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac @@ -18174,7 +16613,7 @@ $as_echo "$as_me: error: invalid tag $ac_tag" >&2;} for ac_f do case $ac_f in - -) ac_f="$tmp/stdin";; + -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. @@ -18183,12 +16622,10 @@ $as_echo "$as_me: error: invalid tag $ac_tag" >&2;} [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || - { { $as_echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 -$as_echo "$as_me: error: cannot find input file: $ac_f" >&2;} - { (exit 1); exit 1; }; };; + as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac - ac_file_inputs="$ac_file_inputs '$ac_f'" + as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't @@ -18199,7 +16636,7 @@ $as_echo "$as_me: error: cannot find input file: $ac_f" >&2;} `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" - { $as_echo "$as_me:$LINENO: creating $ac_file" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. @@ -18211,10 +16648,8 @@ $as_echo "$as_me: creating $ac_file" >&6;} esac case $ac_tag in - *:-:* | *:-) cat >"$tmp/stdin" \ - || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 -$as_echo "$as_me: error: could not create $ac_file" >&2;} - { (exit 1); exit 1; }; } ;; + *:-:* | *:-) cat >"$ac_tmp/stdin" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac @@ -18242,47 +16677,7 @@ $as_echo X"$ac_file" | q } s/.*/./; q'` - { as_dir="$ac_dir" - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 -$as_echo "$as_me: error: cannot create directory $as_dir" >&2;} - { (exit 1); exit 1; }; }; } + as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in @@ -18339,7 +16734,6 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= - ac_sed_dataroot=' /datarootdir/ { p @@ -18349,12 +16743,11 @@ ac_sed_dataroot=' /@docdir@/p /@infodir@/p /@localedir@/p -/@mandir@/p -' +/@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) - { $as_echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 @@ -18364,7 +16757,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g - s&\\\${datarootdir}&$datarootdir&g' ;; + s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF @@ -18392,27 +16785,24 @@ s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " -eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ - || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 -$as_echo "$as_me: error: could not create $ac_file" >&2;} - { (exit 1); exit 1; }; } +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ + >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && - { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && - { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && - { $as_echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined." >&5 + { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ + "$ac_tmp/out"`; test -z "$ac_out"; } && + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined." >&2;} +which seems to be undefined. Please make sure it is defined" >&2;} - rm -f "$tmp/stdin" + rm -f "$ac_tmp/stdin" case $ac_file in - -) cat "$tmp/out" && rm -f "$tmp/out";; - *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; + -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; + *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ - || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 -$as_echo "$as_me: error: could not create $ac_file" >&2;} - { (exit 1); exit 1; }; } + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; :H) # @@ -18421,27 +16811,21 @@ $as_echo "$as_me: error: could not create $ac_file" >&2;} if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" - } >"$tmp/config.h" \ - || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 -$as_echo "$as_me: error: could not create $ac_file" >&2;} - { (exit 1); exit 1; }; } - if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then - { $as_echo "$as_me:$LINENO: $ac_file is unchanged" >&5 + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" + } >"$ac_tmp/config.h" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" - mv "$tmp/config.h" "$ac_file" \ - || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 -$as_echo "$as_me: error: could not create $ac_file" >&2;} - { (exit 1); exit 1; }; } + mv "$ac_tmp/config.h" "$ac_file" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ - || { { $as_echo "$as_me:$LINENO: error: could not create -" >&5 -$as_echo "$as_me: error: could not create -" >&2;} - { (exit 1); exit 1; }; } + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ + || as_fn_error $? "could not create -" "$LINENO" 5 fi # Compute "$ac_file"'s index in $config_headers. _am_arg="$ac_file" @@ -18479,7 +16863,7 @@ $as_echo X"$_am_arg" | s/.*/./; q'`/stamp-h$_am_stamp_count ;; - :C) { $as_echo "$as_me:$LINENO: executing $ac_file commands" >&5 + :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 $as_echo "$as_me: executing $ac_file commands" >&6;} ;; esac @@ -18574,47 +16958,7 @@ $as_echo X"$file" | q } s/.*/./; q'` - { as_dir=$dirpart/$fdir - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 -$as_echo "$as_me: error: cannot create directory $as_dir" >&2;} - { (exit 1); exit 1; }; }; } + as_dir=$dirpart/$fdir; as_fn_mkdir_p # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done @@ -18642,7 +16986,8 @@ $as_echo "$as_me: error: cannot create directory $as_dir" >&2;} # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, -# 2006, 2007, 2008 Free Software Foundation, Inc. +# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, +# Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. @@ -18690,6 +17035,12 @@ pic_mode=$pic_mode # Whether or not to optimize for fast installation. fast_install=$enable_fast_install +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# An echo program that protects backslashes. +ECHO=$lt_ECHO + # The host system. host_alias=$host_alias host=$host @@ -18739,9 +17090,11 @@ SP2NL=$lt_lt_SP2NL # turn newlines into spaces. NL2SP=$lt_lt_NL2SP -# How to create reloadable object files. -reload_flag=$lt_reload_flag -reload_cmds=$lt_reload_cmds +# convert \$build file names to \$host format. +to_host_file_cmd=$lt_cv_to_host_file_cmd + +# convert \$build files to toolchain format. +to_tool_file_cmd=$lt_cv_to_tool_file_cmd # An object symbol dumper. OBJDUMP=$lt_OBJDUMP @@ -18749,13 +17102,30 @@ OBJDUMP=$lt_OBJDUMP # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method -# Command to use when deplibs_check_method == "file_magic". +# Command to use when deplibs_check_method = "file_magic". file_magic_cmd=$lt_file_magic_cmd +# How to find potential files when deplibs_check_method = "file_magic". +file_magic_glob=$lt_file_magic_glob + +# Find potential files using nocaseglob when deplibs_check_method = "file_magic". +want_nocaseglob=$lt_want_nocaseglob + +# DLL creation program. +DLLTOOL=$lt_DLLTOOL + +# Command to associate shared and link libraries. +sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd + # The archiver. AR=$lt_AR + +# Flags to create an archive. AR_FLAGS=$lt_AR_FLAGS +# How to feed a file listing to the archiver. +archiver_list_spec=$lt_archiver_list_spec + # A symbol stripping program. STRIP=$lt_STRIP @@ -18764,6 +17134,9 @@ RANLIB=$lt_RANLIB old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds +# Whether to use a lock for old archive extraction. +lock_old_archive_extraction=$lock_old_archive_extraction + # A C compiler. LTCC=$lt_CC @@ -18782,14 +17155,14 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # Transform the output of nm in a C name address pair when lib prefix is needed. global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix -# The name of the directory that contains temporary libtool files. -objdir=$objdir +# Specify filename containing input files for \$NM. +nm_file_list_spec=$lt_nm_file_list_spec -# Shell to use when invoking shell scripts. -SHELL=$lt_SHELL +# The root where to search for dependent libraries,and in which our libraries should be installed. +lt_sysroot=$lt_sysroot -# An echo program that does not interpret backslashes. -ECHO=$lt_ECHO +# The name of the directory that contains temporary libtool files. +objdir=$objdir # Used to examine libraries when file_magic_cmd begins with "file". MAGIC_CMD=$MAGIC_CMD @@ -18797,6 +17170,9 @@ MAGIC_CMD=$MAGIC_CMD # Must we lock files when doing compilation? need_locks=$lt_need_locks +# Manifest tool. +MANIFEST_TOOL=$lt_MANIFEST_TOOL + # Tool to manipulate archived DWARF debug symbol files on Mac OS X. DSYMUTIL=$lt_DSYMUTIL @@ -18853,6 +17229,9 @@ library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec +# Permission mode override for installation of shared libraries. +install_override_mode=$lt_install_override_mode + # Command to use after installation of a shared archive. postinstall_cmds=$lt_postinstall_cmds @@ -18892,6 +17271,10 @@ striplib=$lt_striplib # The linker used to build libraries. LD=$lt_LD +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds @@ -18904,12 +17287,12 @@ with_gcc=$GCC # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag -# How to pass a linker flag through the compiler. -wl=$lt_lt_prog_compiler_wl - # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl + # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static @@ -18996,9 +17379,6 @@ inherit_rpath=$inherit_rpath # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs -# Fix the shell variable \$srcfile for the compiler. -fix_srcfile_path=$lt_fix_srcfile_path - # Set to "yes" if exported symbols are required. always_export_symbols=$always_export_symbols @@ -19014,6 +17394,9 @@ include_expsyms=$lt_include_expsyms # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds +# Commands necessary for finishing linking programs. +postlink_cmds=$lt_postlink_cmds + # Specify filename containing input files. file_list_spec=$lt_file_list_spec @@ -19046,212 +17429,169 @@ ltmain="$ac_aux_dir/ltmain.sh" # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? - sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ - || (rm -f "$cfgfile"; exit 1) - - case $xsi_shell in - yes) - cat << \_LT_EOF >> "$cfgfile" - -# func_dirname file append nondir_replacement -# Compute the dirname of FILE. If nonempty, add APPEND to the result, -# otherwise set result to NONDIR_REPLACEMENT. -func_dirname () -{ - case ${1} in - */*) func_dirname_result="${1%/*}${2}" ;; - * ) func_dirname_result="${3}" ;; - esac -} - -# func_basename file -func_basename () -{ - func_basename_result="${1##*/}" -} - -# func_dirname_and_basename file append nondir_replacement -# perform func_basename and func_dirname in a single function -# call: -# dirname: Compute the dirname of FILE. If nonempty, -# add APPEND to the result, otherwise set result -# to NONDIR_REPLACEMENT. -# value returned in "$func_dirname_result" -# basename: Compute filename of FILE. -# value retuned in "$func_basename_result" -# Implementation must be kept synchronized with func_dirname -# and func_basename. For efficiency, we do not delegate to -# those functions but instead duplicate the functionality here. -func_dirname_and_basename () -{ - case ${1} in - */*) func_dirname_result="${1%/*}${2}" ;; - * ) func_dirname_result="${3}" ;; - esac - func_basename_result="${1##*/}" -} - -# func_stripname prefix suffix name -# strip PREFIX and SUFFIX off of NAME. -# PREFIX and SUFFIX must not contain globbing or regex special -# characters, hashes, percent signs, but SUFFIX may contain a leading -# dot (in which case that matches only a dot). -func_stripname () -{ - # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are - # positional parameters, so assign one to ordinary parameter first. - func_stripname_result=${3} - func_stripname_result=${func_stripname_result#"${1}"} - func_stripname_result=${func_stripname_result%"${2}"} -} - -# func_opt_split -func_opt_split () -{ - func_opt_split_opt=${1%%=*} - func_opt_split_arg=${1#*=} -} - -# func_lo2o object -func_lo2o () -{ - case ${1} in - *.lo) func_lo2o_result=${1%.lo}.${objext} ;; - *) func_lo2o_result=${1} ;; - esac -} - -# func_xform libobj-or-source -func_xform () -{ - func_xform_result=${1%.*}.lo -} - -# func_arith arithmetic-term... -func_arith () -{ - func_arith_result=$(( $* )) -} - -# func_len string -# STRING may not start with a hyphen. -func_len () -{ - func_len_result=${#1} -} - -_LT_EOF - ;; - *) # Bourne compatible functions. - cat << \_LT_EOF >> "$cfgfile" - -# func_dirname file append nondir_replacement -# Compute the dirname of FILE. If nonempty, add APPEND to the result, -# otherwise set result to NONDIR_REPLACEMENT. -func_dirname () -{ - # Extract subdirectory from the argument. - func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` - if test "X$func_dirname_result" = "X${1}"; then - func_dirname_result="${3}" - else - func_dirname_result="$func_dirname_result${2}" - fi -} - -# func_basename file -func_basename () -{ - func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` -} - - -# func_stripname prefix suffix name -# strip PREFIX and SUFFIX off of NAME. -# PREFIX and SUFFIX must not contain globbing or regex special -# characters, hashes, percent signs, but SUFFIX may contain a leading -# dot (in which case that matches only a dot). -# func_strip_suffix prefix name -func_stripname () -{ - case ${2} in - .*) func_stripname_result=`$ECHO "X${3}" \ - | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; - *) func_stripname_result=`$ECHO "X${3}" \ - | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; - esac -} - -# sed scripts: -my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' -my_sed_long_arg='1s/^-[^=]*=//' - -# func_opt_split -func_opt_split () -{ - func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` - func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` -} - -# func_lo2o object -func_lo2o () -{ - func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` -} - -# func_xform libobj-or-source -func_xform () -{ - func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[^.]*$/.lo/'` -} - -# func_arith arithmetic-term... -func_arith () -{ - func_arith_result=`expr "$@"` -} - -# func_len string -# STRING may not start with a hyphen. -func_len () -{ - func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` -} - -_LT_EOF -esac - -case $lt_shell_append in - yes) - cat << \_LT_EOF >> "$cfgfile" - -# func_append var value -# Append VALUE to the end of shell variable VAR. -func_append () -{ - eval "$1+=\$2" -} -_LT_EOF - ;; - *) - cat << \_LT_EOF >> "$cfgfile" - -# func_append var value -# Append VALUE to the end of shell variable VAR. -func_append () -{ - eval "$1=\$$1\$2" -} - -_LT_EOF - ;; - esac - - - sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ - || (rm -f "$cfgfile"; exit 1) - - mv -f "$cfgfile" "$ofile" || + sed '$q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + if test x"$xsi_shell" = xyes; then + sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ +func_dirname ()\ +{\ +\ case ${1} in\ +\ */*) func_dirname_result="${1%/*}${2}" ;;\ +\ * ) func_dirname_result="${3}" ;;\ +\ esac\ +} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_basename ()$/,/^} # func_basename /c\ +func_basename ()\ +{\ +\ func_basename_result="${1##*/}"\ +} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ +func_dirname_and_basename ()\ +{\ +\ case ${1} in\ +\ */*) func_dirname_result="${1%/*}${2}" ;;\ +\ * ) func_dirname_result="${3}" ;;\ +\ esac\ +\ func_basename_result="${1##*/}"\ +} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ +func_stripname ()\ +{\ +\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ +\ # positional parameters, so assign one to ordinary parameter first.\ +\ func_stripname_result=${3}\ +\ func_stripname_result=${func_stripname_result#"${1}"}\ +\ func_stripname_result=${func_stripname_result%"${2}"}\ +} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ +func_split_long_opt ()\ +{\ +\ func_split_long_opt_name=${1%%=*}\ +\ func_split_long_opt_arg=${1#*=}\ +} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ +func_split_short_opt ()\ +{\ +\ func_split_short_opt_arg=${1#??}\ +\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ +} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ +func_lo2o ()\ +{\ +\ case ${1} in\ +\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ +\ *) func_lo2o_result=${1} ;;\ +\ esac\ +} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_xform ()$/,/^} # func_xform /c\ +func_xform ()\ +{\ + func_xform_result=${1%.*}.lo\ +} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_arith ()$/,/^} # func_arith /c\ +func_arith ()\ +{\ + func_arith_result=$(( $* ))\ +} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_len ()$/,/^} # func_len /c\ +func_len ()\ +{\ + func_len_result=${#1}\ +} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + +fi + +if test x"$lt_shell_append" = xyes; then + sed -e '/^func_append ()$/,/^} # func_append /c\ +func_append ()\ +{\ + eval "${1}+=\\${2}"\ +} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ +func_append_quoted ()\ +{\ +\ func_quote_for_eval "${2}"\ +\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ +} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + # Save a `func_append' function call where possible by direct use of '+=' + sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: +else + # Save a `func_append' function call even when '+=' is not available + sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: +fi + +if test x"$_lt_function_replace_fail" = x":"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 +$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} +fi + + + mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" @@ -19261,9 +17601,7 @@ _LT_EOF esac ;; "po/stamp-it":C) if ! grep "^# INTLTOOL_MAKEFILE$" "po/Makefile.in" > /dev/null ; then - { { $as_echo "$as_me:$LINENO: error: po/Makefile.in.in was not created by intltoolize." >&5 -$as_echo "$as_me: error: po/Makefile.in.in was not created by intltoolize." >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "po/Makefile.in.in was not created by intltoolize." "$LINENO" 5 fi rm -f "po/stamp-it" "po/stamp-it.tmp" "po/POTFILES" "po/Makefile.tmp" >"po/stamp-it.tmp" @@ -19286,15 +17624,12 @@ $as_echo "$as_me: error: po/Makefile.in.in was not created by intltoolize." >&2; done # for ac_tag -{ (exit 0); exit 0; } +as_fn_exit 0 _ACEOF -chmod +x $CONFIG_STATUS ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || - { { $as_echo "$as_me:$LINENO: error: write failure creating $CONFIG_STATUS" >&5 -$as_echo "$as_me: error: write failure creating $CONFIG_STATUS" >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. @@ -19315,23 +17650,36 @@ if test "$no_create" != yes; then exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. - $ac_cs_success || { (exit 1); exit 1; } + $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then - { $as_echo "$as_me:$LINENO: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi echo " + Configuration: - Package: ${PACKAGE}-${VERSION}: - Installation prefix ${prefix} - Source code location: ${srcdir} - Compiler: ${CC} - Evolution Data Server support: ${have_libebook} + Package ................. ${PACKAGE}-${VERSION} + Installation prefix ..... ${prefix} + Source code location .... ${srcdir} + Compiler ................ ${CC} + + +Optional data merge backends: + + Evolution Data Server ... ${have_libebook} -" +Optional barcode backends: + + GNU Barcode ............. ${have_libbarcode} ${help_libbarcode} + QR Code ................. ${have_libqrencode} ${help_libqrencode} + IEC 16022 ............... ${have_libiec16022} ${help_libiec16022} + Zint .................... ${have_libzint} ${help_libzint} + + +" diff --git a/configure.ac b/configure.ac new file mode 100644 index 00000000..ebcb0c4b --- /dev/null +++ b/configure.ac @@ -0,0 +1,378 @@ +dnl Process this file with autoconf to produce a configure script. + + +dnl --------------------------------------------------------------------------- +dnl - GLABELS version +dnl --------------------------------------------------------------------------- +m4_define([glabels_major_version], [3]) +m4_define([glabels_minor_version], [0]) +m4_define([glabels_micro_version], [0]) + +m4_define([glabels_version], + [glabels_major_version.glabels_minor_version.glabels_micro_version]) + +dnl --------------------------------------------------------------------------- + + +AC_PREREQ(2.64) +AC_INIT([glabels],[glabels_version], + [http://bugzilla.gnome.org/enter_bug.cgi?product=glabels], + [glabels]) + +AC_CONFIG_SRCDIR(src/glabels.c) + +AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION) + +AM_MAINTAINER_MODE +m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])]) + +AC_CONFIG_HEADERS(config.h) + +IT_PROG_INTLTOOL([0.21]) + +PKG_PROG_PKG_CONFIG + +LT_INIT + +GNOME_DOC_INIT +GTK_DOC_CHECK(1.0) + +GLIB_GSETTINGS + +AC_SEARCH_LIBS([strerror],[cposix]) +AC_PROG_CC +AC_PROG_INSTALL + +GNOME_COMPILE_WARNINGS + +AC_PATH_PROG(GLIB_GENMARSHAL, glib-genmarshal) +AC_PATH_PROG(GDK_PIXBUF_CSOURCE, gdk-pixbuf-csource) +AC_PATH_PROG(GTK_UPDATE_ICON_CACHE, gtk-update-icon-cache) + + +dnl --------------------------------------------------------------------------- +dnl - GLABELS branch +dnl --------------------------------------------------------------------------- +GLABELS_BRANCH=glabels-3.0 +AC_SUBST(GLABELS_BRANCH) + +dnl --------------------------------------------------------------------------- +dnl - LIBGLABELS branch +dnl --------------------------------------------------------------------------- +LIBGLABELS_BRANCH=libglabels-3.0 +AC_SUBST(LIBGLABELS_BRANCH) + +dnl --------------------------------------------------------------------------- +dnl - LIBGLBARCODE branch +dnl --------------------------------------------------------------------------- +LIBGLBARCODE_BRANCH=libglbarcode-3.0 +AC_SUBST(LIBGLBARCODE_BRANCH) + +dnl --------------------------------------------------------------------------- +dnl - LIBGLABELS API versioning +dnl --------------------------------------------------------------------------- +dnl From the libtool manual: +dnl 1. Start with version information of `0:0:0' for each libtool library. +dnl 2. Update the version information only immediately before a public release. +dnl More frequent updates are unnecessary, and only guarantee that the current +dnl interface number gets larger faster. +dnl 3. If the library source code has changed at all since the last update, then increment +dnl revision (`c:r:a' becomes `c:r+1:a'). +dnl 4. If any interfaces have been added, removed, or changed since the last update, +dnl increment current, and set revision to 0. +dnl 5. If any interfaces have been added since the last public release, then increment age. +dnl 6. If any interfaces have been removed since the last public release, then set age +dnl to 0. +LIBGLABELS_C=8 +LIBGLABELS_R=0 +LIBGLABELS_A=0 + +LIBGLABELS_API_VERSION=${LIBGLABELS_C}:${LIBGLABELS_R}:${LIBGLABELS_A} +AC_SUBST(LIBGLABELS_API_VERSION) + +dnl --------------------------------------------------------------------------- +dnl - LIBGLBARCODE API versioning +dnl --------------------------------------------------------------------------- +dnl From the libtool manual: +dnl 1. Start with version information of `0:0:0' for each libtool library. +dnl 2. Update the version information only immediately before a public release. +dnl More frequent updates are unnecessary, and only guarantee that the current +dnl interface number gets larger faster. +dnl 3. If the library source code has changed at all since the last update, then increment +dnl revision (`c:r:a' becomes `c:r+1:a'). +dnl 4. If any interfaces have been added, removed, or changed since the last update, +dnl increment current, and set revision to 0. +dnl 5. If any interfaces have been added since the last public release, then increment age. +dnl 6. If any interfaces have been removed since the last public release, then set age +dnl to 0. +LIBGLBARCODE_C=0 +LIBGLBARCODE_R=0 +LIBGLBARCODE_A=0 + +LIBGLBARCODE_API_VERSION=${LIBGLBARCODE_C}:${LIBGLBARCODE_R}:${LIBGLBARCODE_A} +AC_SUBST(LIBGLBARCODE_API_VERSION) + +dnl --------------------------------------------------------------------------- +dnl - Library dependencies +dnl --------------------------------------------------------------------------- +dnl Required dependencies +GLIB_REQUIRED=2.28.2 +GTK_REQUIRED=3.0.9 +LIBXML_REQUIRED=2.7.8 +LIBRSVG_REQUIRED=2.32.0 +CAIRO_REQUIRED=1.10.0 +PANGO_REQUIRED=1.28.1 + +dnl Optional dependencies +LIBEBOOK_REQUIRED=2.30.3 +LIBBARCODE_REQUIRED=0.98 +LIBQRENCODE_REQUIRED=3.1.0 +LIBIEC16022_REQUIRED=0.2.4 +LIBZINT_REQUIRED=2.4.0 + +dnl Make above strings available for packaging files (e.g. rpm spec files) +AC_SUBST(GLIB_REQUIRED) +AC_SUBST(GTK_REQUIRED) +AC_SUBST(LIBXML_REQUIRED) +AC_SUBST(LIBRSVG_REQUIRED) +AC_SUBST(CAIRO_REQUIRED) +AC_SUBST(PANGO_REQUIRED) +AC_SUBST(LIBEBOOK_REQUIRED) +AC_SUBST(LIBBARCODE_REQUIRED) +AC_SUBST(LIBQRENCODE_REQUIRED) +AC_SUBST(LIBIEC16022_REQUIRED) +AC_SUBST(LIBZINT_REQUIRED) + + +dnl --------------------------------------------------------------------------- +dnl - GLABELS prerequisites +dnl --------------------------------------------------------------------------- +PKG_CHECK_MODULES(GLABELS, [\ + glib-2.0 >= $GLIB_REQUIRED \ + gtk+-3.0 >= $GTK_REQUIRED \ + libxml-2.0 >= $LIBXML_REQUIRED \ + librsvg-2.0 >= $LIBRSVG_REQUIRED \ +]) + +AC_SUBST(GLABELS_CFLAGS) +AC_SUBST(GLABELS_LIBS) + + +dnl --------------------------------------------------------------------------- +dnl - LIBGLABELS more modest prerequisites +dnl --------------------------------------------------------------------------- +PKG_CHECK_MODULES(LIBGLABELS, [\ + glib-2.0 >= $GLIB_REQUIRED \ + libxml-2.0 >= $LIBXML_REQUIRED \ +]) + +AC_SUBST(LIBGLABELS_CFLAGS) +AC_SUBST(LIBGLABELS_LIBS) + + +dnl --------------------------------------------------------------------------- +dnl - LIBGLBARCODE more modest prerequisites +dnl --------------------------------------------------------------------------- +PKG_CHECK_MODULES(LIBGLBARCODE, [\ + glib-2.0 >= $GLIB_REQUIRED \ + cairo >= $CAIRO_REQUIRED \ + pango >= $PANGO_REQUIRED \ +]) + +AC_SUBST(LIBGLBARCODE_CFLAGS) +AC_SUBST(LIBGLBARCODE_LIBS) + + +dnl --------------------------------------------------------------------------- +dnl - Check for optional evolution data server +dnl --------------------------------------------------------------------------- +AC_ARG_WITH(libebook, + [AS_HELP_STRING([--without-libebook],[build without Evolution Data Server support])]) +have_libebook=no +if test "x$with_libebook" != xno; then + PKG_CHECK_MODULES(LIBEBOOK, libebook-1.2 >= $LIBEBOOK_REQUIRED, + [have_libebook=yes], [have_libebook=no]) +fi + +if test "x$have_libebook" = "xyes"; then + AC_DEFINE(HAVE_LIBEBOOK,1,[Define to 1 for EDS support]) + AC_SUBST(LIBEBOOK_CFLAGS) + AC_SUBST(LIBEBOOK_LIBS) +fi + + +dnl --------------------------------------------------------------------------- +dnl - Check for optional GNU Barcode backend +dnl --------------------------------------------------------------------------- +AC_ARG_WITH(libbarcode, + [AS_HELP_STRING([--without-libbarcode],[build without GNU Barcode support])]) +have_libbarcode=no +if test "x$with_libbarcode" != xno; then + AC_CHECK_LIB(barcode, Barcode_Create, + [have_libbarcode=yes], [have_libbarcode=no]) +fi + +if test "x$have_libbarcode" = "xyes"; then + AC_DEFINE(HAVE_LIBBARCODE,1,[Define to 1 for GNU Barcode support]) + LIBBARCODE_CFLAGS="" + LIBBARCODE_LIBS="-lbarcode" + AC_SUBST(LIBBARCODE_CFLAGS) + AC_SUBST(LIBBARCODE_LIBS) +else + help_libbarcode="(See http://www.gnu.org/software/barcode/barcode.html)" +fi + +dnl --------------------------------------------------------------------------- +dnl - Check for optional Zint backend +dnl --------------------------------------------------------------------------- +AC_ARG_WITH(libzint, + [AS_HELP_STRING([--without-libzint],[build without Zint Barcode support])]) +have_libzint=no +if test "x$with_libzint" != xno; then + AC_CHECK_LIB(zint, ZBarcode_Render, + [have_libzint=yes], [have_libzint=no]) +fi + +if test "x$have_libzint" = "xyes"; then + AC_DEFINE(HAVE_LIBZINT,1,[Define to 1 for Zint Barcode support]) + LIBZINT_CFLAGS="" + LIBZINT_LIBS="-lzint" + AC_SUBST(LIBZINT_CFLAGS) + AC_SUBST(LIBZINT_LIBS) +else + help_libzint="(See http://www.zint.org.uk)" +fi + + +dnl --------------------------------------------------------------------------- +dnl - Check for optional QRencode Barcode backend +dnl --------------------------------------------------------------------------- +AC_ARG_WITH(libqrencode, + [AS_HELP_STRING([--without-libqrencode],[build without QR code support])]) +have_libqrencode=no +if test "x$with_libqrencode" != xno; then + PKG_CHECK_MODULES(LIBQRENCODE, libqrencode >= $LIBQRENCODE_REQUIRED, + [have_libqrencode=yes], [have_libqrencode=no]) +fi + +if test "x$have_libqrencode" = "xyes"; then + AC_DEFINE(HAVE_LIBQRENCODE,1,[Define to 1 for QR code support]) + AC_SUBST(LIBQRENCODE_CFLAGS) + AC_SUBST(LIBQRENCODE_LIBS) +else + help_libqrencode="(See http://megaui.net/fukuchi/works/qrencode/index.en.html)" +fi + + +dnl --------------------------------------------------------------------------- +dnl - Check for IEC16022 Barcode backend +dnl --------------------------------------------------------------------------- +AC_ARG_WITH(libiec16022, + [AS_HELP_STRING([--without-libiec16022],[build without IEC 16022 support])]) +have_libiec16022=no +if test "x$with_libiec16022" != xno; then + PKG_CHECK_MODULES(LIBIEC16022, libiec16022 >= $LIBIEC16022_REQUIRED, + [have_libiec16022=yes], [have_libiec16022=no]) +fi + +if test "x$have_libiec16022" = "xyes"; then + AC_DEFINE(HAVE_LIBIEC16022,1,[Define to 1 for IEC 16022 support]) + AC_SUBST(LIBIEC16022_CFLAGS) + AC_SUBST(LIBIEC16022_LIBS) +else + help_libiec16022="(See http://datenfreihafen.org/projects/iec16022.html)" +fi + + +dnl --------------------------------------------------------------------------- +dnl - Enable deprecation testing +dnl --------------------------------------------------------------------------- +AC_ARG_ENABLE(deprecations, + [AS_HELP_STRING([--enable-deprecations],[warn about deprecated usages [default=no]])],, + [enable_deprecations=no]) + +if test "x$enable_deprecations" = "xyes"; then + DISABLE_DEPRECATED_CFLAGS="\ +-DG_DISABLE_DEPRECATED \ +-DGDK_DISABLE_DEPRECATED \ +-DGTK_DISABLE_DEPRECATED \ +-DGDK_PIXBUF_DISABLE_DEPRECATED \ +" + AC_SUBST(DISABLE_DEPRECATED_CFLAGS) +fi + + +dnl --------------------------------------------------------------------------- +dnl - i18n support +dnl --------------------------------------------------------------------------- +GETTEXT_PACKAGE=${GLABELS_BRANCH} +AC_SUBST(GETTEXT_PACKAGE) +AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [Gettext package]) + +AM_GLIB_GNU_GETTEXT + + +dnl --------------------------------------------------------------------------- +dnl - Makefiles, etc. +dnl --------------------------------------------------------------------------- +AC_CONFIG_FILES([ +Makefile +libglabels/Makefile +libglabels/${LIBGLABELS_BRANCH}.pc +libglbarcode/Makefile +libglbarcode/${LIBGLBARCODE_BRANCH}.pc +src/Makefile +src/cursors/Makefile +src/pixmaps/Makefile +data/Makefile +data/desktop/Makefile +data/icons/Makefile +data/icons/16x16/Makefile +data/icons/22x22/Makefile +data/icons/24x24/Makefile +data/icons/32x32/Makefile +data/icons/48x48/Makefile +data/man/Makefile +data/mime/Makefile +data/pixmaps/Makefile +data/schemas/Makefile +data/schemas/org.gnome.glabels-3.gschema.xml.in +data/ui/Makefile +templates/Makefile +po/Makefile.in +help/Makefile +docs/Makefile +docs/libglabels/Makefile +docs/libglbarcode/Makefile +glabels.spec +]) +AC_OUTPUT + + +dnl --------------------------------------------------------------------------- +dnl - Print configuration information +dnl --------------------------------------------------------------------------- +echo " + +Configuration: + + Package ................. ${PACKAGE}-${VERSION} + Installation prefix ..... ${prefix} + Source code location .... ${srcdir} + Compiler ................ ${CC} + + +Optional data merge backends: + + Evolution Data Server ... ${have_libebook} + + +Optional barcode backends: + + GNU Barcode ............. ${have_libbarcode} ${help_libbarcode} + QR Code ................. ${have_libqrencode} ${help_libqrencode} + IEC 16022 ............... ${have_libiec16022} ${help_libiec16022} + Zint .................... ${have_libzint} ${help_libzint} + + +" diff --git a/configure.in b/configure.in deleted file mode 100644 index 0258b0fa..00000000 --- a/configure.in +++ /dev/null @@ -1,234 +0,0 @@ -dnl Process this file with autoconf to produce a configure script. - -AC_PREREQ(2.52) - -AC_INIT(glabels, 2.2.8, http://sourceforge.net/tracker/?func=add&group_id=46122&atid=445116) -AC_CONFIG_SRCDIR(src/glabels.c) -AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION) -GNOME_DOC_INIT - -AM_MAINTAINER_MODE -AM_CONFIG_HEADER(config.h) - -AC_PROG_INTLTOOL([0.21]) -PKG_PROG_PKG_CONFIG - -AM_PROG_LIBTOOL - -AC_ISC_POSIX -AC_PROG_CC -AM_PROG_CC_STDC -AC_HEADER_STDC - -GNOME_COMPILE_WARNINGS - -AC_PATH_PROG(GLIB_GENMARSHAL, glib-genmarshal) - -GTK_DOC_CHECK(1.0) - -dnl --------------------------------------------------------------------------- -dnl - LIBGLABELS API versioning -dnl --------------------------------------------------------------------------- -dnl From the libtool manual: -dnl 1. Start with version information of `0:0:0' for each libtool library. -dnl 2. Update the version information only immediately before a public release. -dnl More frequent updates are unnecessary, and only guarantee that the current -dnl interface number gets larger faster. -dnl 3. If the library source code has changed at all since the last update, then increment -dnl revision (`c:r:a' becomes `c:r+1:a'). -dnl 4. If any interfaces have been added, removed, or changed since the last update, -dnl increment current, and set revision to 0. -dnl 5. If any interfaces have been added since the last public release, then increment age. -dnl 6. If any interfaces have been removed since the last public release, then set age -dnl to 0. -LIBGLABELS_C=6 -LIBGLABELS_R=2 -LIBGLABELS_A=1 - -LIBGLABELS_VERSION_INFO=${LIBGLABELS_C}:${LIBGLABELS_R}:${LIBGLABELS_A} -AC_SUBST(LIBGLABELS_VERSION_INFO) - - -dnl --------------------------------------------------------------------------- -dnl - Library dependencies -dnl --------------------------------------------------------------------------- -GLIB_REQUIRED=2.12.0 -GTK_REQUIRED=2.10.0 -LIBGNOME_REQUIRED=2.16.0 -LIBGNOMEUI_REQUIRED=2.16.0 -LIBXML_REQUIRED=2.6.0 -LIBGLADE_REQUIRED=2.6.0 -LIBEBOOK_REQUIRED=1.8.0 - -dnl Make above strings available for packaging files (e.g. rpm spec files) -AC_SUBST(GLIB_REQUIRED) -AC_SUBST(GTK_REQUIRED) -AC_SUBST(LIBGNOME_REQUIRED) -AC_SUBST(LIBGNOMEUI_REQUIRED) -AC_SUBST(LIBXML_REQUIRED) -AC_SUBST(LIBGLADE_REQUIRED) -AC_SUBST(LIBEBOOK_REQUIRED) - - -dnl --------------------------------------------------------------------------- -dnl - Check for evolution data server -dnl --------------------------------------------------------------------------- -AC_ARG_WITH(libebook, - [AC_HELP_STRING([--without-libebook], - [build without Evolution Data Server support])]) -have_libebook=no -if test "x$with_libebook" != xno; then - PKG_CHECK_MODULES(LIBEBOOK, libebook-1.2 >= $LIBEBOOK_REQUIRED, - [have_libebook=yes], [have_libebook=no]) -fi - -if test "x$have_libebook" = "xyes"; then - AC_DEFINE(HAVE_LIBEBOOK,1,[Define to 1 for EDS support]) - OPTIONAL_MODULES="$OPTIONAL_MODULES libebook-1.2 >= $LIBEBOOK_REQUIRED" -fi - - -dnl --------------------------------------------------------------------------- -dnl - GLABELS prerequisites -dnl --------------------------------------------------------------------------- -PKG_CHECK_MODULES(GLABELS, \ -glib-2.0 >= $GLIB_REQUIRED \ -gtk+-2.0 >= $GTK_REQUIRED \ -libgnome-2.0 >= $LIBGNOME_REQUIRED \ -libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED \ -libxml-2.0 >= $LIBXML_REQUIRED \ -libglade-2.0 >= $LIBGLADE_REQUIRED \ -$OPTIONAL_MODULES \ -) - -AC_SUBST(GLABELS_CFLAGS) -AC_SUBST(GLABELS_LIBS) - - -dnl --------------------------------------------------------------------------- -dnl - LIBGLABELS more modest prerequisites -dnl --------------------------------------------------------------------------- -PKG_CHECK_MODULES(LIBGLABELS, \ -glib-2.0 >= $GLIB_REQUIRED \ -libxml-2.0 >= $LIBXML_REQUIRED \ -) - -AC_SUBST(LIBGLABELS_CFLAGS) -AC_SUBST(LIBGLABELS_LIBS) - - -dnl --------------------------------------------------------------------------- -dnl - MYGAL prerequisites -dnl --------------------------------------------------------------------------- -PKG_CHECK_MODULES(MYGAL, \ -gtk+-2.0 >= $GTK_REQUIRED \ -libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED \ -) - -AC_SUBST(MYGAL_CFLAGS) -AC_SUBST(MYGAL_LIBS) - - -dnl --------------------------------------------------------------------------- -dnl - Is XML_PARSE_HUGE available? -dnl --------------------------------------------------------------------------- -PKG_CHECK_MODULES(XML_PARSE_HUGE, libxml-2.0 >= 2.7.0, - HAVE_XML_PARSE_HUGE="-DHAVE_XML_PARSE_HUGE", - HAVE_XML_PARSE_HUGE="-UHAVE_XML_PARSE_HUGE") -AC_SUBST(HAVE_XML_PARSE_HUGE) - - -dnl --------------------------------------------------------------------------- -dnl - Enable deprecation testing -dnl --------------------------------------------------------------------------- -AC_ARG_ENABLE(deprecations, - [AC_HELP_STRING([--enable-deprecations], - [warn about deprecated usages [default=no]])],, - [enable_deprecations=no]) - -if test "x$enable_deprecations" = "xyes"; then - DISABLE_DEPRECATED_CFLAGS="\ --DG_DISABLE_DEPRECATED \ --DGDK_DISABLE_DEPRECATED \ --DGTK_DISABLE_DEPRECATED \ --DGDK_PIXBUF_DISABLE_DEPRECATED \ --DGNOME_DISABLE_DEPRECATED \ --DLIBGLADE_DISABLE_DEPRECATED" - AC_SUBST(DISABLE_DEPRECATED_CFLAGS) -fi - - -dnl --------------------------------------------------------------------------- -dnl - Is freedesktop mime dbase available? -dnl --------------------------------------------------------------------------- -AC_PATH_PROG(UPDATE_MIME_DATABASE, update-mime-database, no) -AM_CONDITIONAL(HAVE_NEW_MIME, test x$UPDATE_MIME_DATABASE != xno) - -AC_PATH_PROG(UPDATE_DESKTOP_DATABASE, update-desktop-database, no) -AM_CONDITIONAL(HAVE_NEWER_MIME, test x$UPDATE_DESKTOP_DATABASE != xno) - -AC_ARG_ENABLE(update-mimedb, AC_HELP_STRING([--disable-update-mimedb], - [disable the update-mime-database after install [default=no]]),, - enable_update_mimedb=yes) -AM_CONDITIONAL(ENABLE_UPDATE_MIMEDB, test x$enable_update_mimedb = xyes) - -AC_ARG_ENABLE(update-desktopdb, AC_HELP_STRING([--disable-update-desktopdb], - [disable the update-desktop-database after install [default=no]]),, - enable_update_desktopdb=yes) -AM_CONDITIONAL(ENABLE_UPDATE_DESKTOPDB, test x$enable_update_desktopdb = xyes) - - -dnl --------------------------------------------------------------------------- -dnl - Supported languages -dnl --------------------------------------------------------------------------- -GETTEXT_PACKAGE=glabels -AC_SUBST(GETTEXT_PACKAGE) -AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [Gettext package]) - -AM_GLIB_GNU_GETTEXT - - -dnl --------------------------------------------------------------------------- -dnl - Makefiles, etc. -dnl --------------------------------------------------------------------------- -AC_OUTPUT([ -Makefile -barcode-0.98/Makefile -iec16022-0.2.1/Makefile -libglabels/Makefile -libglabels/libglabels.pc -src/Makefile -src/pixmaps/Makefile -src/stock-pixmaps/Makefile -src/mygal/Makefile -data/Makefile -data/templates/Makefile -data/pixmaps/Makefile -data/mime/Makefile -data/glade/Makefile -data/desktop/Makefile -data/dtd/Makefile -data/man/Makefile -po/Makefile.in -help/Makefile -docs/Makefile -docs/libglabels/Makefile -glabels.spec -]) - - -dnl --------------------------------------------------------------------------- -dnl - Print configuration information -dnl --------------------------------------------------------------------------- -echo " -Configuration: - - Package: ${PACKAGE}-${VERSION}: - Installation prefix ${prefix} - Source code location: ${srcdir} - Compiler: ${CC} - Evolution Data Server support: ${have_libebook} - -" - -dnl cat ${srcdir}/MESSAGE-OF-DOOM diff --git a/data/Makefile.am b/data/Makefile.am index 6b00c464..bc73c756 100644 --- a/data/Makefile.am +++ b/data/Makefile.am @@ -1,5 +1,12 @@ ## Process this file with automake to produce Makefile.in -SUBDIRS = desktop dtd glade man mime pixmaps templates +SUBDIRS = \ + desktop \ + icons \ + man \ + mime \ + pixmaps \ + schemas \ + ui diff --git a/data/Makefile.in b/data/Makefile.in index 38853604..1f5a84df 100644 --- a/data/Makefile.in +++ b/data/Makefile.in @@ -36,13 +36,19 @@ host_triplet = @host@ subdir = data DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ @@ -89,11 +95,13 @@ am__relativize = \ ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ +CAIRO_REQUIRED = @CAIRO_REQUIRED@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ @@ -107,6 +115,7 @@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@ DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ +DLLTOOL = @DLLTOOL@ DOC_USER_FORMATS = @DOC_USER_FORMATS@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ @@ -116,17 +125,23 @@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ +GDK_PIXBUF_CSOURCE = @GDK_PIXBUF_CSOURCE@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GLABELS_BRANCH = @GLABELS_BRANCH@ GLABELS_CFLAGS = @GLABELS_CFLAGS@ GLABELS_LIBS = @GLABELS_LIBS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ GLIB_REQUIRED = @GLIB_REQUIRED@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ GTKDOC_CHECK = @GTKDOC_CHECK@ +GTKDOC_MKPDF = @GTKDOC_MKPDF@ +GTKDOC_REBASE = @GTKDOC_REBASE@ GTK_REQUIRED = @GTK_REQUIRED@ -HAVE_XML_PARSE_HUGE = @HAVE_XML_PARSE_HUGE@ +GTK_UPDATE_ICON_CACHE = @GTK_UPDATE_ICON_CACHE@ HELP_DIR = @HELP_DIR@ HTML_DIR = @HTML_DIR@ INSTALL = @INSTALL@ @@ -142,31 +157,45 @@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ +LIBBARCODE_CFLAGS = @LIBBARCODE_CFLAGS@ +LIBBARCODE_LIBS = @LIBBARCODE_LIBS@ +LIBBARCODE_REQUIRED = @LIBBARCODE_REQUIRED@ LIBEBOOK_CFLAGS = @LIBEBOOK_CFLAGS@ LIBEBOOK_LIBS = @LIBEBOOK_LIBS@ LIBEBOOK_REQUIRED = @LIBEBOOK_REQUIRED@ +LIBGLABELS_API_VERSION = @LIBGLABELS_API_VERSION@ +LIBGLABELS_BRANCH = @LIBGLABELS_BRANCH@ LIBGLABELS_CFLAGS = @LIBGLABELS_CFLAGS@ LIBGLABELS_LIBS = @LIBGLABELS_LIBS@ -LIBGLABELS_VERSION_INFO = @LIBGLABELS_VERSION_INFO@ -LIBGLADE_REQUIRED = @LIBGLADE_REQUIRED@ -LIBGNOMEUI_REQUIRED = @LIBGNOMEUI_REQUIRED@ -LIBGNOME_REQUIRED = @LIBGNOME_REQUIRED@ +LIBGLBARCODE_API_VERSION = @LIBGLBARCODE_API_VERSION@ +LIBGLBARCODE_BRANCH = @LIBGLBARCODE_BRANCH@ +LIBGLBARCODE_CFLAGS = @LIBGLBARCODE_CFLAGS@ +LIBGLBARCODE_LIBS = @LIBGLBARCODE_LIBS@ +LIBIEC16022_CFLAGS = @LIBIEC16022_CFLAGS@ +LIBIEC16022_LIBS = @LIBIEC16022_LIBS@ +LIBIEC16022_REQUIRED = @LIBIEC16022_REQUIRED@ LIBOBJS = @LIBOBJS@ +LIBQRENCODE_CFLAGS = @LIBQRENCODE_CFLAGS@ +LIBQRENCODE_LIBS = @LIBQRENCODE_LIBS@ +LIBQRENCODE_REQUIRED = @LIBQRENCODE_REQUIRED@ +LIBRSVG_REQUIRED = @LIBRSVG_REQUIRED@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_REQUIRED = @LIBXML_REQUIRED@ +LIBZINT_CFLAGS = @LIBZINT_CFLAGS@ +LIBZINT_LIBS = @LIBZINT_LIBS@ +LIBZINT_REQUIRED = @LIBZINT_REQUIRED@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ -MYGAL_CFLAGS = @MYGAL_CFLAGS@ -MYGAL_LIBS = @MYGAL_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ @@ -179,9 +208,13 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PANGO_REQUIRED = @PANGO_REQUIRED@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ @@ -191,18 +224,15 @@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ -UPDATE_DESKTOP_DATABASE = @UPDATE_DESKTOP_DATABASE@ -UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ XGETTEXT = @XGETTEXT@ -XML_PARSE_HUGE_CFLAGS = @XML_PARSE_HUGE_CFLAGS@ -XML_PARSE_HUGE_LIBS = @XML_PARSE_HUGE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ @@ -222,6 +252,7 @@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ @@ -235,7 +266,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -251,7 +281,15 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -SUBDIRS = desktop dtd glade man mime pixmaps templates +SUBDIRS = \ + desktop \ + icons \ + man \ + mime \ + pixmaps \ + schemas \ + ui + all: all-recursive .SUFFIXES: diff --git a/data/desktop/Makefile.am b/data/desktop/Makefile.am index ce2a21fc..0358d5a5 100644 --- a/data/desktop/Makefile.am +++ b/data/desktop/Makefile.am @@ -2,7 +2,7 @@ @INTLTOOL_DESKTOP_RULE@ -DESKTOP_IN_FILES = glabels.desktop.in +DESKTOP_IN_FILES = $(GLABELS_BRANCH).desktop.in DESKTOP_FILES =$(DESKTOP_IN_FILES:.desktop.in=.desktop) desktopdir = $(datadir)/applications @@ -11,3 +11,4 @@ desktop_DATA = $(DESKTOP_FILES) EXTRA_DIST = $(DESKTOP_IN_FILES) CLEANFILES = $(DESKTOP_FILES) + diff --git a/data/desktop/Makefile.in b/data/desktop/Makefile.in index 3986b8f6..2f36ae08 100644 --- a/data/desktop/Makefile.in +++ b/data/desktop/Makefile.in @@ -37,13 +37,19 @@ host_triplet = @host@ subdir = data/desktop DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; @@ -73,11 +79,13 @@ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ +CAIRO_REQUIRED = @CAIRO_REQUIRED@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ @@ -91,6 +99,7 @@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@ DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ +DLLTOOL = @DLLTOOL@ DOC_USER_FORMATS = @DOC_USER_FORMATS@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ @@ -100,17 +109,23 @@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ +GDK_PIXBUF_CSOURCE = @GDK_PIXBUF_CSOURCE@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GLABELS_BRANCH = @GLABELS_BRANCH@ GLABELS_CFLAGS = @GLABELS_CFLAGS@ GLABELS_LIBS = @GLABELS_LIBS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ GLIB_REQUIRED = @GLIB_REQUIRED@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ GTKDOC_CHECK = @GTKDOC_CHECK@ +GTKDOC_MKPDF = @GTKDOC_MKPDF@ +GTKDOC_REBASE = @GTKDOC_REBASE@ GTK_REQUIRED = @GTK_REQUIRED@ -HAVE_XML_PARSE_HUGE = @HAVE_XML_PARSE_HUGE@ +GTK_UPDATE_ICON_CACHE = @GTK_UPDATE_ICON_CACHE@ HELP_DIR = @HELP_DIR@ HTML_DIR = @HTML_DIR@ INSTALL = @INSTALL@ @@ -126,31 +141,45 @@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ +LIBBARCODE_CFLAGS = @LIBBARCODE_CFLAGS@ +LIBBARCODE_LIBS = @LIBBARCODE_LIBS@ +LIBBARCODE_REQUIRED = @LIBBARCODE_REQUIRED@ LIBEBOOK_CFLAGS = @LIBEBOOK_CFLAGS@ LIBEBOOK_LIBS = @LIBEBOOK_LIBS@ LIBEBOOK_REQUIRED = @LIBEBOOK_REQUIRED@ +LIBGLABELS_API_VERSION = @LIBGLABELS_API_VERSION@ +LIBGLABELS_BRANCH = @LIBGLABELS_BRANCH@ LIBGLABELS_CFLAGS = @LIBGLABELS_CFLAGS@ LIBGLABELS_LIBS = @LIBGLABELS_LIBS@ -LIBGLABELS_VERSION_INFO = @LIBGLABELS_VERSION_INFO@ -LIBGLADE_REQUIRED = @LIBGLADE_REQUIRED@ -LIBGNOMEUI_REQUIRED = @LIBGNOMEUI_REQUIRED@ -LIBGNOME_REQUIRED = @LIBGNOME_REQUIRED@ +LIBGLBARCODE_API_VERSION = @LIBGLBARCODE_API_VERSION@ +LIBGLBARCODE_BRANCH = @LIBGLBARCODE_BRANCH@ +LIBGLBARCODE_CFLAGS = @LIBGLBARCODE_CFLAGS@ +LIBGLBARCODE_LIBS = @LIBGLBARCODE_LIBS@ +LIBIEC16022_CFLAGS = @LIBIEC16022_CFLAGS@ +LIBIEC16022_LIBS = @LIBIEC16022_LIBS@ +LIBIEC16022_REQUIRED = @LIBIEC16022_REQUIRED@ LIBOBJS = @LIBOBJS@ +LIBQRENCODE_CFLAGS = @LIBQRENCODE_CFLAGS@ +LIBQRENCODE_LIBS = @LIBQRENCODE_LIBS@ +LIBQRENCODE_REQUIRED = @LIBQRENCODE_REQUIRED@ +LIBRSVG_REQUIRED = @LIBRSVG_REQUIRED@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_REQUIRED = @LIBXML_REQUIRED@ +LIBZINT_CFLAGS = @LIBZINT_CFLAGS@ +LIBZINT_LIBS = @LIBZINT_LIBS@ +LIBZINT_REQUIRED = @LIBZINT_REQUIRED@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ -MYGAL_CFLAGS = @MYGAL_CFLAGS@ -MYGAL_LIBS = @MYGAL_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ @@ -163,9 +192,13 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PANGO_REQUIRED = @PANGO_REQUIRED@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ @@ -175,18 +208,15 @@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ -UPDATE_DESKTOP_DATABASE = @UPDATE_DESKTOP_DATABASE@ -UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ XGETTEXT = @XGETTEXT@ -XML_PARSE_HUGE_CFLAGS = @XML_PARSE_HUGE_CFLAGS@ -XML_PARSE_HUGE_LIBS = @XML_PARSE_HUGE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ @@ -206,6 +236,7 @@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ @@ -219,7 +250,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -235,7 +265,7 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -DESKTOP_IN_FILES = glabels.desktop.in +DESKTOP_IN_FILES = $(GLABELS_BRANCH).desktop.in DESKTOP_FILES = $(DESKTOP_IN_FILES:.desktop.in=.desktop) desktopdir = $(datadir)/applications desktop_DATA = $(DESKTOP_FILES) diff --git a/data/desktop/glabels.desktop.in b/data/desktop/glabels-3.0.desktop.in similarity index 63% rename from data/desktop/glabels.desktop.in rename to data/desktop/glabels-3.0.desktop.in index be70f928..4d7d579f 100644 --- a/data/desktop/glabels.desktop.in +++ b/data/desktop/glabels-3.0.desktop.in @@ -1,11 +1,11 @@ [Desktop Entry] Encoding=UTF-8 -_Name=gLabels Label Designer +_Name=gLabels Label Designer 3 _Comment=Create labels, business cards and media covers -Exec=glabels %F -Icon=glabels.png +Exec=glabels-3 %F +Icon=glabels-3.0.png Terminal=false Type=Application -Categories=GNOME;Application;Office; +Categories=GTK;Office; StartupNotify=true MimeType=application/x-glabels; diff --git a/data/dtd/Makefile.am b/data/dtd/Makefile.am deleted file mode 100644 index 0dce23d6..00000000 --- a/data/dtd/Makefile.am +++ /dev/null @@ -1,9 +0,0 @@ -## Process this file with automake to produce Makefile.in - -dtddir = $(datadir)/glabels/dtd - -dtd_DATA = \ - glabels-2.2.dtd - -EXTRA_DIST = $(dtd_DATA) - diff --git a/data/glade/Makefile.am b/data/glade/Makefile.am deleted file mode 100644 index 4747c88f..00000000 --- a/data/glade/Makefile.am +++ /dev/null @@ -1,18 +0,0 @@ -## Process this file with automake to produce Makefile.in - -gladedir = $(datadir)/glabels/glade/ - -glade_DATA = \ - object-editor.glade \ - prefs-dialog.glade \ - template-designer.glade \ - merge-properties-dialog.glade \ - property-bar.glade \ - print-custom-widget.glade \ - wdgt-media-select.glade \ - wdgt-rotate-label.glade \ - new-label-dialog.glade - -EXTRA_DIST = $(glade_DATA) - - diff --git a/data/glade/merge-properties-dialog.glade b/data/glade/merge-properties-dialog.glade deleted file mode 100644 index b62dcedf..00000000 --- a/data/glade/merge-properties-dialog.glade +++ /dev/null @@ -1,375 +0,0 @@ - - - - - - - True - dialog1 - GTK_WINDOW_TOPLEVEL - GTK_WIN_POS_NONE - False - True - False - True - False - False - GDK_WINDOW_TYPE_HINT_DIALOG - GDK_GRAVITY_NORTH_WEST - True - True - - - - True - False - 0 - - - - True - GTK_BUTTONBOX_END - - - - True - True - True - gtk-cancel - True - GTK_RELIEF_NORMAL - True - -6 - - - - - - True - True - True - gtk-ok - True - GTK_RELIEF_NORMAL - True - -5 - - - - - 0 - False - True - GTK_PACK_END - - - - - - True - False - 6 - - - - True - 0 - 0.5 - GTK_SHADOW_NONE - - - - True - 0.5 - 0.5 - 1 - 1 - 0 - 0 - 12 - 0 - - - - 12 - True - 2 - 2 - False - 6 - 6 - - - - True - Format: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 1 - 0 - 1 - fill - - - - - - - True - False - True - - - 1 - 2 - 0 - 1 - fill - - - - - - True - False - 0 - - - - - - - 1 - 2 - 1 - 2 - fill - fill - - - - - - True - Location: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 1 - 1 - 2 - fill - - - - - - - - - - - True - <b>Source</b> - False - True - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - label_item - - - - - 0 - False - True - - - - - - True - 0 - 0.5 - GTK_SHADOW_NONE - - - - True - 0.5 - 0.5 - 1 - 1 - 0 - 0 - 12 - 0 - - - - True - False - 6 - - - - 6 - 500 - 350 - True - True - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC - GTK_SHADOW_IN - GTK_CORNER_TOP_LEFT - - - - True - True - True - False - False - True - False - False - False - - - - - 0 - True - True - - - - - - 6 - True - False - 12 - - - - True - True - Select all - True - GTK_RELIEF_NORMAL - True - - - 0 - False - False - - - - - - True - True - Unselect all - True - GTK_RELIEF_NORMAL - True - - - 0 - False - False - - - - - 0 - False - True - - - - - - - - - - True - <b>Record selection/preview</b> - False - True - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - label_item - - - - - 0 - True - True - - - - - 0 - True - True - - - - - - - diff --git a/data/glade/new-label-dialog.glade b/data/glade/new-label-dialog.glade deleted file mode 100644 index 8633976c..00000000 --- a/data/glade/new-label-dialog.glade +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - True - window1 - - - True - 3 - vertical - 6 - - - True - 0 - none - - - True - 12 - - - True - - - - - - - - - - True - <b>Media type</b> - True - - - label_item - - - - - 0 - - - - - True - 0 - none - - - True - 12 - - - True - - - - - - - - - - True - <b>Label orientation</b> - True - - - label_item - - - - - 1 - - - - - - diff --git a/data/glade/object-editor.glade b/data/glade/object-editor.glade deleted file mode 100644 index d4ba2fe4..00000000 --- a/data/glade/object-editor.glade +++ /dev/null @@ -1,3471 +0,0 @@ - - - - - - - - 6 - True - dialog1 - GTK_WINDOW_TOPLEVEL - GTK_WIN_POS_NONE - False - True - False - True - False - False - GDK_WINDOW_TYPE_HINT_DIALOG - GDK_GRAVITY_NORTH_WEST - True - False - True - - - - True - False - 0 - - - - True - GTK_BUTTONBOX_END - - - - True - True - True - gtk-close - True - GTK_RELIEF_NORMAL - True - -7 - - - - - 0 - False - True - GTK_PACK_END - - - - - - 6 - True - False - 12 - - - - True - False - 12 - - - - True - 0.5 - 0.5 - 0 - 0 - - - 0 - False - True - - - - - - True - <span weight="bold" size="larger">Xxx object properties</span> - False - True - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - 0 - False - False - - - - - - True - True - True - True - GTK_POS_TOP - True - False - - - - 12 - True - False - 6 - - - - True - False - 0 - - - - True - True - GTK_POLICY_ALWAYS - GTK_POLICY_ALWAYS - GTK_SHADOW_NONE - GTK_CORNER_TOP_LEFT - - - - 232 - True - True - True - False - True - GTK_JUSTIFY_LEFT - GTK_WRAP_NONE - True - 0 - 0 - 0 - 0 - 0 - 0 - - - - - - 0 - True - True - - - - - 0 - True - True - - - - - - True - False - 12 - - - - True - Key: - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - True - False - True - - - 0 - True - True - - - - - - True - True - Insert merge field - True - GTK_RELIEF_NORMAL - True - - - 0 - False - False - - - - - 0 - False - False - - - - - False - False - - - - - - True - Text - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - tab - - - - - - 12 - True - False - 12 - - - - True - False - 12 - - - - True - Family: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - True - False - True - - - 0 - True - True - - - - - 0 - False - False - - - - - - True - False - 12 - - - - True - Size: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - True - False - 12 - - - - True - True - 0.00999999977648 - 0 - True - GTK_UPDATE_ALWAYS - False - False - 1 1 100 1 10 0 - - - 0 - False - False - - - - - 0 - True - True - - - - - 0 - False - False - - - - - - True - False - 12 - - - - True - Style: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - True - False - 12 - - - - True - True - GTK_RELIEF_NORMAL - True - False - False - - - - True - gtk-bold - 4 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - False - - - - - - True - True - GTK_RELIEF_NORMAL - True - False - False - - - - True - gtk-italic - 4 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - False - - - - - 0 - True - True - - - - - 0 - False - False - - - - - - True - False - 12 - - - - True - Color: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.140000000596 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - True - False - 6 - - - - True - False - 6 - - - - True - True - - True - GTK_RELIEF_NORMAL - True - False - False - True - - - 0 - False - False - - - - - - True - False - 12 - - - - True - gl_object_editor_construct_color_combo - 2 - 0 - Sun, 16 Nov 2003 06:52:23 GMT - - - 0 - False - False - - - - - 0 - True - True - - - - - 0 - True - True - - - - - - True - False - 6 - - - - True - True - Key: - True - GTK_RELIEF_NORMAL - True - False - False - True - text_color_radio - - - 0 - False - False - - - - - - True - False - 12 - - - - True - False - True - - - 0 - True - True - - - - - 0 - True - True - - - - - 0 - True - True - - - - - 0 - True - True - - - - - 0 - False - False - - - - - - True - False - 12 - - - - True - Alignment: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - True - False - 12 - - - - True - True - GTK_RELIEF_NORMAL - True - False - False - - - - True - gtk-justify-left - 4 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - False - - - - - - True - True - GTK_RELIEF_NORMAL - True - False - False - - - - True - gtk-justify-center - 4 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - False - - - - - - True - True - GTK_RELIEF_NORMAL - True - False - False - - - - True - gtk-justify-right - 4 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - False - - - - - 0 - True - True - - - - - 0 - False - False - - - - - - True - False - 12 - - - - True - Line Spacing: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - True - False - 12 - - - - True - True - 0.00999999977648 - 2 - False - GTK_UPDATE_ALWAYS - False - False - 1 0 5 0.01 0.1 0 - - - 0 - False - False - - - - - 0 - True - True - - - - - 0 - False - False - - - - - - True - True - Allow merge to automatically shrink text - True - GTK_RELIEF_NORMAL - True - False - False - True - - - 0 - False - False - - - - - False - False - - - - - - True - Style - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - tab - - - - - - 12 - True - False - 12 - - - - True - False - 12 - - - - True - Width: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - True - False - 12 - - - - True - True - 0.00999999977648 - 2 - True - GTK_UPDATE_ALWAYS - False - False - 1 0.25 4 0.25 1 0 - - - 0 - False - False - - - - - - True - points - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - 0 - True - True - - - - - 0 - False - False - - - - - - True - False - 12 - - - - True - Color: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.140000000596 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - True - False - 6 - - - - True - False - 6 - - - - True - True - - True - GTK_RELIEF_NORMAL - True - False - False - True - - - 0 - False - False - - - - - - True - False - 12 - - - - True - gl_object_editor_construct_color_combo - 1 - 0 - Sun, 16 Nov 2003 06:52:23 GMT - - - 0 - False - False - - - - - 0 - True - True - - - - - 0 - True - True - - - - - - True - False - 6 - - - - True - True - Key: - True - GTK_RELIEF_NORMAL - True - False - False - True - line_color_radio - - - 0 - False - False - - - - - - True - False - 12 - - - - True - False - True - - - 0 - True - True - - - - - 0 - True - True - - - - - 0 - True - True - - - - - 0 - True - True - - - - - 0 - False - False - - - - - False - True - - - - - - True - Line - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - tab - - - - - - 12 - True - False - 0 - - - - True - False - 12 - - - - True - Color: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.140000000596 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - True - False - 6 - - - - True - False - 6 - - - - True - True - - True - GTK_RELIEF_NORMAL - True - False - False - True - - - 0 - False - False - - - - - - True - False - 12 - - - - True - gl_object_editor_construct_color_combo - 0 - 0 - Sun, 16 Nov 2003 06:52:23 GMT - - - 0 - False - False - - - - - 0 - True - True - - - - - 0 - True - True - - - - - - True - False - 6 - - - - True - True - Key: - True - GTK_RELIEF_NORMAL - True - False - False - True - fill_color_radio - - - 0 - False - False - - - - - - True - False - 12 - - - - True - False - True - - - 0 - True - True - - - - - 0 - True - True - - - - - 0 - True - True - - - - - 0 - True - True - - - - - 0 - False - False - - - - - False - True - - - - - - True - Fill - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - tab - - - - - - 12 - True - False - 12 - - - - True - False - 12 - - - - True - True - File: - True - GTK_RELIEF_NORMAL - True - False - False - True - - - 0 - False - False - - - - - - True - Select A File - GTK_FILE_CHOOSER_ACTION_OPEN - True - True - False - -1 - - - 0 - True - True - - - - - 0 - False - False - - - - - - True - False - 12 - - - - True - False - True - Key: - True - GTK_RELIEF_NORMAL - True - False - False - True - img_file_radio - - - 0 - False - False - - - - - - True - False - True - - - 0 - True - True - - - - - 0 - False - False - - - - - False - True - - - - - - True - Image - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - tab - - - - - - 12 - True - False - 12 - - - - True - False - 12 - - - - True - True - Literal: - True - GTK_RELIEF_NORMAL - True - False - False - True - - - 0 - False - False - - - - - - True - True - True - True - 0 - - True - * - False - - - 0 - True - True - - - - - 0 - False - False - - - - - - True - False - 12 - - - - True - True - Key: - True - GTK_RELIEF_NORMAL - True - False - False - True - data_literal_radio - - - 0 - False - False - - - - - - True - False - True - - - 0 - True - True - - - - - 0 - False - False - - - - - - True - False - 12 - - - - True - - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - True - 2 - 2 - False - 6 - 6 - - - - True - format: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 1 - 0 - 1 - fill - - - - - - - True - 00000000000 00000 - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 2 - 0 - 1 - fill - - - - - - - True - digits: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 1 - 1 - 2 - fill - - - - - - - True - False - 0 - - - - True - True - 1 - 0 - True - GTK_UPDATE_ALWAYS - False - False - 1 1 100 1 10 0 - - - 0 - False - False - - - - - 1 - 2 - 1 - 2 - fill - fill - - - - - 0 - True - True - - - - - 0 - False - False - - - - - False - True - - - - - - True - Data - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - tab - - - - - - 12 - True - False - 12 - - - - True - False - 12 - - - - True - Style: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - True - False - True - - - 0 - True - True - - - - - 0 - False - False - - - - - - True - True - Text - True - GTK_RELIEF_NORMAL - True - False - False - True - - - 0 - False - False - - - - - - True - True - Checksum - True - GTK_RELIEF_NORMAL - True - False - False - True - - - 0 - False - False - - - - - - True - False - 12 - - - - True - Color: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.140000000596 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - True - False - 6 - - - - True - False - 6 - - - - True - True - - True - GTK_RELIEF_NORMAL - True - False - False - True - - - 0 - False - False - - - - - - True - False - 12 - - - - True - gl_object_editor_construct_color_combo - 1 - 0 - Sun, 16 Nov 2003 06:52:23 GMT - - - 0 - False - False - - - - - 0 - True - True - - - - - 0 - True - True - - - - - - True - False - 6 - - - - True - True - Key: - True - GTK_RELIEF_NORMAL - True - False - False - True - bc_color_radio - - - 0 - False - False - - - - - - True - False - 12 - - - - True - False - True - - - 0 - True - True - - - - - 0 - True - True - - - - - 0 - True - True - - - - - 0 - True - True - - - - - 0 - False - False - - - - - True - True - - - - - - True - Style - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - tab - - - - - - 12 - True - False - 12 - - - - True - 3 - 3 - False - 12 - 12 - - - - True - Width: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 1 - 0 - 1 - fill - - - - - - - True - Height: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 1 - 1 - 2 - fill - - - - - - - True - False - 12 - - - - True - True - 0.00999999977648 - 2 - True - GTK_UPDATE_ALWAYS - True - False - 1 0 100 0.01 10 0 - - - 0 - False - True - - - - - - True - inches - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - 1 - 2 - 1 - 2 - fill - fill - - - - - - True - False - 12 - - - - True - True - Reset image size - True - GTK_RELIEF_NORMAL - True - - - 0 - False - False - - - - - 0 - 2 - 2 - 3 - fill - - - - - - - True - False - 12 - - - - True - True - 0.00999999977648 - 2 - True - GTK_UPDATE_ALWAYS - True - False - 1 0 100 0.01 10 0 - - - 0 - False - True - - - - - - True - inches - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - 1 - 2 - 0 - 1 - fill - fill - - - - - - True - gl_object_editor_construct_chain_button - 0 - 0 - Sat, 07 Feb 2004 02:56:47 GMT - - - 2 - 3 - 0 - 2 - - fill - - - - - 0 - True - True - - - - - False - True - - - - - - True - Size - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - tab - - - - - - 12 - True - False - 12 - - - - True - 2 - 2 - False - 12 - 12 - - - - True - Length: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 1 - 0 - 1 - fill - - - - - - - True - Angle: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 1 - 1 - 2 - fill - - - - - - - True - False - 12 - - - - True - True - 0.00999999977648 - 2 - True - GTK_UPDATE_ALWAYS - True - False - 1 0 100 0.01 10 0 - - - 0 - False - True - - - - - - True - inches - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - 1 - 2 - 0 - 1 - fill - - - - - - True - False - 12 - - - - True - True - 0.00999999977648 - 1 - True - GTK_UPDATE_ALWAYS - True - False - 0 -180 180 0.1 5 0 - - - 0 - False - True - - - - - - True - degrees - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - 1 - 2 - 1 - 2 - fill - fill - - - - - 0 - True - True - - - - - False - True - - - - - - True - Size - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - tab - - - - - - 12 - True - False - 12 - - - - True - 2 - 3 - False - 12 - 12 - - - - 50 - True - X: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 1 - 0 - 1 - fill - - - - - - - True - Y: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 1 - 1 - 2 - fill - - - - - - - True - inches - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 2 - 3 - 0 - 1 - fill - - - - - - - True - inches - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 2 - 3 - 1 - 2 - fill - - - - - - - True - True - 0.00999999977648 - 2 - True - GTK_UPDATE_ALWAYS - True - False - 0 0 100 0.01 10 0 - - - 1 - 2 - 0 - 1 - - - - - - - - True - True - 0.00999999977648 - 2 - True - GTK_UPDATE_ALWAYS - True - False - 0 0 100 0.01 10 0 - - - 1 - 2 - 1 - 2 - - - - - - - 0 - True - True - - - - - False - True - - - - - - True - Position - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - tab - - - - - - 12 - True - False - 12 - - - - True - True - Enable shadow - True - GTK_RELIEF_NORMAL - True - False - False - True - - - 0 - False - False - - - - - - True - False - 12 - - - - True - False - 12 - - - - True - X Offset: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - True - False - 12 - - - - True - True - 0.00999999977648 - 2 - True - GTK_UPDATE_ALWAYS - True - False - 0 0 100 0.00999999977648 10 0 - - - 0 - False - True - - - - - - True - inches - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - 0 - True - True - - - - - 0 - True - True - - - - - - True - False - 12 - - - - True - Y Offset: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - True - False - 12 - - - - True - True - 0.00999999977648 - 2 - True - GTK_UPDATE_ALWAYS - True - False - 0 0 100 0.00999999977648 10 0 - - - 0 - False - True - - - - - - True - inches - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - 0 - True - True - - - - - 0 - True - True - - - - - - True - False - 12 - - - - True - Color: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.140000000596 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - True - False - 6 - - - - True - False - 6 - - - - True - True - - True - GTK_RELIEF_NORMAL - True - False - False - True - - - 0 - False - False - - - - - - True - False - 12 - - - - True - gl_object_editor_construct_color_combo - 3 - 0 - Sun, 16 Nov 2003 06:52:23 GMT - - - 0 - False - False - - - - - 0 - True - True - - - - - 0 - True - True - - - - - - True - False - 6 - - - - True - True - Key: - True - GTK_RELIEF_NORMAL - True - False - False - True - shadow_color_radio - - - 0 - False - False - - - - - - True - False - 12 - - - - True - False - True - - - 0 - True - True - - - - - 0 - True - True - - - - - 0 - True - True - - - - - 0 - True - True - - - - - 0 - True - True - - - - - - True - False - 12 - - - - True - Opacity: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - True - False - 12 - - - - True - True - 1 - 0 - False - GTK_UPDATE_ALWAYS - False - False - 1 0 100 1 10 0 - - - 0 - False - True - - - - - - True - % - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - 0 - True - True - - - - - 0 - True - True - - - - - 0 - False - False - - - - - False - True - - - - - - True - Shadow - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - tab - - - - - - True - False - 0 - - - - - - - False - True - - - - - - True - label48 - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - tab - - - - - 0 - True - True - - - - - 0 - True - True - - - - - - - diff --git a/data/glade/prefs-dialog.glade b/data/glade/prefs-dialog.glade deleted file mode 100644 index b169a381..00000000 --- a/data/glade/prefs-dialog.glade +++ /dev/null @@ -1,1309 +0,0 @@ - - - - - - - True - gLabels Preferences - GTK_WINDOW_TOPLEVEL - GTK_WIN_POS_NONE - False - True - False - True - False - False - GDK_WINDOW_TYPE_HINT_DIALOG - GDK_GRAVITY_NORTH_WEST - True - False - True - - - - True - False - 0 - - - - True - GTK_BUTTONBOX_END - - - - True - True - True - gtk-close - True - GTK_RELIEF_NORMAL - True - -7 - - - - - 0 - False - True - GTK_PACK_END - - - - - - True - True - True - True - GTK_POS_TOP - False - False - - - - 12 - True - False - 12 - - - - True - Select locale specific behavior. - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - True - 0 - 0.5 - GTK_SHADOW_NONE - - - - True - False - 0 - - - - True - - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - 6 - True - False - 6 - - - - True - True - Points - True - GTK_RELIEF_NORMAL - True - False - False - True - - - 0 - False - False - - - - - - True - True - Inches - True - GTK_RELIEF_NORMAL - True - False - False - True - units_points_radio - - - 0 - False - False - - - - - - True - True - Millimeters - True - GTK_RELIEF_NORMAL - True - False - False - True - units_points_radio - - - 0 - False - False - - - - - 0 - True - True - - - - - - - - True - <span weight="bold">Units</span> - False - True - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - label_item - - - - - 0 - False - False - - - - - - True - 0 - 0.5 - GTK_SHADOW_NONE - - - - True - False - 0 - - - - True - - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - 6 - True - False - 6 - - - - True - True - US Letter - True - GTK_RELIEF_NORMAL - True - False - False - True - - - 0 - False - False - - - - - - True - True - ISO A4 - True - GTK_RELIEF_NORMAL - True - False - False - True - page_size_us_letter_radio - - - 0 - False - False - - - - - 0 - True - True - - - - - - - - True - <span weight="bold">Default page size</span> - False - True - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - label_item - - - - - 0 - False - False - - - - - False - True - - - - - - True - Locale - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - tab - - - - - - 12 - True - False - 12 - - - - True - Select default properties for new objects. - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - True - 0 - 0.5 - GTK_SHADOW_NONE - - - - True - False - 0 - - - - True - - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - True - 4 - 2 - False - 12 - 12 - - - - True - Font: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 1 - 0 - 1 - fill - - - - - - - True - Color: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 1 - 1 - 2 - fill - - - - - - - True - Alignment: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 1 - 2 - 3 - fill - - - - - - - 90 - True - Line Spacing: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 1 - 3 - 4 - fill - - - - - - - True - False - 12 - - - - True - False - True - - - 0 - True - True - - - - - - True - True - 1 - 0 - True - GTK_UPDATE_ALWAYS - False - False - 1 1 100 1 10 0 - - - 0 - False - False - - - - - - True - True - GTK_RELIEF_NORMAL - True - False - False - - - - True - gtk-bold - 4 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - False - - - - - - True - True - GTK_RELIEF_NORMAL - True - False - False - - - - True - gtk-italic - 4 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - False - - - - - 1 - 2 - 0 - 1 - fill - - - - - - True - False - 12 - - - - True - gl_object_editor_construct_color_combo - 2 - 0 - Sun, 23 Nov 2003 15:42:02 GMT - - - 0 - False - False - - - - - 1 - 2 - 1 - 2 - fill - fill - - - - - - True - False - 12 - - - - True - True - GTK_RELIEF_NORMAL - True - False - False - - - - True - gtk-justify-left - 4 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - False - - - - - - True - True - GTK_RELIEF_NORMAL - True - False - False - - - - True - gtk-justify-center - 4 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - False - - - - - - True - True - GTK_RELIEF_NORMAL - True - False - False - - - - True - gtk-justify-right - 4 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - False - - - - - 1 - 2 - 2 - 3 - fill - fill - - - - - - True - False - 40 - - - - True - True - 0.00999999977648 - 2 - False - GTK_UPDATE_ALWAYS - False - False - 1 0 5 0.01 0.1 0 - - - 0 - False - False - - - - - 1 - 2 - 3 - 4 - fill - fill - - - - - 0 - True - True - - - - - - - - True - <span weight="bold">Text</span> - False - True - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - label_item - - - - - 0 - False - False - - - - - - True - 0 - 0.5 - GTK_SHADOW_NONE - - - - True - False - 0 - - - - True - - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - True - 2 - 2 - False - 12 - 12 - - - - 90 - True - Width: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 1 - 0 - 1 - fill - - - - - - - True - Color: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 1 - 1 - 2 - fill - - - - - - - True - False - 12 - - - - True - True - 0.00999999977648 - 2 - True - GTK_UPDATE_ALWAYS - False - False - 1 0.25 4 0.25 1 0 - - - 0 - False - False - - - - - - True - points - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - 1 - 2 - 0 - 1 - fill - - - - - - True - False - 12 - - - - True - gl_object_editor_construct_color_combo - 1 - 0 - Sun, 23 Nov 2003 15:42:41 GMT - - - 0 - False - False - - - - - 1 - 2 - 1 - 2 - fill - fill - - - - - 0 - True - True - - - - - - - - True - <span weight="bold">Line</span> - False - True - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - label_item - - - - - 0 - False - False - - - - - - True - 0 - 0.5 - GTK_SHADOW_NONE - - - - True - False - 0 - - - - True - - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - True - 1 - 2 - False - 12 - 12 - - - - 90 - True - Color: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 1 - 0 - 1 - fill - - - - - - - True - False - 12 - - - - True - gl_object_editor_construct_color_combo - 0 - 0 - Sun, 23 Nov 2003 15:43:12 GMT - - - 0 - False - False - - - - - 1 - 2 - 0 - 1 - fill - - - - - 0 - True - True - - - - - - - - True - <span weight="bold">Fill</span> - False - True - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - label_item - - - - - 0 - False - False - - - - - False - True - - - - - - True - Object defaults - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - tab - - - - - 0 - True - True - - - - - - - diff --git a/data/glade/print-custom-widget.glade b/data/glade/print-custom-widget.glade deleted file mode 100644 index f5063abc..00000000 --- a/data/glade/print-custom-widget.glade +++ /dev/null @@ -1,287 +0,0 @@ - - - - - - - True - window1 - GTK_WINDOW_TOPLEVEL - GTK_WIN_POS_NONE - False - True - False - True - False - False - GDK_WINDOW_TYPE_HINT_NORMAL - GDK_GRAVITY_NORTH_WEST - True - False - - - - 12 - True - False - 12 - - - - True - False - 0 - - - - True - 0 - 0.5 - GTK_SHADOW_NONE - - - - True - 0.5 - 0.5 - 1 - 1 - 0 - 0 - 12 - 0 - - - - True - False - 0 - - - - - - - - - - - - True - <b>Print control (Simple)</b> - False - True - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - label_item - - - - - 0 - True - True - - - - - - True - 0 - 0.5 - GTK_SHADOW_NONE - - - - True - 0.5 - 0.5 - 1 - 1 - 0 - 0 - 12 - 0 - - - - True - False - 0 - - - - - - - - - - - - True - <b>Print control (Merge)</b> - False - True - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - label_item - - - - - 0 - True - True - - - - - 0 - False - False - - - - - - True - 0 - 0.5 - GTK_SHADOW_NONE - - - - True - 0.5 - 0.5 - 1 - 1 - 0 - 0 - 12 - 0 - - - - True - False - 0 - - - - True - True - print outlines (to test printer alignment) - True - GTK_RELIEF_NORMAL - True - False - False - True - - - 0 - False - False - - - - - - True - True - print in reverse (i.e. a mirror image) - True - GTK_RELIEF_NORMAL - True - False - False - True - - - 0 - False - False - - - - - - True - True - print crop marks - True - GTK_RELIEF_NORMAL - True - False - False - True - - - 0 - False - False - - - - - - - - - - True - <b>Options</b> - False - True - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - label_item - - - - - 0 - True - True - - - - - - - diff --git a/data/glade/property-bar.glade b/data/glade/property-bar.glade deleted file mode 100644 index f86d7730..00000000 --- a/data/glade/property-bar.glade +++ /dev/null @@ -1,375 +0,0 @@ - - - - - - - True - window1 - GTK_WINDOW_TOPLEVEL - GTK_WIN_POS_NONE - False - True - False - True - False - False - GDK_WINDOW_TYPE_HINT_NORMAL - GDK_GRAVITY_NORTH_WEST - True - - - - True - GTK_ORIENTATION_HORIZONTAL - GTK_TOOLBAR_ICONS - True - False - - - - True - True - True - False - - - - True - Font family - True - False - - - - True - False - False - - - - - - - False - False - - - - - - True - True - True - False - - - - True - 0.5 - 0.5 - 1 - 1 - 0 - 0 - 6 - 0 - - - - True - Font size - True - 1 - 0 - False - GTK_UPDATE_ALWAYS - False - False - 1 1 250 1 10 0 - - - - - - - False - False - - - - - - True - True - True - True - - - False - False - - - - - - True - Bold - - True - gtk-bold - True - True - False - False - - - False - True - - - - - - True - Italic - - True - gtk-italic - True - True - False - False - - - False - True - - - - - - True - True - True - True - - - False - False - - - - - - True - Left align - - True - gtk-justify-left - True - True - False - False - - - False - True - - - - - - True - Center align - - True - gtk-justify-center - True - True - False - False - text_align_left_radio - - - False - True - - - - - - True - Right align - - True - gtk-justify-right - True - True - False - False - text_align_left_radio - - - False - True - - - - - - True - True - True - True - - - False - False - - - - - - True - True - True - False - - - - True - Text Color - True - False - - - - True - Text color - gl_ui_property_bar_construct_color_combo - 0 - 0 - Sun, 01 May 2005 15:21:11 GMT - - - - - - - False - False - - - - - - True - True - True - False - - - - True - Fill color - True - False - - - - True - Fill color - gl_ui_property_bar_construct_color_combo - 1 - 0 - Sun, 01 May 2005 15:21:18 GMT - - - - - - - False - False - - - - - - True - True - True - False - - - - True - Line color - True - False - - - - True - Line color - gl_ui_property_bar_construct_color_combo - 2 - 0 - Sun, 01 May 2005 15:21:24 GMT - - - - - - - False - False - - - - - - True - True - True - True - - - False - False - - - - - - True - True - True - False - - - - True - Line width - True - 1 - 2 - False - GTK_UPDATE_ALWAYS - False - False - 1 0.25 4 0.25 1 0 - - - - - False - False - - - - - - - diff --git a/data/glade/template-designer.glade b/data/glade/template-designer.glade deleted file mode 100644 index 22a0be78..00000000 --- a/data/glade/template-designer.glade +++ /dev/null @@ -1,3445 +0,0 @@ - - - - - - - - True - window1 - GTK_WINDOW_TOPLEVEL - GTK_WIN_POS_NONE - False - True - False - True - False - False - GDK_WINDOW_TYPE_HINT_NORMAL - GDK_GRAVITY_NORTH_WEST - True - False - - - - 6 - True - True - True - True - GTK_POS_TOP - False - False - - - - True - Welcome to the gLabels Template Designer. - -This dialog will assist you in the creation of a custom gLabels template. - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - False - True - - - - - - True - start_page - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - tab - - - - - - 18 - True - False - 24 - - - - True - Please enter the following identifying information about the template stationery. - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - True - 6 - 2 - False - 12 - 12 - - - - True - Brand/Manufacturer: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 1 - 0 - 1 - fill - - - - - - - True - Part #: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 1 - 1 - 2 - fill - - - - - - - True - False - 12 - - - - True - True - True - True - 0 - - True - * - False - - - 0 - False - False - - - - - - True - (e.g., 8163A) - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - 1 - 2 - 1 - 2 - fill - fill - - - - - - True - False - 12 - - - - True - True - True - True - 0 - - True - * - False - - - 0 - False - False - - - - - - True - (e.g., Avery, Acme, ...) - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - 1 - 2 - 0 - 1 - fill - fill - - - - - - True - Description: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 1 - 4 - 5 - fill - - - - - - - True - True - True - True - 0 - - True - * - False - - - 1 - 2 - 4 - 5 - - - - - - - True - (e.g., "Mailing Labels," "Business Cards," ...) - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 2 - 5 - 6 - fill - - - - - - - True - False - 6 - - - - True - 0.5 - 0.5 - 0 - 0 - - - 0 - False - False - - - - - - True - - False - True - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - True - - - - - 1 - 2 - 2 - 3 - fill - - - - - - 0 - True - True - - - - - False - True - - - - - - True - name_page - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - tab - - - - - - 18 - True - False - 24 - - - - True - Please select the page size of the template stationery. - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - True - 3 - 2 - False - 12 - 12 - - - - True - Page size: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 1 - 0 - 1 - fill - - - - - - - True - Width: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 1 - 1 - 2 - fill - - - - - - - True - Height: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 1 - 2 - 3 - fill - - - - - - - True - False - 0 - - - - True - False - True - - - 0 - False - False - - - - - - - - - 1 - 2 - 0 - 1 - fill - - - - - - True - False - 12 - - - - True - True - 0.00999999977648 - 0 - False - GTK_UPDATE_ALWAYS - False - False - 1 0 100 1 10 0 - - - 0 - False - False - - - - - - True - inches - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - 1 - 2 - 1 - 2 - fill - fill - - - - - - True - False - 12 - - - - True - True - 0.00999999977648 - 0 - False - GTK_UPDATE_ALWAYS - False - False - 1 0 100 1 10 0 - - - 0 - False - False - - - - - - True - inches - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - 1 - 2 - 2 - 3 - fill - fill - - - - - 0 - False - False - - - - - False - True - - - - - - True - pg_size_page - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - tab - - - - - - 18 - True - False - 24 - - - - True - Please select the basic shape of the labels or cards. - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - True - False - 6 - - - - True - True - Rectangular or square (can have rounded corners) - True - GTK_RELIEF_NORMAL - True - False - False - True - - - 0 - False - False - - - - - - True - True - Round - True - GTK_RELIEF_NORMAL - True - False - False - True - shape_rect_radio - - - 0 - False - False - - - - - - True - True - CD/DVD (including credit card CDs) - True - GTK_RELIEF_NORMAL - True - False - False - True - shape_rect_radio - - - 0 - False - False - - - - - 0 - True - True - - - - - False - True - - - - - - True - shape_page - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - tab - - - - - - 18 - True - False - 24 - - - - True - Please enter the following size parameters of a single label or card in your template. - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - True - False - 12 - - - - True - 6 - 3 - False - 12 - 12 - - - - True - 1. Width: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 1 - 0 - 1 - fill - - - - - - - True - 2. Height: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 1 - 1 - 2 - fill - - - - - - - True - 3. Round (radius of corner): - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 1 - 2 - 3 - fill - - - - - - - True - 4. Horiz. waste (overprint allowed): - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 1 - 3 - 4 - fill - - - - - - - True - inches - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 2 - 3 - 0 - 1 - fill - - - - - - - True - inches - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 2 - 3 - 1 - 2 - fill - - - - - - - True - inches - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 2 - 3 - 2 - 3 - fill - - - - - - - True - inches - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 2 - 3 - 3 - 4 - fill - - - - - - - True - True - 0.00999999977648 - 0 - False - GTK_UPDATE_ALWAYS - False - False - 0 0 100 1 10 0 - - - 1 - 2 - 0 - 1 - - - - - - - True - True - 0.00999999977648 - 0 - False - GTK_UPDATE_ALWAYS - False - False - 0 0 100 1 10 0 - - - 1 - 2 - 1 - 2 - - - - - - - True - True - 0.00999999977648 - 0 - False - GTK_UPDATE_ALWAYS - False - False - 0 0 100 1 10 0 - - - 1 - 2 - 2 - 3 - - - - - - - True - True - 0.00999999977648 - 0 - False - GTK_UPDATE_ALWAYS - False - False - 0 0 100 1 10 0 - - - 1 - 2 - 3 - 4 - - - - - - - True - 6. Margin - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 1 - 5 - 6 - fill - - - - - - - True - True - 0.00999999977648 - 0 - False - GTK_UPDATE_ALWAYS - False - False - 0 0 100 1 10 0 - - - 1 - 2 - 5 - 6 - - - - - - - True - inches - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 2 - 3 - 5 - 6 - fill - - - - - - - True - True - 0.00999999977648 - 0 - False - GTK_UPDATE_ALWAYS - False - False - 0 0 100 1 10 0 - - - 1 - 2 - 4 - 5 - - - - - - - True - inches - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 2 - 3 - 4 - 5 - fill - - - - - - - True - 5. Vert. waste (overprint allowed): - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 1 - 4 - 5 - fill - - - - - - 0 - False - False - - - - - - True - 1 - 0 - 0 - 0 - - - 0 - True - True - - - - - 0 - False - False - - - - - False - True - - - - - - True - rect_size_page - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - tab - - - - - - 18 - True - False - 24 - - - - True - Please enter the following size parameters of a single label in your template. - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - True - False - 12 - - - - True - 3 - 3 - False - 12 - 12 - - - - True - 1. Radius: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 1 - 0 - 1 - fill - - - - - - - True - 2. Waste (overprint allowed): - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 1 - 1 - 2 - fill - - - - - - - True - True - 0.00999999977648 - 0 - False - GTK_UPDATE_ALWAYS - False - False - 0 0 100 1 10 0 - - - 1 - 2 - 0 - 1 - - - - - - - True - True - 0.00999999977648 - 0 - False - GTK_UPDATE_ALWAYS - False - False - 0 0 100 1 10 0 - - - 1 - 2 - 1 - 2 - - - - - - - True - inches - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 2 - 3 - 0 - 1 - fill - - - - - - - True - inches - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 2 - 3 - 1 - 2 - fill - - - - - - - True - 3. Margin - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 1 - 2 - 3 - fill - - - - - - - True - inches - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 2 - 3 - 2 - 3 - fill - - - - - - - True - True - 0.00999999977648 - 0 - False - GTK_UPDATE_ALWAYS - False - False - 0 0 100 1 10 0 - - - 1 - 2 - 2 - 3 - - - - - - 0 - False - False - - - - - - True - 1 - 0 - 0 - 0 - - - 0 - True - True - - - - - 0 - False - False - - - - - False - True - - - - - - True - round_size_page - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - tab - - - - - - 18 - True - False - 24 - - - - True - Please enter the following size parameters of a single label in your template. - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - True - False - 12 - - - - True - 6 - 3 - False - 12 - 12 - - - - True - 1. Outer radius: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 1 - 0 - 1 - fill - - - - - - - True - 2. Inner radius: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 1 - 1 - 2 - fill - - - - - - - True - 3. Clipping width: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 1 - 2 - 3 - fill - - - - - - - True - 4. Clipping height: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 1 - 3 - 4 - fill - - - - - - - True - 5. Waste (overprint allowed): - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 1 - 4 - 5 - fill - - - - - - - True - True - 0.00999999977648 - 0 - False - GTK_UPDATE_ALWAYS - False - False - 0 0 100 1 10 0 - - - 1 - 2 - 0 - 1 - - - - - - - True - True - 0.00999999977648 - 0 - False - GTK_UPDATE_ALWAYS - False - False - 0 0 100 1 10 0 - - - 1 - 2 - 1 - 2 - - - - - - - True - True - 0.00999999977648 - 0 - False - GTK_UPDATE_ALWAYS - False - False - 0 0 100 1 10 0 - - - 1 - 2 - 2 - 3 - - - - - - - True - True - 0.00999999977648 - 0 - False - GTK_UPDATE_ALWAYS - False - False - 0 0 100 1 10 0 - - - 1 - 2 - 3 - 4 - - - - - - - True - True - 0.00999999977648 - 0 - False - GTK_UPDATE_ALWAYS - False - False - 0 0 100 1 10 0 - - - 1 - 2 - 4 - 5 - - - - - - - True - inches - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 2 - 3 - 0 - 1 - fill - - - - - - - True - inches - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 2 - 3 - 1 - 2 - fill - - - - - - - True - inches - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 2 - 3 - 2 - 3 - fill - - - - - - - True - inches - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 2 - 3 - 3 - 4 - fill - - - - - - - True - inches - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 2 - 3 - 4 - 5 - fill - - - - - - - True - 6. Margin - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 1 - 5 - 6 - fill - - - - - - - True - inches - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 2 - 3 - 5 - 6 - fill - - - - - - - True - True - 0.00999999977648 - 0 - False - GTK_UPDATE_ALWAYS - False - False - 0 0 100 1 10 0 - - - 1 - 2 - 5 - 6 - - - - - - 0 - False - False - - - - - - True - 1 - 0 - 0 - 0 - - - 0 - True - True - - - - - 0 - False - False - - - - - False - True - - - - - - True - cd_size_page - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - tab - - - - - - 18 - True - False - 24 - - - - True - How many layouts will your template contain? - -A layout is a set of labels or cards that can be arranged in a simple grid. -Most templates only need one layout, as in the first example. -The second example illustrates when two layouts are needed. - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - True - False - 12 - - - - True - False - 0 - - - - True - 0.5 - 0.5 - 0 - 0 - - - 0 - True - True - - - - - - True - Templates needing only -one layout. - False - False - GTK_JUSTIFY_CENTER - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - 0 - True - True - - - - - - True - False - 0 - - - - True - 0.5 - 0.5 - 0 - 0 - - - 0 - True - True - - - - - - True - Templates needing -two layouts. - False - False - GTK_JUSTIFY_CENTER - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - 0 - True - True - - - - - 0 - False - False - - - - - - True - False - 12 - - - - True - Number of layouts: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - True - True - 0.10000000149 - 0 - False - GTK_UPDATE_ALWAYS - False - False - 1 1 2 1 1 0 - - - 0 - False - False - - - - - 0 - False - False - - - - - False - True - - - - - - True - nlayouts_page - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - tab - - - - - - 18 - True - False - 12 - - - - True - Please enter the following layout information. - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - True - False - 18 - - - - True - 7 - 4 - False - 6 - 12 - - - - True - Layout #1 - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 2 - 0 - 1 - fill - - - - - - - True - Layout #2 - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 2 - 3 - 0 - 1 - fill - - - - - - - True - Number across (nx): - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 1 - 1 - 2 - fill - - - - - - - True - Number down (ny): - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 1 - 2 - 3 - fill - - - - - - - True - Distance from left edge (x0): - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 1 - 3 - 4 - fill - - - - - - - True - Distance from top edge (y0): - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 1 - 4 - 5 - fill - - - - - - - True - Horizontal pitch (dx): - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 1 - 5 - 6 - fill - - - - - - - True - Vertical pitch (dy): - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 1 - 6 - 7 - fill - - - - - - - True - inches - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 3 - 4 - 3 - 4 - fill - - - - - - - True - inches - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 3 - 4 - 4 - 5 - fill - - - - - - - True - inches - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 3 - 4 - 5 - 6 - fill - - - - - - - True - inches - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 3 - 4 - 6 - 7 - fill - - - - - - - True - True - 0.00999999977648 - 0 - False - GTK_UPDATE_ALWAYS - False - False - 1 1 100 1 10 0 - - - 1 - 2 - 1 - 2 - - - - - - - True - True - 0.00999999977648 - 0 - False - GTK_UPDATE_ALWAYS - False - False - 1 1 100 1 10 0 - - - 1 - 2 - 2 - 3 - - - - - - - True - True - 0.00999999977648 - 0 - False - GTK_UPDATE_ALWAYS - False - False - 1 1 100 1 10 0 - - - 2 - 3 - 1 - 2 - - - - - - - True - True - 0.00999999977648 - 0 - False - GTK_UPDATE_ALWAYS - False - False - 1 1 100 1 10 0 - - - 2 - 3 - 2 - 3 - - - - - - - True - True - 0.00999999977648 - 0 - False - GTK_UPDATE_ALWAYS - False - False - 0 0 100 1 10 0 - - - 1 - 2 - 3 - 4 - - - - - - - True - True - 0.00999999977648 - 0 - False - GTK_UPDATE_ALWAYS - False - False - 0 0 100 1 10 0 - - - 2 - 3 - 3 - 4 - - - - - - - True - True - 0.00999999977648 - 0 - False - GTK_UPDATE_ALWAYS - False - False - 0 0 100 1 10 0 - - - 1 - 2 - 4 - 5 - - - - - - - True - True - 0.00999999977648 - 0 - False - GTK_UPDATE_ALWAYS - False - False - 0 0 100 1 10 0 - - - 2 - 3 - 4 - 5 - - - - - - - True - True - 0.00999999977648 - 0 - False - GTK_UPDATE_ALWAYS - False - False - 0 0 100 1 10 0 - - - 1 - 2 - 5 - 6 - - - - - - - True - True - 0.00999999977648 - 0 - False - GTK_UPDATE_ALWAYS - False - False - 0 0 100 1 10 0 - - - 2 - 3 - 5 - 6 - - - - - - - True - True - 0.00999999977648 - 0 - False - GTK_UPDATE_ALWAYS - False - False - 0 0 100 1 10 0 - - - 1 - 2 - 6 - 7 - - - - - - - True - True - 0.00999999977648 - 0 - False - GTK_UPDATE_ALWAYS - False - False - 0 0 100 1 10 0 - - - 2 - 3 - 6 - 7 - - - - - - 0 - False - False - - - - - - True - False - 0 - - - - True - - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - True - True - - - - - - True - False - 6 - - - - True - gl_template_designer_construct_mini_preview - 175 - 200 - Mon, 29 Dec 2003 21:27:10 GMT - - - 0 - True - True - - - - - - 6 - True - True - Print test sheet - True - GTK_RELIEF_NORMAL - True - - - 0 - False - False - - - - - 0 - False - False - - - - - 0 - True - True - - - - - 0 - False - False - - - - - False - True - - - - - - True - layout_page - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - tab - - - - - - True - Congratulations! - -You have completed the gLabels Template Designer. -If you wish to accept and save your design, click "Apply." - -Otherwise, you may click "Cancel" to abandon your design -or "Back" to continue editing this design. - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - False - True - - - - - - True - finish_page - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - tab - - - - - - - diff --git a/data/glade/wdgt-media-select.glade b/data/glade/wdgt-media-select.glade deleted file mode 100644 index 1696bfaa..00000000 --- a/data/glade/wdgt-media-select.glade +++ /dev/null @@ -1,204 +0,0 @@ - - - - - - True - window1 - - - True - - - True - True - 6 - - - True - - - 480 - 320 - True - True - 12 - automatic - automatic - in - - - True - True - False - - - - - 0 - - - - - - - True - Recent templates - - - False - tab - - - - - True - - - True - 12 - 12 - - - True - 6 - - - True - Brand: - - - False - False - 0 - - - - - True - - - False - 1 - - - - - False - False - 0 - - - - - True - 6 - - - True - Page size: - - - False - False - 0 - - - - - True - - - False - 1 - - - - - False - 1 - - - - - True - 6 - - - True - Category: - - - False - False - 0 - - - - - True - - - False - 1 - - - - - False - 2 - - - - - False - 0 - - - - - 480 - 320 - True - True - 12 - automatic - automatic - in - - - True - True - False - - - - - 1 - - - - - 1 - - - - - True - Search all templates - - - 1 - False - tab - - - - - 0 - - - - - - diff --git a/data/glade/wdgt-rotate-label.glade b/data/glade/wdgt-rotate-label.glade deleted file mode 100644 index aa48b50a..00000000 --- a/data/glade/wdgt-rotate-label.glade +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - True - window1 - - - True - 6 - 6 - - - Rotate - True - True - False - True - True - - - False - False - 0 - - - - - True - - - 1 - - - - - - diff --git a/data/icons/16x16/Makefile.am b/data/icons/16x16/Makefile.am new file mode 100644 index 00000000..6b40ab3b --- /dev/null +++ b/data/icons/16x16/Makefile.am @@ -0,0 +1,40 @@ + +size = 16x16 +appiconsdir = $(datadir)/icons/hicolor/$(size)/apps +actioniconsdir = $(datadir)/$(GLABELS_BRANCH)/icons/hicolor/$(size)/actions + +appicons_DATA = \ + apps/glabels-3.0.png + +actionicons_DATA = \ + actions/glabels-align-bottom.png \ + actions/glabels-align-hcenter.png \ + actions/glabels-align-left.png \ + actions/glabels-align-right.png \ + actions/glabels-align-top.png \ + actions/glabels-align-vcenter.png \ + actions/glabels-arrow.png \ + actions/glabels-barcode.png \ + actions/glabels-box.png \ + actions/glabels-bucket-fill.png \ + actions/glabels-center-horiz.png \ + actions/glabels-center-vert.png \ + actions/glabels-ellipse.png \ + actions/glabels-flip-horiz.png \ + actions/glabels-flip-vert.png \ + actions/glabels-image.png \ + actions/glabels-line.png \ + actions/glabels-merge.png \ + actions/glabels-object-properties.png \ + actions/glabels-order-bottom.png \ + actions/glabels-order-top.png \ + actions/glabels-pencil.png \ + actions/glabels-rotate-left.png \ + actions/glabels-rotate-right.png \ + actions/glabels-text.png + +noinst_DATA = + +EXTRA_DIST = $(appicons_DATA) \ + $(actionicons_DATA) \ + $(noinst_DATA) diff --git a/data/icons/16x16/Makefile.in b/data/icons/16x16/Makefile.in new file mode 100644 index 00000000..2c7a0f61 --- /dev/null +++ b/data/icons/16x16/Makefile.in @@ -0,0 +1,539 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = data/icons/16x16 +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ +SOURCES = +DIST_SOURCES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__installdirs = "$(DESTDIR)$(actioniconsdir)" \ + "$(DESTDIR)$(appiconsdir)" +DATA = $(actionicons_DATA) $(appicons_DATA) $(noinst_DATA) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ALL_LINGUAS = @ALL_LINGUAS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CAIRO_REQUIRED = @CAIRO_REQUIRED@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATADIRNAME = @DATADIRNAME@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@ +DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ +DLLTOOL = @DLLTOOL@ +DOC_USER_FORMATS = @DOC_USER_FORMATS@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GDK_PIXBUF_CSOURCE = @GDK_PIXBUF_CSOURCE@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GLABELS_BRANCH = @GLABELS_BRANCH@ +GLABELS_CFLAGS = @GLABELS_CFLAGS@ +GLABELS_LIBS = @GLABELS_LIBS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ +GLIB_REQUIRED = @GLIB_REQUIRED@ +GMOFILES = @GMOFILES@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTKDOC_MKPDF = @GTKDOC_MKPDF@ +GTKDOC_REBASE = @GTKDOC_REBASE@ +GTK_REQUIRED = @GTK_REQUIRED@ +GTK_UPDATE_ICON_CACHE = @GTK_UPDATE_ICON_CACHE@ +HELP_DIR = @HELP_DIR@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INSTOBJEXT = @INSTOBJEXT@ +INTLLIBS = @INTLLIBS@ +INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ +INTLTOOL_MERGE = @INTLTOOL_MERGE@ +INTLTOOL_PERL = @INTLTOOL_PERL@ +INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBBARCODE_CFLAGS = @LIBBARCODE_CFLAGS@ +LIBBARCODE_LIBS = @LIBBARCODE_LIBS@ +LIBBARCODE_REQUIRED = @LIBBARCODE_REQUIRED@ +LIBEBOOK_CFLAGS = @LIBEBOOK_CFLAGS@ +LIBEBOOK_LIBS = @LIBEBOOK_LIBS@ +LIBEBOOK_REQUIRED = @LIBEBOOK_REQUIRED@ +LIBGLABELS_API_VERSION = @LIBGLABELS_API_VERSION@ +LIBGLABELS_BRANCH = @LIBGLABELS_BRANCH@ +LIBGLABELS_CFLAGS = @LIBGLABELS_CFLAGS@ +LIBGLABELS_LIBS = @LIBGLABELS_LIBS@ +LIBGLBARCODE_API_VERSION = @LIBGLBARCODE_API_VERSION@ +LIBGLBARCODE_BRANCH = @LIBGLBARCODE_BRANCH@ +LIBGLBARCODE_CFLAGS = @LIBGLBARCODE_CFLAGS@ +LIBGLBARCODE_LIBS = @LIBGLBARCODE_LIBS@ +LIBIEC16022_CFLAGS = @LIBIEC16022_CFLAGS@ +LIBIEC16022_LIBS = @LIBIEC16022_LIBS@ +LIBIEC16022_REQUIRED = @LIBIEC16022_REQUIRED@ +LIBOBJS = @LIBOBJS@ +LIBQRENCODE_CFLAGS = @LIBQRENCODE_CFLAGS@ +LIBQRENCODE_LIBS = @LIBQRENCODE_LIBS@ +LIBQRENCODE_REQUIRED = @LIBQRENCODE_REQUIRED@ +LIBRSVG_REQUIRED = @LIBRSVG_REQUIRED@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBXML_REQUIRED = @LIBXML_REQUIRED@ +LIBZINT_CFLAGS = @LIBZINT_CFLAGS@ +LIBZINT_LIBS = @LIBZINT_LIBS@ +LIBZINT_REQUIRED = @LIBZINT_REQUIRED@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MSGFMT = @MSGFMT@ +MSGFMT_OPTS = @MSGFMT_OPTS@ +MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OMF_DIR = @OMF_DIR@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PANGO_REQUIRED = @PANGO_REQUIRED@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +POFILES = @POFILES@ +POSUB = @POSUB@ +PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ +PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +WARN_CFLAGS = @WARN_CFLAGS@ +XGETTEXT = @XGETTEXT@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +size = 16x16 +appiconsdir = $(datadir)/icons/hicolor/$(size)/apps +actioniconsdir = $(datadir)/$(GLABELS_BRANCH)/icons/hicolor/$(size)/actions +appicons_DATA = \ + apps/glabels-3.0.png + +actionicons_DATA = \ + actions/glabels-align-bottom.png \ + actions/glabels-align-hcenter.png \ + actions/glabels-align-left.png \ + actions/glabels-align-right.png \ + actions/glabels-align-top.png \ + actions/glabels-align-vcenter.png \ + actions/glabels-arrow.png \ + actions/glabels-barcode.png \ + actions/glabels-box.png \ + actions/glabels-bucket-fill.png \ + actions/glabels-center-horiz.png \ + actions/glabels-center-vert.png \ + actions/glabels-ellipse.png \ + actions/glabels-flip-horiz.png \ + actions/glabels-flip-vert.png \ + actions/glabels-image.png \ + actions/glabels-line.png \ + actions/glabels-merge.png \ + actions/glabels-object-properties.png \ + actions/glabels-order-bottom.png \ + actions/glabels-order-top.png \ + actions/glabels-pencil.png \ + actions/glabels-rotate-left.png \ + actions/glabels-rotate-right.png \ + actions/glabels-text.png + +noinst_DATA = +EXTRA_DIST = $(appicons_DATA) \ + $(actionicons_DATA) \ + $(noinst_DATA) + +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/icons/16x16/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu data/icons/16x16/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-actioniconsDATA: $(actionicons_DATA) + @$(NORMAL_INSTALL) + test -z "$(actioniconsdir)" || $(MKDIR_P) "$(DESTDIR)$(actioniconsdir)" + @list='$(actionicons_DATA)'; test -n "$(actioniconsdir)" || list=; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(actioniconsdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(actioniconsdir)" || exit $$?; \ + done + +uninstall-actioniconsDATA: + @$(NORMAL_UNINSTALL) + @list='$(actionicons_DATA)'; test -n "$(actioniconsdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + test -n "$$files" || exit 0; \ + echo " ( cd '$(DESTDIR)$(actioniconsdir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(actioniconsdir)" && rm -f $$files +install-appiconsDATA: $(appicons_DATA) + @$(NORMAL_INSTALL) + test -z "$(appiconsdir)" || $(MKDIR_P) "$(DESTDIR)$(appiconsdir)" + @list='$(appicons_DATA)'; test -n "$(appiconsdir)" || list=; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(appiconsdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(appiconsdir)" || exit $$?; \ + done + +uninstall-appiconsDATA: + @$(NORMAL_UNINSTALL) + @list='$(appicons_DATA)'; test -n "$(appiconsdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + test -n "$$files" || exit 0; \ + echo " ( cd '$(DESTDIR)$(appiconsdir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(appiconsdir)" && rm -f $$files +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(DATA) +installdirs: + for dir in "$(DESTDIR)$(actioniconsdir)" "$(DESTDIR)$(appiconsdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-actioniconsDATA install-appiconsDATA + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-actioniconsDATA uninstall-appiconsDATA + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + distclean distclean-generic distclean-libtool distdir dvi \ + dvi-am html html-am info info-am install \ + install-actioniconsDATA install-am install-appiconsDATA \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am uninstall \ + uninstall-actioniconsDATA uninstall-am uninstall-appiconsDATA + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/src/stock-pixmaps/stock_align_bottom_16.png b/data/icons/16x16/actions/glabels-align-bottom.png similarity index 100% rename from src/stock-pixmaps/stock_align_bottom_16.png rename to data/icons/16x16/actions/glabels-align-bottom.png diff --git a/src/stock-pixmaps/stock_align_hcenter_16.png b/data/icons/16x16/actions/glabels-align-hcenter.png similarity index 100% rename from src/stock-pixmaps/stock_align_hcenter_16.png rename to data/icons/16x16/actions/glabels-align-hcenter.png diff --git a/src/stock-pixmaps/stock_align_left_16.png b/data/icons/16x16/actions/glabels-align-left.png similarity index 100% rename from src/stock-pixmaps/stock_align_left_16.png rename to data/icons/16x16/actions/glabels-align-left.png diff --git a/src/stock-pixmaps/stock_align_right_16.png b/data/icons/16x16/actions/glabels-align-right.png similarity index 100% rename from src/stock-pixmaps/stock_align_right_16.png rename to data/icons/16x16/actions/glabels-align-right.png diff --git a/src/stock-pixmaps/stock_align_top_16.png b/data/icons/16x16/actions/glabels-align-top.png similarity index 100% rename from src/stock-pixmaps/stock_align_top_16.png rename to data/icons/16x16/actions/glabels-align-top.png diff --git a/src/stock-pixmaps/stock_align_vcenter_16.png b/data/icons/16x16/actions/glabels-align-vcenter.png similarity index 100% rename from src/stock-pixmaps/stock_align_vcenter_16.png rename to data/icons/16x16/actions/glabels-align-vcenter.png diff --git a/src/stock-pixmaps/stock_arrow_16.png b/data/icons/16x16/actions/glabels-arrow.png similarity index 100% rename from src/stock-pixmaps/stock_arrow_16.png rename to data/icons/16x16/actions/glabels-arrow.png diff --git a/src/stock-pixmaps/stock_barcode_16.png b/data/icons/16x16/actions/glabels-barcode.png similarity index 100% rename from src/stock-pixmaps/stock_barcode_16.png rename to data/icons/16x16/actions/glabels-barcode.png diff --git a/src/stock-pixmaps/stock_box_16.png b/data/icons/16x16/actions/glabels-box.png similarity index 100% rename from src/stock-pixmaps/stock_box_16.png rename to data/icons/16x16/actions/glabels-box.png diff --git a/src/stock-pixmaps/stock_bucket_fill_16.png b/data/icons/16x16/actions/glabels-bucket-fill.png similarity index 100% rename from src/stock-pixmaps/stock_bucket_fill_16.png rename to data/icons/16x16/actions/glabels-bucket-fill.png diff --git a/src/stock-pixmaps/stock_center_horiz_16.png b/data/icons/16x16/actions/glabels-center-horiz.png similarity index 100% rename from src/stock-pixmaps/stock_center_horiz_16.png rename to data/icons/16x16/actions/glabels-center-horiz.png diff --git a/src/stock-pixmaps/stock_center_vert_16.png b/data/icons/16x16/actions/glabels-center-vert.png similarity index 100% rename from src/stock-pixmaps/stock_center_vert_16.png rename to data/icons/16x16/actions/glabels-center-vert.png diff --git a/src/stock-pixmaps/stock_ellipse_16.png b/data/icons/16x16/actions/glabels-ellipse.png similarity index 100% rename from src/stock-pixmaps/stock_ellipse_16.png rename to data/icons/16x16/actions/glabels-ellipse.png diff --git a/src/stock-pixmaps/stock_flip_horiz_16.png b/data/icons/16x16/actions/glabels-flip-horiz.png similarity index 100% rename from src/stock-pixmaps/stock_flip_horiz_16.png rename to data/icons/16x16/actions/glabels-flip-horiz.png diff --git a/src/stock-pixmaps/stock_flip_vert_16.png b/data/icons/16x16/actions/glabels-flip-vert.png similarity index 100% rename from src/stock-pixmaps/stock_flip_vert_16.png rename to data/icons/16x16/actions/glabels-flip-vert.png diff --git a/src/stock-pixmaps/stock_image_16.png b/data/icons/16x16/actions/glabels-image.png similarity index 100% rename from src/stock-pixmaps/stock_image_16.png rename to data/icons/16x16/actions/glabels-image.png diff --git a/src/stock-pixmaps/stock_line_16.png b/data/icons/16x16/actions/glabels-line.png similarity index 100% rename from src/stock-pixmaps/stock_line_16.png rename to data/icons/16x16/actions/glabels-line.png diff --git a/src/stock-pixmaps/stock_merge_16.png b/data/icons/16x16/actions/glabels-merge.png similarity index 100% rename from src/stock-pixmaps/stock_merge_16.png rename to data/icons/16x16/actions/glabels-merge.png diff --git a/src/stock-pixmaps/stock_properties_16.png b/data/icons/16x16/actions/glabels-object-properties.png similarity index 100% rename from src/stock-pixmaps/stock_properties_16.png rename to data/icons/16x16/actions/glabels-object-properties.png diff --git a/src/stock-pixmaps/stock_order_bottom_16.png b/data/icons/16x16/actions/glabels-order-bottom.png similarity index 100% rename from src/stock-pixmaps/stock_order_bottom_16.png rename to data/icons/16x16/actions/glabels-order-bottom.png diff --git a/src/stock-pixmaps/stock_order_top_16.png b/data/icons/16x16/actions/glabels-order-top.png similarity index 100% rename from src/stock-pixmaps/stock_order_top_16.png rename to data/icons/16x16/actions/glabels-order-top.png diff --git a/src/stock-pixmaps/stock_pencil_16.png b/data/icons/16x16/actions/glabels-pencil.png similarity index 100% rename from src/stock-pixmaps/stock_pencil_16.png rename to data/icons/16x16/actions/glabels-pencil.png diff --git a/src/stock-pixmaps/stock_rotate_left_16.png b/data/icons/16x16/actions/glabels-rotate-left.png similarity index 100% rename from src/stock-pixmaps/stock_rotate_left_16.png rename to data/icons/16x16/actions/glabels-rotate-left.png diff --git a/src/stock-pixmaps/stock_rotate_right_16.png b/data/icons/16x16/actions/glabels-rotate-right.png similarity index 100% rename from src/stock-pixmaps/stock_rotate_right_16.png rename to data/icons/16x16/actions/glabels-rotate-right.png diff --git a/src/stock-pixmaps/stock_text_16.png b/data/icons/16x16/actions/glabels-text.png similarity index 100% rename from src/stock-pixmaps/stock_text_16.png rename to data/icons/16x16/actions/glabels-text.png diff --git a/data/icons/16x16/apps/glabels-3.0.png b/data/icons/16x16/apps/glabels-3.0.png new file mode 100644 index 0000000000000000000000000000000000000000..4e244e33140d8444864e3edc71485fc3814b8fe1 GIT binary patch literal 483 zcmV<90UZ8`P)Px#24YJ`L;wH)0002_L%V+f000SaNLh0L01FWS01FWTe`H^g00007bV*G`2ige) z4J8Ww{mNwk00Co3L_t(I%k7e}iW*TAhQDF1Sm@o+9R*QeAWPU-q)25U?8DgD_y~D{ zJd=bJ8L*qi8DmPx#24YJ`L;wH)0002_L%V+f000SaNLh0L01FWS01FWTe`H^g00007bV*G`2ige) z4IvpFFHXMz00MeRL_t(I%k7j)OB`7g$A7n~I^AuVO4(7{VcG|xq;cU&B%6Tw0wLtP zxN_lqiunkWVY;sXVR4)jiF#3a5Nx{X>7%6gnL8+9gO+{|PX$PdoqUJk!|xbQ#l zlOG!WAN4yh`Jni}vcA493kwUM9+GQO6!*;{q9UqUmT8{nnk0!9MWIQOXdK5HhM`_u zTxh%9)-+9ZcXwA77Z;Dem7Cj%dH3#5T-T*sE@RscH#Z4k81U-VYu>*71J`x&eV?nV zE0&gC(&==Vo}Q*ssj#)Rr7J5dCwqH)FMuNe8~AN?brs99n4FxVULPe40~(ESe18bv z_c6vWH8n-GI>6Z2FI1}oTwZ>`bzO?0V0L!ajE|2$?sPhDPEJnV1D6KSEX#< s_?D8n&HVSKY;MzMzOz_Px#24YJ`L;wH)0002_L%V+f000SaNLh0L01FWS01FWTe`H^g00007bV*G`2ige) z4Iev+iWDXQ00MeRL_t(Y$L*9$OB-PnhM&1LiDT1A)Fifvid7n2xDs~-`v;`-zqoQ? ze?@;nUAA4h6fYyzGwO$fXt4?MZCo|{krVg=Hgtn`;FC4xLeCIju;qbwK{WDU( z5$}NE2LZpTm6a8lo}NB<2%_RRP9BMf5>cwt>8L1*R1gFzj$;)Bf%1J{wcBlVetxd% z^|}hfP;G5($;`~m;aw1|%K;xhe!#YEQmGV%VRC&P&~CfT&An!6={>e><2VkNmzT`W zzM|1+FgiL)I-O>HeO)aqEF5ibZ@&cgZUDyj_3h%~BD$_KJUl|NSfJf@DVHlaP7cR$ z&@_#akr6VP9!jM_GMOGOF1}*hHgOy?K0dBhDwW5LM&r%V(a|U1;+BI>r-SEt=(>)G zplKS0VGxGbq*7@#O(TjT04&SGbzSQ9I<;C2-}gB_K1M`1IXO{lYinOz*Bu5h6Dx+n z=H@2-{e76Gh3B;y7%1R4PuSSlptrXd%d)7|K2xo}AfN9em&-9WHpcSuGLw^&v|23= z4-Ylhb%%fw&`cZzL4dC7NtK3Spp-&HFin#!I7ZiXl!8tt#57HO-zN-1c6N5y z-Q8t=ejeZ{aFPI`C}MSWm140#CX-=rZ;wrzgYJmCMA$1fJ(5)s{+wSk@!* z`8?l~T8&`|hT7B7#zia=HAogCGd*O!Q;2`(PrH s0RHq}bYE1uTcmaE|MUm?Uw^y40aKgJg3$4SaR2}S07*qoM6N<$g5BFqO#lD@ literal 0 HcmV?d00001 diff --git a/data/icons/32x32/Makefile.am b/data/icons/32x32/Makefile.am new file mode 100644 index 00000000..c792c3da --- /dev/null +++ b/data/icons/32x32/Makefile.am @@ -0,0 +1,11 @@ + +size = 32x32 +appiconsdir = $(datadir)/icons/hicolor/$(size)/apps + +appicons_DATA = \ + apps/glabels-3.0.png + +noinst_DATA = + +EXTRA_DIST = $(appicons_DATA) \ + $(noinst_DATA) diff --git a/data/glade/Makefile.in b/data/icons/32x32/Makefile.in similarity index 80% rename from data/glade/Makefile.in rename to data/icons/32x32/Makefile.in index 2c82fbd0..ec5387ee 100644 --- a/data/glade/Makefile.in +++ b/data/icons/32x32/Makefile.in @@ -34,16 +34,22 @@ PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ -subdir = data/glade +subdir = data/icons/32x32 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; @@ -67,17 +73,19 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__installdirs = "$(DESTDIR)$(gladedir)" -DATA = $(glade_DATA) +am__installdirs = "$(DESTDIR)$(appiconsdir)" +DATA = $(appicons_DATA) $(noinst_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ +CAIRO_REQUIRED = @CAIRO_REQUIRED@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ @@ -91,6 +99,7 @@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@ DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ +DLLTOOL = @DLLTOOL@ DOC_USER_FORMATS = @DOC_USER_FORMATS@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ @@ -100,17 +109,23 @@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ +GDK_PIXBUF_CSOURCE = @GDK_PIXBUF_CSOURCE@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GLABELS_BRANCH = @GLABELS_BRANCH@ GLABELS_CFLAGS = @GLABELS_CFLAGS@ GLABELS_LIBS = @GLABELS_LIBS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ GLIB_REQUIRED = @GLIB_REQUIRED@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ GTKDOC_CHECK = @GTKDOC_CHECK@ +GTKDOC_MKPDF = @GTKDOC_MKPDF@ +GTKDOC_REBASE = @GTKDOC_REBASE@ GTK_REQUIRED = @GTK_REQUIRED@ -HAVE_XML_PARSE_HUGE = @HAVE_XML_PARSE_HUGE@ +GTK_UPDATE_ICON_CACHE = @GTK_UPDATE_ICON_CACHE@ HELP_DIR = @HELP_DIR@ HTML_DIR = @HTML_DIR@ INSTALL = @INSTALL@ @@ -126,31 +141,45 @@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ +LIBBARCODE_CFLAGS = @LIBBARCODE_CFLAGS@ +LIBBARCODE_LIBS = @LIBBARCODE_LIBS@ +LIBBARCODE_REQUIRED = @LIBBARCODE_REQUIRED@ LIBEBOOK_CFLAGS = @LIBEBOOK_CFLAGS@ LIBEBOOK_LIBS = @LIBEBOOK_LIBS@ LIBEBOOK_REQUIRED = @LIBEBOOK_REQUIRED@ +LIBGLABELS_API_VERSION = @LIBGLABELS_API_VERSION@ +LIBGLABELS_BRANCH = @LIBGLABELS_BRANCH@ LIBGLABELS_CFLAGS = @LIBGLABELS_CFLAGS@ LIBGLABELS_LIBS = @LIBGLABELS_LIBS@ -LIBGLABELS_VERSION_INFO = @LIBGLABELS_VERSION_INFO@ -LIBGLADE_REQUIRED = @LIBGLADE_REQUIRED@ -LIBGNOMEUI_REQUIRED = @LIBGNOMEUI_REQUIRED@ -LIBGNOME_REQUIRED = @LIBGNOME_REQUIRED@ +LIBGLBARCODE_API_VERSION = @LIBGLBARCODE_API_VERSION@ +LIBGLBARCODE_BRANCH = @LIBGLBARCODE_BRANCH@ +LIBGLBARCODE_CFLAGS = @LIBGLBARCODE_CFLAGS@ +LIBGLBARCODE_LIBS = @LIBGLBARCODE_LIBS@ +LIBIEC16022_CFLAGS = @LIBIEC16022_CFLAGS@ +LIBIEC16022_LIBS = @LIBIEC16022_LIBS@ +LIBIEC16022_REQUIRED = @LIBIEC16022_REQUIRED@ LIBOBJS = @LIBOBJS@ +LIBQRENCODE_CFLAGS = @LIBQRENCODE_CFLAGS@ +LIBQRENCODE_LIBS = @LIBQRENCODE_LIBS@ +LIBQRENCODE_REQUIRED = @LIBQRENCODE_REQUIRED@ +LIBRSVG_REQUIRED = @LIBRSVG_REQUIRED@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_REQUIRED = @LIBXML_REQUIRED@ +LIBZINT_CFLAGS = @LIBZINT_CFLAGS@ +LIBZINT_LIBS = @LIBZINT_LIBS@ +LIBZINT_REQUIRED = @LIBZINT_REQUIRED@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ -MYGAL_CFLAGS = @MYGAL_CFLAGS@ -MYGAL_LIBS = @MYGAL_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ @@ -163,9 +192,13 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PANGO_REQUIRED = @PANGO_REQUIRED@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ @@ -175,18 +208,15 @@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ -UPDATE_DESKTOP_DATABASE = @UPDATE_DESKTOP_DATABASE@ -UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ XGETTEXT = @XGETTEXT@ -XML_PARSE_HUGE_CFLAGS = @XML_PARSE_HUGE_CFLAGS@ -XML_PARSE_HUGE_LIBS = @XML_PARSE_HUGE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ @@ -206,6 +236,7 @@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ @@ -219,7 +250,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -235,19 +265,15 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -gladedir = $(datadir)/glabels/glade/ -glade_DATA = \ - object-editor.glade \ - prefs-dialog.glade \ - template-designer.glade \ - merge-properties-dialog.glade \ - property-bar.glade \ - print-custom-widget.glade \ - wdgt-media-select.glade \ - wdgt-rotate-label.glade \ - new-label-dialog.glade - -EXTRA_DIST = $(glade_DATA) +size = 32x32 +appiconsdir = $(datadir)/icons/hicolor/$(size)/apps +appicons_DATA = \ + apps/glabels-3.0.png + +noinst_DATA = +EXTRA_DIST = $(appicons_DATA) \ + $(noinst_DATA) + all: all-am .SUFFIXES: @@ -260,9 +286,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/glade/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/icons/32x32/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu data/glade/Makefile + $(AUTOMAKE) --gnu data/icons/32x32/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -287,26 +313,26 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -install-gladeDATA: $(glade_DATA) +install-appiconsDATA: $(appicons_DATA) @$(NORMAL_INSTALL) - test -z "$(gladedir)" || $(MKDIR_P) "$(DESTDIR)$(gladedir)" - @list='$(glade_DATA)'; test -n "$(gladedir)" || list=; \ + test -z "$(appiconsdir)" || $(MKDIR_P) "$(DESTDIR)$(appiconsdir)" + @list='$(appicons_DATA)'; test -n "$(appiconsdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(gladedir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(gladedir)" || exit $$?; \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(appiconsdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(appiconsdir)" || exit $$?; \ done -uninstall-gladeDATA: +uninstall-appiconsDATA: @$(NORMAL_UNINSTALL) - @list='$(glade_DATA)'; test -n "$(gladedir)" || list=; \ + @list='$(appicons_DATA)'; test -n "$(appiconsdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(gladedir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(gladedir)" && rm -f $$files + echo " ( cd '$(DESTDIR)$(appiconsdir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(appiconsdir)" && rm -f $$files tags: TAGS TAGS: @@ -348,7 +374,7 @@ check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: - for dir in "$(DESTDIR)$(gladedir)"; do \ + for dir in "$(DESTDIR)$(appiconsdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am @@ -396,7 +422,7 @@ info: info-am info-am: -install-data-am: install-gladeDATA +install-data-am: install-appiconsDATA install-dvi: install-dvi-am @@ -440,21 +466,21 @@ ps: ps-am ps-am: -uninstall-am: uninstall-gladeDATA +uninstall-am: uninstall-appiconsDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-gladeDATA install-html \ + install-appiconsDATA install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - uninstall uninstall-am uninstall-gladeDATA + uninstall uninstall-am uninstall-appiconsDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/data/icons/32x32/apps/glabels-3.0.png b/data/icons/32x32/apps/glabels-3.0.png new file mode 100644 index 0000000000000000000000000000000000000000..79c36f0f1a0dcd6750a678e532ef128462bc38c0 GIT binary patch literal 1192 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 QdH?_b07*qoM6N<$g5VE4pa1{> literal 0 HcmV?d00001 diff --git a/data/icons/Makefile.am b/data/icons/Makefile.am new file mode 100644 index 00000000..7a9e4f2e --- /dev/null +++ b/data/icons/Makefile.am @@ -0,0 +1,15 @@ + +SUBDIRS = 16x16 22x22 24x24 32x32 48x48 + +gtk_update_icon_cache = $(GTK_UPDATE_ICON_CACHE) -f -t $(datadir)/icons/hicolor + +install-data-hook: update-icon-cache +uninstall-hook: update-icon-cache +update-icon-cache: + @-if test -z "$(DESTDIR)"; then \ + echo "Updating Gtk icon cache."; \ + $(gtk_update_icon_cache); \ + else \ + echo "*** Icon cache not updated. After (un)install, run this:"; \ + echo "*** $(gtk_update_icon_cache)"; \ + fi diff --git a/src/mygal/Makefile.in b/data/icons/Makefile.in similarity index 54% rename from src/mygal/Makefile.in rename to data/icons/Makefile.in index 06ea019d..4168c350 100644 --- a/src/mygal/Makefile.in +++ b/data/icons/Makefile.in @@ -14,7 +14,6 @@ # PARTICULAR PURPOSE. @SET_MAKE@ - VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ @@ -34,51 +33,75 @@ PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ -subdir = src/mygal +subdir = data/icons DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = -LTLIBRARIES = $(noinst_LTLIBRARIES) -libmygal_la_LIBADD = -am_libmygal_la_OBJECTS = widget-color-combo.lo e-colors.lo \ - mygal-combo-box.lo color-palette.lo color-group.lo \ - e-marshal.lo -libmygal_la_OBJECTS = $(am_libmygal_la_OBJECTS) -libmygal_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(libmygal_la_LDFLAGS) $(LDFLAGS) -o $@ -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/depcomp -am__depfiles_maybe = depfiles -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -CCLD = $(CC) -LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ -SOURCES = $(libmygal_la_SOURCES) -DIST_SOURCES = $(libmygal_la_SOURCES) +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ + $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ + distdir ETAGS = etags CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ +CAIRO_REQUIRED = @CAIRO_REQUIRED@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ @@ -92,6 +115,7 @@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@ DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ +DLLTOOL = @DLLTOOL@ DOC_USER_FORMATS = @DOC_USER_FORMATS@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ @@ -101,17 +125,23 @@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ +GDK_PIXBUF_CSOURCE = @GDK_PIXBUF_CSOURCE@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GLABELS_BRANCH = @GLABELS_BRANCH@ GLABELS_CFLAGS = @GLABELS_CFLAGS@ GLABELS_LIBS = @GLABELS_LIBS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ GLIB_REQUIRED = @GLIB_REQUIRED@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ GTKDOC_CHECK = @GTKDOC_CHECK@ +GTKDOC_MKPDF = @GTKDOC_MKPDF@ +GTKDOC_REBASE = @GTKDOC_REBASE@ GTK_REQUIRED = @GTK_REQUIRED@ -HAVE_XML_PARSE_HUGE = @HAVE_XML_PARSE_HUGE@ +GTK_UPDATE_ICON_CACHE = @GTK_UPDATE_ICON_CACHE@ HELP_DIR = @HELP_DIR@ HTML_DIR = @HTML_DIR@ INSTALL = @INSTALL@ @@ -127,31 +157,45 @@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ +LIBBARCODE_CFLAGS = @LIBBARCODE_CFLAGS@ +LIBBARCODE_LIBS = @LIBBARCODE_LIBS@ +LIBBARCODE_REQUIRED = @LIBBARCODE_REQUIRED@ LIBEBOOK_CFLAGS = @LIBEBOOK_CFLAGS@ LIBEBOOK_LIBS = @LIBEBOOK_LIBS@ LIBEBOOK_REQUIRED = @LIBEBOOK_REQUIRED@ +LIBGLABELS_API_VERSION = @LIBGLABELS_API_VERSION@ +LIBGLABELS_BRANCH = @LIBGLABELS_BRANCH@ LIBGLABELS_CFLAGS = @LIBGLABELS_CFLAGS@ LIBGLABELS_LIBS = @LIBGLABELS_LIBS@ -LIBGLABELS_VERSION_INFO = @LIBGLABELS_VERSION_INFO@ -LIBGLADE_REQUIRED = @LIBGLADE_REQUIRED@ -LIBGNOMEUI_REQUIRED = @LIBGNOMEUI_REQUIRED@ -LIBGNOME_REQUIRED = @LIBGNOME_REQUIRED@ +LIBGLBARCODE_API_VERSION = @LIBGLBARCODE_API_VERSION@ +LIBGLBARCODE_BRANCH = @LIBGLBARCODE_BRANCH@ +LIBGLBARCODE_CFLAGS = @LIBGLBARCODE_CFLAGS@ +LIBGLBARCODE_LIBS = @LIBGLBARCODE_LIBS@ +LIBIEC16022_CFLAGS = @LIBIEC16022_CFLAGS@ +LIBIEC16022_LIBS = @LIBIEC16022_LIBS@ +LIBIEC16022_REQUIRED = @LIBIEC16022_REQUIRED@ LIBOBJS = @LIBOBJS@ +LIBQRENCODE_CFLAGS = @LIBQRENCODE_CFLAGS@ +LIBQRENCODE_LIBS = @LIBQRENCODE_LIBS@ +LIBQRENCODE_REQUIRED = @LIBQRENCODE_REQUIRED@ +LIBRSVG_REQUIRED = @LIBRSVG_REQUIRED@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_REQUIRED = @LIBXML_REQUIRED@ +LIBZINT_CFLAGS = @LIBZINT_CFLAGS@ +LIBZINT_LIBS = @LIBZINT_LIBS@ +LIBZINT_REQUIRED = @LIBZINT_REQUIRED@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ -MYGAL_CFLAGS = @MYGAL_CFLAGS@ -MYGAL_LIBS = @MYGAL_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ @@ -164,9 +208,13 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PANGO_REQUIRED = @PANGO_REQUIRED@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ @@ -176,18 +224,15 @@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ -UPDATE_DESKTOP_DATABASE = @UPDATE_DESKTOP_DATABASE@ -UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ XGETTEXT = @XGETTEXT@ -XML_PARSE_HUGE_CFLAGS = @XML_PARSE_HUGE_CFLAGS@ -XML_PARSE_HUGE_LIBS = @XML_PARSE_HUGE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ @@ -207,6 +252,7 @@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ @@ -220,7 +266,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -236,39 +281,11 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -INCLUDES = \ - $(MYGAL_CFLAGS) - -libmygal_la_LDFLAGS = \ - $(MYGAL_LIBS) - -noinst_LTLIBRARIES = libmygal.la -libmygal_la_SOURCES = \ - widget-color-combo.c \ - widget-color-combo.h \ - e-util.h \ - e-colors.c \ - e-colors.h \ - mygal-combo-box.c \ - mygal-combo-box.h \ - color-palette.c \ - color-palette.h \ - color-group.c \ - color-group.h \ - e-marshal.c \ - e-marshal.h - -marshal_sources = \ - e-marshal.c \ - e-marshal.h - -EXTRA_DIST = e-marshal.list -CLEANFILES = $(marshal_sources) -DONT_DIST_SOURCE = $(marshal_sources) -all: all-am +SUBDIRS = 16x16 22x22 24x24 32x32 48x48 +gtk_update_icon_cache = $(GTK_UPDATE_ICON_CACHE) -f -t $(datadir)/icons/hicolor +all: all-recursive .SUFFIXES: -.SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ @@ -278,9 +295,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/mygal/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/icons/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu src/mygal/Makefile + $(AUTOMAKE) --gnu data/icons/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -300,57 +317,82 @@ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): -clean-noinstLTLIBRARIES: - -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done -libmygal.la: $(libmygal_la_OBJECTS) $(libmygal_la_DEPENDENCIES) - $(libmygal_la_LINK) $(libmygal_la_OBJECTS) $(libmygal_la_LIBADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/color-group.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/color-palette.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/e-colors.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/e-marshal.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mygal-combo-box.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/widget-color-combo.Plo@am__quote@ - -.c.o: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< - -.c.obj: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< - mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ @@ -361,10 +403,23 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) mkid -fID $$unique tags: TAGS -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ @@ -383,7 +438,7 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ fi; \ fi ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ @@ -433,22 +488,48 @@ distdir: $(DISTFILES) || exit 1; \ fi; \ done - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$(top_distdir)" distdir="$(distdir)" \ - dist-hook + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done check-am: all-am -check: check-am -all-am: Makefile $(LTLIBRARIES) -installdirs: -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am -installcheck: installcheck-am +installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ @@ -457,7 +538,6 @@ install-strip: mostlyclean-generic: clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) @@ -466,105 +546,103 @@ distclean-generic: maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -clean: clean-am +clean: clean-recursive -clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ - mostlyclean-am +clean-am: clean-generic clean-libtool mostlyclean-am -distclean: distclean-am - -rm -rf ./$(DEPDIR) +distclean: distclean-recursive -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags +distclean-am: clean-am distclean-generic distclean-tags -dvi: dvi-am +dvi: dvi-recursive dvi-am: -html: html-am +html: html-recursive html-am: -info: info-am +info: info-recursive info-am: install-data-am: - -install-dvi: install-dvi-am + @$(NORMAL_INSTALL) + $(MAKE) $(AM_MAKEFLAGS) install-data-hook +install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: -install-html: install-html-am +install-html: install-html-recursive install-html-am: -install-info: install-info-am +install-info: install-info-recursive install-info-am: install-man: -install-pdf: install-pdf-am +install-pdf: install-pdf-recursive install-pdf-am: -install-ps: install-ps-am +install-ps: install-ps-recursive install-ps-am: installcheck-am: -maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) +maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic -mostlyclean: mostlyclean-am +mostlyclean: mostlyclean-recursive -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool +mostlyclean-am: mostlyclean-generic mostlyclean-libtool -pdf: pdf-am +pdf: pdf-recursive pdf-am: -ps: ps-am +ps: ps-recursive ps-am: uninstall-am: - -.MAKE: install-am install-strip - -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstLTLIBRARIES ctags dist-hook \ - distclean distclean-compile distclean-generic \ + @$(NORMAL_INSTALL) + $(MAKE) $(AM_MAKEFLAGS) uninstall-hook +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ + install-am install-data-am install-strip tags-recursive \ + uninstall-am + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am check check-am clean clean-generic clean-libtool \ + ctags ctags-recursive distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ + install-data-am install-data-hook install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs installdirs-am \ + maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am - - -$(libmygal_la_OBJECTS) : $(marshal_sources) - -e-marshal.h: e-marshal.list $(GLIB_GENMARSHAL) - $(GLIB_GENMARSHAL) $< --header --prefix=e_marshal > $@ -e-marshal.c: e-marshal.list $(GLIB_GENMARSHAL) - $(GLIB_GENMARSHAL) $< --body --prefix=e_marshal > $@ - -dist-hook: - for file in $(DONT_DIST_SOURCE) ; do \ - rm -f $(distdir)/$$file ; \ - done + tags tags-recursive uninstall uninstall-am uninstall-hook + + +install-data-hook: update-icon-cache +uninstall-hook: update-icon-cache +update-icon-cache: + @-if test -z "$(DESTDIR)"; then \ + echo "Updating Gtk icon cache."; \ + $(gtk_update_icon_cache); \ + else \ + echo "*** Icon cache not updated. After (un)install, run this:"; \ + echo "*** $(gtk_update_icon_cache)"; \ + fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/data/man/Makefile.am b/data/man/Makefile.am index 34051904..43fc5121 100644 --- a/data/man/Makefile.am +++ b/data/man/Makefile.am @@ -1,6 +1,5 @@ ## Process this file with automake to produce Makefile.in -man_MANS = glabels.1 +man_MANS = glabels-3.1 glabels-3-batch.1 EXTRA_DIST = $(man_MANS) - diff --git a/data/man/Makefile.in b/data/man/Makefile.in index 0cba8c40..da96bca7 100644 --- a/data/man/Makefile.in +++ b/data/man/Makefile.in @@ -36,13 +36,19 @@ host_triplet = @host@ subdir = data/man DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; @@ -74,11 +80,13 @@ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ +CAIRO_REQUIRED = @CAIRO_REQUIRED@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ @@ -92,6 +100,7 @@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@ DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ +DLLTOOL = @DLLTOOL@ DOC_USER_FORMATS = @DOC_USER_FORMATS@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ @@ -101,17 +110,23 @@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ +GDK_PIXBUF_CSOURCE = @GDK_PIXBUF_CSOURCE@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GLABELS_BRANCH = @GLABELS_BRANCH@ GLABELS_CFLAGS = @GLABELS_CFLAGS@ GLABELS_LIBS = @GLABELS_LIBS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ GLIB_REQUIRED = @GLIB_REQUIRED@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ GTKDOC_CHECK = @GTKDOC_CHECK@ +GTKDOC_MKPDF = @GTKDOC_MKPDF@ +GTKDOC_REBASE = @GTKDOC_REBASE@ GTK_REQUIRED = @GTK_REQUIRED@ -HAVE_XML_PARSE_HUGE = @HAVE_XML_PARSE_HUGE@ +GTK_UPDATE_ICON_CACHE = @GTK_UPDATE_ICON_CACHE@ HELP_DIR = @HELP_DIR@ HTML_DIR = @HTML_DIR@ INSTALL = @INSTALL@ @@ -127,31 +142,45 @@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ +LIBBARCODE_CFLAGS = @LIBBARCODE_CFLAGS@ +LIBBARCODE_LIBS = @LIBBARCODE_LIBS@ +LIBBARCODE_REQUIRED = @LIBBARCODE_REQUIRED@ LIBEBOOK_CFLAGS = @LIBEBOOK_CFLAGS@ LIBEBOOK_LIBS = @LIBEBOOK_LIBS@ LIBEBOOK_REQUIRED = @LIBEBOOK_REQUIRED@ +LIBGLABELS_API_VERSION = @LIBGLABELS_API_VERSION@ +LIBGLABELS_BRANCH = @LIBGLABELS_BRANCH@ LIBGLABELS_CFLAGS = @LIBGLABELS_CFLAGS@ LIBGLABELS_LIBS = @LIBGLABELS_LIBS@ -LIBGLABELS_VERSION_INFO = @LIBGLABELS_VERSION_INFO@ -LIBGLADE_REQUIRED = @LIBGLADE_REQUIRED@ -LIBGNOMEUI_REQUIRED = @LIBGNOMEUI_REQUIRED@ -LIBGNOME_REQUIRED = @LIBGNOME_REQUIRED@ +LIBGLBARCODE_API_VERSION = @LIBGLBARCODE_API_VERSION@ +LIBGLBARCODE_BRANCH = @LIBGLBARCODE_BRANCH@ +LIBGLBARCODE_CFLAGS = @LIBGLBARCODE_CFLAGS@ +LIBGLBARCODE_LIBS = @LIBGLBARCODE_LIBS@ +LIBIEC16022_CFLAGS = @LIBIEC16022_CFLAGS@ +LIBIEC16022_LIBS = @LIBIEC16022_LIBS@ +LIBIEC16022_REQUIRED = @LIBIEC16022_REQUIRED@ LIBOBJS = @LIBOBJS@ +LIBQRENCODE_CFLAGS = @LIBQRENCODE_CFLAGS@ +LIBQRENCODE_LIBS = @LIBQRENCODE_LIBS@ +LIBQRENCODE_REQUIRED = @LIBQRENCODE_REQUIRED@ +LIBRSVG_REQUIRED = @LIBRSVG_REQUIRED@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_REQUIRED = @LIBXML_REQUIRED@ +LIBZINT_CFLAGS = @LIBZINT_CFLAGS@ +LIBZINT_LIBS = @LIBZINT_LIBS@ +LIBZINT_REQUIRED = @LIBZINT_REQUIRED@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ -MYGAL_CFLAGS = @MYGAL_CFLAGS@ -MYGAL_LIBS = @MYGAL_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ @@ -164,9 +193,13 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PANGO_REQUIRED = @PANGO_REQUIRED@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ @@ -176,18 +209,15 @@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ -UPDATE_DESKTOP_DATABASE = @UPDATE_DESKTOP_DATABASE@ -UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ XGETTEXT = @XGETTEXT@ -XML_PARSE_HUGE_CFLAGS = @XML_PARSE_HUGE_CFLAGS@ -XML_PARSE_HUGE_LIBS = @XML_PARSE_HUGE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ @@ -207,6 +237,7 @@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ @@ -220,7 +251,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -236,7 +266,7 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -man_MANS = glabels.1 +man_MANS = glabels-3.1 glabels-3-batch.1 EXTRA_DIST = $(man_MANS) all: all-am diff --git a/data/man/glabels-3-batch.1 b/data/man/glabels-3-batch.1 new file mode 100644 index 00000000..d9248d52 --- /dev/null +++ b/data/man/glabels-3-batch.1 @@ -0,0 +1 @@ +.so man1/glabels-3.1 diff --git a/data/man/glabels.1 b/data/man/glabels-3.1 similarity index 93% rename from data/man/glabels.1 rename to data/man/glabels-3.1 index 489b2a42..5b5b4341 100644 --- a/data/man/glabels.1 +++ b/data/man/glabels-3.1 @@ -2,20 +2,20 @@ .SH NAME glabels \- Label and business card creation program for GNOME .SH SYNOPSIS -.B glabels +.B glabels-3 .RI [OPTIONS] .RI [label-filename...] .sp -.B glabels-batch +.B glabels-3-batch .RI [OPTIONS] .RI [label-filename...] .SH DESCRIPTION -.B glabels +.B glabels-3 is a lightweight program for creating labels and business cards for the GNOME desktop environment. It is designed to work with various laser/ink-jet peel-off label and business card sheets that you'll find at most office supply stores. -.B glabels +.B glabels-3 is pre-configured with templates for many of these products. It also provides an interactive template designer for creating new templates according to user specifications. @@ -23,9 +23,9 @@ templates according to user specifications. For full documentation see the \fBgLabels\fR online help. .PP -.B glabels-batch +.B glabels-3-batch is a command line utility to print labels previously prepared with -.B glabels. +.B glabels-3. .SH OPTIONS .TP \fB\-?\fR, \fB\-\-help\fR @@ -62,6 +62,6 @@ seen from the back through glass. .SH FILES The $HOME/.glabels directory contains all user-defined templates. .SH SEE ALSO -The gLabels homepage at . +The gLabels homepage at . .SH AUTHOR Jim Evins diff --git a/data/mime/Makefile.am b/data/mime/Makefile.am index 027c1022..1c71a5e8 100644 --- a/data/mime/Makefile.am +++ b/data/mime/Makefile.am @@ -1,53 +1,16 @@ ## Process this file with automake to produce Makefile.in -keys_in_files=glabels.keys.in -keys_files = $(keys_in_files:.keys.in=.keys) -@INTLTOOL_KEYS_RULE@ - -xml_in_files=glabels.xml.in +xml_in_files=$(GLABELS_BRANCH).xml.in xml_files = $(xml_in_files:.xml.in=.xml) @INTLTOOL_XML_RULE@ -mimedir = $(datadir)/mime-info -mime_DATA = $(keys_files) glabels.mime - -appdir = $(datadir)/application-registry -app_DATA = glabels.applications - -newmimedir = $(datadir)/mime/packages -newmime_DATA = $(xml_files) +mimedir = $(datadir)/mime/packages +mime_DATA = $(xml_files) EXTRA_DIST = \ - $(keys_in_files) \ - $(mime_DATA) \ - $(app_DATA) \ - $(xml_in_files) \ - $(newmime_DATA) - -CLEANFILES = $(keys_files) $(xml_files) - + $(xml_in_files) -install-data-hook: -if ENABLE_UPDATE_MIMEDB -if HAVE_NEW_MIME - $(UPDATE_MIME_DATABASE) "$(DESTDIR)$(datadir)/mime" -endif -endif -if ENABLE_UPDATE_DESKTOPDB -if HAVE_NEWER_MIME - $(UPDATE_DESKTOP_DATABASE) -endif -endif +CLEANFILES = \ + $(xml_files) -uninstall-hook: -if ENABLE_UPDATE_MIMEDB -if HAVE_NEW_MIME - $(UPDATE_MIME_DATABASE) "$(DESTDIR)$(datadir)/mime" -endif -endif -if ENABLE_UPDATE_DESKTOPDB -if HAVE_NEWER_MIME - $(UPDATE_DESKTOP_DATABASE) -endif -endif diff --git a/data/mime/Makefile.in b/data/mime/Makefile.in index 8e95bd13..62a60a81 100644 --- a/data/mime/Makefile.in +++ b/data/mime/Makefile.in @@ -37,13 +37,19 @@ host_triplet = @host@ subdir = data/mime DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; @@ -67,18 +73,19 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__installdirs = "$(DESTDIR)$(appdir)" "$(DESTDIR)$(mimedir)" \ - "$(DESTDIR)$(newmimedir)" -DATA = $(app_DATA) $(mime_DATA) $(newmime_DATA) +am__installdirs = "$(DESTDIR)$(mimedir)" +DATA = $(mime_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ +CAIRO_REQUIRED = @CAIRO_REQUIRED@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ @@ -92,6 +99,7 @@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@ DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ +DLLTOOL = @DLLTOOL@ DOC_USER_FORMATS = @DOC_USER_FORMATS@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ @@ -101,17 +109,23 @@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ +GDK_PIXBUF_CSOURCE = @GDK_PIXBUF_CSOURCE@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GLABELS_BRANCH = @GLABELS_BRANCH@ GLABELS_CFLAGS = @GLABELS_CFLAGS@ GLABELS_LIBS = @GLABELS_LIBS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ GLIB_REQUIRED = @GLIB_REQUIRED@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ GTKDOC_CHECK = @GTKDOC_CHECK@ +GTKDOC_MKPDF = @GTKDOC_MKPDF@ +GTKDOC_REBASE = @GTKDOC_REBASE@ GTK_REQUIRED = @GTK_REQUIRED@ -HAVE_XML_PARSE_HUGE = @HAVE_XML_PARSE_HUGE@ +GTK_UPDATE_ICON_CACHE = @GTK_UPDATE_ICON_CACHE@ HELP_DIR = @HELP_DIR@ HTML_DIR = @HTML_DIR@ INSTALL = @INSTALL@ @@ -127,31 +141,45 @@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ +LIBBARCODE_CFLAGS = @LIBBARCODE_CFLAGS@ +LIBBARCODE_LIBS = @LIBBARCODE_LIBS@ +LIBBARCODE_REQUIRED = @LIBBARCODE_REQUIRED@ LIBEBOOK_CFLAGS = @LIBEBOOK_CFLAGS@ LIBEBOOK_LIBS = @LIBEBOOK_LIBS@ LIBEBOOK_REQUIRED = @LIBEBOOK_REQUIRED@ +LIBGLABELS_API_VERSION = @LIBGLABELS_API_VERSION@ +LIBGLABELS_BRANCH = @LIBGLABELS_BRANCH@ LIBGLABELS_CFLAGS = @LIBGLABELS_CFLAGS@ LIBGLABELS_LIBS = @LIBGLABELS_LIBS@ -LIBGLABELS_VERSION_INFO = @LIBGLABELS_VERSION_INFO@ -LIBGLADE_REQUIRED = @LIBGLADE_REQUIRED@ -LIBGNOMEUI_REQUIRED = @LIBGNOMEUI_REQUIRED@ -LIBGNOME_REQUIRED = @LIBGNOME_REQUIRED@ +LIBGLBARCODE_API_VERSION = @LIBGLBARCODE_API_VERSION@ +LIBGLBARCODE_BRANCH = @LIBGLBARCODE_BRANCH@ +LIBGLBARCODE_CFLAGS = @LIBGLBARCODE_CFLAGS@ +LIBGLBARCODE_LIBS = @LIBGLBARCODE_LIBS@ +LIBIEC16022_CFLAGS = @LIBIEC16022_CFLAGS@ +LIBIEC16022_LIBS = @LIBIEC16022_LIBS@ +LIBIEC16022_REQUIRED = @LIBIEC16022_REQUIRED@ LIBOBJS = @LIBOBJS@ +LIBQRENCODE_CFLAGS = @LIBQRENCODE_CFLAGS@ +LIBQRENCODE_LIBS = @LIBQRENCODE_LIBS@ +LIBQRENCODE_REQUIRED = @LIBQRENCODE_REQUIRED@ +LIBRSVG_REQUIRED = @LIBRSVG_REQUIRED@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_REQUIRED = @LIBXML_REQUIRED@ +LIBZINT_CFLAGS = @LIBZINT_CFLAGS@ +LIBZINT_LIBS = @LIBZINT_LIBS@ +LIBZINT_REQUIRED = @LIBZINT_REQUIRED@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ -MYGAL_CFLAGS = @MYGAL_CFLAGS@ -MYGAL_LIBS = @MYGAL_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ @@ -164,9 +192,13 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PANGO_REQUIRED = @PANGO_REQUIRED@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ @@ -176,18 +208,15 @@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ -UPDATE_DESKTOP_DATABASE = @UPDATE_DESKTOP_DATABASE@ -UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ XGETTEXT = @XGETTEXT@ -XML_PARSE_HUGE_CFLAGS = @XML_PARSE_HUGE_CFLAGS@ -XML_PARSE_HUGE_LIBS = @XML_PARSE_HUGE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ @@ -207,6 +236,7 @@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ @@ -220,7 +250,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -236,24 +265,16 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -keys_in_files = glabels.keys.in -keys_files = $(keys_in_files:.keys.in=.keys) -xml_in_files = glabels.xml.in +xml_in_files = $(GLABELS_BRANCH).xml.in xml_files = $(xml_in_files:.xml.in=.xml) -mimedir = $(datadir)/mime-info -mime_DATA = $(keys_files) glabels.mime -appdir = $(datadir)/application-registry -app_DATA = glabels.applications -newmimedir = $(datadir)/mime/packages -newmime_DATA = $(xml_files) +mimedir = $(datadir)/mime/packages +mime_DATA = $(xml_files) EXTRA_DIST = \ - $(keys_in_files) \ - $(mime_DATA) \ - $(app_DATA) \ - $(xml_in_files) \ - $(newmime_DATA) + $(xml_in_files) + +CLEANFILES = \ + $(xml_files) -CLEANFILES = $(keys_files) $(xml_files) all: all-am .SUFFIXES: @@ -293,26 +314,6 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -install-appDATA: $(app_DATA) - @$(NORMAL_INSTALL) - test -z "$(appdir)" || $(MKDIR_P) "$(DESTDIR)$(appdir)" - @list='$(app_DATA)'; test -n "$(appdir)" || list=; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(appdir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(appdir)" || exit $$?; \ - done - -uninstall-appDATA: - @$(NORMAL_UNINSTALL) - @list='$(app_DATA)'; test -n "$(appdir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(appdir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(appdir)" && rm -f $$files install-mimeDATA: $(mime_DATA) @$(NORMAL_INSTALL) test -z "$(mimedir)" || $(MKDIR_P) "$(DESTDIR)$(mimedir)" @@ -333,26 +334,6 @@ uninstall-mimeDATA: test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(mimedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(mimedir)" && rm -f $$files -install-newmimeDATA: $(newmime_DATA) - @$(NORMAL_INSTALL) - test -z "$(newmimedir)" || $(MKDIR_P) "$(DESTDIR)$(newmimedir)" - @list='$(newmime_DATA)'; test -n "$(newmimedir)" || list=; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(newmimedir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(newmimedir)" || exit $$?; \ - done - -uninstall-newmimeDATA: - @$(NORMAL_UNINSTALL) - @list='$(newmime_DATA)'; test -n "$(newmimedir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(newmimedir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(newmimedir)" && rm -f $$files tags: TAGS TAGS: @@ -394,7 +375,7 @@ check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: - for dir in "$(DESTDIR)$(appdir)" "$(DESTDIR)$(mimedir)" "$(DESTDIR)$(newmimedir)"; do \ + for dir in "$(DESTDIR)$(mimedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am @@ -443,9 +424,8 @@ info: info-am info-am: -install-data-am: install-appDATA install-mimeDATA install-newmimeDATA - @$(NORMAL_INSTALL) - $(MAKE) $(AM_MAKEFLAGS) install-data-hook +install-data-am: install-mimeDATA + install-dvi: install-dvi-am install-dvi-am: @@ -488,36 +468,23 @@ ps: ps-am ps-am: -uninstall-am: uninstall-appDATA uninstall-mimeDATA \ - uninstall-newmimeDATA - @$(NORMAL_INSTALL) - $(MAKE) $(AM_MAKEFLAGS) uninstall-hook -.MAKE: install-am install-data-am install-strip uninstall-am +uninstall-am: uninstall-mimeDATA + +.MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ - install-appDATA install-data install-data-am install-data-hook \ - install-dvi install-dvi-am install-exec install-exec-am \ - install-html install-html-am install-info install-info-am \ - install-man install-mimeDATA install-newmimeDATA install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \ - uninstall-appDATA uninstall-hook uninstall-mimeDATA \ - uninstall-newmimeDATA - -@INTLTOOL_KEYS_RULE@ -@INTLTOOL_XML_RULE@ - -install-data-hook: -@ENABLE_UPDATE_MIMEDB_TRUE@@HAVE_NEW_MIME_TRUE@ $(UPDATE_MIME_DATABASE) "$(DESTDIR)$(datadir)/mime" -@ENABLE_UPDATE_DESKTOPDB_TRUE@@HAVE_NEWER_MIME_TRUE@ $(UPDATE_DESKTOP_DATABASE) + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-mimeDATA \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + uninstall uninstall-am uninstall-mimeDATA -uninstall-hook: -@ENABLE_UPDATE_MIMEDB_TRUE@@HAVE_NEW_MIME_TRUE@ $(UPDATE_MIME_DATABASE) "$(DESTDIR)$(datadir)/mime" -@ENABLE_UPDATE_DESKTOPDB_TRUE@@HAVE_NEWER_MIME_TRUE@ $(UPDATE_DESKTOP_DATABASE) +@INTLTOOL_XML_RULE@ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/data/mime/glabels.xml.in b/data/mime/glabels-3.0.xml.in similarity index 100% rename from data/mime/glabels.xml.in rename to data/mime/glabels-3.0.xml.in diff --git a/data/mime/glabels.applications b/data/mime/glabels.applications deleted file mode 100644 index 1391018e..00000000 --- a/data/mime/glabels.applications +++ /dev/null @@ -1,9 +0,0 @@ -glabels - command=glabels - name=gLabels - can_open_multiple_files=true - expects_uris=false - requires_terminal=false - mime_types=application/x-glabels - uses_gnomevfs=false - diff --git a/data/mime/glabels.keys b/data/mime/glabels.keys deleted file mode 100644 index 9d76d321..00000000 --- a/data/mime/glabels.keys +++ /dev/null @@ -1,24 +0,0 @@ -application/x-glabels: - open=glabels %f - description=gLabels Project File - [ca]description=Fitxer de projecte del gLabels - [cs]description=Projektový soubor gLabels - [da]description=gLabels' projektfil - [de]description=gLabels-Projektdatei - [eo]description=Dosiero de Projekto de gLabels - [es]description=Archivo de projecto gLabels - [fr]description=Fichier de projet gLabels - [it]description=File di progetto di gLabels - [ja]description=gLabels のプロジェクト・ファイル - [ko]description=gLabels 프로젝트 파일 - [pt]description=Propriedades de ficheiro gLabels - [ru]description=Файл проекта gLabels - [sl]description=Datoteka projekta gLabels - [sv]description=gLabels-projektfil - [zh_CN]description=gLabels工程文件 - icon_filename=glabels-application-x-glabels.png - default_action_type=application - category=Documents - short_list_application_ids_for_novice_user_level=glabels - short_list_application_ids_for_intermediate_user_level=glabels - short_list_application_ids_for_advanced_user_level=glabels diff --git a/data/mime/glabels.keys.in b/data/mime/glabels.keys.in deleted file mode 100644 index 596c96c7..00000000 --- a/data/mime/glabels.keys.in +++ /dev/null @@ -1,9 +0,0 @@ -application/x-glabels: - open=glabels %f - _description=gLabels Project File - icon_filename=glabels-application-x-glabels.png - default_action_type=application - category=Documents - short_list_application_ids_for_novice_user_level=glabels - short_list_application_ids_for_intermediate_user_level=glabels - short_list_application_ids_for_advanced_user_level=glabels diff --git a/data/mime/glabels.mime b/data/mime/glabels.mime deleted file mode 100644 index ab2f8cd3..00000000 --- a/data/mime/glabels.mime +++ /dev/null @@ -1,2 +0,0 @@ -application/x-glabels - ext: glabels diff --git a/data/mime/glabels.xml b/data/mime/glabels.xml deleted file mode 100644 index f09cb359..00000000 --- a/data/mime/glabels.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - gLabels Project File - Fitxer de projecte del gLabels - Projektový soubor gLabels - gLabels' projektfil - gLabels-Projektdatei - Dosiero de Projekto de gLabels - Archivo de projecto gLabels - Fichier de projet gLabels - File di progetto di gLabels - gLabels のプロジェクト・ファイル - gLabels 프로젝트 파일 - Propriedades de ficheiro gLabels - Файл проекта gLabels - Datoteka projekta gLabels - gLabels-projektfil - gLabels工程文件 - - - \ No newline at end of file diff --git a/data/pixmaps/Makefile.am b/data/pixmaps/Makefile.am index 4cebb802..59d94c4f 100644 --- a/data/pixmaps/Makefile.am +++ b/data/pixmaps/Makefile.am @@ -1,26 +1,18 @@ ## Process this file with automake to produce Makefile.in -glabels_pixmapsdir = $(datadir)/pixmaps/glabels +glabels_pixmapsdir = $(datadir)/$(GLABELS_BRANCH)/pixmaps glabels_pixmaps_DATA = \ - glabels-splash.png \ - glabels-about-logo.png \ + glabels-logo.png \ + new-select.png \ + new-rotate.png \ + new-confirm.png \ + template-designer.png \ ex-rect-size.png \ + ex-ellipse-size.png \ ex-round-size.png \ ex-cd-size.png \ ex-1layout.png \ ex-2layouts.png -glabels_app_icondir = $(datadir)/pixmaps - -glabels_app_icon_DATA = \ - glabels.png - -glabels_mime_icondir = $(datadir)/pixmaps - -glabels_mime_icon_DATA = \ - glabels-application-x-glabels.png - -EXTRA_DIST = $(glabels_pixmaps_DATA) \ - $(glabels_app_icon_DATA) \ - $(glabels_mime_icon_DATA) +EXTRA_DIST = $(glabels_pixmaps_DATA) diff --git a/data/pixmaps/Makefile.in b/data/pixmaps/Makefile.in index 5946c1d3..e9348b77 100644 --- a/data/pixmaps/Makefile.in +++ b/data/pixmaps/Makefile.in @@ -37,13 +37,19 @@ host_triplet = @host@ subdir = data/pixmaps DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; @@ -67,20 +73,19 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__installdirs = "$(DESTDIR)$(glabels_app_icondir)" \ - "$(DESTDIR)$(glabels_mime_icondir)" \ - "$(DESTDIR)$(glabels_pixmapsdir)" -DATA = $(glabels_app_icon_DATA) $(glabels_mime_icon_DATA) \ - $(glabels_pixmaps_DATA) +am__installdirs = "$(DESTDIR)$(glabels_pixmapsdir)" +DATA = $(glabels_pixmaps_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ +CAIRO_REQUIRED = @CAIRO_REQUIRED@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ @@ -94,6 +99,7 @@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@ DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ +DLLTOOL = @DLLTOOL@ DOC_USER_FORMATS = @DOC_USER_FORMATS@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ @@ -103,17 +109,23 @@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ +GDK_PIXBUF_CSOURCE = @GDK_PIXBUF_CSOURCE@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GLABELS_BRANCH = @GLABELS_BRANCH@ GLABELS_CFLAGS = @GLABELS_CFLAGS@ GLABELS_LIBS = @GLABELS_LIBS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ GLIB_REQUIRED = @GLIB_REQUIRED@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ GTKDOC_CHECK = @GTKDOC_CHECK@ +GTKDOC_MKPDF = @GTKDOC_MKPDF@ +GTKDOC_REBASE = @GTKDOC_REBASE@ GTK_REQUIRED = @GTK_REQUIRED@ -HAVE_XML_PARSE_HUGE = @HAVE_XML_PARSE_HUGE@ +GTK_UPDATE_ICON_CACHE = @GTK_UPDATE_ICON_CACHE@ HELP_DIR = @HELP_DIR@ HTML_DIR = @HTML_DIR@ INSTALL = @INSTALL@ @@ -129,31 +141,45 @@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ +LIBBARCODE_CFLAGS = @LIBBARCODE_CFLAGS@ +LIBBARCODE_LIBS = @LIBBARCODE_LIBS@ +LIBBARCODE_REQUIRED = @LIBBARCODE_REQUIRED@ LIBEBOOK_CFLAGS = @LIBEBOOK_CFLAGS@ LIBEBOOK_LIBS = @LIBEBOOK_LIBS@ LIBEBOOK_REQUIRED = @LIBEBOOK_REQUIRED@ +LIBGLABELS_API_VERSION = @LIBGLABELS_API_VERSION@ +LIBGLABELS_BRANCH = @LIBGLABELS_BRANCH@ LIBGLABELS_CFLAGS = @LIBGLABELS_CFLAGS@ LIBGLABELS_LIBS = @LIBGLABELS_LIBS@ -LIBGLABELS_VERSION_INFO = @LIBGLABELS_VERSION_INFO@ -LIBGLADE_REQUIRED = @LIBGLADE_REQUIRED@ -LIBGNOMEUI_REQUIRED = @LIBGNOMEUI_REQUIRED@ -LIBGNOME_REQUIRED = @LIBGNOME_REQUIRED@ +LIBGLBARCODE_API_VERSION = @LIBGLBARCODE_API_VERSION@ +LIBGLBARCODE_BRANCH = @LIBGLBARCODE_BRANCH@ +LIBGLBARCODE_CFLAGS = @LIBGLBARCODE_CFLAGS@ +LIBGLBARCODE_LIBS = @LIBGLBARCODE_LIBS@ +LIBIEC16022_CFLAGS = @LIBIEC16022_CFLAGS@ +LIBIEC16022_LIBS = @LIBIEC16022_LIBS@ +LIBIEC16022_REQUIRED = @LIBIEC16022_REQUIRED@ LIBOBJS = @LIBOBJS@ +LIBQRENCODE_CFLAGS = @LIBQRENCODE_CFLAGS@ +LIBQRENCODE_LIBS = @LIBQRENCODE_LIBS@ +LIBQRENCODE_REQUIRED = @LIBQRENCODE_REQUIRED@ +LIBRSVG_REQUIRED = @LIBRSVG_REQUIRED@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_REQUIRED = @LIBXML_REQUIRED@ +LIBZINT_CFLAGS = @LIBZINT_CFLAGS@ +LIBZINT_LIBS = @LIBZINT_LIBS@ +LIBZINT_REQUIRED = @LIBZINT_REQUIRED@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ -MYGAL_CFLAGS = @MYGAL_CFLAGS@ -MYGAL_LIBS = @MYGAL_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ @@ -166,9 +192,13 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PANGO_REQUIRED = @PANGO_REQUIRED@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ @@ -178,18 +208,15 @@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ -UPDATE_DESKTOP_DATABASE = @UPDATE_DESKTOP_DATABASE@ -UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ XGETTEXT = @XGETTEXT@ -XML_PARSE_HUGE_CFLAGS = @XML_PARSE_HUGE_CFLAGS@ -XML_PARSE_HUGE_LIBS = @XML_PARSE_HUGE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ @@ -209,6 +236,7 @@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ @@ -222,7 +250,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -238,28 +265,21 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -glabels_pixmapsdir = $(datadir)/pixmaps/glabels +glabels_pixmapsdir = $(datadir)/$(GLABELS_BRANCH)/pixmaps glabels_pixmaps_DATA = \ - glabels-splash.png \ - glabels-about-logo.png \ + glabels-logo.png \ + new-select.png \ + new-rotate.png \ + new-confirm.png \ + template-designer.png \ ex-rect-size.png \ + ex-ellipse-size.png \ ex-round-size.png \ ex-cd-size.png \ ex-1layout.png \ ex-2layouts.png -glabels_app_icondir = $(datadir)/pixmaps -glabels_app_icon_DATA = \ - glabels.png - -glabels_mime_icondir = $(datadir)/pixmaps -glabels_mime_icon_DATA = \ - glabels-application-x-glabels.png - -EXTRA_DIST = $(glabels_pixmaps_DATA) \ - $(glabels_app_icon_DATA) \ - $(glabels_mime_icon_DATA) - +EXTRA_DIST = $(glabels_pixmaps_DATA) all: all-am .SUFFIXES: @@ -299,46 +319,6 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -install-glabels_app_iconDATA: $(glabels_app_icon_DATA) - @$(NORMAL_INSTALL) - test -z "$(glabels_app_icondir)" || $(MKDIR_P) "$(DESTDIR)$(glabels_app_icondir)" - @list='$(glabels_app_icon_DATA)'; test -n "$(glabels_app_icondir)" || list=; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(glabels_app_icondir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(glabels_app_icondir)" || exit $$?; \ - done - -uninstall-glabels_app_iconDATA: - @$(NORMAL_UNINSTALL) - @list='$(glabels_app_icon_DATA)'; test -n "$(glabels_app_icondir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(glabels_app_icondir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(glabels_app_icondir)" && rm -f $$files -install-glabels_mime_iconDATA: $(glabels_mime_icon_DATA) - @$(NORMAL_INSTALL) - test -z "$(glabels_mime_icondir)" || $(MKDIR_P) "$(DESTDIR)$(glabels_mime_icondir)" - @list='$(glabels_mime_icon_DATA)'; test -n "$(glabels_mime_icondir)" || list=; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(glabels_mime_icondir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(glabels_mime_icondir)" || exit $$?; \ - done - -uninstall-glabels_mime_iconDATA: - @$(NORMAL_UNINSTALL) - @list='$(glabels_mime_icon_DATA)'; test -n "$(glabels_mime_icondir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(glabels_mime_icondir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(glabels_mime_icondir)" && rm -f $$files install-glabels_pixmapsDATA: $(glabels_pixmaps_DATA) @$(NORMAL_INSTALL) test -z "$(glabels_pixmapsdir)" || $(MKDIR_P) "$(DESTDIR)$(glabels_pixmapsdir)" @@ -400,7 +380,7 @@ check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: - for dir in "$(DESTDIR)$(glabels_app_icondir)" "$(DESTDIR)$(glabels_mime_icondir)" "$(DESTDIR)$(glabels_pixmapsdir)"; do \ + for dir in "$(DESTDIR)$(glabels_pixmapsdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am @@ -448,8 +428,7 @@ info: info-am info-am: -install-data-am: install-glabels_app_iconDATA \ - install-glabels_mime_iconDATA install-glabels_pixmapsDATA +install-data-am: install-glabels_pixmapsDATA install-dvi: install-dvi-am @@ -493,8 +472,7 @@ ps: ps-am ps-am: -uninstall-am: uninstall-glabels_app_iconDATA \ - uninstall-glabels_mime_iconDATA uninstall-glabels_pixmapsDATA +uninstall-am: uninstall-glabels_pixmapsDATA .MAKE: install-am install-strip @@ -502,15 +480,13 @@ uninstall-am: uninstall-glabels_app_iconDATA \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-glabels_app_iconDATA \ - install-glabels_mime_iconDATA install-glabels_pixmapsDATA \ + install-exec install-exec-am install-glabels_pixmapsDATA \ install-html install-html-am install-info install-info-am \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ - ps ps-am uninstall uninstall-am uninstall-glabels_app_iconDATA \ - uninstall-glabels_mime_iconDATA uninstall-glabels_pixmapsDATA + ps ps-am uninstall uninstall-am uninstall-glabels_pixmapsDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/data/pixmaps/ex-ellipse-size.png b/data/pixmaps/ex-ellipse-size.png new file mode 100644 index 0000000000000000000000000000000000000000..456ec2eb19e1a03dfcc2eec4fc2dc33202c6ffaa GIT binary patch literal 16779 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 oa4gh($ literal 0 HcmV?d00001 diff --git a/data/pixmaps/glabels-about-logo.png b/data/pixmaps/glabels-about-logo.png deleted file mode 100644 index 9997c67ed0e712f554786e21cbf6b651ae6b17a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7734 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 diff --git a/data/pixmaps/glabels-application-x-glabels.png b/data/pixmaps/glabels-application-x-glabels.png deleted file mode 100644 index 59c749f372d2cf7bc21f01dba15f4d79658165d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2573 zcmV+o3i9=dP)8`G5}RoRVpJPhC+OB&j@i(S9EkV zQ>IK|)22;SR#pNu0LegXBoa~TI6^0oot;e}5a7_E1OF2e_agcE1vE4?Fm>uwIy*Z# zapDAdd3gZe1#SR6fMV@u3uRYV*RWDSQ55|uD%vUC59JC5gQBjkPPgax`^BC;dxY2P z6~H7M(n-3}Qs`bqOM&5vIgMIcS^!WKg`}h;X3Utujvd=cNJzMfLpnvA9N#2xYwjEE z3gK`VfKVtzI2w$7?Cft0xD#NoPGkrMgZTY^PM_}wT-3|5JE6_?pzc_ ziBM&RmdlaatlTYa@;b7s9Ovc>LOhnko34gVer?g^-|s-XetHz<~pd9zEKTfGGk_z+_L#9y5E(4BBW@D^8?& zWKA!_hE}OGa^`WZqOSv?P#+#oG<|)21Ofrd%a26t^lizKCHeI91W8OB!>wC>KK=9* zix)2jr*%LGsHmtQCnpCG6ciK!uy=2<{@q9=^DySBW9SYZEFmv%kp#%lTQ_uC~}oEmTqfLdvk2$e)gp3`h9 z3YKQ zht==cu}T1ZzC{dFfj}alkei!JAkfvng;hJ3mL4KE*N5>O;F#m)Y9%;&^e8zw^Gtes z8p0vL!r2MHz_F(I}(tpkl9;uKFW39X&)pGK@eTg{Gtz7D|ZRhw;wHvIMlre#jzt8?|d z^@k7jcC8Pn2l(5!JK4AU7&XVgkaU`?UbWeAoV4`u{P-mw6DOt8dfm_IlV>@&zXq_J ziI+b+kBO5~d3Wn>zWm}c@$qpy_d@P~UPwzH&$P@*x&t0bOXgbR4I8jW(vo>&%g=c3 zMISZCzmRl;$=Y=*cxYTAZ*F{#j`jd6pI@l!q#t)vQq>L9<%`z{cHiaZ*X{h}Pah3v zeBq)j0P3%(bvn2I-YRalI#hF0+n|805!b*Hz3Mx)TmDWd z#F4y|m^6x+voi^H-{tK;f5euze!Cb7l6h)z|^ps>{DC2yvql8!1 zE@kH9)A_-yO#boyK0S(31n&0q0;;!$659E>v+;P`#EtOs$G3llH#P>3$IZNjv!&-& zuiDJ(zutz+f1Lj90zy>+KuVwpCtPyOiF$eUu(J0YH1Z z5nU;TKKl0&Ry;eO-@W-$MvU-s%iqcQb5|u}TFAG&@i%HeyTC1f2iKc#0;&T__8uoO zF@c9CjFb9=LSe36X=dk#haK&KoI>Vm)KK5TFJD{5_>?i!UuovUzZ;uNeIfh5UI!{F zj!;>%>%IXAg?jtHMd9%b>E%2CR~x=mBT!pgOH^ z?-S|N6=}bI=FAz=(Uw8mac|H`LS9gQ5uBZWos?UnVm%6M*>mQQW!H z#e@lIghIVsxNwP=Uw#?jMc@KZ?*T|oP9_xUXr3477X>jzrA< z3&p@kMS!R%^$q2U6)S0MY@oT>ekzLsL{(K4U0p_PbqekMmgeSWIy*bruwes0E^rQL zg$L;WLPNYh0Oq2;v3E!H6PyXeqrSe>+8#s^z+KdTuCxFF4QwJRcsCC|fiMsRx`B`e j*2RMj+$w_p{|)^Y#Rg@mNE1*d00000NkvXXu0mjfW(36k diff --git a/data/pixmaps/glabels-logo.png b/data/pixmaps/glabels-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..e3066c915e6f804dd63c05397af1001760f01812 GIT binary patch literal 27117 zcmXt<1yGw^w}mM#E$&dPxVyW%yAzyJ+@(N^6nA$o!QI{6t+>0p|L-?erCJ2v!Z(u=k zQsNLF|9#}N7smrXL2!`PafW~(0RQ*-$vNlt82BNai;RK<+&?5lNH&fEVU{fj2oeYx zaS?Tof2Zy4K6(ePA0I!@+aaVO$>9}apsAX~RlWbknGeUE^|glHC~S}MmO4tNQ!2zy z)LG9I{m5vlI2llwWp@lV<#XgmM_I;SsG%6Gp$_%_lMaD^4lQ!}^7`Hd1Ff1sPi2>O z@sRxDW$+1=<>IFKAY+mz+nMpz?q%&>uOW2f>o18x;f{dCA&N?@WbUGp14iEt?dzWi zJJs)WKE)rFoM#^(REEaCAUuaZ;cbe;O-xBoe&bD*7OO?)mggl0MQ$9Xi%F*zU1q2M z;#L?pB}mNt)r=q~HUh32t!g3egzW};Z1BRHSF;deFmqJ>XOsA;Zd~^%gjvknq8rA% z3(reOfxpxxdVc_{39gP!^%|H+ZWW|i_M+{i{pIp!nnR9)Zm-^$vhZFEfyGYGPq zcd`dM@#|dF;jiM?luul#N0C?(B!#G9WD%W6G=Zp)0m{%}c{yNOFgOQ{4^De+T295Q zMn#0;_9uh-V`ALhgaymIcOm?=Qd=TSF;xJj#SW+Vf-a#l(^_Obke9uo<|ij;B%<(3 z3{gTt11r}Wc%oeEv^jMRD@rT{HWSuV=JfFtd3;K>>uMRcT$|woa99|ss0wBP$S3K_ z-I~)nWsEY{n$m=|WX6^iVZ6X(CgNd+T{ZeQ66tyKfuSM42W}U#I>Bc8_~YBwXJL!= z5n#1gxeVYWc>G={f2jD6r*k>4{Ae_(UoPN5AT;4jpAnv6$BG}WgHNG>p!$*Y3rtIf zz^Gx9CSygZkR}hFQvaf$ri=w6@s}ErIt)@YhZYeYCYKt%m!A@9X*d6dN@ga9mYT%u zxmnadA$Si9og6-QGd*>SO2`wM6k2t}Yx8#(Dl_C~D5$PLG)qQY?-3iuNFLW-@Uh(X z>BmO^tDtW5^MmJ*y{+nDrbI?WPWBxFP30_x)_b!$N+-<*8}ii5Oizf=tI74XlUfv3 zs61l>bnc&9R%w#hKeeczSx>V2xz6(Q@*rCUnDz{V@~Gh@;5Ep*-HGf{M^i=P<;jpj z6Y#z>?7@sO#maOsQcTSV|CI*Gq8YPVtD^l1On~XKgHlHl?rO^9^yjf#^@{NQoWeqH z?SR+igogC;!ANax3)Rx1ffmZB@NS+YF@|g%+EYUxtC35~qK11Bz%A6ql19xUkxCz? zR*R!?OKQ#`n&JITUJsImG*F%#UDRJ)gVaR;0Uai^f+_$#ybqoc`s&H&Gcxk@?5u*8 zB~GzYHYtAiHC6VDX~n;WJ0G87>%U>5;!4a1*}W%s+nH$=HePAcQHT}$>HTW^17m=$!5P<&ywYJWfRD4$0_55;ZqaMRZcxQ^QKe4a@Ns< zJI%2U34s+{5G@I;do{mdjm7*?aL1Pf{1+iE%eG8J2eN9)oKiC>Xc(XTzEGQ+arM-| z2|S9BT850vx(uaF)i|MtiYE=L+w`}2C!;pks|vkp^REk{FN(8!YeJjf_d&*2#1K)C ziW9fECyE{p%tBTDHHSe@PtVN7HMq3I-QMo&;_g1ZHY;ajL`)P77d5+_RM*I@ zs)|WU!fvo#?+gBNLQP96OifZa;d%cpnZ8^f{cZR&I1##Txa`xPnK)6q_9OhTaKxBH zR{Ti1fM${ooz9G`ER6xGc8_*8GW5{>ke;pAO;Pv~xn^=-c6$g;D+srls)|%>H_S^Y zw4J9^|MrxVrs2t)Eogi`Q$pBbs4px&;>j&cr<&I(Iw!`05tA|fJ~ zd3ZuMh=mt1q-lmnMtUr2RW&q12X{;?ERrgs6oaKCSyI_~TU$KOn+0y~?^V>*ftO97 z(`fgVF&QbOHz1E%JYNMH8~gC+XzP)#(&2T9?$px`<@;jAR)e0s$xc!I?y{}4OU!j! zZ<150%hODiaL!-!_#)Ck;d%8iq_6A?T577g)UtAj!;J@Im>OeDf$%{+V^0UTcsI z-}Zd;v9JR`tTH7YQWaOdv(=*zW}Go_>=14=6in?d39aYPftN3D^78WNh(Uk)LDXTQ z730C98j1!#z5q9N_PN>BRsXf~&5oD%$dI4c)CL0WguE_)q9zn4GI-=%T^Zch?hqPm zmqlG&Ie2(@{(`-_lmA=A##JXIQ&ZEn+Zj3jx7*p*HLdroOuojO0F<_nW7>JKvgO^ z7*)4kj)UWTZl_no%tO~-C%FY)hDOc>eK6bhvu#reUzUlSI?14Pj21+F7ou@uEO+In zKHxC!>|mrYV3+amH0fi_EvU~iY~uu& z2)FijEK^c5r8E?z5vn~RPHiJ+wjnE4TwxXs+zbC!&`Y3&#i)|Oh~ihfIgpZDyxlsw#~c zf-u_hMHb{ii*|P6pQ1I8uSnJHx{ zLqkT4cp_Ojx#p_@f~6{xZ_UlkeIS;ODSS#Am$Ac>93oc$D+3g1^MC7(7GUVCns4x*A}?w#SjyE<~B{{ZxRok zmNfGj$k^n}VDqEpCpQzrb{Un?3Ur&FP_k~R2@8<@>ZZwLMlwX0GzD|Q-)Yc!idHaZ zn=@6jvuAEo1G;XFCw)=)FW$C#eV-f+*!^7yAm}0GMd9Z`)qhS;=~eXAzI?f> zsjt_lYpDNoUE?Gh7Cyz!cIAQFDb&^MeDFDLR?O0!i>*UvAL_=6GU#FbN^$+6!(B~H zO+iM6h3Enk3yV>|Le|BAiVztiQgSv&zR-)6VJ|O*Y^QqOX7Bl=a?q~vX1?-gqF?)k zp3jz&keGr7MbD)jES}PPKGUb-0L}5C!ht(zgG{K5GyH~H{KmEF05ur(b!XkLJ-O2Njqi2&Kxiy6eK7}qClInH6#82}ks;rjgp`!fxBU3P zUX@cfy2vjab@d!m4Lu4gVP2@Bhb>VFyxl>}V!b=Bd&%c}!$w5Xu~a7H4=iP7uYLkW z>^FF%HGJcu3{3I+Ou1ZdEf!R+-*LAoY5P7^^y`iVPM ze-QSxT}TPJXr$FdjcY6pVk{fgG&E$ye(P~^vWFEFQR?XFeFL^*VQ(xG`H(a>`M@C6 za-%)*nt<=^-95geIc|8rXi#a~-3h0vk&%*&48o+~3w`wK?ZN4)Csu!dP!la3_xw-T z?8(8`SAL*oi04n&70NS?1PQlUahqz7|0hfr4YD`0-;ao&)*pWMSqeJics6UAktI^b zSwqpx@Qf8$Vv^~giNZq$z#zBZ;-9y`u7A8g)Oy|7)YR0>WG8xpw97Rc>^BruRM3o` zMzkLH+fh{a>3a-zMA4Wz1V&Aj&UUVfk(qZ;wwyFnG&L0s0}wvSvW?Dpy1xne2Ee-W zxVPO%RxH&Z))tYv!h{GUHyi)4qR$#}pTK>FD&6Y9NlLKvyU9sFKjbM9w{?pLM@j|p zvXIn0&xfU%FBHavNyDD1;_q#mZEKUyenT%{ER3LO!36n~Y27JKS}xAdPyN%SrPH@t zo~aQnGptul(o)}aNrDfj&>PrcVG$xW_5tbt*M$Iy6b^K)qPE#FxZm7_FzT9`H81~8 zbgDrx92^|LJ~gRbo?%=9RXZ4e2tL2SHQB5rvU6}=-p+bodbN*DOl-UGCd2HhK4c>F z?7dH#u{w@(@ZsSe9>j(agH9I4^=q98!eY&E$Y7*X_xVa}V*Je#rDd_PMH4Xjn$Mq4 zO8)+p9<0S-7T)0ln(X)Qbbgm`eqGr<=e7LreMqZ!)$Xhu9HX7DFVRbWmmCfDoxv;i zonISQBIj)+X4!!n)!W-k$mbT3&Hsw=emwf%yeMUNu%BK*xdIY7=0yr1A*xg|t8#-G z(j{Yj+Nezs^}lVE=-HWuyb2YkzUq6=colAMw>sb*S1pkVmA64*t^0f=Y$Qbnlkz8s zSHk#blAfI>Q|Cvn7hw=bUe#161s#$E8py*VA)l#T-rYU=@Z`+g%q$^D8D2u=?_Y=M zsj0CqT&gHy2Wb*TMN=avVLEhSNYa7vDU$!qk zP+CR3z;UIaCNeE8EgaIR`J&40OxMk@HXJG>s`|$YERpXiPZZI~Rz<7eczNTxsEEiG zXgIN7)Y+Ns?(WWZxhCl4qBGm?C0eRVr`B`yPAd;F5^v*kE!$64r|fILf4qjs)N1-H zNJEYsA5+W!tiIFHvzFKFyVND}898_CmA`@3lA@*M-1?t*FY}BI$;>fD2=PvYv7FgC zeiU^~OHzYKvxa(XS#qi4-d>D$H#+Zr00+5h*~zhaqx0Hsu&qf z62DCoU(HuSKTSLk7kA{w4Fuy$4hXO|p`r)3-ZLQt`{jF%sM|3YYFabnI^G0QsmDwA zWl97k^~8~d^Wa95F27`B?NwNSPwa6-Qy7N^WynZO`%H;mX9eWt2XG0`bBia%EFYkq zKXosZ^DR~H*mS&XZ1mbTToy9CZ$uT2IuxQ_c0FVLQnMnjz=}Av_M%F)3U~tO# zz647_!gU@t+l~9;!UB3YmB)T_Z`(`MgX63MS8QUU>ohLUEV`Darqe-)U?0x=?G69^ zqoLr_FduGq3VNsJRn_Dk=b$I7Gvevlrp-w*dlA|*mZ)T1AhwUV4@eq-7==h7?7^ zAh0Lr;(CayH1I0Z)zi~ywG)6t{<@cG->K+DSuDYg4)X_3<_>cw>VvW_GZnt-6Bk6f zx`sxXCY@q2M&k+t0l~>$*uK~Ff+|gBp{9zy6*{&W#CQSfcDpm8w_Ii(P%5NRk(I)AHc$=Lp!)Jm%M9C73FRP4 zPT(cPj#UaGNR&~%a7!jl7BKPgkJ0um0*Az?J#%(dwG+g|OflYk4S*${ndSPkabdJe zBckI(ISj9Goi&(~;A!nYzXs+1!G zQ$kg%$I9r4eQ5~$IG2+)v~Ck@H9MNm*s@`{QzPJ6P1$b%=4PDfYhqMJ_5%z8C=xVW)9JBATy zPh~0}3vB)+ACwGx{8L~0#w}_aJZ~(T9d}>@=2DTMJ+?!smS1{i#d`$l_i+gp5~u$) zz?easq2hfNI~EL_i|q+iMiklgN2Trw?91?x=S0WAu9b9l#uzjd9NAYm;l4ViX*0Cv z{d#?3Te5htx2IxsQS>(F`0DHotogPJHrr8Z&&eGy38&x^7gu#D8rmUWX@5>to}MqL z(t-~q*8z^A=@)Y@!h#YuRF>3*oPw)UR{X2BzoMU3Ij!tG%SUIkKe%K1PtOwm}> zgNe*<=%MxqiXuARS_VB_)!dB@HdD1d*I0Rp<9U)Er%bt^jH4y)qb?gOTTohAq@^HVq zdnzgvLDPTL6~e59=A*`wMh`xAl}gIXB~`ZJ*P0!ZKn+cN=-7^!HYy>;)4!shCTh9tVD zDX@E zwY6#!Ft4I$zw*f7LOn9H>4U*(sM;}MP<60@n&HY}XtIK;!&0q}3~_VgOhWPG$!WTL zTc`e|gi1r)OV*Eu#d)q1`BjJCj*hIeJhl-! zUiUghD2Awn-1xZK&FL2Cg9N;@zTtjm^cpV&+0#(?zP%B8KT#7ba9~6ZA}|IPsOYYm z#cb3IJ4$K{_H7eAeoXH^eI8!lDfjjDwTQM1+s+eBOT!P9{1y=vRRiir6c#atm4LGT z6bpf;goGw6l1CO8j7ba0VJ#C0Rsz3&uhs?%@m{KtV0WUH?Pj8u($38jH9h@neTqBf z6@Wa8a&u$fJ3f)+qSB?EP&3dJ_!+}T5BA=lt(26M9!w8DY|}Dq$&$|1 zQ2nuqaQ=SaXYtYT28dG_K;rjqk)Xm)Z3uP6_J-i$o?5IO>z?~;jF;J#e8X3ASW(cr zx}1EdGTD)|Yul2Pr&PoDkYlhr_V(r{>UdeZ$V1&{Xl=Y~Cl-{TPm;zfV-=&X#coR5 ztqQ~mQ2Y&Tt~<(Aj$%bajq~|U-^|u_m7Sjz_-FI~g2Ci`eBoJHL~iG+sic7#BGlnv z?jsus@a*KJru9H-^&c>JW@@S{KRS>(6~OK+&(DCbQ`uP%-bT2esr%VLDJDK%%+JU_ z$l*^7E7klw*6n>Jz}NG@v|2{K9MMAW&K-^$VxOaYd=ijI^7V9|i_%pofY~Zo;RgwffJWKcj|<4-F5q z&>PW`(i=BFQp~GR=**?0dHRoxjHsx8>D-9!x6LapjsITR?xypkO}UvAo?4I)*lY6o zQwU(BE^cl!i;II8O8nhP3JkmZX7QHexrNPHzAw?hNZ7x+N@&-ZzVY$K=ed`-!~guq zLgaahs)LOY3cb5@?Kv80e~@|MgQKCLk<6bGPlQt0eouR%$+cZ|z_<@jQ>gshN`Pcs zcPDAe64f>rm7nvcg_n!?byG3J+}tW{psx?QSTS>ZEESkBk}j)J)<^auf5k*` z=f78pB#V#%)wbo(R8(A?u51<1rcZEpXNOGWg_k`krKpIE1JBG@w6A^pfV5^%Jx#;S zv6r7$meA4h6F~Gc8lmAjq6Ukh{h&ZmQVRzfDV;Bwv319N%;xwp{_dr`4k!Y~G)t}ydO)%A6|Be_<)1|kW7 zHdWZv#LWPI<-yPY(SyW)+e_^9(8=Ft`5|3p?JK8hSz`K!H>ag00_Eo><@?h)T=UC` z(ZRG7abbOZA}|I4dU$qr7GOY5=laC+i7-CrY!{$|23Kw8n!}T?pnu5`NBObv-Nwr7 z3yU?bCz7dCu8#M%jrbw+ms8)?xaTl`D?4L6yqh`E2%snY+DZnZsW)>oKB zx+Qn<_0`g9rB_*MN;s6%Z)O5$^ z$-c9%`#009vXO+EFNa&}my0=iqG&1us73b3urNeIWH`-ItnmIgMsLP>c18gi;F%wv zCjACRIJr(18{*DUaKiE2gV&@;lr;jt@bZ*wbZP0=v!ypfUk&mHaUnK(xB=u{E` z-`(wYncjDi7s{=H3P7Txn#h~KV+eq-g1~@ow4cwlmellBwI*+})!q-Bo+}KCVH>T# zAp(GW!T)6e&b*e_IJ!EZr25|9m}o5dyiRN1o9l&3xBjg}Hr>R0THwKcfNHlpZ6>7t zJ&@iX91=1=eC23UO6Sme@@LQ#=*m@gYb|x?&sq$hiq7@uu{F!IySsnCP&3kiww7ps z$IrN01G4e(koxWI4S4tzzy!ul=>fRPeSPD|n`yh+6q`t=we8kQ!^BjalLNuP1A_67 zi$k|LUd=c=rofC+K6g?*rnj(N4IkW*31=gVm5vJ_VCAHt2o>M{wb7EG%s?OLaXn0h zhktw!p8WwY0W*C6xmvoQM!c0Wj`x#-hO$O~iWr2V`eP4HM;A`# zWikJ2EzaX9)kb8$?Y6i#*Td^d@9nKZjpt3`>U%{rz&t{VtbzFlcvJr?+Aj}h=A?uJ zpap80ntU2a8dsNGW>!H7YQk=d+G^hyWN>L|YD&uHW9b^9_g;kd{J*YqgO$GLJG$j6 zlft$ggT}CLAx5#2r=BW2S2o@YOG{?v1{k?(`gaq*5=3O zZjk~t`O4#0SeTPOBMzV2X-;!pwJ*`6o4rfof3J;0FU$)K_CWx1>Bs zzWRAaL(e_-`1p9>cpxGn&0@0=MH|H^>O}p3>f3R=zt|Xz{`m-1(Qd(}$5kl_AIeyW zCR9X;_J`tWWLF$TLGG6-uCV@d>L|-T$M*%NQ9$KS59+<2GCqw6`J&|R-834# z)9N+YcH1>F9rHjg)qls~+VDXF@QvSPqTjP%taL)7ej^25`hclNyP#+;{L>RMK+LSZ zfA6(x{8ngY>=1)780~!VCe&v)X>pR|3VOL8zi!y@4sSXtGPstPVtTnJM)Q6k(wuO+ z{b%{+{M{dW)1tSKn7PbyQlhN54U-xJcBJ@McTn7Ug&kg`xOmo@q=G9&dwcuX5QZq9P8yeC|D^`cJI^385cRshJB~7DLlcL<% z7Yb|791{n}lrue91H<67R)I2dAB%43rH4)4%a@&NetJ&%_i%!I-sHqY5lknI^1zPc zn8giD0qu<=JO18Yve7}fiEYVJ&qDgW1V0f^s^Kzb!M4(9e^8w**z+y=%-q%ofBtln>EpU`*3i~k!B937FeSq18UTWPy~p&y z@E~x>2BwwMS<_Ua#x(Kpi1XlA1a7(|S?TF=0FOUetUO3cw=ZgK4Z$(;iEW3Az8XM1; zMaNEpP&1U@{N^_q!|~QFKULT%5Vzqf=asIGG4@3Ssfg z#)cB$_*+h7kDV`zi>sH@@mL~XiB(%%)@fr@e7cY*jbeC|yA|gCd;r}Ck+VnVm^=_@1z&Qh) zi(Q(iSQFm=H34p>&Ps;NR%cA z1j#;5=OawC;57!A4(V}@YJGGB+r4HCJW2sonhYUlrZ_T%rt6fJJ{D7MfEZJ95u2F_ zOa;a>e4{INeq4Huc6tr`tr-r`IpyV%1a>WnQbf$|VHW(ar(x4+z9Z*Q6M->i~O|I;6w$kh51Nw8Su*lTm{u{ci1 z|4S95SGfU{J{n7H5hlWQlj8dhQp-cqBht7xWy2gi1Ftv%-zi3qB#+BLB zkTIQXoVmYPL2+@Qu&{<&#~n%F#{KgZ7pRS!=^xKfV7lzR3Ly`s^o7c#^M5vuy?X9L zA;dpreV$4mSUCjp2?BYo64-YnkFN7_A_&YZX;D)e-CZ9-8}+lhwyJ9L3S;x7qN@OV z4f5tDgMe^X-J37}+c$Xy1vD8)mV@80D7po!4}Z@P3J8q*mp;-Es&8dExaHWnU5~i`g*LnMXJ%_n;Rq- zw~V6BN&<=bp^=e+wD?G6O!QD(?AqYcvOf$b=}T=#n!0+&)GkZ$g>wm`Sffyvzam1k zU%4dwLA$JMv%-~@3~;cp+};hpPfyDvc-BUFG*ge7G6?CqgW&UbW&?ZBYMh;hCnuGP z=UA!8jO6PR@SFiE4|qO+XG6xdIB+2J!4pNuBl5d7Z93NRs%O2I6*CIncxs7_$;v_H zKJ%ZCaAUKAf zwQIo$@kKyHF>dDr@w7?55HlHblh$2TKO?%|4A$kg?+H;iO&=+amL$n};~*eK6JGkO z29~5uB71X70s)Tb=FJm8VFzW%MR(0s5MY0Is#b8vN~5Nv_ZBQ)$}3_-^;I3D1MARf ztnOY^sNX^~8VjHg05#<0sS1-DM9WCiQIbMy3_I6CdWZ{iF<@I4} znCrpD#8lSN5wrh*-wHxC$D&9`!i<$BPeCEyGeiJ_2ceq}lWZ(3{mr=uUT~6!N5nll zS7`d$!b-ppgERbKSdo@gZ7IE2z!+~fg!*a&sqX67^Q!tAUNjdqTHqcR4uyYm#eQAV zup$-EkOkaNtlQIL4@7u)q=adM8k&8(yX>m6r}u3xyjC>BI_Cn6Ng=TC(EIRXfb(+N zMGSxWy52iB_FOpaKT$R~`ix zs#<#8qk~G$MYY*iGQ?mDGCn>yAjZ}Y5>avipd~7qh>8hOWPZ&#Bx#LkO@h+wDN04LfyTvNfRWFaxj@Ejm9?bhAk+K zjl9n=MMG;XT#*FUeiQOu(}o6C5RiNIRi(&LH5<(M%Jm*7!QhCR3#_%X;vsf-NYJ)PWRkIl@YipCqTBYr) zXDbHR*;VbxQ=F{ZvXZlt7lkw_hw-kEm5ny+KrEP?&TOyz}{o!*i-T@ zQ|G0gl{FljHL$&Tc{^R{j9$R91JjN^-unsmHRr0Bcx*0m3snk$v`1a|Z@qE|;hr(B z#7CDWh~~L=k|lzWx7-$I=4U5?d7Ee8*DEi}hG(J&TH(a??j?jJDImnf$zomZ4xP3O z_UI)>IEn_U$#0=!t)S!crsk9tD#k~AnB@%(i4qeN|I0fxuF%lZ%A!b4u}2!Tx@`e3 z&EpbPN#Ks#=;ir$o9iO%`b|Zn@;<$+mc44#EE8^$mtjj%n1sfJ(r`*z);^AsKtJ7J zw3?2Nb)OqzwN>EMFJena9p`oUWP`0 z5dXRnFib{lgeNX$?UPL$V2riK}g{hHZzCnoj{yvRo}k`V-i4yr!-O~)R6 z)Dx0Btyw)ndPRQx__~vCfQhpQaFxi7i%x24Hk5l+M|-kZfV=`ZS}A*bCLmyu!R`1f z+2|+2EoyT!4>jcKx$MYj7`Jajc1cOet;=Qt_csj`Elil&WqBYWcHuF2rtdn>N#uL0 zLi9e2f`^~E8&B*F_r-4UNd*@Neqs;iz^5ipti{Zx@jyjGBXZf+!o(zCYsP_B0eCUXZ_CqGldV*X z)A2QNwkAIxrR!NdQLk8Og@WVUS4jG zPtAbM=IUx^=(~sd#SUkd>IILOc<{)@Fz${5J+!XL9R&K-(INQF+zGpqs{~qhZv$NV z9S{F>udnoLnH4w}$m2E?Wz1T>q-JE80a>j~;Ys;C%bylr4#y#a;y^>&cz$?!8npMx z7W!CyDJiE>VsmJw&WpwK7r59Af*5al22MN&pdwm<QN7E37Ll=4HX>_0GmkS#>-Q|oMo zn$b*A!55qR=jU3fHmkGoArTA z5?SEpd28oHc!-kIj$UO!mtB5gNpNvC-w2S%1N=E_WeY_!xyVe#HOM7fPP>jL3m_Nj z_psNw)dBZ&1V`w_5E1DN_9<4bqB>@p6IA8?DTRGrIrlq|CIud-SR4<~A-A)C{lniY zwg9C3v*SK8f!K2cxuV(YOJV;Lb(paUY0uIU=CoBtk0=r_hKwfRY)B*D_Jv}Ii#pqGG{kmy zn|NLhApj|J)qHRWw;x{O+#S{3VtfU|nq)wzH2cER{5;(O)F&171f}-Yxc3f#zzOTF z-%7$pF&0y!iz)+|GB-EIj#NBEB-;$1J91!tr;3%{yz@FbJ2SVk`g4DOFH!Fj(i@vp zKfkyL1nd$k$bjeqLm1PFX2mXCB@t+bO-#)c>)Z=xd4L-yd(u6ia7_JzUIQsrp3?1f zsrz({-raA9*z*yHiyXYz_t`GQv@}iqKx+Ow_m?^+wXUvTX^%$jB0E057s$^5`4pcc zIlpnJk2|FI=kSZdF1v4pp*0`Md?>aGBYnM}c`14*ArwKMeoahHlpn zaD71z4(uFDn+YNgs{RoSi>!`3Ik%q-S}N?%j_{`1W(8Nz0owG8g%-o$j> zr{#D!&&|&4{A$lHeh-NcwKntMx&}-Vz)oOe>jjSK(}eqbyr1``j1xURUt_t52DEC= zs?VR$;Q}HuSCL(u?-`lNK4a)PEOow|=`a`Mh&uWj7aQ9N@7nZuLn)`Sp<&o^-pu;X zGzPr}dT=D;!M^I1F*&-)&!1UKPk&$aC)^TO=xUp^8WLb;z(Yd< zY0>{2J%GmnaL&ZVB>`AEAgcBxnf)I!v9_}-0uCR*0j^JHqgB*)`pj5k0VmbaaQz9Y zs-WU$wd#JqY#P9u+1c5v+$XJlYJdJGYvx*+(-p?XpGq8fm#SK#eu?tsDyP(*Njuz=+*i1(X zIUE#bshQ|3jfcckR9G&&H(r1u&{pPEhx!YPPV@5IeXZN~!8a45*lXEy9$#{>El{l5 z1?xM_jUnQg++Ltk2Db<^_vpM<`N8TGJREX%%$0{I{@yVfRLm9ywA4Fo4yL4GiImbI z9bd~!{Slr}Aw|&KqSnoE$tPgr0DdWHob9MQM%?@RPsI%G?#D-N3=9l2b8{7KZD}zv zs6|6>2Eg_N=6#oNvEvy+01x^y@rV0y3O7jPmzIVDG$&JtTNF3+*oeWT5=;xkBKe>C zdOZXL!E|BP)@5W&lLMz?gy$_ld$q}J8WM3dA*ybg!06=e^YcCU1i*d3qrQW|@t0j& zn442Ru-o3#;%&YgpmSLIaj;g+h%*`*D2z2w?*bhj2>8LNBOH`>FuxSixn>s@++-%J zFf-DMs^5;!UJnOR0C2`wu{zgNV437VE*rqWRF14m+t;Lh#EMZM^UK*kX`go0m9gVt z6XO;o0$wc74LE@h*sLRAIA;i*gvzqLr*4qdv9T=UJE?JrdlaBEutk>dIXsHcD@Miy zD{!4nZ*#W@<>%=#0jB8fZ4jUrp0GA6SBYsAyreWee`ke%VR;8jGECf9D>{M7I;|w zP$TlWd;##2ilJc#JqaKffOp{c%LMCA_F$~#IPMzR1Wxas=Uuamp1!Bgcpez85iRfq)jr$H&Lx{7g>V zd?QJ=1@HaPK_7`WFNZJzgOyf6aX(a#lwY zz)!ArT=t#Ev}yPRC1qs=b#pSBNfhN|vN|bpv9YVG`p2twur1LlhMLk^Mks888zANP zG>Y+_9#Jse2`(Wa6;ZUBDrnF^ZJ=b<7qF>QjNsL9!!aTyLM6$7m2*Ces`t5|3gLD? zCj=D4D5JKl5-#E(e4yw-W%@U>;EppNZ#Y`(a2J|8&zeN{fQkx6AeRjT1JgOfFRP(J zLrV|xAQ|hc%SJFI`|qFqPkA3x z=e%5S_X1)kVfaP-YaVUux2S88|gPJ!#Y{n7^huLT;i~ zZ>F6`bt{p?deiP|aNzP{jZDbxUqQua-OT7Jiby(DD6Rn=D~&l>M~u33cE3we%!YoD zT2jAPW_tWV1=xOGyQlytC0R`Rmc8LFFR$>zqVLwa)q}&Bn65u(aRs~JNQfIPZd#LH z8!c>{CC)F&jcEcPpVOvi8=LRnt5?oalJxgBRZoBLOwoq@YV9Bjv_XYGJU?zB(Eu`h zVR_1c$2f>#>|_HQU$pI(9H04P>*M=HTmCBVB-=;pVb_?k|53ZvL={&k2#qE!4hsky zjz*bVwky_94DX*-WV(jME4WSa0v2|b0_UJ&+j5^mq@8I(aSYAGSZs&VmH8w_ak`d%6*3Y+53a`M6WswP@ z%2Z^kWkdRG(BF#gxW-b<_DD5) z8vFF~y+nYJrwZnv?YCSqW9+cmIW7SEiMSBkW z5>l{%i_{h|qJvVivyB$9y)Nh-p)xbSdbEGCp_OxF7z2_V7vaZAv-ZFxa%I7yz$*{5 zO>znkt+?k!g~m?SgbyYwn8j<8qiegI@sy;(etMkFe_EJ45r8OBPXi`!dJ5PviQtv? z33C+vq5ZTm*?thD4tv}j5LX07UZ?X_9z%~Un2zhj%F98&+YN-5v)AN}NBC@yW0SB* z-uu&Ii^&Pjjw^S+(Y;aownC|AuLcX=%SIKXTrwN3IhyX15(o6-Q78KH;BNcySrPuTM6lgd;A5%Go1Opz1Moz zI*njkVZ3+e%a(L^%Nnl%^6mIu`)SWcedw2HvNN}73p9ppiN9~$1a(@R;>lKkAu*EI zdB0^-8*`)p64E3Tdho6MwDm2`F2AXKm{x<_vPpeM(x+cDhQI%SfMxdnckd%tW?6L} ze0xW#B7KNbm7$eaR3I`|rS>VqYqlIMVCCO4CCnZH_$o>YV~QlWWEKX4DQatv?!=13 z4DM`Q1v7fxRa*mlCfHV^vS<3_+VN(a6(2uoZtmClv1#_!P&}5Bs?kUiTj@e9?c#|` z+o`+HR+%{A74a_@ZQNfMpd!~g3w#6w8XB78<$5$xY)#Enx-@WsI-2HBT2%}GpR39I zj5D)pleVuVvF92aUeT{Np`C*TK={J{8TlXJU|1bDZ1gY341qXY?8;Q?@=e~nSiGzq z#42iA8e90hZyd}i*&IHSG>%e69lJ&x2b7q+O&sJK@@~Gft+8ejAb*?8!CM=F4%t3o z=e-3nh~pgb>^U%-69~x~ip!@>Eh~@CYx8B;%JcsvpX2!g@FPj{&P>e6Wo1nL2DR^_ z2k2Q?Mg$NqKDnoi_5;!mfPw&IAfPOUP9BICDJuavDQ#_%P)xFX0P%{6iSdHlIJNuR z|0+1#b%>t9Q$Mq;Bmd2s$R;-D$8Y{@uL~JK;s#W0(W-?58C6p;o={g0TL~uJY}@7!E*jzJfW_$K;nJWWY}uvO9!$(k>xyfb7Ti5u(jl(Q1$_CV0C1q5S>4P}=Mx*H@IpFUB|K@_cJa|WQhJIxZ;q0M*8$A7aQv1};T>P-V-)6?~50U-82yf%WYfy3P|DdF@@o z(wfzl1^5{l8R;^{x9xcCJO#tj5Wo7`&~-kHDoo9;g{d=_JN;#PKt=2+RkZ-55kN-< zNYm++mC^1%WcS_puV&WP-#FBv?zXgabVOd4NI8#V@a$!EcE4BU*@&a5_L{y@zZe~# z&|BQ1!6;cV?((PIqI=mCXtVOmYu^uX`7AeoA0&gnhnygwwJ)lIg1hx8vC*rIcXTIo zN%u$fUf4a_$r}g7xfAp9^8Co0^6iJD;&M!HDD{b@&y~EJjil zT@4p9nI{X~o|1EB=JVGM-}p6cfy3WFdxiJ5%3p7JHIQ|V zSKCt*d{6E91^6$Rn^RI!h=_@|7puRw@i{~i=rv0P*9WCr$i8sye;bwf&JYnHcf8UV z3(VB3Hax(w?ez>GkpSLf^7`^jD(DsmJlFtHaEawajk5(@m?&Za*4izEL|HhyS1Ey0=9AaKdpL0c{XRcg*Cz+r6Yh9xz})@nZRAL*(}Lh>0Wemke4%eZAu` z9h=}fzQqslkySvPK)-ZQ0HjMEUDIqkcKjz^M8< zE{cy41k>iK_uyW!d|Mzd37FfT|LXbr`bBEcDVnQ3#fo_PyH^eQzHFb_-Bk|)j+LI{ z8qmK01UBsdP6xK#&B#7=cD@Q2R#WTUUB@cgFi4FVox5p-4dTL5nSnJB*h&Xt$OL#j zuIK@g7r>GnxBF0i9%gd@NNCdk4f0}xH3@LMW(v4w1AA|9iEvvIyKMCxk7*T}a(Ja4 zm=Q@!n=sjXDi<9-F`u41JKe?nL&}q(hG+ZKy6)iB9A3QH6*I%YHSr={V)JmhPiM~3 zk`}<;Ho0HY0;(c!k(DIC$^c{xQ&Xl+D>s% znPRm?G6?rA7m)Fikqjn!gt=niwqvIf%R|yT{`O$qow~mID+skG^~TzWRVZ^(W5cMx z4%2xnfrm6=A>0S5M)=*1_iDwN)*ICsDhIagy!?TqbQc1hm!71;Pns{HOmqCi(IF2Z z9zI7Y!m(vTeG4xazBAJvNt1%LIja1DEA3+JS>0xwhTIuS<@1E-NC0u|hR1BuD^A$GBLW14?YK9?Yn%GRfV}wJfYf^Xf z$J{8Hw_n&AJmYwA^@&XE2}6VWCe&1 zjEszjPW&K7MssWHJ>a8rfi3#iFZG!tPTz+T-;rRRkm}S(6p6(9sIk`ZqD~c=ka?(- zyD|PwLog{{K@IF7ot@UI(kr7&>^f`M2(W|&Z?g{Wrem{rdP7_8$2cBY!SIetDereX z(%&JqXe!DT$0G?EEAwGmP%uy}VAX^Y_+EKC@eAoaWNqwBrOPXqp6lK7Dmd4kvWrl{Q(vy}g|UPBtKsIez_T;clPjHM`s2@@Y`- znK$R|PLye%vg5W_C4W5L)eeb9%r>*0D(wtZajW|!End)0PoGPfotux!=k9z>%u|-R z+6*P57vd=E*f9q5vLFFb3t%Dr2W$gsBan6(Hp;KA2IAE|sg;$LUbx-=KJ2}tU?{A|-Mn+nKNC8&f z|BK(&7KN_Yx#W7Ai+_QF^_HIZ1)OoRq4`j0zCcJRE8W}pfDfHvVP^9nP7po=TWxWn z1}Zy{z^6|)wAA?ck^hO}%Hx?VBLv@qA+o=RPWT+PQn$IQznuH#bg66G0Xylc-2pWS zU2f0SydL`d&mS6ogSUDwC!g~c%uD~n+tIpm{Jn}nK^ks6j86z6%Pd5I37RRI(7Znh zAH-$G#jO>iCM~M2PIoBxxAndxL0@g@2lUa2w{#tQI-14676W+LH>Yc|fb?T+ZEZ=K za81iPWObSi47FQmAao=$qr}By7k&YO4HaTXp<1z$+3ESU-ovT4UjEqD@<~oEbNX|Z zz%U261VGB~U#5L*Y_|tutJ@2G*LiM>>9AYP4EsQYU7IEttN}a1zsIpvy8oU%L;ERz z{zqXo#Zg;9ff1T9J5kRTt3^^omVoR2$064U2m04eK#%*?z=9NNdU#Z7;LgXRy=ui> zWq^$TYnNVzo$Q26RehcfxT+J!S=qUnF)`)QaPE+3^nvey^UUBObzf+Gl7?Zgsh6!i zSNjIp+`4iLSK(}@@paP{0D=q4TQdOJ?VqXz3{d0aY_lJfe9j!OQKkqCSDfYlafG@veFW`?r6 zi#-_!BlPC>qMFWiW=TC7Qr;|d|A(0dt1;u0k;d#rPgJ5nJ#V`70*=W@ylA$0t_WNN zJdgI{RynRMF2(}CA0CjbsJN{#vGVLlE7Tv8bz$tR3y(3HOj6W1Jr>p!9~A!G@CNqg zlGGa90y=Ts&6daqx}rq!(w#DmDMS8XS22Zk0_jAf;y@^{jsIA0iD<3-2o1>_qHV&T8gZixN)l>r><^$*9sN3hCRvMgG zc@DO&nzf}dC!*@stG#Z%O~2dNd6ttAz48;m?%7Wzs4?o#RMM4Dapd5d2Sf&1)puog zE?m^M1cY2f(EzDmvw5SUtKKsf6$n_?uKiSAjY|c94GLZ1PfORLelM%6rY@%;ivddV zYnGl2B|q6YqHC-*)gZvQR_6o_6>=EW5)G#fFGYg<+n^s{wH?7$5L?;Anzs}@P%S^M zTqY*cNU87tsuIG_4bb`V%gf7MoyRXsYqfyPVi2U<(3nPyDH-^A>@!#fyPx$4MMzL) zinu1<>^roy68F^-Ag9%R4qLVH`>g`Uey>}!+wP~Fz12h-N%Nn;hdw6|4JVIU0Zz@> z_{2W9INm~#!8%%&d|cGY#HmfPhN0%Tq(l!RZ&u}_*i&4r&P{1xSsINOBLz6(+R1f3 zf5BY3aHjc4pE!y07qvWpA_Zean9*>AmIPa3#%j`V+;HKrk>ia4e-=d+I37|YQ#3=J zz_1-oJuQ(SO({yB{0Uf#K&hOxvg4yEpU-8%h3NJ6W+i9 zkU~`rydA6%8HWA6p9{s3^oIZhzS8V-!v08pDvtdglGDl%(!)kA;LzlkpX^?xe4#tn zC^wM`d?3jnt%>T(7wMlrIMFcbKOA$D46D9-CIeHhqsg|_7rm_z)?hQ|EKN<#)St`_ zU63PcB}r<}K3E2lVh*g3PlUyJ#juzLi--vHpdPjX+O;qgJp7|-7$H3i&<0 zimLZ%caOllV&Rgc(;;Y<;OqVLc?MvD1L?K+B9DPDkZNI*o)Ld`b#Qvb)$u0+w-Pmn&>tmc zkCdZ7=EVgS9|mDrcJx6VZBHH29HQ8zWo6w^b;(bJc`f;2455LlAm^`&m4gGiRa3H+ z@~-?@=;*6r%tq6H=1>BpEmhvmKuNU8)8WwV=f4E&=p#ZeZ z+LQjnb!GkE17P|B_|8_R2H4D+)+A4d_lKcqS_Z2)sPt*lY%&2$=66|NH2hyU=K_=M zEN%oEii&dxt1RfUYmvV@G!$tIKY8?>=(1$h2?R%zK+SB+wzlWXn{;ddyX7=IGf(yU zLuBy81j{OiMp=0^yHHjw;{w&{IzwYNxLBIn@v>4#_cO=rETDA&5wPGvAqD>Tn`tEt zGm6%tV-c!J1S)!_21Y#$1GvDWtD0wAovlTM5)gM=>inRi;u{SORxgk$P%B8b@#4>- z#goU5rI9hNDMf@|*(D^u<($Wt^xCF+_PQG4hGsBgBgV%hgR+HMBCB53*j|cT(tV$+ zL{b=)TYGn-t++>lD^l-qc|p@j{%@$>1AV}!|C&g}6w5BYXKYkbA$0*3+^8^J=hgAo zbGPT7a1Psu8Qn3kR%Q?Pbeb;{aQm8?GT_A|$0$t1gU>!_Yg+_Ku=gCVGI@KGobn~p z+t%n-l@t^tW@rGgsW{aF(#hTPi?b-hMxhhGJSTBKfV?~L6Ooa8w=yCuarEzsAP8iU zRg+}Psz?&-XpCLIA?9EH!A4XU7KWE`<m zG3>KoC|-p|^;_gG7M2tag>~oBkjmqr_XCO_AH=vUy!e6LL%_n^{6}Ga8?^|AMuqzM zZu~gYBhVg({OY&xXNzM}SXRN-Ru^NmZ(pBvsH+QZ{xto;M0QcpFj&u)s3=Y0||j zbXJZ*JxY1SBLSkH+4P~;p*`j zP|^T0k?`Zk?-nC5D|^&+EfVJ8$>}4MHz%ce?e&Q<$>1M9#$c)FrE?&*B)NBtj0W~j zZ1iJekA2gqbhfKbC=MtIIwf(rSGC~fPIiZ#)j5wWDGBVLOz}j>6l%*DL9ugj#!kU_QN$)bzSZr3?CN{e;EJoD4wl+it^1R#4>Onf$aOZ9~ z1!aik^DVT(Wt_pg$SYf^+soIZUKeHKrG6@=w$;Qj#xw#Bnj@R5T=BP}{>q;;%DCSh zr=?#XCTpkzOX!r2UJQ`){Sa-aSlGLcMwsNQtqqJXiejvUy~_DpbHj;sb#>U$Qbc5A z-;IpI?whr|gg+CjCHx+tTuvWZYOF}Q+5a}TpvAzI!TP)Y(--#ao?1M-uTlg-_8GE- z#Euav9I`#D0kK7UaoCY`{hE|CpncDQA$*D91W`C{czmgXm~Sh~)zFC4^qcKet^E8N zBy1UK9A()I`Yp2vMe5)~-C+vtBul#@^>W|?V5!lXV0qQ#w6dz&nN>xIr6bLCy*iT# zuCZ~y<~Xg-X?TUzq2=yOk$q*GdlrEd3r;w-bkS_8Y!v5w(uHNtN;g$&OKEvS?sRDw z-Hcm1BXxrLSW!!3ojF4tgGw155CWpj(lI`0fY4f9ZdXts0EN zmYZY_FE3}Kz>!5+(y^drw60lY5~e4*Tt{$LLx3Tq{~7?FPq&jGI>rM>k%cZFTUf^s z*wu9nt7KRCrUn+bCYo0>5q@!8k?u=0n*)uRQ0*m|Sd=rVLL;Wk=9Fndq&buIyW7RM zJw0_NvRZCNFem!a4i;;w(|$xKciaZn2AHyaYCI=OzM=N%B+Yz;2j7RM!Knvy+YRr+ zR2FZgKen$$lL~OfEO>fiP6)``DRz8T>H9!HVBfk1)I9=iLqJ_2t3|-Er`c!kwP>gM zdDb&s;0Tga@#Zs5ri?;j2GxH7r42N;fiUGhqwc6c49tu~>lECBm)?HN?pHGmFC>gC z!LGeOl2baOK$A9~qX{o2NU)OGOPHVM&ebVbihL#^4t}ZhP%4;5k;m9ejq=bH66%|0 zOaZD}imIw&v$J*OXcO@|<#1!^!X$cvdbb2Mfl?h!EiDRc6reifU!J$uKroU*FtXgJ zuv?ipnm9{6P`$jkP*WkTKDB0s62u5DEw7(Z)Rs~aCsIo)0-ioq7(T9M^wv3&Qkg0c zV|C(RTX8udBO)@M7MSex*hfwFg4Y#sjC2!ZFtsy6{`xqb3009B zNCY-hE`I0avLgm^pSwH(<#L-?L&$r~P`g&4rZpBI&G_Gnb<>CazxS($PFf?f7{|v| z`%^D#RwuSnRkMGmZn#|{Dhd&A6~LUW0TB-r0|hF`{R27r~Sz2}PTyK8!gUzb8JBq(7R3 zIEds8$0}*+-q_K1%~6X(Ajr|$ngLWGTzS0tv@e{A&lGT^G}ot6 zCSpcI4I1CgG{d*&5lqbaJ__w!DP^BKt)iM_LI(pz3`~Q&Z6FQDG&tHx$ddpZjEM zUZwZSdNrco&;U^EJ{y0p)`av(Q3g?p>YT!*S#j%;7fzd9SVLicsspqDVBYL;%`Wm9 zk5Q_IQZj)a);*6h^MV0>)Y80&d)9(CCbSESOV8Gx@f7rFu(m3ytxvb?ZAK~s^3PQZ zKswjJ&;ciOZJ_4~T{jjNpW$bb2Q*`Z_h|^JW%-ABX;p6iPn1AiS#Cz0@V;}Fw}ei} zsZLEqjja-cbsGOEcuMAoP)ksvCX_{$Zk`1f)iW7q!xC7FKjn@LxOl5FVT9^NloD%wtS&)I+4Lw)cd?rX<#M#VZiG`ww4CtsSUm}pK8W?UfC zY3A#{?GzAGlgHI=Jkg&mmIt6DefG4AdVa7ze-?yt3m;Qt{j0`T3|tqw>+5L2>p2xo zrsSv995YTZDWFk8>c>ve&)B=(kN@1{ExOuLCb`(roRpJ!$JTkh(isdX zH@2Ua=fvx>U{lnyG+7wnU(Q}v&=%+0!!LrRUYR*r)TE&^cB81w>J}Fh5Rqo!4$=aJ zPLDx+x9ro>Vo?JLVzh}#tw;SuCEWBv{WhpkqpPP?6}z`Z>qvgVGm5BCEy>}5HVA^5 zL`^jdTzgl8mHM$36jLp;owKt2rdZso;{n6P%6zZ-4M{L?z4lFdTjcz`R5&p-oEZ)- z=bp%VV5=g3Wq5whSZeeY0b<-hLh30D1`KG2hbS2HlE=PHp+=zIt0(pqS0S*it!?&D zJh*7cq}E;KQ%Z@#z6Q_&i}x-bQetjp^{+FoU^+D=wMPEv@}AfC6g}gS7-(+A_x-yq z*}eBoba{v3=sKIh0t*Lr5%kz^$E(ZDcZ8QPT-apoSpJu!^MbHs0;^!Qbg{M~urk>K znqCg@UwK2N;?xK4AG|04Cw#G_O>XhqVoCdA$!h)}30}{1&?jRoqZJmAznx@4zy(yD zaJ>vcfVCa-Q29@(2@M>_TUow*b^16=E!0fNrhG2`A%SG|XB>I%#o~68$K(8mz9j?u z*$~>T>Gt;R^|iI0{TCDag$5UciRQ6>MqHgX{+`$82YHL%D~rwFc}N}}r%LB_I=s@h zy34(84!QYPEZt77u+IzAzhWH&M4&;mM3QKl%z-qO<$7Yo%x+WFun{zIK0a_CfcM;1 zIlLZrLbYzH-qB5Bh9?Aapvj&8(oGa`%*CUz7tR5jw$NFj1&Jx;)wBiCVcBj?b@AV=qBqhZ zB6p-#^}+#`Ms_pr56_+AZ>8lOpH5eoX-WB-;zM1W{zm2in`rDYP;1=ZEW4A*`$8)6 z;4dwO7|7Dg@o}vuG1j)A5YMF z(6rf@?1&p>ciJq_dd^_@-4>S)(!me|85`zk2}J`;rupQyjod3)(W^Hcm$DukU}>h> z)F4ekpe-9mC=%Yl!bFMGwF$AcH`;r-H(*qO7l)2m_T9TLebm?^21HBbS2AZ`&)`ZM z69a|=CP6&PT8pYEV%2bdf9%1M!8|!}6O*4Ra-G&|yD+poOe7!jr;Q4{mn~h!Jm%>p zFl)`l3+@iH$!|`M-amN!=|9nizHM|3wr|aF6O{aFiIHVJPk6+o5F$q#4JdA< zrDo%QJ@zcs^B0EoRed0p!|`-BLzuDSCOg09WxbBiS)8C;B@-C$HKW556bV}b1F2qq z`YR7h#0q>9er6o3LZiEehDh!A9W~P!xU4fG1t?Jv%O-$LhxQEvNB)b_0Ba8`v(kTa zvLgFhfE^Srz)OAPeB3Q2gJPRSI@!9qYvrGnrkq&|fg*KLf16CW+EkaBaZF4#4z%S{ zb$;kcJ&pe3^77(I&_|}d5=@7AbNRQD1@q(K*OK{M9EY7^$@g^@{@=8h?}jbElZyCc zPWs%`HcQn*PqZ`c-sA^x{v-`Y*d-(3bIXR5@cF(VoFB5cHi*QmZEX*9!Qc$R2)oCD zPIjj}^n1;oqmdo+Ga@gS9}il*gLeWD;KBu@yJ>>)7R{L!#TA=hU_O0B0{`_Jn{sQG)#HzKb;Tsn_9Srz{pJyan#C6MLH6s5u|9 z9aFHTrif)P4>p^2u)w1xtS zMMess31*6{+x$8as&@>9vHb}TOK)?4J3Z8He>;_zm;bZG4r)Z?6%6l)jj-;@X?|AI z(!|g(N<-H@X|`knh}2FWU8Ty7-!Ib}hw>W_6vr7?Dwj3+JoAgVA3X|sIw8{*K<+m5 ze1prDBt=J-+d*Z2a|43nAGDB*P&9{=Had_pVd&2p2^Kjig@#`cG^MN6@yoHpC?r>v zP`ljV;Z)v{96TdzW!;D}WO2Nm>BP=dGFQl)8P9={&&ly;O;;dNK1|z}{N7e0(XfSt zLvG&zFIG^GlsW!WMsRa_Y9y|~b+ijwsMI^C$E718C8i*a$>kxu5PuKz(>dcJkG;&Y z_05oQ%T^G%L^=2z9lr7M@|Gf7y1(er?OTM~Pf*?RWLqIDgXG(`3x=KM7R4amrZTu^ z9sw@o7rZ_NO5$5x#|Ai*GXl5`)J#KoUbNYy@Bl9l2@kuIgl9gg6MvQuvcv};lIJyS z?bEMx8m2x=G2L*R|fc8p12^{g1tQfXcg*_OIALz z-t7sln|8c+8LyWbq{35Dz6x*jUI$RO9=ht}lsvWgQ*wKzW!7w~9s!fKA89lsqzV(c!pv6?Ar zu`^b7+X)eOYF1Y)Qxo&9NUC_2KVDfI4#~D)A6BzjZ5k=3gRt9KhS^c4W4$r2U*(iL$JS!#ZJRpbj<2-~XVT#8AFIi>{+>!F%P54XLxdo6~I25C7u_+0`4!Q$EgsR+~C# z%6xV|k&+A>e#Z&_JY#_XehXhwUl)e4cD?N{wASM<)NZJ!(5_#P_dcAKFwM^4bOvz& zc|WYLo|Ch|fR(sfK4wO!%c6)K=J7w0vgi_&a?Tkj?BTi9MwW zjyyd1Y5bZ^e!iJap4ZtZ%2b<-q7^<`HoK=B^^(M@_w;-gw&A{oW5^P5p~gT$qw*}a zy00MopZK$|)qi*XoNZMNrY&8ksv*fZUR&N3m868tk&vSj}6g{AGq$e%Zb%4wS-A%T}Z zrDs?%w+lCOAX2J!u?iBJm0GbHAs*S^?Zm8y*Ti|nKU9y8N{w9%(okDTl#CRW*LKcI z0x#j|U)`6pYYr-t{K`~#rKC^`i@p>XdD_6N6v`>V32~&EXROvFF7bMIXD>6wh*W#$i$Sik?$gidEvsIMOc7N&;4pz&$*@NL+TX zy@K(v3S;|co(tt-zYT(_$2W>Eqe4dWl`M8KoU5nDKaFlXOSE`D`dtL>w6A*-WrF$x i>d&Wcv)00C_X0ssI2P?5W+00006VoOIv0RI60 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 !rfA6OB3}YUMJf)O`hhfNJ6&hyrOi3g$i*Qhb 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 Ef;)rG6951J diff --git a/data/pixmaps/new-confirm.png b/data/pixmaps/new-confirm.png new file mode 100644 index 0000000000000000000000000000000000000000..9361eb021e3eb6be3c7639cbdced7c0f6639b819 GIT binary patch literal 4152 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 literal 0 HcmV?d00001 diff --git a/data/pixmaps/new-select.png b/data/pixmaps/new-select.png new file mode 100644 index 0000000000000000000000000000000000000000..e9e4a5b02ef076f6cee1e570bcf533ae1e0ffa0f GIT binary patch literal 9231 zcmX9^2RPO5+qbfJ)(=I6%m}4yvW}T~j6(Jb*-3b_hk4hL`(?(?kWV+z&BiX9c6i( z&jYM$@E<}8HDv{y3+&g2#)1TRg~V0G$Q=iV4BkpcgBxIF76&g9c_1_tiGC2!(F*b1 zA68Sx!C}WiD9Gvg{Mc-K?y7f?`uE~~!GUw(*bmhBt!vk)@i?ee2m>#fTAnapezE
    +

    -Basic LibGlabels Usage

    +Basic LibGlabels Usage
    -Database — Database of pre-defined templates +Database — Database of pre-defined templates
    -The lglTemplate Structure — How templates are represented in memory +The lglTemplate Structure — How templates are represented in memory
    -The lglPaper Structure — Paper size definitions +The lglPaper Structure — Paper size definitions
    -The lglCategory Structure — Template category definitions +The lglCategory Structure — Template category definitions +
    +
    +The lglVendor Structure — Vendor definitions
    + Generated by GTK-Doc V1.17 - + \ No newline at end of file diff --git a/docs/libglabels/html/ch02.html b/docs/libglabels/html/ch02.html index bfe8fb9a..3d69c1f2 100644 --- a/docs/libglabels/html/ch02.html +++ b/docs/libglabels/html/ch02.html @@ -3,45 +3,45 @@ Working Directly With LibGlabels XML - - - - - - + + + + + + - - - - + - - + + -
    +

    -Working Directly With LibGlabels XML

    +Working Directly With LibGlabels XML
    -XML Paper Functions — Functions to parse glabels XML paper definition files +XML Paper Functions — Functions to parse glabels XML paper definition files
    -XML Category Functions — Functions to parse glabels XML category definition files +XML Category Functions — Functions to parse glabels XML category definition files
    -XML Template Functions — Functions to create and parse glabels XML template nodes and files +XML Template Functions — Functions to create and parse glabels XML template nodes and files
    -XML Helper Functions — Functions to help format and parse glabels XML properties +XML Vendor Functions — Functions to parse glabels XML vendor descriptions +
    +
    +XML Helper Functions — Functions to help format and parse glabels XML properties
    + Generated by GTK-Doc V1.17 - + \ No newline at end of file diff --git a/docs/libglabels/html/ch03.html b/docs/libglabels/html/ch03.html index 9705f9f7..82f9eb10 100644 --- a/docs/libglabels/html/ch03.html +++ b/docs/libglabels/html/ch03.html @@ -3,39 +3,36 @@ Miscellaneous - - - - - - + + + + + + - - - - + - - + + -
    +

    -Miscellaneous

    +Miscellaneous
    -Enumerations — Common enumerations used by libglabels +Units — Type to represent units of distance supported by libglabels
    -String Utility Functions — String utility functions provided by libglabels +String Utility Functions — String utility functions provided by libglabels
    + Generated by GTK-Doc V1.17 - + \ No newline at end of file diff --git a/docs/libglabels/html/index.html b/docs/libglabels/html/index.html index 2670d9f1..69662242 100644 --- a/docs/libglabels/html/index.html +++ b/docs/libglabels/html/index.html @@ -2,66 +2,69 @@ -LibGlabels Reference Manual - - +LibGlabels 3.0 Reference Manual + + - + - - - -
    +
    -
    +

    Basic LibGlabels Usage
    -Database — Database of pre-defined templates +Database — Database of pre-defined templates
    -The lglTemplate Structure — How templates are represented in memory +The lglTemplate Structure — How templates are represented in memory
    -The lglPaper Structure — Paper size definitions +The lglPaper Structure — Paper size definitions
    -The lglCategory Structure — Template category definitions +The lglCategory Structure — Template category definitions +
    +
    +The lglVendor Structure — Vendor definitions
    Working Directly With LibGlabels XML
    -XML Paper Functions — Functions to parse glabels XML paper definition files +XML Paper Functions — Functions to parse glabels XML paper definition files +
    +
    +XML Category Functions — Functions to parse glabels XML category definition files
    -XML Category Functions — Functions to parse glabels XML category definition files +XML Template Functions — Functions to create and parse glabels XML template nodes and files
    -XML Template Functions — Functions to create and parse glabels XML template nodes and files +XML Vendor Functions — Functions to parse glabels XML vendor descriptions
    -XML Helper Functions — Functions to help format and parse glabels XML properties +XML Helper Functions — Functions to help format and parse glabels XML properties
    Miscellaneous
    -Enumerations — Common enumerations used by libglabels +Units — Type to represent units of distance supported by libglabels
    -String Utility Functions — String utility functions provided by libglabels +String Utility Functions — String utility functions provided by libglabels
    + Generated by GTK-Doc V1.17
    - + \ No newline at end of file diff --git a/docs/libglabels/html/index.sgml b/docs/libglabels/html/index.sgml index 98deb568..31c3c0e5 100644 --- a/docs/libglabels/html/index.sgml +++ b/docs/libglabels/html/index.sgml @@ -1,162 +1,225 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/libglabels/html/libglabels-3.0-category.html b/docs/libglabels/html/libglabels-3.0-category.html new file mode 100644 index 00000000..315f28dc --- /dev/null +++ b/docs/libglabels/html/libglabels-3.0-category.html @@ -0,0 +1,153 @@ + + + + +The lglCategory Structure + + + + + + + + + + + + + + + + + + + +
    +
    +
    + + +
    +

    The lglCategory Structure

    +

    The lglCategory Structure — Template category definitions

    +
    +
    +

    Synopsis

    +
    +#include <libglabels/lgl-category.h>
    +
    +struct              lglCategory;
    +lglCategory *       lgl_category_new                    (gchar *id,
    +                                                         gchar *name);
    +lglCategory *       lgl_category_dup                    (const lglCategory *orig);
    +void                lgl_category_free                   (lglCategory *category);
    +
    +
    +
    +

    Description

    +

    +This section describes a structure for representing a category of stationary and related +functions. +

    +
    +
    +

    Details

    +
    +

    struct lglCategory

    +
    struct lglCategory {
    +        gchar               *id;     /* Unique ID of category */
    +        gchar               *name;   /* Localized name of category */
    +};
    +
    +

    +This structure defines a category. +

    +
    ++ + + + + + + + + + +

    gchar *id;

    Category ID.

    gchar *name;

    Localized category name.
    +
    +
    +
    +

    lgl_category_new ()

    +
    lglCategory *       lgl_category_new                    (gchar *id,
    +                                                         gchar *name);
    +

    +Allocates and constructs a new lglCategory structure. +

    +
    ++ + + + + + + + + + + + + + +

    id :

    Id of category definition. (E.g. label, card, etc.) Should be +unique.

    name :

    Localized name of category.

    Returns :

    a pointer to a newly allocated lglCategory structure.
    +
    +
    +
    +

    lgl_category_dup ()

    +
    lglCategory *       lgl_category_dup                    (const lglCategory *orig);
    +

    +Duplicates an existing lglCategory structure. +

    +
    ++ + + + + + + + + + +

    orig :

    +lglCategory structure to be duplicated.

    Returns :

    a pointer to a newly allocated lglCategory structure.
    +
    +
    +
    +

    lgl_category_free ()

    +
    void                lgl_category_free                   (lglCategory *category);
    +

    +Free all memory associated with an existing lglCategory structure. +

    +
    ++ + + + +

    category :

    pointer to lglCategory structure to be freed.
    +
    +
    +
    + + + \ No newline at end of file diff --git a/docs/libglabels/html/libglabels-3.0-db.html b/docs/libglabels/html/libglabels-3.0-db.html new file mode 100644 index 00000000..29f3c9c8 --- /dev/null +++ b/docs/libglabels/html/libglabels-3.0-db.html @@ -0,0 +1,1024 @@ + + + + +Database + + + + + + + + + + + + + + + + + + + +
    +
    +
    + + +
    +

    Database

    +

    Database — Database of pre-defined templates

    +
    +
    +

    Synopsis

    +
    +#include <libglabels/lgl-db.h>
    +
    +enum                lglDbRegStatus;
    +enum                lglDbDeleteStatus;
    +
    +void                lgl_db_init                         (void);
    +
    +void                (*lglDbNotifyFunc)                  (gpointer user_data);
    +gulong              lgl_db_notify_add                   (lglDbNotifyFunc func,
    +                                                         gpointer user_data);
    +void                lgl_db_notify_remove                (gulong id);
    +
    +GList *             lgl_db_get_paper_id_list            (void);
    +void                lgl_db_free_paper_id_list           (GList *ids);
    +GList *             lgl_db_get_paper_name_list          (void);
    +void                lgl_db_free_paper_name_list         (GList *names);
    +lglPaper *          lgl_db_lookup_paper_from_id         (const gchar *id);
    +lglPaper *          lgl_db_lookup_paper_from_name       (const gchar *name);
    +gchar *             lgl_db_lookup_paper_id_from_name    (const gchar *name);
    +gchar *             lgl_db_lookup_paper_name_from_id    (const gchar *id);
    +gboolean            lgl_db_is_paper_id_known            (const gchar *id);
    +gboolean            lgl_db_is_paper_id_other            (const gchar *id);
    +
    +GList *             lgl_db_get_category_id_list         (void);
    +void                lgl_db_free_category_id_list        (GList *ids);
    +GList *             lgl_db_get_category_name_list       (void);
    +void                lgl_db_free_category_name_list      (GList *names);
    +lglCategory *       lgl_db_lookup_category_from_id      (const gchar *id);
    +lglCategory *       lgl_db_lookup_category_from_name    (const gchar *name);
    +gchar *             lgl_db_lookup_category_id_from_name (const gchar *name);
    +gchar *             lgl_db_lookup_category_name_from_id (const gchar *id);
    +gboolean            lgl_db_is_category_id_known         (const gchar *id);
    +
    +GList *             lgl_db_get_brand_list               (const gchar *paper_id,
    +                                                         const gchar *category_id);
    +void                lgl_db_free_brand_list              (GList *brands);
    +
    +lglDbRegStatus      lgl_db_register_template            (const lglTemplate *template);
    +lglDbDeleteStatus   lgl_db_delete_template_by_brand_part
    +                                                        (const gchar *brand,
    +                                                         const gchar *part);
    +lglDbDeleteStatus   lgl_db_delete_template_by_name      (const gchar *name);
    +gboolean            lgl_db_does_template_exist          (const gchar *brand,
    +                                                         const gchar *part);
    +gboolean            lgl_db_does_template_name_exist     (const gchar *name);
    +GList *             lgl_db_get_template_name_list_all   (const gchar *brand,
    +                                                         const gchar *paper_id,
    +                                                         const gchar *category_id);
    +GList *             lgl_db_get_similar_template_name_list
    +                                                        (const gchar *name);
    +void                lgl_db_free_template_name_list      (GList *names);
    +lglTemplate *       lgl_db_lookup_template_from_name    (const gchar *name);
    +lglTemplate *       lgl_db_lookup_template_from_brand_part
    +                                                        (const gchar *brand,
    +                                                         const gchar *part);
    +
    +GList *             lgl_db_get_vendor_name_list         (void);
    +void                lgl_db_free_vendor_name_list        (GList *names);
    +gboolean            lgl_db_is_vendor_name_known         (const gchar *name);
    +lglVendor *         lgl_db_lookup_vendor_from_name      (const gchar *name);
    +
    +void                lgl_db_print_known_papers           (void);
    +void                lgl_db_print_known_categories       (void);
    +void                lgl_db_print_known_templates        (void);
    +void                lgl_db_print_known_vendors          (void);
    +
    +
    +
    +

    Description

    +

    +This section describes a set of functions to locate and add templates and related information in +the LibGlabels template database. +

    +
    +
    +

    Details

    +
    +

    enum lglDbRegStatus

    +
    typedef enum
    +{
    +        LGL_DB_REG_OK                =  0,
    +        LGL_DB_REG_BAD_PAPER_ID      = -1,
    +        LGL_DB_REG_BRAND_PART_EXISTS = -2,
    +        LGL_DB_REG_FILE_WRITE_ERROR  = -3
    +} lglDbRegStatus;
    +
    +

    +This enumeration defines a set of possible return values for lgl_db_register_template(). +

    +
    ++ + + + + + + + + + + + + + + + + + +

    LGL_DB_REG_OK

    Registration successful. +

    LGL_DB_REG_BAD_PAPER_ID

    Registration failed because paper id is unknown. +

    LGL_DB_REG_BRAND_PART_EXISTS

    Registration failed because template with same brand and part name/number already exists. +

    LGL_DB_REG_FILE_WRITE_ERROR

    Registration failed because an error while writing to disk. +
    +
    +
    +
    +

    enum lglDbDeleteStatus

    +
    typedef enum
    +{
    +        LGL_DB_DELETE_OK                =  0,
    +        LGL_DB_DELETE_DOES_NOT_EXIST    = -1,
    +        LGL_DB_DELETE_NOT_USER_DEFINED  = -2,
    +        LGL_DB_DELETE_FILE_ERROR        = -3
    +} lglDbDeleteStatus;
    +
    +

    +This enumeration defines a set of possible return values for lgl_db_delete_template_by_name() or lgl_db_delete_template_by_brand_part(). +

    +
    ++ + + + + + + + + + + + + + + + + + +

    LGL_DB_DELETE_OK

    Deletion successful. +

    LGL_DB_DELETE_DOES_NOT_EXIST

    Deletion failed because template with given brand and part name/number does not exist. +

    LGL_DB_DELETE_NOT_USER_DEFINED

    Deletion failed because given template is not a user defined template. +

    LGL_DB_DELETE_FILE_ERROR

    Deletion failed because of an error while attempting to remove template from disk. +
    +
    +
    +
    +

    lgl_db_init ()

    +
    void                lgl_db_init                         (void);
    +

    +Initialize all libglabels subsystems. It is not necessary for an application to call +lgl_db_init(), because libglabels will initialize on demand. An application programmer may +choose to call lgl_db_init() at startup to minimize the impact of the first libglabels call +on GUI response time. +

    +

    +This function initializes its paper definitions, category definitions, vendor definitions, +and its template database. It will search both system and user template directories to locate +this data. +

    +
    +
    +
    +

    lglDbNotifyFunc ()

    +
    void                (*lglDbNotifyFunc)                  (gpointer user_data);
    +

    +Defines the type of notify callback function to be called when database changes. +

    +
    ++ + + + +

    user_data :

    Pointer to user data that is passed to the notify function.
    +
    +
    +
    +

    lgl_db_notify_add ()

    +
    gulong              lgl_db_notify_add                   (lglDbNotifyFunc func,
    +                                                         gpointer user_data);
    +

    +Register a notification callback function to be called when the database changes. +

    +
    ++ + + + + + + + + + + + + + +

    func :

    Callback function to be called when database changes.

    user_data :

    Passback user data to supply to callback function.

    Returns :

    an ID for this notification registration.
    +
    +
    +
    +

    lgl_db_notify_remove ()

    +
    void                lgl_db_notify_remove                (gulong id);
    +

    +Cancel a previous registration a notification callback function. +

    +
    ++ + + + +

    id :

    ID of notification registration to cancel (see lgl_db_notify_add()).
    +
    +
    +
    +

    lgl_db_get_paper_id_list ()

    +
    GList *             lgl_db_get_paper_id_list            (void);
    +

    +Get a list of all paper ids known to libglabels. +

    +
    ++ + + + +

    Returns :

    a list of paper ids.
    +
    +
    +
    +

    lgl_db_free_paper_id_list ()

    +
    void                lgl_db_free_paper_id_list           (GList *ids);
    +

    +Free up all storage associated with an id list obtained with +lgl_db_get_paper_id_list(). +

    +
    ++ + + + +

    ids :

    List of id strings to be freed.
    +
    +
    +
    +

    lgl_db_get_paper_name_list ()

    +
    GList *             lgl_db_get_paper_name_list          (void);
    +

    +Get a list of all localized paper names known to libglabels. +

    +
    ++ + + + +

    Returns :

    a list of localized paper names.
    +
    +
    +
    +

    lgl_db_free_paper_name_list ()

    +
    void                lgl_db_free_paper_name_list         (GList *names);
    +

    +Free up all storage associated with a name list obtained with +lgl_db_get_paper_name_list(). +

    +
    ++ + + + +

    names :

    List of localized paper name strings to be freed.
    +
    +
    +
    +

    lgl_db_lookup_paper_from_id ()

    +
    lglPaper *          lgl_db_lookup_paper_from_id         (const gchar *id);
    +

    +Lookup paper definition from id string. +

    +
    ++ + + + + + + + + + +

    id :

    paper id string

    Returns :

    pointer to a newly allocated lglPaper structure.
    +
    +
    +
    +

    lgl_db_lookup_paper_from_name ()

    +
    lglPaper *          lgl_db_lookup_paper_from_name       (const gchar *name);
    +

    +Lookup paper definition from localized paper name string. +

    +
    ++ + + + + + + + + + +

    name :

    localized paper name string

    Returns :

    pointer to a newly allocated lglPaper structure.
    +
    +
    +
    +

    lgl_db_lookup_paper_id_from_name ()

    +
    gchar *             lgl_db_lookup_paper_id_from_name    (const gchar *name);
    +

    +Lookup paper name string from localized paper name string. +

    +
    ++ + + + + + + + + + +

    name :

    localized paper name stringp

    Returns :

    pointer to a newly allocated id string.
    +
    +
    +
    +

    lgl_db_lookup_paper_name_from_id ()

    +
    gchar *             lgl_db_lookup_paper_name_from_id    (const gchar *id);
    +

    +Lookup localized paper name string from paper id string. +

    +
    ++ + + + + + + + + + +

    id :

    paper id string

    Returns :

    pointer to a newly allocated localized paper name string.
    +
    +
    +
    +

    lgl_db_is_paper_id_known ()

    +
    gboolean            lgl_db_is_paper_id_known            (const gchar *id);
    +

    +Determine if given paper id is known to libglabels. +

    +
    ++ + + + + + + + + + +

    id :

    paper id to test

    Returns :

    TRUE if id is known, otherwise FALSE.
    +
    +
    +
    +

    lgl_db_is_paper_id_other ()

    +
    gboolean            lgl_db_is_paper_id_other            (const gchar *id);
    +

    +Determine if given paper id is the special id "Other." +

    +
    ++ + + + + + + + + + +

    id :

    paper id to test

    Returns :

    TRUE if id is "Other", otherwise FALSE.
    +
    +
    +
    +

    lgl_db_get_category_id_list ()

    +
    GList *             lgl_db_get_category_id_list         (void);
    +

    +Get a list of all category ids known to libglabels. +

    +
    ++ + + + +

    Returns :

    a list of category ids.
    +
    +
    +
    +

    lgl_db_free_category_id_list ()

    +
    void                lgl_db_free_category_id_list        (GList *ids);
    +

    +Free up all storage associated with an id list obtained with +lgl_db_get_category_id_list(). +

    +
    ++ + + + +

    ids :

    List of id strings to be freed.
    +
    +
    +
    +

    lgl_db_get_category_name_list ()

    +
    GList *             lgl_db_get_category_name_list       (void);
    +

    +Get a list of all localized category names known to libglabels. +

    +
    ++ + + + +

    Returns :

    a list of localized category names.
    +
    +
    +
    +

    lgl_db_free_category_name_list ()

    +
    void                lgl_db_free_category_name_list      (GList *names);
    +

    +Free up all storage associated with a name list obtained with +lgl_db_get_category_name_list(). +

    +
    ++ + + + +

    names :

    List of localized category name strings to be freed.
    +
    +
    +
    +

    lgl_db_lookup_category_from_id ()

    +
    lglCategory *       lgl_db_lookup_category_from_id      (const gchar *id);
    +

    +Lookup category definition from id string. +

    +
    ++ + + + + + + + + + +

    id :

    category id string

    Returns :

    pointer to a newly allocated lglCategory structure.
    +
    +
    +
    +

    lgl_db_lookup_category_from_name ()

    +
    lglCategory *       lgl_db_lookup_category_from_name    (const gchar *name);
    +

    +Lookup category definition from localized category name string. +

    +
    ++ + + + + + + + + + +

    name :

    localized category name string

    Returns :

    pointer to a newly allocated lglCategory structure.
    +
    +
    +
    +

    lgl_db_lookup_category_id_from_name ()

    +
    gchar *             lgl_db_lookup_category_id_from_name (const gchar *name);
    +

    +Lookup category name string from localized category name string. +

    +
    ++ + + + + + + + + + +

    name :

    localized category name stringp

    Returns :

    pointer to a newly allocated id string.
    +
    +
    +
    +

    lgl_db_lookup_category_name_from_id ()

    +
    gchar *             lgl_db_lookup_category_name_from_id (const gchar *id);
    +

    +Lookup localized category name string from category id string. +

    +
    ++ + + + + + + + + + +

    id :

    category id string

    Returns :

    pointer to a newly allocated localized category name string.
    +
    +
    +
    +

    lgl_db_is_category_id_known ()

    +
    gboolean            lgl_db_is_category_id_known         (const gchar *id);
    +

    +Determine if given category id is known to libglabels. +

    +
    ++ + + + + + + + + + +

    id :

    category id to test

    Returns :

    TRUE if id is known, otherwise FALSE.
    +
    +
    +
    +

    lgl_db_get_brand_list ()

    +
    GList *             lgl_db_get_brand_list               (const gchar *paper_id,
    +                                                         const gchar *category_id);
    +

    +Get a list of all valid brands of templates in the template database. +Results can be filtered by page size and/or template category. A list of valid page +sizes can be obtained using lgl_db_get_paper_id_list(). A list of valid template +categories can be obtained using lgl_db_get_category_id_list(). +

    +
    ++ + + + + + + + + + + + + + +

    paper_id :

    If non NULL, limit results to given page size.

    category_id :

    If non NULL, limit results to given template category.

    Returns :

    a list of brands
    +
    +
    +
    +

    lgl_db_free_brand_list ()

    +
    void                lgl_db_free_brand_list              (GList *brands);
    +

    +Free up all storage associated with a list of template names obtained with +lgl_db_get_brand_list(). +

    +
    ++ + + + +

    brands :

    List of template brand strings to be freed.
    +
    +
    +
    +

    lgl_db_register_template ()

    +
    lglDbRegStatus      lgl_db_register_template            (const lglTemplate *template);
    +

    +Register a template. This function adds a template to the template database. +The template will be stored in an individual XML file in the user template directory. +

    +
    ++ + + + + + + + + + +

    template :

    Pointer to a template structure to add to database.

    Returns :

    Status of registration attempt (lglDbRegStatus)
    +
    +
    +
    +

    lgl_db_delete_template_by_brand_part ()

    +
    lglDbDeleteStatus   lgl_db_delete_template_by_brand_part
    +                                                        (const gchar *brand,
    +                                                         const gchar *part);
    +

    +Delete a user defined template. This function deletes a template from +the template database. The individual XML file in the user template +directory will also be removed. +

    +
    ++ + + + + + + + + + + + + + +

    brand :

    Brand name or vendor of template to be deleted.

    part :

    Part name or number of template to be deleted.

    Returns :

    Status of registration attempt (lglDbDeleteStatus)
    +
    +
    +
    +

    lgl_db_delete_template_by_name ()

    +
    lglDbDeleteStatus   lgl_db_delete_template_by_name      (const gchar *name);
    +

    +Delete a user defined template. This function deletes a template from +the template database. The individual XML file in the user template +directory will also be removed. +

    +
    ++ + + + + + + + + + +

    name :

    Name of template to be deleted.

    Returns :

    Status of registration attempt (lglDbDeleteStatus)
    +
    +
    +
    +

    lgl_db_does_template_exist ()

    +
    gboolean            lgl_db_does_template_exist          (const gchar *brand,
    +                                                         const gchar *part);
    +

    +This function tests whether a template with the given brand and part name/number exists. +

    +
    ++ + + + + + + + + + + + + + +

    brand :

    Brand name.

    part :

    Part name/number.

    Returns :

    TRUE if such a template exists in the database.
    +
    +
    +
    +

    lgl_db_does_template_name_exist ()

    +
    gboolean            lgl_db_does_template_name_exist     (const gchar *name);
    +

    +This function test whether a template with the given name exists. +

    +
    ++ + + + + + + + + + +

    name :

    name string

    Returns :

    TRUE if such a template exists in the database.
    +
    +
    +
    +

    lgl_db_get_template_name_list_all ()

    +
    GList *             lgl_db_get_template_name_list_all   (const gchar *brand,
    +                                                         const gchar *paper_id,
    +                                                         const gchar *category_id);
    +

    +Get a list of all valid names of templates in the template database. +Results can be filtered by page size and/or template category. A list of valid page +sizes can be obtained using lgl_db_get_paper_id_list(). A list of valid template +categories can be obtained using lgl_db_get_category_id_list(). +

    +
    ++ + + + + + + + + + + + + + + + + + +

    brand :

    If non NULL, limit results to given brand

    paper_id :

    If non NULL, limit results to given page size.

    category_id :

    If non NULL, limit results to given template category.

    Returns :

    a list of template names.
    +
    +
    +
    +

    lgl_db_get_similar_template_name_list ()

    +
    GList *             lgl_db_get_similar_template_name_list
    +                                                        (const gchar *name);
    +

    +Get a list of all valid names of templates in the template database that +have the same size and layout characteristics as the given template. +

    +
    ++ + + + + + + + + + +

    name :

    Name of template under test.

    Returns :

    a list of template names.
    +
    +
    +
    +

    lgl_db_free_template_name_list ()

    +
    void                lgl_db_free_template_name_list      (GList *names);
    +

    +Free up all storage associated with a list of template names obtained with +lgl_db_get_template_name_list_all(). +

    +
    ++ + + + +

    names :

    List of template name strings to be freed.
    +
    +
    +
    +

    lgl_db_lookup_template_from_name ()

    +
    lglTemplate *       lgl_db_lookup_template_from_name    (const gchar *name);
    +

    +Lookup template in template database from name string. +

    +
    ++ + + + + + + + + + +

    name :

    name string

    Returns :

    pointer to a newly allocated lglTemplate structure.
    +
    +
    +
    +

    lgl_db_lookup_template_from_brand_part ()

    +
    lglTemplate *       lgl_db_lookup_template_from_brand_part
    +                                                        (const gchar *brand,
    +                                                         const gchar *part);
    +

    +Lookup template in template database from brand and part strings. +

    +
    ++ + + + + + + + + + + + + + +

    brand :

    brand name string

    part :

    part name string

    Returns :

    pointer to a newly allocated lglTemplate structure.
    +
    +
    +
    +

    lgl_db_get_vendor_name_list ()

    +
    GList *             lgl_db_get_vendor_name_list         (void);
    +

    +Get a list of all localized vendor names known to libglabels. +

    +
    ++ + + + +

    Returns :

    a list of localized vendor names.
    +
    +
    +
    +

    lgl_db_free_vendor_name_list ()

    +
    void                lgl_db_free_vendor_name_list        (GList *names);
    +

    +Free up all storage associated with a name list obtained with +lgl_db_get_vendor_name_list(). +

    +
    ++ + + + +

    names :

    List of localized vendor name strings to be freed.
    +
    +
    +
    +

    lgl_db_is_vendor_name_known ()

    +
    gboolean            lgl_db_is_vendor_name_known         (const gchar *name);
    +

    +Determine if given vendor id is known to libglabels. +

    +
    ++ + + + + + + + + + +

    name :

    vendor name to test

    Returns :

    TRUE if id is known, otherwise FALSE.
    +
    +
    +
    +

    lgl_db_lookup_vendor_from_name ()

    +
    lglVendor *         lgl_db_lookup_vendor_from_name      (const gchar *name);
    +

    +Lookup vendor definition from localized vendor name string. +

    +
    ++ + + + + + + + + + +

    name :

    localized vendor name string

    Returns :

    pointer to a newly allocated lglVendor structure.
    +
    +
    +
    +

    lgl_db_print_known_papers ()

    +
    void                lgl_db_print_known_papers           (void);
    +

    +For debugging purposes: print a list of all paper definitions known to +libglabels. +

    +
    +
    +
    +

    lgl_db_print_known_categories ()

    +
    void                lgl_db_print_known_categories       (void);
    +

    +For debugging purposes: print a list of all category definitions known to +libglabels. +

    +
    +
    +
    +

    lgl_db_print_known_templates ()

    +
    void                lgl_db_print_known_templates        (void);
    +

    +Print all known templates (for debugging purposes). +

    +
    +
    +
    +

    lgl_db_print_known_vendors ()

    +
    void                lgl_db_print_known_vendors          (void);
    +

    +For debugging purposes: print a list of all vendor definitions known to +libglabels. +

    +
    +
    +
    + + + \ No newline at end of file diff --git a/docs/libglabels/html/libglabels-3.0-paper.html b/docs/libglabels/html/libglabels-3.0-paper.html new file mode 100644 index 00000000..e074aad3 --- /dev/null +++ b/docs/libglabels/html/libglabels-3.0-paper.html @@ -0,0 +1,186 @@ + + + + +The lglPaper Structure + + + + + + + + + + + + + + + + + + + +
    +
    +
    + + +
    +

    The lglPaper Structure

    +

    The lglPaper Structure — Paper size definitions

    +
    +
    +

    Synopsis

    +
    +#include <libglabels/lgl-paper.h>
    +
    +struct              lglPaper;
    +lglPaper *          lgl_paper_new                       (gchar *id,
    +                                                         gchar *name,
    +                                                         gdouble width,
    +                                                         gdouble height,
    +                                                         gchar *pwg_size);
    +lglPaper *          lgl_paper_dup                       (const lglPaper *orig);
    +void                lgl_paper_free                      (lglPaper *paper);
    +
    +
    +
    +

    Description

    +

    +This section describes a structure for representing a paper size definition +and related functions. +

    +
    +
    +

    Details

    +
    +

    struct lglPaper

    +
    struct lglPaper {
    +        gchar               *id;       /* Unique ID of paper definition */
    +        gchar               *name;     /* Localized name of paper */
    +        gdouble              width;    /* Width (in points) */
    +        gdouble              height;   /* Height (in points) */
    +        gchar               *pwg_size; /* PWG 5101.1-2002 size name */
    +};
    +
    +

    +This structure defines a paper (page) size. +

    +
    ++ + + + + + + + + + + + + + + + + + + + + + +

    gchar *id;

    Paper size ID.

    gchar *name;

    Localized paper size name.

    gdouble width;

    Width of paper in points.

    gdouble height;

    Height of paper in points.

    gchar *pwg_size;

    Paper size string as defined in PWG 5101.1-2002.
    +
    +
    +
    +

    lgl_paper_new ()

    +
    lglPaper *          lgl_paper_new                       (gchar *id,
    +                                                         gchar *name,
    +                                                         gdouble width,
    +                                                         gdouble height,
    +                                                         gchar *pwg_size);
    +

    +Allocates and constructs a new lglPaper structure. +

    +
    ++ + + + + + + + + + + + + + + + + + + + + + + + + + +

    id :

    Id of paper definition. (E.g. US-Letter, A4, etc.) Should be +unique.

    name :

    Localized name of paper.

    width :

    Width of paper in points.

    height :

    Height of paper in points.

    pwg_size :

    PWG 5101.1-2002 size name.

    Returns :

    a pointer to a newly allocated lglPaper structure.
    +
    +
    +
    +

    lgl_paper_dup ()

    +
    lglPaper *          lgl_paper_dup                       (const lglPaper *orig);
    +

    +Duplicates an existing lglPaper structure. +

    +
    ++ + + + + + + + + + +

    orig :

    +lglPaper structure to be duplicated.

    Returns :

    a pointer to a newly allocated lglPaper structure.
    +
    +
    +
    +

    lgl_paper_free ()

    +
    void                lgl_paper_free                      (lglPaper *paper);
    +

    +Free all memory associated with an existing lglPaper structure. +

    +
    ++ + + + +

    paper :

    pointer to lglPaper structure to be freed.
    +
    +
    +
    + + + \ No newline at end of file diff --git a/docs/libglabels/html/libglabels-3.0-str.html b/docs/libglabels/html/libglabels-3.0-str.html new file mode 100644 index 00000000..f5abbf98 --- /dev/null +++ b/docs/libglabels/html/libglabels-3.0-str.html @@ -0,0 +1,169 @@ + + + + +String Utility Functions + + + + + + + + + + + + + + + + + + +
    +
    +
    + + +
    +

    String Utility Functions

    +

    String Utility Functions — String utility functions provided by libglabels

    +
    +
    +

    Synopsis

    +
    +#include <libglabels/lgl-str.h>
    +
    +gint                lgl_str_utf8_casecmp                (const gchar *s1,
    +                                                         const gchar *s2);
    +gint                lgl_str_part_name_cmp               (const gchar *s1,
    +                                                         const gchar *s2);
    +gchar *             lgl_str_format_fraction             (gdouble x);
    +
    +
    +
    +

    Description

    +

    +This section defines string utility functions used by libglabels and of +possible use to a user of libglabels. +

    +
    +
    +

    Details

    +
    +

    lgl_str_utf8_casecmp ()

    +
    gint                lgl_str_utf8_casecmp                (const gchar *s1,
    +                                                         const gchar *s2);
    +

    +Compare two UTF-8 strings, ignoring the case of characters. +

    +

    +This function should be used only on strings that are known to be encoded +in UTF-8 or a compatible UTF-8 subset. +

    +
    ++ + + + + + + + + + + + + + +

    s1 :

    string to compare with s2.

    s2 :

    string to compare with s1.

    Returns :

    0 if the strings match, a negative value if s1 < s2, +or a positive value if s1 > s2.
    +
    +
    +
    +

    lgl_str_part_name_cmp ()

    +
    gint                lgl_str_part_name_cmp               (const gchar *s1,
    +                                                         const gchar *s2);
    +

    +Compare two UTF-8 strings representing part names or numbers. This function +uses a natural sort order: +

    +

    + - Ignores case. +

    +

    + - Strings are divided into chunks (numeric and non-numeric) +

    +

    + - Non-numeric chunks are compared character by character +

    +

    + - Numerical chunks are compared numerically, so that "20" precedes "100". +

    +

    + - Comparison of chunks is performed left to right until the first difference + is encountered or all chunks evaluate as equal. +

    +

    +This function should be used only on strings that are known to be encoded +in UTF-8 or a compatible UTF-8 subset. +

    +

    +Numeric chunks are converted to 64 bit unsigned integers for comparison, +so the behaviour may be unpredictable for numeric chunks that exceed +18446744073709551615. +

    +
    ++ + + + + + + + + + + + + + +

    s1 :

    string to compare with s2.

    s2 :

    string to compare with s1.

    Returns :

    0 if the strings match, a negative value if s1 < s2, +or a positive value if s1 > s2.
    +
    +
    +
    +

    lgl_str_format_fraction ()

    +
    gchar *             lgl_str_format_fraction             (gdouble x);
    +

    +Create fractional representation of number, if possible. Uses UTF-8 superscripts and +subscripts for numerator and denominator values respecively. +

    +
    ++ + + + + + + + + + +

    x :

    Floating point number to convert to fractional notation

    Returns :

    UTF-8 string containing fractional representation of x.
    +
    +
    +
    + + + \ No newline at end of file diff --git a/docs/libglabels/html/libglabels-3.0-template.html b/docs/libglabels/html/libglabels-3.0-template.html new file mode 100644 index 00000000..5520b929 --- /dev/null +++ b/docs/libglabels/html/libglabels-3.0-template.html @@ -0,0 +1,1891 @@ + + + + +The lglTemplate Structure + + + + + + + + + + + + + + + + + + + +
    +
    +
    + + +
    +

    The lglTemplate Structure

    +

    The lglTemplate Structure — How templates are represented in memory

    +
    +
    +

    Synopsis

    +
    +#include <libglabels/lgl-template.h>
    +
    +struct              lglTemplate;
    +
    +enum                lglTemplateFrameShape;
    +union               lglTemplateFrame;
    +struct              lglTemplateFrameAll;
    +struct              lglTemplateFrameRect;
    +struct              lglTemplateFrameEllipse;
    +struct              lglTemplateFrameRound;
    +struct              lglTemplateFrameCD;
    +
    +struct              lglTemplateLayout;
    +
    +enum                lglTemplateMarkupType;
    +union               lglTemplateMarkup;
    +struct              lglTemplateMarkupMargin;
    +struct              lglTemplateMarkupLine;
    +struct              lglTemplateMarkupCircle;
    +struct              lglTemplateMarkupRect;
    +struct              lglTemplateMarkupEllipse;
    +
    +struct              lglTemplateOrigin;
    +
    +lglTemplate *       lgl_template_new                    (const gchar *brand,
    +                                                         const gchar *part,
    +                                                         const gchar *description,
    +                                                         const gchar *paper_id,
    +                                                         gdouble page_width,
    +                                                         gdouble page_height);
    +lglTemplate *       lgl_template_new_from_equiv         (const gchar *brand,
    +                                                         const gchar *part,
    +                                                         const gchar *equiv_part);
    +lglTemplate *       lgl_template_dup                    (const lglTemplate *orig_template);
    +void                lgl_template_free                   (lglTemplate *template);
    +void                lgl_template_add_category           (lglTemplate *template,
    +                                                         const gchar *category_id);
    +void                lgl_template_add_frame              (lglTemplate *template,
    +                                                         lglTemplateFrame *frame);
    +
    +gchar *             lgl_template_get_name               (const lglTemplate *template);
    +gboolean            lgl_template_do_templates_match     (const lglTemplate *template1,
    +                                                         const lglTemplate *template2);
    +gboolean            lgl_template_does_brand_match       (const lglTemplate *template,
    +                                                         const gchar *brand);
    +gboolean            lgl_template_does_page_size_match   (const lglTemplate *template,
    +                                                         const gchar *paper_id);
    +gboolean            lgl_template_does_category_match    (const lglTemplate *template,
    +                                                         const gchar *category_id);
    +gboolean            lgl_template_are_templates_identical
    +                                                        (const lglTemplate *template1,
    +                                                         const lglTemplate *template2);
    +
    +lglTemplateFrame *  lgl_template_frame_rect_new         (const gchar *id,
    +                                                         gdouble w,
    +                                                         gdouble h,
    +                                                         gdouble r,
    +                                                         gdouble x_waste,
    +                                                         gdouble y_waste);
    +lglTemplateFrame *  lgl_template_frame_ellipse_new      (const gchar *id,
    +                                                         gdouble w,
    +                                                         gdouble h,
    +                                                         gdouble waste);
    +lglTemplateFrame *  lgl_template_frame_round_new        (const gchar *id,
    +                                                         gdouble r,
    +                                                         gdouble waste);
    +lglTemplateFrame *  lgl_template_frame_cd_new           (const gchar *id,
    +                                                         gdouble r1,
    +                                                         gdouble r2,
    +                                                         gdouble w,
    +                                                         gdouble h,
    +                                                         gdouble waste);
    +lglTemplateFrame *  lgl_template_frame_dup              (const lglTemplateFrame *orig_frame);
    +void                lgl_template_frame_free             (lglTemplateFrame *frame);
    +void                lgl_template_frame_add_layout       (lglTemplateFrame *frame,
    +                                                         lglTemplateLayout *layout);
    +void                lgl_template_frame_add_markup       (lglTemplateFrame *frame,
    +                                                         lglTemplateMarkup *markup);
    +
    +void                lgl_template_frame_get_size         (const lglTemplateFrame *frame,
    +                                                         gdouble *w,
    +                                                         gdouble *h);
    +gint                lgl_template_frame_get_n_labels     (const lglTemplateFrame *frame);
    +lglTemplateOrigin * lgl_template_frame_get_origins      (const lglTemplateFrame *frame);
    +gchar *             lgl_template_frame_get_layout_description
    +                                                        (const lglTemplateFrame *frame);
    +gchar *             lgl_template_frame_get_size_description
    +                                                        (const lglTemplateFrame *frame,
    +                                                         lglUnits units);
    +
    +lglTemplateLayout * lgl_template_layout_new             (gint nx,
    +                                                         gint ny,
    +                                                         gdouble x0,
    +                                                         gdouble y0,
    +                                                         gdouble dx,
    +                                                         gdouble dy);
    +lglTemplateLayout * lgl_template_layout_dup             (const lglTemplateLayout *orig_layout);
    +void                lgl_template_layout_free            (lglTemplateLayout *layout);
    +
    +lglTemplateMarkup * lgl_template_markup_margin_new      (gdouble size);
    +lglTemplateMarkup * lgl_template_markup_line_new        (gdouble x1,
    +                                                         gdouble y1,
    +                                                         gdouble x2,
    +                                                         gdouble y2);
    +lglTemplateMarkup * lgl_template_markup_circle_new      (gdouble x0,
    +                                                         gdouble y0,
    +                                                         gdouble r);
    +lglTemplateMarkup * lgl_template_markup_rect_new        (gdouble x1,
    +                                                         gdouble y1,
    +                                                         gdouble w,
    +                                                         gdouble h,
    +                                                         gdouble r);
    +lglTemplateMarkup * lgl_template_markup_ellipse_new     (gdouble x1,
    +                                                         gdouble y1,
    +                                                         gdouble w,
    +                                                         gdouble h);
    +lglTemplateMarkup * lgl_template_markup_dup             (const lglTemplateMarkup *orig_markup);
    +void                lgl_template_markup_free            (lglTemplateMarkup *markup);
    +
    +void                lgl_template_print                  (const lglTemplate *template);
    +
    +
    +
    +

    Description

    +

    +This section describes a set of structures that represent a template in memory. It also +describes functions to help create and interpret these structures. +

    +
    +
    +

    Details

    +
    +

    struct lglTemplate

    +
    struct lglTemplate {
    +        gchar               *brand;
    +        gchar               *part;
    +        gchar               *equiv_part;
    +
    +        gchar               *description;
    +        gchar               *paper_id;
    +        gdouble              page_width;
    +        gdouble              page_height;
    +
    +        /* Meta information. */
    +        gchar               *product_url;   /* URL to manufacturer's product website. */
    +        GList               *category_ids;  /* List of (gchar *) category ids. */
    +
    +        /* List of (lglTemplateFrame *) label frame structures.
    +         * Currently glabels only supports a single label frame per
    +         * template. */
    +        GList               *frames;
    +};
    +
    +

    +This is the main structure of a libglabels template. A template represents a single sheet +of peel-off labels or cards. +

    +
    ++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    gchar *brand;

    Vendor or brand name of label or card. E.g. "Avery."

    gchar *part;

    Part name or number of label or card. E.g. "8160."

    gchar *equiv_part;

    Part name or number of a part with identical layout. Must be from same vendor.

    gchar *description;

    A description of the template. E.g. "Mailing labels."

    gchar *paper_id;

    A paper ID. E.g. "A4" or "US-Letter."

    gdouble page_width;

    Page width in points. Used only if paper_id is "Other."

    gdouble page_height;

    Page height in points. Used only if paper_id is "Other."

    gchar *product_url;

    URL to a webpage describing product.

    GList *category_ids;

    A list of category IDs that this template belongs to.

    GList *frames;

    A list of (lglTemplateFrame *) structures. GLabels currently only supports one frame +per template -- future versions may support multiple frames per template.
    +
    +
    +
    +

    enum lglTemplateFrameShape

    +
    typedef enum {
    +        LGL_TEMPLATE_FRAME_SHAPE_RECT,
    +        LGL_TEMPLATE_FRAME_SHAPE_ELLIPSE,
    +        LGL_TEMPLATE_FRAME_SHAPE_ROUND,
    +        LGL_TEMPLATE_FRAME_SHAPE_CD
    +} lglTemplateFrameShape;
    +
    +

    +This enumeration defines frame types that are supported by libglabels +

    +
    ++ + + + + + + + + + + + + + + + + + +

    LGL_TEMPLATE_FRAME_SHAPE_RECT

    A rectangular frame. (May have rounded corners.) +

    LGL_TEMPLATE_FRAME_SHAPE_ELLIPSE

    An elliptical frame. +

    LGL_TEMPLATE_FRAME_SHAPE_ROUND

    A round frame. +

    LGL_TEMPLATE_FRAME_SHAPE_CD

    A CD or DVD frame. (Includes credit-card style CDs.) +
    +
    +
    +
    +

    union lglTemplateFrame

    +
    union _lglTemplateFrame{
    +
    +        lglTemplateFrameShape   shape;
    +
    +        lglTemplateFrameAll     all;
    +        lglTemplateFrameRect    rect;
    +        lglTemplateFrameEllipse ellipse;
    +        lglTemplateFrameRound   round;
    +        lglTemplateFrameCD      cd;
    +};
    +
    +

    +A union of all possible frame structures. The type of structure is indicated by the shape +member, which overlays the first field of all other member structures. +

    +
    +
    +
    +

    struct lglTemplateFrameAll

    +
    struct lglTemplateFrameAll {
    +        /* Begin Common Fields */
    +        lglTemplateFrameShape shape;
    +
    +        gchar                *id;       /* Id, currently always "0" */
    +        GList                *layouts;  /* List of lglTemplateLayouts */
    +        GList                *markups;  /* List of lglTemplateMarkups */
    +        /* End Common Fields */
    +};
    +
    +

    +This structure is composed of a set of fields common to all frame structures. All frame types +can be cast to this structure. +

    +
    ++ + + + + + + + + + + + + + + + + + +

    lglTemplateFrameShape shape;

    The shape of the frame.

    gchar *id;

    Reserved for future use. Should always be zero.

    GList *layouts;

    A list of (lglTemplateLayout *) structures. Typically a frame will have a single +layout, representing a simple grid of labels or cards. If the layout of labels or cards is +more complex, multiple (lglTemplateLayout *) structures may be needed.

    GList *markups;

    A list of (lglTemplateMarkup *) structures, which represent non-printing markup lines.
    +
    +
    +
    +

    struct lglTemplateFrameRect

    +
    struct lglTemplateFrameRect {
    +        /* Begin Common Fields */
    +        lglTemplateFrameShape shape;    /* Always LGL_TEMPLATE_FRAME_SHAPE_RECT. */
    +
    +        gchar                *id;       /* Id, currently always "0" */
    +        GList                *layouts;  /* List of lglTemplateLayouts */
    +        GList                *markups;  /* List of lglTemplateMarkups */
    +        /* End Common Fields */
    +
    +        gdouble               w;        /* Width */
    +        gdouble               h;        /* Height */
    +        gdouble               r;        /* Corner radius */
    +        gdouble               x_waste;  /* Amount of horiz overprint allowed. */
    +        gdouble               y_waste;  /* Amount of vert overprint allowed. */
    +};
    +
    +

    +This structure defines the frame for a rectangular label or card. +

    +
    ++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    lglTemplateFrameShape shape;

    Common field. Always LGL_TEMPLATE_FRAME_SHAPE_RECT for lglTemplateFrameRect.

    gchar *id;

    Common field. See lglTemplateFrameAll.

    GList *layouts;

    Common field. See lglTemplateFrameAll.

    GList *markups;

    Common field. See lglTemplateFrameAll.

    gdouble w;

    Width of label or card in points.

    gdouble h;

    Height of label or card in points.

    gdouble r;

    Radius of corners in points.

    gdouble x_waste;

    Amount of horizontal over-print to allow in points.

    gdouble y_waste;

    Amount of vertical over-print to allow in points.
    +
    +
    +
    +

    struct lglTemplateFrameEllipse

    +
    struct lglTemplateFrameEllipse {
    +        /* Begin Common Fields */
    +        lglTemplateFrameShape shape;    /* Always LGL_TEMPLATE_FRAME_SHAPE_ELLIPSE. */
    +
    +        gchar                *id;       /* Id, currently always "0" */
    +        GList                *layouts;  /* List of lglTemplateLayouts */
    +        GList                *markups;  /* List of lglTemplateMarkups */
    +        /* End Common Fields */
    +
    +        gdouble               w;        /* Width */
    +        gdouble               h;        /* Height */
    +        gdouble               waste;    /* Amount of overprint allowed. */
    +};
    +
    +

    +This structure defines the frame for an elliptical label or card. +

    +
    ++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    lglTemplateFrameShape shape;

    Common field. Always LGL_TEMPLATE_FRAME_SHAPE_ELLIPSE for lglTemplateFrameEllipse.

    gchar *id;

    Common field. See lglTemplateFrameAll.

    GList *layouts;

    Common field. See lglTemplateFrameAll.

    GList *markups;

    Common field. See lglTemplateFrameAll.

    gdouble w;

    Width of label or card in points.

    gdouble h;

    Height of label or card in points.

    gdouble waste;

    Amount of over-print to allow in points.
    +
    +
    +
    +

    struct lglTemplateFrameRound

    +
    struct lglTemplateFrameRound {
    +        /* Begin Common Fields */
    +        lglTemplateFrameShape shape;    /* Always LGL_TEMPLATE_FRAME_SHAPE_ROUND. */
    +
    +        gchar                *id;       /* Id, currently always "0" */
    +        GList                *layouts;  /* List of lglTemplateLayouts */
    +        GList                *markups;  /* List of lglTemplateMarkups */
    +        /* End Common Fields */
    +
    +        gdouble               r;      /* Radius */
    +        gdouble               waste;  /* Amount of overprint allowed. */
    +};
    +
    +

    +This structure defines the frame for a round label or card. +

    +
    ++ + + + + + + + + + + + + + + + + + + + + + + + + + +

    lglTemplateFrameShape shape;

    Common field. Always LGL_TEMPLATE_FRAME_SHAPE_ROUND for lglTemplateFrameRound.

    gchar *id;

    Common field. See lglTemplateFrameAll.

    GList *layouts;

    Common field. See lglTemplateFrameAll.

    GList *markups;

    Common field. See lglTemplateFrameAll.

    gdouble r;

    Radius of label or card in points.

    gdouble waste;

    Amount of over-print to allow in points.
    +
    +
    +
    +

    struct lglTemplateFrameCD

    +
    struct lglTemplateFrameCD {
    +        /* Begin Common Fields */
    +        lglTemplateFrameShape shape;    /* Always LGL_TEMPLATE_FRAME_SHAPE_CD. */
    +
    +        gchar                *id;       /* Id, currently always "0" */
    +        GList                *layouts;  /* List of lglTemplateLayouts */
    +        GList                *markups;  /* List of lglTemplateMarkups */
    +        /* End Common Fields */
    +
    +        gdouble               r1;     /* Outer radius */
    +        gdouble               r2;     /* Inner radius (hole) */
    +        gdouble               w;      /* Clip width, business card CDs */
    +        gdouble               h;      /* Clip height, business card CDs */
    +        gdouble               waste;  /* Amount of overprint allowed. */
    +};
    +
    +

    +This structure defines the frame for a CD or DVD label. This structure also supports +credit-card CD labels. +

    +
    ++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    lglTemplateFrameShape shape;

    Common field. Always LGL_TEMPLATE_FRAME_SHAPE_CD for lglTemplateFrameCD.

    gchar *id;

    Common field. See lglTemplateFrameAll.

    GList *layouts;

    Common field. See lglTemplateFrameAll.

    GList *markups;

    Common field. See lglTemplateFrameAll.

    gdouble r1;

    Outer radius of label in points.

    gdouble r2;

    Radius of center hole in points.

    gdouble w;

    Clip width in points. Used for credit-card CD labels. This field is ignored if zero.

    gdouble h;

    Clip height in points. Used for credit-card CD labels. This field is ignored if zero.

    gdouble waste;

    Amount of over-print to allow in points.
    +
    +
    +
    +

    struct lglTemplateLayout

    +
    struct lglTemplateLayout {
    +        gint                  nx;  /* Number of labels across */
    +        gint                  ny;  /* Number of labels up and down */
    +
    +        gdouble               x0;  /* Left of grid from left edge of paper */
    +        gdouble               y0;  /* Top of grid from top edge of paper */
    +
    +        gdouble               dx;  /* Horizontal pitch of grid */
    +        gdouble               dy;  /* Vertical pitch of grid */
    +};
    +
    +

    +This structure defines a simple grid layout of labels or cards. +

    +
    ++ + + + + + + + + + + + + + + + + + + + + + + + + + +

    gint nx;

    Number of labels or cards across in the grid (horizontal).

    gint ny;

    Number of labels or cards down in the grid (vertical).

    gdouble x0;

    Distance (in points) from the left edge of page to the left edge of the left column of +cards or labels in the layout.

    gdouble y0;

    Distance (in points) from the top edge of page to the top edge of the top row of +cards or labels in the layout.

    gdouble dx;

    Horizontal pitch of grid in points. This is the distance from left edge to left edge +(not the gap between labels or cards).

    gdouble dy;

    Vertical pitch of grid in points. This is the distance from top edge to top edge +(not the gap between labels or cards).
    +
    +
    +
    +

    enum lglTemplateMarkupType

    +
    typedef enum {
    +        LGL_TEMPLATE_MARKUP_MARGIN,
    +        LGL_TEMPLATE_MARKUP_LINE,
    +        LGL_TEMPLATE_MARKUP_CIRCLE,
    +        LGL_TEMPLATE_MARKUP_RECT,
    +        LGL_TEMPLATE_MARKUP_ELLIPSE
    +} lglTemplateMarkupType;
    +
    +

    +This enumeration defines markup types that are supported by libglabels +

    +
    ++ + + + + + + + + + + + + + + + + + + + + + +

    LGL_TEMPLATE_MARKUP_MARGIN

    A margin line around perimeter of label or card. +

    LGL_TEMPLATE_MARKUP_LINE

    A simple line segment. +

    LGL_TEMPLATE_MARKUP_CIRCLE

    A circle. +

    LGL_TEMPLATE_MARKUP_RECT

    A rectangle. Possibly with rounded corners. +

    LGL_TEMPLATE_MARKUP_ELLIPSE

    An ellipse. +
    +
    +
    +
    +

    union lglTemplateMarkup

    +
    union _lglTemplateMarkup {
    +
    +        lglTemplateMarkupType    type;
    +
    +        lglTemplateMarkupMargin  margin;
    +        lglTemplateMarkupLine    line;
    +        lglTemplateMarkupCircle  circle;
    +        lglTemplateMarkupRect    rect;
    +        lglTemplateMarkupEllipse ellipse;
    +};
    +
    +

    +A union of all possible markup structures. The type of structure is indicated by the type +member, which overlays the first field of all other member structures. +

    +
    +
    +
    +

    struct lglTemplateMarkupMargin

    +
    struct lglTemplateMarkupMargin {
    +        lglTemplateMarkupType  type;  /* Always LGL_TEMPLATE_MARKUP_MARGIN */
    +
    +        gdouble                size;  /* Margin size */
    +};
    +
    +

    +This structure defines a simple margin markup around the perimeter of a label or card. +

    +
    ++ + + + + + + + + + +

    lglTemplateMarkupType type;

    Common field. Always LGL_TEMPLATE_MARKUP_MARGIN for lglTemplateMarkupMargin.

    gdouble size;

    Distance of margin from edge of label or card.
    +
    +
    +
    +

    struct lglTemplateMarkupLine

    +
    struct lglTemplateMarkupLine {
    +        lglTemplateMarkupType  type;   /* Always LGL_TEMPLATE_MARKUP_LINE */
    +
    +        gdouble                x1, y1; /* 1st endpoint */
    +        gdouble                x2, y2; /* 2nd endpoint */
    +};
    +
    +

    +This structure defines a simple line segment markup. +

    +
    ++ + + + + + + + + + + + + + + + + + + + + + +

    lglTemplateMarkupType type;

    Common field. Always LGL_TEMPLATE_MARKUP_LINE for lglTemplateMarkupLine.

    gdouble x1;

    Distance (in points) of first endpoint from left edge of label or card.

    gdouble y1;

    Distance (in points) of first endpoint from top edge of label or card.

    gdouble x2;

    Distance (in points) of second endpoint from left edge of label or card.

    gdouble y2;

    Distance (in points) of second endpoint from top edge of label or card.
    +
    +
    +
    +

    struct lglTemplateMarkupCircle

    +
    struct lglTemplateMarkupCircle {
    +        lglTemplateMarkupType  type;   /* Always LGL_TEMPLATE_MARKUP_CIRCLE */
    +
    +        gdouble                x0, y0; /* Center of circle */
    +        gdouble                r;      /* Radius of circle */
    +};
    +
    +

    +This structure defines a simple circle markup. +

    +
    ++ + + + + + + + + + + + + + + + + + +

    lglTemplateMarkupType type;

    Common field. Always LGL_TEMPLATE_MARKUP_CIRCLE for lglTemplateMarkupCircle.

    gdouble x0;

    Distance (in points) of vertex from left edge of label or card.

    gdouble y0;

    Distance (in points) of vertex from top edge of label or card.

    gdouble r;

    Radius of circle in points.
    +
    +
    +
    +

    struct lglTemplateMarkupRect

    +
    struct lglTemplateMarkupRect {
    +        lglTemplateMarkupType  type;   /* Always LGL_TEMPLATE_MARKUP_RECT */
    +
    +        gdouble                x1, y1; /* Upper left corner */
    +        gdouble                w, h;   /* Width and height. */
    +        gdouble                r;      /* Radius of corners. */
    +};
    +
    +

    +This structure defines a simple rectangle markup. The rectangle can have rounded corners. +

    +
    ++ + + + + + + + + + + + + + + + + + + + + + + + + + +

    lglTemplateMarkupType type;

    Common field. Always LGL_TEMPLATE_MARKUP_RECT for lglTemplateMarkupRect.

    gdouble x1;

    Distance (in points) of left edge of markup from left edge of label or card.

    gdouble y1;

    Distance (in points) of top edge of markup from top edge of label or card.

    gdouble w;

    Width of rectangle in points.

    gdouble h;

    Height of rectangle in points.

    gdouble r;

    Radius of corners in points. Should be zero for sharp corners.
    +
    +
    +
    +

    struct lglTemplateMarkupEllipse

    +
    struct lglTemplateMarkupEllipse {
    +        lglTemplateMarkupType  type;   /* Always LGL_TEMPLATE_MARKUP_ELLIPSE */
    +
    +        gdouble                x1, y1; /* Upper left corner */
    +        gdouble                w, h;   /* Width and height. */
    +};
    +
    +

    +This structure defines a simple elliptical markup. +

    +
    ++ + + + + + + + + + + + + + + + + + + + + + +

    lglTemplateMarkupType type;

    Common field. Always LGL_TEMPLATE_MARKUP_ELLIPSE for lglTemplateMarkupEllipse.

    gdouble x1;

    Distance (in points) of left edge of markup from left edge of label or card.

    gdouble y1;

    Distance (in points) of top edge of markup from top edge of label or card.

    gdouble w;

    Width of rectangle in points.

    gdouble h;

    Height of rectangle in points.
    +
    +
    +
    +

    struct lglTemplateOrigin

    +
    struct lglTemplateOrigin {
    +        gdouble               x, y; /* Label origin relative to upper 
    +                                     * upper left hand corner of paper */
    +};
    +
    +

    +This structure represents the cartesian coordinates of the origin of a label or card on the page. +The orign is the upper left corner of the extent of the label or card. These coordinates are +relative to the upper left corner of the page. +

    +
    ++ + + + + + + + + + +

    gdouble x;

    Distance in points from top edge of page.

    gdouble y;

    Distance in points from left edge of page.
    +
    +
    +
    +

    lgl_template_new ()

    +
    lglTemplate *       lgl_template_new                    (const gchar *brand,
    +                                                         const gchar *part,
    +                                                         const gchar *description,
    +                                                         const gchar *paper_id,
    +                                                         gdouble page_width,
    +                                                         gdouble page_height);
    +

    +Create a new template structure, with the given top-level attributes. The +created template will have no initial categories, or frames associated with +it. See lgl_template_add_category() and lgl_template_add_frame() to add +these. +

    +
    ++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    brand :

    Template brand

    part :

    Template part name/number

    description :

    Template descriptions

    paper_id :

    Page size id

    page_width :

    Page width in points, set to zero unless paper_id="Other"

    page_height :

    Page height in points, set to zero unless paper_id="Other"

    Returns :

    pointer to a newly allocated lglTemplate structure.
    +
    +
    +
    +

    lgl_template_new_from_equiv ()

    +
    lglTemplate *       lgl_template_new_from_equiv         (const gchar *brand,
    +                                                         const gchar *part,
    +                                                         const gchar *equiv_part);
    +

    +Create a new template structure based on an existing template. The +created template will be a duplicate of the original template, except with +the new part name/number. +

    +
    ++ + + + + + + + + + + + + + + + + + +

    brand :

    Template brand

    part :

    Template part name/number

    equiv_part :

    Name of equivalent part to base template on

    Returns :

    pointer to a newly allocated lglTemplate structure.
    +
    +
    +
    +

    lgl_template_dup ()

    +
    lglTemplate *       lgl_template_dup                    (const lglTemplate *orig_template);
    +

    +This function duplicates a template structure. +

    +
    ++ + + + + + + + + + +

    orig_template :

    Template to duplicate.

    Returns :

    a newly allocated lglTemplate structure.
    +
    +
    +
    +

    lgl_template_free ()

    +
    void                lgl_template_free                   (lglTemplate *template);
    +

    +This function frees all memory associated with given template structure. +

    +
    ++ + + + +

    template :

    Template to free.
    +
    +
    +
    +

    lgl_template_add_category ()

    +
    void                lgl_template_add_category           (lglTemplate *template,
    +                                                         const gchar *category_id);
    +

    +This function adds the given category ID to a templates category list. +

    +
    ++ + + + + + + + + + +

    template :

    Pointer to template structure

    category_id :

    Category ID string
    +
    +
    +
    +

    lgl_template_add_frame ()

    +
    void                lgl_template_add_frame              (lglTemplate *template,
    +                                                         lglTemplateFrame *frame);
    +

    +This function adds the given frame structure to the template. Once added, +the frame structure belongs to the given template; do not attempt to free +it. +

    +

    +Note: Currently glabels only supports a single frame per template. +

    +
    ++ + + + + + + + + + +

    template :

    Pointer to template structure

    frame :

    Pointer to frame structure
    +
    +
    +
    +

    lgl_template_get_name ()

    +
    gchar *             lgl_template_get_name               (const lglTemplate *template);
    +

    +This function returns the name of the given template. The name is the concetenation +of the brand and part name/number. +

    +
    ++ + + + + + + + + + +

    template :

    Pointer to template structure to test

    Returns :

    A pointer to a newly allocated name string. Should be freed with g_free().
    +
    +
    +
    +

    lgl_template_do_templates_match ()

    +
    gboolean            lgl_template_do_templates_match     (const lglTemplate *template1,
    +                                                         const lglTemplate *template2);
    +

    +This function tests if the given templates match. This is a simple test that only tests +the brand and part name/number. It does not test if they are actually identical. +

    +
    ++ + + + + + + + + + + + + + +

    template1 :

    Pointer to 1st template structure to test

    template2 :

    Pointer to 2nd template structure to test

    Returns :

    TRUE if the two templates match.
    +
    +
    +
    +

    lgl_template_does_brand_match ()

    +
    gboolean            lgl_template_does_brand_match       (const lglTemplate *template,
    +                                                         const gchar *brand);
    +

    +This function tests if the brand of the template matches the given brand. +

    +
    ++ + + + + + + + + + + + + + +

    template :

    Pointer to template structure to test

    brand :

    Brand string

    Returns :

    TRUE if the template matches the given brand.
    +
    +
    +
    +

    lgl_template_does_page_size_match ()

    +
    gboolean            lgl_template_does_page_size_match   (const lglTemplate *template,
    +                                                         const gchar *paper_id);
    +

    +This function tests if the page size of the template matches the given ID. +

    +
    ++ + + + + + + + + + + + + + +

    template :

    Pointer to template structure to test

    paper_id :

    Page size ID string

    Returns :

    TRUE if the template matches the given page size ID.
    +
    +
    +
    +

    lgl_template_does_category_match ()

    +
    gboolean            lgl_template_does_category_match    (const lglTemplate *template,
    +                                                         const gchar *category_id);
    +

    +This function tests if the given template belongs to the given category ID. +

    +
    ++ + + + + + + + + + + + + + +

    template :

    Pointer to template structure to test

    category_id :

    Category ID string

    Returns :

    TRUE if the template matches the given category ID.
    +
    +
    +
    +

    lgl_template_are_templates_identical ()

    +
    gboolean            lgl_template_are_templates_identical
    +                                                        (const lglTemplate *template1,
    +                                                         const lglTemplate *template2);
    +

    +This function tests if the given templates have identical size and layout properties. +

    +
    ++ + + + + + + + + + + + + + +

    template1 :

    Pointer to 1st template structure to test

    template2 :

    Pointer to 2nd template structure to test

    Returns :

    TRUE if the two templates are identical.
    +
    +
    +
    +

    lgl_template_frame_rect_new ()

    +
    lglTemplateFrame *  lgl_template_frame_rect_new         (const gchar *id,
    +                                                         gdouble w,
    +                                                         gdouble h,
    +                                                         gdouble r,
    +                                                         gdouble x_waste,
    +                                                         gdouble y_waste);
    +

    +This function creates a new template frame for a rectangular label or card. +

    +
    ++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    id :

    ID of frame. (This should currently always be "0").

    w :

    width of frame in points.

    h :

    height of frame in points.

    r :

    radius of rounded corners in points. (Should be 0 for square corners.)

    x_waste :

    Amount of overprint to allow in the horizontal direction.

    y_waste :

    Amount of overprint to allow in the vertical direction.

    Returns :

    Pointer to newly allocated lglTemplateFrame structure.
    +
    +
    +
    +

    lgl_template_frame_ellipse_new ()

    +
    lglTemplateFrame *  lgl_template_frame_ellipse_new      (const gchar *id,
    +                                                         gdouble w,
    +                                                         gdouble h,
    +                                                         gdouble waste);
    +

    +This function creates a new template frame for an elliptical label or card. +

    +
    ++ + + + + + + + + + + + + + + + + + + + + + +

    id :

    ID of frame. (This should currently always be "0").

    w :

    width of frame in points.

    h :

    height of frame in points.

    waste :

    Amount of overprint to allow in points.

    Returns :

    Pointer to newly allocated lglTemplateFrame structure.
    +
    +
    +
    +

    lgl_template_frame_round_new ()

    +
    lglTemplateFrame *  lgl_template_frame_round_new        (const gchar *id,
    +                                                         gdouble r,
    +                                                         gdouble waste);
    +

    +This function creates a new template frame for a round label. +

    +
    ++ + + + + + + + + + + + + + + + + + +

    id :

    ID of frame. (This should currently always be "0").

    r :

    radius of label in points.

    waste :

    Amount of overprint to allow.

    Returns :

    Pointer to newly allocated lglTemplateFrame structure.
    +
    +
    +
    +

    lgl_template_frame_cd_new ()

    +
    lglTemplateFrame *  lgl_template_frame_cd_new           (const gchar *id,
    +                                                         gdouble r1,
    +                                                         gdouble r2,
    +                                                         gdouble w,
    +                                                         gdouble h,
    +                                                         gdouble waste);
    +

    +This function creates a new template frame for a CD/DVD label. +

    +
    ++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    id :

    ID of frame. (This should currently always be "0").

    r1 :

    outer radius of label in points.

    r2 :

    radius of center hole in points.

    w :

    clip width of frame in points for business card CDs. Should be 0 for no clipping.

    h :

    clip height of frame in points for business card CDs. Should be 0 for no clipping.

    waste :

    Amount of overprint to allow.

    Returns :

    Pointer to newly allocated lglTemplateFrame structure.
    +
    +
    +
    +

    lgl_template_frame_dup ()

    +
    lglTemplateFrame *  lgl_template_frame_dup              (const lglTemplateFrame *orig_frame);
    +

    +This function duplicates a template frame structure. +

    +
    ++ + + + + + + + + + +

    orig_frame :

    Frame to duplicate.

    Returns :

    a newly allocated lglTemplateFrame structure.
    +
    +
    +
    +

    lgl_template_frame_free ()

    +
    void                lgl_template_frame_free             (lglTemplateFrame *frame);
    +

    +This function frees all memory associated with given template frame structure. +

    +
    ++ + + + +

    frame :

    Frame to free.
    +
    +
    +
    +

    lgl_template_frame_add_layout ()

    +
    void                lgl_template_frame_add_layout       (lglTemplateFrame *frame,
    +                                                         lglTemplateLayout *layout);
    +

    +This function adds a layout structure to the given template frame. +

    +
    ++ + + + + + + + + + +

    frame :

    Pointer to template frame to add layout to.

    layout :

    Pointer to layout structure to add to frame.
    +
    +
    +
    +

    lgl_template_frame_add_markup ()

    +
    void                lgl_template_frame_add_markup       (lglTemplateFrame *frame,
    +                                                         lglTemplateMarkup *markup);
    +

    +This function adds a markup structure to the given template frame. +

    +
    ++ + + + + + + + + + +

    frame :

    Pointer to template frame to add markup to.

    markup :

    Pointer to markup structure to add to frame.
    +
    +
    +
    +

    lgl_template_frame_get_size ()

    +
    void                lgl_template_frame_get_size         (const lglTemplateFrame *frame,
    +                                                         gdouble *w,
    +                                                         gdouble *h);
    +

    +Get size (width and height) of given lglTemplateFrame in points. +

    +
    ++ + + + + + + + + + + + + + +

    frame :

    +lglTemplateFrame structure to query

    w :

    pointer to location to receive width of frame

    h :

    pointer to location to receive height of frame
    +
    +
    +
    +

    lgl_template_frame_get_n_labels ()

    +
    gint                lgl_template_frame_get_n_labels     (const lglTemplateFrame *frame);
    +

    +Get total number of labels per sheet corresponding to the given frame. +

    +
    ++ + + + + + + + + + +

    frame :

    +lglTemplateFrame structure to query

    Returns :

    number of labels per sheet.
    +
    +
    +
    +

    lgl_template_frame_get_origins ()

    +
    lglTemplateOrigin * lgl_template_frame_get_origins      (const lglTemplateFrame *frame);
    +

    +Get an array of label origins for the given frame. These origins represent the +upper left hand corner of each label on a page corresponding to the given frame. +The origins will be ordered geometrically left to right and then top to bottom. +The array should be freed using g_free(). +

    +
    ++ + + + + + + + + + +

    frame :

    +lglTemplateFrame structure to query

    Returns :

    A newly allocated array of lglTemplateOrigin structures.
    +
    +
    +
    +

    lgl_template_frame_get_layout_description ()

    +
    gchar *             lgl_template_frame_get_layout_description
    +                                                        (const lglTemplateFrame *frame);
    +

    +Get a description of the label layout including number of labels per sheet. +

    +
    ++ + + + + + + + + + +

    frame :

    +lglTemplateFrame structure to query

    Returns :

    a newly allocation description string.
    +
    +
    +
    +

    lgl_template_frame_get_size_description ()

    +
    gchar *             lgl_template_frame_get_size_description
    +                                                        (const lglTemplateFrame *frame,
    +                                                         lglUnits units);
    +

    +Get a description of the label size. +

    +
    ++ + + + + + + + + + + + + + +

    frame :

    +lglTemplateFrame structure to query

    units :

    lglUnits

    Returns :

    a newly allocation description string.
    +
    +
    +
    +

    lgl_template_layout_new ()

    +
    lglTemplateLayout * lgl_template_layout_new             (gint nx,
    +                                                         gint ny,
    +                                                         gdouble x0,
    +                                                         gdouble y0,
    +                                                         gdouble dx,
    +                                                         gdouble dy);
    +

    +This function creates a new layout structure with the given parameters. +

    +
    ++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    nx :

    Number of labels across.

    ny :

    Number of labels down.

    x0 :

    X coordinate of the top-left corner of the top-left label in the layout in points.

    y0 :

    Y coordinate of the top-left corner of the top-left label in the layout in points.

    dx :

    Horizontal pitch in points. This is the distance from left-edge to left-edge.

    dy :

    Vertical pitch in points. This is the distance from top-edge to top-edge.

    Returns :

    a newly allocated lglTemplateLayout structure.
    +
    +
    +
    +

    lgl_template_layout_dup ()

    +
    lglTemplateLayout * lgl_template_layout_dup             (const lglTemplateLayout *orig_layout);
    +

    +This function duplicates a template layout structure. +

    +
    ++ + + + + + + + + + +

    orig_layout :

    Layout to duplicate.

    Returns :

    a newly allocated lglTemplateLayout structure.
    +
    +
    +
    +

    lgl_template_layout_free ()

    +
    void                lgl_template_layout_free            (lglTemplateLayout *layout);
    +

    +This function frees all memory associated with given template layout structure. +

    +
    ++ + + + +

    layout :

    Layout to free.
    +
    +
    +
    +

    lgl_template_markup_margin_new ()

    +
    lglTemplateMarkup * lgl_template_markup_margin_new      (gdouble size);
    +

    +This function creates a new margin markup structure. +

    +
    ++ + + + + + + + + + +

    size :

    margin size in points.

    Returns :

    a newly allocated lglTemplateMarkup structure.
    +
    +
    +
    +

    lgl_template_markup_line_new ()

    +
    lglTemplateMarkup * lgl_template_markup_line_new        (gdouble x1,
    +                                                         gdouble y1,
    +                                                         gdouble x2,
    +                                                         gdouble y2);
    +

    +This function creates a new line markup structure. +

    +
    ++ + + + + + + + + + + + + + + + + + + + + + +

    x1 :

    x coordinate of first endpoint.

    y1 :

    y coordinate of first endpoint.

    x2 :

    x coordinate of second endpoint.

    y2 :

    y coordinate of second endpoint.

    Returns :

    a newly allocated lglTemplateMarkup structure.
    +
    +
    +
    +

    lgl_template_markup_circle_new ()

    +
    lglTemplateMarkup * lgl_template_markup_circle_new      (gdouble x0,
    +                                                         gdouble y0,
    +                                                         gdouble r);
    +

    +This function creates a new circle markup structure. +

    +
    ++ + + + + + + + + + + + + + + + + + +

    x0 :

    x coordinate of center of circle.

    y0 :

    y coordinate of center of circle.

    r :

    radius of circle.

    Returns :

    a newly allocated lglTemplateMarkup structure.
    +
    +
    +
    +

    lgl_template_markup_rect_new ()

    +
    lglTemplateMarkup * lgl_template_markup_rect_new        (gdouble x1,
    +                                                         gdouble y1,
    +                                                         gdouble w,
    +                                                         gdouble h,
    +                                                         gdouble r);
    +

    +This function creates a new rectangle markup structure. +

    +
    ++ + + + + + + + + + + + + + + + + + + + + + + + + + +

    x1 :

    x coordinate of top-left corner of rectangle.

    y1 :

    y coordinate of top-left corner of rectangle.

    w :

    width of rectangle.

    h :

    height of rectangle.

    r :

    radius of rounded corner.

    Returns :

    a newly allocated lglTemplateMarkup structure.
    +
    +
    +
    +

    lgl_template_markup_ellipse_new ()

    +
    lglTemplateMarkup * lgl_template_markup_ellipse_new     (gdouble x1,
    +                                                         gdouble y1,
    +                                                         gdouble w,
    +                                                         gdouble h);
    +

    +This function creates a new ellipse markup structure. +

    +
    ++ + + + + + + + + + + + + + + + + + + + + + +

    x1 :

    x coordinate of top-left corner of ellipse.

    y1 :

    y coordinate of top-left corner of ellipse.

    w :

    width of ellipse.

    h :

    height of ellipse.

    Returns :

    a newly allocated lglTemplateMarkup structure.
    +
    +
    +
    +

    lgl_template_markup_dup ()

    +
    lglTemplateMarkup * lgl_template_markup_dup             (const lglTemplateMarkup *orig_markup);
    +

    +This function duplicates a template markup structure. +

    +
    ++ + + + + + + + + + +

    orig_markup :

    Markup to duplicate.

    Returns :

    a newly allocated lglTemplateMarkup structure.
    +
    +
    +
    +

    lgl_template_markup_free ()

    +
    void                lgl_template_markup_free            (lglTemplateMarkup *markup);
    +

    +This function frees all memory associated with given template markup structure. +

    +
    ++ + + + +

    markup :

    Markup to free.
    +
    +
    +
    +

    lgl_template_print ()

    +
    void                lgl_template_print                  (const lglTemplate *template);
    +

    +Print template details (for debugging purposes). +

    +
    ++ + + + +

    template :

    template
    +
    +
    +
    + + + \ No newline at end of file diff --git a/docs/libglabels/html/libglabels-3.0-units.html b/docs/libglabels/html/libglabels-3.0-units.html new file mode 100644 index 00000000..79a2835c --- /dev/null +++ b/docs/libglabels/html/libglabels-3.0-units.html @@ -0,0 +1,265 @@ + + + + +Units + + + + + + + + + + + + + + + + + + + +
    +
    +
    + + +
    +

    Units

    +

    Units — Type to represent units of distance supported by libglabels

    +
    +
    +

    Synopsis

    +
    +#include <libglabels/lgl-units.h>
    +
    +enum                lglUnits;
    +const gchar *       lgl_units_get_id                    (lglUnits units);
    +lglUnits            lgl_units_from_id                   (const gchar *id);
    +const gchar *       lgl_units_get_name                  (lglUnits units);
    +lglUnits            lgl_units_from_name                 (const gchar *name);
    +gdouble             lgl_units_get_points_per_unit       (lglUnits units);
    +gdouble             lgl_units_get_units_per_point       (lglUnits units);
    +
    +
    +
    +

    Description

    +

    +This section defines a type to represent the various units of distance +supported by libglabels. It also defines a set of related functions. +

    +
    +
    +

    Details

    +
    +

    enum lglUnits

    +
    typedef enum {
    +        LGL_UNITS_POINT, /* encoded as "pt" */
    +        LGL_UNITS_INCH,  /* encoded as "in" */
    +        LGL_UNITS_MM,    /* encoded as "mm" */
    +        LGL_UNITS_CM,    /* encoded as "cm" */
    +        LGL_UNITS_PICA,  /* encoded as "pc" */
    +
    +        LGL_UNITS_FIRST = LGL_UNITS_POINT,
    +        LGL_UNITS_LAST  = LGL_UNITS_PICA,
    +
    +        LGL_UNITS_INVALID = -1
    +} lglUnits;
    +
    +

    +This enumeration defines supported units of distance. +

    +
    ++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    LGL_UNITS_POINT

    Points. +

    LGL_UNITS_INCH

    Inches. +

    LGL_UNITS_MM

    Millimeters +

    LGL_UNITS_CM

    Centimeters +

    LGL_UNITS_PICA

    Picas +

    LGL_UNITS_FIRST

    First supported unit. (Used for bounds checking and iteration through supported units.) +

    LGL_UNITS_LAST

    Last supported unit. (Used for bounds checking and iteration through supported units.) +

    LGL_UNITS_INVALID

    Invalid unit. (Returned by libglabels units functions when a supported unit cannot be determined.) +
    +
    +
    +
    +

    lgl_units_get_id ()

    +
    const gchar *       lgl_units_get_id                    (lglUnits units);
    +

    +Return a unique ID string for the given units. This ID is how units +are encoded in libglabels XML files and will remain constant across +all locales. IDs are identical to the absolute length units supported +in the CSS2 Specification (Section 4.3.2). +

    +
    ++ + + + + + + + + + +

    units :

    Units (lglUnits)

    Returns :

    ID string.
    +
    +
    +
    +

    lgl_units_from_id ()

    +
    lglUnits            lgl_units_from_id                   (const gchar *id);
    +

    +Return the unique lglUnits for the given ID string. +This ID is how units are encoded in libglabels XML files and will remain +constant across all locales. IDs are identical to the absolute length +units supported in the CSS2 Specification (Section 4.3.2). +

    +
    ++ + + + + + + + + + +

    id :

    ID string

    Returns :

    units (lglUnits).
    +
    +
    +
    +

    lgl_units_get_name ()

    +
    const gchar *       lgl_units_get_name                  (lglUnits units);
    +

    +Return a unique name string for the given units. This name is human +readable and will be translated to the current locale. +

    +
    ++ + + + + + + + + + +

    units :

    Units (lglUnits)

    Returns :

    name string.
    +
    +
    +
    +

    lgl_units_from_name ()

    +
    lglUnits            lgl_units_from_name                 (const gchar *name);
    +

    +Return the unique lglUnits for the given name string. This name is +human readable and is expected to be translated to the current locale. +

    +
    ++ + + + + + + + + + +

    name :

    NAME string

    Returns :

    units (lglUnits).
    +
    +
    +
    +

    lgl_units_get_points_per_unit ()

    +
    gdouble             lgl_units_get_points_per_unit       (lglUnits units);
    +

    +Return a scale factor for the given units in points/unit. +

    +
    ++ + + + + + + + + + +

    units :

    Units (lglUnits)

    Returns :

    scale factor.
    +
    +
    +
    +

    lgl_units_get_units_per_point ()

    +
    gdouble             lgl_units_get_units_per_point       (lglUnits units);
    +

    +Return a scale factor for the given units in units/point. +

    +
    ++ + + + + + + + + + +

    units :

    Units (lglUnits)

    Returns :

    scale factor.
    +
    +
    +
    + + + \ No newline at end of file diff --git a/docs/libglabels/html/libglabels-3.0-vendor.html b/docs/libglabels/html/libglabels-3.0-vendor.html new file mode 100644 index 00000000..a2cd8144 --- /dev/null +++ b/docs/libglabels/html/libglabels-3.0-vendor.html @@ -0,0 +1,145 @@ + + + + +The lglVendor Structure + + + + + + + + + + + + + + + + + + + +
    +
    +
    + + +
    +

    The lglVendor Structure

    +

    The lglVendor Structure — Vendor definitions

    +
    +
    +

    Synopsis

    +
    +#include <libglabels/lgl-vendor.h>
    +
    +struct              lglVendor;
    +lglVendor *         lgl_vendor_new                      (gchar *name);
    +lglVendor *         lgl_vendor_dup                      (const lglVendor *orig);
    +void                lgl_vendor_free                     (lglVendor *vendor);
    +
    +
    +
    +

    Description

    +

    +This section describes a structure for representing vendor data. +

    +
    +
    +

    Details

    +
    +

    struct lglVendor

    +
    struct lglVendor {
    +        gchar               *name;           /* Vendor name */
    +        gchar               *url;            /* Vendor URL */
    +};
    +
    +

    +This structure defines a vendor. +

    +
    ++ + + + + + + + + + +

    gchar *name;

    Vendor name. (e.g. "Avery")

    gchar *url;

    URL to vendor website
    +
    +
    +
    +

    lgl_vendor_new ()

    +
    lglVendor *         lgl_vendor_new                      (gchar *name);
    +

    +Allocates and constructs a new lglVendor structure. +

    +
    ++ + + + + + + + + + +

    name :

    Localized name of vendor.

    Returns :

    a pointer to a newly allocated lglVendor structure.
    +
    +
    +
    +

    lgl_vendor_dup ()

    +
    lglVendor *         lgl_vendor_dup                      (const lglVendor *orig);
    +

    +Duplicates an existing lglVendor structure. +

    +
    ++ + + + + + + + + + +

    orig :

    +lglVendor structure to be duplicated.

    Returns :

    a pointer to a newly allocated lglVendor structure.
    +
    +
    +
    +

    lgl_vendor_free ()

    +
    void                lgl_vendor_free                     (lglVendor *vendor);
    +

    +Free all memory associated with an existing lglVendor structure. +

    +
    ++ + + + +

    vendor :

    pointer to lglVendor structure to be freed.
    +
    +
    +
    + + + \ No newline at end of file diff --git a/docs/libglabels/html/libglabels-3.0-xml-category.html b/docs/libglabels/html/libglabels-3.0-xml-category.html new file mode 100644 index 00000000..fc6ac61f --- /dev/null +++ b/docs/libglabels/html/libglabels-3.0-xml-category.html @@ -0,0 +1,132 @@ + + + + +XML Category Functions + + + + + + + + + + + + + + + + + + + +
    +
    +
    + + +
    +

    XML Category Functions

    +

    XML Category Functions — Functions to parse glabels XML category definition files

    +
    +
    +

    Synopsis

    +
    +#include <libglabels/lgl-xml-category.h>
    +
    +GList *             lgl_xml_category_read_categories_from_file
    +                                                        (gchar *utf8_filename);
    +GList *             lgl_xml_category_parse_categories_doc
    +                                                        (xmlDocPtr categories_doc);
    +lglCategory *       lgl_xml_category_parse_category_node
    +                                                        (xmlNodePtr category_node);
    +
    +
    +
    +

    Description

    +

    +This section describes a number of functions for parsing glabels +XML category definition files. +

    +
    +
    +

    Details

    +
    +

    lgl_xml_category_read_categories_from_file ()

    +
    GList *             lgl_xml_category_read_categories_from_file
    +                                                        (gchar *utf8_filename);
    +

    +Read category definitions from a file. +

    +
    ++ + + + + + + + + + +

    utf8_filename :

    Filename of categories file (name encoded as UTF-8)

    Returns :

    a list of lglCategory structures.
    +
    +
    +
    +

    lgl_xml_category_parse_categories_doc ()

    +
    GList *             lgl_xml_category_parse_categories_doc
    +                                                        (xmlDocPtr categories_doc);
    +

    +Read category definitions from a libxml xmlDocPtr tree. +

    +
    ++ + + + + + + + + + +

    categories_doc :

    libxml xmlDocPtr tree, representing a categories +definition file.

    Returns :

    a list of lglCategory structures.
    +
    +
    +
    +

    lgl_xml_category_parse_category_node ()

    +
    lglCategory *       lgl_xml_category_parse_category_node
    +                                                        (xmlNodePtr category_node);
    +

    +Read a single category definition from a libxml xmlNodePtr node. +

    +
    ++ + + + + + + + + + +

    category_node :

    libxml xmlNodePtr category node from a xmlDocPtr tree.

    Returns :

    a pointer to a newly created lglCategory structure.
    +
    +
    +
    + + + \ No newline at end of file diff --git a/docs/libglabels/html/libglabels-3.0-xml-paper.html b/docs/libglabels/html/libglabels-3.0-xml-paper.html new file mode 100644 index 00000000..a7ee3d6b --- /dev/null +++ b/docs/libglabels/html/libglabels-3.0-xml-paper.html @@ -0,0 +1,125 @@ + + + + +XML Paper Functions + + + + + + + + + + + + + + + + + + + +
    +
    +
    + + +
    +

    XML Paper Functions

    +

    XML Paper Functions — Functions to parse glabels XML paper definition files

    +
    +
    +

    Synopsis

    +
    +#include <libglabels/lgl-xml-paper.h>
    +
    +GList *             lgl_xml_paper_read_papers_from_file (gchar *utf8_filename);
    +GList *             lgl_xml_paper_parse_papers_doc      (xmlDocPtr papers_doc);
    +lglPaper *          lgl_xml_paper_parse_paper_node      (xmlNodePtr paper_node);
    +
    +
    +
    +

    Description

    +

    +This section describes a number of functions for parsing glabels +XML paper definition files. +

    +
    +
    +

    Details

    +
    +

    lgl_xml_paper_read_papers_from_file ()

    +
    GList *             lgl_xml_paper_read_papers_from_file (gchar *utf8_filename);
    +

    +Read paper definitions from a file. +

    +
    ++ + + + + + + + + + +

    utf8_filename :

    Filename of papers file (name encoded as UTF-8)

    Returns :

    a list of lglPaper structures.
    +
    +
    +
    +

    lgl_xml_paper_parse_papers_doc ()

    +
    GList *             lgl_xml_paper_parse_papers_doc      (xmlDocPtr papers_doc);
    +

    +Read paper definitions from a libxml xmlDocPtr tree. +

    +
    ++ + + + + + + + + + +

    papers_doc :

    libxml xmlDocPtr tree, representing a papers definition file.

    Returns :

    a list of lglPaper structures.
    +
    +
    +
    +

    lgl_xml_paper_parse_paper_node ()

    +
    lglPaper *          lgl_xml_paper_parse_paper_node      (xmlNodePtr paper_node);
    +

    +Read a single paper definition from a libxml xmlNodePtr node. +

    +
    ++ + + + + + + + + + +

    paper_node :

    libxml xmlNodePtr paper node from a xmlDocPtr tree.

    Returns :

    a pointer to a newly created lglPaper structure.
    +
    +
    +
    + + + \ No newline at end of file diff --git a/docs/libglabels/html/libglabels-3.0-xml-template.html b/docs/libglabels/html/libglabels-3.0-xml-template.html new file mode 100644 index 00000000..a7021cea --- /dev/null +++ b/docs/libglabels/html/libglabels-3.0-xml-template.html @@ -0,0 +1,215 @@ + + + + +XML Template Functions + + + + + + + + + + + + + + + + + + + +
    +
    +
    + + +
    +

    XML Template Functions

    +

    XML Template Functions — Functions to create and parse glabels XML template nodes and files

    +
    +
    +

    Synopsis

    +
    +#include <libglabels/lgl-xml-templates.h>
    +
    +void                lgl_xml_template_read_templates_from_file
    +                                                        (const gchar *utf8_filename);
    +void                lgl_xml_template_parse_templates_doc
    +                                                        (const xmlDocPtr templates_doc);
    +lglTemplate *       lgl_xml_template_parse_template_node
    +                                                        (const xmlNodePtr template_node);
    +gint                lgl_xml_template_write_templates_to_file
    +                                                        (GList *templates,
    +                                                         const gchar *utf8_filename);
    +gint                lgl_xml_template_write_template_to_file
    +                                                        (const lglTemplate *template,
    +                                                         const gchar *utf8_filename);
    +void                lgl_xml_template_create_template_node
    +                                                        (const lglTemplate *template,
    +                                                         xmlNodePtr root,
    +                                                         const xmlNsPtr ns);
    +
    +
    +
    +

    Description

    +

    +This section describes a number of functions for creating and parsing +glabels XML template nodes and files. Template nodes are used in both +template files and document files. +

    +
    +
    +

    Details

    +
    +

    lgl_xml_template_read_templates_from_file ()

    +
    void                lgl_xml_template_read_templates_from_file
    +                                                        (const gchar *utf8_filename);
    +

    +Read glabels templates from template file. +

    +
    ++ + + + +

    utf8_filename :

    Filename of papers file (name encoded as UTF-8)
    +
    +
    +
    +

    lgl_xml_template_parse_templates_doc ()

    +
    void                lgl_xml_template_parse_templates_doc
    +                                                        (const xmlDocPtr templates_doc);
    +

    +Read glabels templates from a libxml xmlDocPtr tree. +

    +
    ++ + + + +

    templates_doc :

    libxml xmlDocPtr tree, representing template file.
    +
    +
    +
    +

    lgl_xml_template_parse_template_node ()

    +
    lglTemplate *       lgl_xml_template_parse_template_node
    +                                                        (const xmlNodePtr template_node);
    +

    +Read a single glabels template from a libxml xmlNodePtr node. +

    +
    ++ + + + + + + + + + +

    template_node :

    libxml xmlNodePtr template node from a xmlDocPtr tree.

    Returns :

    a pointer to a newly created lglTemplate structure.
    +
    +
    +
    +

    lgl_xml_template_write_templates_to_file ()

    +
    gint                lgl_xml_template_write_templates_to_file
    +                                                        (GList *templates,
    +                                                         const gchar *utf8_filename);
    +

    +Write a list of lglTemplate structures to a glabels XML template file. +

    +
    ++ + + + + + + + + + + + + + +

    templates :

    List of lglTemplate structures

    utf8_filename :

    Filename of templates file (name encoded as UTF-8)

    Returns :

    the number of bytes written or -1 in case of failure
    +
    +
    +
    +

    lgl_xml_template_write_template_to_file ()

    +
    gint                lgl_xml_template_write_template_to_file
    +                                                        (const lglTemplate *template,
    +                                                         const gchar *utf8_filename);
    +

    +Write a single lglTemplate structures to a glabels XML template file. +

    +
    ++ + + + + + + + + + + + + + +

    template :

    +lglTemplate structure to be written

    utf8_filename :

    Filename of templates file (name encoded as UTF-8)

    Returns :

    the number of bytes written or -1 in case of failure
    +
    +
    +
    +

    lgl_xml_template_create_template_node ()

    +
    void                lgl_xml_template_create_template_node
    +                                                        (const lglTemplate *template,
    +                                                         xmlNodePtr root,
    +                                                         const xmlNsPtr ns);
    +

    +Add a single lglTemplate child node to given xmlNodePtr. +

    +
    ++ + + + + + + + + + + + + + +

    template :

    +lglTemplate structure to be written

    root :

    parent node to receive new child node

    ns :

    a libxml xmlNsPtr +
    +
    +
    +
    + + + \ No newline at end of file diff --git a/docs/libglabels/html/libglabels-3.0-xml-vendor.html b/docs/libglabels/html/libglabels-3.0-xml-vendor.html new file mode 100644 index 00000000..b09075c7 --- /dev/null +++ b/docs/libglabels/html/libglabels-3.0-xml-vendor.html @@ -0,0 +1,126 @@ + + + + +XML Vendor Functions + + + + + + + + + + + + + + + + + + + +
    +
    +
    + + +
    +

    XML Vendor Functions

    +

    XML Vendor Functions — Functions to parse glabels XML vendor descriptions

    +
    +
    +

    Synopsis

    +
    +#include <libglabels/lgl-xml-vendor.h>
    +
    +GList *             lgl_xml_vendor_read_vendors_from_file
    +                                                        (gchar *utf8_filename);
    +GList *             lgl_xml_vendor_parse_vendors_doc    (xmlDocPtr vendors_doc);
    +lglVendor *         lgl_xml_vendor_parse_vendor_node    (xmlNodePtr vendor_node);
    +
    +
    +
    +

    Description

    +

    +This section describes several functions for parsing vendor XML description files. +

    +
    +
    +

    Details

    +
    +

    lgl_xml_vendor_read_vendors_from_file ()

    +
    GList *             lgl_xml_vendor_read_vendors_from_file
    +                                                        (gchar *utf8_filename);
    +

    +Read vendor definitions from a file. +

    +
    ++ + + + + + + + + + +

    utf8_filename :

    Filename of vendors file (name encoded as UTF-8)

    Returns :

    a list of lglVendor structures.
    +
    +
    +
    +

    lgl_xml_vendor_parse_vendors_doc ()

    +
    GList *             lgl_xml_vendor_parse_vendors_doc    (xmlDocPtr vendors_doc);
    +

    +Read vendor definitions from a libxml xmlDocPtr tree. +

    +
    ++ + + + + + + + + + +

    vendors_doc :

    libxml xmlDocPtr tree, representing a vendors definition file.

    Returns :

    a list of lglVendor structures.
    +
    +
    +
    +

    lgl_xml_vendor_parse_vendor_node ()

    +
    lglVendor *         lgl_xml_vendor_parse_vendor_node    (xmlNodePtr vendor_node);
    +

    +Read a single vendor definition from a libxml xmlNodePtr node. +

    +
    ++ + + + + + + + + + +

    vendor_node :

    libxml xmlNodePtr vendor node from a xmlDocPtr tree.

    Returns :

    a pointer to a newly created lglVendor structure.
    +
    +
    +
    + + + \ No newline at end of file diff --git a/docs/libglabels/html/libglabels-3.0-xml.html b/docs/libglabels/html/libglabels-3.0-xml.html new file mode 100644 index 00000000..a53c8686 --- /dev/null +++ b/docs/libglabels/html/libglabels-3.0-xml.html @@ -0,0 +1,571 @@ + + + + +XML Helper Functions + + + + + + + + + + + + + + + + + + + +
    +
    +
    + + +
    +

    XML Helper Functions

    +

    XML Helper Functions — Functions to help format and parse glabels XML properties

    +
    +
    +

    Synopsis

    +
    +#include <libglabels/lgl-xml.h>
    +
    +#define             LGL_XML_NAME_SPACE
    +
    +gchar *             lgl_xml_get_prop_string             (xmlNodePtr node,
    +                                                         const gchar *property,
    +                                                         const gchar *default_val);
    +gchar *             lgl_xml_get_prop_i18n_string        (xmlNodePtr node,
    +                                                         const gchar *property,
    +                                                         const gchar *default_val);
    +gdouble             lgl_xml_get_prop_double             (xmlNodePtr node,
    +                                                         const gchar *property,
    +                                                         gdouble default_val);
    +gboolean            lgl_xml_get_prop_boolean            (xmlNodePtr node,
    +                                                         const gchar *property,
    +                                                         gboolean default_val);
    +gint                lgl_xml_get_prop_int                (xmlNodePtr node,
    +                                                         const gchar *property,
    +                                                         gint default_val);
    +guint               lgl_xml_get_prop_uint               (xmlNodePtr node,
    +                                                         const gchar *property,
    +                                                         guint default_val);
    +gdouble             lgl_xml_get_prop_length             (xmlNodePtr node,
    +                                                         const gchar *property,
    +                                                         gdouble default_val);
    +
    +void                lgl_xml_set_prop_string             (xmlNodePtr node,
    +                                                         const gchar *property,
    +                                                         const gchar *val);
    +void                lgl_xml_set_prop_double             (xmlNodePtr node,
    +                                                         const gchar *property,
    +                                                         gdouble val);
    +void                lgl_xml_set_prop_boolean            (xmlNodePtr node,
    +                                                         const gchar *property,
    +                                                         gboolean val);
    +void                lgl_xml_set_prop_int                (xmlNodePtr node,
    +                                                         const gchar *property,
    +                                                         gint val);
    +void                lgl_xml_set_prop_uint_hex           (xmlNodePtr node,
    +                                                         const gchar *property,
    +                                                         guint val);
    +void                lgl_xml_set_prop_length             (xmlNodePtr node,
    +                                                         const gchar *property,
    +                                                         gdouble val);
    +
    +gboolean            lgl_xml_is_node                     (xmlNodePtr node,
    +                                                         const gchar *name);
    +gchar *             lgl_xml_get_node_content            (xmlNodePtr node);
    +
    +void                lgl_xml_set_default_units           (lglUnits units);
    +
    +
    +
    +

    Description

    +

    +This section describes a number of "helper" functions for formatting and +parsing various types of properties for tags in glabels XML file formats. +

    +

    +These functions are basically wrappers to functions from libxml2. +

    +
    +
    +

    Details

    +
    +

    LGL_XML_NAME_SPACE

    +
    #define LGL_XML_NAME_SPACE "http://glabels.org/xmlns/3.0/"
    +
    +

    +

    +
    +
    +
    +

    lgl_xml_get_prop_string ()

    +
    gchar *             lgl_xml_get_prop_string             (xmlNodePtr node,
    +                                                         const gchar *property,
    +                                                         const gchar *default_val);
    +

    +Return value of property as a string. +

    +
    ++ + + + + + + + + + + + + + + + + + +

    node :

    the libxml2 xmlNodePtr of the node

    property :

    the property name

    default_val :

    a default value to return if property not found

    Returns :

    the property as a pointer to a gchar string. This string should +be freed with g_free().
    +
    +
    +
    +

    lgl_xml_get_prop_i18n_string ()

    +
    gchar *             lgl_xml_get_prop_i18n_string        (xmlNodePtr node,
    +                                                         const gchar *property,
    +                                                         const gchar *default_val);
    +

    +Return value of a translatable property as a string. +

    +
    ++ + + + + + + + + + + + + + + + + + +

    node :

    the libxml2 xmlNodePtr of the node

    property :

    the property name

    default_val :

    a default value to return if property not found

    Returns :

    the property as a pointer to a gchar string. This string should +be freed with g_free().
    +
    +
    +
    +

    lgl_xml_get_prop_double ()

    +
    gdouble             lgl_xml_get_prop_double             (xmlNodePtr node,
    +                                                         const gchar *property,
    +                                                         gdouble default_val);
    +

    +Return value of property as a double. +

    +
    ++ + + + + + + + + + + + + + + + + + +

    node :

    the libxml2 xmlNodePtr of the node

    property :

    the property name

    default_val :

    a default value to return if property not found

    Returns :

    the property as a double.
    +
    +
    +
    +

    lgl_xml_get_prop_boolean ()

    +
    gboolean            lgl_xml_get_prop_boolean            (xmlNodePtr node,
    +                                                         const gchar *property,
    +                                                         gboolean default_val);
    +

    +Return value of property as a boolean. +

    +
    ++ + + + + + + + + + + + + + + + + + +

    node :

    the libxml2 xmlNodePtr of the node

    property :

    the property name

    default_val :

    a default value to return if property not found

    Returns :

    the property as a boolean.
    +
    +
    +
    +

    lgl_xml_get_prop_int ()

    +
    gint                lgl_xml_get_prop_int                (xmlNodePtr node,
    +                                                         const gchar *property,
    +                                                         gint default_val);
    +

    +Return value of property as an integer. +

    +
    ++ + + + + + + + + + + + + + + + + + +

    node :

    the libxml2 xmlNodePtr of the node

    property :

    the property name

    default_val :

    a default value to return if property not found

    Returns :

    the property as an integer.
    +
    +
    +
    +

    lgl_xml_get_prop_uint ()

    +
    guint               lgl_xml_get_prop_uint               (xmlNodePtr node,
    +                                                         const gchar *property,
    +                                                         guint default_val);
    +

    +Return value of property (usually formatted in hex) as an unsigned integer. +

    +
    ++ + + + + + + + + + + + + + + + + + +

    node :

    the libxml2 xmlNodePtr of the node

    property :

    the property name

    default_val :

    a default value to return if property not found

    Returns :

    the property as an unsigned integer.
    +
    +
    +
    +

    lgl_xml_get_prop_length ()

    +
    gdouble             lgl_xml_get_prop_length             (xmlNodePtr node,
    +                                                         const gchar *property,
    +                                                         gdouble default_val);
    +

    +Return value of a length property as a double, converting to internal +units (points). The property is expected to be formatted as a number +followed by a units string. If there is no units string, the length +is assumed to be in points. Valid units strings are "pt" for points, +"in" for inches, "mm" for millimeters, "cm" for centimeters, and +"pc" for picas. +

    +
    ++ + + + + + + + + + + + + + + + + + +

    node :

    the libxml2 xmlNodePtr of the node

    property :

    the property name

    default_val :

    a default value to return if property not found

    Returns :

    the length in points.
    +
    +
    +
    +

    lgl_xml_set_prop_string ()

    +
    void                lgl_xml_set_prop_string             (xmlNodePtr node,
    +                                                         const gchar *property,
    +                                                         const gchar *val);
    +

    +Set a property from a string. +

    +
    ++ + + + + + + + + + + + + + +

    node :

    the libxml2 xmlNodePtr of the node

    property :

    the property name

    val :

    the value to set
    +
    +
    +
    +

    lgl_xml_set_prop_double ()

    +
    void                lgl_xml_set_prop_double             (xmlNodePtr node,
    +                                                         const gchar *property,
    +                                                         gdouble val);
    +

    +Set a property from a double. +

    +
    ++ + + + + + + + + + + + + + +

    node :

    the libxml2 xmlNodePtr of the node

    property :

    the property name

    val :

    the value to set
    +
    +
    +
    +

    lgl_xml_set_prop_boolean ()

    +
    void                lgl_xml_set_prop_boolean            (xmlNodePtr node,
    +                                                         const gchar *property,
    +                                                         gboolean val);
    +

    +Set a property from a boolean. +

    +
    ++ + + + + + + + + + + + + + +

    node :

    the libxml2 xmlNodePtr of the node

    property :

    the property name

    val :

    the value to set
    +
    +
    +
    +

    lgl_xml_set_prop_int ()

    +
    void                lgl_xml_set_prop_int                (xmlNodePtr node,
    +                                                         const gchar *property,
    +                                                         gint val);
    +

    +Set a property from an integer. +

    +
    ++ + + + + + + + + + + + + + +

    node :

    the libxml2 xmlNodePtr of the node

    property :

    the property name

    val :

    the value to set
    +
    +
    +
    +

    lgl_xml_set_prop_uint_hex ()

    +
    void                lgl_xml_set_prop_uint_hex           (xmlNodePtr node,
    +                                                         const gchar *property,
    +                                                         guint val);
    +

    +Set a property from an unsigned integer and format in hex. +

    +
    ++ + + + + + + + + + + + + + +

    node :

    the libxml2 xmlNodePtr of the node

    property :

    the property name

    val :

    the value to set
    +
    +
    +
    +

    lgl_xml_set_prop_length ()

    +
    void                lgl_xml_set_prop_length             (xmlNodePtr node,
    +                                                         const gchar *property,
    +                                                         gdouble val);
    +

    +Set a property from a length, performing any necessary conversion. +Length properties are formatted as a number followed by a units string. +The units of the formatted property is determined by the most recent call to +lgl_xml_set_default_units(). +

    +
    ++ + + + + + + + + + + + + + +

    node :

    the libxml2 xmlNodePtr of the node

    property :

    the property name

    val :

    the length to set in internal units (points)
    +
    +
    +
    +

    lgl_xml_is_node ()

    +
    gboolean            lgl_xml_is_node                     (xmlNodePtr node,
    +                                                         const gchar *name);
    +

    +Test if a node name matches given name. +

    +
    ++ + + + + + + + + + + + + + +

    node :

    the libxml2 xmlNodePtr of the node

    name :

    the node name

    Returns :

    TRUE if the name of the node matches. Otherwise FALSE.
    +
    +
    +
    +

    lgl_xml_get_node_content ()

    +
    gchar *             lgl_xml_get_node_content            (xmlNodePtr node);
    +

    +Get the content of a node. +

    +
    ++ + + + + + + + + + +

    node :

    the libxml2 xmlNodePtr of the node

    Returns :

    the property as a pointer to a gchar string. This string should +be freed with g_free().
    +
    +
    +
    +

    lgl_xml_set_default_units ()

    +
    void                lgl_xml_set_default_units           (lglUnits units);
    +

    +Set the default units when formatting lengths. See +lgl_xml_set_prop_length(). +

    +
    ++ + + + +

    units :

    default units selection (lglUnits)
    +
    +
    +
    + + + \ No newline at end of file diff --git a/docs/libglabels/html/libglabels-3.0.devhelp b/docs/libglabels/html/libglabels-3.0.devhelp new file mode 100644 index 00000000..1b34d575 --- /dev/null +++ b/docs/libglabels/html/libglabels-3.0.devhelp @@ -0,0 +1,178 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/libglabels/html/libglabels-3.0.devhelp2 b/docs/libglabels/html/libglabels-3.0.devhelp2 new file mode 100644 index 00000000..33abfc71 --- /dev/null +++ b/docs/libglabels/html/libglabels-3.0.devhelp2 @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/libglabels/html/libglabels-category.html b/docs/libglabels/html/libglabels-category.html deleted file mode 100644 index 3725ff55..00000000 --- a/docs/libglabels/html/libglabels-category.html +++ /dev/null @@ -1,181 +0,0 @@ - - - - -The lglCategory Structure - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    - - -
    -

    The lglCategory Structure

    -

    The lglCategory Structure — Template category definitions

    -
    -
    -

    Synopsis

    -
    -
    -#include <libglabels/category.h>
    -
    -                    lglCategory;
    -lglCategory *       lgl_category_new                    (gchar *id,
    -                                                         gchar *name);
    -lglCategory *       lgl_category_dup                    (const lglCategory *orig);
    -void                lgl_category_free                   (lglCategory *category);
    -
    -
    -
    -

    Description

    -

    -This section describes a structure for representing a category of stationary and related -functions. -

    -
    -
    -

    Details

    -
    -

    lglCategory

    -
    typedef struct {
    -	gchar               *id;     /* Unique ID of category */
    -	gchar               *name;   /* Localized name of category */
    -} lglCategory;
    -
    -

    -This structure defines a category. -

    -
    -- - - - - - - - - - -

    gchar *id;

    Category ID. -

    gchar *name;

    Localized category name. -
    -
    -
    -
    -

    lgl_category_new ()

    -
    lglCategory *       lgl_category_new                    (gchar *id,
    -                                                         gchar *name);
    -

    -Allocates and constructs a new lglCategory structure.

    -

    -

    -
    -- - - - - - - - - - - - - - -

    id :

    Id of category definition. (E.g. label, card, etc.) Should be - unique. -

    name :

    Localized name of category. -

    Returns :

    a pointer to a newly allocated lglCategory structure. - -
    -
    -
    -
    -

    lgl_category_dup ()

    -
    lglCategory *       lgl_category_dup                    (const lglCategory *orig);
    -

    -Duplicates an existing lglCategory structure.

    -

    -

    -
    -- - - - - - - - - - -

    orig :

    lglCategory structure to be duplicated. -

    Returns :

    a pointer to a newly allocated lglCategory structure. - -
    -
    -
    -
    -

    lgl_category_free ()

    -
    void                lgl_category_free                   (lglCategory *category);
    -

    -Free all memory associated with an existing lglCategory structure.

    -

    -

    -
    -- - - - -

    category :

    pointer to lglCategory structure to be freed. -
    -
    -
    -
    - - - diff --git a/docs/libglabels/html/libglabels-db.html b/docs/libglabels/html/libglabels-db.html deleted file mode 100644 index e221080d..00000000 --- a/docs/libglabels/html/libglabels-db.html +++ /dev/null @@ -1,1073 +0,0 @@ - - - - -Database - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    - - -
    -

    Database

    -

    Database — Database of pre-defined templates

    -
    -
    -

    Synopsis

    -
    -
    -#include <libglabels/db.h>
    -
    -enum                lglDbRegStatus;
    -
    -void                lgl_db_init                         (void);
    -
    -GList *             lgl_db_get_paper_id_list            (void);
    -void                lgl_db_free_paper_id_list           (GList *ids);
    -GList *             lgl_db_get_paper_name_list          (void);
    -void                lgl_db_free_paper_name_list         (GList *names);
    -lglPaper *          lgl_db_lookup_paper_from_id         (const gchar *id);
    -lglPaper *          lgl_db_lookup_paper_from_name       (const gchar *name);
    -gchar *             lgl_db_lookup_paper_id_from_name    (const gchar *name);
    -gchar *             lgl_db_lookup_paper_name_from_id    (const gchar *id);
    -gboolean            lgl_db_is_paper_id_known            (const gchar *id);
    -gboolean            lgl_db_is_paper_id_other            (const gchar *id);
    -
    -GList *             lgl_db_get_category_id_list         (void);
    -void                lgl_db_free_category_id_list        (GList *ids);
    -GList *             lgl_db_get_category_name_list       (void);
    -void                lgl_db_free_category_name_list      (GList *names);
    -lglCategory *       lgl_db_lookup_category_from_id      (const gchar *id);
    -lglCategory *       lgl_db_lookup_category_from_name    (const gchar *name);
    -gchar *             lgl_db_lookup_category_id_from_name (const gchar *name);
    -gchar *             lgl_db_lookup_category_name_from_id (const gchar *id);
    -gboolean            lgl_db_is_category_id_known         (const gchar *id);
    -
    -GList *             lgl_db_get_brand_list               (const gchar *paper_id,
    -                                                         const gchar *category_id);
    -void                lgl_db_free_brand_list              (GList *brands);
    -
    -lglDbRegStatus      lgl_db_register_template            (const lglTemplate *template);
    -gboolean            lgl_db_does_template_exist          (const gchar *brand,
    -                                                         const gchar *part);
    -gboolean            lgl_db_does_template_name_exist     (const gchar *name);
    -GList *             lgl_db_get_template_name_list_unique
    -                                                        (const gchar *brand,
    -                                                         const gchar *paper_id,
    -                                                         const gchar *category_id);
    -GList *             lgl_db_get_template_name_list_all   (const gchar *brand,
    -                                                         const gchar *paper_id,
    -                                                         const gchar *category_id);
    -void                lgl_db_free_template_name_list      (GList *names);
    -lglTemplate *       lgl_db_lookup_template_from_name    (const gchar *name);
    -
    -void                lgl_db_print_known_papers           (void);
    -void                lgl_db_print_known_categories       (void);
    -void                lgl_db_print_known_templates        (void);
    -void                lgl_db_print_aliases                (const lglTemplate *template);
    -
    -
    -
    -

    Description

    -

    -This section describes a set of functions to locate and add templates and related information in -the LibGlabels template database. -

    -
    -
    -

    Details

    -
    -

    enum lglDbRegStatus

    -
    typedef enum
    -{
    -        LGL_DB_REG_OK                =  0,
    -        LGL_DB_REG_BAD_PAPER_ID      = -1,
    -        LGL_DB_REG_BRAND_PART_EXISTS = -2,
    -        LGL_DB_REG_FILE_WRITE_ERROR  = -3
    -} lglDbRegStatus;
    -
    -

    -This enumeration defines a set of possible return values for lgl_db_register_template(). -

    -
    -- - - - - - - - - - - - - - - - - - -

    LGL_DB_REG_OK

    Registration successful. -

    LGL_DB_REG_BAD_PAPER_ID

    Registration failed because paper id is unknown. -

    LGL_DB_REG_BRAND_PART_EXISTS

    Registration failed because template with same brand and part name/number already exists. -

    LGL_DB_REG_FILE_WRITE_ERROR

    Registration failed because an error while writing to disk. -
    -
    -
    -
    -

    lgl_db_init ()

    -
    void                lgl_db_init                         (void);
    -

    -Initialize all libglabels subsystems. It is not necessary for an application to call -lgl_db_init(), because libglabels will initialize on demand. An application programmer may -choose to call lgl_db_init() at startup to minimize the impact of the first libglabels call -on GUI response time. -

    -

    -This function initializes its paper definitions, category definitions, and its template -database.. It will search both system and user template directories to locate -this data.

    -

    -

    -
    -
    -
    -

    lgl_db_get_paper_id_list ()

    -
    GList *             lgl_db_get_paper_id_list            (void);
    -

    -Get a list of all paper ids known to libglabels.

    -

    -

    -
    -- - - - -

    Returns :

    a list of paper ids. - -
    -
    -
    -
    -

    lgl_db_free_paper_id_list ()

    -
    void                lgl_db_free_paper_id_list           (GList *ids);
    -

    -Free up all storage associated with an id list obtained with -lgl_db_get_paper_id_list().

    -

    -

    -
    -- - - - -

    ids :

    List of id strings to be freed. -
    -
    -
    -
    -

    lgl_db_get_paper_name_list ()

    -
    GList *             lgl_db_get_paper_name_list          (void);
    -

    -Get a list of all localized paper names known to libglabels.

    -

    -

    -
    -- - - - -

    Returns :

    a list of localized paper names. - -
    -
    -
    -
    -

    lgl_db_free_paper_name_list ()

    -
    void                lgl_db_free_paper_name_list         (GList *names);
    -

    -Free up all storage associated with a name list obtained with -lgl_db_get_paper_name_list().

    -

    -

    -
    -- - - - -

    names :

    List of localized paper name strings to be freed. -
    -
    -
    -
    -

    lgl_db_lookup_paper_from_id ()

    -
    lglPaper *          lgl_db_lookup_paper_from_id         (const gchar *id);
    -

    -Lookup paper definition from id string.

    -

    -

    -
    -- - - - - - - - - - -

    id :

    paper id string -

    Returns :

    pointer to a newly allocated lglPaper structure. - -
    -
    -
    -
    -

    lgl_db_lookup_paper_from_name ()

    -
    lglPaper *          lgl_db_lookup_paper_from_name       (const gchar *name);
    -

    -Lookup paper definition from localized paper name string.

    -

    -

    -
    -- - - - - - - - - - -

    name :

    localized paper name string -

    Returns :

    pointer to a newly allocated lglPaper structure. - -
    -
    -
    -
    -

    lgl_db_lookup_paper_id_from_name ()

    -
    gchar *             lgl_db_lookup_paper_id_from_name    (const gchar *name);
    -

    -Lookup paper name string from localized paper name string.

    -

    -

    -
    -- - - - - - - - - - -

    name :

    localized paper name stringp -

    Returns :

    pointer to a newly allocated id string. - -
    -
    -
    -
    -

    lgl_db_lookup_paper_name_from_id ()

    -
    gchar *             lgl_db_lookup_paper_name_from_id    (const gchar *id);
    -

    -Lookup localized paper name string from paper id string.

    -

    -

    -
    -- - - - - - - - - - -

    id :

    paper id string -

    Returns :

    pointer to a newly allocated localized paper name string. - -
    -
    -
    -
    -

    lgl_db_is_paper_id_known ()

    -
    gboolean            lgl_db_is_paper_id_known            (const gchar *id);
    -

    -Determine if given paper id is known to libglabels.

    -

    -

    -
    -- - - - - - - - - - -

    id :

    paper id to test -

    Returns :

    TRUE if id is known, otherwise FALSE. - -
    -
    -
    -
    -

    lgl_db_is_paper_id_other ()

    -
    gboolean            lgl_db_is_paper_id_other            (const gchar *id);
    -

    -Determine if given paper id is the special id "Other."

    -

    -

    -
    -- - - - - - - - - - -

    id :

    paper id to test -

    Returns :

    TRUE if id is "Other", otherwise FALSE. - -
    -
    -
    -
    -

    lgl_db_get_category_id_list ()

    -
    GList *             lgl_db_get_category_id_list         (void);
    -

    -Get a list of all category ids known to libglabels.

    -

    -

    -
    -- - - - -

    Returns :

    a list of category ids. - -
    -
    -
    -
    -

    lgl_db_free_category_id_list ()

    -
    void                lgl_db_free_category_id_list        (GList *ids);
    -

    -Free up all storage associated with an id list obtained with -lgl_db_get_category_id_list().

    -

    -

    -
    -- - - - -

    ids :

    List of id strings to be freed. -
    -
    -
    -
    -

    lgl_db_get_category_name_list ()

    -
    GList *             lgl_db_get_category_name_list       (void);
    -

    -Get a list of all localized category names known to libglabels.

    -

    -

    -
    -- - - - -

    Returns :

    a list of localized category names. - -
    -
    -
    -
    -

    lgl_db_free_category_name_list ()

    -
    void                lgl_db_free_category_name_list      (GList *names);
    -

    -Free up all storage associated with a name list obtained with -lgl_db_get_category_name_list().

    -

    -

    -
    -- - - - -

    names :

    List of localized category name strings to be freed. -
    -
    -
    -
    -

    lgl_db_lookup_category_from_id ()

    -
    lglCategory *       lgl_db_lookup_category_from_id      (const gchar *id);
    -

    -Lookup category definition from id string.

    -

    -

    -
    -- - - - - - - - - - -

    id :

    category id string -

    Returns :

    pointer to a newly allocated lglCategory structure. - -
    -
    -
    -
    -

    lgl_db_lookup_category_from_name ()

    -
    lglCategory *       lgl_db_lookup_category_from_name    (const gchar *name);
    -

    -Lookup category definition from localized category name string.

    -

    -

    -
    -- - - - - - - - - - -

    name :

    localized category name string -

    Returns :

    pointer to a newly allocated lglCategory structure. - -
    -
    -
    -
    -

    lgl_db_lookup_category_id_from_name ()

    -
    gchar *             lgl_db_lookup_category_id_from_name (const gchar *name);
    -

    -Lookup category name string from localized category name string.

    -

    -

    -
    -- - - - - - - - - - -

    name :

    localized category name stringp -

    Returns :

    pointer to a newly allocated id string. - -
    -
    -
    -
    -

    lgl_db_lookup_category_name_from_id ()

    -
    gchar *             lgl_db_lookup_category_name_from_id (const gchar *id);
    -

    -Lookup localized category name string from category id string.

    -

    -

    -
    -- - - - - - - - - - -

    id :

    category id string -

    Returns :

    pointer to a newly allocated localized category name string. - -
    -
    -
    -
    -

    lgl_db_is_category_id_known ()

    -
    gboolean            lgl_db_is_category_id_known         (const gchar *id);
    -

    -Determine if given category id is known to libglabels.

    -

    -

    -
    -- - - - - - - - - - -

    id :

    category id to test -

    Returns :

    TRUE if id is known, otherwise FALSE. - -
    -
    -
    -
    -

    lgl_db_get_brand_list ()

    -
    GList *             lgl_db_get_brand_list               (const gchar *paper_id,
    -                                                         const gchar *category_id);
    -

    -Get a list of all valid brands of templates in the template database. -Results can be filtered by page size and/or template category. A list of valid page -sizes can be obtained using lgl_db_get_paper_id_list(). A list of valid template -categories can be obtained using lgl_db_get_category_id_list().

    -

    -

    -
    -- - - - - - - - - - - - - - -

    paper_id :

    If non NULL, limit results to given page size. -

    category_id :

    If non NULL, limit results to given template category. -

    Returns :

    a list of brands -
    -
    -
    -
    -

    lgl_db_free_brand_list ()

    -
    void                lgl_db_free_brand_list              (GList *brands);
    -

    -Free up all storage associated with a list of template names obtained with -lgl_db_get_brand_list().

    -

    -

    -
    -- - - - -

    brands :

    List of template brand strings to be freed. -
    -
    -
    -
    -

    lgl_db_register_template ()

    -
    lglDbRegStatus      lgl_db_register_template            (const lglTemplate *template);
    -

    -Register a template. This function adds a template to the template database. -The template will be stored in an individual XML file in the user template directory.

    -

    -

    -
    -- - - - - - - - - - -

    template :

    Pointer to a template structure to add to database. -

    Returns :

    Status of registration attempt (lglDbRegStatus) -
    -
    -
    -
    -

    lgl_db_does_template_exist ()

    -
    gboolean            lgl_db_does_template_exist          (const gchar *brand,
    -                                                         const gchar *part);
    -

    -This function tests whether a template with the given brand and part name/number exists.

    -

    -

    -
    -- - - - - - - - - - - - - - -

    brand :

    Brand name. -

    part :

    Part name/number. -

    Returns :

    TRUE if such a template exists in the database. -
    -
    -
    -
    -

    lgl_db_does_template_name_exist ()

    -
    gboolean            lgl_db_does_template_name_exist     (const gchar *name);
    -

    -This function test whether a template with the given name exists.

    -

    -

    -
    -- - - - - - - - - - -

    name :

    name string -

    Returns :

    TRUE if such a template exists in the database. - -
    -
    -
    -
    -

    lgl_db_get_template_name_list_unique ()

    -
    GList *             lgl_db_get_template_name_list_unique
    -                                                        (const gchar *brand,
    -                                                         const gchar *paper_id,
    -                                                         const gchar *category_id);
    -

    -Get a list of valid names of unique templates in the template database. Results -can be filtered by page size and/or template category. A list of valid page sizes -can be obtained using lgl_db_get_paper_id_list(). A list of valid template categories -can be obtained using lgl_db_get_category_id_list(). -

    -

    -This function differs from lgl_db_get_template_name_list_all(), because it does not -return multiple names for the same template.

    -

    -

    -
    -- - - - - - - - - - - - - - - - - - -

    brand :

    If non NULL, limit results to given brand -

    paper_id :

    If non NULL, limit results to given page size. -

    category_id :

    If non NULL, limit results to given template category. -

    Returns :

    a list of template names. -
    -
    -
    -
    -

    lgl_db_get_template_name_list_all ()

    -
    GList *             lgl_db_get_template_name_list_all   (const gchar *brand,
    -                                                         const gchar *paper_id,
    -                                                         const gchar *category_id);
    -

    -Get a list of all valid names and aliases of templates in the template database. -Results can be filtered by page size and/or template category. A list of valid page -sizes can be obtained using lgl_db_get_paper_id_list(). A list of valid template -categories can be obtained using lgl_db_get_category_id_list(). -

    -

    -This function differs from lgl_db_get_template_name_list_unique(), because it will -return multiple names for the same template.

    -

    -

    -
    -- - - - - - - - - - - - - - - - - - -

    brand :

    If non NULL, limit results to given brand -

    paper_id :

    If non NULL, limit results to given page size. -

    category_id :

    If non NULL, limit results to given template category. -

    Returns :

    a list of template names and aliases. -
    -
    -
    -
    -

    lgl_db_free_template_name_list ()

    -
    void                lgl_db_free_template_name_list      (GList *names);
    -

    -Free up all storage associated with a list of template names obtained with -lgl_db_get_template_name_list_all() or lgl_db_get_template_name_list_unique().

    -

    -

    -
    -- - - - -

    names :

    List of template name strings to be freed. -
    -
    -
    -
    -

    lgl_db_lookup_template_from_name ()

    -
    lglTemplate *       lgl_db_lookup_template_from_name    (const gchar *name);
    -

    -Lookup template in template database from name string.

    -

    -

    -
    -- - - - - - - - - - -

    name :

    name string -

    Returns :

    pointer to a newly allocated lglTemplate structure. - -
    -
    -
    -
    -

    lgl_db_print_known_papers ()

    -
    void                lgl_db_print_known_papers           (void);
    -

    -For debugging purposes: print a list of all paper definitions known to -libglabels.

    -

    -

    -
    -
    -
    -

    lgl_db_print_known_categories ()

    -
    void                lgl_db_print_known_categories       (void);
    -

    -For debugging purposes: print a list of all category definitions known to -libglabels.

    -

    -

    -
    -
    -
    -

    lgl_db_print_known_templates ()

    -
    void                lgl_db_print_known_templates        (void);
    -

    -Print all known templates (for debugging purposes).

    -

    -

    -
    -
    -
    -

    lgl_db_print_aliases ()

    -
    void                lgl_db_print_aliases                (const lglTemplate *template);
    -

    -Print all aliases of a template (for debugging purposes).

    -

    -

    -
    -- - - - -

    template :

    template -
    -
    -
    -
    - - - diff --git a/docs/libglabels/html/libglabels-enums.html b/docs/libglabels/html/libglabels-enums.html deleted file mode 100644 index d2f3862c..00000000 --- a/docs/libglabels/html/libglabels-enums.html +++ /dev/null @@ -1,122 +0,0 @@ - - - - -Enumerations - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    - - -
    -

    Enumerations

    -

    Enumerations — Common enumerations used by libglabels

    -
    -
    -

    Synopsis

    -
    -
    -#include <libglabels/enums.h>
    -
    -enum                lglUnitsType;
    -
    -
    -
    -

    Description

    -

    -This section defines enumerations used to interact with libglabels. -

    -
    -
    -

    Details

    -
    -

    enum lglUnitsType

    -
    typedef enum {
    -	LGL_UNITS_POINT, /* encoded as "pt" */
    -	LGL_UNITS_INCH,  /* encoded as "in" */
    -	LGL_UNITS_MM,    /* encoded as "mm" */
    -	LGL_UNITS_CM,    /* encoded as "cm" */
    -	LGL_UNITS_PICA,  /* encoded as "pc" */
    -
    -	LGL_UNITS_FIRST = LGL_UNITS_POINT,
    -	LGL_UNITS_LAST  = LGL_UNITS_PICA,
    -} lglUnitsType;
    -
    -

    -This enumeration defines a set of units of distance supported by the libglabels XML distance -attributes. -

    -
    -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    LGL_UNITS_POINT

    Points. Encoded as "pt" in XML distance attributes. -

    LGL_UNITS_INCH

    Inches. Encoded as "in" in XML distance attributes. -

    LGL_UNITS_MM

    Millmeters. Encoded as "mm" in XML distance attributes. -

    LGL_UNITS_CM

    Centimeters. Encoded as "cm" in XML distance attributes. -

    LGL_UNITS_PICA

    Picas. Encoded as "pc" in XML distance attributes. -

    LGL_UNITS_FIRST

    First enumeration. Used for generic iteration through supported units.. -

    LGL_UNITS_LAST

    Last enumeration. Used for generic iteration through supported units. -
    -
    -
    -
    - - - diff --git a/docs/libglabels/html/libglabels-paper.html b/docs/libglabels/html/libglabels-paper.html deleted file mode 100644 index 54f9255a..00000000 --- a/docs/libglabels/html/libglabels-paper.html +++ /dev/null @@ -1,238 +0,0 @@ - - - - -The lglPaper Structure - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    - - -
    -

    The lglPaper Structure

    -

    The lglPaper Structure — Paper size definitions

    -
    -
    -

    Synopsis

    -
    -
    -#include <libglabels/paper.h>
    -
    -                    lglPaper;
    -lglPaper *          lgl_paper_new                       (gchar *id,
    -                                                         gchar *name,
    -                                                         gdouble width,
    -                                                         gdouble height,
    -                                                         gchar *pwg_size);
    -lglPaper *          lgl_paper_dup                       (const lglPaper *orig);
    -void                lgl_paper_free                      (lglPaper *paper);
    -
    -
    -
    -

    Description

    -

    -This section describes a structure for representing a paper size definition -and related functions. -

    -
    -
    -

    Details

    -
    -

    lglPaper

    -
    typedef struct {
    -	gchar               *id;       /* Unique ID of paper definition */
    -	gchar               *name;     /* Localized name of paper */
    -	gdouble              width;    /* Width (in points) */
    -	gdouble              height;   /* Height (in points) */
    -	gchar               *pwg_size; /* PWG 5101.1-2002 size name */
    -} lglPaper;
    -
    -

    -This structure defines a paper (page) size. -

    -
    -- - - - - - - - - - - - - - - - - - - - - - -

    gchar *id;

    Paper size ID. -

    gchar *name;

    Localized paper size name. -

    gdouble width;

    Width of paper in points. -

    gdouble height;

    Height of paper in points. -

    gchar *pwg_size;

    PWG 5101.1-2002 size name. -
    -
    -
    -
    -

    lgl_paper_new ()

    -
    lglPaper *          lgl_paper_new                       (gchar *id,
    -                                                         gchar *name,
    -                                                         gdouble width,
    -                                                         gdouble height,
    -                                                         gchar *pwg_size);
    -

    -Allocates and constructs a new lglPaper structure.

    -

    -

    -
    -- - - - - - - - - - - - - - - - - - - - - - - - - - -

    id :

    Id of paper definition. (E.g. US-Letter, A4, etc.) Should be - unique. -

    name :

    Localized name of paper. -

    width :

    Width of paper in points. -

    height :

    Height of paper in points. -

    pwg_size :

    PWG 5101.1-2002 size name. -

    Returns :

    a pointer to a newly allocated lglPaper structure. - -
    -
    -
    -
    -

    lgl_paper_dup ()

    -
    lglPaper *          lgl_paper_dup                       (const lglPaper *orig);
    -

    -Duplicates an existing lglPaper structure.

    -

    -

    -
    -- - - - - - - - - - -

    orig :

    lglPaper structure to be duplicated. -

    Returns :

    a pointer to a newly allocated lglPaper structure. - -
    -
    -
    -
    -

    lgl_paper_free ()

    -
    void                lgl_paper_free                      (lglPaper *paper);
    -

    -Free all memory associated with an existing lglPaper structure.

    -

    -

    -
    -- - - - -

    paper :

    pointer to lglPaper structure to be freed. -
    -
    -
    -
    - - - diff --git a/docs/libglabels/html/libglabels-str.html b/docs/libglabels/html/libglabels-str.html deleted file mode 100644 index 12af9dcb..00000000 --- a/docs/libglabels/html/libglabels-str.html +++ /dev/null @@ -1,112 +0,0 @@ - - - - -String Utility Functions - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    - - -
    -

    String Utility Functions

    -

    String Utility Functions — String utility functions provided by libglabels

    -
    -
    -

    Synopsis

    -
    -
    -#include <libglabels/str.h>
    -
    -gint                lgl_str_utf8_casecmp                (const gchar *s1,
    -                                                         const gchar *s2);
    -
    -
    -
    -

    Description

    -

    -This section defines string utility functions used by libglabels and of -possible use to a user of libglabels. -

    -
    -
    -

    Details

    -
    -

    lgl_str_utf8_casecmp ()

    -
    gint                lgl_str_utf8_casecmp                (const gchar *s1,
    -                                                         const gchar *s2);
    -

    -Compare two UTF-8 strings, ignoring the case of characters. -

    -

    -This function should be used only on strings that are known to be encoded -in UTF-8 or a compatible UTF-8 subset.

    -

    -

    -
    -- - - - - - - - - - - - - - -

    s1 :

    string to compare with s2. -

    s2 :

    string to compare with s1. -

    Returns :

    0 if the strings match, a negative value if s1 < s2, - or a positive value if s1 > s2. - -
    -
    -
    -
    - - - diff --git a/docs/libglabels/html/libglabels-template.html b/docs/libglabels/html/libglabels-template.html deleted file mode 100644 index 3f019331..00000000 --- a/docs/libglabels/html/libglabels-template.html +++ /dev/null @@ -1,2229 +0,0 @@ - - - - -The lglTemplate Structure - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    - - -
    -

    The lglTemplate Structure

    -

    The lglTemplate Structure — How templates are represented in memory

    -
    -
    -

    Synopsis

    -
    -
    -#include <libglabels/template.h>
    -
    -                    lglTemplate;
    -
    -                    lglTemplateAlias;
    -
    -enum                lglTemplateFrameShape;
    -union               lglTemplateFrame;
    -                    lglTemplateFrameAll;
    -                    lglTemplateFrameRect;
    -                    lglTemplateFrameRound;
    -                    lglTemplateFrameCD;
    -
    -                    lglTemplateLayout;
    -
    -enum                lglTemplateMarkupType;
    -union               lglTemplateMarkup;
    -                    lglTemplateMarkupMargin;
    -                    lglTemplateMarkupLine;
    -                    lglTemplateMarkupCircle;
    -                    lglTemplateMarkupRect;
    -
    -                    lglTemplateOrigin;
    -
    -lglTemplate *       lgl_template_new                    (const gchar *brand,
    -                                                         const gchar *part,
    -                                                         const gchar *description,
    -                                                         const gchar *paper_id,
    -                                                         gdouble page_width,
    -                                                         gdouble page_height);
    -lglTemplate *       lgl_template_dup                    (const lglTemplate *orig_template);
    -void                lgl_template_free                   (lglTemplate *template);
    -void                lgl_template_add_category           (lglTemplate *template,
    -                                                         const gchar *category_id);
    -void                lgl_template_add_frame              (lglTemplate *template,
    -                                                         lglTemplateFrame *frame);
    -void                lgl_template_add_alias              (lglTemplate *template,
    -                                                         lglTemplateAlias *alias);
    -
    -gchar *             lgl_template_get_name               (const lglTemplate *template);
    -gboolean            lgl_template_do_templates_match     (const lglTemplate *template1,
    -                                                         const lglTemplate *template2);
    -gboolean            lgl_template_does_brand_match       (const lglTemplate *template,
    -                                                         const gchar *brand);
    -gboolean            lgl_template_does_page_size_match   (const lglTemplate *template,
    -                                                         const gchar *paper_id);
    -gboolean            lgl_template_does_category_match    (const lglTemplate *template,
    -                                                         const gchar *category_id);
    -
    -lglTemplateAlias *  lgl_template_alias_new              (const gchar *brand,
    -                                                         const gchar *part);
    -lglTemplateAlias *  lgl_template_alias_dup              (const lglTemplateAlias *orig_alias);
    -void                lgl_template_alias_free             (lglTemplateAlias *alias);
    -
    -lglTemplateFrame *  lgl_template_frame_rect_new         (const gchar *id,
    -                                                         gdouble w,
    -                                                         gdouble h,
    -                                                         gdouble r,
    -                                                         gdouble x_waste,
    -                                                         gdouble y_waste);
    -lglTemplateFrame *  lgl_template_frame_round_new        (const gchar *id,
    -                                                         gdouble r,
    -                                                         gdouble waste);
    -lglTemplateFrame *  lgl_template_frame_cd_new           (const gchar *id,
    -                                                         gdouble r1,
    -                                                         gdouble r2,
    -                                                         gdouble w,
    -                                                         gdouble h,
    -                                                         gdouble waste);
    -lglTemplateFrame *  lgl_template_frame_dup              (const lglTemplateFrame *orig_frame);
    -void                lgl_template_frame_free             (lglTemplateFrame *frame);
    -void                lgl_template_frame_add_layout       (lglTemplateFrame *frame,
    -                                                         lglTemplateLayout *layout);
    -void                lgl_template_frame_add_markup       (lglTemplateFrame *frame,
    -                                                         lglTemplateMarkup *markup);
    -
    -void                lgl_template_frame_get_size         (const lglTemplateFrame *frame,
    -                                                         gdouble *w,
    -                                                         gdouble *h);
    -gint                lgl_template_frame_get_n_labels     (const lglTemplateFrame *frame);
    -lglTemplateOrigin * lgl_template_frame_get_origins      (const lglTemplateFrame *frame);
    -
    -lglTemplateLayout * lgl_template_layout_new             (gint nx,
    -                                                         gint ny,
    -                                                         gdouble x0,
    -                                                         gdouble y0,
    -                                                         gdouble dx,
    -                                                         gdouble dy);
    -lglTemplateLayout * lgl_template_layout_dup             (const lglTemplateLayout *orig_layout);
    -void                lgl_template_layout_free            (lglTemplateLayout *layout);
    -
    -lglTemplateMarkup * lgl_template_markup_margin_new      (gdouble size);
    -lglTemplateMarkup * lgl_template_markup_line_new        (gdouble x1,
    -                                                         gdouble y1,
    -                                                         gdouble x2,
    -                                                         gdouble y2);
    -lglTemplateMarkup * lgl_template_markup_circle_new      (gdouble x0,
    -                                                         gdouble y0,
    -                                                         gdouble r);
    -lglTemplateMarkup * lgl_template_markup_rect_new        (gdouble x1,
    -                                                         gdouble y1,
    -                                                         gdouble w,
    -                                                         gdouble h,
    -                                                         gdouble r);
    -lglTemplateMarkup * lgl_template_markup_dup             (const lglTemplateMarkup *orig_markup);
    -void                lgl_template_markup_free            (lglTemplateMarkup *markup);
    -
    -
    -
    -

    Description

    -

    -This section describes a set of structures that represent a template in memory. It also -describes functions to help create and interpret these structures. -

    -
    -
    -

    Details

    -
    -

    lglTemplate

    -
    typedef struct {
    -	gchar               *brand;
    -        gchar               *part;
    -	gchar               *description;
    -	gchar               *paper_id;
    -	gdouble              page_width;
    -	gdouble              page_height;
    -
    -	/* List of (lglTemplateAlias *) aliase structures. */
    -	GList               *aliases;
    -
    -        /* List of (gchar *) category ids. */
    -	GList               *category_ids;
    -
    -	/* List of (lglTemplateFrame *) label frame structures.
    -	 * Currently glabels only supports a single label frame per
    -	 * template. */
    -	GList               *frames;
    -} lglTemplate;
    -
    -

    -This is the main structure of a libglabels template. A template represents a single sheet -of peel-off labels or cards. -

    -
    -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    gchar *brand;

    Brand name of label or card. E.g. "Avery." -

    gchar *part;

    Part name or number of label or card. E.g. "8160." -

    gchar *description;

    A description of the template. E.g. "Mailing labels." -

    gchar *paper_id;

    A paper ID. E.g. "A4" or "US-Letter." -

    gdouble page_width;

    Page width in points. Used only if paper_id is "Other." -

    gdouble page_height;

    Page height in points. Used only if paper_id is "Other." -

    GList *aliases;

    A list of alternate names for this template. Often a single template can be used for -multiple products. -

    GList *category_ids;

    A list of category IDs that this template belongs to. -

    GList *frames;

    A list of (lglTemplateFrame *) structures. GLabels currently only supports one frame -per template -- future versions may support multiple frames per template. -
    -
    -
    -
    -

    lglTemplateAlias

    -
    typedef struct {
    -	gchar               *brand;
    -        gchar               *part;
    -} lglTemplateAlias;
    -
    -

    -This structure defines an alias for the parent template structure. An alias is used for -different products that can use the same template. -

    -
    -- - - - - - - - - - -

    gchar *brand;

    Brand name of label or card. E.g. "Avery." -

    gchar *part;

    Part name or number of label or card. E.g. "8160." -
    -
    -
    -
    -

    enum lglTemplateFrameShape

    -
    typedef enum {
    -	LGL_TEMPLATE_FRAME_SHAPE_RECT,
    -	LGL_TEMPLATE_FRAME_SHAPE_ROUND,
    -	LGL_TEMPLATE_FRAME_SHAPE_CD,
    -} lglTemplateFrameShape;
    -
    -

    -This enumeration defines frame types that are supported by libglabels -

    -
    -- - - - - - - - - - - - - - -

    LGL_TEMPLATE_FRAME_SHAPE_RECT

    A rectangular frame. (May have rounded corners.) -

    LGL_TEMPLATE_FRAME_SHAPE_ROUND

    A round frame. -

    LGL_TEMPLATE_FRAME_SHAPE_CD

    A CD or DVD frame. (Includes credit-card style CDs.) -
    -
    -
    -
    -

    union lglTemplateFrame

    -
    union lglTemplateFrame{
    -
    -	lglTemplateFrameShape shape;
    -
    -	lglTemplateFrameAll   all;
    -	lglTemplateFrameRect  rect;
    -	lglTemplateFrameRound round;
    -	lglTemplateFrameCD    cd;
    -};
    -
    -

    -A union of all possible frame structures. The type of structure is indicated by the shape -member, which overlays the first field of all other member structures. -

    -
    -
    -
    -

    lglTemplateFrameAll

    -
    typedef struct {
    -        /* Begin Common Fields */
    -	lglTemplateFrameShape shape;
    -
    -	gchar                *id;       /* Id, currently always "0" */
    -	GList                *layouts;  /* List of lglTemplateLayouts */
    -	GList                *markups;  /* List of lglTemplateMarkups */
    -        /* End Common Fields */
    -} lglTemplateFrameAll;
    -
    -

    -This structure is composed of a set of fields common to all frame structures. All frame types -can be cast to this structure. -

    -
    -- - - - - - - - - - - - - - - - - - -

    lglTemplateFrameShape shape;

    The shape of the frame. -

    gchar *id;

    Reserved for future use. Should always be zero. -

    GList *layouts;

    A list of (lglTemplateLayout *) structures. Typically a frame will have a single -layout, representing a simple grid of labels or cards. If the layout of labels or cards is -more complex, multiple (lglTemplateLayout *) structures may be needed. -

    GList *markups;

    A list of (lglTemplateMarkup *) structures, which represent non-printing markup lines. -
    -
    -
    -
    -

    lglTemplateFrameRect

    -
    typedef struct {
    -        /* Begin Common Fields */
    -	lglTemplateFrameShape shape;    /* Always LGL_TEMPLATE_FRAME_SHAPE_RECT. */
    -
    -	gchar                *id;       /* Id, currently always "0" */
    -	GList                *layouts;  /* List of lglTemplateLayouts */
    -	GList                *markups;  /* List of lglTemplateMarkups */
    -        /* End Common Fields */
    -
    -        gdouble               w;        /* Width */
    -        gdouble               h;        /* Height */
    -        gdouble               r;        /* Corner radius */
    -        gdouble               x_waste;  /* Amount of horiz overprint allowed. */
    -        gdouble               y_waste;  /* Amount of vert overprint allowed. */
    -} lglTemplateFrameRect;
    -
    -

    -This structure defines the frame for a rectangular label or card. -

    -
    -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    lglTemplateFrameShape shape;

    Common field. Always LGL_TEMPLATE_FRAME_SHAPE_RECT for lglTemplateFrameRect. -

    gchar *id;

    Common field. See lglTemplateFrameAll. -

    GList *layouts;

    Common field. See lglTemplateFrameAll. -

    GList *markups;

    Common field. See lglTemplateFrameAll. -

    gdouble w;

    Width of label or card in points. -

    gdouble h;

    Height of label or card in points. -

    gdouble r;

    Radius of corners in points. -

    gdouble x_waste;

    Amount of horizontal over-print to allow in points. -

    gdouble y_waste;

    Amount of vertical over-print to allow in points. -
    -
    -
    -
    -

    lglTemplateFrameRound

    -
    typedef struct {
    -        /* Begin Common Fields */
    -	lglTemplateFrameShape shape;    /* Always LGL_TEMPLATE_FRAME_SHAPE_ROUND. */
    -
    -	gchar                *id;       /* Id, currently always "0" */
    -	GList                *layouts;  /* List of lglTemplateLayouts */
    -	GList                *markups;  /* List of lglTemplateMarkups */
    -        /* End Common Fields */
    -
    -        gdouble               r;      /* Radius */
    -        gdouble               waste;  /* Amount of overprint allowed. */
    -} lglTemplateFrameRound;
    -
    -

    -This structure defines the frame for a round label or card. -

    -
    -- - - - - - - - - - - - - - - - - - - - - - - - - - -

    lglTemplateFrameShape shape;

    Common field. Always LGL_TEMPLATE_FRAME_SHAPE_ROUND for lglTemplateFrameRound. -

    gchar *id;

    Common field. See lglTemplateFrameAll. -

    GList *layouts;

    Common field. See lglTemplateFrameAll. -

    GList *markups;

    Common field. See lglTemplateFrameAll. -

    gdouble r;

    Radius of label or card in points. -

    gdouble waste;

    Amount of over-print to allow in points. -
    -
    -
    -
    -

    lglTemplateFrameCD

    -
    typedef struct {
    -        /* Begin Common Fields */
    -	lglTemplateFrameShape shape;    /* Always LGL_TEMPLATE_FRAME_SHAPE_CD. */
    -
    -	gchar                *id;       /* Id, currently always "0" */
    -	GList                *layouts;  /* List of lglTemplateLayouts */
    -	GList                *markups;  /* List of lglTemplateMarkups */
    -        /* End Common Fields */
    -
    -        gdouble               r1;     /* Outer radius */
    -        gdouble               r2;     /* Inner radius (hole) */
    -        gdouble               w;      /* Clip width, business card CDs */
    -        gdouble               h;      /* Clip height, business card CDs */
    -        gdouble               waste;  /* Amount of overprint allowed. */
    -} lglTemplateFrameCD;
    -
    -

    -This structure defines the frame for a CD or DVD label. This structure also supports -credit-card CD labels. -

    -
    -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    lglTemplateFrameShape shape;

    Common field. Always LGL_TEMPLATE_FRAME_SHAPE_CD for lglTemplateFrameCD. -

    gchar *id;

    Common field. See lglTemplateFrameAll. -

    GList *layouts;

    Common field. See lglTemplateFrameAll. -

    GList *markups;

    Common field. See lglTemplateFrameAll. -

    gdouble r1;

    Outer radius of label in points. -

    gdouble r2;

    Radius of center hole in points. -

    gdouble w;

    Clip width in points. Used for credit-card CD labels. This field is ignored if zero. -

    gdouble h;

    Clip height in points. Used for credit-card CD labels. This field is ignored if zero. -

    gdouble waste;

    Amount of over-print to allow in points. -
    -
    -
    -
    -

    lglTemplateLayout

    -
    typedef struct {
    -	gint                  nx;  /* Number of labels across */
    -	gint                  ny;  /* Number of labels up and down */
    -
    -	gdouble               x0;  /* Left of grid from left edge of paper */
    -	gdouble               y0;  /* Top of grid from top edge of paper */
    -
    -	gdouble               dx;  /* Horizontal pitch of grid */
    -	gdouble               dy;  /* Vertical pitch of grid */
    -} lglTemplateLayout;
    -
    -

    -This structure defines a simple grid layout of labels or cards. -

    -
    -- - - - - - - - - - - - - - - - - - - - - - - - - - -

    gint nx;

    Number of labels or cards across in the grid (horizontal). -

    gint ny;

    Number of labels or cards down in the grid (vertical). -

    gdouble x0;

    Distance (in points) from the left edge of page to the left edge of the left column of -cards or labels in the layout. -

    gdouble y0;

    Distance (in points) from the top edge of page to the top edge of the top row of -cards or labels in the layout. -

    gdouble dx;

    Horizontal pitch of grid in points. This is the distance from left edge to left edge -(not the gap between labels or cards). -

    gdouble dy;

    Vertical pitch of grid in points. This is the distance from top edge to top edge -(not the gap between labels or cards). -
    -
    -
    -
    -

    enum lglTemplateMarkupType

    -
    typedef enum {
    -	LGL_TEMPLATE_MARKUP_MARGIN,
    -	LGL_TEMPLATE_MARKUP_LINE,
    -	LGL_TEMPLATE_MARKUP_CIRCLE,
    -	LGL_TEMPLATE_MARKUP_RECT,
    -} lglTemplateMarkupType;
    -
    -

    -This enumeration defines markup types that are supported by libglabels -

    -
    -- - - - - - - - - - - - - - - - - - -

    LGL_TEMPLATE_MARKUP_MARGIN

    A margin line around perimeter of label or card. -

    LGL_TEMPLATE_MARKUP_LINE

    A simple line segment. -

    LGL_TEMPLATE_MARKUP_CIRCLE

    A circle. -

    LGL_TEMPLATE_MARKUP_RECT

    A rectangle. Possibly with rounded corners. -
    -
    -
    -
    -

    union lglTemplateMarkup

    -
    union lglTemplateMarkup {
    -
    -	lglTemplateMarkupType   type;
    -
    -	lglTemplateMarkupMargin margin;
    -	lglTemplateMarkupLine   line;
    -	lglTemplateMarkupCircle circle;
    -	lglTemplateMarkupRect   rect;
    -};
    -
    -

    -A union of all possible markup structures. The type of structure is indicated by the type -member, which overlays the first field of all other member structures. -

    -
    -
    -
    -

    lglTemplateMarkupMargin

    -
    typedef struct {
    -	lglTemplateMarkupType  type;  /* Always LGL_TEMPLATE_MARKUP_MARGIN */
    -
    -        gdouble                size;  /* Margin size */
    -} lglTemplateMarkupMargin;
    -
    -

    -This structure defines a simple margin markup around the perimeter of a label or card. -

    -
    -- - - - - - - - - - -

    lglTemplateMarkupType type;

    Common field. Always LGL_TEMPLATE_MARKUP_MARGIN for lglTemplateMarkupMargin. -

    gdouble size;

    Distance of margin from edge of label or card. -
    -
    -
    -
    -

    lglTemplateMarkupLine

    -
    typedef struct {
    -	lglTemplateMarkupType  type;   /* Always LGL_TEMPLATE_MARKUP_LINE */
    -
    -        gdouble                x1, y1; /* 1st endpoint */
    -        gdouble                x2, y2; /* 2nd endpoint */
    -} lglTemplateMarkupLine;
    -
    -

    -This structure defines a simple line segment markup. -

    -
    -- - - - - - - - - - - - - - - - - - - - - - -

    lglTemplateMarkupType type;

    Common field. Always LGL_TEMPLATE_MARKUP_LINE for lglTemplateMarkupLine. -

    gdouble x1;

    Distance (in points) of first endpoint from left edge of label or card. -

    gdouble y1;

    Distance (in points) of first endpoint from top edge of label or card. -

    gdouble x2;

    Distance (in points) of second endpoint from left edge of label or card. -

    gdouble y2;

    Distance (in points) of second endpoint from top edge of label or card. -
    -
    -
    -
    -

    lglTemplateMarkupCircle

    -
    typedef struct {
    -	lglTemplateMarkupType  type;   /* Always LGL_TEMPLATE_MARKUP_CIRCLE */
    -
    -        gdouble                x0, y0; /* Center of circle */
    -        gdouble                r;      /* Radius of circle */
    -} lglTemplateMarkupCircle;
    -
    -

    -This structure defines a simple circle markup. -

    -
    -- - - - - - - - - - - - - - - - - - -

    lglTemplateMarkupType type;

    Common field. Always LGL_TEMPLATE_MARKUP_CIRCLE for lglTemplateMarkupCircle. -

    gdouble x0;

    Distance (in points) of vertex from left edge of label or card. -

    gdouble y0;

    Distance (in points) of vertex from top edge of label or card. -

    gdouble r;

    Radius of circle in points. -
    -
    -
    -
    -

    lglTemplateMarkupRect

    -
    typedef struct {
    -	lglTemplateMarkupType  type;   /* Always LGL_TEMPLATE_MARKUP_RECT */
    -
    -        gdouble                x1, y1; /* Upper left corner */
    -        gdouble                w, h;   /* Width and height. */
    -        gdouble                r;      /* Radius of corners. */
    -} lglTemplateMarkupRect;
    -
    -

    -This structure defines a simple rectangle markup. The rectangle can have rounded corners. -

    -
    -- - - - - - - - - - - - - - - - - - - - - - - - - - -

    lglTemplateMarkupType type;

    Common field. Always LGL_TEMPLATE_MARKUP_RECT for lglTemplateMarkupRect. -

    gdouble x1;

    Distance (in points) of left edge of markup from left edge of label or card. -

    gdouble y1;

    Distance (in points) of top edge of markup from top edge of label or card. -

    gdouble w;

    Width of rectangle in points. -

    gdouble h;

    Height of rectangle in points. -

    gdouble r;

    Radius of corners in points. Should be zero for sharp corners. -
    -
    -
    -
    -

    lglTemplateOrigin

    -
    typedef struct {
    -	gdouble               x, y; /* Label origin relative to upper 
    -				     * upper left hand corner of paper */
    -} lglTemplateOrigin;
    -
    -

    -This structure represents the cartesian coordinates of the origin of a label or card on the page. -The orign is the upper left corner of the extent of the label or card. These coordinates are -relative to the upper left corner of the page. -

    -
    -- - - - - - - - - - -

    gdouble x;

    Distance in points from top edge of page. -

    gdouble y;

    Distance in points from left edge of page. -
    -
    -
    -
    -

    lgl_template_new ()

    -
    lglTemplate *       lgl_template_new                    (const gchar *brand,
    -                                                         const gchar *part,
    -                                                         const gchar *description,
    -                                                         const gchar *paper_id,
    -                                                         gdouble page_width,
    -                                                         gdouble page_height);
    -

    -Create a new template structure, with the given top-level attributes. The -created template will have no initial aliases, categories, or frames -associated with it. See lgl_template_add_alias(), lgl_template_add_category(), -and lgl_template_add_frame() to add these.

    -

    -

    -
    -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    brand :

    Template brand -

    part :

    Template part name/number -

    description :

    Template descriptions -

    paper_id :

    Page size id -

    page_width :

    Page width in points, set to zero unless paper_id="Other" -

    page_height :

    Page height in points, set to zero unless paper_id="Other" -

    Returns :

    pointer to a newly allocated lglTemplate structure. - -
    -
    -
    -
    -

    lgl_template_dup ()

    -
    lglTemplate *       lgl_template_dup                    (const lglTemplate *orig_template);
    -

    -This function duplicates a template structure.

    -

    -

    -
    -- - - - - - - - - - -

    orig_template :

    Template to duplicate. -

    Returns :

    a newly allocated lglTemplate structure. - -
    -
    -
    -
    -

    lgl_template_free ()

    -
    void                lgl_template_free                   (lglTemplate *template);
    -

    -This function frees all memory associated with given template structure.

    -

    -

    -
    -- - - - -

    template :

    Template to free. -
    -
    -
    -
    -

    lgl_template_add_category ()

    -
    void                lgl_template_add_category           (lglTemplate *template,
    -                                                         const gchar *category_id);
    -

    -This function adds the given category ID to a templates category list.

    -

    -

    -
    -- - - - - - - - - - -

    template :

    Pointer to template structure -

    category_id :

    Category ID string -
    -
    -
    -
    -

    lgl_template_add_frame ()

    -
    void                lgl_template_add_frame              (lglTemplate *template,
    -                                                         lglTemplateFrame *frame);
    -

    -This function adds the given frame structure to the template. Once added, -the frame structure belongs to the given template; do not attempt to free -it. -

    -

    -Note: Currently glabels only supports a single frame per template.

    -

    -

    -
    -- - - - - - - - - - -

    template :

    Pointer to template structure -

    frame :

    Pointer to frame structure -
    -
    -
    -
    -

    lgl_template_add_alias ()

    -
    void                lgl_template_add_alias              (lglTemplate *template,
    -                                                         lglTemplateAlias *alias);
    -

    -This function adds the given alias to a templates list of aliases.

    -

    -

    -
    -- - - - - - - - - - -

    template :

    Pointer to template structure -

    alias :

    Alias string -
    -
    -
    -
    -

    lgl_template_get_name ()

    -
    gchar *             lgl_template_get_name               (const lglTemplate *template);
    -

    -This function returns the name of the given template. The name is the concetenation -of the brand and part name/number.

    -

    -

    -
    -- - - - - - - - - - -

    template :

    Pointer to template structure to test -

    Returns :

    A pointer to a newly allocated name string. Should be freed with g_free(). - -
    -
    -
    -
    -

    lgl_template_do_templates_match ()

    -
    gboolean            lgl_template_do_templates_match     (const lglTemplate *template1,
    -                                                         const lglTemplate *template2);
    -

    -This function tests if the given templates match. This is a simple test that only tests -the brand and part name/number. It does not test if they are actually identical.

    -

    -

    -
    -- - - - - - - - - - - - - - -

    template1 :

    Pointer to 1st template structure to test -

    template2 :

    Pointer to 2nd template structure to test -

    Returns :

    TRUE if the two template matche. - -
    -
    -
    -
    -

    lgl_template_does_brand_match ()

    -
    gboolean            lgl_template_does_brand_match       (const lglTemplate *template,
    -                                                         const gchar *brand);
    -

    -This function tests if the brand of the template matches the given brand.

    -

    -

    -
    -- - - - - - - - - - - - - - -

    template :

    Pointer to template structure to test -

    brand :

    Brand string -

    Returns :

    TRUE if the template matches the given brand. - -
    -
    -
    -
    -

    lgl_template_does_page_size_match ()

    -
    gboolean            lgl_template_does_page_size_match   (const lglTemplate *template,
    -                                                         const gchar *paper_id);
    -

    -This function tests if the page size of the template matches the given ID.

    -

    -

    -
    -- - - - - - - - - - - - - - -

    template :

    Pointer to template structure to test -

    paper_id :

    Page size ID string -

    Returns :

    TRUE if the template matches the given page size ID. - -
    -
    -
    -
    -

    lgl_template_does_category_match ()

    -
    gboolean            lgl_template_does_category_match    (const lglTemplate *template,
    -                                                         const gchar *category_id);
    -

    -This function tests if the given template belongs to the given category ID.

    -

    -

    -
    -- - - - - - - - - - - - - - -

    template :

    Pointer to template structure to test -

    category_id :

    Category ID string -

    Returns :

    TRUE if the template matches the given category ID. - -
    -
    -
    -
    -

    lgl_template_alias_new ()

    -
    lglTemplateAlias *  lgl_template_alias_new              (const gchar *brand,
    -                                                         const gchar *part);
    -

    -Create a new template alias structure, with the given brand and part number.

    -

    -

    -
    -- - - - - - - - - - - - - - -

    brand :

    Alias brand -

    part :

    Alias part name/number -

    Returns :

    pointer to a newly allocated lglTemplateAlias structure. - -
    -
    -
    -
    -

    lgl_template_alias_dup ()

    -
    lglTemplateAlias *  lgl_template_alias_dup              (const lglTemplateAlias *orig_alias);
    -

    -This function duplicates a template alias structure.

    -

    -

    -
    -- - - - - - - - - - -

    orig_alias :

    Alias to duplicate. -

    Returns :

    a newly allocated lglTemplateAlias structure. - -
    -
    -
    -
    -

    lgl_template_alias_free ()

    -
    void                lgl_template_alias_free             (lglTemplateAlias *alias);
    -

    -This function frees all memory associated with given template alias structure.

    -

    -

    -
    -- - - - -

    alias :

    Alias to free. -
    -
    -
    -
    -

    lgl_template_frame_rect_new ()

    -
    lglTemplateFrame *  lgl_template_frame_rect_new         (const gchar *id,
    -                                                         gdouble w,
    -                                                         gdouble h,
    -                                                         gdouble r,
    -                                                         gdouble x_waste,
    -                                                         gdouble y_waste);
    -

    -This function creates a new template frame for a rectangular label or card.

    -

    -

    -
    -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    id :

    ID of frame. (This should currently always be "0"). -

    w :

    width of frame in points. -

    h :

    height of frame in points. -

    r :

    radius of rounded corners in points. (Should be 0 for square corners.) -

    x_waste :

    Amount of overprint to allow in the horizontal direction. -

    y_waste :

    Amount of overprint to allow in the vertical direction. -

    Returns :

    Pointer to newly allocated lglTemplateFrame structure. - -
    -
    -
    -
    -

    lgl_template_frame_round_new ()

    -
    lglTemplateFrame *  lgl_template_frame_round_new        (const gchar *id,
    -                                                         gdouble r,
    -                                                         gdouble waste);
    -

    -This function creates a new template frame for a round label.

    -

    -

    -
    -- - - - - - - - - - - - - - - - - - -

    id :

    ID of frame. (This should currently always be "0"). -

    r :

    radius of label in points. -

    waste :

    Amount of overprint to allow. -

    Returns :

    Pointer to newly allocated lglTemplateFrame structure. - -
    -
    -
    -
    -

    lgl_template_frame_cd_new ()

    -
    lglTemplateFrame *  lgl_template_frame_cd_new           (const gchar *id,
    -                                                         gdouble r1,
    -                                                         gdouble r2,
    -                                                         gdouble w,
    -                                                         gdouble h,
    -                                                         gdouble waste);
    -

    -This function creates a new template frame for a CD/DVD label.

    -

    -

    -
    -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    id :

    ID of frame. (This should currently always be "0"). -

    r1 :

    outer radius of label in points. -

    r2 :

    radius of center hole in points. -

    w :

    clip width of frame in points for business card CDs. Should be 0 for no clipping. -

    h :

    clip height of frame in points for business card CDs. Should be 0 for no clipping. -

    waste :

    Amount of overprint to allow. -

    Returns :

    Pointer to newly allocated lglTemplateFrame structure. - -
    -
    -
    -
    -

    lgl_template_frame_dup ()

    -
    lglTemplateFrame *  lgl_template_frame_dup              (const lglTemplateFrame *orig_frame);
    -

    -This function duplicates a template frame structure.

    -

    -

    -
    -- - - - - - - - - - -

    orig_frame :

    Frame to duplicate. -

    Returns :

    a newly allocated lglTemplateFrame structure. - -
    -
    -
    -
    -

    lgl_template_frame_free ()

    -
    void                lgl_template_frame_free             (lglTemplateFrame *frame);
    -

    -This function frees all memory associated with given template frame structure.

    -

    -

    -
    -- - - - -

    frame :

    Frame to free. -
    -
    -
    -
    -

    lgl_template_frame_add_layout ()

    -
    void                lgl_template_frame_add_layout       (lglTemplateFrame *frame,
    -                                                         lglTemplateLayout *layout);
    -

    -This function adds a layout structure to the given template frame.

    -

    -

    -
    -- - - - - - - - - - -

    frame :

    Pointer to template frame to add layout to. -

    layout :

    Pointer to layout structure to add to frame. -
    -
    -
    -
    -

    lgl_template_frame_add_markup ()

    -
    void                lgl_template_frame_add_markup       (lglTemplateFrame *frame,
    -                                                         lglTemplateMarkup *markup);
    -

    -This function adds a markup structure to the given template frame.

    -

    -

    -
    -- - - - - - - - - - -

    frame :

    Pointer to template frame to add markup to. -

    markup :

    Pointer to markup structure to add to frame. -
    -
    -
    -
    -

    lgl_template_frame_get_size ()

    -
    void                lgl_template_frame_get_size         (const lglTemplateFrame *frame,
    -                                                         gdouble *w,
    -                                                         gdouble *h);
    -

    -Get size (width and height) of given lglTemplateFrame in points.

    -

    -

    -
    -- - - - - - - - - - - - - - -

    frame :

    lglTemplateFrame structure to query -

    w :

    pointer to location to receive width of frame -

    h :

    pointer to location to receive height of frame -
    -
    -
    -
    -

    lgl_template_frame_get_n_labels ()

    -
    gint                lgl_template_frame_get_n_labels     (const lglTemplateFrame *frame);
    -

    -Get total number of labels per sheet corresponding to the given frame.

    -

    -

    -
    -- - - - - - - - - - -

    frame :

    lglTemplateFrame structure to query -

    Returns :

    number of labels per sheet. - -
    -
    -
    -
    -

    lgl_template_frame_get_origins ()

    -
    lglTemplateOrigin * lgl_template_frame_get_origins      (const lglTemplateFrame *frame);
    -

    -Get an array of label origins for the given frame. These origins represent the -upper left hand corner of each label on a page corresponding to the given frame. -The origins will be ordered geometrically left to right and then top to bottom. -The array should be freed using g_free().

    -

    -

    -
    -- - - - - - - - - - -

    frame :

    lglTemplateFrame structure to query -

    Returns :

    A newly allocated array of lglTemplateOrigin structures. - -
    -
    -
    -
    -

    lgl_template_layout_new ()

    -
    lglTemplateLayout * lgl_template_layout_new             (gint nx,
    -                                                         gint ny,
    -                                                         gdouble x0,
    -                                                         gdouble y0,
    -                                                         gdouble dx,
    -                                                         gdouble dy);
    -

    -This function creates a new layout structure with the given parameters.

    -

    -

    -
    -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    nx :

    Number of labels across. -

    ny :

    Number of labels down. -

    x0 :

    X coordinate of the top-left corner of the top-left label in the layout in points. -

    y0 :

    Y coordinate of the top-left corner of the top-left label in the layout in points. -

    dx :

    Horizontal pitch in points. This is the distance from left-edge to left-edge. -

    dy :

    Vertical pitch in points. This is the distance from top-edge to top-edge. -

    Returns :

    a newly allocated lglTemplateLayout structure. - -
    -
    -
    -
    -

    lgl_template_layout_dup ()

    -
    lglTemplateLayout * lgl_template_layout_dup             (const lglTemplateLayout *orig_layout);
    -

    -This function duplicates a template layout structure.

    -

    -

    -
    -- - - - - - - - - - -

    orig_layout :

    Layout to duplicate. -

    Returns :

    a newly allocated lglTemplateLayout structure. - -
    -
    -
    -
    -

    lgl_template_layout_free ()

    -
    void                lgl_template_layout_free            (lglTemplateLayout *layout);
    -

    -This function frees all memory associated with given template layout structure.

    -

    -

    -
    -- - - - -

    layout :

    Layout to free. -
    -
    -
    -
    -

    lgl_template_markup_margin_new ()

    -
    lglTemplateMarkup * lgl_template_markup_margin_new      (gdouble size);
    -

    -This function creates a new margin markup structure.

    -

    -

    -
    -- - - - - - - - - - -

    size :

    margin size in points. -

    Returns :

    a newly allocated lglTemplateMarkup structure. - -
    -
    -
    -
    -

    lgl_template_markup_line_new ()

    -
    lglTemplateMarkup * lgl_template_markup_line_new        (gdouble x1,
    -                                                         gdouble y1,
    -                                                         gdouble x2,
    -                                                         gdouble y2);
    -

    -This function creates a new line markup structure.

    -

    -

    -
    -- - - - - - - - - - - - - - - - - - - - - - -

    x1 :

    x coordinate of first endpoint. -

    y1 :

    y coordinate of first endpoint. -

    x2 :

    x coordinate of second endpoint. -

    y2 :

    y coordinate of second endpoint. -

    Returns :

    a newly allocated lglTemplateMarkup structure. - -
    -
    -
    -
    -

    lgl_template_markup_circle_new ()

    -
    lglTemplateMarkup * lgl_template_markup_circle_new      (gdouble x0,
    -                                                         gdouble y0,
    -                                                         gdouble r);
    -

    -This function creates a new circle markup structure.

    -

    -

    -
    -- - - - - - - - - - - - - - - - - - -

    x0 :

    x coordinate of center of circle. -

    y0 :

    y coordinate of center of circle. -

    r :

    radius of circle. -

    Returns :

    a newly allocated lglTemplateMarkup structure. - -
    -
    -
    -
    -

    lgl_template_markup_rect_new ()

    -
    lglTemplateMarkup * lgl_template_markup_rect_new        (gdouble x1,
    -                                                         gdouble y1,
    -                                                         gdouble w,
    -                                                         gdouble h,
    -                                                         gdouble r);
    -

    -This function creates a new rectangle markup structure.

    -

    -

    -
    -- - - - - - - - - - - - - - - - - - - - - - - - - - -

    x1 :

    x coordinate of top-left corner of rectangle. -

    y1 :

    y coordinate of top-left corner of rectangle. -

    w :

    width of rectangle. -

    h :

    height of rectangle. -

    r :

    radius of rounded corner. -

    Returns :

    a newly allocated lglTemplateMarkup structure. - -
    -
    -
    -
    -

    lgl_template_markup_dup ()

    -
    lglTemplateMarkup * lgl_template_markup_dup             (const lglTemplateMarkup *orig_markup);
    -

    -This function duplicates a template markup structure.

    -

    -

    -
    -- - - - - - - - - - -

    orig_markup :

    Markup to duplicate. -

    Returns :

    a newly allocated lglTemplateMarkup structure. - -
    -
    -
    -
    -

    lgl_template_markup_free ()

    -
    void                lgl_template_markup_free            (lglTemplateMarkup *markup);
    -

    -This function frees all memory associated with given template markup structure.

    -

    -

    -
    -- - - - -

    markup :

    Markup to free. -
    -
    -
    -
    - - - diff --git a/docs/libglabels/html/libglabels-xml-category.html b/docs/libglabels/html/libglabels-xml-category.html deleted file mode 100644 index 42a1e535..00000000 --- a/docs/libglabels/html/libglabels-xml-category.html +++ /dev/null @@ -1,160 +0,0 @@ - - - - -XML Category Functions - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    - - -
    -

    XML Category Functions

    -

    XML Category Functions — Functions to parse glabels XML category definition files

    -
    -
    -

    Synopsis

    -
    -
    -#include <libglabels/xml-category.h>
    -
    -GList *             lgl_xml_category_read_categories_from_file
    -                                                        (gchar *utf8_filename);
    -GList *             lgl_xml_category_parse_categories_doc
    -                                                        (xmlDocPtr categories_doc);
    -lglCategory *       lgl_xml_category_parse_category_node
    -                                                        (xmlNodePtr category_node);
    -
    -
    -
    -

    Description

    -

    -This section describes a number of functions for parsing glabels -XML category definition files. -

    -
    -
    -

    Details

    -
    -

    lgl_xml_category_read_categories_from_file ()

    -
    GList *             lgl_xml_category_read_categories_from_file
    -                                                        (gchar *utf8_filename);
    -

    -Read category definitions from a file.

    -

    -

    -
    -- - - - - - - - - - -

    utf8_filename :

    Filename of categories file (name encoded as UTF-8) -

    Returns :

    a list of lglCategory structures. - -
    -
    -
    -
    -

    lgl_xml_category_parse_categories_doc ()

    -
    GList *             lgl_xml_category_parse_categories_doc
    -                                                        (xmlDocPtr categories_doc);
    -

    -Read category definitions from a libxml xmlDocPtr tree.

    -

    -

    -
    -- - - - - - - - - - -

    categories_doc :

    libxml xmlDocPtr tree, representing a categories -definition file. -

    Returns :

    a list of lglCategory structures. - -
    -
    -
    -
    -

    lgl_xml_category_parse_category_node ()

    -
    lglCategory *       lgl_xml_category_parse_category_node
    -                                                        (xmlNodePtr category_node);
    -

    -Read a single category definition from a libxml xmlNodePtr node.

    -

    -

    -
    -- - - - - - - - - - -

    category_node :

    libxml xmlNodePtr category node from a xmlDocPtr tree. -

    Returns :

    a pointer to a newly created lglCategory structure. - -
    -
    -
    -
    - - - diff --git a/docs/libglabels/html/libglabels-xml-paper.html b/docs/libglabels/html/libglabels-xml-paper.html deleted file mode 100644 index e368aeac..00000000 --- a/docs/libglabels/html/libglabels-xml-paper.html +++ /dev/null @@ -1,153 +0,0 @@ - - - - -XML Paper Functions - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    - - -
    -

    XML Paper Functions

    -

    XML Paper Functions — Functions to parse glabels XML paper definition files

    -
    -
    -

    Synopsis

    -
    -
    -#include <libglabels/xml-paper.h>
    -
    -GList *             lgl_xml_paper_read_papers_from_file (gchar *utf8_filename);
    -GList *             lgl_xml_paper_parse_papers_doc      (xmlDocPtr papers_doc);
    -lglPaper *          lgl_xml_paper_parse_paper_node      (xmlNodePtr paper_node);
    -
    -
    -
    -

    Description

    -

    -This section describes a number of functions for parsing glabels -XML paper definition files. -

    -
    -
    -

    Details

    -
    -

    lgl_xml_paper_read_papers_from_file ()

    -
    GList *             lgl_xml_paper_read_papers_from_file (gchar *utf8_filename);
    -

    -Read paper definitions from a file.

    -

    -

    -
    -- - - - - - - - - - -

    utf8_filename :

    Filename of papers file (name encoded as UTF-8) -

    Returns :

    a list of lglPaper structures. - -
    -
    -
    -
    -

    lgl_xml_paper_parse_papers_doc ()

    -
    GList *             lgl_xml_paper_parse_papers_doc      (xmlDocPtr papers_doc);
    -

    -Read paper definitions from a libxml xmlDocPtr tree.

    -

    -

    -
    -- - - - - - - - - - -

    papers_doc :

    libxml xmlDocPtr tree, representing a papers definition file. -

    Returns :

    a list of lglPaper structures. - -
    -
    -
    -
    -

    lgl_xml_paper_parse_paper_node ()

    -
    lglPaper *          lgl_xml_paper_parse_paper_node      (xmlNodePtr paper_node);
    -

    -Read a single paper definition from a libxml xmlNodePtr node.

    -

    -

    -
    -- - - - - - - - - - -

    paper_node :

    libxml xmlNodePtr paper node from a xmlDocPtr tree. -

    Returns :

    a pointer to a newly created lglPaper structure. - -
    -
    -
    -
    - - - diff --git a/docs/libglabels/html/libglabels-xml-template.html b/docs/libglabels/html/libglabels-xml-template.html deleted file mode 100644 index 732d4301..00000000 --- a/docs/libglabels/html/libglabels-xml-template.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - -XML Template Functions - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    - - -
    -

    XML Template Functions

    -

    XML Template Functions — Functions to create and parse glabels XML template nodes and files

    -
    -
    -

    Synopsis

    -
    -
    -#include <libglabels/xml-templates.h>
    -
    -GList *             lgl_xml_template_read_templates_from_file
    -                                                        (const gchar *utf8_filename);
    -GList *             lgl_xml_template_parse_templates_doc
    -                                                        (const xmlDocPtr templates_doc);
    -lglTemplate *       lgl_xml_template_parse_template_node
    -                                                        (const xmlNodePtr template_node);
    -gint                lgl_xml_template_write_templates_to_file
    -                                                        (GList *templates,
    -                                                         const gchar *utf8_filename);
    -gint                lgl_xml_template_write_template_to_file
    -                                                        (const lglTemplate *template,
    -                                                         const gchar *utf8_filename);
    -void                lgl_xml_template_create_template_node
    -                                                        (const lglTemplate *template,
    -                                                         xmlNodePtr root,
    -                                                         const xmlNsPtr ns);
    -
    -
    -
    -

    Description

    -

    -This section describes a number of functions for creating and parsing -glabels XML template nodes and files. Template nodes are used in both -template files and document files. -

    -
    -
    -

    Details

    -
    -

    lgl_xml_template_read_templates_from_file ()

    -
    GList *             lgl_xml_template_read_templates_from_file
    -                                                        (const gchar *utf8_filename);
    -

    -Read glabels templates from template file.

    -

    -

    -
    -- - - - - - - - - - -

    utf8_filename :

    Filename of papers file (name encoded as UTF-8) -

    Returns :

    a list of lglTemplate structures. - -
    -
    -
    -
    -

    lgl_xml_template_parse_templates_doc ()

    -
    GList *             lgl_xml_template_parse_templates_doc
    -                                                        (const xmlDocPtr templates_doc);
    -

    -Read glabels templates from a libxml xmlDocPtr tree.

    -

    -

    -
    -- - - - - - - - - - -

    templates_doc :

    libxml xmlDocPtr tree, representing template file. -

    Returns :

    a list of lglTemplate structures. - -
    -
    -
    -
    -

    lgl_xml_template_parse_template_node ()

    -
    lglTemplate *       lgl_xml_template_parse_template_node
    -                                                        (const xmlNodePtr template_node);
    -

    -Read a single glabels template from a libxml xmlNodePtr node.

    -

    -

    -
    -- - - - - - - - - - -

    template_node :

    libxml xmlNodePtr template node from a xmlDocPtr tree. -

    Returns :

    a pointer to a newly created lglTemplate structure. - -
    -
    -
    -
    -

    lgl_xml_template_write_templates_to_file ()

    -
    gint                lgl_xml_template_write_templates_to_file
    -                                                        (GList *templates,
    -                                                         const gchar *utf8_filename);
    -

    -Write a list of lglTemplate structures to a glabels XML template file.

    -

    -

    -
    -- - - - - - - - - - - - - - -

    templates :

    List of lglTemplate structures -

    utf8_filename :

    Filename of templates file (name encoded as UTF-8) -

    Returns :

    the number of bytes written or -1 in case of failure - -
    -
    -
    -
    -

    lgl_xml_template_write_template_to_file ()

    -
    gint                lgl_xml_template_write_template_to_file
    -                                                        (const lglTemplate *template,
    -                                                         const gchar *utf8_filename);
    -

    -Write a single lglTemplate structures to a glabels XML template file.

    -

    -

    -
    -- - - - - - - - - - - - - - -

    template :

    lglTemplate structure to be written -

    utf8_filename :

    Filename of templates file (name encoded as UTF-8) -

    Returns :

    the number of bytes written or -1 in case of failure - -
    -
    -
    -
    -

    lgl_xml_template_create_template_node ()

    -
    void                lgl_xml_template_create_template_node
    -                                                        (const lglTemplate *template,
    -                                                         xmlNodePtr root,
    -                                                         const xmlNsPtr ns);
    -

    -Add a single lglTemplate child node to given xmlNodePtr.

    -

    -

    -
    -- - - - - - - - - - - - - - -

    template :

    lglTemplate structure to be written -

    root :

    parent node to receive new child node -

    ns :

    a libxml xmlNsPtr -
    -
    -
    -
    - - - diff --git a/docs/libglabels/html/libglabels-xml.html b/docs/libglabels/html/libglabels-xml.html deleted file mode 100644 index 02347b9c..00000000 --- a/docs/libglabels/html/libglabels-xml.html +++ /dev/null @@ -1,801 +0,0 @@ - - - - -XML Helper Functions - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    - - -
    -

    XML Helper Functions

    -

    XML Helper Functions — Functions to help format and parse glabels XML properties

    -
    -
    -

    Synopsis

    -
    -
    -#include <libglabels/xml.h>
    -
    -#define             LGL_XML_NAME_SPACE
    -
    -gchar *             lgl_xml_get_prop_string             (xmlNodePtr node,
    -                                                         const gchar *property,
    -                                                         const gchar *default_val);
    -gchar *             lgl_xml_get_prop_i18n_string        (xmlNodePtr node,
    -                                                         const gchar *property,
    -                                                         const gchar *default_val);
    -gdouble             lgl_xml_get_prop_double             (xmlNodePtr node,
    -                                                         const gchar *property,
    -                                                         gdouble default_val);
    -gboolean            lgl_xml_get_prop_boolean            (xmlNodePtr node,
    -                                                         const gchar *property,
    -                                                         gboolean default_val);
    -gint                lgl_xml_get_prop_int                (xmlNodePtr node,
    -                                                         const gchar *property,
    -                                                         gint default_val);
    -guint               lgl_xml_get_prop_uint               (xmlNodePtr node,
    -                                                         const gchar *property,
    -                                                         guint default_val);
    -gdouble             lgl_xml_get_prop_length             (xmlNodePtr node,
    -                                                         const gchar *property,
    -                                                         gdouble default_val);
    -
    -void                lgl_xml_set_prop_string             (xmlNodePtr node,
    -                                                         const gchar *property,
    -                                                         const gchar *val);
    -void                lgl_xml_set_prop_double             (xmlNodePtr node,
    -                                                         const gchar *property,
    -                                                         gdouble val);
    -void                lgl_xml_set_prop_boolean            (xmlNodePtr node,
    -                                                         const gchar *property,
    -                                                         gboolean val);
    -void                lgl_xml_set_prop_int                (xmlNodePtr node,
    -                                                         const gchar *property,
    -                                                         gint val);
    -void                lgl_xml_set_prop_uint_hex           (xmlNodePtr node,
    -                                                         const gchar *property,
    -                                                         guint val);
    -void                lgl_xml_set_prop_length             (xmlNodePtr node,
    -                                                         const gchar *property,
    -                                                         gdouble val);
    -
    -gboolean            lgl_xml_is_node                     (xmlNodePtr node,
    -                                                         const gchar *name);
    -gchar *             lgl_xml_get_node_content            (xmlNodePtr node);
    -
    -void                lgl_xml_set_default_units           (lglUnitsType units);
    -
    -
    -
    -

    Description

    -

    -This section describes a number of "helper" functions for formatting and -parsing various types of properties for tags in glabels XML file formats. -

    -

    -These functions are basically wrappers to functions from libxml2. -

    -
    -
    -

    Details

    -
    -

    LGL_XML_NAME_SPACE

    -
    #define LGL_XML_NAME_SPACE "http://snaught.com/glabels/2.2/"
    -
    -

    -

    -
    -
    -
    -

    lgl_xml_get_prop_string ()

    -
    gchar *             lgl_xml_get_prop_string             (xmlNodePtr node,
    -                                                         const gchar *property,
    -                                                         const gchar *default_val);
    -

    -Return value of property as a string.

    -

    -

    -
    -- - - - - - - - - - - - - - - - - - -

    node :

    the libxml2 xmlNodePtr of the node -

    property :

    the property name -

    default_val :

    a default value to return if property not found -

    Returns :

    the property as a pointer to a gchar string. This string should - be freed with g_free(). - -
    -
    -
    -
    -

    lgl_xml_get_prop_i18n_string ()

    -
    gchar *             lgl_xml_get_prop_i18n_string        (xmlNodePtr node,
    -                                                         const gchar *property,
    -                                                         const gchar *default_val);
    -

    -Return value of a translatable property as a string.

    -

    -

    -
    -- - - - - - - - - - - - - - - - - - -

    node :

    the libxml2 xmlNodePtr of the node -

    property :

    the property name -

    default_val :

    a default value to return if property not found -

    Returns :

    the property as a pointer to a gchar string. This string should - be freed with g_free(). - -
    -
    -
    -
    -

    lgl_xml_get_prop_double ()

    -
    gdouble             lgl_xml_get_prop_double             (xmlNodePtr node,
    -                                                         const gchar *property,
    -                                                         gdouble default_val);
    -

    -Return value of property as a double.

    -

    -

    -
    -- - - - - - - - - - - - - - - - - - -

    node :

    the libxml2 xmlNodePtr of the node -

    property :

    the property name -

    default_val :

    a default value to return if property not found -

    Returns :

    the property as a double. - -
    -
    -
    -
    -

    lgl_xml_get_prop_boolean ()

    -
    gboolean            lgl_xml_get_prop_boolean            (xmlNodePtr node,
    -                                                         const gchar *property,
    -                                                         gboolean default_val);
    -

    -Return value of property as a boolean.

    -

    -

    -
    -- - - - - - - - - - - - - - - - - - -

    node :

    the libxml2 xmlNodePtr of the node -

    property :

    the property name -

    default_val :

    a default value to return if property not found -

    Returns :

    the property as a boolean. - -
    -
    -
    -
    -

    lgl_xml_get_prop_int ()

    -
    gint                lgl_xml_get_prop_int                (xmlNodePtr node,
    -                                                         const gchar *property,
    -                                                         gint default_val);
    -

    -Return value of property as an integer.

    -

    -

    -
    -- - - - - - - - - - - - - - - - - - -

    node :

    the libxml2 xmlNodePtr of the node -

    property :

    the property name -

    default_val :

    a default value to return if property not found -

    Returns :

    the property as an integer. - -
    -
    -
    -
    -

    lgl_xml_get_prop_uint ()

    -
    guint               lgl_xml_get_prop_uint               (xmlNodePtr node,
    -                                                         const gchar *property,
    -                                                         guint default_val);
    -

    -Return value of property (usually formatted in hex) as an unsigned integer.

    -

    -

    -
    -- - - - - - - - - - - - - - - - - - -

    node :

    the libxml2 xmlNodePtr of the node -

    property :

    the property name -

    default_val :

    a default value to return if property not found -

    Returns :

    the property as an unsigned integer. - -
    -
    -
    -
    -

    lgl_xml_get_prop_length ()

    -
    gdouble             lgl_xml_get_prop_length             (xmlNodePtr node,
    -                                                         const gchar *property,
    -                                                         gdouble default_val);
    -

    -Return value of a length property as a double, converting to internal -units (points). The property is expected to be formatted as a number -followed by a units string. If there is no units string, the length -is assumed to be in points. Valid units strings are "pt" for points, -"in" for inches, "mm" for millimeters, "cm" for centimeters, and -"pc" for picas.

    -

    -

    -
    -- - - - - - - - - - - - - - - - - - -

    node :

    the libxml2 xmlNodePtr of the node -

    property :

    the property name -

    default_val :

    a default value to return if property not found -

    Returns :

    the length in points. - -
    -
    -
    -
    -

    lgl_xml_set_prop_string ()

    -
    void                lgl_xml_set_prop_string             (xmlNodePtr node,
    -                                                         const gchar *property,
    -                                                         const gchar *val);
    -

    -Set a property from a string.

    -

    -

    -
    -- - - - - - - - - - - - - - -

    node :

    the libxml2 xmlNodePtr of the node -

    property :

    the property name -

    val :

    the value to set -
    -
    -
    -
    -

    lgl_xml_set_prop_double ()

    -
    void                lgl_xml_set_prop_double             (xmlNodePtr node,
    -                                                         const gchar *property,
    -                                                         gdouble val);
    -

    -Set a property from a double.

    -

    -

    -
    -- - - - - - - - - - - - - - -

    node :

    the libxml2 xmlNodePtr of the node -

    property :

    the property name -

    val :

    the value to set -
    -
    -
    -
    -

    lgl_xml_set_prop_boolean ()

    -
    void                lgl_xml_set_prop_boolean            (xmlNodePtr node,
    -                                                         const gchar *property,
    -                                                         gboolean val);
    -

    -Set a property from a boolean.

    -

    -

    -
    -- - - - - - - - - - - - - - -

    node :

    the libxml2 xmlNodePtr of the node -

    property :

    the property name -

    val :

    the value to set -
    -
    -
    -
    -

    lgl_xml_set_prop_int ()

    -
    void                lgl_xml_set_prop_int                (xmlNodePtr node,
    -                                                         const gchar *property,
    -                                                         gint val);
    -

    -Set a property from an integer.

    -

    -

    -
    -- - - - - - - - - - - - - - -

    node :

    the libxml2 xmlNodePtr of the node -

    property :

    the property name -

    val :

    the value to set -
    -
    -
    -
    -

    lgl_xml_set_prop_uint_hex ()

    -
    void                lgl_xml_set_prop_uint_hex           (xmlNodePtr node,
    -                                                         const gchar *property,
    -                                                         guint val);
    -

    -Set a property from an unsigned integer and format in hex.

    -

    -

    -
    -- - - - - - - - - - - - - - -

    node :

    the libxml2 xmlNodePtr of the node -

    property :

    the property name -

    val :

    the value to set -
    -
    -
    -
    -

    lgl_xml_set_prop_length ()

    -
    void                lgl_xml_set_prop_length             (xmlNodePtr node,
    -                                                         const gchar *property,
    -                                                         gdouble val);
    -

    -Set a property from a length, performing any necessary conversion. -Length properties are formatted as a number followed by a units string. -The units of the formatted property is determined by the most recent call to -lgl_xml_set_default_units().

    -

    -

    -
    -- - - - - - - - - - - - - - -

    node :

    the libxml2 xmlNodePtr of the node -

    property :

    the property name -

    val :

    the length to set in internal units (points) -
    -
    -
    -
    -

    lgl_xml_is_node ()

    -
    gboolean            lgl_xml_is_node                     (xmlNodePtr node,
    -                                                         const gchar *name);
    -

    -Test if a node name matches given name.

    -

    -

    -
    -- - - - - - - - - - - - - - -

    node :

    the libxml2 xmlNodePtr of the node -

    name :

    the node name -

    Returns :

    TRUE if the name of the node matches. Otherwise FALSE. - -
    -
    -
    -
    -

    lgl_xml_get_node_content ()

    -
    gchar *             lgl_xml_get_node_content            (xmlNodePtr node);
    -

    -Get the content of a node.

    -

    -

    -
    -- - - - - - - - - - -

    node :

    the libxml2 xmlNodePtr of the node -

    Returns :

    the property as a pointer to a gchar string. This string should - be freed with g_free(). -
    -
    -
    -
    -

    lgl_xml_set_default_units ()

    -
    void                lgl_xml_set_default_units           (lglUnitsType units);
    -

    -Set the default units when formatting lengths. See -lgl_xml_set_prop_length().

    -

    -

    -
    -- - - - -

    units :

    default units selection (lglUnitsType) -
    -
    -
    -
    - - - diff --git a/docs/libglabels/html/libglabels.devhelp b/docs/libglabels/html/libglabels.devhelp deleted file mode 100644 index dd43881c..00000000 --- a/docs/libglabels/html/libglabels.devhelp +++ /dev/null @@ -1,146 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/libglabels/html/libglabels.devhelp2 b/docs/libglabels/html/libglabels.devhelp2 deleted file mode 100644 index 1e9cf7dd..00000000 --- a/docs/libglabels/html/libglabels.devhelp2 +++ /dev/null @@ -1,164 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/libglabels/html/style.css b/docs/libglabels/html/style.css index bb44c280..d6f6c26e 100644 --- a/docs/libglabels/html/style.css +++ b/docs/libglabels/html/style.css @@ -1,13 +1,15 @@ .synopsis, .classsynopsis { - background: #eeeeee; - border: solid 1px #aaaaaa; + /* tango:aluminium 1/2 */ + background: #eeeeec; + border: solid 1px #d3d7cf; padding: 0.5em; } .programlisting { - background: #eeeeff; - border: solid 1px #aaaaff; + /* tango:sky blue 0/1 */ + background: #e6f3ff; + border: solid 1px #729fcf; padding: 0.5em; } .variablelist @@ -20,64 +22,64 @@ vertical-align: top; } -/* this is needed so that the local anchors are displayed below the naviagtion */ @media screen { sup a.footnote { position: relative; top: 0em ! important; + } - div.refnamediv a[name], div.refsect1 a[name] + /* this is needed so that the local anchors are displayed below the naviagtion */ + div.footnote a[name], div.refnamediv a[name], div.refsect1 a[name], div.refsect2 a[name], div.index a[name], div.glossary a[name], div.sect1 a[name] { + display: inline-block; position: relative; - top: -4.5em; + top:-5em; } + /* this seems to be a bug in the xsl style sheets when generating indexes */ + div.index div.index + { + top: 0em; + } + /* make space for the fixed navigation bar and add space at the bottom so that + * link targets appear somewhat close to top + */ + body + { + padding-top: 3.2em; + padding-bottom: 20em; + } + /* style and size the navigation bar */ table.navigation#top { - background: #ffeeee; - border: solid 1px #ffaaaa; + position: fixed; + /* tango:scarlet red 0/1 */ + background: #ffe6e6; + border: solid 1px #ef2929; margin-top: 0; margin-bottom: 0; - position: fixed; top: 0; left: 0; - height: 2em; - z-index: 1; + height: 3em; + z-index: 10; } - .navigation a + .navigation a, .navigation a:visited { - color: #770000; + /* tango:scarlet red 3 */ + color: #a40000; } - .navigation a:visited + .navigation a:hover { - color: #550000; + /* tango:scarlet red 1 */ + color: #ef2929; } td.shortcuts { - color: #770000; + /* tango:scarlet red 1 */ + color: #ef2929; font-size: 80%; white-space: nowrap; } - div.refentry, div.chapter, div.reference, div.part, div.book, div.glossary, div.sect1, div.appendix, div.preface - { - position: relative; - top: 3em; - z-index: 0; - } - div.glossary, div.index - { - position: relative; - top: 2em; - z-index: 0; - } - div.refnamediv - { - margin-top: 2em; - } - body - { - padding-bottom: 20em; - } } @media print { table.navigation { @@ -87,13 +89,14 @@ div.titlepage table.navigation { visibility: visible; display: table; - background: #ffeeee; - border: solid 1px #ffaaaa; + /* tango:scarlet red 0/1 */ + background: #ffe6e6; + border: solid 1px #ef2929; margin-top: 0; margin-bottom: 0; top: 0; left: 0; - height: 2em; + height: 3em; } } @@ -102,7 +105,6 @@ font-size: 200%; } - div.gallery-float { float: left; @@ -116,44 +118,48 @@ div.gallery-spacer { clear: both; } -a + +a, a:visited { text-decoration: none; + /* tango:sky blue 2 */ + color: #3465a4; } a:hover { text-decoration: underline; - color: #FF0000; + /* tango:sky blue 1 */ + color: #729fcf; } div.table table { border-collapse: collapse; border-spacing: 0px; - border-style: solid; - border-color: #777777; - border-width: 1px; + /* tango:aluminium 3 */ + border: solid 1px #babdb6; } div.table table td, div.table table th { - border-style: solid; - border-color: #777777; - border-width: 1px; + /* tango:aluminium 3 */ + border: solid 1px #babdb6; padding: 3px; vertical-align: top; } div.table table th { - background-color: #eeeeee; + /* tango:aluminium 2 */ + background-color: #d3d7cf; } hr { - color: #777777; - background: #777777; - border: 0; + /* tango:aluminium 3 */ + color: #babdb6; + background: #babdb6; + border: none 0px; height: 1px; clear: both; } @@ -161,7 +167,100 @@ hr .footer { padding-top: 3.5em; - color: #777777; + /* tango:aluminium 3 */ + color: #babdb6; text-align: center; font-size: 80%; } + +.warning +{ + /* tango:orange 0/1 */ + background: #ffeed9; + border-color: #ffb04f; +} +.note +{ + /* tango:chameleon 0/0.5 */ + background: #d8ffb2; + border-color: #abf562; +} +.note, .warning +{ + padding: 0.5em; + border-width: 1px; + border-style: solid; +} +.note h3, .warning h3 +{ + margin-top: 0.0em +} +.note p, .warning p +{ + margin-bottom: 0.0em +} + +/* blob links */ +h2 .extralinks, h3 .extralinks +{ + float: right; + /* tango:aluminium 3 */ + color: #babdb6; + font-size: 80%; + font-weight: normal; +} + +.annotation +{ + /* tango:aluminium 5 */ + color: #555753; + font-size: 80%; + font-weight: normal; +} + +/* code listings */ + +.listing_code .programlisting .cbracket { color: #a40000; } /* tango: scarlet red 3 */ +.listing_code .programlisting .comment { color: #a1a39d; } /* tango: aluminium 4 */ +.listing_code .programlisting .function { color: #000000; font-weight: bold; } +.listing_code .programlisting .function a { color: #11326b; font-weight: bold; } /* tango: sky blue 4 */ +.listing_code .programlisting .keyword { color: #4e9a06; } /* tango: chameleon 3 */ +.listing_code .programlisting .linenum { color: #babdb6; } /* tango: aluminium 3 */ +.listing_code .programlisting .normal { color: #000000; } +.listing_code .programlisting .number { color: #75507b; } /* tango: plum 2 */ +.listing_code .programlisting .preproc { color: #204a87; } /* tango: sky blue 3 */ +.listing_code .programlisting .string { color: #c17d11; } /* tango: chocolate 2 */ +.listing_code .programlisting .type { color: #000000; } +.listing_code .programlisting .type a { color: #11326b; } /* tango: sky blue 4 */ +.listing_code .programlisting .symbol { color: #ce5c00; } /* tango: orange 3 */ + +.listing_frame { + /* tango:sky blue 1 */ + border: solid 1px #729fcf; + padding: 0px; +} + +.listing_lines, .listing_code { + margin-top: 0px; + margin-bottom: 0px; + padding: 0.5em; +} +.listing_lines { + /* tango:sky blue 0.5 */ + background: #a6c5e3; + /* tango:aluminium 6 */ + color: #2e3436; +} +.listing_code { + /* tango:sky blue 0 */ + background: #e6f3ff; +} +.listing_code .programlisting { + /* override from previous */ + border: none 0px; + padding: 0px; +} +.listing_lines pre, .listing_code pre { + margin: 0px; +} + diff --git a/docs/libglabels/libglabels-docs.sgml b/docs/libglabels/libglabels-3.0-docs.sgml similarity index 82% rename from docs/libglabels/libglabels-docs.sgml rename to docs/libglabels/libglabels-3.0-docs.sgml index a4b5b381..28ddc612 100644 --- a/docs/libglabels/libglabels-docs.sgml +++ b/docs/libglabels/libglabels-3.0-docs.sgml @@ -5,7 +5,7 @@ - LibGlabels Reference Manual + LibGlabels 3.0 Reference Manual @@ -14,6 +14,7 @@ + @@ -21,12 +22,13 @@ + Miscellaneous - + diff --git a/docs/libglabels/libglabels-overrides.txt b/docs/libglabels/libglabels-3.0-overrides.txt similarity index 100% rename from docs/libglabels/libglabels-overrides.txt rename to docs/libglabels/libglabels-3.0-overrides.txt diff --git a/docs/libglabels/libglabels-sections.txt b/docs/libglabels/libglabels-3.0-sections.txt similarity index 70% rename from docs/libglabels/libglabels-sections.txt rename to docs/libglabels/libglabels-3.0-sections.txt index 658d109c..7efab0c5 100644 --- a/docs/libglabels/libglabels-sections.txt +++ b/docs/libglabels/libglabels-3.0-sections.txt @@ -1,9 +1,14 @@
    db -libglabels/db.h +libglabels/lgl-db.h lglDbRegStatus +lglDbDeleteStatus lgl_db_init + +lglDbNotifyFunc +lgl_db_notify_add +lgl_db_notify_remove lgl_db_get_paper_id_list lgl_db_free_paper_id_list @@ -30,30 +35,37 @@ lgl_db_get_brand_list lgl_db_free_brand_list lgl_db_register_template +lgl_db_delete_template_by_brand_part +lgl_db_delete_template_by_name lgl_db_does_template_exist lgl_db_does_template_name_exist -lgl_db_get_template_name_list_unique lgl_db_get_template_name_list_all +lgl_db_get_similar_template_name_list lgl_db_free_template_name_list lgl_db_lookup_template_from_name +lgl_db_lookup_template_from_brand_part + +lgl_db_get_vendor_name_list +lgl_db_free_vendor_name_list +lgl_db_is_vendor_name_known +lgl_db_lookup_vendor_from_name lgl_db_print_known_papers lgl_db_print_known_categories lgl_db_print_known_templates -lgl_db_print_aliases +lgl_db_print_known_vendors
    template -libglabels/template.h +libglabels/lgl-template.h lglTemplate - -lglTemplateAlias lglTemplateFrameShape lglTemplateFrame lglTemplateFrameAll lglTemplateFrameRect +lglTemplateFrameEllipse lglTemplateFrameRound lglTemplateFrameCD @@ -65,27 +77,26 @@ lglTemplateMarkupMargin lglTemplateMarkupLine lglTemplateMarkupCircle lglTemplateMarkupRect +lglTemplateMarkupEllipse lglTemplateOrigin lgl_template_new +lgl_template_new_from_equiv lgl_template_dup lgl_template_free lgl_template_add_category lgl_template_add_frame -lgl_template_add_alias lgl_template_get_name lgl_template_do_templates_match lgl_template_does_brand_match lgl_template_does_page_size_match lgl_template_does_category_match - -lgl_template_alias_new -lgl_template_alias_dup -lgl_template_alias_free +lgl_template_are_templates_identical lgl_template_frame_rect_new +lgl_template_frame_ellipse_new lgl_template_frame_round_new lgl_template_frame_cd_new lgl_template_frame_dup @@ -96,6 +107,8 @@ lgl_template_frame_add_markup lgl_template_frame_get_size lgl_template_frame_get_n_labels lgl_template_frame_get_origins +lgl_template_frame_get_layout_description +lgl_template_frame_get_size_description lgl_template_layout_new lgl_template_layout_dup @@ -105,13 +118,16 @@ lgl_template_markup_margin_new lgl_template_markup_line_new lgl_template_markup_circle_new lgl_template_markup_rect_new +lgl_template_markup_ellipse_new lgl_template_markup_dup lgl_template_markup_free + +lgl_template_print
    paper -libglabels/paper.h +libglabels/lgl-paper.h lglPaper lgl_paper_new lgl_paper_dup @@ -120,16 +136,25 @@ lgl_paper_free
    category -libglabels/category.h +libglabels/lgl-category.h lglCategory lgl_category_new lgl_category_dup lgl_category_free
    +
    +vendor +libglabels/lgl-vendor.h +lglVendor +lgl_vendor_new +lgl_vendor_dup +lgl_vendor_free +
    +
    xml-paper -libglabels/xml-paper.h +libglabels/lgl-xml-paper.h lgl_xml_paper_read_papers_from_file lgl_xml_paper_parse_papers_doc lgl_xml_paper_parse_paper_node @@ -137,7 +162,7 @@ lgl_xml_paper_parse_paper_node
    xml-category -libglabels/xml-category.h +libglabels/lgl-xml-category.h lgl_xml_category_read_categories_from_file lgl_xml_category_parse_categories_doc lgl_xml_category_parse_category_node @@ -145,7 +170,7 @@ lgl_xml_category_parse_category_node
    xml-template -libglabels/xml-templates.h +libglabels/lgl-xml-templates.h lgl_xml_template_read_templates_from_file lgl_xml_template_parse_templates_doc lgl_xml_template_parse_template_node @@ -154,9 +179,17 @@ lgl_xml_template_write_template_to_file lgl_xml_template_create_template_node
    +
    +xml-vendor +libglabels/lgl-xml-vendor.h +lgl_xml_vendor_read_vendors_from_file +lgl_xml_vendor_parse_vendors_doc +lgl_xml_vendor_parse_vendor_node +
    +
    xml -libglabels/xml.h +libglabels/lgl-xml.h LGL_XML_NAME_SPACE lgl_xml_get_prop_string @@ -181,14 +214,22 @@ lgl_xml_set_default_units
    -enums -libglabels/enums.h -lglUnitsType +units +libglabels/lgl-units.h +lglUnits +lgl_units_get_id +lgl_units_from_id +lgl_units_get_name +lgl_units_from_name +lgl_units_get_points_per_unit +lgl_units_get_units_per_point
    str -libglabels/str.h +libglabels/lgl-str.h lgl_str_utf8_casecmp +lgl_str_part_name_cmp +lgl_str_format_fraction
    diff --git a/docs/libglabels/tmpl/category.sgml b/docs/libglabels/tmpl/category.sgml deleted file mode 100644 index 2143fd19..00000000 --- a/docs/libglabels/tmpl/category.sgml +++ /dev/null @@ -1,55 +0,0 @@ - -The lglCategory Structure - - -Template category definitions - - - -This section describes a structure for representing a category of stationary and related -functions. - - - - - - - - - - - - -This structure defines a category. - - -@id: Category ID. -@name: Localized category name. - - - - - - -@id: -@name: -@Returns: - - - - - - - -@orig: -@Returns: - - - - - - - -@category: - - diff --git a/docs/libglabels/tmpl/db.sgml b/docs/libglabels/tmpl/db.sgml deleted file mode 100644 index 3d5d2de3..00000000 --- a/docs/libglabels/tmpl/db.sgml +++ /dev/null @@ -1,314 +0,0 @@ - -Database - - -Database of pre-defined templates - - - -This section describes a set of functions to locate and add templates and related information in -the LibGlabels template database. - - - - - - - - - - - - -This enumeration defines a set of possible return values for lgl_db_register_template(). - - -@LGL_DB_REG_OK: Registration successful. -@LGL_DB_REG_BAD_PAPER_ID: Registration failed because paper id is unknown. -@LGL_DB_REG_BRAND_PART_EXISTS: Registration failed because template with same brand and part name/number already exists. -@LGL_DB_REG_FILE_WRITE_ERROR: Registration failed because an error while writing to disk. - - - - - - - - - - - - - -@Returns: - - - - - - - -@ids: - - - - - - - -@Returns: - - - - - - - -@names: - - - - - - - -@id: -@Returns: - - - - - - - -@name: -@Returns: - - - - - - - -@name: -@Returns: - - - - - - - -@id: -@Returns: - - - - - - - -@id: -@Returns: - - - - - - - -@id: -@Returns: - - - - - - - -@Returns: - - - - - - - -@ids: - - - - - - - -@Returns: - - - - - - - -@names: - - - - - - - -@id: -@Returns: - - - - - - - -@name: -@Returns: - - - - - - - -@name: -@Returns: - - - - - - - -@id: -@Returns: - - - - - - - -@id: -@Returns: - - - - - - - -@paper_id: -@category_id: -@Returns: - - - - - - - -@brands: - - - - - - - -@template: -@Returns: - - - - - - - -@brand: -@part: -@Returns: - - - - - - - -@name: -@Returns: - - - - - - - -@brand: -@paper_id: -@category_id: -@Returns: - - - - - - - -@brand: -@paper_id: -@category_id: -@Returns: - - - - - - - -@names: - - - - - - - -@name: -@Returns: - - - - - - - - - - - - - - - - - - - - - - - - - - - - -@template: - - diff --git a/docs/libglabels/tmpl/enums.sgml b/docs/libglabels/tmpl/enums.sgml deleted file mode 100644 index b74f00d1..00000000 --- a/docs/libglabels/tmpl/enums.sgml +++ /dev/null @@ -1,33 +0,0 @@ - -Enumerations - - -Common enumerations used by libglabels - - - -This section defines enumerations used to interact with libglabels. - - - - - - - - - - - - -This enumeration defines a set of units of distance supported by the libglabels XML distance -attributes. - - -@LGL_UNITS_POINT: Points. Encoded as "pt" in XML distance attributes. -@LGL_UNITS_INCH: Inches. Encoded as "in" in XML distance attributes. -@LGL_UNITS_MM: Millmeters. Encoded as "mm" in XML distance attributes. -@LGL_UNITS_CM: Centimeters. Encoded as "cm" in XML distance attributes. -@LGL_UNITS_PICA: Picas. Encoded as "pc" in XML distance attributes. -@LGL_UNITS_FIRST: First enumeration. Used for generic iteration through supported units.. -@LGL_UNITS_LAST: Last enumeration. Used for generic iteration through supported units. - diff --git a/docs/libglabels/tmpl/libglabels-unused.sgml b/docs/libglabels/tmpl/libglabels-unused.sgml deleted file mode 100644 index dc089b42..00000000 --- a/docs/libglabels/tmpl/libglabels-unused.sgml +++ /dev/null @@ -1,1519 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - -init - - - - - - - - - - - - - - - - - - - - - - - -libglabels - - - - -This section describes a set of functions for constructing new template structures. - - - - - - - - - - -Functions to help create new templates - - - - - - - -Construction Functions - - - - -This section describes a set of functions to locate pre-defined templates and add templates -to the LibGlabels template database. - - - - - - - - - - -Database of pre-defined templates - - - - - - - -Database - - - - -This section describes miscellaneous template functions. - - - - - - - - - - -Miscellaneous template functions - - - - - - - -Miscellaneous Functions - - - - - - - - - - - - - - - - - - - - - - - -template2 - - - - - - - - - - - - - - - - - - - - - - - -template3 - - - - - - - - - - - - - -@id: -@name: - - - - - - -@id: -@name: -@width: -@height: - - - - - - -@name: -@description: -@page_size: -@page_width: -@page_height: -@categories: -@frames: -@aliases: - - - - - - - - - - - - -@shape: -@id: -@layouts: -@markups: - - - - - - -@shape: -@id: -@layouts: -@markups: -@r1: -@r2: -@w: -@h: -@waste: - - - - - - -@shape: -@id: -@layouts: -@markups: -@w: -@h: -@r: -@x_waste: -@y_waste: - - - - - - -@shape: -@id: -@layouts: -@markups: -@r: -@waste: - - - - - - -@GL_TEMPLATE_FRAME_SHAPE_RECT: -@GL_TEMPLATE_FRAME_SHAPE_ROUND: -@GL_TEMPLATE_FRAME_SHAPE_CD: - - - - - - -@GL_TEMPLATE_SHAPE_RECT: -@GL_TEMPLATE_SHAPE_ROUND: -@GL_TEMPLATE_SHAPE_CD: - - - - - - -@id: -@layouts: -@markups: -@shape: - - - - - - -@nx: -@ny: -@x0: -@y0: -@dx: -@dy: - - - - - - - - - - - - -@type: -@x0: -@y0: -@r: - - - - - - -@type: -@x1: -@y1: -@x2: -@y2: - - - - - - -@type: -@size: - - - - - - -@type: -@x1: -@y1: -@w: -@h: -@r: - - - - - - -@GL_TEMPLATE_MARKUP_MARGIN: -@GL_TEMPLATE_MARKUP_LINE: -@GL_TEMPLATE_MARKUP_CIRCLE: -@GL_TEMPLATE_MARKUP_RECT: - - - - - - -@x: -@y: - - - -Enumerations for the units of length supported by libglabels. Internally -all lengths are in points. Externally libglabels supports points ("pt"), -inches ("in"), millimeters ("mm"), centimeters ("cm"), and picas ("pc"). -These units are identical to the absolute length units supported in -the CSS2 Specification (Section 4.3.2). - - -@GL_UNITS_POINT: -@GL_UNITS_INCH: -@GL_UNITS_MM: -@GL_UNITS_CM: -@GL_UNITS_PICA: -@GL_UNITS_FIRST: -@GL_UNITS_LAST: - - - - - - -@orig: -@Returns: - - - - - - -@category: - - - - - - -@names: - - - - - - -@id: -@Returns: - - - - - - -@name: -@Returns: - - - - - - -@Returns: - - - - - - - - - - - - -@name: -@Returns: - - - - - - -@id: -@Returns: - - - - - - -@id: -@name: -@Returns: - - - - - - -@orig: -@Returns: - - - - - - -@paper: - - - - - - -@ids: - - - - - - -@names: - - - - - - -@id: -@Returns: - - - - - - -@name: -@Returns: - - - - - - -@Returns: - - - - - - -@Returns: - - - - - - - - - - - - -@id: -@Returns: - - - - - - -@id: -@Returns: - - - - - - -@name: -@Returns: - - - - - - -@id: -@Returns: - - - - - - -@id: -@name: -@width: -@height: -@Returns: - - - - - - - - - - - - -@template: -@alias: - - - - - - -@template: -@category: - - - - - - -@template: -@frame: - - - - - - -@template: -@label_type: - - - - - - -@frame: -@layout: - - - - - - -@frame: -@markup: - - - - - - -@id: -@r1: -@r2: -@w: -@h: -@waste: -@Returns: - - - - - - -@template: -@category: -@Returns: - - - - - - -@template: -@page_size: -@Returns: - - - - - - -@orig: -@Returns: - - - - - - -@id: -@r1: -@r2: -@w: -@h: -@waste: -@Returns: - - - - - - -@orig_frame: -@Returns: - - - - - - -@frame: - - - - - - -@frame: -@Returns: - - - - - - -@frame: -@Returns: - - - - - - -@frame: -@w: -@h: - - - - - - -@id: -@w: -@h: -@r: -@x_waste: -@y_waste: -@Returns: - - - - - - -@id: -@r: -@waste: -@Returns: - - - - - - -@template: - - - - - - -@names: - - - - - - -@name: -@Returns: - - - - - - -@template: -@Returns: - - - - - - -@template: -@Returns: - - - - - - -@label_type: -@w: -@h: - - - - - - -@label_type: -@Returns: - - - - - - -@page_size: -@Returns: - - - - - - -@page_size: -@category: -@Returns: - - - - - - -@page_size: -@category: -@Returns: - - - - - - -@template: -@Returns: - - - - - - -@label_type: -@Returns: - - - - - - - - - - - - -@orig_ltype: -@Returns: - - - - - - -@ltype: - - - - - - -@orig_layout: -@Returns: - - - - - - -@layout: - - - - - - -@nx: -@ny: -@x0: -@y0: -@dx: -@dy: -@Returns: - - - - - - -@x0: -@y0: -@r: -@Returns: - - - - - - -@orig_markup: -@Returns: - - - - - - -@markup: - - - - - - -@x1: -@y1: -@x2: -@y2: -@Returns: - - - - - - -@size: -@Returns: - - - - - - -@x1: -@y1: -@w: -@h: -@r: -@Returns: - - - - - - -@name: -@description: -@page_size: -@page_width: -@page_height: -@Returns: - - - - - - -@template: - - - - - - - - - - - - -@id: -@w: -@h: -@r: -@x_waste: -@y_waste: -@Returns: - - - - - - -@template: - - - - - - -@id: -@r: -@waste: -@Returns: - - - - - - -@categories_doc: -@Returns: - - - - - - -@category_node: -@Returns: - - - - - - -@utf8_filename: -@Returns: - - - - - - -@node: -@Returns: - - - - - - -@node: -@property: -@default_val: -@Returns: - - - - - - -@node: -@property: -@default_val: -@Returns: - - - - - - -@node: -@property: -@default_val: -@Returns: - - - - - - -@node: -@property: -@default_val: -@Returns: - - - - - - -@node: -@property: -@default_val: -@Returns: - - - - - - -@node: -@property: -@default_val: -@Returns: - - - - - - -@node: -@property: -@default_val: -@Returns: - - - - - - -@node: -@name: -@Returns: - - - - - - -@paper_node: -@Returns: - - - - - - -@papers_doc: -@Returns: - - - - - - -@utf8_filename: -@Returns: - - - - - - -@units: - - - - - - -@node: -@property: -@val: - - - - - - -@node: -@property: -@val: - - - - - - -@node: -@property: -@val: - - - - - - -@node: -@property: -@val: - - - - - - -@node: -@property: -@val: - - - - - - -@node: -@property: -@val: - - - - - - -@template: -@root: -@ns: - - - - - - -@templates: -@Returns: - - - - - - -@template_node: -@Returns: - - - - - - -@templates_doc: -@Returns: - - - - - - -@utf8_filename: -@Returns: - - - - - - -@template: -@utf8_filename: - - - - - - -@templates: -@utf8_filename: - - - - - - -@ids: - - - - - - -@names: - - - - - - -@id: -@Returns: - - - - - - -@name: -@Returns: - - - - - - -@Returns: - - - - - - -@Returns: - - - - - - - - - - - - -@name: -@Returns: - - - - - - -@id: -@Returns: - - - - - - - - - - - - -@ids: - - - - - - -@names: - - - - - - -@id: -@Returns: - - - - - - -@name: -@Returns: - - - - - - -@Returns: - - - - - - -@Returns: - - - - - - - - - - - - -@id: -@Returns: - - - - - - -@id: -@Returns: - - - - - - -@name: -@Returns: - - - - - - -@id: -@Returns: - - - - - - - - - - - - -@frame: -@layout: - - - - - - -@frame: -@markup: - - - - - - -@brands: - - - - - - -@names: - - - - - - -@name: -@Returns: - - - - - - -@page_size: -@category: -@Returns: - - - - - - -@template: -@Returns: - - - - - - -@brand: -@page_size: -@category: -@Returns: - - - - - - -@brand: -@page_size: -@category: -@Returns: - - - - - - - - - - - - -@template: - - - - - - - - - - - - -@template: - - - - - - -@templates: -@Returns: - diff --git a/docs/libglabels/tmpl/libglabels.sgml b/docs/libglabels/tmpl/libglabels.sgml deleted file mode 100644 index 0552a20b..00000000 --- a/docs/libglabels/tmpl/libglabels.sgml +++ /dev/null @@ -1,19 +0,0 @@ - -libglabels - - - - - - - - - - - - - - - - - diff --git a/docs/libglabels/tmpl/paper.sgml b/docs/libglabels/tmpl/paper.sgml deleted file mode 100644 index dc69d746..00000000 --- a/docs/libglabels/tmpl/paper.sgml +++ /dev/null @@ -1,61 +0,0 @@ - -The lglPaper Structure - - -Paper size definitions - - - -This section describes a structure for representing a paper size definition -and related functions. - - - - - - - - - - - - -This structure defines a paper (page) size. - - -@id: Paper size ID. -@name: Localized paper size name. -@width: Width of paper in points. -@height: Height of paper in points. -@pwg_size: PWG 5101.1-2002 size name. - - - - - - -@id: -@name: -@width: -@height: -@pwg_size: -@Returns: - - - - - - - -@orig: -@Returns: - - - - - - - -@paper: - - diff --git a/docs/libglabels/tmpl/str.sgml b/docs/libglabels/tmpl/str.sgml deleted file mode 100644 index 53cbd3b9..00000000 --- a/docs/libglabels/tmpl/str.sgml +++ /dev/null @@ -1,30 +0,0 @@ - -String Utility Functions - - -String utility functions provided by libglabels - - - -This section defines string utility functions used by libglabels and of -possible use to a user of libglabels. - - - - - - - - - - - - - - - -@s1: -@s2: -@Returns: - - diff --git a/docs/libglabels/tmpl/template.sgml b/docs/libglabels/tmpl/template.sgml deleted file mode 100644 index e7a58879..00000000 --- a/docs/libglabels/tmpl/template.sgml +++ /dev/null @@ -1,532 +0,0 @@ - -The lglTemplate Structure - - -How templates are represented in memory - - - -This section describes a set of structures that represent a template in memory. It also -describes functions to help create and interpret these structures. - - - - - - - - - - - - -This is the main structure of a libglabels template. A template represents a single sheet -of peel-off labels or cards. - - -@brand: Brand name of label or card. E.g. "Avery." -@part: Part name or number of label or card. E.g. "8160." -@description: A description of the template. E.g. "Mailing labels." -@paper_id: A paper ID. E.g. "A4" or "US-Letter." -@page_width: Page width in points. Used only if paper_id is "Other." -@page_height: Page height in points. Used only if paper_id is "Other." -@aliases: A list of alternate names for this template. Often a single template can be used for -multiple products. -@category_ids: A list of category IDs that this template belongs to. -@frames: A list of (#lglTemplateFrame *) structures. GLabels currently only supports one frame -per template -- future versions may support multiple frames per template. - - - -This structure defines an alias for the parent template structure. An alias is used for -different products that can use the same template. - - -@brand: Brand name of label or card. E.g. "Avery." -@part: Part name or number of label or card. E.g. "8160." - - - -This enumeration defines frame types that are supported by libglabels - - -@LGL_TEMPLATE_FRAME_SHAPE_RECT: A rectangular frame. (May have rounded corners.) -@LGL_TEMPLATE_FRAME_SHAPE_ROUND: A round frame. -@LGL_TEMPLATE_FRAME_SHAPE_CD: A CD or DVD frame. (Includes credit-card style CDs.) - - - -A union of all possible frame structures. The type of structure is indicated by the shape -member, which overlays the first field of all other member structures. - - - - - -This structure is composed of a set of fields common to all frame structures. All frame types -can be cast to this structure. - - -@shape: The shape of the frame. -@id: Reserved for future use. Should always be zero. -@layouts: A list of (#lglTemplateLayout *) structures. Typically a frame will have a single -layout, representing a simple grid of labels or cards. If the layout of labels or cards is -more complex, multiple (#lglTemplateLayout *) structures may be needed. -@markups: A list of (#lglTemplateMarkup *) structures, which represent non-printing markup lines. - - - -This structure defines the frame for a rectangular label or card. - - -@shape: Common field. Always #LGL_TEMPLATE_FRAME_SHAPE_RECT for #lglTemplateFrameRect. -@id: Common field. See #lglTemplateFrameAll. -@layouts: Common field. See #lglTemplateFrameAll. -@markups: Common field. See #lglTemplateFrameAll. -@w: Width of label or card in points. -@h: Height of label or card in points. -@r: Radius of corners in points. -@x_waste: Amount of horizontal over-print to allow in points. -@y_waste: Amount of vertical over-print to allow in points. - - - -This structure defines the frame for a round label or card. - - -@shape: Common field. Always #LGL_TEMPLATE_FRAME_SHAPE_ROUND for #lglTemplateFrameRound. -@id: Common field. See #lglTemplateFrameAll. -@layouts: Common field. See #lglTemplateFrameAll. -@markups: Common field. See #lglTemplateFrameAll. -@r: Radius of label or card in points. -@waste: Amount of over-print to allow in points. - - - -This structure defines the frame for a CD or DVD label. This structure also supports -credit-card CD labels. - - -@shape: Common field. Always #LGL_TEMPLATE_FRAME_SHAPE_CD for #lglTemplateFrameCD. -@id: Common field. See #lglTemplateFrameAll. -@layouts: Common field. See #lglTemplateFrameAll. -@markups: Common field. See #lglTemplateFrameAll. -@r1: Outer radius of label in points. -@r2: Radius of center hole in points. -@w: Clip width in points. Used for credit-card CD labels. This field is ignored if zero. -@h: Clip height in points. Used for credit-card CD labels. This field is ignored if zero. -@waste: Amount of over-print to allow in points. - - - -This structure defines a simple grid layout of labels or cards. - - -@nx: Number of labels or cards across in the grid (horizontal). -@ny: Number of labels or cards down in the grid (vertical). -@x0: Distance (in points) from the left edge of page to the left edge of the left column of -cards or labels in the layout. -@y0: Distance (in points) from the top edge of page to the top edge of the top row of -cards or labels in the layout. -@dx: Horizontal pitch of grid in points. This is the distance from left edge to left edge -(not the gap between labels or cards). -@dy: Vertical pitch of grid in points. This is the distance from top edge to top edge -(not the gap between labels or cards). - - - -This enumeration defines markup types that are supported by libglabels - - -@LGL_TEMPLATE_MARKUP_MARGIN: A margin line around perimeter of label or card. -@LGL_TEMPLATE_MARKUP_LINE: A simple line segment. -@LGL_TEMPLATE_MARKUP_CIRCLE: A circle. -@LGL_TEMPLATE_MARKUP_RECT: A rectangle. Possibly with rounded corners. - - - -A union of all possible markup structures. The type of structure is indicated by the type -member, which overlays the first field of all other member structures. - - - - - -This structure defines a simple margin markup around the perimeter of a label or card. - - -@type: Common field. Always #LGL_TEMPLATE_MARKUP_MARGIN for #lglTemplateMarkupMargin. -@size: Distance of margin from edge of label or card. - - - -This structure defines a simple line segment markup. - - -@type: Common field. Always #LGL_TEMPLATE_MARKUP_LINE for #lglTemplateMarkupLine. -@x1: Distance (in points) of first endpoint from left edge of label or card. -@y1: Distance (in points) of first endpoint from top edge of label or card. -@x2: Distance (in points) of second endpoint from left edge of label or card. -@y2: Distance (in points) of second endpoint from top edge of label or card. - - - -This structure defines a simple circle markup. - - -@type: Common field. Always #LGL_TEMPLATE_MARKUP_CIRCLE for #lglTemplateMarkupCircle. -@x0: Distance (in points) of vertex from left edge of label or card. -@y0: Distance (in points) of vertex from top edge of label or card. -@r: Radius of circle in points. - - - -This structure defines a simple rectangle markup. The rectangle can have rounded corners. - - -@type: Common field. Always #LGL_TEMPLATE_MARKUP_RECT for #lglTemplateMarkupRect. -@x1: Distance (in points) of left edge of markup from left edge of label or card. -@y1: Distance (in points) of top edge of markup from top edge of label or card. -@w: Width of rectangle in points. -@h: Height of rectangle in points. -@r: Radius of corners in points. Should be zero for sharp corners. - - - -This structure represents the cartesian coordinates of the origin of a label or card on the page. -The orign is the upper left corner of the extent of the label or card. These coordinates are -relative to the upper left corner of the page. - - -@x: Distance in points from top edge of page. -@y: Distance in points from left edge of page. - - - - - - -@brand: -@part: -@description: -@paper_id: -@page_width: -@page_height: -@Returns: - - - - - - - -@orig_template: -@Returns: - - - - - - - -@template: - - - - - - - -@template: -@category_id: - - - - - - - -@template: -@frame: - - - - - - - -@template: -@alias: - - - - - - - -@template: -@Returns: - - - - - - - -@template1: -@template2: -@Returns: - - - - - - - -@template: -@brand: -@Returns: - - - - - - - -@template: -@paper_id: -@Returns: - - - - - - - -@template: -@category_id: -@Returns: - - - - - - - -@brand: -@part: -@Returns: - - - - - - - -@orig_alias: -@Returns: - - - - - - - -@alias: - - - - - - - -@id: -@w: -@h: -@r: -@x_waste: -@y_waste: -@Returns: - - - - - - - -@id: -@r: -@waste: -@Returns: - - - - - - - -@id: -@r1: -@r2: -@w: -@h: -@waste: -@Returns: - - - - - - - -@orig_frame: -@Returns: - - - - - - - -@frame: - - - - - - - -@frame: -@layout: - - - - - - - -@frame: -@markup: - - - - - - - -@frame: -@w: -@h: - - - - - - - -@frame: -@Returns: - - - - - - - -@frame: -@Returns: - - - - - - - -@nx: -@ny: -@x0: -@y0: -@dx: -@dy: -@Returns: - - - - - - - -@orig_layout: -@Returns: - - - - - - - -@layout: - - - - - - - -@size: -@Returns: - - - - - - - -@x1: -@y1: -@x2: -@y2: -@Returns: - - - - - - - -@x0: -@y0: -@r: -@Returns: - - - - - - - -@x1: -@y1: -@w: -@h: -@r: -@Returns: - - - - - - - -@orig_markup: -@Returns: - - - - - - - -@markup: - - diff --git a/docs/libglabels/tmpl/xml-category.sgml b/docs/libglabels/tmpl/xml-category.sgml deleted file mode 100644 index f22b59ed..00000000 --- a/docs/libglabels/tmpl/xml-category.sgml +++ /dev/null @@ -1,47 +0,0 @@ - -XML Category Functions - - -Functions to parse glabels XML category definition files - - - -This section describes a number of functions for parsing glabels -XML category definition files. - - - - - - - - - - - - - - - -@utf8_filename: -@Returns: - - - - - - - -@categories_doc: -@Returns: - - - - - - - -@category_node: -@Returns: - - diff --git a/docs/libglabels/tmpl/xml-paper.sgml b/docs/libglabels/tmpl/xml-paper.sgml deleted file mode 100644 index 0909d2cf..00000000 --- a/docs/libglabels/tmpl/xml-paper.sgml +++ /dev/null @@ -1,47 +0,0 @@ - -XML Paper Functions - - -Functions to parse glabels XML paper definition files - - - -This section describes a number of functions for parsing glabels -XML paper definition files. - - - - - - - - - - - - - - - -@utf8_filename: -@Returns: - - - - - - - -@papers_doc: -@Returns: - - - - - - - -@paper_node: -@Returns: - - diff --git a/docs/libglabels/tmpl/xml-template.sgml b/docs/libglabels/tmpl/xml-template.sgml deleted file mode 100644 index 071a08ab..00000000 --- a/docs/libglabels/tmpl/xml-template.sgml +++ /dev/null @@ -1,78 +0,0 @@ - -XML Template Functions - - -Functions to create and parse glabels XML template nodes and files - - - -This section describes a number of functions for creating and parsing -glabels XML template nodes and files. Template nodes are used in both -template files and document files. - - - - - - - - - - - - - - - -@utf8_filename: -@Returns: - - - - - - - -@templates_doc: -@Returns: - - - - - - - -@template_node: -@Returns: - - - - - - - -@templates: -@utf8_filename: -@Returns: - - - - - - - -@template: -@utf8_filename: -@Returns: - - - - - - - -@template: -@root: -@ns: - - diff --git a/docs/libglabels/tmpl/xml.sgml b/docs/libglabels/tmpl/xml.sgml deleted file mode 100644 index e0803379..00000000 --- a/docs/libglabels/tmpl/xml.sgml +++ /dev/null @@ -1,194 +0,0 @@ - -XML Helper Functions - - -Functions to help format and parse glabels XML properties - - - -This section describes a number of "helper" functions for formatting and -parsing various types of properties for tags in glabels XML file formats. - - -These functions are basically wrappers to functions from libxml2. - - - - - - - - - - - - - - - - - - - - - - -@node: -@property: -@default_val: -@Returns: - - - - - - - -@node: -@property: -@default_val: -@Returns: - - - - - - - -@node: -@property: -@default_val: -@Returns: - - - - - - - -@node: -@property: -@default_val: -@Returns: - - - - - - - -@node: -@property: -@default_val: -@Returns: - - - - - - - -@node: -@property: -@default_val: -@Returns: - - - - - - - -@node: -@property: -@default_val: -@Returns: - - - - - - - -@node: -@property: -@val: - - - - - - - -@node: -@property: -@val: - - - - - - - -@node: -@property: -@val: - - - - - - - -@node: -@property: -@val: - - - - - - - -@node: -@property: -@val: - - - - - - - -@node: -@property: -@val: - - - - - - - -@node: -@name: -@Returns: - - - - - - - -@node: -@Returns: - - - - - - - -@units: - - diff --git a/docs/libglabels/xml/api-index-deprecated.xml b/docs/libglabels/xml/api-index-deprecated.xml deleted file mode 100644 index 3041b733..00000000 --- a/docs/libglabels/xml/api-index-deprecated.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - diff --git a/docs/libglabels/xml/api-index-full.xml b/docs/libglabels/xml/api-index-full.xml deleted file mode 100644 index 23d767e5..00000000 --- a/docs/libglabels/xml/api-index-full.xml +++ /dev/null @@ -1,130 +0,0 @@ - - - - -L -lglCategory -lglDbRegStatus -lglPaper -lglTemplate -lglTemplateAlias -lglTemplateFrame -lglTemplateFrameAll -lglTemplateFrameCD -lglTemplateFrameRect -lglTemplateFrameRound -lglTemplateFrameShape -lglTemplateLayout -lglTemplateMarkup -lglTemplateMarkupCircle -lglTemplateMarkupLine -lglTemplateMarkupMargin -lglTemplateMarkupRect -lglTemplateMarkupType -lglTemplateOrigin -lglUnitsType -lgl_category_dup -lgl_category_free -lgl_category_new -lgl_db_does_template_exist -lgl_db_does_template_name_exist -lgl_db_free_brand_list -lgl_db_free_category_id_list -lgl_db_free_category_name_list -lgl_db_free_paper_id_list -lgl_db_free_paper_name_list -lgl_db_free_template_name_list -lgl_db_get_brand_list -lgl_db_get_category_id_list -lgl_db_get_category_name_list -lgl_db_get_paper_id_list -lgl_db_get_paper_name_list -lgl_db_get_template_name_list_all -lgl_db_get_template_name_list_unique -lgl_db_init -lgl_db_is_category_id_known -lgl_db_is_paper_id_known -lgl_db_is_paper_id_other -lgl_db_lookup_category_from_id -lgl_db_lookup_category_from_name -lgl_db_lookup_category_id_from_name -lgl_db_lookup_category_name_from_id -lgl_db_lookup_paper_from_id -lgl_db_lookup_paper_from_name -lgl_db_lookup_paper_id_from_name -lgl_db_lookup_paper_name_from_id -lgl_db_lookup_template_from_name -lgl_db_print_aliases -lgl_db_print_known_categories -lgl_db_print_known_papers -lgl_db_print_known_templates -lgl_db_register_template -lgl_paper_dup -lgl_paper_free -lgl_paper_new -lgl_str_utf8_casecmp -lgl_template_add_alias -lgl_template_add_category -lgl_template_add_frame -lgl_template_alias_dup -lgl_template_alias_free -lgl_template_alias_new -lgl_template_does_brand_match -lgl_template_does_category_match -lgl_template_does_page_size_match -lgl_template_do_templates_match -lgl_template_dup -lgl_template_frame_add_layout -lgl_template_frame_add_markup -lgl_template_frame_cd_new -lgl_template_frame_dup -lgl_template_frame_free -lgl_template_frame_get_n_labels -lgl_template_frame_get_origins -lgl_template_frame_get_size -lgl_template_frame_rect_new -lgl_template_frame_round_new -lgl_template_free -lgl_template_get_name -lgl_template_layout_dup -lgl_template_layout_free -lgl_template_layout_new -lgl_template_markup_circle_new -lgl_template_markup_dup -lgl_template_markup_free -lgl_template_markup_line_new -lgl_template_markup_margin_new -lgl_template_markup_rect_new -lgl_template_new -lgl_xml_category_parse_categories_doc -lgl_xml_category_parse_category_node -lgl_xml_category_read_categories_from_file -lgl_xml_get_node_content -lgl_xml_get_prop_boolean -lgl_xml_get_prop_double -lgl_xml_get_prop_i18n_string -lgl_xml_get_prop_int -lgl_xml_get_prop_length -lgl_xml_get_prop_string -lgl_xml_get_prop_uint -lgl_xml_is_node -LGL_XML_NAME_SPACE -lgl_xml_paper_parse_papers_doc -lgl_xml_paper_parse_paper_node -lgl_xml_paper_read_papers_from_file -lgl_xml_set_default_units -lgl_xml_set_prop_boolean -lgl_xml_set_prop_double -lgl_xml_set_prop_int -lgl_xml_set_prop_length -lgl_xml_set_prop_string -lgl_xml_set_prop_uint_hex -lgl_xml_template_create_template_node -lgl_xml_template_parse_templates_doc -lgl_xml_template_parse_template_node -lgl_xml_template_read_templates_from_file -lgl_xml_template_write_templates_to_file -lgl_xml_template_write_template_to_file - - diff --git a/docs/libglabels/xml/category.xml b/docs/libglabels/xml/category.xml deleted file mode 100644 index 0ec3249e..00000000 --- a/docs/libglabels/xml/category.xml +++ /dev/null @@ -1,121 +0,0 @@ - - - - - -The lglCategory Structure -3 -LIBGLABELS Library - - - -The lglCategory Structure -Template category definitions - - - -Synopsis - - - -#include <libglabels/category.h> - - lglCategory; -lglCategory * lgl_category_new (gchar *id, - gchar *name); -lglCategory * lgl_category_dup (const lglCategory *orig); -void lgl_category_free (lglCategory *category); - - - - - - - - - - - - -Description - -This section describes a structure for representing a category of stationary and related -functions. - - - - -Details - -lglCategory -lglCategorytypedef struct { - gchar *id; /* Unique ID of category */ - gchar *name; /* Localized name of category */ -} lglCategory; - - -This structure defines a category. - - -gchar *id; -Category ID. - - - -gchar *name; -Localized category name. - - - - -lgl_category_new () -lgl_category_newlglCategory * lgl_category_new (gchar *id, - gchar *name); - -Allocates and constructs a new lglCategory structure. - - -id : - Id of category definition. (E.g. label, card, etc.) Should be - unique. - -name : - Localized name of category. - -Returns : a pointer to a newly allocated lglCategory structure. - - - - -lgl_category_dup () -lgl_category_duplglCategory * lgl_category_dup (const lglCategory *orig); - -Duplicates an existing lglCategory structure. - - -orig : - lglCategory structure to be duplicated. - -Returns : a pointer to a newly allocated lglCategory structure. - - - - -lgl_category_free () -lgl_category_freevoid lgl_category_free (lglCategory *category); - -Free all memory associated with an existing lglCategory structure. - - -category : - pointer to lglCategory structure to be freed. - - - - - - - - - diff --git a/docs/libglabels/xml/db.xml b/docs/libglabels/xml/db.xml deleted file mode 100644 index eff5a295..00000000 --- a/docs/libglabels/xml/db.xml +++ /dev/null @@ -1,587 +0,0 @@ - - - - - -Database -3 -LIBGLABELS Library - - - -Database -Database of pre-defined templates - - - -Synopsis - - - -#include <libglabels/db.h> - -enum lglDbRegStatus; - -void lgl_db_init (void); - -GList * lgl_db_get_paper_id_list (void); -void lgl_db_free_paper_id_list (GList *ids); -GList * lgl_db_get_paper_name_list (void); -void lgl_db_free_paper_name_list (GList *names); -lglPaper * lgl_db_lookup_paper_from_id (const gchar *id); -lglPaper * lgl_db_lookup_paper_from_name (const gchar *name); -gchar * lgl_db_lookup_paper_id_from_name (const gchar *name); -gchar * lgl_db_lookup_paper_name_from_id (const gchar *id); -gboolean lgl_db_is_paper_id_known (const gchar *id); -gboolean lgl_db_is_paper_id_other (const gchar *id); - -GList * lgl_db_get_category_id_list (void); -void lgl_db_free_category_id_list (GList *ids); -GList * lgl_db_get_category_name_list (void); -void lgl_db_free_category_name_list (GList *names); -lglCategory * lgl_db_lookup_category_from_id (const gchar *id); -lglCategory * lgl_db_lookup_category_from_name (const gchar *name); -gchar * lgl_db_lookup_category_id_from_name (const gchar *name); -gchar * lgl_db_lookup_category_name_from_id (const gchar *id); -gboolean lgl_db_is_category_id_known (const gchar *id); - -GList * lgl_db_get_brand_list (const gchar *paper_id, - const gchar *category_id); -void lgl_db_free_brand_list (GList *brands); - -lglDbRegStatus lgl_db_register_template (const lglTemplate *template); -gboolean lgl_db_does_template_exist (const gchar *brand, - const gchar *part); -gboolean lgl_db_does_template_name_exist (const gchar *name); -GList * lgl_db_get_template_name_list_unique - (const gchar *brand, - const gchar *paper_id, - const gchar *category_id); -GList * lgl_db_get_template_name_list_all (const gchar *brand, - const gchar *paper_id, - const gchar *category_id); -void lgl_db_free_template_name_list (GList *names); -lglTemplate * lgl_db_lookup_template_from_name (const gchar *name); - -void lgl_db_print_known_papers (void); -void lgl_db_print_known_categories (void); -void lgl_db_print_known_templates (void); -void lgl_db_print_aliases (const lglTemplate *template); - - - - - - - - - - - - -Description - -This section describes a set of functions to locate and add templates and related information in -the LibGlabels template database. - - - - -Details - -enum lglDbRegStatus -lglDbRegStatustypedef enum -{ - LGL_DB_REG_OK = 0, - LGL_DB_REG_BAD_PAPER_ID = -1, - LGL_DB_REG_BRAND_PART_EXISTS = -2, - LGL_DB_REG_FILE_WRITE_ERROR = -3 -} lglDbRegStatus; - - -This enumeration defines a set of possible return values for lgl_db_register_template(). - - -LGL_DB_REG_OK -Registration successful. - - - -LGL_DB_REG_BAD_PAPER_ID - Registration failed because paper id is unknown. - - - -LGL_DB_REG_BRAND_PART_EXISTS -Registration failed because template with same brand and part name/number already exists. - - - -LGL_DB_REG_FILE_WRITE_ERROR -Registration failed because an error while writing to disk. - - - - -lgl_db_init () -lgl_db_initvoid lgl_db_init (void); - -Initialize all libglabels subsystems. It is not necessary for an application to call -lgl_db_init(), because libglabels will initialize on demand. An application programmer may -choose to call lgl_db_init() at startup to minimize the impact of the first libglabels call -on GUI response time. - - -This function initializes its paper definitions, category definitions, and its template -database.. It will search both system and user template directories to locate -this data. - - - -lgl_db_get_paper_id_list () -lgl_db_get_paper_id_listGList * lgl_db_get_paper_id_list (void); - -Get a list of all paper ids known to libglabels. - - -Returns : a list of paper ids. - - - - -lgl_db_free_paper_id_list () -lgl_db_free_paper_id_listvoid lgl_db_free_paper_id_list (GList *ids); - -Free up all storage associated with an id list obtained with -lgl_db_get_paper_id_list(). - - -ids : - List of id strings to be freed. - - - -lgl_db_get_paper_name_list () -lgl_db_get_paper_name_listGList * lgl_db_get_paper_name_list (void); - -Get a list of all localized paper names known to libglabels. - - -Returns : a list of localized paper names. - - - - -lgl_db_free_paper_name_list () -lgl_db_free_paper_name_listvoid lgl_db_free_paper_name_list (GList *names); - -Free up all storage associated with a name list obtained with -lgl_db_get_paper_name_list(). - - -names : - List of localized paper name strings to be freed. - - - -lgl_db_lookup_paper_from_id () -lgl_db_lookup_paper_from_idlglPaper * lgl_db_lookup_paper_from_id (const gchar *id); - -Lookup paper definition from id string. - - -id : - paper id string - -Returns : pointer to a newly allocated lglPaper structure. - - - - -lgl_db_lookup_paper_from_name () -lgl_db_lookup_paper_from_namelglPaper * lgl_db_lookup_paper_from_name (const gchar *name); - -Lookup paper definition from localized paper name string. - - -name : - localized paper name string - -Returns : pointer to a newly allocated lglPaper structure. - - - - -lgl_db_lookup_paper_id_from_name () -lgl_db_lookup_paper_id_from_namegchar * lgl_db_lookup_paper_id_from_name (const gchar *name); - -Lookup paper name string from localized paper name string. - - -name : - localized paper name stringp - -Returns : pointer to a newly allocated id string. - - - - -lgl_db_lookup_paper_name_from_id () -lgl_db_lookup_paper_name_from_idgchar * lgl_db_lookup_paper_name_from_id (const gchar *id); - -Lookup localized paper name string from paper id string. - - -id : - paper id string - -Returns : pointer to a newly allocated localized paper name string. - - - - -lgl_db_is_paper_id_known () -lgl_db_is_paper_id_knowngboolean lgl_db_is_paper_id_known (const gchar *id); - -Determine if given paper id is known to libglabels. - - -id : - paper id to test - -Returns : TRUE if id is known, otherwise FALSE. - - - - -lgl_db_is_paper_id_other () -lgl_db_is_paper_id_othergboolean lgl_db_is_paper_id_other (const gchar *id); - -Determine if given paper id is the special id "Other." - - -id : - paper id to test - -Returns : TRUE if id is "Other", otherwise FALSE. - - - - -lgl_db_get_category_id_list () -lgl_db_get_category_id_listGList * lgl_db_get_category_id_list (void); - -Get a list of all category ids known to libglabels. - - -Returns : a list of category ids. - - - - -lgl_db_free_category_id_list () -lgl_db_free_category_id_listvoid lgl_db_free_category_id_list (GList *ids); - -Free up all storage associated with an id list obtained with -lgl_db_get_category_id_list(). - - -ids : - List of id strings to be freed. - - - -lgl_db_get_category_name_list () -lgl_db_get_category_name_listGList * lgl_db_get_category_name_list (void); - -Get a list of all localized category names known to libglabels. - - -Returns : a list of localized category names. - - - - -lgl_db_free_category_name_list () -lgl_db_free_category_name_listvoid lgl_db_free_category_name_list (GList *names); - -Free up all storage associated with a name list obtained with -lgl_db_get_category_name_list(). - - -names : - List of localized category name strings to be freed. - - - -lgl_db_lookup_category_from_id () -lgl_db_lookup_category_from_idlglCategory * lgl_db_lookup_category_from_id (const gchar *id); - -Lookup category definition from id string. - - -id : - category id string - -Returns : pointer to a newly allocated lglCategory structure. - - - - -lgl_db_lookup_category_from_name () -lgl_db_lookup_category_from_namelglCategory * lgl_db_lookup_category_from_name (const gchar *name); - -Lookup category definition from localized category name string. - - -name : - localized category name string - -Returns : pointer to a newly allocated lglCategory structure. - - - - -lgl_db_lookup_category_id_from_name () -lgl_db_lookup_category_id_from_namegchar * lgl_db_lookup_category_id_from_name (const gchar *name); - -Lookup category name string from localized category name string. - - -name : - localized category name stringp - -Returns : pointer to a newly allocated id string. - - - - -lgl_db_lookup_category_name_from_id () -lgl_db_lookup_category_name_from_idgchar * lgl_db_lookup_category_name_from_id (const gchar *id); - -Lookup localized category name string from category id string. - - -id : - category id string - -Returns : pointer to a newly allocated localized category name string. - - - - -lgl_db_is_category_id_known () -lgl_db_is_category_id_knowngboolean lgl_db_is_category_id_known (const gchar *id); - -Determine if given category id is known to libglabels. - - -id : - category id to test - -Returns : TRUE if id is known, otherwise FALSE. - - - - -lgl_db_get_brand_list () -lgl_db_get_brand_listGList * lgl_db_get_brand_list (const gchar *paper_id, - const gchar *category_id); - -Get a list of all valid brands of templates in the template database. -Results can be filtered by page size and/or template category. A list of valid page -sizes can be obtained using lgl_db_get_paper_id_list(). A list of valid template -categories can be obtained using lgl_db_get_category_id_list(). - - -paper_id : - If non NULL, limit results to given page size. - -category_id : - If non NULL, limit results to given template category. - -Returns : a list of brands - - - -lgl_db_free_brand_list () -lgl_db_free_brand_listvoid lgl_db_free_brand_list (GList *brands); - -Free up all storage associated with a list of template names obtained with -lgl_db_get_brand_list(). - - -brands : - List of template brand strings to be freed. - - - -lgl_db_register_template () -lgl_db_register_templatelglDbRegStatus lgl_db_register_template (const lglTemplate *template); - -Register a template. This function adds a template to the template database. -The template will be stored in an individual XML file in the user template directory. - - -template : - Pointer to a template structure to add to database. - -Returns : Status of registration attempt (lglDbRegStatus) - - - -lgl_db_does_template_exist () -lgl_db_does_template_existgboolean lgl_db_does_template_exist (const gchar *brand, - const gchar *part); - -This function tests whether a template with the given brand and part name/number exists. - - -brand : - Brand name. - -part : - Part name/number. - -Returns : TRUE if such a template exists in the database. - - - -lgl_db_does_template_name_exist () -lgl_db_does_template_name_existgboolean lgl_db_does_template_name_exist (const gchar *name); - -This function test whether a template with the given name exists. - - -name : - name string - -Returns : TRUE if such a template exists in the database. - - - - -lgl_db_get_template_name_list_unique () -lgl_db_get_template_name_list_uniqueGList * lgl_db_get_template_name_list_unique - (const gchar *brand, - const gchar *paper_id, - const gchar *category_id); - -Get a list of valid names of unique templates in the template database. Results -can be filtered by page size and/or template category. A list of valid page sizes -can be obtained using lgl_db_get_paper_id_list(). A list of valid template categories -can be obtained using lgl_db_get_category_id_list(). - - -This function differs from lgl_db_get_template_name_list_all(), because it does not -return multiple names for the same template. - - -brand : - If non NULL, limit results to given brand - -paper_id : - If non NULL, limit results to given page size. - -category_id : - If non NULL, limit results to given template category. - -Returns : a list of template names. - - - -lgl_db_get_template_name_list_all () -lgl_db_get_template_name_list_allGList * lgl_db_get_template_name_list_all (const gchar *brand, - const gchar *paper_id, - const gchar *category_id); - -Get a list of all valid names and aliases of templates in the template database. -Results can be filtered by page size and/or template category. A list of valid page -sizes can be obtained using lgl_db_get_paper_id_list(). A list of valid template -categories can be obtained using lgl_db_get_category_id_list(). - - -This function differs from lgl_db_get_template_name_list_unique(), because it will -return multiple names for the same template. - - -brand : - If non NULL, limit results to given brand - -paper_id : - If non NULL, limit results to given page size. - -category_id : - If non NULL, limit results to given template category. - -Returns : a list of template names and aliases. - - - -lgl_db_free_template_name_list () -lgl_db_free_template_name_listvoid lgl_db_free_template_name_list (GList *names); - -Free up all storage associated with a list of template names obtained with -lgl_db_get_template_name_list_all() or lgl_db_get_template_name_list_unique(). - - -names : - List of template name strings to be freed. - - - -lgl_db_lookup_template_from_name () -lgl_db_lookup_template_from_namelglTemplate * lgl_db_lookup_template_from_name (const gchar *name); - -Lookup template in template database from name string. - - -name : - name string - -Returns : pointer to a newly allocated lglTemplate structure. - - - - -lgl_db_print_known_papers () -lgl_db_print_known_papersvoid lgl_db_print_known_papers (void); - -For debugging purposes: print a list of all paper definitions known to -libglabels. - - - -lgl_db_print_known_categories () -lgl_db_print_known_categoriesvoid lgl_db_print_known_categories (void); - -For debugging purposes: print a list of all category definitions known to -libglabels. - - - -lgl_db_print_known_templates () -lgl_db_print_known_templatesvoid lgl_db_print_known_templates (void); - -Print all known templates (for debugging purposes). - - - -lgl_db_print_aliases () -lgl_db_print_aliasesvoid lgl_db_print_aliases (const lglTemplate *template); - -Print all aliases of a template (for debugging purposes). - - -template : - template - - - - - - - - - diff --git a/docs/libglabels/xml/enums.xml b/docs/libglabels/xml/enums.xml deleted file mode 100644 index 55a90008..00000000 --- a/docs/libglabels/xml/enums.xml +++ /dev/null @@ -1,104 +0,0 @@ - - - - - -Enumerations -3 -LIBGLABELS Library - - - -Enumerations -Common enumerations used by libglabels - - - -Synopsis - - - -#include <libglabels/enums.h> - -enum lglUnitsType; - - - - - - - - - - - - -Description - -This section defines enumerations used to interact with libglabels. - - - - -Details - -enum lglUnitsType -lglUnitsTypetypedef enum { - LGL_UNITS_POINT, /* encoded as "pt" */ - LGL_UNITS_INCH, /* encoded as "in" */ - LGL_UNITS_MM, /* encoded as "mm" */ - LGL_UNITS_CM, /* encoded as "cm" */ - LGL_UNITS_PICA, /* encoded as "pc" */ - - LGL_UNITS_FIRST = LGL_UNITS_POINT, - LGL_UNITS_LAST = LGL_UNITS_PICA, -} lglUnitsType; - - -This enumeration defines a set of units of distance supported by the libglabels XML distance -attributes. - - -LGL_UNITS_POINT -Points. Encoded as "pt" in XML distance attributes. - - - -LGL_UNITS_INCH -Inches. Encoded as "in" in XML distance attributes. - - - -LGL_UNITS_MM -Millmeters. Encoded as "mm" in XML distance attributes. - - - -LGL_UNITS_CM -Centimeters. Encoded as "cm" in XML distance attributes. - - - -LGL_UNITS_PICA -Picas. Encoded as "pc" in XML distance attributes. - - - -LGL_UNITS_FIRST -First enumeration. Used for generic iteration through supported units.. - - - -LGL_UNITS_LAST -Last enumeration. Used for generic iteration through supported units. - - - - - - - - - - diff --git a/docs/libglabels/xml/paper.xml b/docs/libglabels/xml/paper.xml deleted file mode 100644 index 1a1abcf7..00000000 --- a/docs/libglabels/xml/paper.xml +++ /dev/null @@ -1,154 +0,0 @@ - - - - - -The lglPaper Structure -3 -LIBGLABELS Library - - - -The lglPaper Structure -Paper size definitions - - - -Synopsis - - - -#include <libglabels/paper.h> - - lglPaper; -lglPaper * lgl_paper_new (gchar *id, - gchar *name, - gdouble width, - gdouble height, - gchar *pwg_size); -lglPaper * lgl_paper_dup (const lglPaper *orig); -void lgl_paper_free (lglPaper *paper); - - - - - - - - - - - - -Description - -This section describes a structure for representing a paper size definition -and related functions. - - - - -Details - -lglPaper -lglPapertypedef struct { - gchar *id; /* Unique ID of paper definition */ - gchar *name; /* Localized name of paper */ - gdouble width; /* Width (in points) */ - gdouble height; /* Height (in points) */ - gchar *pwg_size; /* PWG 5101.1-2002 size name */ -} lglPaper; - - -This structure defines a paper (page) size. - - -gchar *id; -Paper size ID. - - - -gchar *name; -Localized paper size name. - - - -gdouble width; -Width of paper in points. - - - -gdouble height; -Height of paper in points. - - - -gchar *pwg_size; -PWG 5101.1-2002 size name. - - - - -lgl_paper_new () -lgl_paper_newlglPaper * lgl_paper_new (gchar *id, - gchar *name, - gdouble width, - gdouble height, - gchar *pwg_size); - -Allocates and constructs a new lglPaper structure. - - -id : - Id of paper definition. (E.g. US-Letter, A4, etc.) Should be - unique. - -name : - Localized name of paper. - -width : - Width of paper in points. - -height : - Height of paper in points. - -pwg_size : - PWG 5101.1-2002 size name. - -Returns : a pointer to a newly allocated lglPaper structure. - - - - -lgl_paper_dup () -lgl_paper_duplglPaper * lgl_paper_dup (const lglPaper *orig); - -Duplicates an existing lglPaper structure. - - -orig : - lglPaper structure to be duplicated. - -Returns : a pointer to a newly allocated lglPaper structure. - - - - -lgl_paper_free () -lgl_paper_freevoid lgl_paper_free (lglPaper *paper); - -Free all memory associated with an existing lglPaper structure. - - -paper : - pointer to lglPaper structure to be freed. - - - - - - - - - diff --git a/docs/libglabels/xml/str.xml b/docs/libglabels/xml/str.xml deleted file mode 100644 index 7071c107..00000000 --- a/docs/libglabels/xml/str.xml +++ /dev/null @@ -1,76 +0,0 @@ - - - - - -String Utility Functions -3 -LIBGLABELS Library - - - -String Utility Functions -String utility functions provided by libglabels - - - -Synopsis - - - -#include <libglabels/str.h> - -gint lgl_str_utf8_casecmp (const gchar *s1, - const gchar *s2); - - - - - - - - - - - - -Description - -This section defines string utility functions used by libglabels and of -possible use to a user of libglabels. - - - - -Details - -lgl_str_utf8_casecmp () -lgl_str_utf8_casecmpgint lgl_str_utf8_casecmp (const gchar *s1, - const gchar *s2); - -Compare two UTF-8 strings, ignoring the case of characters. - - -This function should be used only on strings that are known to be encoded -in UTF-8 or a compatible UTF-8 subset. - - -s1 : - string to compare with s2. - -s2 : - string to compare with s1. - -Returns : 0 if the strings match, a negative value if s1 < s2, - or a positive value if s1 > s2. - - - - - - - - - - diff --git a/docs/libglabels/xml/template.xml b/docs/libglabels/xml/template.xml deleted file mode 100644 index 6e81f96d..00000000 --- a/docs/libglabels/xml/template.xml +++ /dev/null @@ -1,1391 +0,0 @@ - - - - - -The lglTemplate Structure -3 -LIBGLABELS Library - - - -The lglTemplate Structure -How templates are represented in memory - - - -Synopsis - - - -#include <libglabels/template.h> - - lglTemplate; - - lglTemplateAlias; - -enum lglTemplateFrameShape; -union lglTemplateFrame; - lglTemplateFrameAll; - lglTemplateFrameRect; - lglTemplateFrameRound; - lglTemplateFrameCD; - - lglTemplateLayout; - -enum lglTemplateMarkupType; -union lglTemplateMarkup; - lglTemplateMarkupMargin; - lglTemplateMarkupLine; - lglTemplateMarkupCircle; - lglTemplateMarkupRect; - - lglTemplateOrigin; - -lglTemplate * lgl_template_new (const gchar *brand, - const gchar *part, - const gchar *description, - const gchar *paper_id, - gdouble page_width, - gdouble page_height); -lglTemplate * lgl_template_dup (const lglTemplate *orig_template); -void lgl_template_free (lglTemplate *template); -void lgl_template_add_category (lglTemplate *template, - const gchar *category_id); -void lgl_template_add_frame (lglTemplate *template, - lglTemplateFrame *frame); -void lgl_template_add_alias (lglTemplate *template, - lglTemplateAlias *alias); - -gchar * lgl_template_get_name (const lglTemplate *template); -gboolean lgl_template_do_templates_match (const lglTemplate *template1, - const lglTemplate *template2); -gboolean lgl_template_does_brand_match (const lglTemplate *template, - const gchar *brand); -gboolean lgl_template_does_page_size_match (const lglTemplate *template, - const gchar *paper_id); -gboolean lgl_template_does_category_match (const lglTemplate *template, - const gchar *category_id); - -lglTemplateAlias * lgl_template_alias_new (const gchar *brand, - const gchar *part); -lglTemplateAlias * lgl_template_alias_dup (const lglTemplateAlias *orig_alias); -void lgl_template_alias_free (lglTemplateAlias *alias); - -lglTemplateFrame * lgl_template_frame_rect_new (const gchar *id, - gdouble w, - gdouble h, - gdouble r, - gdouble x_waste, - gdouble y_waste); -lglTemplateFrame * lgl_template_frame_round_new (const gchar *id, - gdouble r, - gdouble waste); -lglTemplateFrame * lgl_template_frame_cd_new (const gchar *id, - gdouble r1, - gdouble r2, - gdouble w, - gdouble h, - gdouble waste); -lglTemplateFrame * lgl_template_frame_dup (const lglTemplateFrame *orig_frame); -void lgl_template_frame_free (lglTemplateFrame *frame); -void lgl_template_frame_add_layout (lglTemplateFrame *frame, - lglTemplateLayout *layout); -void lgl_template_frame_add_markup (lglTemplateFrame *frame, - lglTemplateMarkup *markup); - -void lgl_template_frame_get_size (const lglTemplateFrame *frame, - gdouble *w, - gdouble *h); -gint lgl_template_frame_get_n_labels (const lglTemplateFrame *frame); -lglTemplateOrigin * lgl_template_frame_get_origins (const lglTemplateFrame *frame); - -lglTemplateLayout * lgl_template_layout_new (gint nx, - gint ny, - gdouble x0, - gdouble y0, - gdouble dx, - gdouble dy); -lglTemplateLayout * lgl_template_layout_dup (const lglTemplateLayout *orig_layout); -void lgl_template_layout_free (lglTemplateLayout *layout); - -lglTemplateMarkup * lgl_template_markup_margin_new (gdouble size); -lglTemplateMarkup * lgl_template_markup_line_new (gdouble x1, - gdouble y1, - gdouble x2, - gdouble y2); -lglTemplateMarkup * lgl_template_markup_circle_new (gdouble x0, - gdouble y0, - gdouble r); -lglTemplateMarkup * lgl_template_markup_rect_new (gdouble x1, - gdouble y1, - gdouble w, - gdouble h, - gdouble r); -lglTemplateMarkup * lgl_template_markup_dup (const lglTemplateMarkup *orig_markup); -void lgl_template_markup_free (lglTemplateMarkup *markup); - - - - - - - - - - - - -Description - -This section describes a set of structures that represent a template in memory. It also -describes functions to help create and interpret these structures. - - - - -Details - -lglTemplate -lglTemplatetypedef struct { - gchar *brand; - gchar *part; - gchar *description; - gchar *paper_id; - gdouble page_width; - gdouble page_height; - - /* List of (lglTemplateAlias *) aliase structures. */ - GList *aliases; - - /* List of (gchar *) category ids. */ - GList *category_ids; - - /* List of (lglTemplateFrame *) label frame structures. - * Currently glabels only supports a single label frame per - * template. */ - GList *frames; -} lglTemplate; - - -This is the main structure of a libglabels template. A template represents a single sheet -of peel-off labels or cards. - - -gchar *brand; -Brand name of label or card. E.g. "Avery." - - - -gchar *part; -Part name or number of label or card. E.g. "8160." - - - -gchar *description; -A description of the template. E.g. "Mailing labels." - - - -gchar *paper_id; -A paper ID. E.g. "A4" or "US-Letter." - - - -gdouble page_width; -Page width in points. Used only if paper_id is "Other." - - - -gdouble page_height; -Page height in points. Used only if paper_id is "Other." - - - -GList *aliases; -A list of alternate names for this template. Often a single template can be used for -multiple products. - - - -GList *category_ids; -A list of category IDs that this template belongs to. - - - -GList *frames; -A list of (lglTemplateFrame *) structures. GLabels currently only supports one frame -per template -- future versions may support multiple frames per template. - - - - -lglTemplateAlias -lglTemplateAliastypedef struct { - gchar *brand; - gchar *part; -} lglTemplateAlias; - - -This structure defines an alias for the parent template structure. An alias is used for -different products that can use the same template. - - -gchar *brand; -Brand name of label or card. E.g. "Avery." - - - -gchar *part; -Part name or number of label or card. E.g. "8160." - - - - -enum lglTemplateFrameShape -lglTemplateFrameShapetypedef enum { - LGL_TEMPLATE_FRAME_SHAPE_RECT, - LGL_TEMPLATE_FRAME_SHAPE_ROUND, - LGL_TEMPLATE_FRAME_SHAPE_CD, -} lglTemplateFrameShape; - - -This enumeration defines frame types that are supported by libglabels - - -LGL_TEMPLATE_FRAME_SHAPE_RECT -A rectangular frame. (May have rounded corners.) - - - -LGL_TEMPLATE_FRAME_SHAPE_ROUND -A round frame. - - - -LGL_TEMPLATE_FRAME_SHAPE_CD -A CD or DVD frame. (Includes credit-card style CDs.) - - - - -union lglTemplateFrame -lglTemplateFrameunion lglTemplateFrame{ - - lglTemplateFrameShape shape; - - lglTemplateFrameAll all; - lglTemplateFrameRect rect; - lglTemplateFrameRound round; - lglTemplateFrameCD cd; -}; - - -A union of all possible frame structures. The type of structure is indicated by the shape -member, which overlays the first field of all other member structures. - - -lglTemplateFrameAll -lglTemplateFrameAlltypedef struct { - /* Begin Common Fields */ - lglTemplateFrameShape shape; - - gchar *id; /* Id, currently always "0" */ - GList *layouts; /* List of lglTemplateLayouts */ - GList *markups; /* List of lglTemplateMarkups */ - /* End Common Fields */ -} lglTemplateFrameAll; - - -This structure is composed of a set of fields common to all frame structures. All frame types -can be cast to this structure. - - -lglTemplateFrameShape shape; -The shape of the frame. - - - -gchar *id; -Reserved for future use. Should always be zero. - - - -GList *layouts; -A list of (lglTemplateLayout *) structures. Typically a frame will have a single -layout, representing a simple grid of labels or cards. If the layout of labels or cards is -more complex, multiple (lglTemplateLayout *) structures may be needed. - - - -GList *markups; -A list of (lglTemplateMarkup *) structures, which represent non-printing markup lines. - - - - -lglTemplateFrameRect -lglTemplateFrameRecttypedef struct { - /* Begin Common Fields */ - lglTemplateFrameShape shape; /* Always LGL_TEMPLATE_FRAME_SHAPE_RECT. */ - - gchar *id; /* Id, currently always "0" */ - GList *layouts; /* List of lglTemplateLayouts */ - GList *markups; /* List of lglTemplateMarkups */ - /* End Common Fields */ - - gdouble w; /* Width */ - gdouble h; /* Height */ - gdouble r; /* Corner radius */ - gdouble x_waste; /* Amount of horiz overprint allowed. */ - gdouble y_waste; /* Amount of vert overprint allowed. */ -} lglTemplateFrameRect; - - -This structure defines the frame for a rectangular label or card. - - -lglTemplateFrameShape shape; -Common field. Always LGL_TEMPLATE_FRAME_SHAPE_RECT for lglTemplateFrameRect. - - - -gchar *id; -Common field. See lglTemplateFrameAll. - - - -GList *layouts; - Common field. See lglTemplateFrameAll. - - - -GList *markups; - Common field. See lglTemplateFrameAll. - - - -gdouble w; -Width of label or card in points. - - - -gdouble h; -Height of label or card in points. - - - -gdouble r; -Radius of corners in points. - - - -gdouble x_waste; -Amount of horizontal over-print to allow in points. - - - -gdouble y_waste; -Amount of vertical over-print to allow in points. - - - - -lglTemplateFrameRound -lglTemplateFrameRoundtypedef struct { - /* Begin Common Fields */ - lglTemplateFrameShape shape; /* Always LGL_TEMPLATE_FRAME_SHAPE_ROUND. */ - - gchar *id; /* Id, currently always "0" */ - GList *layouts; /* List of lglTemplateLayouts */ - GList *markups; /* List of lglTemplateMarkups */ - /* End Common Fields */ - - gdouble r; /* Radius */ - gdouble waste; /* Amount of overprint allowed. */ -} lglTemplateFrameRound; - - -This structure defines the frame for a round label or card. - - -lglTemplateFrameShape shape; -Common field. Always LGL_TEMPLATE_FRAME_SHAPE_ROUND for lglTemplateFrameRound. - - - -gchar *id; -Common field. See lglTemplateFrameAll. - - - -GList *layouts; -Common field. See lglTemplateFrameAll. - - - -GList *markups; -Common field. See lglTemplateFrameAll. - - - -gdouble r; -Radius of label or card in points. - - - -gdouble waste; -Amount of over-print to allow in points. - - - - -lglTemplateFrameCD -lglTemplateFrameCDtypedef struct { - /* Begin Common Fields */ - lglTemplateFrameShape shape; /* Always LGL_TEMPLATE_FRAME_SHAPE_CD. */ - - gchar *id; /* Id, currently always "0" */ - GList *layouts; /* List of lglTemplateLayouts */ - GList *markups; /* List of lglTemplateMarkups */ - /* End Common Fields */ - - gdouble r1; /* Outer radius */ - gdouble r2; /* Inner radius (hole) */ - gdouble w; /* Clip width, business card CDs */ - gdouble h; /* Clip height, business card CDs */ - gdouble waste; /* Amount of overprint allowed. */ -} lglTemplateFrameCD; - - -This structure defines the frame for a CD or DVD label. This structure also supports -credit-card CD labels. - - -lglTemplateFrameShape shape; -Common field. Always LGL_TEMPLATE_FRAME_SHAPE_CD for lglTemplateFrameCD. - - - -gchar *id; -Common field. See lglTemplateFrameAll. - - - -GList *layouts; -Common field. See lglTemplateFrameAll. - - - -GList *markups; -Common field. See lglTemplateFrameAll. - - - -gdouble r1; -Outer radius of label in points. - - - -gdouble r2; -Radius of center hole in points. - - - -gdouble w; -Clip width in points. Used for credit-card CD labels. This field is ignored if zero. - - - -gdouble h; -Clip height in points. Used for credit-card CD labels. This field is ignored if zero. - - - -gdouble waste; -Amount of over-print to allow in points. - - - - -lglTemplateLayout -lglTemplateLayouttypedef struct { - gint nx; /* Number of labels across */ - gint ny; /* Number of labels up and down */ - - gdouble x0; /* Left of grid from left edge of paper */ - gdouble y0; /* Top of grid from top edge of paper */ - - gdouble dx; /* Horizontal pitch of grid */ - gdouble dy; /* Vertical pitch of grid */ -} lglTemplateLayout; - - -This structure defines a simple grid layout of labels or cards. - - -gint nx; -Number of labels or cards across in the grid (horizontal). - - - -gint ny; -Number of labels or cards down in the grid (vertical). - - - -gdouble x0; -Distance (in points) from the left edge of page to the left edge of the left column of -cards or labels in the layout. - - - -gdouble y0; -Distance (in points) from the top edge of page to the top edge of the top row of -cards or labels in the layout. - - - -gdouble dx; -Horizontal pitch of grid in points. This is the distance from left edge to left edge -(not the gap between labels or cards). - - - -gdouble dy; -Vertical pitch of grid in points. This is the distance from top edge to top edge -(not the gap between labels or cards). - - - - -enum lglTemplateMarkupType -lglTemplateMarkupTypetypedef enum { - LGL_TEMPLATE_MARKUP_MARGIN, - LGL_TEMPLATE_MARKUP_LINE, - LGL_TEMPLATE_MARKUP_CIRCLE, - LGL_TEMPLATE_MARKUP_RECT, -} lglTemplateMarkupType; - - -This enumeration defines markup types that are supported by libglabels - - -LGL_TEMPLATE_MARKUP_MARGIN -A margin line around perimeter of label or card. - - - -LGL_TEMPLATE_MARKUP_LINE -A simple line segment. - - - -LGL_TEMPLATE_MARKUP_CIRCLE -A circle. - - - -LGL_TEMPLATE_MARKUP_RECT -A rectangle. Possibly with rounded corners. - - - - -union lglTemplateMarkup -lglTemplateMarkupunion lglTemplateMarkup { - - lglTemplateMarkupType type; - - lglTemplateMarkupMargin margin; - lglTemplateMarkupLine line; - lglTemplateMarkupCircle circle; - lglTemplateMarkupRect rect; -}; - - -A union of all possible markup structures. The type of structure is indicated by the type -member, which overlays the first field of all other member structures. - - -lglTemplateMarkupMargin -lglTemplateMarkupMargintypedef struct { - lglTemplateMarkupType type; /* Always LGL_TEMPLATE_MARKUP_MARGIN */ - - gdouble size; /* Margin size */ -} lglTemplateMarkupMargin; - - -This structure defines a simple margin markup around the perimeter of a label or card. - - -lglTemplateMarkupType type; -Common field. Always LGL_TEMPLATE_MARKUP_MARGIN for lglTemplateMarkupMargin. - - - -gdouble size; -Distance of margin from edge of label or card. - - - - -lglTemplateMarkupLine -lglTemplateMarkupLinetypedef struct { - lglTemplateMarkupType type; /* Always LGL_TEMPLATE_MARKUP_LINE */ - - gdouble x1, y1; /* 1st endpoint */ - gdouble x2, y2; /* 2nd endpoint */ -} lglTemplateMarkupLine; - - -This structure defines a simple line segment markup. - - -lglTemplateMarkupType type; -Common field. Always LGL_TEMPLATE_MARKUP_LINE for lglTemplateMarkupLine. - - - -gdouble x1; -Distance (in points) of first endpoint from left edge of label or card. - - - -gdouble y1; -Distance (in points) of first endpoint from top edge of label or card. - - - -gdouble x2; -Distance (in points) of second endpoint from left edge of label or card. - - - -gdouble y2; -Distance (in points) of second endpoint from top edge of label or card. - - - - -lglTemplateMarkupCircle -lglTemplateMarkupCircletypedef struct { - lglTemplateMarkupType type; /* Always LGL_TEMPLATE_MARKUP_CIRCLE */ - - gdouble x0, y0; /* Center of circle */ - gdouble r; /* Radius of circle */ -} lglTemplateMarkupCircle; - - -This structure defines a simple circle markup. - - -lglTemplateMarkupType type; -Common field. Always LGL_TEMPLATE_MARKUP_CIRCLE for lglTemplateMarkupCircle. - - - -gdouble x0; -Distance (in points) of vertex from left edge of label or card. - - - -gdouble y0; -Distance (in points) of vertex from top edge of label or card. - - - -gdouble r; -Radius of circle in points. - - - - -lglTemplateMarkupRect -lglTemplateMarkupRecttypedef struct { - lglTemplateMarkupType type; /* Always LGL_TEMPLATE_MARKUP_RECT */ - - gdouble x1, y1; /* Upper left corner */ - gdouble w, h; /* Width and height. */ - gdouble r; /* Radius of corners. */ -} lglTemplateMarkupRect; - - -This structure defines a simple rectangle markup. The rectangle can have rounded corners. - - -lglTemplateMarkupType type; -Common field. Always LGL_TEMPLATE_MARKUP_RECT for lglTemplateMarkupRect. - - - -gdouble x1; -Distance (in points) of left edge of markup from left edge of label or card. - - - -gdouble y1; -Distance (in points) of top edge of markup from top edge of label or card. - - - -gdouble w; -Width of rectangle in points. - - - -gdouble h; -Height of rectangle in points. - - - -gdouble r; -Radius of corners in points. Should be zero for sharp corners. - - - - -lglTemplateOrigin -lglTemplateOrigintypedef struct { - gdouble x, y; /* Label origin relative to upper - * upper left hand corner of paper */ -} lglTemplateOrigin; - - -This structure represents the cartesian coordinates of the origin of a label or card on the page. -The orign is the upper left corner of the extent of the label or card. These coordinates are -relative to the upper left corner of the page. - - -gdouble x; -Distance in points from top edge of page. - - - -gdouble y; -Distance in points from left edge of page. - - - - -lgl_template_new () -lgl_template_newlglTemplate * lgl_template_new (const gchar *brand, - const gchar *part, - const gchar *description, - const gchar *paper_id, - gdouble page_width, - gdouble page_height); - -Create a new template structure, with the given top-level attributes. The -created template will have no initial aliases, categories, or frames -associated with it. See lgl_template_add_alias(), lgl_template_add_category(), -and lgl_template_add_frame() to add these. - - -brand : - Template brand - -part : - Template part name/number - -description : - Template descriptions - -paper_id : - Page size id - -page_width : - Page width in points, set to zero unless paper_id="Other" - -page_height : - Page height in points, set to zero unless paper_id="Other" - -Returns : pointer to a newly allocated lglTemplate structure. - - - - -lgl_template_dup () -lgl_template_duplglTemplate * lgl_template_dup (const lglTemplate *orig_template); - -This function duplicates a template structure. - - -orig_template : - Template to duplicate. - -Returns : a newly allocated lglTemplate structure. - - - - -lgl_template_free () -lgl_template_freevoid lgl_template_free (lglTemplate *template); - -This function frees all memory associated with given template structure. - - -template : - Template to free. - - - -lgl_template_add_category () -lgl_template_add_categoryvoid lgl_template_add_category (lglTemplate *template, - const gchar *category_id); - -This function adds the given category ID to a templates category list. - - -template : - Pointer to template structure - -category_id : - Category ID string - - - -lgl_template_add_frame () -lgl_template_add_framevoid lgl_template_add_frame (lglTemplate *template, - lglTemplateFrame *frame); - -This function adds the given frame structure to the template. Once added, -the frame structure belongs to the given template; do not attempt to free -it. - - -Note: Currently glabels only supports a single frame per template. - - -template : - Pointer to template structure - -frame : - Pointer to frame structure - - - -lgl_template_add_alias () -lgl_template_add_aliasvoid lgl_template_add_alias (lglTemplate *template, - lglTemplateAlias *alias); - -This function adds the given alias to a templates list of aliases. - - -template : - Pointer to template structure - -alias : - Alias string - - - -lgl_template_get_name () -lgl_template_get_namegchar * lgl_template_get_name (const lglTemplate *template); - -This function returns the name of the given template. The name is the concetenation -of the brand and part name/number. - - -template : - Pointer to template structure to test - -Returns : A pointer to a newly allocated name string. Should be freed with g_free(). - - - - -lgl_template_do_templates_match () -lgl_template_do_templates_matchgboolean lgl_template_do_templates_match (const lglTemplate *template1, - const lglTemplate *template2); - -This function tests if the given templates match. This is a simple test that only tests -the brand and part name/number. It does not test if they are actually identical. - - -template1 : - Pointer to 1st template structure to test - -template2 : - Pointer to 2nd template structure to test - -Returns : TRUE if the two template matche. - - - - -lgl_template_does_brand_match () -lgl_template_does_brand_matchgboolean lgl_template_does_brand_match (const lglTemplate *template, - const gchar *brand); - -This function tests if the brand of the template matches the given brand. - - -template : - Pointer to template structure to test - -brand : - Brand string - -Returns : TRUE if the template matches the given brand. - - - - -lgl_template_does_page_size_match () -lgl_template_does_page_size_matchgboolean lgl_template_does_page_size_match (const lglTemplate *template, - const gchar *paper_id); - -This function tests if the page size of the template matches the given ID. - - -template : - Pointer to template structure to test - -paper_id : - Page size ID string - -Returns : TRUE if the template matches the given page size ID. - - - - -lgl_template_does_category_match () -lgl_template_does_category_matchgboolean lgl_template_does_category_match (const lglTemplate *template, - const gchar *category_id); - -This function tests if the given template belongs to the given category ID. - - -template : - Pointer to template structure to test - -category_id : - Category ID string - -Returns : TRUE if the template matches the given category ID. - - - - -lgl_template_alias_new () -lgl_template_alias_newlglTemplateAlias * lgl_template_alias_new (const gchar *brand, - const gchar *part); - -Create a new template alias structure, with the given brand and part number. - - -brand : - Alias brand - -part : - Alias part name/number - -Returns : pointer to a newly allocated lglTemplateAlias structure. - - - - -lgl_template_alias_dup () -lgl_template_alias_duplglTemplateAlias * lgl_template_alias_dup (const lglTemplateAlias *orig_alias); - -This function duplicates a template alias structure. - - -orig_alias : - Alias to duplicate. - -Returns : a newly allocated lglTemplateAlias structure. - - - - -lgl_template_alias_free () -lgl_template_alias_freevoid lgl_template_alias_free (lglTemplateAlias *alias); - -This function frees all memory associated with given template alias structure. - - -alias : - Alias to free. - - - -lgl_template_frame_rect_new () -lgl_template_frame_rect_newlglTemplateFrame * lgl_template_frame_rect_new (const gchar *id, - gdouble w, - gdouble h, - gdouble r, - gdouble x_waste, - gdouble y_waste); - -This function creates a new template frame for a rectangular label or card. - - -id : - ID of frame. (This should currently always be "0"). - -w : - width of frame in points. - -h : - height of frame in points. - -r : - radius of rounded corners in points. (Should be 0 for square corners.) - -x_waste : - Amount of overprint to allow in the horizontal direction. - -y_waste : - Amount of overprint to allow in the vertical direction. - -Returns : Pointer to newly allocated lglTemplateFrame structure. - - - - -lgl_template_frame_round_new () -lgl_template_frame_round_newlglTemplateFrame * lgl_template_frame_round_new (const gchar *id, - gdouble r, - gdouble waste); - -This function creates a new template frame for a round label. - - -id : - ID of frame. (This should currently always be "0"). - -r : - radius of label in points. - -waste : - Amount of overprint to allow. - -Returns : Pointer to newly allocated lglTemplateFrame structure. - - - - -lgl_template_frame_cd_new () -lgl_template_frame_cd_newlglTemplateFrame * lgl_template_frame_cd_new (const gchar *id, - gdouble r1, - gdouble r2, - gdouble w, - gdouble h, - gdouble waste); - -This function creates a new template frame for a CD/DVD label. - - -id : - ID of frame. (This should currently always be "0"). - -r1 : - outer radius of label in points. - -r2 : - radius of center hole in points. - -w : - clip width of frame in points for business card CDs. Should be 0 for no clipping. - -h : - clip height of frame in points for business card CDs. Should be 0 for no clipping. - -waste : - Amount of overprint to allow. - -Returns : Pointer to newly allocated lglTemplateFrame structure. - - - - -lgl_template_frame_dup () -lgl_template_frame_duplglTemplateFrame * lgl_template_frame_dup (const lglTemplateFrame *orig_frame); - -This function duplicates a template frame structure. - - -orig_frame : - Frame to duplicate. - -Returns : a newly allocated lglTemplateFrame structure. - - - - -lgl_template_frame_free () -lgl_template_frame_freevoid lgl_template_frame_free (lglTemplateFrame *frame); - -This function frees all memory associated with given template frame structure. - - -frame : - Frame to free. - - - -lgl_template_frame_add_layout () -lgl_template_frame_add_layoutvoid lgl_template_frame_add_layout (lglTemplateFrame *frame, - lglTemplateLayout *layout); - -This function adds a layout structure to the given template frame. - - -frame : - Pointer to template frame to add layout to. - -layout : - Pointer to layout structure to add to frame. - - - -lgl_template_frame_add_markup () -lgl_template_frame_add_markupvoid lgl_template_frame_add_markup (lglTemplateFrame *frame, - lglTemplateMarkup *markup); - -This function adds a markup structure to the given template frame. - - -frame : - Pointer to template frame to add markup to. - -markup : - Pointer to markup structure to add to frame. - - - -lgl_template_frame_get_size () -lgl_template_frame_get_sizevoid lgl_template_frame_get_size (const lglTemplateFrame *frame, - gdouble *w, - gdouble *h); - -Get size (width and height) of given lglTemplateFrame in points. - - -frame : - lglTemplateFrame structure to query - -w : - pointer to location to receive width of frame - -h : - pointer to location to receive height of frame - - - -lgl_template_frame_get_n_labels () -lgl_template_frame_get_n_labelsgint lgl_template_frame_get_n_labels (const lglTemplateFrame *frame); - -Get total number of labels per sheet corresponding to the given frame. - - -frame : - lglTemplateFrame structure to query - -Returns : number of labels per sheet. - - - - -lgl_template_frame_get_origins () -lgl_template_frame_get_originslglTemplateOrigin * lgl_template_frame_get_origins (const lglTemplateFrame *frame); - -Get an array of label origins for the given frame. These origins represent the -upper left hand corner of each label on a page corresponding to the given frame. -The origins will be ordered geometrically left to right and then top to bottom. -The array should be freed using g_free(). - - -frame : - lglTemplateFrame structure to query - -Returns : A newly allocated array of lglTemplateOrigin structures. - - - - -lgl_template_layout_new () -lgl_template_layout_newlglTemplateLayout * lgl_template_layout_new (gint nx, - gint ny, - gdouble x0, - gdouble y0, - gdouble dx, - gdouble dy); - -This function creates a new layout structure with the given parameters. - - -nx : - Number of labels across. - -ny : - Number of labels down. - -x0 : - X coordinate of the top-left corner of the top-left label in the layout in points. - -y0 : - Y coordinate of the top-left corner of the top-left label in the layout in points. - -dx : - Horizontal pitch in points. This is the distance from left-edge to left-edge. - -dy : - Vertical pitch in points. This is the distance from top-edge to top-edge. - -Returns : a newly allocated lglTemplateLayout structure. - - - - -lgl_template_layout_dup () -lgl_template_layout_duplglTemplateLayout * lgl_template_layout_dup (const lglTemplateLayout *orig_layout); - -This function duplicates a template layout structure. - - -orig_layout : - Layout to duplicate. - -Returns : a newly allocated lglTemplateLayout structure. - - - - -lgl_template_layout_free () -lgl_template_layout_freevoid lgl_template_layout_free (lglTemplateLayout *layout); - -This function frees all memory associated with given template layout structure. - - -layout : - Layout to free. - - - -lgl_template_markup_margin_new () -lgl_template_markup_margin_newlglTemplateMarkup * lgl_template_markup_margin_new (gdouble size); - -This function creates a new margin markup structure. - - -size : - margin size in points. - -Returns : a newly allocated lglTemplateMarkup structure. - - - - -lgl_template_markup_line_new () -lgl_template_markup_line_newlglTemplateMarkup * lgl_template_markup_line_new (gdouble x1, - gdouble y1, - gdouble x2, - gdouble y2); - -This function creates a new line markup structure. - - -x1 : - x coordinate of first endpoint. - -y1 : - y coordinate of first endpoint. - -x2 : - x coordinate of second endpoint. - -y2 : - y coordinate of second endpoint. - -Returns : a newly allocated lglTemplateMarkup structure. - - - - -lgl_template_markup_circle_new () -lgl_template_markup_circle_newlglTemplateMarkup * lgl_template_markup_circle_new (gdouble x0, - gdouble y0, - gdouble r); - -This function creates a new circle markup structure. - - -x0 : - x coordinate of center of circle. - -y0 : - y coordinate of center of circle. - -r : - radius of circle. - -Returns : a newly allocated lglTemplateMarkup structure. - - - - -lgl_template_markup_rect_new () -lgl_template_markup_rect_newlglTemplateMarkup * lgl_template_markup_rect_new (gdouble x1, - gdouble y1, - gdouble w, - gdouble h, - gdouble r); - -This function creates a new rectangle markup structure. - - -x1 : - x coordinate of top-left corner of rectangle. - -y1 : - y coordinate of top-left corner of rectangle. - -w : - width of rectangle. - -h : - height of rectangle. - -r : - radius of rounded corner. - -Returns : a newly allocated lglTemplateMarkup structure. - - - - -lgl_template_markup_dup () -lgl_template_markup_duplglTemplateMarkup * lgl_template_markup_dup (const lglTemplateMarkup *orig_markup); - -This function duplicates a template markup structure. - - -orig_markup : - Markup to duplicate. - -Returns : a newly allocated lglTemplateMarkup structure. - - - - -lgl_template_markup_free () -lgl_template_markup_freevoid lgl_template_markup_free (lglTemplateMarkup *markup); - -This function frees all memory associated with given template markup structure. - - -markup : - Markup to free. - - - - - - - - - diff --git a/docs/libglabels/xml/xml-category.xml b/docs/libglabels/xml/xml-category.xml deleted file mode 100644 index d5a8d8ee..00000000 --- a/docs/libglabels/xml/xml-category.xml +++ /dev/null @@ -1,103 +0,0 @@ - - - - - -XML Category Functions -3 -LIBGLABELS Library - - - -XML Category Functions -Functions to parse glabels XML category definition files - - - -Synopsis - - - -#include <libglabels/xml-category.h> - -GList * lgl_xml_category_read_categories_from_file - (gchar *utf8_filename); -GList * lgl_xml_category_parse_categories_doc - (xmlDocPtr categories_doc); -lglCategory * lgl_xml_category_parse_category_node - (xmlNodePtr category_node); - - - - - - - - - - - - -Description - -This section describes a number of functions for parsing glabels -XML category definition files. - - - - -Details - -lgl_xml_category_read_categories_from_file () -lgl_xml_category_read_categories_from_fileGList * lgl_xml_category_read_categories_from_file - (gchar *utf8_filename); - -Read category definitions from a file. - - -utf8_filename : - Filename of categories file (name encoded as UTF-8) - -Returns : a list of lglCategory structures. - - - - -lgl_xml_category_parse_categories_doc () -lgl_xml_category_parse_categories_docGList * lgl_xml_category_parse_categories_doc - (xmlDocPtr categories_doc); - -Read category definitions from a libxml xmlDocPtr tree. - - -categories_doc : - libxml xmlDocPtr tree, representing a categories -definition file. - -Returns : a list of lglCategory structures. - - - - -lgl_xml_category_parse_category_node () -lgl_xml_category_parse_category_nodelglCategory * lgl_xml_category_parse_category_node - (xmlNodePtr category_node); - -Read a single category definition from a libxml xmlNodePtr node. - - -category_node : - libxml xmlNodePtr category node from a xmlDocPtr tree. - -Returns : a pointer to a newly created lglCategory structure. - - - - - - - - - - diff --git a/docs/libglabels/xml/xml-paper.xml b/docs/libglabels/xml/xml-paper.xml deleted file mode 100644 index 8097f4a8..00000000 --- a/docs/libglabels/xml/xml-paper.xml +++ /dev/null @@ -1,96 +0,0 @@ - - - - - -XML Paper Functions -3 -LIBGLABELS Library - - - -XML Paper Functions -Functions to parse glabels XML paper definition files - - - -Synopsis - - - -#include <libglabels/xml-paper.h> - -GList * lgl_xml_paper_read_papers_from_file (gchar *utf8_filename); -GList * lgl_xml_paper_parse_papers_doc (xmlDocPtr papers_doc); -lglPaper * lgl_xml_paper_parse_paper_node (xmlNodePtr paper_node); - - - - - - - - - - - - -Description - -This section describes a number of functions for parsing glabels -XML paper definition files. - - - - -Details - -lgl_xml_paper_read_papers_from_file () -lgl_xml_paper_read_papers_from_fileGList * lgl_xml_paper_read_papers_from_file (gchar *utf8_filename); - -Read paper definitions from a file. - - -utf8_filename : - Filename of papers file (name encoded as UTF-8) - -Returns : a list of lglPaper structures. - - - - -lgl_xml_paper_parse_papers_doc () -lgl_xml_paper_parse_papers_docGList * lgl_xml_paper_parse_papers_doc (xmlDocPtr papers_doc); - -Read paper definitions from a libxml xmlDocPtr tree. - - -papers_doc : - libxml xmlDocPtr tree, representing a papers definition file. - -Returns : a list of lglPaper structures. - - - - -lgl_xml_paper_parse_paper_node () -lgl_xml_paper_parse_paper_nodelglPaper * lgl_xml_paper_parse_paper_node (xmlNodePtr paper_node); - -Read a single paper definition from a libxml xmlNodePtr node. - - -paper_node : - libxml xmlNodePtr paper node from a xmlDocPtr tree. - -Returns : a pointer to a newly created lglPaper structure. - - - - - - - - - - diff --git a/docs/libglabels/xml/xml-template.xml b/docs/libglabels/xml/xml-template.xml deleted file mode 100644 index b8e88e3b..00000000 --- a/docs/libglabels/xml/xml-template.xml +++ /dev/null @@ -1,171 +0,0 @@ - - - - - -XML Template Functions -3 -LIBGLABELS Library - - - -XML Template Functions -Functions to create and parse glabels XML template nodes and files - - - -Synopsis - - - -#include <libglabels/xml-templates.h> - -GList * lgl_xml_template_read_templates_from_file - (const gchar *utf8_filename); -GList * lgl_xml_template_parse_templates_doc - (const xmlDocPtr templates_doc); -lglTemplate * lgl_xml_template_parse_template_node - (const xmlNodePtr template_node); -gint lgl_xml_template_write_templates_to_file - (GList *templates, - const gchar *utf8_filename); -gint lgl_xml_template_write_template_to_file - (const lglTemplate *template, - const gchar *utf8_filename); -void lgl_xml_template_create_template_node - (const lglTemplate *template, - xmlNodePtr root, - const xmlNsPtr ns); - - - - - - - - - - - - -Description - -This section describes a number of functions for creating and parsing -glabels XML template nodes and files. Template nodes are used in both -template files and document files. - - - - -Details - -lgl_xml_template_read_templates_from_file () -lgl_xml_template_read_templates_from_fileGList * lgl_xml_template_read_templates_from_file - (const gchar *utf8_filename); - -Read glabels templates from template file. - - -utf8_filename : - Filename of papers file (name encoded as UTF-8) - -Returns : a list of lglTemplate structures. - - - - -lgl_xml_template_parse_templates_doc () -lgl_xml_template_parse_templates_docGList * lgl_xml_template_parse_templates_doc - (const xmlDocPtr templates_doc); - -Read glabels templates from a libxml xmlDocPtr tree. - - -templates_doc : - libxml xmlDocPtr tree, representing template file. - -Returns : a list of lglTemplate structures. - - - - -lgl_xml_template_parse_template_node () -lgl_xml_template_parse_template_nodelglTemplate * lgl_xml_template_parse_template_node - (const xmlNodePtr template_node); - -Read a single glabels template from a libxml xmlNodePtr node. - - -template_node : - libxml xmlNodePtr template node from a xmlDocPtr tree. - -Returns : a pointer to a newly created lglTemplate structure. - - - - -lgl_xml_template_write_templates_to_file () -lgl_xml_template_write_templates_to_filegint lgl_xml_template_write_templates_to_file - (GList *templates, - const gchar *utf8_filename); - -Write a list of lglTemplate structures to a glabels XML template file. - - -templates : - List of lglTemplate structures - -utf8_filename : - Filename of templates file (name encoded as UTF-8) - -Returns : the number of bytes written or -1 in case of failure - - - - -lgl_xml_template_write_template_to_file () -lgl_xml_template_write_template_to_filegint lgl_xml_template_write_template_to_file - (const lglTemplate *template, - const gchar *utf8_filename); - -Write a single lglTemplate structures to a glabels XML template file. - - -template : - lglTemplate structure to be written - -utf8_filename : - Filename of templates file (name encoded as UTF-8) - -Returns : the number of bytes written or -1 in case of failure - - - - -lgl_xml_template_create_template_node () -lgl_xml_template_create_template_nodevoid lgl_xml_template_create_template_node - (const lglTemplate *template, - xmlNodePtr root, - const xmlNsPtr ns); - -Add a single lglTemplate child node to given xmlNodePtr. - - -template : - lglTemplate structure to be written - -root : - parent node to receive new child node - -ns : - a libxml xmlNsPtr - - - - - - - - - diff --git a/docs/libglabels/xml/xml.xml b/docs/libglabels/xml/xml.xml deleted file mode 100644 index ad1919a7..00000000 --- a/docs/libglabels/xml/xml.xml +++ /dev/null @@ -1,430 +0,0 @@ - - - - - -XML Helper Functions -3 -LIBGLABELS Library - - - -XML Helper Functions -Functions to help format and parse glabels XML properties - - - -Synopsis - - - -#include <libglabels/xml.h> - -#define LGL_XML_NAME_SPACE - -gchar * lgl_xml_get_prop_string (xmlNodePtr node, - const gchar *property, - const gchar *default_val); -gchar * lgl_xml_get_prop_i18n_string (xmlNodePtr node, - const gchar *property, - const gchar *default_val); -gdouble lgl_xml_get_prop_double (xmlNodePtr node, - const gchar *property, - gdouble default_val); -gboolean lgl_xml_get_prop_boolean (xmlNodePtr node, - const gchar *property, - gboolean default_val); -gint lgl_xml_get_prop_int (xmlNodePtr node, - const gchar *property, - gint default_val); -guint lgl_xml_get_prop_uint (xmlNodePtr node, - const gchar *property, - guint default_val); -gdouble lgl_xml_get_prop_length (xmlNodePtr node, - const gchar *property, - gdouble default_val); - -void lgl_xml_set_prop_string (xmlNodePtr node, - const gchar *property, - const gchar *val); -void lgl_xml_set_prop_double (xmlNodePtr node, - const gchar *property, - gdouble val); -void lgl_xml_set_prop_boolean (xmlNodePtr node, - const gchar *property, - gboolean val); -void lgl_xml_set_prop_int (xmlNodePtr node, - const gchar *property, - gint val); -void lgl_xml_set_prop_uint_hex (xmlNodePtr node, - const gchar *property, - guint val); -void lgl_xml_set_prop_length (xmlNodePtr node, - const gchar *property, - gdouble val); - -gboolean lgl_xml_is_node (xmlNodePtr node, - const gchar *name); -gchar * lgl_xml_get_node_content (xmlNodePtr node); - -void lgl_xml_set_default_units (lglUnitsType units); - - - - - - - - - - - - -Description - -This section describes a number of "helper" functions for formatting and -parsing various types of properties for tags in glabels XML file formats. - - -These functions are basically wrappers to functions from libxml2. - - - - -Details - -LGL_XML_NAME_SPACE -LGL_XML_NAME_SPACE#define LGL_XML_NAME_SPACE "http://snaught.com/glabels/2.2/" - - - - -lgl_xml_get_prop_string () -lgl_xml_get_prop_stringgchar * lgl_xml_get_prop_string (xmlNodePtr node, - const gchar *property, - const gchar *default_val); - -Return value of property as a string. - - -node : - the libxml2 xmlNodePtr of the node - -property : - the property name - -default_val : - a default value to return if property not found - -Returns : the property as a pointer to a gchar string. This string should - be freed with g_free(). - - - - -lgl_xml_get_prop_i18n_string () -lgl_xml_get_prop_i18n_stringgchar * lgl_xml_get_prop_i18n_string (xmlNodePtr node, - const gchar *property, - const gchar *default_val); - -Return value of a translatable property as a string. - - -node : - the libxml2 xmlNodePtr of the node - -property : - the property name - -default_val : - a default value to return if property not found - -Returns : the property as a pointer to a gchar string. This string should - be freed with g_free(). - - - - -lgl_xml_get_prop_double () -lgl_xml_get_prop_doublegdouble lgl_xml_get_prop_double (xmlNodePtr node, - const gchar *property, - gdouble default_val); - -Return value of property as a double. - - -node : - the libxml2 xmlNodePtr of the node - -property : - the property name - -default_val : - a default value to return if property not found - -Returns : the property as a double. - - - - -lgl_xml_get_prop_boolean () -lgl_xml_get_prop_booleangboolean lgl_xml_get_prop_boolean (xmlNodePtr node, - const gchar *property, - gboolean default_val); - -Return value of property as a boolean. - - -node : - the libxml2 xmlNodePtr of the node - -property : - the property name - -default_val : - a default value to return if property not found - -Returns : the property as a boolean. - - - - -lgl_xml_get_prop_int () -lgl_xml_get_prop_intgint lgl_xml_get_prop_int (xmlNodePtr node, - const gchar *property, - gint default_val); - -Return value of property as an integer. - - -node : - the libxml2 xmlNodePtr of the node - -property : - the property name - -default_val : - a default value to return if property not found - -Returns : the property as an integer. - - - - -lgl_xml_get_prop_uint () -lgl_xml_get_prop_uintguint lgl_xml_get_prop_uint (xmlNodePtr node, - const gchar *property, - guint default_val); - -Return value of property (usually formatted in hex) as an unsigned integer. - - -node : - the libxml2 xmlNodePtr of the node - -property : - the property name - -default_val : - a default value to return if property not found - -Returns : the property as an unsigned integer. - - - - -lgl_xml_get_prop_length () -lgl_xml_get_prop_lengthgdouble lgl_xml_get_prop_length (xmlNodePtr node, - const gchar *property, - gdouble default_val); - -Return value of a length property as a double, converting to internal -units (points). The property is expected to be formatted as a number -followed by a units string. If there is no units string, the length -is assumed to be in points. Valid units strings are "pt" for points, -"in" for inches, "mm" for millimeters, "cm" for centimeters, and -"pc" for picas. - - -node : - the libxml2 xmlNodePtr of the node - -property : - the property name - -default_val : - a default value to return if property not found - -Returns : the length in points. - - - - -lgl_xml_set_prop_string () -lgl_xml_set_prop_stringvoid lgl_xml_set_prop_string (xmlNodePtr node, - const gchar *property, - const gchar *val); - -Set a property from a string. - - -node : - the libxml2 xmlNodePtr of the node - -property : - the property name - -val : - the value to set - - - -lgl_xml_set_prop_double () -lgl_xml_set_prop_doublevoid lgl_xml_set_prop_double (xmlNodePtr node, - const gchar *property, - gdouble val); - -Set a property from a double. - - -node : - the libxml2 xmlNodePtr of the node - -property : - the property name - -val : - the value to set - - - -lgl_xml_set_prop_boolean () -lgl_xml_set_prop_booleanvoid lgl_xml_set_prop_boolean (xmlNodePtr node, - const gchar *property, - gboolean val); - -Set a property from a boolean. - - -node : - the libxml2 xmlNodePtr of the node - -property : - the property name - -val : - the value to set - - - -lgl_xml_set_prop_int () -lgl_xml_set_prop_intvoid lgl_xml_set_prop_int (xmlNodePtr node, - const gchar *property, - gint val); - -Set a property from an integer. - - -node : - the libxml2 xmlNodePtr of the node - -property : - the property name - -val : - the value to set - - - -lgl_xml_set_prop_uint_hex () -lgl_xml_set_prop_uint_hexvoid lgl_xml_set_prop_uint_hex (xmlNodePtr node, - const gchar *property, - guint val); - -Set a property from an unsigned integer and format in hex. - - -node : - the libxml2 xmlNodePtr of the node - -property : - the property name - -val : - the value to set - - - -lgl_xml_set_prop_length () -lgl_xml_set_prop_lengthvoid lgl_xml_set_prop_length (xmlNodePtr node, - const gchar *property, - gdouble val); - -Set a property from a length, performing any necessary conversion. -Length properties are formatted as a number followed by a units string. -The units of the formatted property is determined by the most recent call to -lgl_xml_set_default_units(). - - -node : - the libxml2 xmlNodePtr of the node - -property : - the property name - -val : - the length to set in internal units (points) - - - -lgl_xml_is_node () -lgl_xml_is_nodegboolean lgl_xml_is_node (xmlNodePtr node, - const gchar *name); - -Test if a node name matches given name. - - -node : - the libxml2 xmlNodePtr of the node - -name : - the node name - -Returns : TRUE if the name of the node matches. Otherwise FALSE. - - - - -lgl_xml_get_node_content () -lgl_xml_get_node_contentgchar * lgl_xml_get_node_content (xmlNodePtr node); - -Get the content of a node. - - -node : - the libxml2 xmlNodePtr of the node - -Returns : the property as a pointer to a gchar string. This string should - be freed with g_free(). - - - -lgl_xml_set_default_units () -lgl_xml_set_default_unitsvoid lgl_xml_set_default_units (lglUnitsType units); - -Set the default units when formatting lengths. See -lgl_xml_set_prop_length(). - - -units : - default units selection (lglUnitsType) - - - - - - - - - diff --git a/docs/libglbarcode/Makefile.am b/docs/libglbarcode/Makefile.am new file mode 100644 index 00000000..1bed761a --- /dev/null +++ b/docs/libglbarcode/Makefile.am @@ -0,0 +1,73 @@ +## Process this file with automake to produce Makefile.in + +# We require automake 1.6 at least. +AUTOMAKE_OPTIONS = 1.6 + +# This is a blank Makefile.am for using gtk-doc. +# Copy this to your project's API docs directory and modify the variables to +# suit your project. See the GTK+ Makefiles in gtk+/docs/reference for examples +# of using the various options. + +# The name of the module, e.g. 'glib'. +DOC_MODULE=libglbarcode-3.0 + +# The top-level SGML file. You can change this if you want to. +DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.sgml + +# The directory containing the source code. Relative to $(srcdir). +# gtk-doc will search all .c & .h files beneath here for inline comments +# documenting the functions and macros. +# e.g. DOC_SOURCE_DIR=../../../gtk +DOC_SOURCE_DIR=../../libglbarcode + +# Extra options to pass to gtkdoc-scangobj. Not normally needed. +SCANGOBJ_OPTIONS= + +# Extra options to supply to gtkdoc-scan. +# e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED" +SCAN_OPTIONS= + +# Extra options to supply to gtkdoc-mkdb. +# e.g. MKDB_OPTIONS=--sgml-mode --output-format=xml +MKDB_OPTIONS=--sgml-mode --output-format=xml + +# Extra options to supply to gtkdoc-fixref. Not normally needed. +# e.g. FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html +FIXXREF_OPTIONS= + +# Used for dependencies. The docs will be rebuilt if any of these change. +# e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h +# e.g. CFILE_GLOB=$(top_srcdir)/gtk/*.c +HFILE_GLOB= +CFILE_GLOB= + +# Header files to ignore when scanning. +# e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h +IGNORE_HFILES= \ + lgl-barcode-code39.h \ + lgl-barcode-onecode.h \ + lgl-barcode-postnet.h + +# Images to copy into HTML directory. +# e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png +HTML_IMAGES= + +# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE). +# e.g. content_files=running.sgml building.sgml changes-2.0.sgml +content_files= \ + intro.sgml + +# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library. +# Only needed if you are using gtkdoc-scangobj to dynamically query widget +# signals and properties. +# e.g. INCLUDES=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS) +# e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib) +INCLUDES= +GTKDOC_LIBS= + +# This includes the standard gtk-doc make rules, copied by gtkdocize. +include $(top_srcdir)/gtk-doc.make + +# Other files to distribute +# e.g. EXTRA_DIST += version.xml.in +EXTRA_DIST += diff --git a/docs/libglbarcode/Makefile.in b/docs/libglbarcode/Makefile.in new file mode 100644 index 00000000..e791d557 --- /dev/null +++ b/docs/libglbarcode/Makefile.in @@ -0,0 +1,754 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# -*- mode: makefile -*- + +#################################### +# Everything below here is generic # +#################################### +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ + $(top_srcdir)/gtk-doc.make +subdir = docs/libglbarcode +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ +SOURCES = +DIST_SOURCES = +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ALL_LINGUAS = @ALL_LINGUAS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CAIRO_REQUIRED = @CAIRO_REQUIRED@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATADIRNAME = @DATADIRNAME@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@ +DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ +DLLTOOL = @DLLTOOL@ +DOC_USER_FORMATS = @DOC_USER_FORMATS@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GDK_PIXBUF_CSOURCE = @GDK_PIXBUF_CSOURCE@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GLABELS_BRANCH = @GLABELS_BRANCH@ +GLABELS_CFLAGS = @GLABELS_CFLAGS@ +GLABELS_LIBS = @GLABELS_LIBS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ +GLIB_REQUIRED = @GLIB_REQUIRED@ +GMOFILES = @GMOFILES@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTKDOC_MKPDF = @GTKDOC_MKPDF@ +GTKDOC_REBASE = @GTKDOC_REBASE@ +GTK_REQUIRED = @GTK_REQUIRED@ +GTK_UPDATE_ICON_CACHE = @GTK_UPDATE_ICON_CACHE@ +HELP_DIR = @HELP_DIR@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INSTOBJEXT = @INSTOBJEXT@ +INTLLIBS = @INTLLIBS@ +INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ +INTLTOOL_MERGE = @INTLTOOL_MERGE@ +INTLTOOL_PERL = @INTLTOOL_PERL@ +INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBBARCODE_CFLAGS = @LIBBARCODE_CFLAGS@ +LIBBARCODE_LIBS = @LIBBARCODE_LIBS@ +LIBBARCODE_REQUIRED = @LIBBARCODE_REQUIRED@ +LIBEBOOK_CFLAGS = @LIBEBOOK_CFLAGS@ +LIBEBOOK_LIBS = @LIBEBOOK_LIBS@ +LIBEBOOK_REQUIRED = @LIBEBOOK_REQUIRED@ +LIBGLABELS_API_VERSION = @LIBGLABELS_API_VERSION@ +LIBGLABELS_BRANCH = @LIBGLABELS_BRANCH@ +LIBGLABELS_CFLAGS = @LIBGLABELS_CFLAGS@ +LIBGLABELS_LIBS = @LIBGLABELS_LIBS@ +LIBGLBARCODE_API_VERSION = @LIBGLBARCODE_API_VERSION@ +LIBGLBARCODE_BRANCH = @LIBGLBARCODE_BRANCH@ +LIBGLBARCODE_CFLAGS = @LIBGLBARCODE_CFLAGS@ +LIBGLBARCODE_LIBS = @LIBGLBARCODE_LIBS@ +LIBIEC16022_CFLAGS = @LIBIEC16022_CFLAGS@ +LIBIEC16022_LIBS = @LIBIEC16022_LIBS@ +LIBIEC16022_REQUIRED = @LIBIEC16022_REQUIRED@ +LIBOBJS = @LIBOBJS@ +LIBQRENCODE_CFLAGS = @LIBQRENCODE_CFLAGS@ +LIBQRENCODE_LIBS = @LIBQRENCODE_LIBS@ +LIBQRENCODE_REQUIRED = @LIBQRENCODE_REQUIRED@ +LIBRSVG_REQUIRED = @LIBRSVG_REQUIRED@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBXML_REQUIRED = @LIBXML_REQUIRED@ +LIBZINT_CFLAGS = @LIBZINT_CFLAGS@ +LIBZINT_LIBS = @LIBZINT_LIBS@ +LIBZINT_REQUIRED = @LIBZINT_REQUIRED@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MSGFMT = @MSGFMT@ +MSGFMT_OPTS = @MSGFMT_OPTS@ +MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OMF_DIR = @OMF_DIR@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PANGO_REQUIRED = @PANGO_REQUIRED@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +POFILES = @POFILES@ +POSUB = @POSUB@ +PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ +PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +WARN_CFLAGS = @WARN_CFLAGS@ +XGETTEXT = @XGETTEXT@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ + +# We require automake 1.6 at least. +AUTOMAKE_OPTIONS = 1.6 + +# This is a blank Makefile.am for using gtk-doc. +# Copy this to your project's API docs directory and modify the variables to +# suit your project. See the GTK+ Makefiles in gtk+/docs/reference for examples +# of using the various options. + +# The name of the module, e.g. 'glib'. +DOC_MODULE = libglbarcode-3.0 + +# The top-level SGML file. You can change this if you want to. +DOC_MAIN_SGML_FILE = $(DOC_MODULE)-docs.sgml + +# The directory containing the source code. Relative to $(srcdir). +# gtk-doc will search all .c & .h files beneath here for inline comments +# documenting the functions and macros. +# e.g. DOC_SOURCE_DIR=../../../gtk +DOC_SOURCE_DIR = ../../libglbarcode + +# Extra options to pass to gtkdoc-scangobj. Not normally needed. +SCANGOBJ_OPTIONS = + +# Extra options to supply to gtkdoc-scan. +# e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED" +SCAN_OPTIONS = + +# Extra options to supply to gtkdoc-mkdb. +# e.g. MKDB_OPTIONS=--sgml-mode --output-format=xml +MKDB_OPTIONS = --sgml-mode --output-format=xml + +# Extra options to supply to gtkdoc-fixref. Not normally needed. +# e.g. FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html +FIXXREF_OPTIONS = + +# Used for dependencies. The docs will be rebuilt if any of these change. +# e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h +# e.g. CFILE_GLOB=$(top_srcdir)/gtk/*.c +HFILE_GLOB = +CFILE_GLOB = + +# Header files to ignore when scanning. +# e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h +IGNORE_HFILES = \ + lgl-barcode-code39.h \ + lgl-barcode-onecode.h \ + lgl-barcode-postnet.h + + +# Images to copy into HTML directory. +# e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png +HTML_IMAGES = + +# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE). +# e.g. content_files=running.sgml building.sgml changes-2.0.sgml +content_files = \ + intro.sgml + + +# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library. +# Only needed if you are using gtkdoc-scangobj to dynamically query widget +# signals and properties. +# e.g. INCLUDES=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS) +# e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib) +INCLUDES = +GTKDOC_LIBS = +@GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_CC = $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +@GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +@GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_LD = $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) +@GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) +@GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_RUN = +@GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_RUN = $(LIBTOOL) --mode=execute + +# We set GPATH here; this gives us semantics for GNU make +# which are more like other make's VPATH, when it comes to +# whether a source that is a target of one rule is then +# searched for in VPATH/GPATH. +# +GPATH = $(srcdir) +TARGET_DIR = $(HTML_DIR)/$(DOC_MODULE) +SETUP_FILES = \ + $(content_files) \ + $(DOC_MAIN_SGML_FILE) \ + $(DOC_MODULE)-sections.txt \ + $(DOC_MODULE)-overrides.txt + + +# This includes the standard gtk-doc make rules, copied by gtkdocize. + +# Other files to distribute +# e.g. EXTRA_DIST += version.xml.in +EXTRA_DIST = $(SETUP_FILES) +DOC_STAMPS = setup-build.stamp scan-build.stamp tmpl-build.stamp sgml-build.stamp \ + html-build.stamp pdf-build.stamp \ + setup.stamp tmpl.stamp sgml.stamp html.stamp pdf.stamp + +SCANOBJ_FILES = \ + $(DOC_MODULE).args \ + $(DOC_MODULE).hierarchy \ + $(DOC_MODULE).interfaces \ + $(DOC_MODULE).prerequisites \ + $(DOC_MODULE).signals + +REPORT_FILES = \ + $(DOC_MODULE)-undocumented.txt \ + $(DOC_MODULE)-undeclared.txt \ + $(DOC_MODULE)-unused.txt + +CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) +@ENABLE_GTK_DOC_TRUE@@GTK_DOC_BUILD_HTML_FALSE@HTML_BUILD_STAMP = +@ENABLE_GTK_DOC_TRUE@@GTK_DOC_BUILD_HTML_TRUE@HTML_BUILD_STAMP = html-build.stamp +@ENABLE_GTK_DOC_TRUE@@GTK_DOC_BUILD_PDF_FALSE@PDF_BUILD_STAMP = +@ENABLE_GTK_DOC_TRUE@@GTK_DOC_BUILD_PDF_TRUE@PDF_BUILD_STAMP = pdf-build.stamp +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/gtk-doc.make $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/libglbarcode/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/libglbarcode/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$(top_distdir)" distdir="$(distdir)" \ + dist-hook +check-am: all-am +check: check-am +all-am: Makefile all-local +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-local mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-local + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-data-local + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic \ + maintainer-clean-local + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-local + +.MAKE: install-am install-strip + +.PHONY: all all-am all-local check check-am clean clean-generic \ + clean-libtool clean-local dist-hook distclean \ + distclean-generic distclean-libtool distclean-local distdir \ + dvi dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-data-local install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic \ + maintainer-clean-local mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \ + uninstall-local + + +@ENABLE_GTK_DOC_TRUE@all-local: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP) +@ENABLE_GTK_DOC_FALSE@all-local: + +docs: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP) + +$(REPORT_FILES): sgml-build.stamp + +#### setup #### + +setup-build.stamp: + -@if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ + echo 'gtk-doc: Preparing build'; \ + files=`echo $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types`; \ + if test "x$$files" != "x" ; then \ + for file in $$files ; do \ + test -f $(abs_srcdir)/$$file && \ + cp -p $(abs_srcdir)/$$file $(abs_builddir)/; \ + done \ + fi; \ + test -f $(abs_srcdir)/tmpl && \ + cp -rp $(abs_srcdir)/tmpl $(abs_builddir)/; \ + fi + @touch setup-build.stamp + +setup.stamp: setup-build.stamp + @true + +#### scan #### + +scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB) + @echo 'gtk-doc: Scanning header files' + @_source_dir='' ; \ + for i in $(DOC_SOURCE_DIR) ; do \ + _source_dir="$${_source_dir} --source-dir=$$i" ; \ + done ; \ + gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES) + @if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \ + CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" gtkdoc-scangobj $(SCANGOBJ_OPTIONS) --module=$(DOC_MODULE) ; \ + else \ + for i in $(SCANOBJ_FILES) ; do \ + test -f $$i || touch $$i ; \ + done \ + fi + @touch scan-build.stamp + +$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp + @true + +#### templates #### + +tmpl-build.stamp: setup.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt + @echo 'gtk-doc: Rebuilding template files' + @gtkdoc-mktmpl --module=$(DOC_MODULE) $(MKTMPL_OPTIONS) + @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ + if test -w $(abs_srcdir) ; then \ + cp -rp $(abs_builddir)/tmpl $(abs_srcdir)/; \ + fi \ + fi + @touch tmpl-build.stamp + +tmpl.stamp: tmpl-build.stamp + @true + +$(srcdir)/tmpl/*.sgml: + @true + +#### xml #### + +sgml-build.stamp: tmpl.stamp $(DOC_MODULE)-sections.txt $(srcdir)/tmpl/*.sgml $(expand_content_files) + @echo 'gtk-doc: Building XML' + @-chmod -R u+w $(srcdir) + @_source_dir='' ; \ + for i in $(DOC_SOURCE_DIR) ; do \ + _source_dir="$${_source_dir} --source-dir=$$i" ; \ + done ; \ + gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS) + @touch sgml-build.stamp + +sgml.stamp: sgml-build.stamp + @true + +#### html #### + +html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) + @echo 'gtk-doc: Building HTML' + @rm -rf html + @mkdir html + @mkhtml_options=""; \ + gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-path"; \ + if test "$(?)" = "0"; then \ + mkhtml_options=--path="$(abs_srcdir)"; \ + fi; \ + cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) + -@test "x$(HTML_IMAGES)" = "x" || \ + for file in $(HTML_IMAGES) ; do \ + if test -f $(abs_srcdir)/$$file ; then \ + cp $(abs_srcdir)/$$file $(abs_builddir)/html; \ + fi; \ + if test -f $(abs_builddir)/$$file ; then \ + cp $(abs_builddir)/$$file $(abs_builddir)/html; \ + fi; \ + done; + @echo 'gtk-doc: Fixing cross-references' + @gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) + @touch html-build.stamp + +#### pdf #### + +pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) + @echo 'gtk-doc: Building PDF' + @rm -rf $(DOC_MODULE).pdf + @mkpdf_imgdirs=""; \ + if test "x$(HTML_IMAGES)" != "x"; then \ + for img in $(HTML_IMAGES); do \ + part=`dirname $$img`; \ + echo $$mkpdf_imgdirs | grep >/dev/null "\-\-imgdir=$$part "; \ + if test $$? != 0; then \ + mkpdf_imgdirs="$$mkpdf_imgdirs --imgdir=$$part"; \ + fi; \ + done; \ + fi; \ + gtkdoc-mkpdf --path="$(abs_srcdir)" $$mkpdf_imgdirs $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS) + @touch pdf-build.stamp + +############## + +clean-local: + rm -f *~ *.bak + rm -rf .libs + +distclean-local: + rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \ + $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt + if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ + rm -f $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types; \ + rm -rf tmpl; \ + fi + +maintainer-clean-local: clean + rm -rf xml html + +install-data-local: + @installfiles=`echo $(srcdir)/html/*`; \ + if test "$$installfiles" = '$(srcdir)/html/*'; \ + then echo '-- Nothing to install' ; \ + else \ + if test -n "$(DOC_MODULE_VERSION)"; then \ + installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ + else \ + installdir="$(DESTDIR)$(TARGET_DIR)"; \ + fi; \ + $(mkinstalldirs) $${installdir} ; \ + for i in $$installfiles; do \ + echo '-- Installing '$$i ; \ + $(INSTALL_DATA) $$i $${installdir}; \ + done; \ + if test -n "$(DOC_MODULE_VERSION)"; then \ + mv -f $${installdir}/$(DOC_MODULE).devhelp2 \ + $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp2; \ + mv -f $${installdir}/$(DOC_MODULE).devhelp \ + $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp; \ + fi; \ + $(GTKDOC_REBASE) --relative --dest-dir=$(DESTDIR) --html-dir=$${installdir}; \ + fi + +uninstall-local: + @if test -n "$(DOC_MODULE_VERSION)"; then \ + installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ + else \ + installdir="$(DESTDIR)$(TARGET_DIR)"; \ + fi; \ + rm -rf $${installdir} + +# +# Require gtk-doc when making dist +# +@ENABLE_GTK_DOC_TRUE@dist-check-gtkdoc: +@ENABLE_GTK_DOC_FALSE@dist-check-gtkdoc: +@ENABLE_GTK_DOC_FALSE@ @echo "*** gtk-doc must be installed and enabled in order to make dist" +@ENABLE_GTK_DOC_FALSE@ @false + +dist-hook: dist-check-gtkdoc dist-hook-local + mkdir $(distdir)/tmpl + mkdir $(distdir)/html + -cp $(build)/tmpl/*.sgml $(distdir)/tmpl + cp $(builddir)/html/* $(distdir)/html + -cp $(builddir)/$(DOC_MODULE).pdf $(distdir)/ + -cp $(build)/$(DOC_MODULE).types $(distdir)/ + -cp $(build)/$(DOC_MODULE)-sections.txt $(distdir)/ + cd $(distdir) && rm -f $(DISTCLEANFILES) + $(GTKDOC_REBASE) --online --relative --html-dir=$(distdir)/html + +.PHONY : dist-hook-local docs + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/docs/libglbarcode/html/api.html b/docs/libglbarcode/html/api.html new file mode 100644 index 00000000..b36b5467 --- /dev/null +++ b/docs/libglbarcode/html/api.html @@ -0,0 +1,44 @@ + + + + +API Reference + + + + + + + + + + + + + + + + +
    +

    +API Reference

    +
    +
    +lglBarcode — Barcode structure +
    +
    +Barcode Factory — Basic end-user barcode creation API +
    +
    +Cairo Renderer — Render barcode to cairo context +
    +
    +Barcode Types — Enumeration of supported barcode types +
    +
    +
    + + + \ No newline at end of file diff --git a/docs/libglbarcode/html/home.png b/docs/libglbarcode/html/home.png new file mode 100644 index 0000000000000000000000000000000000000000..17003611d9df2b066afc682cbde962f3a575002d GIT binary patch literal 654 zcmV;90&)F`P)~yY zO1cF+0vxb!W?!x?K+*#62Jq)nA4q`)5S6sgX4ao{=)(Mgq+YMr)7sjak|a^9)zS!j zlk{-n29mabXYF=7SYBQx&vO8xC}MYams+hxqtO7sImhPaCf@rq;I^3!#u*2aUP)55 zT2&N90xmEJ0s&fGT~(T<3d2xYmK9C>IP*x-M@ib*+0pFm>>uW37N2Wzaq-fCnIZE9 zpb8}0+uN+KuQM2oZVHfP8U6kQdo3?>Wo2dT)WeM9So8DqhLi#T0 z-i(>mfjhvbsYV`;4sgfJ-p>G-SqJ!fjR6BQYs1h*y9xaN0l{VB;o%`08yiy@)$8@~ z2PD1gcDuiy;j1tR0v#V8OH%W)25-YKyx(j#IXO9*YWf0mb8}QG6@b@;cHxh9{t7+@ o!Yd`f8L$sLH?yBt^q3C6015TtIu@BS5dZ)H07*qoM6N<$f*igdr~m)} literal 0 HcmV?d00001 diff --git a/docs/libglbarcode/html/index.html b/docs/libglbarcode/html/index.html new file mode 100644 index 00000000..ad28989f --- /dev/null +++ b/docs/libglbarcode/html/index.html @@ -0,0 +1,46 @@ + + + + +LibGlbarcode 3.0 Reference Manual + + + + + + + +
    +
    +
    +
    +
    +
    +
    LibGlbarcode Overview
    +
    +Introduction — +Introduction to libglbarcode library + +
    +
    API Reference
    +
    +
    +lglBarcode — Barcode structure +
    +
    +Barcode Factory — Basic end-user barcode creation API +
    +
    +Cairo Renderer — Render barcode to cairo context +
    +
    +Barcode Types — Enumeration of supported barcode types +
    +
    +
    +
    + + + \ No newline at end of file diff --git a/docs/libglbarcode/html/index.sgml b/docs/libglbarcode/html/index.sgml new file mode 100644 index 00000000..d7129617 --- /dev/null +++ b/docs/libglbarcode/html/index.sgml @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/libglbarcode/html/left.png b/docs/libglbarcode/html/left.png new file mode 100644 index 0000000000000000000000000000000000000000..2d05b3d5b4aeec9384bbfe404bfc4ed0897051c4 GIT binary patch literal 459 zcmV;+0W|)JP)40xL?wO*>WZ(J#ML5j2<9jD6A%Q&kC}jOeEc;X{s;`zcnxLeZR6?6h#^ihmNF6NpGdilO$m<82oD9WQ|6nVv1`? z>KufRi{?QPXg;4;wroQu4?mN1Ydd@|kaQ|ZyWLK!)yi7Wb%=0{}lD)tfliHAUyWRQ+fD_;aV6j->y6!O_8bENg + + + +Barcode Factory + + + + + + + + + + + + + + + + + + + +
    +
    +
    + + +
    +

    Barcode Factory

    +

    Barcode Factory — Basic end-user barcode creation API

    +
    +
    +

    Synopsis

    +
    +#include <libglbarcode/lgl-barcode-create.h>
    +
    +lglBarcode *        lgl_barcode_create                  (lglBarcodeType type,
    +                                                         gboolean text_flag,
    +                                                         gboolean checksum_flag,
    +                                                         gdouble w,
    +                                                         gdouble h,
    +                                                         const gchar *data);
    +
    +
    +
    +

    Description

    +

    +This section describes a simple API to select and create glBarcode structures using a built-in +barcode backend. +

    +
    +
    +

    Details

    +
    +

    lgl_barcode_create ()

    +
    lglBarcode *        lgl_barcode_create                  (lglBarcodeType type,
    +                                                         gboolean text_flag,
    +                                                         gboolean checksum_flag,
    +                                                         gdouble w,
    +                                                         gdouble h,
    +                                                         const gchar *data);
    +

    +Create a new barcode structure, encoding data with selected barcode type and +characteristics. +

    +

    +Barcode dimensions (w and h) are in points ( 1 point = 1/72 inch ). +If either w or h are zero, the barcode will be rendered in a nominal size +appropriate for the barcode type and data. The actual size of the resulting +barcode may also be limited by required tolerances of line sizes and spacing +for the given barcode type. +

    +
    ++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    type :

    Barcode type selection (lglBarcodeType)

    text_flag :

    +TRUE to show text, if supported by barcode type

    checksum_flag :

    +TRUE to include checksum, if supported or optional for barcode type

    w :

    Suggested width of barcode

    h :

    Suggested height of barcode

    data :

    Data to encode into barcode

    Returns :

    A newly allocated lglBarcode structure. Use lgl_barcode_free() to +free it.
    +
    +
    +
    + + + \ No newline at end of file diff --git a/docs/libglbarcode/html/libglbarcode-3.0-lgl-barcode-render-to-cairo.html b/docs/libglbarcode/html/libglbarcode-3.0-lgl-barcode-render-to-cairo.html new file mode 100644 index 00000000..a5010d10 --- /dev/null +++ b/docs/libglbarcode/html/libglbarcode-3.0-lgl-barcode-render-to-cairo.html @@ -0,0 +1,117 @@ + + + + +Cairo Renderer + + + + + + + + + + + + + + + + + + + +
    +
    +
    + + +
    +

    Cairo Renderer

    +

    Cairo Renderer — Render barcode to cairo context

    +
    +
    +

    Synopsis

    +
    +#include <libglbarcode/lgl-barcode-render-to-cairo.h>
    +
    +void                lgl_barcode_render_to_cairo         (const lglBarcode *bc,
    +                                                         cairo_t *cr);
    +void                lgl_barcode_render_to_cairo_path    (const lglBarcode *bc,
    +                                                         cairo_t *cr);
    +
    +
    +
    +

    Description

    +

    +This section describes the cairo barcode renderer. +

    +
    +
    +

    Details

    +
    +

    lgl_barcode_render_to_cairo ()

    +
    void                lgl_barcode_render_to_cairo         (const lglBarcode *bc,
    +                                                         cairo_t *cr);
    +

    +Render barcode to cairo context. Context should be prepared with desired +translation and appropriate scale. Context should be translated such that +the origin is at the desired location of the upper left hand corner of the +barcode bounding box. Context should be scaled such that all dimensions +are in points ( 1 point = 1/72 inch ) and that positive y coordinates +go down the surface. +

    +
    ++ + + + + + + + + + +

    bc :

    An lglBarcode structure

    cr :

    A cairo_t context
    +
    +
    +
    +

    lgl_barcode_render_to_cairo_path ()

    +
    void                lgl_barcode_render_to_cairo_path    (const lglBarcode *bc,
    +                                                         cairo_t *cr);
    +

    +Render barcode to cairo context, but only create a path to be filled or +tested against. Context should be prepared with desired +translation and appropriate scale. Context should be translated such that +the origin is at the desired location of the upper left hand corner of the +barcode bounding box. Context should be scaled such that all dimensions +are in points ( 1 point = 1/72 inch ) and that positive y coordinates +go down the surface. +

    +
    ++ + + + + + + + + + +

    bc :

    An lglBarcode structure

    cr :

    A cairo_t context
    +
    +
    +
    + + + \ No newline at end of file diff --git a/docs/libglbarcode/html/libglbarcode-3.0-lgl-barcode-type.html b/docs/libglbarcode/html/libglbarcode-3.0-lgl-barcode-type.html new file mode 100644 index 00000000..463a60f3 --- /dev/null +++ b/docs/libglbarcode/html/libglbarcode-3.0-lgl-barcode-type.html @@ -0,0 +1,128 @@ + + + + +Barcode Types + + + + + + + + + + + + + + + + + + +
    +
    +
    + + +
    +

    Barcode Types

    +

    Barcode Types — Enumeration of supported barcode types

    +
    +
    +

    Synopsis

    +
    +#include <libglbarcode/lgl-barcode-type.h>
    +
    +enum                lglBarcodeType;
    +
    +
    +
    +

    Description

    +

    +This section describes an enumeration for selecting one of the barcode types supported by libglbarcode. +

    +
    +
    +

    Details

    +
    +

    enum lglBarcodeType

    +
    typedef enum {
    +
    +        LGL_BARCODE_TYPE_POSTNET,        /* USPS Postnet Barcode (5, 9, or 11 digits) */
    +        LGL_BARCODE_TYPE_POSTNET_5,      /* USPS Postnet Barcode (5 digits) */
    +        LGL_BARCODE_TYPE_POSTNET_9,      /* USPS Postnet Barcode (9 digits) */
    +        LGL_BARCODE_TYPE_POSTNET_11,     /* USPS Postnet Barcode (11 digits) */
    +        LGL_BARCODE_TYPE_CEPNET,         /* Brazilian Postal Code */
    +
    +        LGL_BARCODE_TYPE_ONECODE,        /* USPS Intelligent Mail Barcode */
    +
    +        LGL_BARCODE_TYPE_CODE39,         /* Code 39 */
    +        LGL_BARCODE_TYPE_CODE39_EXT,     /* Extended Code 39 (Supports full ASCII character set) */
    +
    +        /*< private >*/
    +        LGL_BARCODE_N_TYPES
    +
    +} lglBarcodeType;
    +
    +

    +This enumeration is used to select a built-in barcode type. The currently supported barcode types are +

    +
    ++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    LGL_BARCODE_TYPE_POSTNET

    USPS Postnet Barcode (5, 9, or 11 digits) +

    LGL_BARCODE_TYPE_POSTNET_5

    USPS Postnet Barcode (5 digits) +

    LGL_BARCODE_TYPE_POSTNET_9

    USPS Postnet Barcode (9 digits) +

    LGL_BARCODE_TYPE_POSTNET_11

    USPS Postnet Barcode (11 digits) +

    LGL_BARCODE_TYPE_CEPNET

    Brazilian Postal Code +

    LGL_BARCODE_TYPE_ONECODE

    USPS Intelligent Mail Barcode +

    LGL_BARCODE_TYPE_CODE39

    Code 39 +

    LGL_BARCODE_TYPE_CODE39_EXT

    Extended Code 39 (Supports full ASCII character set) +
    +
    +
    +
    + + + \ No newline at end of file diff --git a/docs/libglbarcode/html/libglbarcode-3.0-lgl-barcode.html b/docs/libglbarcode/html/libglbarcode-3.0-lgl-barcode.html new file mode 100644 index 00000000..b0170931 --- /dev/null +++ b/docs/libglbarcode/html/libglbarcode-3.0-lgl-barcode.html @@ -0,0 +1,923 @@ + + + + +lglBarcode + + + + + + + + + + + + + + + + + + + +
    +
    +
    + + +
    +

    lglBarcode

    +

    lglBarcode — Barcode structure

    +
    +
    +

    Synopsis

    +
    +#include <libglbarcode/lgl-barcode.h>
    +
    +                    lglBarcode;
    +
    +lglBarcode *        lgl_barcode_new                     (void);
    +void                lgl_barcode_free                    (lglBarcode *bc);
    +
    +enum                lglBarcodeShapeType;
    +                    lglBarcodeShape;
    +                    lglBarcodeShapeAny;
    +                    lglBarcodeShapeLine;
    +                    lglBarcodeShapeBox;
    +                    lglBarcodeShapeChar;
    +                    lglBarcodeShapeString;
    +                    lglBarcodeShapeRing;
    +                    lglBarcodeShapeHexagon;
    +
    +void                lgl_barcode_add_line                (lglBarcode *bc,
    +                                                         gdouble x,
    +                                                         gdouble y,
    +                                                         gdouble length,
    +                                                         gdouble width);
    +void                lgl_barcode_add_box                 (lglBarcode *bc,
    +                                                         gdouble x,
    +                                                         gdouble y,
    +                                                         gdouble width,
    +                                                         gdouble height);
    +void                lgl_barcode_add_char                (lglBarcode *bc,
    +                                                         gdouble x,
    +                                                         gdouble y,
    +                                                         gdouble fsize,
    +                                                         gchar c);
    +void                lgl_barcode_add_string              (lglBarcode *bc,
    +                                                         gdouble x,
    +                                                         gdouble y,
    +                                                         gdouble fsize,
    +                                                         gchar *string,
    +                                                         gsize length);
    +void                lgl_barcode_add_ring                (lglBarcode *bc,
    +                                                         gdouble x,
    +                                                         gdouble y,
    +                                                         gdouble radius,
    +                                                         gdouble line_width);
    +void                lgl_barcode_add_hexagon             (lglBarcode *bc,
    +                                                         gdouble x,
    +                                                         gdouble y,
    +                                                         gdouble height);
    +
    +
    +
    +

    Description

    +

    +This section describes the lglBarcode structure and the lglBarcodeShape family of simple drawing primitives. +These structures form the basic intermediate barcode representation used by libglbarcode. +The section also defines a set of functions for constructing an lglBarcode structure and populating it with drawing primitives. +

    +
    +
    +

    Details

    +
    +

    lglBarcode

    +
    typedef struct {
    +        gdouble  width;
    +        gdouble  height;
    +
    +        GList   *shapes;    /* List of lglBarcodeShape drawing primitives */
    +} lglBarcode;
    +
    +

    +This structure contains the libglbarcode intermediate barcode format. This +structure contains a simple vectorized representation of the barcode. This +vectorized representation is easy to interpret by a rendering backend for +either vector or raster formats. A simple API is provided for constructing +barcodes in this format. +

    +
    ++ + + + + + + + + + + + + + +

    gdouble width;

    Width of barcode bounding box (points)

    gdouble height;

    Height of barcode bounding box (points)

    GList *shapes;

    List of lglBarcodeShape drawing primitives
    +
    +
    +
    +

    lgl_barcode_new ()

    +
    lglBarcode *        lgl_barcode_new                     (void);
    +

    +Allocate a new lglBarcode structure. +

    +

    +This function allocates a new lglBarcode structure. +

    +

    +

    +
    +

    Note

    +

    + This function is intended to be used internally by barcode implementations. + Typically an end-user would use lgl_barcode_create() instead. +

    +
    +

    +

    +
    ++ + + + +

    Returns :

    A newly allocated lglBarcode structure. Use lgl_barcode_free() to +free it.
    +
    +
    +
    +

    lgl_barcode_free ()

    +
    void                lgl_barcode_free                    (lglBarcode *bc);
    +

    +Free a previously allocated lglBarcode structure. +

    +
    ++ + + + +

    bc :

    The lglBarcode structure to free
    +
    +
    +
    +

    enum lglBarcodeShapeType

    +
    typedef enum {
    +        LGL_BARCODE_SHAPE_LINE,
    +        LGL_BARCODE_SHAPE_BOX,
    +        LGL_BARCODE_SHAPE_CHAR,
    +        LGL_BARCODE_SHAPE_STRING,
    +        LGL_BARCODE_SHAPE_RING,
    +        LGL_BARCODE_SHAPE_HEXAGON
    +} lglBarcodeShapeType;
    +
    +

    +

    +
    +
    +
    +

    lglBarcodeShape

    +
    typedef union {
    +
    +        lglBarcodeShapeType    type;
    +        lglBarcodeShapeAny     any;
    +
    +        lglBarcodeShapeLine    line;
    +        lglBarcodeShapeBox     box;
    +        lglBarcodeShapeChar    bchar;
    +        lglBarcodeShapeString  string;
    +        lglBarcodeShapeRing    ring;
    +        lglBarcodeShapeHexagon hexagon;
    +
    +} lglBarcodeShape;
    +
    +

    +

    +
    +
    +
    +

    lglBarcodeShapeAny

    +
    typedef struct {
    +        /* Begin Common Fields */
    +        lglBarcodeShapeType  type;
    +        gdouble              x;
    +        gdouble              y;
    +        /* End Common Fields */
    +} lglBarcodeShapeAny;
    +
    +

    +

    +
    +
    +
    +

    lglBarcodeShapeLine

    +
    typedef struct {
    +        /* Begin Common Fields */
    +        lglBarcodeShapeType  type; /* Always LGL_BARCODE_SHAPE_LINE. */
    +        gdouble              x;
    +        gdouble              y;
    +        /* End Common Fields */
    +
    +        gdouble              length;
    +        gdouble              width;
    +} lglBarcodeShapeLine;
    +
    +

    +A vertical line drawing primitive. +

    +

    +

    +
    +
    +@ =  origin (x,y) from top left corner of barcode
    +
    +             +--@--+
    +             |     |
    +             |     |
    +             |     |
    +             |     | length
    +             |     |
    +             |     |
    +             |     |
    +             +-----+
    +              width
    +
    +
    +

    +

    +

    +All units are in points ( 1 point = 1/72 inch ). +

    +
    ++ + + + + + + + + + + + + + + + + + + + + + +

    lglBarcodeShapeType type;

    Always LGL_BARCODE_SHAPE_LINE +

    gdouble x;

    x coordinate of top of line

    gdouble y;

    y coordinate of top of line

    gdouble length;

    Length of line

    gdouble width;

    Width of line
    +
    +
    +
    +

    lglBarcodeShapeBox

    +
    typedef struct {
    +        /* Begin Common Fields */
    +        lglBarcodeShapeType  type; /* Always LGL_BARCODE_SHAPE_BOX. */
    +        gdouble              x;
    +        gdouble              y;
    +        /* End Common Fields */
    +
    +        gdouble              width;
    +        gdouble              height;
    +} lglBarcodeShapeBox;
    +
    +

    +A solid box drawing primitive. +

    +

    +

    +
    +
    +@ =  origin (x,y) from top left corner of barcode
    +
    +             @---------+
    +             |         |
    +             |         |
    +             |         |
    +             |         | height
    +             |         |
    +             |         |
    +             |         |
    +             +---------+
    +                width
    +
    +
    +

    +

    +

    +All units are in points ( 1 point = 1/72 inch ). +

    +
    ++ + + + + + + + + + + + + + + + + + + + + + +

    lglBarcodeShapeType type;

    Always LGL_BARCODE_SHAPE_BOX +

    gdouble x;

    x coordinate of top left corner of box

    gdouble y;

    y coordinate of top left corner of box

    gdouble width;

    Width of box

    gdouble height;

    Height of box
    +
    +
    +
    +

    lglBarcodeShapeChar

    +
    typedef struct {
    +        /* Begin Common Fields */
    +        lglBarcodeShapeType  type; /* Always LGL_BARCODE_SHAPE_CHAR. */
    +        gdouble              x;
    +        gdouble              y;
    +        /* End Common Fields */
    +
    +        gdouble              fsize;
    +        gchar                c;
    +} lglBarcodeShapeChar;
    +
    +

    +An single byte character drawing primitive. +

    +

    +

    +
    +
    +@ =  origin (x,y) from top left corner of barcode
    +
    +             ____ ------------
    +            /    \           ^
    +           /  /\  \          |
    +          /  /__\  \         |
    +         /  ______  \        | ~fsize
    +        /  /      \  \       |
    +       /__/        \__\      |
    +                             v
    +      @ ----------------------
    +
    +
    +

    +

    +

    +All units are in points ( 1 point = 1/72 inch ). +

    +
    ++ + + + + + + + + + + + + + + + + + + + + + +

    lglBarcodeShapeType type;

    Always LGL_BARCODE_SHAPE_CHAR +

    gdouble x;

    x coordinate of left baseline of character

    gdouble y;

    y coordinate of left baseline of character

    gdouble fsize;

    Font size

    gchar c;

    Character to add
    +
    +
    +
    +

    lglBarcodeShapeString

    +
    typedef struct {
    +        /* Begin Common Fields */
    +        lglBarcodeShapeType  type; /* Always LGL_BARCODE_SHAPE_STRING. */
    +        gdouble              x;
    +        gdouble              y;
    +        /* End Common Fields */
    +
    +        gdouble              fsize;
    +        gchar               *string;
    +} lglBarcodeShapeString;
    +
    +

    +A character string drawing primitive. +

    +

    +

    +
    +
    +@ =  origin (x,y) from top left corner of barcode
    +
    +             ____        _  ------------------
    +            /    \      | |                  ^
    +           /  /\  \     | |                  |
    +          /  /__\  \    | |___     ____      |
    +         /  ______  \   | ._  \   /  __|     | ~fsize
    +        /  /      \  \  | |_)  | |  (__      |
    +       /__/        \__\ |_.___/   \____|     |
    +                                             v
    +                          @ ------------------
    +                          x = horizontal center
    +
    +
    +

    +

    +

    +All units are in points ( 1 point = 1/72 inch ). +

    +
    ++ + + + + + + + + + + + + + + + + + + + + + +

    lglBarcodeShapeType type;

    Always LGL_BARCODE_SHAPE_STRING +

    gdouble x;

    x coordinate of horizontal center of baseline of string

    gdouble y;

    y coordinate of horizontal center of baseline of string

    gdouble fsize;

    Font size

    gchar *string;

    String to add
    +
    +
    +
    +

    lglBarcodeShapeRing

    +
    typedef struct {
    +        /* Begin Common Fields */
    +        lglBarcodeShapeType  type; /* Always LGL_BARCODE_SHAPE_RING. */
    +        gdouble              x;
    +        gdouble              y;
    +        /* End Common Fields */
    +
    +        gdouble              radius;
    +        gdouble              line_width;
    +} lglBarcodeShapeRing;
    +
    +

    +A ring (an open circle) drawing primitive. +

    +

    +

    +
    +
    +@ = origin (x,y) is centre of circle
    +
    +               v  line_width
    +          _.-""""-._
    +        .'   ____   `.
    +       /   .'  ^ `.   \
    +      |   /        \   |
    +      |   |    @---|---|------
    +      |   \        /   |     ^
    +       \   `.____.'   /      | radius
    +        `._    ...._.'.......|
    +           `-....-'
    +
    +
    +

    +

    +

    +All units are in points ( 1 point = 1/72 inch ). +

    +
    ++ + + + + + + + + + + + + + + + + + + + + + +

    lglBarcodeShapeType type;

    Always LGL_BARCODE_SHAPE_RING +

    gdouble x;

    x coordinate of center of circle

    gdouble y;

    y coordinate of center of circle

    gdouble radius;

    Radius of ring (center of line)

    gdouble line_width;

    Width of line
    +
    +
    +
    +

    lglBarcodeShapeHexagon

    +
    typedef struct {
    +        /* Begin Common Fields */
    +        lglBarcodeShapeType  type; /* Always LGL_BARCODE_SHAPE_HEXAGON. */
    +        gdouble              x;
    +        gdouble              y;
    +        /* End Common Fields */
    +
    +        gdouble              height;
    +} lglBarcodeShapeHexagon;
    +
    +

    +A solid regular hexagon (oriented with vertexes at top and bottom) drawing primitive. +

    +

    +

    +
    +
    +@ = origin (x,y) is top of hexagon
    +
    +                 @ ------------------
    +             _-"   "-_              ^
    +         _-"           "-_          |
    +      +"                   "+       |
    +      |                     |       |
    +      |                     |       |
    +      |                     |       | height
    +      |                     |       |
    +      |                     |       |
    +      +_                   _+       |
    +        "-_             _-"         |
    +           "-_       _-"            |
    +              "-_ _-"               v
    +                 " ------------------
    +
    +
    +

    +

    +

    +All units are in points ( 1 point = 1/72 inch ). +

    +
    ++ + + + + + + + + + + + + + + + + + +

    lglBarcodeShapeType type;

    Always LGL_BARCODE_SHAPE_HEXAGON +

    gdouble x;

    x coordinate of top point of hexagon

    gdouble y;

    y coordinate of top point of hexagon

    gdouble height;

    Height of hexagon
    +
    +
    +
    +

    lgl_barcode_add_line ()

    +
    void                lgl_barcode_add_line                (lglBarcode *bc,
    +                                                         gdouble x,
    +                                                         gdouble y,
    +                                                         gdouble length,
    +                                                         gdouble width);
    +

    +Add a vertical line to barcode. Coordinates are relative to top left corner +of barcode. All units are in points ( 1 point = 1/72 inch ). +

    +

    +

    +
    +

    Note

    +

    + This function is intended to be used internally by barcode implementations. +

    +
    +

    +

    +
    ++ + + + + + + + + + + + + + + + + + + + + + +

    bc :

    An lglBarcode structure

    x :

    x coordinate of top of line

    y :

    y coordinate of top of line

    length :

    Length of line

    width :

    Width of line
    +
    +
    +
    +

    lgl_barcode_add_box ()

    +
    void                lgl_barcode_add_box                 (lglBarcode *bc,
    +                                                         gdouble x,
    +                                                         gdouble y,
    +                                                         gdouble width,
    +                                                         gdouble height);
    +

    +Add a box to barcode. Coordinates are relative to top left corner +of barcode. All units are in points ( 1 point = 1/72 inch ). +

    +

    +

    +
    +

    Note

    +

    + This function is intended to be used internally by barcode implementations. +

    +
    +

    +

    +
    ++ + + + + + + + + + + + + + + + + + + + + + +

    bc :

    An lglBarcode structure

    x :

    x coordinate of top left corner of box

    y :

    y coordinate of top left corner of box

    width :

    Width of box

    height :

    Height of box
    +
    +
    +
    +

    lgl_barcode_add_char ()

    +
    void                lgl_barcode_add_char                (lglBarcode *bc,
    +                                                         gdouble x,
    +                                                         gdouble y,
    +                                                         gdouble fsize,
    +                                                         gchar c);
    +

    +Add an ASCII character to barcode. Coordinates are relative to top left corner +of barcode. All units are in points ( 1 point = 1/72 inch ). +

    +

    +

    +
    +

    Note

    +

    + This function is intended to be used internally by barcode implementations. +

    +
    +

    +

    +
    ++ + + + + + + + + + + + + + + + + + + + + + +

    bc :

    An lglBarcode structure

    x :

    x coordinate of left baseline of character

    y :

    y coordinate of left baseline of character

    fsize :

    Font size

    c :

    Character to add
    +
    +
    +
    +

    lgl_barcode_add_string ()

    +
    void                lgl_barcode_add_string              (lglBarcode *bc,
    +                                                         gdouble x,
    +                                                         gdouble y,
    +                                                         gdouble fsize,
    +                                                         gchar *string,
    +                                                         gsize length);
    +

    +Add a character string to barcode. Coordinates are relative to top left corner +of barcode. All units are in points ( 1 point = 1/72 inch ). +

    +

    +

    +
    +

    Note

    +

    + This function is intended to be used internally by barcode implementations. +

    +
    +

    +

    +
    ++ + + + + + + + + + + + + + + + + + + + + + + + + + +

    bc :

    An lglBarcode structure

    x :

    x coordinate of horizontal center of baseline of string

    y :

    y coordinate of horizontal center of baseline of string

    fsize :

    Font size

    string :

    String to add

    length :

    Number of bytes in string
    +
    +
    +
    +

    lgl_barcode_add_ring ()

    +
    void                lgl_barcode_add_ring                (lglBarcode *bc,
    +                                                         gdouble x,
    +                                                         gdouble y,
    +                                                         gdouble radius,
    +                                                         gdouble line_width);
    +

    +Add a ring to barcode. Coordinates are relative to top left corner +of barcode. All units are in points ( 1 point = 1/72 inch ). +

    +

    +

    +
    +

    Note

    +

    + This function is intended to be used internally by barcode implementations. +

    +
    +

    +

    +
    ++ + + + + + + + + + + + + + + + + + + + + + +

    bc :

    An lglBarcode structure

    x :

    x coordinate of center of circle

    y :

    y coordinate of center of circle

    radius :

    Radius of ring (center of line)

    line_width :

    Width of line
    +
    +
    +
    +

    lgl_barcode_add_hexagon ()

    +
    void                lgl_barcode_add_hexagon             (lglBarcode *bc,
    +                                                         gdouble x,
    +                                                         gdouble y,
    +                                                         gdouble height);
    +

    +Add a regular hexagon (oriented with vertexes at top and bottom) to barcode. +Coordinates are relative to top left corner of barcode. All units are in +points ( 1 point = 1/72 inch ). +

    +

    +

    +
    +

    Note

    +

    + This function is intended to be used internally by barcode implementations. +

    +
    +

    +

    +
    ++ + + + + + + + + + + + + + + + + + +

    bc :

    An lglBarcode structure

    x :

    x coordinate of top point of hexagon

    y :

    y coordinate of top point of hexagon

    height :

    Height of hexagon
    +
    +
    +
    + + + \ No newline at end of file diff --git a/docs/libglbarcode/html/libglbarcode-3.0.devhelp b/docs/libglbarcode/html/libglbarcode-3.0.devhelp new file mode 100644 index 00000000..43a8c1d4 --- /dev/null +++ b/docs/libglbarcode/html/libglbarcode-3.0.devhelp @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/libglbarcode/html/libglbarcode-3.0.devhelp2 b/docs/libglbarcode/html/libglbarcode-3.0.devhelp2 new file mode 100644 index 00000000..29ec214b --- /dev/null +++ b/docs/libglbarcode/html/libglbarcode-3.0.devhelp2 @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/libglbarcode/html/libglbarcode-intro.html b/docs/libglbarcode/html/libglbarcode-intro.html new file mode 100644 index 00000000..8261dfc0 --- /dev/null +++ b/docs/libglbarcode/html/libglbarcode-intro.html @@ -0,0 +1,166 @@ + + + + +Introduction + + + + + + + + + + + + + + + + +
    +
    +
    + + +
    +

    Introduction

    +

    Introduction — +Introduction to libglbarcode library +

    +
    +
    +

    Overview

    +

    +Libglbarcode provides the core barcode functionality for glabels. It provides +an intermediate barcode format, a small set of built-in barcode back-ends, and a cairo renderer. While +libglbarcode does not currently include a large set of built-in barcode back-ends or renderers, its +simple architecture would easily support extending its functionality beyond the needs of +glabels. +

    +
    +
    +

    Basic Usage

    +
    +
    +#include <libglbarcode/lgl-barcode-create.h>
    +#include <libglbarcode/lgl-barcode-render-to-cairo.h>
    +
    +void
    +example (gchar   *data,
    +         cairo_t *cr)
    +{
    +        glBarcode *bc;
    +
    +        bc = lgl_barcode_create (LGL_BARCODE_TYPE_CODE39, TRUE, FALSE, 0, 0, data);
    +
    +        /* Render to cairo context.  Assume context has appropriate scale and translation.
    +         * Scale should be such that world units are points (1 point = 1/72 inch) and that
    +         * positive y values go downward.
    +         */
    +        lgl_barcode_render_to_cairo (bc, cr);
    +
    +        lgl_free (bc);
    +}
    +
    +
    +
    +
    +

    Writing Renderers

    +

    +The lglBarcode structure is independent of +barcode type, and consists of a simple list of drawing primitives. +A renderer simply traverses this list translating these primitives into native +drawing commands for its target format or device. +All renderers will follow this simple pattern as illustrated in the example +below. +

    +
    +
    +#include <libglbarcode/lgl-barcode.h>
    +#include <xxx.h>
    +
    +void
    +lgl_barcode_render_to_xxx (const lglBarcode  *bc)
    +{
    +        GList                  *p;
    +
    +        lglBarcodeShape        *shape;
    +        lglBarcodeShapeLine    *line;
    +        lglBarcodeShapeBox     *box;
    +        lglBarcodeShapeChar    *bchar;
    +        lglBarcodeShapeString  *bstring;
    +        lglBarcodeShapeRing    *ring;
    +        lglBarcodeShapeHexagon *hexagon;
    +
    +
    +        for (p = bc->shapes; p != NULL; p = p->next) {
    +
    +                shape = (lglBarcodeShape *)p->data;
    +
    +                switch (shape->type)
    +                {
    +
    +                case LGL_BARCODE_SHAPE_LINE:
    +                        line = (lglBarcodeShapeLine *) shape;
    +
    +                        xxx_plot_line (line->x, line->y,
    +                                       line->x, line->y + line->length,
    +                                       line->width );
    +                        break;
    +
    +                case LGL_BARCODE_SHAPE_BOX:
    +                        box = (lglBarcodeShapeBox *) shape;
    +
    +                        xxx_plot_rectangle (box->x, box->y,
    +                                            box->width, box->height);
    +                        break;
    +
    +                case LGL_BARCODE_SHAPE_CHAR:
    +                        bchar = (lglBarcodeShapeChar *) shape;
    +
    +                        ...
    +                        xxx_plot_char (...);
    +                        break;
    +
    +                case LGL_BARCODE_SHAPE_STRING:
    +                        bstring = (lglBarcodeShapeString *) shape;
    +
    +                        ...
    +                        xxx_plot_string (...);
    +                        break;
    +
    +                case LGL_BARCODE_SHAPE_RING:
    +                        ring = (lglBarcodeShapeRing *) shape;
    +
    +                        ...
    +                        xxx_plot_circle (...);
    +                        break;
    +
    +                case LGL_BARCODE_SHAPE_HEXAGON:
    +                        hexagon = (lglBarcodeShapeHexagon *) shape;
    +
    +                        ...
    +                        xxx_plot_polygon (...);
    +                        break;
    +
    +                default:
    +                        g_assert_not_reached ();
    +                        break;
    +
    +                }
    +
    +        }
    +
    +}
    +
    +
    +
    +
    +
    + + + \ No newline at end of file diff --git a/docs/libglbarcode/html/overview.html b/docs/libglbarcode/html/overview.html new file mode 100644 index 00000000..6a6edddb --- /dev/null +++ b/docs/libglbarcode/html/overview.html @@ -0,0 +1,35 @@ + + + + +LibGlbarcode Overview + + + + + + + + + + + + + + + + +
    +

    +LibGlbarcode Overview

    +
    +Introduction — +Introduction to libglbarcode library + +
    +
    + + + \ No newline at end of file diff --git a/docs/libglbarcode/html/right.png b/docs/libglbarcode/html/right.png new file mode 100644 index 0000000000000000000000000000000000000000..92832e3a4566e59d6e4092010e08d28f3be3a68d GIT binary patch literal 472 zcmV;}0Vn>6P)Cd4HCN^TYHBC0dz3r5|}*T3c5!K}0^NPTey!^rYo;W&eW{b1SE%dR-1ljcju- zJITo5P_e{cPDWDszO|97o#m$fni3V4d%~7^?0HU4-k!+X`e~w55Q}HA=c?CM9`EK` z^o5GF_RsnG`ey+9wOf8O4bzg>7W*;jU~M?g`OZAA$mNp|Lz<$s+~N9!2`ir8RcClo$(Q~19INM~9}j;&*|enC yGd}kJak0wj?aUKd8;%}`i}SSew>!A-2iw}^5}Rh(M>+vRkipZ{&t;ucLK6U4uc96R literal 0 HcmV?d00001 diff --git a/docs/libglbarcode/intro.sgml b/docs/libglbarcode/intro.sgml new file mode 100644 index 00000000..7d9724d6 --- /dev/null +++ b/docs/libglbarcode/intro.sgml @@ -0,0 +1,161 @@ + + +Introduction +3 + + LIBGLBARCODE-3.0 Library + + + + +Introduction + +Introduction to libglbarcode library + + + + + +Overview + + +Libglbarcode provides the core barcode functionality for glabels. It provides +an intermediate barcode format, a small set of built-in barcode back-ends, and a cairo renderer. While +libglbarcode does not currently include a large set of built-in barcode back-ends or renderers, its +simple architecture would easily support extending its functionality beyond the needs of +glabels. + + + + + + +Basic Usage + + + +#include <libglbarcode/lgl-barcode-create.h> +#include <libglbarcode/lgl-barcode-render-to-cairo.h> + +void +example (gchar *data, + cairo_t *cr) +{ + glBarcode *bc; + + bc = lgl_barcode_create (LGL_BARCODE_TYPE_CODE39, TRUE, FALSE, 0, 0, data); + + /* Render to cairo context. Assume context has appropriate scale and translation. + * Scale should be such that world units are points (1 point = 1/72 inch) and that + * positive y values go downward. + */ + lgl_barcode_render_to_cairo (bc, cr); + + lgl_free (bc); +} + + + + + + + + +Writing Renderers + + +The lglBarcode structure is independent of +barcode type, and consists of a simple list of drawing primitives. +A renderer simply traverses this list translating these primitives into native +drawing commands for its target format or device. +All renderers will follow this simple pattern as illustrated in the example +below. + + + + +#include <libglbarcode/lgl-barcode.h> +#include <xxx.h> + +void +lgl_barcode_render_to_xxx (const lglBarcode *bc) +{ + GList *p; + + lglBarcodeShape *shape; + lglBarcodeShapeLine *line; + lglBarcodeShapeBox *box; + lglBarcodeShapeChar *bchar; + lglBarcodeShapeString *bstring; + lglBarcodeShapeRing *ring; + lglBarcodeShapeHexagon *hexagon; + + + for (p = bc->shapes; p != NULL; p = p->next) { + + shape = (lglBarcodeShape *)p->data; + + switch (shape->type) + { + + case LGL_BARCODE_SHAPE_LINE: + line = (lglBarcodeShapeLine *) shape; + + xxx_plot_line (line->x, line->y, + line->x, line->y + line->length, + line->width ); + break; + + case LGL_BARCODE_SHAPE_BOX: + box = (lglBarcodeShapeBox *) shape; + + xxx_plot_rectangle (box->x, box->y, + box->width, box->height); + break; + + case LGL_BARCODE_SHAPE_CHAR: + bchar = (lglBarcodeShapeChar *) shape; + + ... + xxx_plot_char (...); + break; + + case LGL_BARCODE_SHAPE_STRING: + bstring = (lglBarcodeShapeString *) shape; + + ... + xxx_plot_string (...); + break; + + case LGL_BARCODE_SHAPE_RING: + ring = (lglBarcodeShapeRing *) shape; + + ... + xxx_plot_circle (...); + break; + + case LGL_BARCODE_SHAPE_HEXAGON: + hexagon = (lglBarcodeShapeHexagon *) shape; + + ... + xxx_plot_polygon (...); + break; + + default: + g_assert_not_reached (); + break; + + } + + } + +} + + + + + + + + + diff --git a/docs/libglbarcode/libglbarcode-3.0-docs.sgml b/docs/libglbarcode/libglbarcode-3.0-docs.sgml new file mode 100644 index 00000000..d04ced26 --- /dev/null +++ b/docs/libglbarcode/libglbarcode-3.0-docs.sgml @@ -0,0 +1,31 @@ + + + +]> + + + + LibGlbarcode 3.0 Reference Manual + + + + LibGlbarcode Overview + + &libglbarcode-intro; + + + + + API Reference + + + + + + + + + diff --git a/docs/libglabels/libglabels.types b/docs/libglbarcode/libglbarcode-3.0-overrides.txt similarity index 100% rename from docs/libglabels/libglabels.types rename to docs/libglbarcode/libglbarcode-3.0-overrides.txt diff --git a/docs/libglbarcode/libglbarcode-3.0-sections.txt b/docs/libglbarcode/libglbarcode-3.0-sections.txt new file mode 100644 index 00000000..0eb153ca --- /dev/null +++ b/docs/libglbarcode/libglbarcode-3.0-sections.txt @@ -0,0 +1,46 @@ +
    +lgl-barcode +libglbarcode/lgl-barcode.h + +lglBarcode + +lgl_barcode_new +lgl_barcode_free + +lglBarcodeShapeType +lglBarcodeShape +lglBarcodeShapeAny +lglBarcodeShapeLine +lglBarcodeShapeBox +lglBarcodeShapeChar +lglBarcodeShapeString +lglBarcodeShapeRing +lglBarcodeShapeHexagon + +lgl_barcode_add_line +lgl_barcode_add_box +lgl_barcode_add_char +lgl_barcode_add_string +lgl_barcode_add_ring +lgl_barcode_add_hexagon +
    + +
    +lgl-barcode-create +libglbarcode/lgl-barcode-create.h +lgl_barcode_create +
    + +
    +lgl-barcode-render-to-cairo +libglbarcode/lgl-barcode-render-to-cairo.h +lgl_barcode_render_to_cairo +lgl_barcode_render_to_cairo_path +
    + +
    +lgl-barcode-type +libglbarcode/lgl-barcode-type.h +lglBarcodeType +
    + diff --git a/glabels.spec b/glabels.spec index f4df384f..0be76319 100644 --- a/glabels.spec +++ b/glabels.spec @@ -1,6 +1,6 @@ Summary: glabels is a GNOME program to create labels and business cards Name: glabels -Version: 2.2.8 +Version: 3.0.0 Release: 1 License: GPL Group: Applications/Publishing @@ -10,15 +10,15 @@ Source: %{name}-%{version}.tar.gz BuildRoot: %{_tmppath}/root-%{name}-%{version} Prefix: %{_prefix} -BuildRequires: gtk2-devel >= 2.10.0 -BuildRequires: libxml2-devel >= 2.6.0 -BuildRequires: libgnomeui-devel >= 2.16.0 -BuildRequires: libglade2-devel >= 2.6.0 +BuildRequires: gtk2-devel >= 3.0.9 +BuildRequires: libxml2-devel >= 2.7.8 +BuildRequires: libgnomeui-devel >= @LIBGNOMEUI_REQUIRED@ +BuildRequires: libglade2-devel >= @LIBGLADE_REQUIRED@ -Requires: gtk2 >= 2.10.0 -Requires: libxml2 >= 2.6.0 -Requires: libgnomeui >= 2.16.0 -Requires: libglade2 >= 2.6.0 +Requires: gtk2 >= 3.0.9 +Requires: libxml2 >= 2.7.8 +Requires: libgnomeui >= @LIBGNOMEUI_REQUIRED@ +Requires: libglade2 >= @LIBGLADE_REQUIRED@ %description gLabels is a lightweight program for creating labels and diff --git a/gnome-doc-utils.make b/gnome-doc-utils.make index ec8f6983..0da2cf91 100644 --- a/gnome-doc-utils.make +++ b/gnome-doc-utils.make @@ -138,7 +138,7 @@ _db2omf ?= `$(PKG_CONFIG) --variable db2omf gnome-doc-utils` _malrng ?= `$(PKG_CONFIG) --variable malrng gnome-doc-utils` _chunks ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/chunks.xsl _credits ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/credits.xsl -_ids ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/ids.xsl +_ids ?= $(shell $(PKG_CONFIG) --variable xmldir gnome-doc-utils)/gnome/xslt/docbook/utils/ids.xsl if ENABLE_SK _ENABLE_SK = true @@ -266,6 +266,13 @@ _DOC_POFILES = $(if $(DOC_MODULE)$(DOC_ID), \ .PHONY: po po: $(_DOC_POFILES) +## @ _DOC_MOFILES +## The .mo files used for translating the document +_DOC_MOFILES = $(patsubst %.po,%.mo,$(_DOC_POFILES)) + +.PHONY: mo +mo: $(_DOC_MOFILES) + ## @ _DOC_LC_MODULES ## The top-level documentation files in all other locales _DOC_LC_MODULES = $(if $(DOC_MODULE), \ @@ -332,22 +339,29 @@ $(_DOC_POFILES): $(_xml2po) -m $(_xml2po_mode) -e -u $(notdir $@) $$docs); \ fi +$(_DOC_MOFILES): %.mo: %.po + @if ! test -d $(dir $@); then \ + echo "mkdir $(dir $@)"; \ + mkdir "$(dir $@)"; \ + fi + msgfmt -o $@ $< + # FIXME: fix the dependancy # FIXME: hook xml2po up -$(_DOC_LC_DOCS) : $(_DOC_POFILES) +$(_DOC_LC_DOCS) : $(_DOC_MOFILES) $(_DOC_LC_DOCS) : $(_DOC_C_DOCS) if ! test -d $(dir $@); then mkdir $(dir $@); fi if [ -f "C/$(notdir $@)" ]; then d="../"; else d="$(_DOC_ABS_SRCDIR)/"; fi; \ - po="$(dir $@)$(patsubst %/$(notdir $@),%,$@).po"; \ - if [ -f "$${po}" ]; then po="../$${po}"; else po="$(_DOC_ABS_SRCDIR)/$${po}"; fi; \ + mo="$(dir $@)$(patsubst %/$(notdir $@),%,$@).mo"; \ + if [ -f "$${mo}" ]; then mo="../$${mo}"; else mo="$(_DOC_ABS_SRCDIR)/$${mo}"; fi; \ (cd $(dir $@) && \ - $(_xml2po) -m $(_xml2po_mode) -e -p "$${po}" \ + $(_xml2po) -m $(_xml2po_mode) -e -t "$${mo}" \ "$${d}C/$(notdir $@)" > $(notdir $@).tmp && \ cp $(notdir $@).tmp $(notdir $@) && rm -f $(notdir $@).tmp) ## @ _DOC_POT ## A pot file -_DOC_POT = $(if $(DOC_MODULE),$(DOC_MODULE).pot) +_DOC_POT = $(if $(DOC_MODULE),$(DOC_MODULE).pot,$(if $(DOC_ID),$(DOC_ID).pot)) .PHONY: pot pot: $(_DOC_POT) $(_DOC_POT): $(_DOC_C_DOCS_NOENT) @@ -386,12 +400,14 @@ clean-doc-omf: ; rm -f $(_DOC_OMF_DB) $(_DOC_OMF_HTML) clean-doc-dsk: ; rm -f $(_DOC_DSK_DB) $(_DOC_DSK_HTML) clean-doc-lc: rm -f $(_DOC_LC_DOCS) + rm -f $(_DOC_MOFILES) @list='$(_DOC_POFILES)'; for po in $$list; do \ if ! test "$$po" -ef "$(srcdir)/$$po"; then \ echo "rm -f $$po"; \ rm -f "$$po"; \ fi; \ done +# .xml2.po.mo cleaning is obsolete as of 0.18.1 and could be removed in 0.20.x @for lc in C $(_DOC_REAL_LINGUAS); do \ if test -f "$$lc/.xml2po.mo"; then \ echo "rm -f $$lc/.xml2po.mo"; \ diff --git a/gtk-doc.make b/gtk-doc.make index 0f87cc79..f5c53c7a 100644 --- a/gtk-doc.make +++ b/gtk-doc.make @@ -5,13 +5,13 @@ #################################### if GTK_DOC_USE_LIBTOOL -GTKDOC_CC = $(LIBTOOL) --mode=compile $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -GTKDOC_LD = $(LIBTOOL) --mode=link $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) +GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) GTKDOC_RUN = $(LIBTOOL) --mode=execute else GTKDOC_CC = $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) GTKDOC_LD = $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -GTKDOC_RUN = sh -c +GTKDOC_RUN = endif # We set GPATH here; this gives us semantics for GNU make @@ -23,15 +23,18 @@ GPATH = $(srcdir) TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE) -EXTRA_DIST = \ +SETUP_FILES = \ $(content_files) \ - $(HTML_IMAGES) \ $(DOC_MAIN_SGML_FILE) \ $(DOC_MODULE)-sections.txt \ $(DOC_MODULE)-overrides.txt -DOC_STAMPS=scan-build.stamp tmpl-build.stamp sgml-build.stamp html-build.stamp \ - $(srcdir)/tmpl.stamp $(srcdir)/sgml.stamp $(srcdir)/html.stamp +EXTRA_DIST = \ + $(SETUP_FILES) + +DOC_STAMPS=setup-build.stamp scan-build.stamp tmpl-build.stamp sgml-build.stamp \ + html-build.stamp pdf-build.stamp \ + setup.stamp tmpl.stamp sgml.stamp html.stamp pdf.stamp SCANOBJ_FILES = \ $(DOC_MODULE).args \ @@ -48,58 +51,98 @@ REPORT_FILES = \ CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) if ENABLE_GTK_DOC -all-local: html-build.stamp +if GTK_DOC_BUILD_HTML +HTML_BUILD_STAMP=html-build.stamp +else +HTML_BUILD_STAMP= +endif +if GTK_DOC_BUILD_PDF +PDF_BUILD_STAMP=pdf-build.stamp +else +PDF_BUILD_STAMP= +endif + +all-local: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP) else all-local: endif -docs: html-build.stamp +docs: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP) $(REPORT_FILES): sgml-build.stamp +#### setup #### + +setup-build.stamp: + -@if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ + echo 'gtk-doc: Preparing build'; \ + files=`echo $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types`; \ + if test "x$$files" != "x" ; then \ + for file in $$files ; do \ + test -f $(abs_srcdir)/$$file && \ + cp -p $(abs_srcdir)/$$file $(abs_builddir)/; \ + done \ + fi; \ + test -f $(abs_srcdir)/tmpl && \ + cp -rp $(abs_srcdir)/tmpl $(abs_builddir)/; \ + fi + @touch setup-build.stamp + + +setup.stamp: setup-build.stamp + @true + + #### scan #### scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB) @echo 'gtk-doc: Scanning header files' - @-chmod -R u+w $(srcdir) - cd $(srcdir) && \ - gtkdoc-scan --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --ignore-headers="$(IGNORE_HFILES)" $(SCAN_OPTIONS) $(EXTRA_HFILES) - if grep -l '^..*$$' $(srcdir)/$(DOC_MODULE).types > /dev/null 2>&1 ; then \ - CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" gtkdoc-scangobj $(SCANGOBJ_OPTIONS) --module=$(DOC_MODULE) --output-dir=$(srcdir) ; \ + @_source_dir='' ; \ + for i in $(DOC_SOURCE_DIR) ; do \ + _source_dir="$${_source_dir} --source-dir=$$i" ; \ + done ; \ + gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES) + @if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \ + CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" gtkdoc-scangobj $(SCANGOBJ_OPTIONS) --module=$(DOC_MODULE) ; \ else \ - cd $(srcdir) ; \ for i in $(SCANOBJ_FILES) ; do \ test -f $$i || touch $$i ; \ done \ fi - touch scan-build.stamp + @touch scan-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp @true #### templates #### -tmpl-build.stamp: $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt +tmpl-build.stamp: setup.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt @echo 'gtk-doc: Rebuilding template files' - @-chmod -R u+w $(srcdir) - cd $(srcdir) && gtkdoc-mktmpl --module=$(DOC_MODULE) $(MKTMPL_OPTIONS) - touch tmpl-build.stamp + @gtkdoc-mktmpl --module=$(DOC_MODULE) $(MKTMPL_OPTIONS) + @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ + if test -w $(abs_srcdir) ; then \ + cp -rp $(abs_builddir)/tmpl $(abs_srcdir)/; \ + fi \ + fi + @touch tmpl-build.stamp tmpl.stamp: tmpl-build.stamp @true -tmpl/*.sgml: +$(srcdir)/tmpl/*.sgml: @true - #### xml #### -sgml-build.stamp: tmpl.stamp $(HFILE_GLOB) $(CFILE_GLOB) $(DOC_MODULE)-sections.txt $(srcdir)/tmpl/*.sgml $(expand_content_files) +sgml-build.stamp: tmpl.stamp $(DOC_MODULE)-sections.txt $(srcdir)/tmpl/*.sgml $(expand_content_files) @echo 'gtk-doc: Building XML' @-chmod -R u+w $(srcdir) - cd $(srcdir) && \ - gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $(MKDB_OPTIONS) - touch sgml-build.stamp + @_source_dir='' ; \ + for i in $(DOC_SOURCE_DIR) ; do \ + _source_dir="$${_source_dir} --source-dir=$$i" ; \ + done ; \ + gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS) + @touch sgml-build.stamp sgml.stamp: sgml-build.stamp @true @@ -108,19 +151,44 @@ sgml.stamp: sgml-build.stamp html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) @echo 'gtk-doc: Building HTML' - @-chmod -R u+w $(srcdir) - rm -rf $(srcdir)/html - mkdir $(srcdir)/html - mkhtml_options=""; \ + @rm -rf html + @mkdir html + @mkhtml_options=""; \ gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-path"; \ if test "$(?)" = "0"; then \ - mkhtml_options=--path="$(srcdir)"; \ - fi - cd $(srcdir)/html && gtkdoc-mkhtml $(mkhtml_options) $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) - test "x$(HTML_IMAGES)" = "x" || ( cd $(srcdir) && cp $(HTML_IMAGES) html ) + mkhtml_options=--path="$(abs_srcdir)"; \ + fi; \ + cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) + -@test "x$(HTML_IMAGES)" = "x" || \ + for file in $(HTML_IMAGES) ; do \ + if test -f $(abs_srcdir)/$$file ; then \ + cp $(abs_srcdir)/$$file $(abs_builddir)/html; \ + fi; \ + if test -f $(abs_builddir)/$$file ; then \ + cp $(abs_builddir)/$$file $(abs_builddir)/html; \ + fi; \ + done; @echo 'gtk-doc: Fixing cross-references' - cd $(srcdir) && gtkdoc-fixxref --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) - touch html-build.stamp + @gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) + @touch html-build.stamp + +#### pdf #### + +pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) + @echo 'gtk-doc: Building PDF' + @rm -rf $(DOC_MODULE).pdf + @mkpdf_imgdirs=""; \ + if test "x$(HTML_IMAGES)" != "x"; then \ + for img in $(HTML_IMAGES); do \ + part=`dirname $$img`; \ + echo $$mkpdf_imgdirs | grep >/dev/null "\-\-imgdir=$$part "; \ + if test $$? != 0; then \ + mkpdf_imgdirs="$$mkpdf_imgdirs --imgdir=$$part"; \ + fi; \ + done; \ + fi; \ + gtkdoc-mkpdf --path="$(abs_srcdir)" $$mkpdf_imgdirs $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS) + @touch pdf-build.stamp ############## @@ -129,15 +197,18 @@ clean-local: rm -rf .libs distclean-local: - cd $(srcdir) && \ - rm -rf xml $(REPORT_FILES) \ - $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt + rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \ + $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt + if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ + rm -f $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types; \ + rm -rf tmpl; \ + fi maintainer-clean-local: clean - cd $(srcdir) && rm -rf xml html + rm -rf xml html install-data-local: - installfiles=`echo $(srcdir)/html/*`; \ + @installfiles=`echo $(srcdir)/html/*`; \ if test "$$installfiles" = '$(srcdir)/html/*'; \ then echo '-- Nothing to install' ; \ else \ @@ -157,12 +228,11 @@ install-data-local: mv -f $${installdir}/$(DOC_MODULE).devhelp \ $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp; \ fi; \ - ! which gtkdoc-rebase >/dev/null 2>&1 || \ - gtkdoc-rebase --relative --dest-dir=$(DESTDIR) --html-dir=$${installdir} ; \ + $(GTKDOC_REBASE) --relative --dest-dir=$(DESTDIR) --html-dir=$${installdir}; \ fi uninstall-local: - if test -n "$(DOC_MODULE_VERSION)"; then \ + @if test -n "$(DOC_MODULE_VERSION)"; then \ installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ else \ installdir="$(DESTDIR)$(TARGET_DIR)"; \ @@ -182,15 +252,13 @@ endif dist-hook: dist-check-gtkdoc dist-hook-local mkdir $(distdir)/tmpl - mkdir $(distdir)/xml mkdir $(distdir)/html - -cp $(srcdir)/tmpl/*.sgml $(distdir)/tmpl - -cp $(srcdir)/xml/*.xml $(distdir)/xml - cp $(srcdir)/html/* $(distdir)/html - -cp $(srcdir)/$(DOC_MODULE).types $(distdir)/ - -cp $(srcdir)/$(DOC_MODULE)-sections.txt $(distdir)/ + -cp $(build)/tmpl/*.sgml $(distdir)/tmpl + cp $(builddir)/html/* $(distdir)/html + -cp $(builddir)/$(DOC_MODULE).pdf $(distdir)/ + -cp $(build)/$(DOC_MODULE).types $(distdir)/ + -cp $(build)/$(DOC_MODULE)-sections.txt $(distdir)/ cd $(distdir) && rm -f $(DISTCLEANFILES) - ! which gtkdoc-rebase >/dev/null 2>&1 || \ - gtkdoc-rebase --online --relative --html-dir=$(distdir)/html + $(GTKDOC_REBASE) --online --relative --html-dir=$(distdir)/html .PHONY : dist-hook-local docs diff --git a/help/C/about.page b/help/C/about.page new file mode 100644 index 00000000..0aa524fc --- /dev/null +++ b/help/C/about.page @@ -0,0 +1,43 @@ + + + + + + + Information about gLabels. + + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

    Creative Commons Share Alike 3.0

    +
    +
    + + About <app>gLabels</app> + +

    gLabels was written by Jim Evins. + To find more information about gLabels, please visit the + gLabels Web + page.

    +

    + To report a bug or make a suggestion regarding this application or + this manual, follow the directions at the + gLabels Contact Page. +

    + +

    This program is distributed 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. A copy of this license can be found at this + link, or in the file + COPYING included with the source code of this program.

    +
    diff --git a/help/C/basicusage.page b/help/C/basicusage.page new file mode 100644 index 00000000..e2f22b1d --- /dev/null +++ b/help/C/basicusage.page @@ -0,0 +1,90 @@ + + + + + + + Handling files and quit the application. + + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

    Creative Commons Share Alike 3.0

    +
    +
    + + Basic usage + +
    + To open a file + +

    To open a file, choose + FileOpen + to display the Open File dialog. + Select the file that you want to open, then click + OK. The file is displayed in the display area + of the gLabels window.

    + +

    You can also open multiple files in + gLabels. The application creates a separate + application window for each open file.

    + +

    The application records the paths and filenames of the + most recent files that you have edited and displays the files as menu + items on the FileRecent Files + menu.

    +
    + +
    + To close a file + +

    To close the current document, choose + File + Close to close the application + window. If the current document is modified, a confirmation dialog + will be presented, allowing you to save the document or cancel + the command. If the window being closed is the only open window, + gLabels will exit.

    +
    + +
    + To save a file + +

    You can save files in the following ways:

    + + + +

    To save changes to an existing file, choose + File + Save.

    + +
    + + +

    To save a new file or to save an existing file under a new + filename, choose File + Save As. Enter a name + for the file in the Save As dialog box, + then click OK.

    + +
    +
    +
    + +
    + To quit <app>gLabels</app> + +

    To quit gLabels, choose File + Quit. This is equivalent to closing all open windows. + See .

    +
    +
    diff --git a/help/C/createnew.page b/help/C/createnew.page new file mode 100644 index 00000000..f98a2fc5 --- /dev/null +++ b/help/C/createnew.page @@ -0,0 +1,93 @@ + + + + + + + Create new objects within your document. + + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

    Creative Commons Share Alike 3.0

    +
    +
    + + To create new objects + +

    Objects are created by choosing the appropriate selection under + the ObjectsCreate Object submenu + or the Drawing Toolbar. This will place the display area into + object creation mode as indicated by its cursor. To return to the default + object selection mode without creating an object, choose + ObjectsSelect Mode. This will + return the display area's cursor to the default selection arrow.

    + +

    The following describes the object creation mode for each object + type:

    + +
    + Text +

    Click the desired location of the upper left corner of the + text object. New text objects are initialized with the + string "Text." To change this text, or other properties, see + .

    +
    + +
    + Box +

    Click the desired location of the upper left corner of the + box object and drag to the desired location of the lower right + corner. If you simply click in a single location, a square + box will be created. To change properties of the box object, see + .

    +
    + +
    + Line +

    Click the desired location of one end of the + line object and drag to the desired location of the other end. + If you simply click in a single location, a diagonal line + will be created. To change properties of the line object, see + .

    +
    + +
    + Ellipse +

    Click the desired location of the upper left corner of the + ellipse object and drag to the desired location of the lower + right corner. If you simply click in a single location, a circle + will be created. To change properties of the ellipse object, see + .

    +
    + +
    + Image +

    Click the desired location of the upper left corner of the + image object and drag to the desired location of the lower + right corner. If you simply click in a single location, a square + will be created. New image objects are initialized with a + simple checkerboard image. To change this image, or other + properties of the image object, see + .

    +
    + +
    + Barcode +

    Click the desired location of the upper left corner of the + barcode object. New barcode objects are initialized to a + POSTNET barcode with representative data. To change data + and properties of the barcode object, see + .

    +
    + +
    diff --git a/help/C/customize.page b/help/C/customize.page new file mode 100644 index 00000000..1dd3140d --- /dev/null +++ b/help/C/customize.page @@ -0,0 +1,129 @@ + + + + + + Customize gLabels to match your needs. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

    Creative Commons Share Alike 3.0

    +
    +
    + + + + Settings +

    To configure gLabels, choose + + Settings + Preferences + . The + Preferences dialog contains the following tabbed + sections:

    + +
    + Locale +
    + Units +

    Use this radio button group to specify your preferred units. + Select one of the following options:

    + + +

    Points

    +

    Use points (1 point = 1/72 in = 0.352778 mm).

    +
    + +

    Inches

    +

    Use Inches.

    +
    + +

    Millimeters

    +

    Use Millimeters.

    +
    +
    +

    Default: Inches.

    +
    + +
    + Default page size +

    Use this radio button group to specify your prefered page size. + This will make it quicker for you to locate media types when creating a new + label or card.

    + + +

    US Letter

    +

    Most of your media will be of the US Letter page size (8.5 x 11 inches).

    +
    + +

    ISO A4

    +

    Most of your media will be of the ISO A4 page size (210 x 297 mm).

    +
    +
    +

    Default: US Letter.

    +
    +
    + +
    + Object Defaults + +
    + Text +

    Use these controls to set the default properties of new text objects. + These properties are:

    + + +

    Font

    +

    These controls are used to select font family and font size, and + whether the font should bold or in italics.

    +
    + +

    Color

    +

    This control selects the default text color.

    +
    + +

    Alignment

    +

    These controls are used to select the default text alignment (left, center or right).

    +
    +
    +
    + +
    + Line +

    Use these controls to set the default properties of lines and outlines of + new objects. These properties are:

    + + +

    Width

    +

    This control selects the default line width.

    +
    + +

    Color

    +

    This control selects the default line color.

    +
    +
    +
    + +
    + Fill +

    Use this control to set the default fill property of + new objects. This property is:

    + + +

    Color

    +

    This control selects the default fill color.

    +
    +
    +
    +
    + +
    diff --git a/help/C/customtemplate.page b/help/C/customtemplate.page new file mode 100644 index 00000000..2de0b9da --- /dev/null +++ b/help/C/customtemplate.page @@ -0,0 +1,38 @@ + + + + + + + Create your own templates for stationery products. + + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

    Creative Commons Share Alike 3.0

    +
    +
    + + To create a custom template + +

    To create a new custom template, choose + File + Template Designer ... + to display the Template Designer dialog. + This dialog will assist you in creating a custom template for + most types of label or card stationery that you may encounter.

    + +

    If you prefer, you can create your templates manually. + For this option see +

    + +
    diff --git a/help/C/editprop.page b/help/C/editprop.page new file mode 100644 index 00000000..07b4a40a --- /dev/null +++ b/help/C/editprop.page @@ -0,0 +1,238 @@ + + + + + + + Change the properties of objects. + + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

    Creative Commons Share Alike 3.0

    +
    +
    + + To edit object properties + +
    + +

    Most object properties can be modified through the object + editor sidebar, illustrated below. To use the object editor, + a single object must first be selected. See + .

    + + + +

    Print Copy Controls

    +
    + + +

    The object editor will contain a subset of the following + tabbed sections, depending on object type:

    + +
    + Text Tabbed Section (Text objects) + +

    This section contains a small editor for changing the content + of a text object. It also contains a dropdown menu of available + document merge keys, that can be inserted into text.

    + +
    + +
    + Image Tabbed Section (Image objects) + +

    This section contains a file entry with preview to select + image files. The browse button can be used to easily locate + image files. Alternatively, a document merge key can be used + instead to provide a filename at print time.

    + +
    + +
    + Data Tabbed Section (Barcode objects) + +

    This section contains a text entry to enter literal barcode + data. Alternatively, a document merge key can be used to + provide this data at print time.

    + +
    + +
    + Style Tabbed Section (Text objects) + +

    This section contains controls to select text properties, + including font family, font size, font weight, color, and + text justification.

    + +
    + +
    + Style Tabbed Section (Barcode objects) + +

    This section contains controls to select barcode properties, + including barcode style, color, whether to print text, and whether + to include a checksum digit.

    + +
    + +
    + Line Tabbed Section + +

    This section contains controls to select properties of lines + and outlines. These properties include line width and color.

    + +
    + +
    + Fill Tabbed Section + +

    This section contains controls to select fill properties of box + and ellipse objects. Currently the only fill property is fill + color.

    + +
    + +
    + Size Tabbed Section (All except line objects) + +

    This section contains controls to select the width and height + of an object. A checkbox is provided, so that the current aspect + ratio can be locked while manipulating the width and height controls. + Image objects also provide a button to reset the size to the + image's natural size (Assumes 72DPI).

    + +
    + +
    + Size Tabbed Section (Line objects) + +

    This section contains controls to select the length and angle + of a line object.

    + +
    + +
    + Position Tabbed Section + +

    This section contains controls to change the position of an + object.

    + +
    + + +
    + Shadow Tabbed Section (All except barcode objects) + +

    This section contains controls to add a shadow to an object.

    + +
    + + +
    + + +
    + Other Manipulations of Objects + +

    Objects can also be manipulated in the following ways.

    + +
    + Moving and Resizing Objects + +

    Objects can be moved by simply clicking on a selected + object and dragging the object to its new location. If the object + is part of an aggregate selection, all objects in the selection + will move with the object being dragged, maintaining their relative + positions to one another. If no object is selected, clicking on + an object will create a new selection containing that object. + See .

    + +

    A selected object can be resized by clicking one of its resize + handle and dragging it to obtain the new size.

    + +
    + +
    + Changing Stacking Order + +

    Stacking order refers to relative position in the z-axis of + objects. That is when objects overlap, which object will appear + on top of the other. By default, newer objects will appear above + older objects. To change this order, select one or more objects + and choose Objects + Order + Bring to Front + to raise the selection to the top of the stacking + order, or choose Objects + Order + Send to Back + to lower the selection to the bottom of the + stacking order. These menuitems are also available by right-clicking + the display area when there is a non-empty selection.

    + +
    + +
    + Rotating and Flipping Objects + +

    Objects can be rotated 90 degrees in either direction, or flipped + horizontally or vertically, by choosing the appropriate menuitem + in the Objects + Rotate/Flip sub-menu. These + menuitems are also available by right-clicking + the display area when there is a non-empty selection.

    + + +

    + This feature could be useful when you are designing CD box inlays. For + the spine caption, you need vertical aligned text. After you have created + a basic text box, choose ObjectsRotate/Flip + to rotate the text box according to your needs. +

    +
    + +
    + +
    + Aligning Objects + +

    Objects can be aligned horizontally or vertically, relative to + one another, or relative to the center line of the label, by + choosing the appropriate menuitem from the + Objects + Align Horizontal + or Objects + Align Vertical sub-menus. + These menuitems are also available by right-clicking + the display area when there is a non-empty selection.

    + +
    + +
    + Using the Property Bar + +

    The property bar can be used to change some common properties + of objects en-masse. These properties include font family, font + size, font weight, text alignment, text color, fill color, line + or outline color, and line width. The property bar also controls + the defaults for these properties for any newly created objects. +

    + +
    + + + +
    + +
    diff --git a/help/C/figures/glabels-logo.png b/help/C/figures/glabels-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..a99548d2771f8c71b8f124b695beef6332940d78 GIT binary patch literal 7374 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 AwEzGB literal 0 HcmV?d00001 diff --git a/help/C/figures/glabels-template-cd-label.png b/help/C/figures/glabels-template-cd-label.png new file mode 100644 index 0000000000000000000000000000000000000000..2c505860ec2f2787ecf1dfa47260551f11bd42fd GIT binary patch literal 18341 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 Zw%X5)sHAy!;RACJeQhJH$9RXR{{f?FYJ30y literal 0 HcmV?d00001 diff --git a/help/C/figures/glabels-template-cd.png b/help/C/figures/glabels-template-cd.png deleted file mode 100644 index 0a3de3bfaf31c0e831f7232e93c963acfda8e347..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9930 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 diff --git a/help/C/figures/glabels-template-circle-label.png b/help/C/figures/glabels-template-circle-label.png new file mode 100644 index 0000000000000000000000000000000000000000..337caae38f5ef9cace575fe5f6da5533c3a76320 GIT binary patch literal 12480 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%0AK=*Dq+O8OAwOZb8p?pdAW1#h>#f3$% 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 literal 0 HcmV?d00001 diff --git a/help/C/figures/glabels-template-label.png b/help/C/figures/glabels-template-label.png deleted file mode 100644 index 87a724b9dcba29b59f807007af9f7469b82033b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3115 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 diff --git a/help/C/figures/glabels-template-layout.png b/help/C/figures/glabels-template-layout.png index c71279520eb56db0701e359666bfb403f1b3e953..17db6bc80c7f919f3b75de59da454ead0a844498 100644 GIT binary patch literal 9638 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 bB(fgg4_?=)I!LHeJ>6H3QISSHFn#e~^K!4J literal 6012 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

    y@R+U8kVSirP1EH-|6a`3cfyvNg}eBM*WXLD+@ zIrtZlh|%&{)_krt0f15g?34v1ZEMDX3_bbbT;}H`2t*MA!NA0Xc_b@j30V0T2_5W% zKf#F+DbS~NW;90f1|KuV+AnrzFvfCSzkZ#A`^(CKjvGkrrlwP5bN%;*~*-Q^u z-wrrN$KI@Sbaal5P!qE%CxgJip8)?VSsh!5b^s^v)9KQOpZ@IVY5V$hW30mQa2pE< zq=3y*Pfy(G`%O;|Gh0l&ePyh5lE#Av5B&Z80bosNj9wCvkl*0pVV8%ed$`}Z6V~Hk z+jxVFl9pDGpWjwAL!A$rDJUcq54ulXQ**7nCR&L{RGmy=EV`(qq@=FSYR(mUFx$}r2iqTRxPk)?F2(Vl6W1jP+e!sxH=RKf9b``9jQ zlE2{RwWiLuccQ#ECZrv@(*Z?THuydTH}=wX>HOM{sxCd1W3u>p82|T25}&-+SIQAt zasf~gkuAnwQef(+d3g~4E53X8&OP!KBU*pgzwyf~Jt-#)W{w^bt4GKVpZZV53$JlC zeKS&4R8-{Txc~G26E(msV}L3lvFLXtBN1cF?klmC#rFMXvhT7->2jM8`k@Fr^a;>)agt@ zNM-jP9QZOOzlwnYC$~1;jKuk&nC4dBzkh%Er;-ErSv3v@^6v?7^K0tq>3MoeV84OX z08AUsary8xIaetzf4dM}x5?TOhO%dp-XKtu5H@o{Ut26+M0 zzB9#jvi^l^1NDbvF1%~ar{9*l8RQ9eVn7)9%09;(UgFV~VvE-BHwS3C)CIGhJa! zpnbcBPF?hOdPK3&rKWc$>5?FQAG-LLiJg*xqGNu!fLD!vS!b+!pr0 zN9w@v%D{OKMs!R9(b;6v9<#l@Eo%EUTHgFbAM}RCy?gx~f~2IRaKeyL7&-0xq9Qd- z%{+4u0@(wIzbjMr!=2#gF(X4mAJYX+$=ANUx{gAjY+Np;@QH|s+`2^o7ux1^kn$x% zPVEoFlAu=WYu=xh+_-k>6%fIvhf$Nc^cokhUX7~;6YWU%V!Y&^-7Q2=3DWKz3k4u=zlPK z*S#eEoSzVN=$}D~<@V~dph-TR-kaXByLXH!Ykp%2)^K-g;|IA6>Ar#f`jLwP<`dU? zrs%|j*~FOFlTS#zzZ~=MZHC|Bb9a_PR(=U&=s0L?Tp5S{iSHLdfF{CHmvmD8_ABor zdl;@H>u;S)Bzy9?A++Kwqj(_PP&4&=^?&QXzq&a{Vlct&N)KpZ!*IS*>7^0;CwOPeRR zOi&%Lp8_9WOuHRkk6Fa(HV6imY!SHD2x?JL(Y7$h?sWVYIt2io7hbCsj(t<$siW{S z1%coi*6d*T;|~c5iIY)pvAUV%nGQa+2R4!0w;1QVRO7@Gm1SZJt?W& zWgPn86v%HEpkFXg0r;|!+|pnpnVFdx8HejN)8ypjVhvo1`ruE3R#1g(=c8(E8NSTA zcfY>HFD^bf&YuJG1F_LSp9nLU{0XH8wa)Ni<3+uG(XCEJ&%CR`mX x&|(#{i~dec#J7lo+zjJk_`j!75J=mO!hzqTs6u848OX6A>MGjGrAk(z{{RyiE93wG diff --git a/help/C/figures/glabels-template-rect-label.png b/help/C/figures/glabels-template-rect-label.png new file mode 100644 index 0000000000000000000000000000000000000000..e9d5b0304842b8a259853d79da79b63fc16cdbad GIT binary patch literal 7924 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π5if9^!YGnQnFV_zB)ZNx)`O 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

    xvC z9sX=qh^XE}{5Ql6NmF~{sh7$RZL%g(4=eD-*#%0F;o%_&xF);Y-O*oZwQ&iFVgw6 z+Itsu8G0YlweU0RNOPT`^V_k!#jMH8J4Lx9b^8chVrJW)k1Nh<4jZE@Xm_IE_Vf5c zuZ<$(&tav1XBUxNei7IYDR6FjM>vK7U8{I4LLxYi`OhrKf#=&9jF&Wh2MaSFtj3&_ z&GlfT%sG#iwOoe!R}*NM;B#{P%a)>}m=zcXif`6WZD8hG0+1h=yp&G#8EySShD#uv zRxj4TualbcB`AOuMn*O`cVIJ|YLN2%DJOT zWDlN}j--vBb`Wv18Gg*9eA{^0K}eaC2Ew6pWybtEu25SdVL6Ou@z`{j989w9K+W2} zJPmFjJsBD2h5?HA1M@7IctOua(btvY`<>FN^F2Ygmlmfz$-F<~T8Kq2naG0GeY3L1 zC|9A_Xt`2my_p?FpWNXg`OjW|1DdSgH-5nsexe~PbRP_mur7WzE@t#r@#K;s9ebr7 zlFfd@Bv!$vMYi`(cuSV&aOZ+IMWsc7AvYu~kiDK7u5v?HUU6y+7@ZPP!hsf@cOpJb z;t4<7%ngHc(mue4L)zbiws9JwVQqw4M)b2u>4Pi)2hv;2s4cs?o!5bp?8a6nZTsi# z&S{Y!d89VPXkHk<%&LYIL=ML+&~J(icn<8W&*1}o9c{Y&az`s`J^M!}Q`*iNP(gP8 z5bC@2eNUa`MG_k6{J3w`^PE@I#N|w-$*FDq=BiIhwdJZ7(5h^o2m;w?i?neX>PS&) z3Us=)x5pDAqm!&B>F!cjk|Oygwp^5$d{R_BkRhSFc?rjlXdH(W*8+hM@m{%9t;>bs zh3fidxf_zumBJGvRRyUa^#7nctGxuzDLjj!B#pH&6NuDaZP-{p5bd*ntM`8$yKe{q zNU8!nG*w>;AC633=_J#z6YvXb`@cI@P#=u zS(HcEnBYaAtl3sFH#RJj7EY{es0&-P-z$KcwV(h6!uhrHfvrSk_hR!Y%&7&#>`+k| za-D3ge0h7oWhmCg`T_xbG|-Q+*(l58gLFv2u__=iVpm7i(3j6M`fjz8JaZ;{74+Lb zM^Kvl9Hfb7$21V~`2Mc0F_@UOv8#6>iF5bF%=fh*FreiUEsq|UPM%%vtru|v*nUx!H zvQAh9rpJhst;wm$LvVb)wP)(v&ZeKk7YB?SgBQGerTVqX>PL;JLN$$phW7KzmTo3U z>WHC4XEcXl=q#<4*d!#3kH1*3cfKmpr1IoG>wGHx`94G2kSf=S6buuie0Nk5lm7JvbDl_6@~1Y-xMtyXewLjE2e@q-g2eYAa2J4olB_r zGw9+I&{Diek0~<0AUHi&LQj7_myA=o+I$<)h$!ROs@4b|{F$i9z@DVWX>zW9DZHlfpq_FL|Bt%h5!1veDmd_V?xAGJeIm)jpzYiA{og&{Ey;=YLsVneo z^Gd``0Nay4RtheIm7;B{vv>KW=xsLJR=a_>xn47LSFLN(ghPDadL}n`5SK){nt7Gf ziKf&ZJRs#25Y@k-Cg4o_3yCF$!k|hC#bnzqRN=1XX5>)@8BqS=~>IVtO}iWq3SL_xW<1AC&{oSE(*Af#0y*`;q-&4JA& zWthcRy=4~6HToo^TTHz=<8~r-A*&4y!Ik}!DyP_CgGo^NwMXU|1$VVq@qH)67{6ak zxFK8n70me=Qmp_%T_g_RdWHkbQ-5J^L~YHb*unQVarX8wSZAs~s{Z7}g(lcw@v-`p1`Q-$K}d zcY8Y}XE6Wgz=y93=9-S+JQn_mB$sPW!VVO6`X93(9_sV^bEb~xQ<*++)s8zuErXv8V`f~c`+P)~N!uPAMG7&EVL9E-F!yjD|)nTw)f_wV>mR^zG7Ns8NyI+UicNOuD6EYf-TMv%wV2yzO&}zCQiToAbbuOJ@419c- z9k9lIxdsr?fx%$Z+uN<*(GK5g`qM>95iD;VVNhKI>lyMQ{KXe8^}+%C~$y}onWmX&T?&@)iAGlzUQ4gX6qHkcx^d$Q))1Mq~h;I};3 zO|if4Lz=0pI&R<{bw|A_x1DQS`Dq=2J-+Uwe&`@MPKTnz^r>$E((}Id{vHKRmn8Y{ zO;J@%UB{}1%_OOy1Xf;O!FNM&s z@pC4k`3KN*OiA_CoLUp9F*!WGnE;XoNsO|0ZHYW92YGqytRFY zDvg(PiQpiM8I~r8ORT^TR5z>@6|>K#Yl7g-OP+_jc|((mV))m zhpra?G}~#v=<>1-FW~X13&B8s`{qPv{F&e)3rbkcW{cn4zdu56aeIW%NH@h)j@#8c zIC7|(K-g#Cd2GsPceRac7=2Ic(|gsKfMQm2`Z@FQbOl5(7=DF!I)CevLj9@EuhYlF z+ycGGJK{$x7dcFXS@{b3y13Fq!DcXnx>A)}NQtF=Bx%XWJL3+b!&juCnc2c{TMoY1 z&+A_yP;nYM`SFXZEIl`7>RXN9|M`iEb7q#t$+F6_V6QT^Z!R}m>9gn30m9Kcee!4){ z&C1lf?|5!Kanr}E_2XCfWf4cf!9=yz2b*hIe6OmSfsffrk5lb|yh%CO`QZb5J*QT& zZ{^=ZWdjg8&Zo(ybE|Z3v>PlN0sj`*YZ!>)THBGt-Ndi3u&;wb^q zy5PUoFn*~sKhK5OQAZ_a|9TKFjuOiUtA+wLzHTZ;WF%hrF?1^k0bA|w!;rV9+)SX` z+8Ijp-g2w#Q>jRBaOmC9oWc)&qu)_}etrM|23!FQJ52rdXpV)QvEmXs0@Jpduw{A8 zdbDUuWh9bTU*#%}LaCT=$Ch%kN7xg2kBJbu2*;D2{+A_Orpw zhZL$H$N(0~!zYS=R1oE>Qx5Q zqsQclmzrYnjepPqMhp$1^PBqjGjg|swoTI27b4t%={Z@~C&3MDtvwrVtLT>I|6owR zh~}&HQ(o0o2kROeT}(}Py4ZbnE&X&!Y@ zbK{$2H(!!~BhGskXux1>%gu3w*0ez^f@kQDJ>@XldBb_u#3FbXF0<|~ zIhmiE`|a``gNrLAp+6?9b%Fp^(8xdHp!Dan0RW+3nwR@^;-nsJ^gh6Ipu%}RJ>8uF z#2W!fK8u&bad!mZq81hwviRMVfAj{zp%Ip+R!W!mKSnZm*raw|`xex@>aPlXPJsmp z{|9r+h=(&CkVUaUOxxt0P}}w8$|*!XB}9)co+@a|W`C=o8QkYZewZ>iPqZj0L0M>d z{JJK2%4wp5ecgYodp76060aiTblyi%_G;p=JADB=h80MEeZ-=Jow^KH4v|M~u-rVs zpixQ0W*QYAA755>0Ps~qwkGupOHDRQ4OX6NQXj5i?Yh8>T=tK3Qgse(V$gx-Ft~RChbl zDb&ohJ1X=LE~D<4B~(0fSMRuY^035pZ<2eK<*1==5}w_jP@l~^OFHIw;;*3n0*A*2 z3c^!%dyIM7*xuan9AEXh**^h{E5wn%Nqbn~RJ;x|U2EaNHe7;XFpu@&4s_;u7z>&@2 zb)1cdQjl6n&b-YuU@WtX%jX#IE_z3#z-PHy^MnRyJGYzIk`6oVfn~hBT%&{2#$kM5 zKv6}-v8HLMW2pelNgsc>el!s{Torp(GeqN|cENCRiiGN{Pf7IFE%`6>+3;JYy~Xm`Um@3&&FiVf1oiU1kLBM~ATU(xf!Eo<1Hhb1LH!4R z`%gAfsYUmx5P-`mZ@rD+GC=$b7tSCd_%0y+=d-@GEW0}7BTMf;iq`*|T=YMI#s4KC z>7RZB?*5;Ir2mwecH*eaDbs3qvsYD3jEPZrNsyM6ZFfD>b8>P5^1OhQFVOK))A-O3 zqC(5G&06Qm_;`$H9&mI49zH%VAK%^KOyr=k;V6(V1<+CxL7|~=u&}di7y+coOgfDK zd7h`J>Ei9;(%AQcM$E6tIkhvK!pF_68u!{CLo!#b&!WBh!y+L#_?Pc9endpXzgN zg8ul5A^jin-ZHAn_S+X;pdg?i1|moZ5|Yv&Eh*hyQi7y(mjZ%-2uKLhAS@7&mPQaH zBqgLny1QBHOrE{}d+c-ed&b!Bm-ijxob}<+XRYPE?zpab&0oxUk*T@N{=n_S3~M<# z+BTJy?EppJ$H&L|&mna0-vu3VHde(cU$bE6@DP2p{UE7J*lhzUnKAuSMf@hKU9K|0 zao{BJfohq7e_%aa7!eVH3Lo%vXmBpo9?N58y}6|Yelr_95L5L&`Npr{)9KygjQP=b zu8bsl=b-(=dCs(`@GdMYWCQ^%4>pZNT)Vw=tfaFKbZd`&&R0e*p`BDSxt=ZjhYn`6 zD}IDjI{dXZ`p(?s`IyTJDu?z>#lSvb3aj<0h6Xq!3WdsuhwfG1pCLp?zAIs2Vfp&{ z!fMJb&-v(4k(rL1T)yT!J2&_GV1B%%2WU&s;i)K+{~_{Vd|dzH9Iia^)K-40x>;3v zg>P)+v1`SP-h{k^w(!)VRB!9uzb*pu3WIo12?g$fW!v*o$@54@M@MIVas$>hXzGIcXkipk3-j`H^W6;kr|AiCwk`!L@7|wtaBr*^%AT-A_z#uZ3+Y;QPv;y{ zj?FrJe-y0HcCSiNyWaPS5;^}rGGEbzhrpgV;}y|Khx4whrX;>e@#~(q&$(Y;6;;_} zbAB!o)SKj%;?r@vt;{ufqkhq^JMT8)|Jj19ANb>eICCTdQ8u;gH?hB;feLHlr>Jen zsj+HlIDf2S(e0y7;o53i9U~a}RV^Gp*>PsCCUi`PQg^}Ai=oBH+~rD_#tZ?sjUO#78soCmQP}vTP>)P!ZN1u|`n96s&VI5%y|>5sHwTd7^}f9{t{Q;! zd475Mv1M;sG)`-CvnjOMUS3`{cXN9A^4rT9v2vmG$w@Fr6#4BgC{*p=#xoztRe`3B zFhB8qbqTFT=Dh5L8hWEK8kITIE-g-=kiQjg9~e}7l@smnCfAKED0bBC^+-u$MZYIM zKJxg|{pk`#x792CfZ{tEM=S>|`S!uP1e?V%77aDu9HtHmJYUBZZ0V=J-|#b=m}$`? z_dam`aOHnvvSv6r7$z%6A4yyyeLv^?K_)0rS#&EX@Q34$U#(}XO!>;7X3Av*4VGq+ z>p)FWlPaGT3qa7n!}g_pd=q{E6TW}{o-t3vr1>E%x5L5Nd7!t~@@t9hWbH@UY)nxI zWzfH2^?g&7)8a++WY4%+{&)ghDDaTw6teS zz3DK0Scp|HM4?zWp4Fh<_gq)!1mX$wq9Wt6RBj28y`67R=Q%hzi8|h0JbLjY*E|z> zH{oNFPC^n1lJma6()97sQ0eu}j}yb$PCZDyNM=rjs*0)2#UgA=k6ZB@$>g6Vs@;ZI z?5v}$|Bh$JWOh=j4R>*0dTZFwcd5F{nWW0{_ux`8Nsf4zU z!$q6EG?Cf7qt@IzKK`p|TwN(ZOmowPhME6N^ty)3;X}iNLmTA*mE*xyNv+>%!E0tb zl|h9+nQlRp0>je>K|?K$!m7}(U%w^@dX!jtEOsY@3&=%I8uEqFvKJ{SDKJ9`u3x{7 zhX@LhNE1#?!CA~Y-J-){=K3eGe^rv-UPZY4vrva`EVglbA~?0~wTU#+(-A)mXCeYj3ZR^y<2-WYHdxB`Tj2 zQobz-pwoDNUMdRJnrghNug}6UsSu*ZJAZvjv0aNfOg}o`bz!^nmampyWLwKl`%+*3 zaOU%LhibH$nXFfch#%@pX6A!}51l-N1IO{IJT`w`9`Bg5#wW$bmP6M(STKiIUNSM| z`=O34z;-sTJI(L1!sUB*1b5(Ia|+!V{|I8d_0X3ppHo*N8G~;x1KQ0zJv{L5@q96Z zwlWXiTqEIlIW79?et&;IIA~Va*KMCY1FigZh3#0}8V@*qB*X5I^SwkMyuH0aA!h6z zD7PMFwYRrN+>d$+jtzqBiISNAATI7QX~qDC;-=3=ynI%to|?*$os(D(Fa)I5t@9A`%b?$&c+e z%6%Fp6}|iJ+$M4w+>r7N3=BwgQczHoCx_?ZfwWJ|@{o~n$T+P!Bqe2Xyvj+k6I^%l zAkq)c{DlmL!|bWKPa;^OcBL76_gXJ>c!WUWW3r3Yj%kX_{QWli+@VTAc zKdB38oKK`N)~y*tJb%g#1$%Ah)4T6-OjiHMeul}Ae*-21Bpz@p!{R7~z1vKR6;p+i zq2Dk1!vkt+iL2Gs)%!9QgLxW|l_7v8QNHQ%G^_v|8OgBl1vNz%o8MesUF}KamYe+y zgEpQyl0v8&R$QXPsMuJRk2D!s&t*Re`{;6A3W|#x3dX<3$n+Z0Ja9Tnc4`&sBM&CZ z?Iv`~-bY2=*~HMu#@g%)(5EsZRF zf3y43?pRtvTCxtU%dw32UrY;g7XLD|FtB$=7bo%z3a&2Xl`p1Z3srq{Z6U8{$yy%b zU~v_)5++?=Zh%25=!eoDNQM?m0;a9kRK8*%Ad@OBEnV%;21FxU(C>Y?VbE?r09jm) zaEqFjmQl4c^5Fm<4BP%}Imq*}j}BN^Sel!fB+Mz;O(e`~@X7d;xxDkJFI{>aJs)j> zpba*UEx#w^z9m}5=DgIKN9njWTr>qy6C;gI#BF_UE-N?p;mWBVgc_JqE8}J%gjRwa zJYhY_#&(mwj_tR3+U`|%3s?IFlwu+&82bO4R_~L082(Eb4($vdyZKxN?ITVLJtifc zCloo~Z6-XIwg0}VvU_Z8h8ll-C6cW3*V8NhMccSUhkR}upK5EpTO1@Mds1+tW6bH~ zbDbt(f`i%aU~dmnoDYN>Do7#EJ?#=Rna#<%{HH&9dY~i&a$hPsx`n<>=?oG9e0==Z zuV3qx=c(i`gN;xUpKX1#oas399-^(Q3wA=0k(0aR@9?)37IK|3VK%nj!9k5OGD5=X z*;#6Komcn8#Kd5ygA>RgfQnpOTPx86fa!-i!$s^abO|^wDYy8`aAh~mG`~R~HlStX zML0N0%v6KnKHdqVb*Q{_g@9SN?CHSt9(*Hu9~zgcs1&EAArOiwf(&?8Ot&Z~Hm0W$ z2UDh~nF0%(Ms-x*NpJ>pV$5`(U=#DpE}3V&LN1(=%XzXLL541-3u~eSJu}4l~s>hiK^O7dJK( z&1s;Mpmwo|WToB2%CX_fP!+HJq<3YOXbG*qpQ8r`9v3+|7*p zo)Es^f#ml%XaIJMi}Q8cU=8tC~Aa&o}-j%*i#PPZ%GLWZ@0Wxo+Xu)IfW$-e4jM( zH3xSM;0E#V@YIF_MwJJY*w)t8-|x7E-omCBJfB-QQ3^(7k_u`__@qoi`(Ky+6%8vp zPw!R)A}yBiR1LT0IU% z%`oCe8JU?7@4X?Tgu%$`7*9h(GgM?GVm-tx_EbVb!r7T?vuUbQ(Cffvxj$Q-qYrL3 z_^I*lvWZGbNu~XP`vYs_)Ta@y^C@pn$Sw9MhmBG(RKZ9)FwMiCY-eG?>oEHRAPcNA zs-|eDsC%z|t}gzDAmZIS9uAI-R*GaW^bTdo!r|bhpwQLZ`x5eFut-Dyl)^7xp!uVo zkDbP8A;c&9iRyj0u0YW7w1#|2DX3s-MtUw7K%$(PndzZ5b(!m1=2LBVH5NiKScwIE z&)kg*9y2j9(a;2Xg0H^L``FR@7u+oFw6L9SWNz-(M!1};?1`PnixIkolm!uzwki#<)FZvY_ZYHKSOX%*;d96rqb@`ZUtl3a}~ z>+@$-1Ea3a(a}Uthl4d8DgxgO&pWtO5Ki(u>$v7$i;;P-~3(8eE1{u7Lph`Uft-(Rt28p zoha1RAnqfr7(+ut>pb_XJ$9c@w1|m|duaWJyQP=Pt#%#pS(!LJu&JZtEibo+rKKe~ zt;ZpYFOvea8M}7v+U=lfN?toM`_K77SD_H=?Ayi;Sj&KVm@;5_w3e`Y3xUv$eSR;O zf|63ieQUZqSzv5*6gcrBNFZw$DT#021_1z42YL>UXk8OiQ_g3N{tFQwa&qXor4i70 zC-YANyJ?DupCZmtun;KRZ8%q#{2*pXl~&n5l_}A(mXD>Edrr4%YP` z@F*)kgDxOYiGX$W4vzdg4NXl~Smk2qm4d;M9UP43_S^&EPwB$D65O_-hYonH^5kh= zqJoJ@Mt(liK7_3}&k~NXmRZV5u9wq|52W95d1ZO-EwMuq*nmdWY?uH#hJ*!ZmOw(V zX7~0gb8>P5@GUZGn5=P&Ok8nV`%?^O372Vm@cP2g@9usCS#?-gSZ8M^6j^}d+uF)% z6pB4$WZJ=E3`rPJL&M3^n20m8()CY%3k%p_U$^=5wYpP6QW6qEtlfnNNGojElMN#8 zV>p?XFk<*oWKb=YGDHU@CHwYhT31)svlvG12VlpCOm;BY82q%!B7VMmOML^S2PLJY zaDv@N&j9+vnHdzD1ciLUfU66Sh)4#z{64c7PZBvLrP1oS|H{hB*>$qZ2umpuC$l_= zTX6FwE&LENgMPi1WiSyAH>X4%K3sy?hl`5~-t4ZfE+L0m2~Eu*&~G4N9sr;PWDVD| zuG(RMQD;4l$9G`jS@mPE-TAwrMQUf3#6arKZ->-4G#{U4|TV7bc~LSY#aLJC#0uSX?%INc#x2g zAn1L>#=)^OfK-DYnW5xsF)4;TL#zu+#IpDPB-b4-xL4mwc-M)xu)hFd&6ApY0B##Vq;spNae{FAa+`GfATDxYHvphw?KF+ z1xyWWNo-u)!r~(Iy^@iU!Oc=o`z(JvG-fSaUrl!>tObo2wkKhGCMxtM6Vk8nm8pf7 ze8BPB@aP#D*1vOJ*K?1NeI|^Buq2tCo!!|jS!IQXM}8S^iDk`wU~tf*ClKc6i-Ys1 zxH#xcMckGvasDaoHw11dCz|vR2aav)`FA!pw#F;h5V|RFO(RZ=#6(0?w|kpn82OXC zR}*w9?UGYdr(pa84YRwm!!}wS`r*R|XwgSYPcJPgsqm2_h*#$Cr*KFgt-Nh?-wg1X%{Tltus@67%X^3Rf$02Hnw?g!;fu&Vy*>KYsz)M3`t*C$)4 zVfZsLQmoAk3)Pd?*dSs=>;3_LPB(QB2hjip=X&Ys7Ps*7ajE7X)deT+8&D)09rD?r zOg@z;DQ%4V8nnF#Ego5#@etX-pqld?e;q-Q!lxtZ9K#4jRg+FHNPqSB?*OudNsv47 zoQi?rvF&J?Ts&)N8+7jJ{brB*!X;UepLFNf330xA>G1dOe@7Qn|Ma!6pngsTw=7jZ zs9KpCU=wQc38}apAr;e4F-s9;Nc(}sR=a_2d0lR$0e^LP`Z9*E33WMd{3D|~9iA`% z*-d_g!17q@zD@n$!RtiwJYaTmH$Ss^?99Qs4{cWAsV^@rIYVlQ@wylxDiLbkbM4IQ z^VhfB7>a#Ka=wM#*4^2JO^2q{vxAyRDuzbrt;h34$+c7ME*~P+!uZ_81(z^%l~if< zNB?={{{75j1%yqe6cquYfy+*(qs4Z$GR6CYPP?V)Gv?-+;er)$|A?*t3h50yo*3#t z^~E1S?jFI0KCzut&N|#ayP<{xcSvOL?mVCw^!t)7LKT>BGLBFA;CSK3^FxF9n~r&* z5;Z6$vDcs7%;v^lQY`P}_7rxG6=>sc4i}yf@;h}?Y5e?~j{cQ;9#{Eou1|5w!q&z< zn6)%I$H7m{+vD&sd5n_(&0frlMjrlqOTO-@>TV>rGFkb;M6XdH5SIH48hz&q6>^F) z;rbP}wdoQ=nVdC~11I~+anlw8w)Tb%SQOvytXq-{^L~3H@+*&8s$5=n*fqnxcaK0` zEJj7^iz0!mAu;mVrjz$mFVF6uMOKU^fiJ7{6}jWPUd(;^_)Agou%3_8vPDJhg*Q@D z*ZG&$=VLxj57;^D^E2W4E4y2DHOScW>Jao150tw6R@@i3MWUD}cw_O#eGnuq*ZHdY z0xasS9`QE}Dr$Wq?9ZGSnGe)PXK!$g>x^vu*F!B~I+lRY|wDSC4@<+-Ay>*dN6S&gmx@W77kHe<+eVrGC z7@C)_o@fU5kn!7XZ#eZh<@pXd;L_;f`@a9R%xU2S0qcAU(gz1>49`3S!k@6I05y3V zN1vc3kuAZbjMA_&YvW7r*if;B`0Lm4=OndL8@-{~&r8ba1n<)2UkaPcSx~=8t$;&C zWTd+DH0j-!V4p=}DVJROJ#`F3nd?o`iT#$Vl#}v|`K1Zp^3w0HpqDd$Z8~%JedM^A zCD^bgB138*+v(VG@;Y9rM@3HX?oL_Oi^ve<$R_W6$IrzSBCugrPA`9yj_vTdVi}rQ zlFpExg9lff$)LkOW)*oo#a`M-uvt|uk7mZeHu70|<+44m*!S*XkAk&+2hXxdH^n-t zENhnbcwIN4?cOj9<2#(;B&nshul&gs5%S2qNafn&4>Utc+htH`vbg5 z;VVMKfp9xM|C!u#yX5iR9;doLt;;y2f7OTgk)TGGI`;ropk}9}AZe#n*9oqo;n=4P zT=A;Pu)b&QT3Uw`TWxvw0}FHQ>jrv|`M0TP0|{B6Ur&R*z zm)W?bJd7ykS=RX2?_!{QyTjs-*TQ@&^czv{s#kW(US+L5!I0^A zFzgm*W2^E$Cg$n{Wnd}Bdl&|y;tsOEQ}l5Kca=05s3a=HH$}V&Sc@(DYmOjahtID{ zXqD-E2|l;Y7qAojjD7JQ0w>^|D~*^SRPF!U9sxg}O|v`vC{h*jJ=5lD{_yEjt$Al06!%6= zR05yL<*NY@P$@<5*sd7(uf&7|W}|vRYHDhzXG1$|yQtfNAo5VFP#N=x^AKuIX@rG+ z;RFET-Q%$lh0Qd2Nn;q_Lgoli4PL-LK?`+H&kJI}Yj0_L*vJpsAHLO10O1+ZU$8Gp ze8ofhgoTIO{F42qZ|CT^^E*cg~FGwo4kSoka69qA|kG9+LNiE$D&ZD zo1p2%e)v#kKjjNZ5LW-%20B{WiE0-BpN1zVC-8AZWMt0oW#Aj&cXNKDe-j-7-vmr8 z)L);#LoO*Psq;EaVKaUe7%0)D;Q}eNpx~#`*+AS|xrMJl@Wj4yMU9qTKB3X1_^30L z&w-kiRZ(8vX09y?xCQ#auOn-a_@Ba~2frBn3S?4up3*@nG;rOLwvs@j165v55no*F z;O_1YP#rKoTpWOVKnmTR5=bAYy8hT$KghWTLe0?75U3A8ruKAp!j7_T4i1n^$XHq~ zRZd1j2`x@ke0-7LJOL?JNZvSHVv2wpIMWlwfaA)sOb;Hw zBTuEw8&AYIJC3zBHf9GG5@mrt7FN*Cj^o8+e42+62OQnr{sKk?fcrUG4M=FncXD6B|4&7}X$m0ClCJrpC#_VhdN(9E>mEv;aG#-PTxx zdS`eJWCYUs`uZv=+i<7h0=KuezB&92{`{E^otJx+6`23b-^*kKZ%!)c0zZLN4MaJ{VHazc21Ry{9=MO+0NTfj!0EtzEk@0N<`tyQ= zho|R|U?I2l5FbDP1?fh}yRg#$R`vFqAhDw>OAJ}P9CSF8;n7j&lr zLc-q4>ZBk6Mt5me){n6_zh{HEz|MYAL)^>cwmsVdg=7DAhxV^Efiw*~ z4zfc*Nhyc%5ctqqj2+C_)BRN~KR+}m@E2TmN~|8IzetWFF^lf)Teq6?$3bHO24BTP zVJQ!m#TM6>>@<6FjNaPCboUivfEG#SI zf+wt{#mmQ+za#KS~>z3GM{bz%Inb1=hb7gw)ddF$GmN?)YjGQw=9Dh zB`qNVHOvDR<(pFt^nqozV+YbqT6%g(dHRej`F@0#8F^`FBoq}{@83^LOY_&N0@Vhh zpZa`9dpr0p`bI}j0HqJK$fEX`1O@da7%Ksp0$fdJ)B->T%oyQL<{?#HE))q(*87Al zTtlRJgpLbp3=HzK#sd~*Wnm$|apSug2l{075sCxiGX&&%KeRAf?B2b5sI@05Dh?2b zAX>fy6~MFMAuTN}goV?+Bz1LRCo!P^KEwW`wH(kYK~q^d7cCrlmt9O%HTtjz z#v`HFmx2Nab-$vuX#Ds1V0Vj$y1+r z-ZV#CDk37H+KvJxLTKE;pj-v3!}Y6I!{GF#_y%>WU}&q)A1wcV)8Gi-lgx6Ien-}B zR0aJ6xJVc`z@5YZ<| zogEjW!h#na9~i*(VOVT}mly}LMNYAE)Epqpp_Tea84;gUb%7+<%Jc(R_k|j|5ii6F;RRc z%-zBshx1Q{SD^Zso}M1aZcsO*rGJ9;2OitV#Dou|EVUdEd*RuEiXiXq{tYe}v`!lZk4WK;q4Gdr>U{IDXNWjG3!H}Xd zDdd5y(uNMsmwWp3ArlicYbi3QIjDJngra|I1F?u;szBK0OF~t3XSOBmEFYc$Z0G?S z%NAy2z%s0t`uF7c8a_U_XU2g2y?3v(Vf@d<%N=qMh|Z9p{DE-jx5N*ylk}AWz7{(D z{=k=UXqmFDwE>wAEe#E;{`;JtC_l(ZP5lbpuVijM4>=6UHEer91yBK!cx;av79E|OkfE#%VTm!J z)%6ceu9tIfl8(zoTfB!MjFQdMn~tPNM=W8XALm=N;uC-wOBQ7z)+KPg1l5V zhLI;JIsTtlZ0rRa2hWOtgu|>aLsFh@7qkxugX-+Oyu1z$4)AQjQMTJ41Ogcd;%9OY zqsJ#EkhcRm=L>a8={Px^&W^Sr&8;O!fc`g=S_bgbb#*>)nLY<`)%5Jpm_B8`!5YL^ zpv0hUI_6K8%}Jqvzj^3-+-nrnfeU@KY9ymE+Kh!6*+$glF0WGg75O-=N z9C@0QqE!XsdqJZR^!}K3LEkgJBF9zA%K;s5QMOW2tuUwD^Py?{&D?Rg)5F)=BC(Y} zFvY*Aj=lLe_n)+s2;vd6(_xN-d^IYn4{SNmvE?FkUj#u4p+v1OU>ku%?hyk+aY;#k zUmpp-vn32>FvbF(+W?-vt)iE}8bVGnFgy%gxjwL*KHlD-^5uFBFhJ7(jO{KEN+2j~ zzNZogPZforI~yc$Cu_E_EZW-G%>Mlg5%V??kq+|^%wsPT0l`h_ zsgIx#;ujW9X)(cF(}QKs(9m$=oD9|~_%%*$ZVgpcUEr@^OmcH^f#_Wa9-&G3So}hL zNK*~xFJcB*6{jy2>hD8CaSe`@HX|81Ig6{SdT#R<-;ct$J>LN+Rps|J(>z$Bay@(= zUc(kwQR!=JOta`o0fRMnCwluQB>*R2h9Ti-@9u{959C>3dHFsJf#WceyLaIU{Q3EF z5ri9SI@fm;Tf!3A9NH_%07A%e#;ecVN0* zU3u)MaHwFd?gj_tw-)(ESjvA!+;fBb0}2E@CNm2Q0ChULx1?(@#)2uXhh^X*dRdehGwiz2= zY@R0*vJ@(u3z!lJ&P90Pxr|V!!{%SpS^?}JqF#J*@!x+qhJQ!?{(iWAX`W!furdH` zDe~ndMaD)FEcl|Y{{)sm0BuUM&<$(LuWNZWhfEuoS6@qCdBEY%iHDH5!g?V&B5mkePb4clZQ5EA@ItFN%| z0&{TnS7sfUg~dVuy;GS1u!bccf|U9UfJ2Cm7G`G3krNO%hWq=e10|%SU}I_JRotsr zJ0YRf(xMM^_wou04P{_r+SP>7(Cr1kE+S&2qH+;BMMP3{Sz%E{B4u#4_xB6Fe959% zoLyOgNC|0MLTv2(>S}&=HZ2QFm!5^49jkrvfE6wkM09{k13O?Zf}nVI<_)6(R$2fG zFt)#bWrKEM4i4M7xw#-7g9NvGg^GnGqEZoLUn?!-n`PBbNLT@mz^u8DmcR$hpX>{L znZO|n;ejz&9pM4nEm&DG+9#{CGol9gA?@?PfIW_KCO6jC71r;*X?AdNfvlVv%?|=s zgZFWhUe3FB1pBU&{BRn`Xwc~goK|xal&3rZC&2$|ZuzpIv( z7UNg=43ITlAj~3g<5Yk9rW^%_-aj~?3j~$FWq3GVw;KSR*t!Un1n?h*hAD4F?2`fC z(+9!?1`MIr0^uC=wA^!WEP+Nj=eJ=fD~so6u(Y!BHZ&CSS-|7(bm{FWRn^pbk_C8y zWgvJ1hivjA*zMMqH8Z1ud)hA50<$Sqm%jWu+*r81fMg+zX3wU^#%AZ`fsC&Qdns)l z@9gh`?3F$A7~EbfT+S-Pz~hiojuDW}YjE zQADE^w?RQgy=;f!KF|h3=eWn%>f%arR$#A^uu8?1I{4>+11yTQExRz%M*8kN{58j+NBcO+JM}@z>sU)>B!ApDdR%E_>3O`YAX$TfOR04f)5-r z$=VL$j=zv;93 znH^2lKl=_9REU-JT1>DX#>K^*VK~2h84?n51ZH$1abPy!;M*NnYm@meudEM1yS5;H zOl@W5wA|dM8W{Gp0PU0bT^Ki02dE%lyP!$rKsZ#DMj$KIG(=-J{}h5FP$D0P*FcnbIxDoZ0^MIvU_ZbbLx?lU{Sdx7P<@iX?_wn{e~l;* z5P;Q-7lRIWwo?N!EutE8+#vzy772E#ty|EMz2dw7kA4Qg4^0K+n^I*PI~&2b54+6r_|&OWz$~L3pLNV6>Y^{+FGr?=VDrs?9@LN zkJ%ZkZHr5_{37)L>k6;264A*ZhUky<089jxRdm+d>fuPzazfgBK@Y|M){UP=e>g+0 zW*yP=;3%1Y=4irX&a?K<#o?X6-xbX%X4-tqX^iTK}>kSmrIKst2P!o`^Anr>n z{X^aoVum9z{fDmN-$vlvxDYZBh(LsC9wKdD><#$5|ChHeVIjl7!j6r zz3Bx1b;?J#f?u!z<+ z1rh?=07R4_2H-8Rkl^58B$A4dIuLwDJDaLqm1=K9>ypu; zmoZ_1FgG!23Zv5SM?XEDQY6RRcSRBTGWlP_ZXO^1l!r-iCrrbs$Hm3P;Bgfl&)fIo=afK@ST)OVRPCcBxG-4GYq0qK`hX0Y?+RV|idzxS*W#TxXy^D!Y| z%S3Vg5|Jn)jyeK)f6MQ(l~CA`l2|}#2;P07%eJ=bV7QtbL+YLm>HP4!iT6noGj&$? zKO(8}GryJV|IFz!NrHo#vrA4+CAd_Ss=`B~OW+y-1{9aMDEw`nqFhWO5B`(O{zmFP z(Rn2gr0+ui!b?~1m=D3cwY&S5b_nX2YDE}2YmNfk^dPPFka znK!s21xcXnuQys;W(^9Zj z2skcOw{aaUNR?n65x3!m$U7@*hTDKLcWqpm&sdlW*<<=r3w71Q*FR+%_P?g z-MMZz)bGC|JWv1pw#=`T?eC0KU{;G@*L<32-PM5`W^iLwgHruj#9o;E@xGeuYiQJZ z8SAXI1aFjc?r-&EGBbH3UFZpAva-R zXe^3S53szcrOa#OxNrLf&CDr@ZCtke_|eh#q%Z=5!TFDYYAX6qaMX0qL>93O^b=*C zN;+T>W3A|<72XGkcQwc(PuD0mAHO*1Y)bN)W+c)TY69cl$KKD%D~oPMTPT{pAfn$GDTqSec-f3~;fp3>i+JzX`|sCGp$iJ#i(^wpr{a&TKs+Hatq zsF>@z26WcQWHd(J_BRsqX;pXN;9Snj+>bvjww1$X`mHkk6Hhd(vAun!WW?Eg zKGDzfa3lHcTRgGL2()hy>wm`MJH^jKS5~Y5Ye5%4Hd5M_U|7& zq7vSxtaQ|5_By+ z%N&6G^oBelS4-90*478ONw}=8gtXI^$FB}bD9B@QHnzwLSs zs#~;3l+|z{IVLt@KT*X1cq9b{pp>ma?Ib?BRqD3cv9$E|9xshAI$5_Lm_9(#Vox0$ z*r~wb7pDs&0&6BXco`DuuAmP2`J*HE%U4MKqzb00>K8~f9M(w{WZ#ZdY!eCo%L`Cy z(N$>#7G9tg#Kc}zN{EYJQo-^+5&rxf6om^b+eh^qqzYCCYbHucQa|6BczO;`QT6A?F=p&39Hs? z#ofu)sMzKisG0%~**5QMC`@(cU!cF_PwA0X5)px))I~s0cn+J4{E{F2p1wByMA48U zzDvpsLv-()zG&95v$?sGfIQm4*(~wnpsp|<-w~kBFX)43Is-i5Z!8m=Ni=)2HH^jb4N-ogRRmkE0sCFe<9SA+!98Ow%sdP>K4fZNL&w>Zf*p$fwounN2 z*0QpE{K)GTXQ;Se+$^Y|KffVn*x+kxY@D8*-6F!I0fZg6muY+bA|W-?O*xTAF&v0n zuMHq$z$XCk5C{eO2M^Tb-qF!ZYiZsAFuRiK_eUv}qpWPn%F5Z?T#OCQGUO(RPr4oL z-3w-B>V78@YMP&!n1;z38`Z$XYigPa&S(>r(oGyL>^9@guUSbE!qeV?kMh8C0&bS+b-nU65mgOYVj;j+p!^X!6$t>GQ z_NxSYZSd27znGonl95Razh*r5`{?siLS-GD$55i#(IFdfoC|`~uX=}cLg1YSJ4?(v zH4F708#e`B$a>c;a`)d}tIT+%rz^`gghx8J9ZidaiL)E7Tl|Xdf%s`_j~E6(VW88z z(5SjbGj(TvAAovGpE3QVXf>SqCw~8S0x%BbJfO{}KJq@!S-VY86DrUFBL-?B8@CYz7%S%fy_NI%2du z{J=V}0zk^a{DIdXKQ1NJ4>|FFGD^DN-5~(_7H1;35s;6lP1|D2{EcnM&g`0Kpg~F2~Ew-gK(jk*y7^$ zl14m-r26^uI}{YCwGqzAgi8c(pa`R7=H)m2U-<-xE+r71p@zZ0;JoH_*9)%1j~_?C zg746N9pP)GDrsD-4W|Wl!*9dGK_q_R;=-M*7~cqWBU^I7$3B1l9D?yMROfMlP8-cA z3m3cCm81oIonce}{R(7jdR`tLfVCSx%{Y*6dcfs=(#5cWff}9;Vz6t2--M79mf+D|K$iOx8<~>1vnu-v+x~xbh|ckX!jK3@7<% zE#4%}N^E1@RWidp^NxKFF&c{!!QFR8xW|WynBEY%_z@~mC87{Am3rooC?SM@>n(+c z(Tqp2T>E#)F`yKUjK@ZM!W=}|Lj9^&|LF@YbG}_?FUEF8U@M&Yj_S^rRpYvT#1(n< z`9rR?A&h5lbGmwL1n-RmQX?@f1K{8P%bVYSVKv!N^b9V@JIyO6f0V)K3<7j_+euzw zo{6o{67lHz+#zLC69Ku%4HR11;av6&fi9md>C`_*f++tVuKMIS&m%A-NoDp~a(%+x zx@BhO1N~&$T0*RWB!$`E&|&u`h}`j$`IvanpfInRqJIC$;mjkH2QvdhD4yi4j_Yn{ z3>=VhYsoz7VDd0%){Cqu>$VQN+~d7^=GRQOx%X>r0_C-P^)2w=jCBb zZIf4WvFlm>6eM{o>*cf{MJrGwZA$(8qE~}D=}IbOGI*q4%V#?pE`$*&j}@ezRuZnqNu!r3wo1_! z3tygZps$nh_aAlnprZAPY{}0&#&oNjxH*|>WYl5`goS;)4&4vtzC$T2RKQdkHwPcR zDZX@iII;4#6#9W+zc$p@r?#SG6>F<@Sp`0RxIpi4Zn@MbhkhZTXQw5;(l(CJlwfnf z(Bsb^qt#J!IV-U!b&NAv6BEiT3$vSI!mv&qy?E6-+~5^C1u>Dw%L9LD%I{n%665@| z0BRndp;31EntFOV9-j6edEE@RP(G5h^I{|V8bn^5733A1kO=P|W`*9WwA(EvdED<6 zc4!F(eLZg*TZ_%TF>?Xa&v(V!-i#n)P%$~%0&Yh_;gP!|CF^$119aDWta+)23w8Wv zW*_qoYs~niYFC>be;2>9x6jY(>qPMG-K3%L)M!U~vvC+%@*(z>mDQ^jdiQv3PKGpJ z9bW0G)ca~(ImJBo_?@Dnf?EcdZSs(Lpu#}jphhwXHzYbb21W|M4BWPEKPmL|he7yM8w%8Wf(w_*gL1w>!ysvVMDqX{4leqIoil)OC4W zQxXe*p~qfKPgJ#~;3(03v1y9xwCUAB(7J#(5A}vAF0lo{*#LIc%4(@vjq8Tr2Xw6rTCB;e=Qu6eR>t7R;_RBjXYB2~XDca*HAAtG9Y&mBaue1>)temP zIa5`&F@5m@Ii%PO$y$wR4oDQP>};gmR_bo06vW-B)@KX)T3?o+-CJda$#W~vHjbuF zv<>xAFrTkk+}S`F}EYNj~@C#Hv869~($bE{e+Dzdxd%agptizG3ep$m6lGqn(yR zMkOR;dl1mB5wkvIb6CDK0*!eNhHV7V`PF>O8_WLd0=3>}m`$e9Z}S>TYpar!ZycTn ztc;f^sl?B!nq9*VUr#T1`snriT$zA9dZmYQ7&3r%`-n~#{#L?jUBF`&YzzVrJT3lXRJML8~{p1O% z)y0~lv}9bXP`lK(8MDS?Qm>N5Rd=q&>+tNc6X^td<3zPjPT1~j-S^Yh2ofSPva%7= zx`ey038`sm%bx|j9$VpNefKW?ikPe2?u`>;PY*kqz%zDNGa>ZUQz5SeVc*+hI~5vN zVB;cS8fj@IFA9*59lw694amGv%qi7o=1F3C@PLJ%(u^_F(ZQh#9M_N+hK9-jE-Wc= z+^f3+@p@&2`eZO^Yc@MtHR;tSE|SRrGGRfN4m0c+WLDM@6Hf{zgT_H-so&4og?#_h@}Q4&PBya<>%hk9=p8h4c@9621g8GEOvqpCvETMtEz&C-pcCEsyZv)c+<(? z?X#+?uX`hjFt{x5iBkULsN*#;zHG{kDUTy6`i5`?9AidH*YdKpLROhY&3T&E36HZG zYmzr?Sz~(F$e(BV=SQ-%zm|?n6#^ava+oQhbrRrhBa}Wr-Mv= zzJF?~xUiF@aF(;EQc}DbIk_8jrSqN~mb&uvo^J^wH#q2|3`i+6nwm0RHOCf2hayGjs>IHtF+@gxgzKmO}4h0sx_wywyg=5Obn04 zTXQ5;;u85xiO}EemvzkIphZbqNqHI?8^4e-R+(HZs>&u4i&0%4x8DoLx=Q@(Zh!HT z#;oTt>l=CBi(9r%(lOfG*J zucHKCq5tPaeUV1y2AWPGwtn%d|4)lS6Sh59qD)MrQ0 zEu91u{L|lhU)aA)n-KJBFc7e{=tiYGJY{*o6!Couyzcb$uPEmrzmWgPF%QHKpuPH+ zGq0dLHY>{vnqPpr>=8+E!9(5hL9Z9w%NW=Jv*Ox0A8j^IM+usM1xFC&x$>dinVp>| zHaMqKF8*6MiS2_wco7vk)juS^g&y*fD%F?eKV&Hg?^A3@z8paa;cHOM{6n@6W8O*Y z&dPIJF}lldG>WE^JP7K8G4Z)XjE^wwIe`{uwDHu$q6?Ym5DiKAYO-GU2x_$Ug4jMa7u z^}a7tswc$)>KJ&Ji;%6s!4*ym1WUs`9?K=iPK)lxHhSfbEv$Zi#Prgs1$v~V1u${z zo;)di-mSkm!|pffO=M0xnFII%sn`&r>E!EKSVC<{Y{1VFLae~<6UJ3z5$jk=yuj()%#3OZ;X=k%|LWT z|J~XYMsDu%j11}G#hYOmD=fe7HZ4HLo$H-EBKWw->LRN{KYV~Enm0~1O1_I&nF9}b)f0)D<*aq(ax(w+>KL_?Pk$NLp?8G5-AbI zc9+P>-NhqkMkiSCs-Lfx{*kDlVcBenUB$)9i;G!=&EXTwzEgAYQ*r+`A%)fGjkswD z)5mMcR=hr6c}~v@cIkVBx{+cc|D&lh4~Me*|G1J}(j)W`BHLJ#eHqJGBD?HF_Rtti zj3M+y*?TI&V=YSxDe#i6u=l9QC*FAIH=f1CV&pG$`oX`9H z`dAruy5FI5xY9Q`m@V(i!9P`oGc`WwE?S@RN@H;%m%(MnznZnmATOE?UKl-fUMQmG zRd{^(6`#Yjxq_J5SOb&X2;AWmMP7e0q!uh_WS|ucgmM?O!ltdu=qK8G(QlHA(!AWT z9xnZ1JtOeF6~g$>T91u%^Ohwvn#Q3Xjzl3RTahup?%4oIsIbaq7G8DxUNq)RF=}W& zx3>H%j>n4fCnlm@&B}P<{_r(EcZPtSGzL?Ey*oQxxB~XNob-ri9Wk@V2j=E}`L$lC z^?^b#0tAN7rFnIuL+;+!1=}bMKGO#P)FkgI$F8BQ+!(F}92X8-OuL8^-AUR5cZ2VS zZ+F`VC=W*5(l{(x4QLFO6;lT@>KNcap!m+t>K*3_a&e;jO`fzB+`UJAB{}%?n?1_h zrLRE;mgxVhwGi}h$wvb*6rb|ofnrxBMG(1I*l#y1U=W)?@q<3oTk!NK2vo}YI8I+L z0982&{fNacUVX6mXB*5G@TjVO1TAen`vUAu*~*a-M9eU->wvr8Ax@vli)e&UB1V_Q z4`Mc)Tiw04&*r+MlDI0HJf~H_d&NmzU5Y>$7_f+b4OUT|iUzeS1Q1FtYghDR zW$F1rwZV`*DZ5p=(o$c4kz;JyN@}sHB2>YzHTYKG^u%S(TZHE3a`o`#pcI)*q`7N z@iBZFTp%{*o;B|3aIJ=s=&EhYmVHvL2WDhgWR;2>u`thmfEM+1s0& zV#bsi6!Up0ds6c9&;_^M(lJ$O#@P7QrZPE0-B(ZJn*Sv4TMc~sl(_NR*vj_7q0Id7 zxBXt{f!VgFZ!C-i-92pK{tQ)x7~m%`GKIGnx%FnU1z10L3&>k2srZtoNI>cC8DtT~zbj;Ja!gg|Mxc z+Sgni5Hjpw;kDgp2?4HtPN@gkZ4b>muyw9S@o-gCMPSf$6WkYM%nwTjukb>dW;p*~ zWvxyIYc$IZmocD0_TSu$3RQl!}&v7jIqqNRL4ot=e+z|QcVjWi|hGfL#>G>j=B zCz{nq!dxVhVj*1#NG`EMEEqEVKsDPnAEcnjDH{+8SHzGW(oi(B+am1AXg{t+588u57T*MN8Go zSuzo3lbGig$^6uqg&due)At#y0>Y4@8IyRERPBxEu?40$5gBAG|KILn?5n>_E z+aO2Dg)L8C6)k$fMA~8kVU%27sO>||FXfZ-iWSU!9hcn5)B_sKnxu^vKeN6@#?cM^Y0J1VmCBW;e(`LiEGV1IjQD)ewpAcA&B0sX#cUL zE}FHHBP&<KL&DxjdhoC_r-B{nGj5htx$;^^H zPjMUk7$0~+=cDM?>p${NaMDZqnD;s9n|D>E=gCDQwrN6cnGaRvxZr)yX7jqz0Su~G zRGQ5iX=ZKh2Z*u_JCR^_{%C9WLG|M<&q_QJ%u%($#3|*yWnA{cr*23{WM7sY5{xeu z1fgX~+(sfDp#fOg{R$nO5sUnHKxRT!^;^Jvd%qiHduKfKuzUXVUw=8&BeKt^?tAwqg+iV@ zN=oROJ+gffW;E(&Gk~k@O?d&JVy@pbYurSmV?{<}CNO}+9M>U8TNVOh%^-K6R)`bH6=)1 z(Q-$em;GJpwRfo}^{|_dIf%@kx|{4vqfdSgyv-YUE1=$1&{Tcjg#Ham-sal7(fFJs z@16;aVLWD{poY-2UgO1`W<#H$T5w78v}*iueVa;;``d5w7ekwd3oL|_`==!dgdbzc zDN4QJIccNqacsi0mn8mC{RS0qoy2aJ$Hg^EN`3_b{vN^zVG#MRoEIk_-|w-pbSzc` zp+0LZoLq-h2U+rx@=|C@CMcb`qR@e#oSa0SJ;&h^Q=kUGrpd9K3h*m8GzedNdr_O~ zeJ}o_2!Oq@S>Ne)+94KOvA&TGfqDJG}rwy^08W0ZoMZ_WnzVU z2Pa{YC1EDvv6(>}XCy7;f7X$$)mY&nSV;(p-d2Jr2Y7$kZ8&`3d?;y+&k~E%X`g52 zNNE0=D8ru6td#Zdr(EM<|9@1xCtRI9mM#0Y`a8%myDX1_^Nw$3^j*OeG0xo*O#beJ z5nBtb%jv2#Hqyh^L5-)=935=Jjx0XBuc?_Edvhnk&fbSHw^t)2^A;;(MI@@R^~3x( z2SuIDyxx`w&+2r9{1m8<+32WUZTr~oYiVU=FX2S*<~1i#wGQc}-|Eh;VD z7FYr_)7b5)wXH2bU{*N0-miqto0DdF1!T_GbQ_zREUp1Xub%l3u=zmZGc+R4W>OZ< zM9r(O0Y6)O9@uyhjo;nbF)*0XM#PD{;#4vUw3O%q6wf@-$jHd}Jb<*;bBilkv-{De zKNl|~My7=zzi4Q*F;$9PN%!*8HKf;G80Rww~sUiI{zVZ1u#{$BNGXZaEok_M(|LT)aQixz7pXLJ&0eVgm;d2{u^$7!5nvzCTSdPv6xTL~04CYJz(zG$ z=vB^}S;odsYmJjGOJBCSL>i~1dPcf*{$}fpT~bY?$7lxk^{E>xoFVK zHt>;87Q$x}mea`I>(ey)vc-AQJsh>hal>Krq2E$dvyKrxe|90|*oPout;Xb)JNBEa z0GgTNC6P6!bGogwrkhY#7gQSkj{ZCW_`cPB(}U9jwnCVUD6u+lICNpTxw*k`;SIUg z0#%9il^DC4zU>>+Zi2T#9U~ec;b*qThfi!5uZ*agI(@(Ldc|U=?Fp+uxhi+2?N$S1 z$i%s^P#Ltp6dka00s%ctMP=sj$NZbBB%0k9lqq%J*X@JM;biH0ze87S!r(R1lFKiV zw@s=-ra2_5Af{JkcBn3OVV5`GYa0YB8b$hQh*_R01EC{D`I8BJb@y^l_Jf8<`E66T z!{`$ZbY7U9Yfjfazlc(z>Ip*S8Gd=h_A|i}{SfGH%{Qs#G1)Gruh+!zj>+3&RD zR6BD5N|7SDI^Y(r+7`RY&O(bA^&mFu$UkjhfSt=~9|=Ogb+g?q?fIQW7M5~#DLz

    btY@I>z%>c%ikM6w>0XO`4*Et`4fvsaG14vEOX;Zi>mK>es-y~ zu4x17!fpLH9U+nM8orkl(6Xl6?V!8qc9V@qe)p!A1X|OB%koOszRvr?>(H$%p3By1 zzP+DeXph~C+!UlF;OW~=&^i({`=!YOOi9!oSw5A+>BmPVd@HN9IK3yo>^;&f;?_}v znEwfUx%8z(3Yzb?-_E*71`PeYo(ot7a%oqpedV~}%yIbB4R~$ef^3pqbd^L@9(BTqR7Prn*C`su zB0~6OT^bsc*RB%;`mXPi$^k?DZ<4wzmr})SWZ-Ej$|bY1IRug2&c;kgX~?7;ZR#pv z`Nz|=XUa}Sg~g04>A-34`ORH)&(EjIU}OL9@qSSi#*7+Sru8fp8-pPLb$sTpFsxNq z^%KuFJohhcJoygndDI`tBn5eeIe^upqS|J`L_gpEB**-pp{ehoCZZj7&hw*ck=4`p hXZ1Osn=}n5)VB9Ga%3m3hn@dqplhO20ekrT{{VOcu|fa< literal 71610 zcmYg%by$>9^EQffOSedOcPS~t(%s$N9g>nN-Q6W1-4aV9-7H-TEK4`v>ifRG>*F7; zeYnm%XV00rXXc)pugZ$D7^ozuaBy%Ka-XDB;o#sY;NV{SBO}6|IJ>n@7Pu6T3@myQ?`_x_g_JGn#PyT#z(-oeR9eN^|( zI$rbgCmUGmfr1RRAe}ltXys2kP1NiafIMpOZ;NidzGoELRKped3W$;;^YlVwj5ia9C-1iJT|5?{R z^`0i+?ZmW$KlI#SqtcAQxn*m!)_v7|Z4ypEd-EWYBmAE+0ih%<;j;?e=6POXjDD#% zSR?MW0)9dqGOL4zLQ zj-@dN&k-=c6x@9t@-?EAys5hk5=<+c~)AuXa zTJ>iaH^Z46Xu$_(c^}i+$ZE{s+Fl>H)wHC_*S6tAj?NUv{r4a;n9Iw|25xd)9<$s& z#bTall7PJ^%>UYReB5|?bnCS;}k2g>TzeuRtADHD5#PnA%TfS<)Hsxi^B;Npsr=%oe+ zzz0%=Nn(Jz|L0VAdH(7qu-2P$%<-2 zbmaV?M0<11USp)w8-M)7CNaZWLW6}nNM!EMTDg`URIIQ4p&a)(F6V{{_VwW-aXUyF&JLnb^ zw?9^sB&)Rr8EFgI8Shq#DE{dIp|V|L`bf2DzHez(#$vu7;z~vlm-h|X^}OM0)9o~- z`OBM%_J^Xa9z#!poyIQ1YKo0u*HiHR?b@ISJ2M!3~y3sm~UKh}Ah> zFYcU{2&Y{y;&^7pBdk^z3)*PHVozVhPvy=0g_9E`h4~6fEnN2x3x@&d17AMN$svGP z)_dqzvK7X@Zno1hFUQ@)*D__S;p7N1M)K-0Eyo3^2EGRI%RwfBoHo`o>A#ViM|2|^6wxIaK~g0 z(qA$m0hDID-3VtnuNJYT%KAZpztrxK&DS`rR8r49!QFhWplaOVSRS{74=7Gu4R{Mb zRYY8&?y7yUc$5r#b3s)lBJ{b)wnA&-CmLcIgX?PnZ%vgMmg{rQaQb|9ejFA>WR?l2 zPekUj@7K{im@Y@Tqv~s(wpbGMy_KjVaj&pD#-pg(nM!EpA}Uy5J|Td zUmJ}6C?AI(KCdJqr06w)qSm@wm+%B`u5w;IUj&W`n%G9de8h$l%isn8YP2Kl?d|mz zp@={qHt&nLN>iY#sHhkk8 zFWB$YM*NxnCW2S*nVrxa`gA101XfGW$mu^>uyos);?WDgRE?Xqgze{X|RGITM<`h@nsD*~3)d*BCUGv#5O-cr3$(9WCT*vt> z8gA2aamB8Vsq6E~uQ-IR>ZCv1T=izZ8kkbmTfv|K0iF)W-VivfMh5I)4=R$4hsK9L z1_EdYrwiDgJmZV9!mv-kqhb_*@tmcO$@$;XqssZkSJ|9qgFhXC7cKgR z=rU%Rqy!S~_Q0Iajt|+8FZ)la;@jD-%qo1ij{9^SDw4sbFZH=y*9bxEjW`w>$`}+9 z+(7R4i%~V;sztrX3dyAq)1e{L{wkDN7Q@dBnDcX$u_#=wfwAdMrNDgOljAeQ?*XPX z^EZWGIhe|Fbj6xUzpixWHqe#w#Xu8x{ajKs+#c||N;93rFKCT~`j9oq9?eu}gSy?& z6BQ|eW>|cbc?C8dzMtMJ&)Rp{d;&tX#DD%;I)CwXe3d(gwD}9N@f4{@FJQ}HxIj0p zDsyr4$om|#soS?b7H#3T263V(ec zkFKVO=joxZ&o9E4>(@@178FBmgJo0Md)4JZV(r1~1|J2;5yrgF)MM#Lou04YyW9~} zoIoQkSUJ+4+%XOJWfTN~9&JHQ3rNkx58p0lsn_X+$(gzzZ6qXDjm~WXkg3{2yV=XP zAkA^-PLrXE%6*hG$$D5nYsykWiyLRXO~w{E9iGQm8ft&8wdgIk*3#t(=-S$~50;Iw zoz$l0KBpwpk>-S3bhttArs)!Tp?6+V7D^}6PNnU;G+_tYGh(=&r4LavwvXhVDUPx$ zwt}_HhloE6^l~O?FZ1fk|+rft%saXQ2-^TJq zE#~Z2lWB7-)v){d_)2EU|9gP$mgQv_4<3(Z_41q8Ui%nXExXL>1s=oTAEM(I6cisG z0RhU#rmMI9npL`By-8z41BZ*Ol$ zZt7@Z=WUGq=M|QV5A&=mjm0w^yjM^vFG(S=o&xDa^c-MX2Fv;dFLiMxwzKXysr+xInVKiuk=d#9sFn>OP zxritv9uG{iNbCzXDpgS{Du3!{_ZM^fdof@8>&Ylf2$>ZQ{<5tVv-wTbRK3rJEFjR00Ykz}TUJ%3y?Ye;{0;DyW!Pc7!J?-?~<3%;Ql;~HmZ&!RINg^#Nkb2Pbe{MHka5{f`v%J0~Se+gYF!Q=^Wr8zuY?sf?pD!e`l6ichfJ1!cVfep-xO_zVl0f+X(-dng}WXD=XWt!nce@ z-66vBjyJVr@x(KwB4RD{r|S{*&qFPkq^|Uwq%X z0uI_H`k{q-4&0)&v07aMLvH)Ut^=&4T<+r^ZJ}2-aN17;B)`>ulrJ||k9)6dEzkHo zvNn2c7uCJz5E>fF4dhC9nClV-UZkGT_vigwE9PVy8lo+YH&ss_{Q0=URy?Julp^bA zLGfuFepv6_;V)j+Z%^EO>>X>13GTT?w2|k_FQ2`yv&?JSPSjl&D2f#8xO@~YcIT^B z#)2TiiR0}f0?H>+oJfi5989Te`6fI~+1(#TI+$H}u2M6V9C=T$f*$fmAHZ#TN;FQA z`00faaLO&NtW9aNj!*x&nQLD1sM8_YT%kwOV}`W}Cf+pwp?`9`ixMdrXtS`o$*s)0*%Pj%$Adk^%)n$de zR5Mye?De1bY=c}5m-^Cka7TyL3SH)em$clYu(aCcqRJ7Lt9W>PM4b;NYq z;Y>q)&J|T&vDKGA_`_{C{Z;8y<}S{`T|@OQS0tTRM)QYh8#~>152b~F??KxvGSA*{ zFm&*{z94nzHl3x4Pgz#Nb8E0&pl`-Y`DcZ+IEd#g2Mcd}hY8IXC$X%JhSq* z%_-}=arni5uCC_L=~U>VYE&X@dHE@*%}gfY*xeVFo{He^vzSkJrz;)JjpQ^+KcZ3H zrxaGi7EFIWzGCAckF`Wo8J7GM^XsSY2_oEJg2P&l{)G?&lZcc>HF-jb8Ak>(Dk>e9 z(DyKgn4s3*fJ}j%DP=q~Gg&N272}79xY=?cL^B36SqnrwD+3=CX$uX3EDD|;TQoW* zww#@VK1lTe!+Ofa>#yC_m&+M@HG=&$zg>^k3|~Z(2JZ}IY1?m7m9-!P)^*>%{g?<@ zTWL#@(OWro^l?|0Ay3xQn|VE~m&fUD_2Rzs>H2Gp-=8_%CVST2%JMQ2qBz7a+Y!(k zVVO-&JQt{>9kH-2vfs_|;HmT0b=kpfp!nu@&LVoCbI}?>+gn+)yT)SS2WD~6oHc2S z7IoyfSZZd`=QBT%Ht5RXxa-?3Z9E*)?NKGrc0o+g?+N(bwa?T%LnAk6Vq3G^?0L(l zWJ!mwy*o%o2|N0}G*j9dLKoHam#Q)T5cR050%6$jO77YmM*inU@wsl8ya2Y}?Y|Gte|pReuFxira zav8vB%st^JC_Z@q<#ynsP5X|k&HVr(YV><=O*ywbTNk?_aFnd;L;R7ZLvnmK&!Ar+ zZzHiydt7|g_p*Fmp@{_~%y!sF$%J`!sp4wPdEhxdeHXMc44x^xpQH|DT}#Ojg)VBS zPyL5HditnUxzt%2>sv|+SWrfnscOP5*xLGv0dB`hL;Or85fwteXxVGe^_PokZ+t$U znFMZYxcu@q8Z?&ITKG;+0i&=GIVAQ5Je(UTTu2x?e zP_SR$&xa19H@OE)3i=mq{f91-VrQte6%D(pOL3gRX;6UkF|qK!-7TO1efuwyx0phx zIrut51bTZgNvNh`h&Ysp_1~p8ykds}$}PEChR*~aBK8UX5or>aV&(r%4fe@5yS)1A z^z7&V5M)yZ0O4f*AOCg>V-BMX>GA((sW!1h^FOPj3>TP{L?X;B@4A8XG}nW4zEU%b z8H1|}_iih)1q}hh+7}*0i07Q_f4Rpgqqe91!qc8abERAEkG;J-Cqn0=wBW_g$~+yC z&ZjrUo!SzKffEt5-G|O=gD^8$-_oSypuN=b;Bju53-cjL?Tg$Cy>Y+8o$no4mkgEb zVucz$7;pT#ePTdQR~{)2Y*M_s!?^;HdM{_PisNzCP5QDfH|kx!wn6SCPyyY#=5Owm zb#s>(4_Mevm{m1mf38dao|{yVUBlKCKFDcl{rG*gI7X2++(h7|f1um4)6!;^eEf;C zO1oX)M(;TO>O*t-6Oq9~G=bPqY~}hMp;E^H^S)B=R{6$E>gn#$68+g$J?$6(^ALjl zj}PsCH^U65e)~3YIjg2E#(QU8o+w#3DXT+8-y6KG?%lYKoR4o%y;<9AIP|lMB_d8N z{^6xAf9Y{Bjh&L8EO@NSo~xn0^>QX)ZQb%R$}gQ_YfB4qY{M5YdU0bGpAEz)HyLlj zAWv1fi&z;R>aLIzDoy;B)-SuO2$!`>`8_E^cK3Ty`RVQ;sS)kXUXaU8NBJ9Kyx4i7 zz4iOoSaG2s!>dWlnA(?zCk4vv$!}HuY%NzPwzGX+_weIdeQ*6QcMQhJ#J^DKEbYW) z4nxFQ?Y)AIpN<(7vxOqYs`7W@vxauP*iQm;+RK=ME)u4ykrp(6@7ks6z*DVq(8Aro z$?dKwL$}j=inzn9GfYXdLt3{i@`f@CxY|zt^Pmp54c|Yn4({>x!R=1=O3=Ui&`1hw zArjDc=P-D8eFUJPqiv`(w#xK5B%#K7G!?LVzMDMI>RSDlmg#4>GO;6Tc5KBTl3`UDd^E07C>hcXe`=uAf!?YH^q$8GF%S0*Pqxf=S z9q6^W-O^~s$^XlyJ@6wQgxx?XOLc;KA$MT)q2z2_a;7bbJ@`t=a7fe$W7{Z~#X?<` z;aaj?JAff9{p2`d)G;t?MciLo?a9vzAzGgZ)gvmP?{mo7FXWl1D5>vk|l z&F05PA1^4pz33CfJVc><)FpXu90QLMM4Q&)cl4i-)q@5T+wI^O^lp&m1*p9rkAG>7 zdTPqZ*a?ZtBX2J47F*}I8ZxMQpKc~DK5xB+Bj|1kt*W%5RO!gMKY`mp%G4W2`~2zS zg{In;%F_&m{}JNbPz53fl-1kITn6u(m$oeS;0HtP0cxi;U|EqeoWxc`njlyGnm}Ld zPrDV(5i&yssyYRcu9H&xwW)IflAvidgAsZ8kfiT_gQ|b(H0r_IzcWzn!xPhLBlDC; zws2|OZYrRJv?GTagDOv(Z@F^}x%vLZ0RxixjKBA7>JfA+K=E+Wy!s4j_4i)zS5*wm z!jlIJz%v$J>=nBW%v6>QYlr+eN2`~~4(Z%@O_pJ%43g6@xZ$_vQQy}1(8~Q9ei zo<58+Y}1!2Lzi*w15{|i6{(!MkZ%LO8mama(62=VNo%`G1aixs*9NZi3rt;Zb?}$=T!mPv*z2+`}`ZIZ25?>-_mg!cwRp3a|KHD}s zgngj=&^qU{n9sFkV7KOe$O4-~(``Vvf4HO~{+z}Lv)8)hbqC0U*$7KtJO_qULH0~_ z@W$+G16u%%58$VKpGt4D=eHx|hRO<3;gRGfCGZQ`+XCPI8+6N8Is@<L8JW?QTVEgckrODYts2nD5=aoCbd^Ty5VhaKeLfP@XltO8Ni;UKH;M#^PT(A zy9*@)h=iqZqS+<0_Kb;@wX-$IUGhzoCvw*TKhao zx$fOAdrlEmLjep)`ES4}yt>qLYzryP^$UqU=YrE`(|VDijekwTXtPAN*xlX@f2cLg zSdK@|a17!2=hpX0b4PZTfqBm2wH=RKlOivsH$tiOrA1A`wYBW^Lea%4K?b)NJB!P> zpT_?9ta^lB)P*S?e*JbYrL?Q}uT1z=t%siw;tu8gW@=;e4mh8a6XmnNlIlE9-F|l{ z`EnW(bw6mls`VEIu|wsWWgFiXh%TkR#IUA5bWwtV(;>f~fd0h)OnspAV*Af@Pl7CS z=WFEOxC_HBSQy6rzq-Tj;wvy`4IzO1zkl3f_%7~mUTNc?DH5OQW9kHa|L<#s34G@5 zqWoFT$4r44*|`vk^Usn5nQ&3U|5=qAko@;n%&Qpo;#Pr1atGE#H^(0 z!+J1()plgDxO3m6({bp~-yPyaiJj(kXC>ufAGjVJ?>73dT6TW4_5*=U8D0m<#I+sw zTyQfbieT`c`|#I0=KBRi=rFRm!uQo;gA-OpiQE7@tP>eW;Eq()J?SqzQXtM5>wam@ z@9sO&(rb3u4I>7+l^tWlu9GTATg+D&AfZ*OGYsWcd`CkQ2FT>cXp06$Cy%y1EZn^5 zc+7n{cV?HF@$#(p&aE|S9ejZ-XwjZOmx4?hmL6x0J%z>F&)$3%fBqV@T$S6cIA2s) zyG0v@En6sdvYlT+5?!zX_5S10iI#*A`9Ced=C({efi&Zwb(zErsxpHV^LbRCvRAr^)OH1BN76s5bpB$?+?7`o5^FHhP&Zn z@k8hI-riffX^>Hxf-l%~@cL2oIjE z_H*Z&;JbUnD=p%amF85p{T!fk->2v6Yw(Ua)_}G3Q_|0-n)ojU2xDntxRHH|E-q8S z49%z74W0{WjZQe&J&hI>?JEPwI2%s4js<64-L5z#P}^pp>3D;Dg0~;@QsPGyJ99MSt)Q0WO7y6)+VG5przqS zsw)K6xi6_&D&$Tbl>?`X}?FLKM=-%LuDjW=mJO+Jv zM9S!>GbI2B1lv#gB%(R3+ZZ3ja{Fz1n(IAv-_un^+tJ%Doim(<$+o1gCZwM-d;?w( zVYpKufB!2Xvc?Y1x^4a^4*8j>vMopQx`OldYnGI4P9m1^d9|cZ1+upVs+}uk>nV}6 zPjY!=0pHX`jy*vL$|@>?`1p;_hodQtp#4|xgoI+%6a~K)%P*i;5DFi)Day&Au%%Wm z4dky+AQ>BN2IBb#1mQ{d!UnjMl%NW6de=VD$cE|vn${! z_s+@D0?_~i8O2oG=1PhL;V9_#;KdPXEtl=A^>2y3$5ApS(JhW=Cv0v5Rq8y|cRtdv za$Px!96 zF~|vdHBAJ7tGB7&et!k#_B4Y6$5$IBuTodGq(Lrw>259pN6vy^#>z4p+F+cYh)lH$ zqZz!+39a-L88t5JvqTfwZ`b~i5rP<^+Tu&Vx2JkG)*17ld{nBig8~>1ObLY5)PSFb z)uS=n3JNyB=Ett}|SGQB)I*9T)Xu?`G-gsqqPnyWqHM!T_OpI^3|Qa`Pl?Mla$++C9}!iWI7CGc21Ld=o{Zt|nGTCdYqX}89XvbAQx zoZPlNtfgj+{$XVmGivn5j|=X2p^!shEHU@fsMyQ2TlKt> zoZ@Cy!{o{6H@~oMtUSaRtYQ^SC!3&6ukHvJtosXb?F*JLY+!Vtjcqaiyofsj9(9`| zyeN^uO(&5u=Pz-Eno$dC1_tzOZ1;kP_s7)J+K0-WBtnsyh_U3td>cH7+t>{h2}p%g zVI_9`QUe>Vf{a4iQlDK>EB5UCKtq+jbq55P1cWAhdS9bsWz;kjEV74w>)D4|10qlKz97m)y9=?c}=;=!^DZc`zGxZ`85t_x`KkZ zqmWFflRC^nqe{xVaB9#aEce5kB0%I-eaE&L@evRdC!NmSG%{UnShJ=1G~G&8oR3yl zkjK#b0Z(Y^IeshJRAvEOzDkDv!F-(xT?Ujb-%gFLr_6#KGttwXSVI=SH!{L=L?9E-JxSlMaC*j{O91k5RghP>0`DBdkD%TP3x z_)^>FBdJ3iE7O4?8Fih!&bEJa#FSF4Kf>hjHOu-OZLP(-RVt40GSkaz4!tm4kAo`(QHAtlJ4^<>zNb`2h0XxqKn!? zUCG?|zL_?zUuVW+uzX0yd|#Xp3Bj^7+wDUw%2ST3S>Y^NRUDuLQR>*;GvEzK&dqzn zeQ9tkb_R->79{?;f(EDeo>|GL;Ju*Xl6vfZjRd{30Uo=w*XdM8K9p?OiG5G{Cb1dP zsXeAy@V@ZOd-cuAm-3pLqV>&pf{ZZywC?Di=EaB^_yRl`T->2G?W{>1^|?CI$nsg% zIcSp!=nPGazcG;V3ZJsxd7w2aWI(mb3goNQs@*EWwYpO6cQ`0DWI;9btO)hjQDB1`MN|g{j@Dpnc0e_HbpB>}rDCwyzVInSW`ARj9+xCO%?RxI&b z4k#4biDQ}o^%l{t(sT#(Z9|P4bw4gZeLHCe>DAO-;WFnU#tEc60QeenbFfDbLK(2Q z?+re>D&W-=5y`Q1Vy8HUC75y89m{BV(6-fVy9%OUVxoAL=^HG#%nJYU$gVg-RsErs z{xS^AnjLk)!rLB;1A zBbp&1_{GK&i&n7roi_1Wq7P(#{Hs7}WrZOl@{ksrn7D;dMG zl7a%6#cpvwkj}VKn}a0Ix-EX?L}tN59nfdWw@uW~9%3i&0N|A={Jz{qVp?FP-DWD6 z8i~kDgx)VDTiEg($+=}}YgggNxEzx2_<-58>Op8Rno^LLSI#uQNE9LVfCqWpH+qAB z(6<1phqPrf+Lj&20Mb4@=TcDl&u$19@ni^D=%(H?5uqanK0<+omT3mnCddXsGy3ss z`Qb2Uv7Q0qV}U5&N^{;mh}|+#phmw&RmoG3DkTYb&3jFbAN4`&J!eLQie5uEyQJ9r z(G>RWbw4KiY=)3l=}EWQ)}H;enlA!Xf4fo)HDp@Dr^Im z7xLS)6zNr_reInZCT6Cn*x3Hl>ON~8Q?AUf$O%#^c$g_NQMfBxa-P*LOF}7OqlYRaB@#+>M*kk)&t-gw#)~YG(OS%yd7b3Sf(xVH-+a)BI;aJ0ie>A&it-!z15 zQZ?}gQ6}__k~#PgNJN=wlsSnPd-;#w}N#r{K6u`d`#BDH@Y~qO|*`-mN>I>Z5HdOO48t53n zO(I{j`7aATSj4uSyvk8S5ARxq&^XCjFmMH5Otl#rbe<@&)k{wk3 z=|_*y?#1EqXwIV{J=4a=G;dts*U1q5Wy-!+Pfgyy17rT1@v0;Ld>MnjBY#R75iCkm z^4{4tJJIv7Vif1Ir_T@I^dYv@pf?ErImF;MI?7grTfJ&DSLjAen287O219P(WVQY! zo%vFHEb09G;iRp0=9*gya|VDRLm9s(pHqE~Q_Yr<*H2_jOw;Gb@GQRx8+8qbn@$Dg zInsOAgJ;x;m6MMe0g{t^Vi+oX&_<-<{5hmAqhn7`Gi3ee`?4L{a$1Dsz=3IA~ z$~=6Os(6p&Qj(IAb;4v}5fQ2|!IYHLn>h;$I9So4tf3LUuuaP>Tq)i#v#qYN+Z##o zPCy{4Dqlz6{kd4XTJ!DJYtnLn3f|vh1=4YYl@oZ%cyuDGwf~Uv8yH`F|A$Iucd!1S zAD2_FI+jQ@B9xX^D%TZNvod+HVY0+~iA!d0zu`HW*+rNvmRO8TR)?6%$LA?KoMP^; ze18x6@TDsN3<-R^ku69Jqln1JVoNH*BE$1-NK8yj;36Ta%w0D= zWPqB^`~9TkWaxG@RmNeZr)OZqWOZo%$neEAYZ3u{+Ypi)NIlzmBCMRYQF9_MLa zTt!b0EZ&6J{?Bt5VGd_aGh|8aH;vH0Ggi_Dt9#nXQ)dQxC6R&)ng1RUi`@lN(_y%o z5+ftyM=kuWhf_VV2minZIyIqjkm^cD>sQF@HDeBJlD9J6+5)t+v@~>dd`=6(aMCg| zE~kR~(DO=mN*7)F9HGqESSs!6dBY`fQMm;Vdrf9fS>O}?v8P|D4FVDZub=BQAq+fG zP*8~CWcZwx$L6#QC6#}&_E;XqJ!Sd7RCvu^%x4DeuQp83^6_1l!GN;>7@NPR6l8i; zn6RZ&_j=9zH;*Mx9lMB<)aQDqD4T}#@05W75|?N-Ql!ZEM*c%#uF37eOeMle%-I%Vj{gnu>yqV`T2lc z=?ZUEj%E z%i5`9u}Pga5vS=JPEJlyvbCPKBqSq4X#1OjH)J9d2`>_j7DlCuS!AX!cUY^ASdPtT zp}oO#w&Zw{%1EY{Wt_1Tyd~Xz2QJYC#(bGi-5wz4wk|i=wIBiknIXM-x08f%01wj1 z@VFOBg>mP<_34}yK32?tgp9ARk%MCotSpip4_C@#A>bw$?FpJP2~x!i2M2l@1VwU| zrH$_e8|E`p}{3W>{xSgQ0V@-KgRYpGiBTy$jTfzQ?!?of_9p)To6WoKw@>)?7VXoud4 zLdnyTKr&*_ZLqi*I?#0Vj9Ce4sYKOj_D2D+K1M^j?lLHY^ksUftb!uv*pE zTvDZ*qYu-FawjZZ)a=h>^ODyzdrh7OH{%fIIv1H>GD*w7^j#5V%RK*4;Ns#Y=DeeE z?1BiQu7z~Q`M*nD_`c`Bad_%PjScTZiAEJ>U2~#R?OXBWDJe8u{IZiW>9pB8qncS- z%O4a3{NS}wiIf&Nx3YS^v(n-FjK`9LDi#3s(&zP~V`qN|X&t75mB+c$yhzNNj&veU zsHF)*G(+}1hALxJT134BgqREOI)jg{p%6VM=sbCmUYz$4=J{_{x7O#_%BAL$?rOWc z3|#akvDjLqtB>eN-9BN%sonkfLH;2SP@1IvvnLhhhK%ef}-s<7}5LzDWk;-t2 z(UrWZ0gy~;BBl2OtY?+7bI5^QQ9QzlJS>*`-^OGz+*ps7@CV+&hW@uHF~r{!0oOmj z>pO$ZlKcWjQ>we;es$#Dr>;Fd+Vs=XoPTV^B`;%ti3&?Hfr$br;@anAZ(RH0YJd1$ zbhrAgtJ@9Rr+mF zkS?7eFOYxVNTXgE^nOnevu0}r!p|eGcA*J9`HhgoN5-6ST4X%KL=e>e4FW4Cc{9lX!8Lv%`TU)IeG55?_CHa`qdt*Nc-(Xkvj32L+MRP<8?=GX z?}(>y5@Mnh@gd|M#G()QgxI=m>H1*w9IEG(vv57Z+b-S_dx^u(v(nV=Daa@{>~DB@ zlxkKA^&15Zt|w6JUE-F0OHY@U(G)8+a3KVPMV@zW{I6-;N@D4#xij;r>717gu56C5~cqt1`s%hgipzWmG+(RVD>E^c#^=X&G9 z+c{I}_P%6FiK<<2d@}KD3@OOP*p{-?1iI<%y z(kR{Wv~jaoVENrv@R2Q*v^!>Vjn;0d(+ka^bF;WJ;3c6^4{ou+kI>H(vIVjt?}QAL zv%dtxgcX6;7b*@DSUVan@Qod>$5-0u_n<42?m189f-s?(#U|*~1U%YpeoD=p!3tV$ zr8^k|qSU5OqJ?`rTQqmNviGKYx$3IFbR{+HI`tV3?{uY#8SkGO;Mwbp;Y-fD9S%4> zq;?;d09#MzUh1s8Ug@O-4U=10z@0$0KTOoY(C*$aSHGJv`m6Z!w&uK;4?-n4qq}w0 z%m@fCj|JU`X-=eYl;M2icIsqgJ{gJi%J^4_n}aFxBpb8zMbd@;_um%@W2P%;@^IRZ zzdh?~1zQ&`Hp)SmJ!c#9>~v_K6<}Hkl`X;5UkCZ6PBffDVN)qRfJu?hy~0@c(}y(O zaXA4;gyvEiA30rCHI$U~ZY|mOYW(m92K#MrKh-ZTb(>L-5(JH7$!n>p?q9K+#mG}} z%|;iN{5X#$kx-M}tXP(iGRKalN?T=M7M@>tYkp?nc(SY}e|Z4Y6=eG=@d`5=#HMk6 zwXXcE;X~Ui*H=gANXIocZK(Zp+W-9yeSFyBwut-ow`kl#w}0zW`1y8FSA=&aPN-nP z_!UxL7sMgw-r>VacXKb>pN^;JJB>$>IHj?IWJBdFXX(Yr1-H)2h{1S@9Yo)ZhaS41 zrs{LDPU(+!WOy3nLfY_rnMg6Ava$T&P?QtMs1`|U1_#p-v2{T(Mi#_3jo8PK5muU1 z_s&dFzglcTq&!$)c5VfK;z|nRRxcX(74=;G!lOIr~2G{A#Z=JogsP&_Memf9lCmp0WO8@c%WW= zoNI0R4A<|o*_1**rdNw+cYak)8D0ROHCkv!{ra%F*J!IrqZ7Y9-P-b&j!YsCeRzg0 zEOs9P-;p78l7%j%p!E>6XF{nQa!Z6_E%K7Ja6|SSG_oVT3hl?Y62>SKfOX$|H7>N~ zSA-Yf6oSs^FcqG82Tqr?(I_m-g_BulaPPYmgzg;F9dCo%Dg4umNj=qS?+G;5A`>2h zI$zLlM4x%+UrzVKb``b<{V2EV8C}Mwt?>>7HDO5!1m0oyooqXA1bUm#&UFN=u|LkR zP?^Db`|ZkiYgfVZ2`iWlW9keQ7 zwukbA7JnyuDOvMD8X^~PlY{8@=$ab|=UURpH|-`iDh$2|dedNQ2O^Ogc&KQdyne?f zoKZaxp7#E|bE;N-;1%7L3?;CLYWR)LSl-edq@6N&%Wu&VmH2a5eXa*D!EZ0J9s>S& z4(g|I6K6PUCDRjVao>1aj8(UxG$y?X0Erj-X~Y%k30OhdgBYw zWV5v458+zWZTaQJz^?oySNOWW&;t|27^w>h^6#C&z0uH{H^!W}(Gtpga>MxWX*yY- z;^AHQ^AVg?*CmDIL{NzHb`NtRGh0ixTJA#{y&{ox*+B3S+k3{RGao+NOF@x~J;6M` zrOOk$EZ-#yea)Y6)}09ngMYo7jP<_A&1c(7e%Ai^dd8mOc`4{|24IqSyO#9kv;{1E zt=>NMN_If3>)tyqsPj)!=GV*PoxPXS&EIa*e?olri=fR$9n$L0*+j`=2Q-Cg-q5AW z#rtE6$GgtrSv#SM(jN)AtzSXaQ{D$xqZzw*H(p%|U)2V{OuNOxfs*qbe()1cdJlP} zH}XpU>Q0OZ;R6CBLW*`dzNpQqCLHuQruC-EJ%t~&6f{{KKgew?2F}OHSeQyKl~HJsu77%Ldw#}BzSN~J%Mn_K&sHMb zvszJLaU{~t7Z(#%k$Dw>hs)mSE-IYUnFe|}ksmqgJos?c>(Ft&G3m3HSKIeAS8lTU zJfGn0?yLpbZZ%rx%NqfII=}9@GHczB7O$^cjK?HfYzZcHH0&R$d|9;*`sGz)^Z2;c zTh4Mn-uLJ!&Dh;$rQb~G+CuREf+aIgaLr9$fM8m=PeM@<~%A!K(!Smq91(n|p&;vW&hzkB1^Jq2IM$ znxigeGO&W~e#=>8aofCE^5MRtJCG3bway4Kw7NS{IC+*G8XK`p?3>xO5&c}ZRnB7B zcP{P!a_H^@KG8tje=yZ3a2RWJVKa_ojVb-l>T1~L|Fi(H zWFowz(6mHia*M*Q`IFpKp+MB(LCLCTs2)MU1IDOkRbiE4pQ$h(#9S<3U*A#8kwvhz zujO&(sRvGo!dLrT?&jyEc!KizUE&x~vb?4zA28bs7u<-VkB$4L#{nW1@?hlkEt@yV z#Vs&?GixEEcuEr{sSVk27|Vu0fjSg5;sNg^xgwpnc7tfZN3v-_P8V*5vil^#vuc#o z_2;;;<@|hpzFglP!L7pH7lUeYlO!W8f(y!mPs5fMgxz=8+=Dwm1l<{|*6t{u&-OOs z_Z?2QsYQW*XP@M#c_7yr43Vc*H1(v1! zM2~)b;JwCn%sbaYx@=48kS`S$Zp^~~`*)%HHYSPpTLS9-XU<%R%r4NWgN(#!$z;|h z6B-&3vdp;~Jn4mw7O-7;x!aYAOgNGEYtaRLP7$;VwHWUJ#m|&dFfoQi@bGcFod5qP zg92Scv1O^&Bmo-IkuhZxLQGj6<0VUAEWU^4n$`>rsf=Jo%$x zVxEM8!g^sSSQ5AhBp%wPyD9Oh4YwV`ToS;F?R%JdBD~L)l3b| z{Md!kR%cY0c-;igR35q{+LU;;_0G)zIf-$sRm_TvV7u)o&G5(t@5PEKN6SUJ`wlKi zz#Fcn{{K``?;V)`Ck%h@5c9t~6dZ%dmk{#Q2l62Q6PfqE&DOlhm`%8o;SEB@$30N{ zFD<1gOgk#I7=9!t5)l~?B#QV?QFZmh@_&gd$?gk35p#O^zat+*wj%zMYJJ=yJNx&h zU_jb(lh(h+dGGLCarVX)m3p;{w1wZmHP2bX-g%&}JYi@Qyb03|i`M{4RAWI|bknZju4G|uRVh=?CnJlx#m zg~!JWHTWfcVY4Pk7A=vpKRU|#ANjb`Wp@}feoeN%S~R}QcI}8F8xVbEw`WEYT;rg2 zI&9n9FU(|d`-T=vinN~mEbYzN%*|8&A-9gqrZ0=B!^NoY+rqIRq{GmtC{eb;LS?i+ zGP-Z(Gq|AhO>X0D=XCv^AQsmX5ERKvcZo24h^>p0HbwvYVY-Ip?i>&=0OxcWF~gQU zb@1PQux-D?f;v01C;LRP4$!J85l4%4v8I{Y{WatK1I}QbVVa6og4$yhr|HYbtXdXp z1J))n5a1M0sd4z?I(>A~Hr?sQjAC-Wl198Y@BLvHWxqG*N#xPz*Kjpo6XoaJzR!Y6 zuXZy%`AdA(x_kwmk{rjmQ)l94e)lt+)t0&)-1%I1@Q%>RaMQOOF`JAeeH(Bt>^~QE zWWKw*QyVcU#X?jbH&?oMb$rmo5DYQt_1&0!V+k%ZoGG02y4%JU7848RxHHS$!x8H= zzByVAoVDn)KsuS+zweb#M>31D1Gl2&UD%K z)C-uNae`or+VkxLt*-{hy`ssXk>|(b?#}7F1^tO7j<}0WF#G0IUL3nL2cHE+;x{=x8jqyi31nl!)+{VfV8LLO8cJI))f?}O zyy(|y?60)Q-JO4uO3I`RaKP? zvy~XwnIKPM0C2ORq^9q;s>(u70~gWmb6!MDyWI_j?=9ND{h`>-KL$+-S8me#8Ha0+ zB*SN$VrS$oFr2m*+#Oa71b=J&yf9xZ7o~WTbrpt-IP?!w-#5ewQMG3hm@&*0f z-Q&QtjQ0`)Cost!X75cwxYJo`hxnkc_m8b9Q5&;e;;{o45Zk%iRUU3F_Iy*dzm3f6 z(Zgtk1%qI>W{G$^J>TxemM+(!J=}3Z5LoU%y}3Pj%u~avO1^;*F>{ZYY2MUU6MrpE}#5qNnaRsQ)Z&*8ZK}y>B|pLv?xE zQ^FBM1c;zE-t@@2h@|Ad$HzwLjQP|7%^e*bEi59c&y0uv#Laj6du=E-3L+p2oiL-} zGw)aT?m_O=t`=8_@i2$OIN#0rvnPa|I;dGX6(_Qs;j;oY1u=(jg6<(MitgH8V+T6DAs{dcgRwXHVd^BEbT zNvGR~T3vCuC{ZyA`tI(HvOBHi3iLIfhGZD{Yxv_=JBu68gbk_;>C!ou`|SF>5U-}N z#1n$h{GPT7`Zu1u5C*lVQG?&#z}Q)o2pqc06|KJIybT;TZS_!qtIh5)=^)omzV6NM zf$1L|$+#>gO5Be2lk*B$I9+B1wjCMI4GL#szy{kE=)}FU(&EapQ(E(Dc(`ZZDab+b zOO?m0WV6#gFn6h`l>0v{m8uXR!+YOf>ffCka}q?66ZX##D9dqouG^s=hFDKHBPv_3 zwWqtTd4lM*c`kfo$BR@~c8T$&T3n8k*etPheV?3j42vYxr=YVA5tG=Nny2nl1%?^q zxbtN~cI0(lO|y%rTIbI$H24Y}Gka9&>%QNA`@Rq%%P;?sfW{?$*GQy~zBT3KVba+O z3myL&bCNy>`{5dbBE?Ho;lmpg21@;q;o7d&hu8or{81AmK$N;5?-SXBv?*IOC$I@< zKif0Qi!H=A%-^Wa3AW!I!S47zVBxEd7|a&4?WKfst$7a|Y)jp_uN(NNUs}fY1Dh8` zN|x@X!tBXP3zy@F`pA<#G82RKZ3f=kzTl zy8l>x;yHUDVX&XXsy`mppG}YslUmMtaJgk81SrGQ8o*IVIPp4^tWV6Ia!qJ_hI6iL zxwn(CFK07cjA3N~#T96|G5EF8^*$caZ1aK5Nhdo`wq+eckeJZ)8+TsSba1ezu68Gz z;e-6fdG`MASytW@28jzdw*IK2F}{kC-J_or!DJah6Rjd?T-h997O!RlvT-Kc`T$u4 zstDV6gI76at*rx_04b}Wr1bhWe^gl+6QB;d^nM)j2cUk0`V+65n{QQbZ4PibhJ?Ny zh28B6Y05XsX?>cqR-@@%J2FA1R>rdB+?aNLa+^9^s>nLzBtQnnAyzn-8PiCn0C7!U zcc7^=w8~7&^IZICC@FtFpv&?|`j&@r0AHPebKZ2Gh{_%bc}d zwB8G2SHR%Sv zd^vUtS8v#dk_dh4gzrWN$k;0K!EOv7sR2+$z17kj9YAsdL<nsk*IE694V9kwJCo(6nymBDNvVBWz8YCBo zI_7pDLIYGS6y=hM%4==(ZeIh6IB#qa{3#58Ko3slh*8ng_bYm=Hv!mKO5hP{WHzN5 zEtY5`ULRq@TF|ToDK$5>QYyO4XR!0ehPT+gP`VQo1_ssyIUi;LVryT=hCT7y#`0{O z5Lq0=&k73fb>w>JS1T;Uk14n<=o)s3(p?ZSuDyOvk4-iQoA(Y-IFQ}oFtL*^F(cad ziaL&4BHFj`6^3;qx<&|t*E3Xia}K#pVxuo>Igd<8kI_mA26;riyf(-6VDaP@-hI{B zmo;nLWWrS{HNh+y^jpeVzqZ&O9RIm&uuMcK1Ma~Z53A$BWh-P+iG>cAxa!-OwfAgo z|EWuquB&RZTdT+&NR|ONDW!HhjAcMLKp|fUu`6096@67{-{bKP&OhxAXa(-ur+`aV zhXPtYzVwZ3@oOjeZ6%CV1h1B!M%F0-dg$*!_mOI#- zna806-l(IF@3e2SE&JFKR3nii`o%H&#!8cUy3r~IHc9fFL{l=c8TvQRHtc#)F);%t z_1+A+L~;vPgvK4iLw76= zTW8K)9;4KAHy&-XM2Te;_bv6zk)b50=7XU|y99aGULTX)ZL(u>%oEZ4vpc`%ElsfM zzEF4K`nM#Y*iJd6yPT0%J4XFTNW-bU(Y8J-413l7;%$mY{jLE)l^0I=i!#QtPMMS2 z#MyHd4pP#)_3+)Arqo-oHfhsKU0?*>3~oh!;ti;nS`7n6pkjV#*fnxz6}-b@V33&w z>~}6sZ6WLavVsZ`@n})^8Flg)fg>Z*yhJFIlas%~&^_n$+4n*nr>w@a{kdz7ifhYK@xnH>vMnKo@UP8Y<^ zfEwnizl6$xX+9A`A&UXbZxu;8?+4Nx^uE4NM`IaNS@%510FS(P+%Zq1<4-lp+Ft5sj- z)z()S1T4^0zZ*dRKG6l_6lEmD-WEBjLGXX74{qa;^LIDKYpBVbf)lU$*$D&<|%gx z|HiNV)$OuP*ByB6FMZ0J8hg%?jkcO^jx7}TtfQ(F!j${d0)6u91?HQ$z9w?yZB;)c zY-zWunfQ8$He@9Ul(=N*ot zc=`4>*<)*bN_qW|-ClfbuCdLKv{P=CGOpJTF!tgymN1(;}9-PV=`WNN>Y8Jz$;}}1H9sMX%!_;t@`!@$l?$ydC+GhLf)igT`$=sb}Ar9 z?@H*QPqW!uq>qYS8c?-ZGEmx!vFhHY)xWBS1t0+$kv@_6(t3@0)HFAxKno$q6z+_Y z@xy7Ovt^Fwj~QMsrcqpMt=wA9Hjwk@ru$ZYX%9n^;#cpn;veXb#}YGr(JtNa&V5*t zZq5$TIKAijrTc$N2W!g9PZ+e50$caYqjx#n6Ln))PvO+`bh6!ou@{dgyX9P|{zU@a zB?JsqH_RXH^2$ld7F|M^Ow;?qwukMw(?{=h$bKp@?L)0;m-X1^=SUaGrZ?`Sl-!N` z@^733cj(;@e*?EYtTRAy?xxl3&lI5(ayz||lqTiL*OOySSe?YfFeZZnYpb>$8R9=M zU#&Xxo>#2$`W#wZ!k#{6C?-Era9u#_F=^uP8IU=e_;3p zQw|Y}Z`KHTBN}`E;5|MVdKmcod65^&alVvatIQC6+IhBxPh*ccx5{>_9 zjcPZ%Y~2@WCqjq%<-qbh{X;w7yXKy|at#ZW1dQW{RmY~4FCc|CB(h{A>9SxwMn?Va z*I&QJG(F!Ro;I$~nGAJ#d)`#~tY}~{==3fV?^e21m|_V~gP9oR(msFibi+Qg4bBgwzKXme_etcyw~vEq@dN zy@4n~G&!2cf_9a%5R<+br|aYTYTpjXeZ-EByfhGpFu$1ceviYU{0t&mNq!!r0F?8F z^2*Yph6|ioSynk(Zx(AbN;$KgL!#h1EvkaZT?95f+3R8XD62epiM}r7!c@9V3a*Vp z8ybW-b5hFgan@GRJ4UD5Ylr9)2SbIz zF#yL@vY&U4o?CKLlM%`=wGL$hda3;OCwA;8`~eilol1*s>g(e*IUwR=PmN@^UYsZ~ zl@pC3kSLHPWYVO)Jf1E%3Bvy{rPCph13d7lrzjatz0Ja_&gwj=p+seGtGdO<=W>mF zs<=2b6FQN{ zDG;e+_9+sdd^Z!#Oh>sj$>V`MdUbLvQ~M@DOmcKw@lr|<>!WVYcT#Op^&1S?H5u`c zW*2MJXoV9q2m$rdx~_PzMxe4(!~#l5UqsKk*=2f189Tm;)Mk+2iqmG~vd1A^TwEL~ z?)%Byo)Qa(XZKwuyG|%%Ba@9QH+iMCWO!}xBpZ_dq_~C!b!ccPNvNj-OhIpYM2G!W zBr%a`-7UR?Gbce^!dcq@^~*I_mNQr*{wf3zT5@EvBr_Ja<455k!PQcG1HrCM1Af7D z=%~f!hCTM#ovQAS^1Ahjb)j}oYSwIqPZ?Mkaxe!A%+HDy=T*q?_V)IFGLUN)mYgoL zOK%&FoN+Ngv1B6%#8O%s1|!cvkpQg<4HMIBup67O;r(_O{0m?=`W7oZu&}U@oKQzO zHK11*4GrCr4n3@~!D>NT$HpdSTs9tfh%SQ~HtM-*l1SqY7&=wOJ3HjMS6N4IJQfrj zmHYHq=Qv3M^UVR!S&JU~`VCK_Tw~h8+UQO}lOwKcS74;?3UIIQ<-8BeG@8CYK6;&B zAiiquh#Lgdb{}IJ8`VC3Bz+<$3d_D7yPjde0`6G`<8#MFy{6mt702M<*sD%b#a9TO z+Uwq^VV)JWPO=5D8!>2-Vg8PW(j}u|qZZa!LJI+$(c8Pbn*jRFoenJD+{5^hqCmB; zOABGmLIl$rjt`iEA?WEn8-zSS}ffd)Z7|H!I0A* zmQ27BV4lV(RQ4YwFbWQJva>7{|uy2U;SUa|J#ctuTkND_1FIoPT(=) zY`)4+vvKo3Y9Q@Hvol29I(e+8>BfPaqg<}choXnQu%209v`@g(6ViM|aGc5rko;iK2oy>gvp21K1QPfkE|VfF8E z4~h)B?N~V)7B{P}lzmm{NP*kPW{dv$$7n~GPgxr0oSKZt9h!_tdAQc)>}@C%Kw6ly zFCn^03*NWZ{pkI})0ll5a+!g`5b49i6ay>D?q(D`55j62rZ83~Kp1?RxX6y{uhS0~ zGkgp0wOAScu{d-|w!t!+o%dW`ZKsGfxVszQ>0WG{T4W1==y2i|N;9h`VO73Fy#RTT}NV=-|Q&*rIv&rpe?m9UNCZ<4S?FWbb zQBd`MQcJ7!LLfx5-6Ik)=!%r?Q?jGZbDP)GeZ|_w&_!_UWI0kOl{M#G+_d{?IN$bR zqKt2JxM-&6Qmsm@D^cLH2{Uye6$P-%HTtU6%;NZV=bs3`{-?Uh{^x zUytXQT`b5pAN<$Fun!MHDA3%&KAA9|jZ#af%NQ0r-WpB~Mi6r1wMZDQ^}~*2T#+Xp zSq|hcaHvr8JTfpi?gSb(nfwTvBY)*5z~7V}?dlU`5n^;ZFSVCuX8ck=Te_Tp(piu4 zGSYP89XL4^RJB?0QFhdDEW+09KI-Cb<&FlTy@cyGs#x)RNNm@jHrKIhd(-a6Fh0k- zl3MT4_`%yQ>@!Q*w}S;~gU$sm9~_UZR=u_?*xh$nF2*w0u7$Gf=!Qj>0-jHGPA+ZtDglYF_FPw85Gz`r$+;HPp-R^( ztITu$uyiS(D>C>FXwfr&{OU(K+@Gw$h7uTkie?!jP~86u<(DKtivxWrU&=;E2RdL3 zG3CGgG3?o&KtHM8@Y@orbY5I#m5En}!&c54#h)v>2cDWZvVA-JN}8+9fft>-;9^>V z;>N4(n;0BLB7v%=dV5b*u{?+0_&2_K>ui_Jmw%(qH7v;Uhwdr_6ZtH_+A zruHg*4s^vM48j!IB_db7P`u7>=`}R*MRL;4SBkSPFbbJ}TCM9K_VYtlz1o4tGt&Nr z;0H=JZyq^UzVfO792`B2(3@=NyOad@A^) ztf5oS@+8%6`y`V$_}VXLII?rI@!Xe6_gd4uNx(I#NTpnQ>_8gIX=ONgI$wD)qeRcW zZk`%}HHsOVVhOsELi^qFx5Ih7j$=4HMeU~{llBZ#C=s?v!&|r2hdmK)bz|%Xu9&|hZwR{IBwC-}1^KJrBTrRccTX%0P^atN zbp+fF0sbw%#Z^cx#Y&p&wEeD^w|U#@@d=)3?L18=q1R=Z_1m|#-A$Tn(47Q)xn2vu zryL+Q!zI9NYZ0#@mso`8on^oP%OTZ^dXt`Iq&=7-iaC>*`c>B6>25pod+(=ud^4ak z(EYxgT~$#0KvX%vE$IN$t9gI@JBm?nFHoF3%@d!~MJ(%UT$kXmo*4c4T>_C1`Pa+U zTP)Z7%$Q@40lfk$T@nNj<&+yy?P*#Sij#ZoYkRwIZm4^cY=*A|fl8mBq{c zzyQ-}Iqu_O_m@&YS;^h6$#pxR!3^Kpi4yB^eko*#!@G~4!Rv@&IRGM283d+v1vKZy zPm19s_w(nU?>vo&n;FXCk%fKOk%9bqw}j|o$tH_wc2*8bC})&*$kAan6S6Tg zL;0a{A?;Npo09ib5;!mWbEa?B(&2Iwv42pSq-d(}<%Tpn_8qx&NND^|mC<;zKW25p zh$=2!<=J>465^&K0f+9l3-D1DnOAZ)jZe4?Irf2VVc7cJKX_M0@Q{oLESf+z%b#n%vyEL!e zQ@z*={EBlmIh!3Ij-DxE;OO824O9rUwMKL;2aWqaq)|LS6X-H%jrp!=`j1Bc8f=3H zjGDDe`cxEvCGBpfYW?x9%KT`AgT-oN#q0L=^M8Z(_32_N%4tDxe$`2;oO;n6@&kN~ z+iN__!uwpN3Mr9q{4bvyT=zr9O0^#Fhj)zEFY!X;4!dEoS35h#Z1C-*KelddIQ-er zm86;*wE}`pMkz>|(2J=ONR#VOAP9AKD|VH2YxD8}30hk8e*zo@k-4yB>4zf$DB*^- zpP@PLH+o6269MoERS*h(r)>-o!tkkV$xbKPUQ98VwD+yp*gs7LR2#)OsilLWn7vkG z5dR=5&3pQP`}9?%;R8FAN-3w0z_(&hnM%nTKpO*HWBKuKyrO_&{8p&6N5L{#EjVY< z*7x|&A(H=lNIO($)*;3W$Xt1v8vl=m;{OUc{=Y>5x!(S|wJFb!$M`rZyj$sx&*taDT0VL-(ovk0?Ue|6d$9v);L`C3}J?^Ch&QNXVQS%ab)(?EKdG zOz`~tJcT>0@~d)uVWAmwvlF!5!yMfdd|4|>OpGFM1WV$-YlUUo+kr({%be5q3ndj; zJ+Akq086|Qe47O4EyfZRTCr(XSwgpz%P%w#n4C#rEiW&{;F%5azhUT1S5~)x4Npf= zkC_8Hg;T&p~Jg zyiuG#$cz+D6_4Kwi;CDE%`@%8?8BU2XzEU3zWdkD&Wy!bFwLvYiYPgY%@3ayFmzv0 zdw=kr2t%*v{}(_O`v3I8@jP5vc%>^)yF)m}JOw`mpRNC2gsP{6X|^rq-UUV}YeV_$ z(){KAGi$`Z1%fc57&1m!=51P1hf+sP3Y_%=p6Gv#(m(Z6#e+0h1M|o`sCNux2nzYE zjN#NL?y&R@E|NcUiKsDEQPB#z!MJXbl8VYkiTCPLXfWvV+vPViod0?qN6Aa5thWEy zDt=bC>E;7rDcpqi(PCo&imq2kG=*=cXGx;H`a_{d12+BW6&@&-+obXWbgaLm!}*XU zHoj`LTuE=Wgs7z0j&g7iyR&HeN@HAG_s__KE9NXw-t_T0j(@>NKlXgL8SRRFF5h6d z?6|MFedsdg78ecU@gputT<|M5Y5&?_iWfz5xud-(H`LqEP%<)d=97zb=ef82atpYi z{zn2Get&#=u5h9i&&e890nrRs-0_#j4zDK(LY9LS@-ObzDJGiER|7#;mOawP>!S-NYX$btP(SAWsRSBM_ukKK_mr$Myes!dstSw%tHS8kssDjK{ ze0t!6&4T2j#yhtt!mX7-RfqB0rTNN@H4?6kmE{LX0tz5P0a}q8M+p{Vjg2VsVSHc> z&oi~&Y}N3{(S2f4qT@GSkdvkV_b7|V-D2Oz#M0Su6^kMZeCJv7Bj2DY^)kGBMF%JP zU@aY+Ovcx#2;9{BEAWnkS+AY6cl)R1V6s#p?Ux5DiH99)!zZ>jxw}~p)ODNGYJ-E? zEoYmPF&1LK`Nm*c8TUQlu6P353y|04Vs$?aY$6R$KI`2CmmfMEEZ04rd6UA&-^f&~ zdhah@8PU6K-&FEK?k~TXLpx~?=*gLEzzEsx(CK$fD{A!jaM zb?;s^xU@#{Ij(MHvjk0*+)$-4n~`zwH@9kJ-g>}#EVp3KqJAl!^eg{zU5u;6;zE|bm>-+6 z7<73JbJmPZY&$H+^QVnKlM{{UHZ_|B+-i}_-fI{pqj$*y%oo&Unaz6~P;=$#eSo^n z?WUAHH`4w4uSbY`LwD5gdSAJ&)f1Jm5GK{7_dbyOw_$G~bkBL~VX9jkp9{9p`Tj+Rf%7}k(cJ7q?!&dl zsDa%*-kW_;sb)C!WWs2ASD9&D(Oi4SjnwQh zd^Me)X8ZN&P^o*VcH4KVM4aTyf`$XHsO;x|iM>Lw-MhN`+h}FZW_~}JE4oa(=d!e$ z6M|Ko*!~l1Cf>1S#Vw5ed^wC(N9)ow zrtJ3_9@pWushi#WQzJ3{{Apu}nG&(mOxCmCMo)P1Z9!t=&UOVCPoJRuY6>uF!YmG8 z8U_+EL4?e|T%DH8NONxVp0D=TPUGg>&(rH3t*;NAB3U+FS|pB`(|q|I@pgGnaZY$l zU!ne_1}cU^h4v?V7qa)c{46S5t*aUjtLXd+G8&^WQW>6o5}$|zsvwr1;ep53f0D@tL#vNAv(?UlHgr9db;e*an?Dv&V-K=q{-igDLoo+Wr zm1w(ZjZRwI-tmsTdKoXO(d{E0LV4?o^wYyE=7C_)=&$V3k3kd!nco}Axg#+n_MJ!< z0bO2Pmo!`y;cEX9%1XZwc)5qGqfL|lUCsf!toJE5^SJwWp>nPy*NzcMS84$i=|Ux0 zuyY!$CE#QsHb&T&gLzP*BPS2~3SU!pe;o{NishkL9v{4E9XJ+>>Ar8JDK1*6-mbx- zC11(D*KVl)H9CVMmB*gVbJMNZnq*KBq^#_A*ha;BGuNVZKl3E)%o}eB@s5zX?|WEj z?@&9aq4PUo7jnlHiTrYbHIy8QY8KPmV_3aWHE*A4?Iwf8TBp7x@F%UrRld-(<6&wF zW8w~HY?ewPL-t45Lug)YgfTR3VS-sIctEbA5=EQlv0wbfQ>URaCl~;Dl3(t>}_? zqJJ)sT!D!(8wxB3+;-%^j!u_`(k%zK$)%@!ko#Iq$L!Ss8v`Gmx4ZosLy6nAnxM%! zT+98#gFPQCxi$x^J)Qc;dnR<-ws@%o*@}8^Ur1uuAV-dJ;PBFq^xdh2pUbn_&TqV#LwZd*MG>7TP}F~gxnwI~ z!yG;!Q(pVL9_qerEZb&FoeC+@`ZH2y=UIrxT18s8)Uf+g|avjbCnQ*Lzd?O0&sIuq}fjeOU(bm^0kSBLrLy0lmGwa06sl zdF?Za_g_2Q=fF;<7TmHG{Y(w;a`E_E?vW;8IcSuj5j|hyg3A~wXy1lZIjPX(#S=rb z6(dA0U@Jz35~yD@bI5syl^W7J%}RpX3ofPxP!bw=wi!$vA+Uy&Q%?7MOzGfpahMOr zy*a`!#{^M%&!LV42^RKoPY?Iz#Ov<&=H^zQT_5pt$`T(0)_>PVoLV!dM!+!Qcu zZnj)om^1`T_Od|3VCS~8wa4B5F@5({%-I=u%=0L`VW$pvyx2=B>E;by|NIdEOsVg_i7unT*tx5pgxlad-* zn@vfh+zjuS;62$q9ogdOd_)kQ#;NW4ob$V*mAo!{3GX6?KP_d8dlk;BQyr#7K;;ml zuJ*l!_5CDfd`yU1TD{p3th!p*IUa%HhY0F+Ddz92Mn!oRN4O~d$3{fH>oOgOLyO1G zPXbAv-dEdUOc}AqqSCPxO5yq|Dax2bpX@J48GzUG5=xL>9j3Uil9$clTxoHY6=#O) z2cRy_#%Lu4|8Ty3=+4(Y;Ns=$Cp9N0LJYPP>;fO9O?H~=P+$k@yK=TJvG6p0q(hIy zj_DOrMZ)0z>Q&HB6H=2rXeV6heZ_pA&dZCD3fQ6BzpBDVstvE7q+bkD1t&LHvF*%U zZ^bo2t=)`PB^hbWiGOrN2|79o{&FSbIkhl&?tbNbF)+#nW$%6@g7 z3IyJhs9)rGc}?&Gqm)>C&hib*$UVqKWA#{IDz#Tjfwk&jFpDxt3IS)5K7&+*p50{I zv9_1PIDZN4i;ke@M@JT><}m+uYapnBOWBQOtTLYpZD6 z!S#b573uvYJi%WIb%tSTlNVo-h# zZUjbe9(r_YXj3j@;Sx(R^CS}R z+=X9RwQAWT%*ud1KjgQfUlcM=s0)h}GC|(N_7_zQ1jFf&k{yi23W*)rx+&jIq>9Wf-D!~lYn4hGqE?X@& zRuu`EIsD1qpw_%Elof*~$dr^nagzs)X*b9GNK&e3j+Eq;{J43R;w6^#F09+!JW3;2 zwMn%ie`^!OL{5f!_lvaf>@0Gj73gpDB((S6ihO;67$V2mc>VEOQ#M0@Sk8gDU#IPH zt_nv9E}u)SmIA+`e3MO`GBl(|C23{PEj!zg@)yeSlVD0qNqO7PA|X^k)~c8d1DE4v zpfLGx-%(P4psETQY;Cu(&Xz(I%Gv%iBXqJ?P5K$}koyyh$#0!Dyoa)eYFCI3x8xK6 zoP7LjA^57^vclL<__g-S1@TCZm?76LL5DFR7CIk#j+!SYai?qI#fFzs1y34D<_`@| zz-aX}R8BlgtU||XwKn>TkSt20j{ojHWmE)BCOgNNNq$aF(9f^UvS;wbzgJoke~A(I zO;i~QaZmwBPdraTl6ddhOO)pJT;avJnZcpcr`o2Ky}FbME3dK|ELAtVyAxjaZh&;#|3Q!5D+T-il8BuET&C}O zP<)0dKWA=juF1%1Vx;^GsyY9&E{G^#V2FH~uJxF;l;2P=0R22tkt~Xy!wXhx0+)7O zJV54c+v>)Wi~sEFe#z4FwoS0$jXt-ziW|*deWqwEbGoO*ulFlJRa15mE9IHpLKLyc z0Uq{#Lxhf&^k4+;ylp#fpOuZ86L2wMq_|(=M-8izX9bzxmtL;$wW+6~W2s3go^u;Ch>dQPdRDw?|!GRi?xD@mL74yS^~&S&srh<$ zV1!vO@99_FgMSm&2iLn33gP7pMYjD~qvIxEF-7rLf9WeIt%MMbzxL5T6(K)WY%b1F zu7q1&NR-NTeY%_uit1L4fil^EH*kG612YW_z`JKH{DVG^Ex!!kKAP11SwBm3fN5N~ zT~HEP{PjX)dpJQKkF)Y@@(-H`&6w_jcakUdR32WH0&vW46?n;Mnx}pzZvj*xt6&?y zcU%9aDd)%0{wen|>S;v8Ne2hUT1)W!{NK*QS!@s+9uj1rF0Pk_{wOmbhGi+5tOAq+ zqzJa5fx?LAFa>&P&QBKne_CtGKjwY<)4*>i5rQtAT0O6CwE^}oPT(5PC|?9f3lOdd zESw+xm#j`R)y&k@3*Wwt4FB^v9)%QaOz)3>z3(_23EI?kZMHbo1gKGAvss2Sc@Q>7 z@pH++K-5oR;ahDA;GP1)&~QU_)b?D{CCZZAez5`A?1~?;_awj_MP@pM8-qlHRaqG@TTB|oieuCv`inb;p!*jKBJt#6cBovP3X^^> zE!@LdP#2qT@kD`zy^HaBGx@o=7!4CsW(oP&eC;{6@|o@*4i{oFy6q61m^vJFytKcZ zM>DA~Ny%&^8v-}U7P;KY>teMesb$3*)yTO_uc}s0_cy^NNnuMI9xPAyow(Yv0dN^M zXHLOdH!2q%z{lvy5^UGMup2~o_M-5`r%3B>m3ay{S;2 z*OT(Uv+>DH8@a`!e#tGin6HSB`NzU0?E_}I_HS(x@hen?6af7sVCcrEIijC#476#t z$X~eYV?>%P_FdDR)ne^8pfD~ve!FE~Ur-P&oyYa3X$3z3&FQfYsn()y^kzfdr#Gy0 z(^Paw$hu%b9dcM*YBrKFM`cs4X%ChKa?K-F7spGiRzlAnlV8Ls3S!m%!TNx@1A%W| zzR;Hk3q6o?z@8-xSX{q-e{2=)+jDB>jC21%>~os{NDhKPI3gOUPEgm7rQz(ri^0Lc zoo@TYA89FJ`R@32ZE-WK$R8cXoHrfIoeQ&x8;@i#JmrXg0d@ zd`gI3-kSd<)B5hto%Yt8em9Cx)w1d7;hNd{KuO1Yvn(j{%nV#k$cI+!`sN@z99ZPP8QMNmQCttnEaM8a8lg5jb@BfKc1E~ByxT7z#$h~V4T{83 zHV1Gr9{aBYva~v!nZ!F@14zE@xQS9Z^*kVq6VHrVB1JV{%G7HWp}H%~*eH3j*Fbv^ zJH#jaL7m|~^?kBhsZZXDi?fgr6X_9+0Q{#Ct`6t)SXJc6QzCX=%1?nmqx=UbGTOB) z19)oa7ysZnb(e`B)9O_QxNt(7$%WiT%?&&_q-iWr6%TkE@>Kz|4@ zTlj~bc6T1mayo3G7MWWg(59xO^q*+A$Rl-eZ88~769ZS9?HYj@!2=Wdf$91EUx<#z zmm_%=S{&(A`^MMP9(J*OXE^Xs;U!UR8eLg9=Mx^Jx5E+o49J^9jZHpk8}KX0Hs z+BE1vVsjg;2d)j|3Fnmom5aTKV7L1fcr#*aQH5iz`_q=A z$2G(Fp|;13NV27Oh2(1sv6oe($#P)?=3#$gos5;wiQ~p$n?VHZe6qI`$U{S`+IAwj zEgR0Pdha^6_+r17V|#koOo-v`h28F{eMb_m_{M(Y9}4{jCU!x%!G=%me2KxCoT%gJ z9% z`QjM>>z_Cph*7Nx8G)LhcCnEG+B*_bmE9S_Uzb=RZev0tJUz)a?@Wn&$i9~fjdkaV zaRs<7ay4n9n2e^40kZ~Ir)NYZ9BYJ>;fB)t{yHzWku$4ao1Wqmrl=fEF>ZL%x!J+H zl4ue2Pw(VTSKxaHobg^bI0Jc3+|wC!S|gE>5k(eS?u-?%4CzmFH|zfbGOs_qOVq~1XQFH8hyn0@`QeD&g9^HnAZ7ZYW z0ng4uL%$Cl?ghetP3TZoz1zfqeRdb2%*GI$$)`lLafkC^*n<`LqQu<#?7ByP!;B97 z6$92YAo60IcmQy%?gN%o93}_WeQSW%wS^F2(I<)N>qCQeZcLZyv72=+_;{%g*4WFY zIyReId&;*rY3Mu;D-!KwUdk~nxc%2|lX050}{LwA$KNpu;n)-Ae1YOv%zVz8%pqn(CeoBa#S0 z^00s3AlziqaK1)qg|2~EHYW)W8?xd_$jWT@r`j5ChZ#SfJ{_H>KIY};PnO8(!oA}~ zsu=L6@Y7d`-jDq?o~pEYAI9;Hzz(ux)!uOK;m;M>(SAz#LUZ_KU5nB0dgU0!>% z9y&0rT#7z>qJV6|ud$?vDp>n*l>01%?`=6}&kd(3&tqkaM{;A7oy)%bLN0=kN#xw7 zGv6o1&BOy|87v%Mk9|YU(~a_j11YZ#@DoR+aCZB4AnMON^HX=(tL-Kq{@8%R@O<}4 zr^x35WWC?!{(xaV2CO#t)T6aAZOm`n3D~Elrb^L4xkPrp`&SmJ{Cjvtc>mJ^++@0u zUHd%@sOZ{McR!(ffx@Haez?s?CB6rWN(!lKIeJd0Z^T)GPW=KoyY{&=pvEl#9aN~` z$sfTIwA=I4P%IB6f|j??bRQsb7OZ6*z5i2i&5BJZ)_wWf&Hb8WV~LE#i7{=mswf97 z`$}FJQyX!`TPDEF8mNIrx_U<{!Hd^fQiQ?PWdJ86l_aYeY=B(|S6N%Bs&ye4ihaZ; z$K=~u3NKmPIaH6)jNB*7sM$Fma+5L)OGG$Aa*~?w(Z)+;=PvZZu~0>!71Ngdo-_tu zsiXI;EGR4}%?2x*|6juL{rjs@7tg;ODG9J=C*ieA6=LlsAbdns+ z_Z{%BjXa%ORH=Mw%tjPzV>`m7#zTj*5t^2MtY0TfI0@VBWMXMX7L854>?H_tT9bIm z-E>6qkSK|B2nZ15O z|8;{6Xnvk;18!D0bnR#BIOKn1Vz>H!!Smb(UhFfCJ)*vFwkR z*&mxDa1;zz0uiy9vlFhKt%jg|D%yFgg?tYziuWi_MXt8t9PvdX%oHtGJ^>a_3?Ev$ zpXIHrh_ulR)f%+7&2%tmF0$3?%J>REL8c5ajz|xbRS$j^?ok?sx-&{dg;ir2&ZiS% zl||jIISa_%i~cmk>_;5-A7~O_)TP=S-8L!YIE?wtV8S3IStRaG3xY}*j z5ZsP}n>Sl8>oG)?emM#}y-L7VX5hH2#t@zHf!UA*L`4j1$^E&ediL=TV6*0-^&_?R z;V9#$^)jzBFul(bXC)TV?bdC_sKP`Ak1*~B9(;BJc}nW~>XP}Pa{sp@n&9}e#4e+k z8z#h|LuCh~M{i0bkG98TZf5}&aDCAwNAe=p;=-Ff+v;}6TJ!zyD+%-21nlk3Cx*`R z(jnueeE*eHA!#Rq2NvriE-S@jt=xTA0TSgbVOK4QvO|#VD@&z z1krkG8jyhlKt;x5YilJ@9_EJdR~NV{+YUtu!2P3fPi-asdu||7>)Q%<7QOT3p<&rf zC~SN%qe1T*1m^W_iVwOMNTKSF=vvY6EVdRYZoaxuU~kF0No&8{*!9>Jl6=;x`DToA zukjnTX}xu=Mk5O84q}3!i2=?#m0Rm$kL+rXv+PWKUjC2L0_`ptCafDVP0cC zXSO{=MP*ySa6T@L=2MW7eIpA9SoMU5CJm7kdoTPstX8fxgp%@2cGkQ+6+&SM66$NJ zuX%KB*hPZkA3h7d-Osg3g@9z%WIkc8?xyh_tv0#tj9CSxyY66#d=m;z%|1qU6!1?) zo}fY1^5cVF_Xt81j(v+Y;=ii<^z%m0Jc@h?Kwn{CDA%Ovv{-O#lbB))Z2uyuTSz}x@-QTCQ$QMFOq zFp7eNq)LN`gdp9mq;z+8=g=+Ph;)~9cb9Z`!_eIfLk;n5yr1Viz8~+Omp>f9Fte|H zU3xEVSjD6l{&&Q0$82ZQ;_w<9lkIoS33}aFs=QTuhYJnFLMxGfTHMGaD3c^5iTy zBp4vGS_^AUnnS^GctxCKs8)aHNXkhJ{_#qqxmnWmSS^$7uJQP(_s5Oh2NqjtG3L&0 zXI;^Ff?5r4KQR)c_B4CGv$#0DJl=af!~7J2mYZoD4Q(f(9@fU!=xuiPP5iF zSAfjR@UD&S2;~#Q`16ex;Y^Du4Bbc_-p5r1?S3L0oxH2|@&=7ZhaltE`u8C7JP39k zP;_^RB&3GZHNx>92n5S#4X-ilh@7}9BQ)SR7>Gnp&4~%N-rsU!&rH#hlI^A2l ze%F{b9wRG#aG^$2F|{^I|4C6xyM(I6{jxYGw7~v${G{hHOqGEh+x_nhQ^vrn2OTkV zE;!BB&c0cu(_5l=vpO_}$~+^t>Gu%qw-%#ij5?MuRy4XQ?EDFz%S`xhxq<6eUm-oB z->Tx;8F6G>P8e}HSzuNi?t!`)Mu_2VH%)Lc>+k2TmEuPS2w=2R8(p+h@=E4j-tdS( z299AQoaDW+E(hPV%k(Fg6fgdC6vnlA`qzs_CVlX=Y96Ns-m*x-8;JE^m(>;TSa*?M?(eqyY-x^R1l%2g^TTH5tl?Gm9t2z+BVQjt zn_VR~#Sqz>y@z45(3jP7e?xz&O-eCrX1X>%6jScBU|(nHkPWe1FMf;XexSfkl?lv4 zOPU%|3UscT=B0@n^vR%oWzuMd>+q@|y8Z6Mzr~2P#j9GbVn% z0W#2Y9~#I{(SSRKQSq4H;aJ%hI4=GqmFXwC+XCR;K_U$wcy6Cg*VUbeH~i+jE37GA z5VpE=pY0j7Ztnn zEoI!hq>AY8E&QVL_N>$D?dl|lteuVuG!drcC2hC4G@DT-kaQV*Uuq&33HioVA=Q7K zvX@U?RZ-)j9GXKIHI!yf(!Hg=F<@@VcR&51Nk+Bk+`GI|TUk9jkXn@ecQ|tY@cYs1F76_D_;hEaD8S(Jep> zrX>$?##6HcVD%Lc0IIz8bzC);W9-UiE(H#&)miBFgE zB2Re;MG1QC-IW)EVNp9}Pg}e#`Fd|nQ*#xV9ySyq_moDcL0oG8W@E(v?sc}oV5J_8 z<@{^&w>*>hf!98HYA~PY4Ge-mn-3ht0(w2-&Kj#9~?dA7#oMxvl!|wj}&ml(weO{M3HqA!+fFh;hod&cNeV!_(1s2+Y6STVD zf^((`O#I8=9t)-!ju~;|jjW^oaNN+LYL~q-QBLuz;^Gy*HbuSr>~fAcl$qm7uNs@h znXT*|A+bBCycWI0nS|5hD$VAGr3~vzg;p?g!15IeB`Iz^8EcBrqg2hTpP@aTH=oZc z{?fuV81s4>I**%|W8tdSHWbIv)*pN;FlypUnMiuqb2nF3iI_j>VWcHw?u-cY{>VA> z8kU@)cO;bPI={^6CLi>>P)A#9$%d1}Umd=>IYH7BSpnE4GsQ+?4`uX?lfRGEwp;uh zZkT0#>SH!coh?>pKQcB-^PiC`P2#^p!^^kEQ_JhxXoC8Allvp|o{Z832XmutZcb2E zypmOU$3od3@2L$eiPp3%1P`?XSo?<426-*M9a|=s#eL9I4veS+)jYl{P84--voYFF zou>RYuLb!W2v?SVHl4#@#8Prg2=+W+fydXNci&yzD14Ujlf!ymdJY$dDkl@;9EdIf z<8@Svxz|X8{AZ==!4(pZQkMEA=RUW`Zd}UZ{Zg2E-U47G(uZUV8cC;mr-4>Y+gL@jc;rU%9miwJzj#!2b8Z_kxaE&{cx zP}7S|}8DaHuQX;dTjZ3*kIVQAdiXcErxL%M2S!YQESQNuzjvA{?14gR5?SsLXT1G}D)yyFpe6{2sQ@WN?2#1H)>5XZN%U*yr0Sv`xnH-Mo3{@+cx|Q zm0#3ITA@%^G9kM>;dwXY#T|Dq)~wDB_;;=YEqiy+9}$~Q8QaUxUkyv$u1kjov@wsI z##x@6Q1l2~hwNOVSy$Y(UK+7EF?dslKcPk%H{76czaY`J`cZ*Y6w5y5X?K8H!f8g# zRSn%_C^pzRZsB|H`@5QCl(`nIR6Ah*v2pk5th{dCMsf^&CoGPvl-lti^b+t{ zd#Ta;nN!Thvl39=N7g{MMox`;4hS2VT`H7?;+~t$ZtfTh-6JCdOTqQR>Uq zpP~`66P9-KL*~PMbh>EnOZ2E8#8wyrh^H=9C+d4EqK#G+USVo-lZO}{TX2iIT4lEe zSjVJ{yxt-a1RV|bUY5uuq_rDRbsz(?gZpT6AeUagObrPW>2f6ujSY>^^H_ zW^$j7e!3t?+kAAmnq!R8#+UNQzPoWw!j2B!GLH8UZhV4ku2tW#VcT)4iM!JIqHpl= zgRBl$q_RcZqRm`qbZ{$l0sBOs(Z9GA^mRpD`%lg)ZyQ(fFGq8M7*bDIAuJ)GedXRu z2hQXa7jo|@ykHbL`8YQeNv1YB&@Zd{OV6-=d3503!~2%k+h7CUbZv8>wwbQ`V8;J- zSN2+X?mg4=l#o#dH_sx2|IUG7n458arnfh`+ij|s_is&}4kcr=uV36+(+}s$?e3<( zd?F(Q(SP)(VluDAXJ=%K%WglFBvs(#>{peUep4%R_EuQH*qWe6X$EZsbLHm` z*}}sQPT%*f&6O4vFPPh>udOj~6CqQvlO3b)li7WC)Fx}s#TpTanqJ{vE9}&mi28Zr z9TEH@sY5%nCQ5Vz6PmWlBXGrOY-(es7pP9wQn?iZ{&ZWJ7~jOzGaP)WCGh?ZnE>J>=5b0`bZ3c9!ItLnEjLT_JJdK4JrzkuA z;Qgw6uhQDLMoW{U9jAtj8?IYgEc{vq($1Q}#83KcjBNoeJUqOR_V&1}YasgT9cyQj zlat$n1}-z>U?K7N2iz>#G6-TXixBAzK*&`xvN7B+7TZwEjm(rxr@LbPzA(o*Qztbc zk#_s_8ZwDNs7X({+IX88@T>8x@_bnEH6$sp#hr2(-oJQ$vkN7?b>XRa)9+zmMeJ! zh)8<%CAa9!eb4W*Bw!7|M+?71k1j>z+_OdZIgwg3WbhB@inIkmiUK3npro>*=}vD* zLw{vceI}>Kn%if@mnu-qoG`7Zt?n5Gqs1M(@Erc??@}PPMoKKceZSTP98Sj&jAD2d zm5PMkAc5dd@u?+bY+Uh>-7#B$`|i`H6S%c)rD*k9^Qj6sY)#FyFi(AYQlSN$ckhHo zl5?H6lp2Sz(0RE<&+KC|1>eYB{*G~6Ms6Pf6d@Z4@V=ks!LdBEiR1EgBgSKjUIBXILm?D=O{uB^_?&&A6q&g$U0u+NDzod zA_hFtmDSZP~nazo+=b?M z+%kag4}b6L4#8fiHbEDSB-9&A=LLu|D-{t)u>Q@*^n5Fyf~*EWYOGAq-T*w1-+_zJ zYI0ZySj)buRrv$7Z*b#R(P)IcZny*~E!U9w`<^f!J}-FYITB<0j72!y7@ISIhDvs5 zHEK}Fe8S}D>k0m_!BtSnL6FQybkb~A7|DH#rs~mU2&sL@xwsYFD5o<6+lzQ zYYrH{Z|P+@&Lg&#Fa-`YfseaB#%R zj+Dee)PWR=3Sm~HU#n98HH~sff14!nT0pciWg`~in^0)_jkmpK-#_7~I> zmDg{$+rvI&wNDvs4Srh9!zculB=4YyxDmavNiDf)I&#sKch5PKKJaK3s7|DuRS+l^ zsz(4DTWvV-Thg`3`4sJ&%lz9S<n!xXdcnC-z$xul*seMS*4T-A2m_3mk{EjY|%A0l+jrZ z{h{CPjW62BOC9>4R zot*_xx4*TEghLh}wRD0n^xL^Du?ZLQd^!K)mS+yz>fGBck1Y#T%3mO&ALWS8m`f%x zz4n0~&cTlZ0*N&>@UZKNDo2g*z!p}Jed%P}NYK+Co1k4&_OI!@61@h8lc+xYqX-jO zscAFzqj4e(%NEp|b=vvY_wNO3Rxrv z)5HYFe5R}mpwRp~Hiqu*?rv#mDO)U|a+v}p1egvt3iF#TpmRD?C2CVOm)MljOxDXB zz$w-&O4fMKarWlTo6Mgo@L`u*{;y*FUzsB!7;7jO&tN5XT`d1_{olo^ZC}Dbj7;g( zn0Bwh)_N7y^*Pq92qoH3#O7LVSC$HFW|L9Fo#CXUi(_!DU*aBBGK-bCyuN<=-09X- zbgk$tb4Axw&4G7Rt9Q#7;<1N|uvb#i$<^oO*1@(FOrCSeup0YKV*qH>m|F1M zWdnIzMR$ETiOSZU@F(B7z;X(x-wAPo+E&TgL0aO^$I8hvcU9)IKhkOo$w|EBfdd}U z-j1K}oL=|1kB^Vfr@m>8?2yyY#%3&x9xdNwEWJddK7MB;1q2LD-CepSCo!Ao+Suq6 zB}a-W&;aN{Hg16;b!sZn{zMKt0b9wY{W$qcl0!+OCpfq=9Teea3q*h!7nOhyt5rJT z6a@ixL3_J-rYwTsl;b$Y;Z(L5__%`PV8fPDU>IQkzIbAL!3Hf|p`3}eMgvZ#O9l-#8z2J0)g>M%l8ec!F<(K*>GUB*A1TqKZkMtgUP_v@ zOgn@OO%$7DP>!mNc5^P23tH_88koGT%ZMC}J;7&)OIcTdR627GarxqWYgD(XfOZfp z?BHY<08&^3h9?q6yK95pVmmQLYaKrc`8*P-m0pS~okg#>GCJ&Gd|R)b0|LfnPE;bU zKZ@ys|8tG~hD`eMl0f7YI%~BE@Te+Mzw7az&=pEZ)hxk5ovT%tk5`P4(4v07?^MEC zizVkLV>fF>zkzvB0#05MQ4JKqe)y;Xr40YaNeR z=zN2BoS*;s5z^39eR)|)*Axu7;EimmeeVPWK_)jXthy^YQsHHYH*=GyV02g+SpTZr1vQ5KwR@eH6s7VFZdNm?~{(=C`E z1yKF4HMvLc{XW%W+Gj}m-TCM2FA6=}7a6{*Q;C#ac&d23Q34iANli=1tgNSm!IT1~uLR*q3TAFc&zTe#QZ9F|wDCSKNib-e18tXoX*uf*ku<9t<#TX#;$UvO^VuN|@cuW4)*@f1*pNU!1~gk0 zs8;HWsfY$kG9eJ(ZMh3AH%V@-47s={=e4BZG&?_qmq*FuF-aw}ZCAwg)DZ20Pw`b#EFu5HJsl)ABo6?pkK~G>yih* z9vA*Jf0tQRw+xm1ygthoSn|gBa4k8YiWWHWpV|RGat4Luh{aH(ayW(W?d{csv66}> zXH(&Zi}cF4Ao_jp)A9C{NLysBtOXe#Clh%zpP@f4Trx|1cnWUyR~1e4@2R7JnI~`Sq5U}zRdRVY{d!Rzr6_Y&b9 zkRr%&0aB3CCT*Q9-luef%?Sp(S5^+kV0ixa&{SUcSRj_goG)Z1-d?e@bL{B^zli81 zbSO|PVuIF?#i^I}&dz=irOek~u}*r+qc8Ym1aYFxAJyFI51@i;OJ(@kT3e*hZilj1 zXC<+Has9MsI&(n5vq&b~_pV^t^{jYvrFI2_bt4kU zMy$CQLXi z5q9kB%YXhano8LA9v?tLqC!HN9?gQ(Di@D9?^=4^Gafi;>7sEdQiCY~ZB2P17C1g#@_Q*!kC>CR-Jc*fjp zl^XKPxA1T@Y`KoaRZnlxJ#KO0lg;J&nH$LoQm7 zg@r}RhaUwq=HVh_LFgoU^W!gCE-v0kr*R2eN}^hCYYyEXt&N6O*uTxLkg#28E5(q{VIEaawjxGW$ zO+|fuUr*0#XJ_ZZ1bUf9`)yl$``C_6zSyMEZJ2({6qqt_byOiqJWV@ChQuV5W|nSE znc11R>I;pxK~cCB+O}Qhv;PwE0-oiX=wf-wd5O2ug9jK*x!;qJcz9U$(M|N}#*84P z0}jwp*CRc|F>r}m3@9ie6&LEvN0r$NcJ^UJ7mqr1P@WN3^RAx*DpJVIY5gc-YZflzSrTb-|n1z3Zs z7%h`?c9~h6q%(Nz4&o2VRSBMN)Em-4*|qfrLu3s;kKRv;IB zreoli)8jPo&0Ai+TO7DJ@sa)vWAHUsScG`jq}s|PpEdDfkP)JwM1{cfHDPS%sTjXR z_o2)y*|=W?nf)H|z?qXaOS+zLA-33)h;Z_}aT=N6Dd#rq;l4baivq7Sk7tH*N4SS? zMuLN7{6;;Xb7pP(J36Y(a$oUVngUnC_%j_@*@5(txj^f^hXwm)VY+7`n-%_4)bfDm zb4NSiPE-*5vi=myQao>H;ems9fQ?san3e;>>eD4kG202{tS+ac=UJy?%f&EPo7;xb z>=X2@V;TrNvjz7Ct3$HwX#k)UjJ z-Tw^7rg!awOs?_$zXRqYqOe0(C;=$*ZA6RYX01%+sI@quM_1~3tPFd+I5sy~KqTAC zurXV*q+;w%4T>vecOuW1c^aC4Z&rJJNVqhUi(bl~W!~9$Qru_o&HQW-eIza?7RlE= z74hJ*5paHl6q2KykmUh81Qd+9dS&<@x}(w_#G69@yV0cbZ17R2mV~W^hsGyATJL%t zA8(e)=aE|D73rRWzqy^y(e4DC`CVjlvS*G6I1VW=@; zX#aAVr>Z*}795aFoUQWnGhYRmxcqSh0T7{xlFAZRS=RFz@pnm#z3m_)tIgxl(oXD1 zA2Pw4>1Up*+RS*2FLx}QmX^Hz;)(XF_)uF=MPz4#`SWYW+aGtI!!~guz9INv1GZ9@ zw3si`Y^3N$`C{|1;^uc*Bt~{PHS&&q zqWCLtq6fT{q&-@rL{v97%|z0$+;4HKJ}RAE&FAR^j0JbsWoM6?!>{Xl?6@iecX0IN zxv42I&p7sjzlmHe+%NdrZeC3r%){DsWer{JXmNmo3bxCorEH4%OpzTcr;R5qA&>jy zN*C#IwRqZ7n2knXQxYE{d3*#W3aVJA*{RhL^}0UU7&q{!yj$+%AZn#v?UVYdAiu7Z z_p6j(CQXNqb>~|@s{q>5Xd1Z<^V+UNRZC)gSWwvio9~(qjoiO_g@X-6)oJ^=&X@EA z;btl$vB?P6y;^-5UnXxo{fj8$Y@||i%ijzL*HoR%dEGAN>4)b}ZSqd>MQJsLym(J| zYCu2P6X+#$nza<>v4S5&ZMk$0$|?Z{Ld2^9K;hy7_IkWP559Omf?g*;TX1!&SZvH7#lE~aHHF)~ zonTCY9nJIN{uy)A1|?`e7)Aar`k3(_p~&No!5r= zz4A1~GeM5fpzwQr)?EQ>19{HzwF$oA$909|hWUwhZO1x);f<}WR~=+1=oL-QaXhCf z0~o^ZPw`RbvAc1gyl@;(S~y&uN(m`Ay8{=WwCM)x=I3#ptX4(p(_2Bq&YO3vZ8|l< zjjME2H?~bLUc6vAtGY+$;v{`RPWp54=g)=s8S~m#I~B{x)6G}h-cg1(8ly>rl#NU9 z<9|FwUn+nPH>2!6vbCBiCfI;KF;tkh)s^FBGkcbS>)?OJX(1~ zkD0-uaX#d=suZSuz4##V@E>r~Rueb2f4!@3$YVmbf!wkZv@mkUFxc1#V&?fud%U&V z>IyqmF9AD+=EZ3?c-g~uxkY3am*Fqv*NP3XyXE5?MyBTbQqYx#^gz5nS9=_a6*Vta zIG@|zIk`sSM>*|WkMtF4Yj=T30IA>WIe+2|RG$bfN4|SIc&o$Ptk1#~4tJnScVnc4 zN4%~VeF4dYfsiK5>#JE7wz!B0f2On2G6MhH2 zjY3TkJes*AFpYC>>mY;P%fhpvX`?1T5@1rc_g8wAJt{PK(X#Yq!gu^ZN9@pu@#6eb z2NhwYz_eocxAVk&M#gn9=6sQa=#yDg$OLWpqEL8lT*gcsTKw59`4VCuX7@S_heu#6 zCAIHS7m`L>o(DhQ=Kdm*oKXL*sd9#a9TyxHHg@HlVH@PitdHVr|2R(9f;(0Il@#qP z*E3U>tKDbqKArTW6vPCZ`Inx5m9Zp|rOhFyY6L3WVO3ITQz=5lti;Mwl7aIzW6}AK zhWFDp3s0v;Sn_V<1djVdr$LLeI6g}V*sSuCl6M*fmV~x*1rxy4YtaE$zoYR4*|0(@ zdkU$9Z?$=!p%~Wgj58QA)g0%f zQH;mN`Y;V$)1}jC8wQkxkWf&_KC^((+q}v1Z);ujeVtof#D9? z=7dRF82K1_m@N&z^DW0MHw8bn>#hc zTXV2YK_wWOb8y$@s!vVptlcs$g82$>kTMbZQPoyQ5-T(tkY530PQ=|aR%lLomtWcp z8UB!TFRz0RlRo!(M0;nnEQUKHNUl3H-1=Vh?vI4ymgb%(E(EldzG+2rMyJ<2n%UDA zP-D=O&D#dVJB}i$<_px!rCi(gPsTC~_{hFa{Ma~-X@L%y5xZVHs%fMCyLy(|K_M&A zQi|h(nLk8u8jot-q2nAPZP&zU3S0>|lYyq&=6&GUTW&g`!;hI5Dmp?Nj}jz~J)^ab zNV7uEMWTWQZf{5>Q#xiEfjuoXriQb(TjZm!OJbmJP0x9hQhK;=G^|7|{74k>AOF{EmwT|>PS@Z45v79k<0!~Kb&sIfBA~uJ; zFZR&{G8H=7XnW!nxY=Ng(Ejpmf41U z$3(F`<3Y35<;^Oa*OLWVkWA|KaKI4myVtFq{z0Atk@&fG=YQwsa0nuZ=(Yzp31lOB zX%{DopD?(lzvyH;0x<`0Z$8byW4b7s!Z?IiVmj;1a41-gUoJllHwP4UHnbz*sZ0Vx zr2k%LGWoyabaGq&(tqHefsO{C=J?+Wgr#3T)3E|C7K&DQF=#>G-ko~8is{P!(r3zK zRDC3MYva3bF%I0nO0lr&);S*t0cd(~VNQDH6%jfg*uSQvZ`Xl~z-OySZreX~L?veP zZJ1B|TU-H*vFcS;G9E3qMOgE??C2ZdP1lTWNgV72UWyC6 ztOemh_q{{|en01963-}l_2B={<7l1hN=QqKl+WogC5bmtUkd}ByI+P1dvpfe{hOem&n^fg?wVS*0whm z6hfUp{(+UjLBFN*H}7gKjutEZD4U$R=JK)39ryPin=JRsTcB5ec(!K_p_)iY#=DVL zE^f*lOH0j)ujK@M{sS&ue(XC894)k_obb9$ln4*~E|ac%Cp^FkBz0NFrHchtmh;V` zLzy^%(YEw$xaO2X;QugE;A002Kk@LOmLtEHXrf*KhLU>3SFr(k91#OoJe7rVCZI^x z+1s1PQA8=!7Ms2s@^6tn!=^0pMLS9#-t`cA7`hPgd!-`0C9uE0u?sW8kH{N#{*8lP zChw8=FK6UgmJI#9?|5`$*W`5A3s}JMv<+tb5! z5+?}3pf9p#Vj>!lj9>!opn|=h9wbLf{i#a-JAK`rjd;Y$nJsvJ36nx3-rfN9{jSZs^}wfbKQ79K{I0ASxg!p$gE3!&#@FU`GiUkZiTxS}dZISY!ESuH zmT#s$HFa=tO&O8rcr0GJF4<=LRu>4rG+3q%*zXj;V7KHK z5uOao&0XhYcQrK!w%m5mFhzdnx^I@kSdq^}pOdo;NX<8}1 zO5^WKOV(DjE&F!Z$MhAF@fT{LaAKi@yfgz?<*j@MuvRmc5@w0ccRlDJ|3&IklGoV# z@3j6@g#Yc+C($SH6r>|Ar)BDjp$yt4qTT3!!u*?L0G(t20l%(Sw+fm)%Jz@MAyZ3;~ldwEGDYD>C_^9!5 z*-xV)s(;)O5p!k_k><=nU&}{~T&@57t3U#_Ft{>GQOT|H5Luh3p+|{_zV7MRCqmi3JgP=TS^{Ob z%ic)SdM23US#J8papNvl2}E0oekc7R=Zkc%OJ%!;iGlGAz8vAh{{MhmXv2@z!OvYo zLEDYd|94Bb60~ypV#f7$=JnCdIx9~c_pmp#^$2oRK5DV)rQ7FQ8LRS1m4gn}@-IU8 zu^~qf`ewi+bl$a^zYp6YbKx|jI#n(kza}sL9TOuqiw8GOP8nks!c2>3e+r~Lp0u%xT{T)8f1%hIgJ*3HosBin=X?s6Q8UytJ^Ran zzJqtBYFW%*s3;)Igr}|CA-jlgDfsx(e~zK+?pJMlJdCh^)wy$5CngnVcKydi87u%K z8qsMc!-87}`eh96m#^;K+cf^xQa3a4otw^AkPdl0MbMj!ME6 zVmQ6AooQ$1rT*Rzbc7Bh9f6H$;!WyC@!7w=6#V-my55_*$Ri-i>U)*74SvQ&M11zRAPsdK>O9ZWicdf%Lf;oUn)HQx}xHC2H6oLKN9 zdYFKeUH+jvM?ZJ)=C+B^`_ZFKqb7VXj%IUrHz=kw^jA(w(wPSibt8F%X7*j}LC|Gi^~a@1BIE%YA4Bz6p#ZNlIqUL^3l=L2GxLVW`RzX{W? z`{su9LsQ|?2@w$yGY&BW{_0vq^rzi|C5rs#F6$#mi4N?pHiLZyR?CSjW>~-YQnMNN z5yHSkqeD7voq161d5{NrM5>iU!)$;FKo|y5sUZsc;H5CB^yOV4jM+tYRY0qp^qkAP zT(j#DK1Hm>q6?9v*mSapD2={kON(v4R28!Pg4tuy%%!y$@os$2&zZigs@;d9=QhBd9v87vp#xtfd=@dfO zKpij5(JW@t&r2LRcJ_V1kvwR~)v@f=S{N?U+Q%v6ML_Ry(I*0Vul_hY7HTPG*Xx+C ztSLUStbCZK>ASU9`4E}<7}b1^u=HGG1$z=h4*Q_f^aB=hGuB>enxfv#NY%ag9T z5V64(d%Hc|SAdO*co%9XSYTS*o9N-EV?1VZom9+mGpn~&ym0N^@0M!LV&2t(Dab@b zskQu_%?2#_zLnV{}RYaa)Z*+cpVRCx@N)YQUp&s`6TW1N}WMb<@Eftk9;z&Gv=)6+S(2W z_Z&d$RB%{C=j>Id+3QclsOUm#S+gz|!n)*5RxN{rAwf6x7Ev`uStHQi$h8WB z6en=h>h7IC3~TgGRCJk*faRmC4jzH-4i4Hg(}_YGAV#?%0CBj>$OPcS+bS0Kb5K^g zuaFL#vjmjZ33H!y#I-uZnX(s{M_WJ3vQ7YMK+}Z^L4j`x;%?h8MRKCIwmxs@8vt35 zfGQN|8h~R>NB4u-Qm!$M+CV8|v+A?E_SWp2~%!xJmLRdXmKajk)t zG@*Kkx4A;9$=y`B(x(}i^j43Y-wkwN5RStYeG`yoWGvT!6a9NqY1zU4mCrL|)N3c7 zs+||FL-dz&g4g@hMog=|i|rxiAssM~y_N>h{0cmt5g(y~Jb=+8cgy@@sC45Nl1&Cal;Uu%Ef=x6+t!NlSz2nH zE#t%W+yx114J(4}XI4Jt&plGOd#tT6}&>f25h3jf;+@CmVx6^;hR?0BH~623Z+ z52NM)o1(m-e{F1MygAh3M5k%cqa}w<%FskrMcr8K{w}1rC4GqcH`(tOw$AQ1g|PLhfjR}n3mtjUkO zh7;76RbQ-&w!tW5pD=yC+iVw5_B_ts!!w%9b@0;iN88 zws&;vu@uFzWly0*q>1jMWFY`)C3*%Cf)P96A>D#FIlvU8os0xbzrJy-7X;P(0rb?3 z6;H`!S+KgC;_mK}_&?3ms_L}6oqRBZKB-_U2iZD8U*8O;=G8&6tR%2aoNNqNLmw=_-8;BM2WO^S z6X#SP%_xPTbgv}7rN%@*V$bE$`xAtiULLXW(_LK7T)Fg%VoOamkU6#i;!~84(_`P= zcD;{agF9XBT*rC~6#QyYeLn`<(Hx%SczG}Y-a?gNbLhs#dySDD<}m~9twZ0x+qV;W zyrDNBh#h0~j^i7;HN1ojd*$=SkQ@)kxL=)Z5uA?CvcjZ~|0V0_zY%vr`bv*?P_#tL zDW@jUdXoI2zsC)2?(HRBxm^rUo?ARp!iix9m6VN*jaKbPfZ~wh_BJQEoeuRQ&n!`N z@cFM;_@6+r+!K}EeSO&8W6OnVjQiE4Aaa@|sy8-aUZ^``Xz#19(irk-3{NnDA{*(r3@~n#_VE4T_`_jJ5oNs&ac59ai2Y~9infn}ta_h)B?~uK{ zu3r$DEAB#g<8##U9Fc^Cg)!d~h2<0zq^HM!Hh`08yc!eJQ5~%CHeM`P!=`Y;mY|CKYnr>Ul)_1X}8K2LzPxeAq zQY>lEkoL)O&^GU}RdX_)vqO4v1oC`m}3TteX6u^wUxo75*%ts!qjSA8I+&2aAa zQ=6WHf@k{m=GFRs_>BuC^szqJ24R+sGM(q!_b7pN5`F;C8uI$zsg#)^@h`vw)05lr zQ}o+6xVJ4|Pp>E_KWBdaEW0GWyRKM>4Yv~@X3}O*D$o5VZb1EUbOK!sJ31IBV<~%c z{5tqT6o9DYu(4F(@;jx5e0;1&ABL&o8!~qzTWfz808$<7$uBa~cuA9+@S?%C(_`XD zy;OVg3Z}ynMObM$__4)uisWOG!%moYgdl5}Cok{Nz0C~JFoD|NhFzObim!+tc2Nke zSKBakwVJ)5wv}{Z<>3=ENIe~B)sYAp5~idE9hEBdiXV`!3iQ(a>N}*rc#fIj-i6A z>SyxDsVR~xd^fZaeIq$D5~~$PqcmpwNO}aSZBr?je$`GkW3sz8Bc9wMt^63ik?#i| z{~?6TL;nXMEQtlE`Q$VQJrs)fAjPgl5J^RIckm-fLw)?k*`N?a_FMAg@_G#b8DXg+&tH8uR_d2Mx$R; zquKn5kYJtbNAkTl9)9_4;}_uSB=-#=o#eih)6$Vjk4Y=gDxS>}llS01obKI^!Zzed zO3Ij6ww5$N-w_MwrSBGA-JS+Zd2l_t0wP6`AU4)p%VRuary(9$v(|(;hK4e3pldMD zh;k|=;7i`Cok*8ds)Wd|L~2V1b!i{aHm?2H<@xXyZdcyqJ>UrUD4(8*A7AplsBTJ1 zQF-fjXo97nj~;WvR*fJdzL5Cy&!0cBVFod`o`V6kqzf(lftF>}+{zB!hCpMC?``%? zhS=#@XA6zl;RN2)TuiFv4}N1V&=YbDDQ9VQgZ{YD9!I)7UoPBE zomj#;Onl)q92Vciukt%w?W*r+B#(A~rkL4EryiWqjsMU(#q+RW9Oep#{uTGdx8{0p z5hJy)I>5ZcVK)bR*VVK>-_tz^kb#c7NJ}zmd4qj>5ilb2{ z%pk|hlB>GkoYLOsy53_XRa**=L<0@Bm7>|4_Ra64yvl2)&!2cPCBFQ0QmX}Aj|0Mq z1bo_8{JFD_8zNYO{7>&6U1JlAr)(WkMXvqUOG@g9Oipno2c^rkqW3#GAkJ#)b6weJ zV~>|;r~DUmQFSMh8mpfl7s~ZdqB}op-C>FLjV8@PjB-^%ni&&*#__7YkA~~mr(fK> zd7avvzk5OxvDeUjFGR+uPa7E-`HBu*f6fPgfjIvu^5~Y|-I;i`*EJ*TF{xAfj+-Bdb`duy|9eUvm_WsSSlopXDd>_(~17ms95{TT7F{Q#;_i%9SOSQDbh&%{q2D zc_>FCWhFL^Q|g=A_XA9|3e(2XSi*8BDka@qphq}Fd^mX9E}zUxkB2PiM%uOKF40%W zsExAjf@lmlzaxTVJu8T>kn^;4G{EIX_kOxz9VH`Zz=&Jwk3Ky?%Rtfl`;zjJ5K|8gzcQ6FJ2Pi1>1=>AS~61WPptE8zj##@M45y7ry^ zq5tAw-ot)-7t|K@O?%L(=PB<96Zu)DY+c>PT;96jU4FQ{s=O2w)jzEdCg ztanM&*&B;9OvT`Q)y3wA*K@!2QJ*sS9Z!qH_RGjtZyXv)^kmKCPmHKnDZ(-fn5~GF z%?2H?GP7%8Tf^lw9)~MNi2%yG)0^`G2DT2)Bl0iT1Idos+n46t7tF>K@DBoooZcmu zri(E&j42r&z4=+mB-3@)=|*tx%eIMXDol+5kg5jnN*gQ*S(o=XpSJb*+lFH?TPyT| zfjepM%~iiM+}k7f&DStv*{rp`sfyOlP;ZxOdX6$Jq!gZei59!fvS8ZNgE=Ql=ih~$DcOcsd(VUel8iOLj*eLF z)bg&frhgE=MYOotLkM5QM}i16-eJT|!JZD)!WYmk!)f}34u@^Gr~mE>!pfNLrZ&rd ztXXhNcu+9X{~8?Y+O%+g4!`VxNWV6--TY}t$I7-tPDzdlG^L&los+>#)N-xQ-Eu4hcG6pQA$)x@=YtLVkwn{_xg=b)Dlv$cD%8o%h z;AesL=)ZhehpnC@B;cO8x$D(vaOUd>c(JyUP$ug=n_~RUQ_`;#aB*>Q=NM=bSW{iC zOV0Mq_NLWyZRup1h?27Z6@t%Q!>~|@wa2YE8hVfF1ueg9Ja4)G!each9|$sFm2I>zs{hRpHau zv$L}&^Hf<$>}jl&b64!q$Il?iDkbB;yccBG5J&=(Rx;P1SxrY$ zW_t3#dh#dUNn_Z|rzNu*vwKpXtHW20+5wZ^;Jwe2&OF2f-kAN-Co<<%5yG2+9z2}O zY44&!g6ULUB9I>#8hbm^_rH8#I;);icoCB6{Vl58WbDEMWP z7bY=PaIjHbGcxJ^{{C1C1L{bL|L`_>qiOS!-@tmmqFit=-IU8uod4UN{x^g8kAKNR z$h{A$5cAkoR#=cvj^iYiz!1}y>qQ=~DmjfGH z{-?#-uviZ>#01nzu*1)%yaK^}#5~QU&If!lVjN+v0#xm;vOHrkzOvC~%SWyBe zC@RHjzIZww*rZXk@{(zX4t!&y!mw>Qc`dC790nEY!QJc43`x3|(#>9b6}{jd>(%PJ zz`#JUYe`a9YWa9Bd8_f;pEes?HNL20S%_|t%QF89})v9mJ`_Oy`YZaf{Cerq$cuf1#SVazSxm1sD% zz?IqsV_>+6I$pema5=&Amja}6lscJ1s`+pbqk9g8La$aZy}vvC6t}i!b~;>4i_4Ew z-PB~nE!Jwn1?R7}f$Ne(^V8j48))oz1Uz#A#hlM!hkJWnLuvdYGczHoI-Z>Jr8zm& z(T8>o9Agg?AG`5B+mdfS?jZ`9nwXeyxjXLVJjG+y4$qd1THPAS4q;16O9L0LB4dyW z1V6)LdblTBYM%_OCQ~BA2z+sIQOxxf83dG&hWC=XqcJ5ugTY|QrX`A6;1XN#o$oGC zeQ>DJNgtKVS_HSv+15zTT};gLhYnE!-i5GfnAU(%;ebv;?t|V@2%P;9mAZzMJMGVk zwRG!C<$REqUUuL+?q?|bQC7xW0xxSmL1p?}|IKA#b~c$VBN-FY~M(v!MvWp*`6Ll+hDUr9;tde=ItnYAcrn=j-gGS<|d zfqhKhX#A+YX{Zqd80c5V?Otppn}JG3#P>N9`Bx?UbE5S+5-f>iLaS?`qqyqH;2Gqe8h zt=3CI595FTy2|y`2z>B5$v9mqXCmEoBPqvee0|~?6ug!*4pcUqPnCvmPfku&UpVj2 z#*YtO?9Um3en25k-ugq|iw*Y13Irw9v)~{9(EMio_0CzTR?`>osUR{hwJI3+%~MF? zcs+jSd3*6Ih1)tI!*zq;UxNh|tF$%QaZ*~eg;UB&qac~qLF0C2Qm^p(_F{ja-b(R< zmhi_f3weKyHG+Os3hjD}*B)=~{orQxg00#}_Sni2AS=SXj>?u|!KefeuH^V`ku4s!TK! z3$U(ihEN)-u%bp0d~-NM&Taqlb_Ixx)A*AeHgKIbU~|xXNOkf}7379ZlD@1a6|@Z+{?}-%>iD;76ll(!^R-nCr5OgY5-dp)l7&IyNbxS0_|A=# zWwQtQEg$35Kf6zBQU)Pb9!qA%#{M`QhZqG2y|`E-DS-_2F*))hwH*he;$6Fj<=+5+;XMqoQ#eq++LXB<1Ja@uyJiO;`o&Cg5WpD?!={4l}^$y$M z;NSzogHY$P|5D1!&3%H7j=q)$4t0L+sK6Z#`B78Dxz-$Sy2DmzYN!qQBrhL5*^~D% zWt2-z@pQs8f9$DW`?vQ+^w(xPC#dUHYBgp!p!NbBr|uz?VWcs*dHM=ktHubrtG8R1 z?zxjOExC7ga-xBPikrZ(?eX8pKHwaR9JWK~B`Nq41~HG%(9lrz1tzEiJ!`D4=8)Ge zsjPf1oBzTcR20tbPs%tuI_B22Iv+0POmT8@f`+H7jOD;qj89F`&dygEM;U39l$5;L zcJ%ZVOqDgB^e`lto1Ojh=MMy2l-}Pj4cR_yjVXKorff)cu~j?_w|(2eNTw)0A%O;} z(w|crJH87tR7&oRHG^_D7}nWK=3W-=($*ZG`2OCd6`X{J0wmBtK_-jtk}se`NtrB^ zZYB;cRTmR$G*}k-KYQT7kbj9yOp>;3g@ujduf~Wff<+!0`|K6I3l=tZM0RyCv0!2& zHd^Gng!QBY4D6Bc5Q%Jj5)yG6hnKmAhOs~S*Eb(Nxxke0M#pzeGD`QlAE%sOnjED= z#yKR|L;~e2Bx5*CkycLshdS1rL}PN24xWRivBa@o z<>sn2m~r;^56~(nKESw<$4bgmKYlhE%ZG(HW~RgK?e?}p z-|D;BQl2qS2q z2U}Y{3s!OisyAd260!Zn{7z^UYG{y{(WEc0#}*eO2NId1Qb-92rQI?VNCaG1{*5HJ z4-O8xc1uf3tGO-?m!iOtF~)}x)4Oj*j z!QY&1hhHa+YQTg+RD0CCbqO48(X4i032+RAw1lXGI`=jZqE*7o+V z?~^-#gz9bAkbpF~xw#oVL3q&MBXB@CZlNtLLiL|Zi?5~mr3n%T0@~X};t~?_YJ_=s zzSjy!yOyjwG%bLJ1OFL~eba(eSv*@|EB|@pYefxp+!~AB^6|R{`%NRQI(mgEIkUBO z#F;6*25mS)WrVPZ`;+B@(&2D+bE*u;jx`q?|)pwuBA-q^^3i<2?T8RTsj1#uk zMt_}mNQ<8cMCje3tEfU5{LOJo!ir9Lv8KJp0-4Xx(lvYd^p zZBI@vljTp7#YYPi)A;yHRWVVOE~6V%ZGdB5fbdy4z2+D*6Ut!TuIbkI9oz1TXHaF^ zFqSqyZ>_3g-*&XMWlfdMHxhz?vMQQ*S0D)hDgs5r2o6q8c{Sc3(wsAuo0}VQViq4C z|G@7}&dl>xbw-UvMGPe{sQV=iw6w7Bq2Y8v_lK%CmQSMu$eah!?3kAGAezn3h3EJf zId$kWOc(OrYY7)dBw~Ki7T&J7SN%fdJ%oO3W7fvMehpaZ>{yB6zv2_E#f;C3qoZH7 zt(l8eiZ;%|dYL!sM8(9ESTr;=Sg@p8Z9`U664VarooukPxM|K7w0Y}xd`>F$4K)P?Z*iJghzX4Ih0=mZ_ZpUMAf&-B(N z#Ym_Zg)(dA&7rTPyE{K1XdpCOj6aHrJt>7k1$P~QQp-;VotOU49WKPl)$IHaTpwxA z$Orj7(Ppu+R4F*_U4sY&pS&bBuw zpMCvsVnLTaE9AYjaZI5M7z;=$7qD_OF`?V`ly*E?ZVx|I$txVl$!ltAdQsNY2yT;_ zZuJ%})oD%V)Jbz{_{`&a@`dsNR2B{}#0_VG)<;ZU0w@nQH9MPX+mY_&R{#;V$MV_# zp*}dkCQ@ZEFX7KjiADf5YxV3q0fds-)WjdHqUenaiRmvw$H3?SZ{_FH8UVN;-LeV} zJ9!WSySpC-kbPQOTEyV&xivfVKnMVNQn|sfPiF|05D6JsUPB{!@_u<)clLyCy(VF7 z-zmGP34jYQn!$Z1+6P^8fAEj4F;pL~Ea_ALf;lb4@jr=7CurRbR@TRL|9BtA$8Rba z3wtn!9+?zqXEpU2wl~5rQQl%aF6S8FBp!qIh!%MPHXc;Tok?(g-r5ZJ;fX3gDy`|LA%4=vK0Js#%C&z&%slU3q`bTD_-n@gNqGFcp zP9QdpOr*6L6r|bEbeW0z9024fz8=iqZ!3a?uZPt}i0;pP8AY z$$Rh+qn!wpaetArib}_}gZ|+n)TU`6dHX@gUjS^Ma@Lrahx7mlF7~9rCV-_EO99U# zGDS5tuXHRv>*!$Sk0o*HsQ1*?asdh1w(XDwAjI37+p@n53Ij!_@t4*kS>j+602Ttl z@{j!8rT$0$7Qz1k;?mbL{|UoRZ=|BmTY(G4-l{K15pj`zI59XlFDn1R?}d#WeejRk z{(tu&oPEJ}Mt`bQ%f!kG31YF-A{ec5JDS+y|A{Wn1!^(FHu#Sv53DU<8Y4i4g>Ee< zOD^`Rh95y18yjtUNt~(URa4lFF^W|f(mgNK2hSc{P`vgV)D!ak1wgEt)>_xi$*ZUY z8fSQN6^5&5EaZ>hYnDvrcsT0B-Ho#W>$nSiCHi8K@pC;(2}y}ZSob6H`x%ez4?6wH zDw?$x>I(4q;ns!*-a=SROpMq)Fo!tC=IX5F%v%A1EKJ+k*|9y1H#D`h{P^1$WP*Gb z_V&`a1rHx~;FBeqV?Z4*&%9V zK9J=RNwV&*Po4qPz65F}XM2V3ZHu*`d?Rp4GEa^-WZ*Vgt&~31#f%5jDCBZ;EaRTz zK~c}b&+>&M-e}fRYu5n+AM^&H+!u$+poLgDp%6^ZEzyvB>$zHV$kDi>TxM&la0%?e z=TN~|Xet#mI=fV3jtBe}t2HOE@&3cZLphBMKmzMwkhk~q#u;7QEilSJBxDHW|Kb5m zP?@f%?2lHVIlI~YhKQi%4Zma`8eg{qz*DwiOygX&OgjSDmimDI2~HpW0LA+>dBD0R z0?XG6Ci!P!F$aKs)d5U(fa^Y$=wxNw2M?lqj-J`a|6@jC>}R~<0TDKKZqukc!IGtU zC%2A^>5im;o0}Vp&1=tYt^Xr)E_Yu~d6U5udOLhm3|_)7&e=;gvqtFn`1o||=CA>j z%L57%0vs!%jJRV^xY}TJ5>m3fOTuJYWufd?U1Q{~_AT!|RszXaLrmH|~7VT7D}Wf0Hz64{G86 zg@XJ?z6&UYCt`NV?e^bdM=`EN-2?+LJcy?KIo+P^{vy*z02YyZAj`CezNKP)BJYN`{Lq!xAoo=J{OdHyq|HmS?qZ@;|=`KGhuj%o6`}_ z!cokJyPcEX0^wwyD@+h@vJITTV&La-$EL9VrjV!C?7laA`t9V!W^z8MTqT@+3LbJM zh<7-coMw47q6(L(yO@C|Z3_dRWab)OqCsiv73<@XK=>hC&7NJ6WtDmEK$K%TpjBWr zqv6DVu5N2y=r#lD>3Nfp(K2_`9mO_$6M$|Tj^YWJUPbuqG}sz47X<_}4ZVw#UO>$ffdRs&gxPaUHsKunaGKOR#n-Muwn~5Iz#p;MjJW z*iZSHU~KJ8I1N9Zn<|38*tz8>hiNv!3j3?mn_P~wj5MJ4N}EOK=!3s20cz1}GK_S2 z8QNa(xLqwFfjM$rTp)YQdP#Sx?w@7gI~Qj5G`_8~xCN$LK%}o^q%xs+-$-<|hbiN* zQq2AMrc@o->Gs?|iDsfaSM+To!UkO(@Z~YyB_;8ZxuB-{ zeOH9ZJTcMk@TaI^O82YaGY?bz_mNq`f|mRkBUYnY9PfMvdils6NDJHaKZ z(}>!8wWp(8jS!h+s$lycg*&1utB3E0hwkNa4#%QR;QVkL{!nD&zhFntcmJV2Fe7`) z`}?WhPp6w1y>+c{%&VwOtR2F`4)|4~cQ^cW8;92vF4uY?Sbev*e>1vYK>8kBn^!$`I$eL3A&})Sz4U_}z+QS3`5NLg z!R=3Z_*Nt7Kcg_3`60o<3Wh}9G;Cf7Z-F#yyoe6oa{|Xw6l!(MY+vg>grV9%v3!i#I~6IP5Jv%XIOJq}4d*M~w`I5En`XF^W+EmQCmbsPs1dkCJF2%I#GR@qGN|7555F343e*=FtGd?%M_{`tVUr5SELZP0O zT9nBXz(A{%-L(E{MY{$gZMm5!qk%@AUr>51L-xE+xs%s}{Gz)|+w~by4O}?5NnTNA zNu@X}BS1FfF~44*LfU31$hgK6^W(8CxTb|JSRZSqocT4L^>2ou6v?h~cY99<@5Wi*UASSpY`>bWwGPs)Fq!1#|N9|l zFgtzT5kx&{ET!d`>X7E!rUgq%Z@%LHvWaf6JvaMaXCbnjo9Gkl1V}7PDohOPYRFl4 zu@R>yo`EwA4VkKbM^UyarniR)EF8TeAQiR83G&Q7E?2g9ZX3||2}{=`!8J8UAOe&V z9Zmnx(|ZbZ%+AYsd#ughzU!Gm90Prj$fbG$6Ez7amccxNgcwI`-b_ed)2&qVhsRUh@qk zA1HT4KAjK;fz`MFi%=bnlIys9h`hUDGljauFI~A+UNQ~oo0}tAIl+J^_ySV>=CEX! z(TC)Fzu`NG`|O2`rBtv{VU*x8tH%ldEYYVjuMOqunqxl9Mo)p`t`{zU`J-~yi9{*x zmf3~dDlolK1uy3j%Xac!6=u;qYmP_%_5=Z=3=1)|dSK#g`E!c=An8UZAuZS`uasKKz&r+m7dx^95tqjv4+zJ>qIA zFBT)NT8Roz+K}xgaN5!+MV_mBbB)(&lq7R&LLk6C=PG-*E4*9f#k9*$9NBd!f)PNj z1r1em=FYkI!k3{*z3-DOU%$U)pTz8@u6IKsm(+(qM5!OAc$@UY0R7D;sVr0UvF%Z* zt`wU2Fa{qV^`CM)x8e) z;*ttD#o}%UZ;Ex^pT8=@(^YbtF!5Hh_Iv} zR1v(B$If9~6BUa&mOUiDGY|Ah z)UV#yDqtfz3WV0r1hp&COkMC5yoLXc$deNe@(o81$&Qz)v91eM3GL!3z@EX62ME&s z)xYEyF+>br}6EP>35W6=aXvI9Sg{%8Fm!KmHUz?Z@j z0IoMHYgbi4Cii;Q32zn%p1iT+`TgR10QuYEf82fED@*Q=>IJy+j_oZe(ayc zGtG_W{dYr_q3M=TCiAWACUDt|v9C92gxB1n%D=WD+2RjuZb5cQrAtFDsaIn9fZg z`&c&kQRqjc@90SQ;s{9xT}4OnQ!9TaR_HIo&eby>UeBsps1fC*BzSQBgrAEljkZXC z`u0lgk=3+^s6an(bA6E6{k0xT5r*_QOd7j3p4^CIvl+mz#&d!!z3-BO&6-JuCQX`E?)`r#g1cOA7s33Zv?`Y=29L#6X-rxPlIC1WP6p621ZnkN)%E zE)UK#k*K`_N+~>=yx5@3P{jWWhsbkugM4sgu{}sXiA57hAeUwh9zl7mp1h3#bW`NZ zu1qA61l?f&whzBS10aLvBd@y;`GYqATb|}Wg7*La!+)Q`@c+TpkSLJ>j;KQ~5UY7G zbM#GY$lu7ZAE7+HYjh5LpqpSTvSi;NN*+E`2nslxTa5A>H9d10`VH?6YW4=BhL8u-)#7EB zS}|=5r65bioCvXC(a%#+;S-Q{OcZ$@xe2(Yl+lHj&yf@qWrVqM5s5`7KHbsF>(MGX z|J<@LG(Z|5X0tBM3=Do20gkx3>(H#=m{A2rofhI}xQzZIU;5{o5kUWgU(hW(S6J?} znVEDB+JA!kz}1zXfXHE43pP&pCp!OjUxd_cfq=?TySRk7A&0~*E*xT#fZ@&V^>k83 zD+~Y510V8@-9EpE$kwUxa8`5HBM{JX6<)O~O8I50YA%R}5p>FCy?pVo27#bTbh&S( zbJ}SMrdDnvznCESJY-qH8Sj3q1{28-;gks1Ml;GGmh&jszjF&}M*wOvacp|evi z1!I+uM|9tE^h29Cnuz&FBPSy?vCtwnia(C%`Y`sY+RdoM`@V&A`uWw5&LL(DbDOJ% z_w&L|H->wg1D_n5YZ^5wzJv=srF<;!ugmhb&wlyAS-fQGMP_H6*Q<5z#33m~p9$88>j`zO;1PL;K~Td4*srf( z&Mf`LkoB&vMLB{>Vz}4v)=iQ@XU@mFQ>fO`+??x-wJ2eRW9?F(1%Uzkuk~quq6l}8 zX<<5W#ve`nRJ#lr#5T%cNoa z(?88rjw%#`b6!uNaA?6+K}A|AK{{d)y-7v-)}vc( zI>>9i`o3v_if48)($U%4C%Y?}V~{+QdpL9O!plxDntXswzXD%OKJ_Nxr~1-v1^m}` z#`<6GANdu&!oP++zI=JCtgLK$Zm3R5WVSj$6%{|Y>1_7!ZhZXlJ)Nflv^8e5P7EHH zKh=6Hv@~~q$q`^EYYe5d`ampumtU6cMb4$fFGpOMWdb@M?i`5IqdeK*4go+rGx?I~nyD zJ+_oj+{PFZ^Hwf`+9;2(VyTNQttJisBr3!6yn2Hctdx|MMRvDIk6pxTDwqfG2}y_M z4s(jD(GU?4UofUDZLY_~C+O+g*sQJ(^gHYhi1jXjIHYX-;O${688`uOnG957T4E5i zWnRuwARgU#&@pGEZFb3>kN@fn!dwHjf%P^yBt6a-tDaJA$aurZkm|ZRgVT+{hJ)81 z`@hJr+rLz25UDx4)EonHeUSR@Fe z+3)<);%jGg%cJpAC5E!8u)rrt*0hCto{`=9Aa|fUsmgd{eEf0I1m7U9T=>$Vq_Hur z1sBn41_p523dI0h)(HN)Ome16ZC`STTx^A$PKb!nkRBXjuLW-AS! zJ(lmv6b-^6CK2a&{^SdRemfcZ_bV>R)t5NxAiK?Zc`KUgc++~`XpXV!t5C&6 ztWaq+yTij}3W) z3~sWoZVVi^oUxENP3APQwhp51CYQQ)>xbUQ{V)IlFSS-L#J!6v zjGS!ANL_H0u&Xd3pCSgCQ20YWAp;5SyryPoi_OamW#<*0;fo(2lxGi)rQc>UawY;x zG&jv3CS&nIs57(mj}0atUlYsUr;sd^u)#=P=hDv6*}@E!qh(|-JSWMg&7|D2>03P~ zw?bdV68gqKzU8KqGK;j71Zo5edb}Ub|AS zmz+lte`Vo$gvb)c&HaceP0)82CVGV2>0=@$)lJN(-hh@%BPbhI-ym6G2t&e;pb=A& z+b$_8>utV9KgQ7^RdtGdj(l?)E7yrFj*w;I0{{y;B^nZ9#|jHjfD`(@y|LHh#h;H| zp!GJH&v4>#AU^Gx6k=5J;BpLn5Fpsv6NmtKCS@=XXnY$Uw5Em9L&S_2440P&ZpVPd zcyGgrUttt$G}viaIygAA?Vhja2m^7T)}W9dwnXdFKL`%fe=Zlrog^bAtSTQ4*Dh8u zUsWQKe`$Z=8Er_=zD#FPn`Ju?8HuD@Gt0sJW5UE`Ug$L_aVb0OzCqsw5#F!&_g;N$ zHp4yc<=$}X3dddCmpBnib%lQ{XY!W|^V2)RhP_B9&EesZQ4=f2x2gE$UZ`+`Zq(-M z9wJ`MHfpJN!|MZT-`BUQS66dCn0yx&X3oEi;O;St&Lw9`6^LYjS-sDCs%%eGu`}cv zGN#mv6Q|KU6f+Ash9#h)_P<9isfH#siE zMesO`GANsMUQ<2%$8ZE4B1V7a;(#EJ^9I_1`!WT99V~1D;iAYFh(2EJLF8G*P6!)s z@Oz>=6Gv%+x}P&zT8R}dAo22rmS!W{{H?>D-~AkW+meH}7yX{6q)$em?SpwX8*UiI z^N_a9%k15bfG)(^oQjB&a)~8-sTk^1UQeWTob_+7o|2Z~jl6%nJ6ZApEzf+ixToFk zkY;E&(w_=2M2>lDC4EkWXH;((NNepHc?}5(>z%+eV>r}WUA3FwSa)Pf__cd(xFQ?ZAVhIBb|9qw8{Yr1ugB zM{lb~yg;%Pc&l%(ej5uRX8-c<@9$4NNWD7Lxq77SzQ1|(D@vz*2NXpm@Y}9F7P`5O zS`j64!yoqEH|I_9mRJj~(6CAs2xjmltX`}m%?n1BT;dI0>s~iWR~5+Ij#c?#U@c^- zvle~wWTNp818zegICym|G=N1+a^+l-oG9#*AvQTZgQe-q!wjBChN&Q|7vXdz>cJD{ zgnFc!Ga%wrroWc_ipTbV?NK`m>D7YdQO~eG1O_4>W1exx3= z>WnR|C%>TgK8AWBquPCAPhG7T7X@Su?%A*)sr7|@d9S)eP^Ygs$nJW>F8>Onw|Ysj zX(7GoJ}yqCNchFIM{l+e^mR?-&26*>6J9?9!-#V(-hR-c_`nT%GSPB>pfd-d_{V)> z{EswZR5RSgG?jbqm-o-X^%p@42RzmfC z_7-8H9%q+i1Na_vB0+QeJqvG~jV+l~4fy7Qr!vlu%EOkgz_iGEkjSW z+M4rh^EWjq$Y#>RpQf7yREr8_6=H}7vb#8Y^B;Uy42&6Nd#U;HTNXCm@m#L+QV)(T zLamSobH4>86N&eW{rsW|Q&)BU+|d=L&Oqd3d9xR~EIq1d>+xa7ZOCRv0~v5;k26eR z)(fK#NA<>DhtCJ!6)tIsyxr~ji1iqOb;8eMuiMF@-k9o(`s-lP)J1J>F~xW$5y{N7 zbauAYo`7eE**_ZzpAiy1m*mv1P+J|()ny4D(ZxEME_q_u#hrZqITGxDRIgv?iJd148L$Zek?_g1aXrCZe=>WTn0onmo&k z67Y46TOiXgiaBxS3o!%3kJ>yWqQeGcqbdTBa_EPMsJ2jzde{uZIM8;+leTxsXIMz^ zeC`Esb9O-iin7yF)(QIy?Yoifs}YQBpxzvL(`X@k(-kBj{y!#XjzqTeW9_=k^NoDV zpT20K;C?nU%RsU8npxlJ8HR5o90zBG;lBg8E{6Q+Gt6EEbIn(|3WE5#?eUqo%OeUk z5>B<*W?V;%7dg`?Ll^;nPNJJWnT51(o@ZLL6JB{cKE80g>>vu3guQWI3Sr}Y-0JCX?04KJt1oR@2q7_>`3z#Mx2vH$1=f_JlarMA%G2db8wK!r)Ut14`VP1XaGEof>cNl_Z4;-c5k)7E|@0i;GT| zjTvK*G>FQ#1%arC9@5nPEJMU*^kJl+{KXQ^?%BL6$wr@3;Y?!^8Ce)*AJvm}JU5oh z7O#6hYQ(6i`IvRJcjnT|FVas^-Wjfi@?;e+m=xX}Wh(=QN_RW_^7#`T0dtg z?0r9yznfR`DNQmtv_-hEHTLtd4u6;^E%RDrP0Gk8vq?kJ5w({^DTm26*UMX5gN^D5 z?mrJhde?kKUShN2KX;D?xek;gbktJPs3;$l>IlLmvV*(z8$EITL`CT;XP!%b4h;)? zp6^V**lL3SFv~aUr`g%rYO~YdtM0#;(}G<0N{DM9Sq^8k;r^ZgdX%%9WHAW_vdYF0 z{YJj5W5;gFA}7@YW~uPlamE_B(d_3qkj)yj;YoG5h)5qNTF#eqq&|5f@_jV$QY_JP zU}NxVu*Gw_+)EGuDGXPqDQQNuFH)H84sEzrM_(n@N6&s#AcCVaUC8%cix>?BDE@RyD*C^(B zYk-ZdYvw0w9|q^tQG07)tk$q8=v?iqub6dn5di0-@O@F2_2^kJaO_yI89H=`A27_= zE9CKQquUrx2@17CW^&N#(1Gu(RyZFrm+Oj%jyjsS$s>~;lUv(~^vXP!;bcL5RQe>F zuBx|pPPY{gNzu~-dD>+xKdY^0F^OfxTtK0&I41||0bg>GC_0f@z zO9P7|LEkp%$sx&(*lC9}e#E1kKDxl5&VphouOAVUn4)RUO&OSyW3e|d?8gsIvE}KN z%kqs<0Ag|4caN95jb|8=u=`|;jcI)M6A7; z27jU{k0GT`H+Cs#x-&$`AwJ}7W;HbF<;17~f9B@G0BV1UhquXj^y$EYTI%^@6r1V& z5K~YKflo~MPTBAk;30qw65ceuczgG<1ZeqPB9}g&@Dyh)1;x@2B0HOjm6>I-`BtCZ zo6}RFt*wTMgBOT%r6KQ9$zYqwO;lTCvD^h)f|3`G}do5ZG-Na7kK3bjs!CDm_yn} zKP*hg{PW~gDZ-)bdheWTMyb`X2o5@ag&AXo_gDw)(v?UIAf}Lipy>LdyQoE^TknD( ziIFNshlD@KrS!Yug(EtRzhB+Oen&yMvhozcM6lL;-}(&8unfXfdp$MRiU8fwX z_!)~H&&!3N#YJsKwR$WC#ynU561AGOx0nrT7r#i4dAtr#C#QFhGnHlc7H*&QVU_E_ zZkmbrKh0Gb@N-!;BZuL>Np@KH97#XZGrhIN+YE(MY8-e%Fhm9L3)QO-(qHu2E|+jq zgh?n3Y5L~5a<|g1eav8d5L5AEiX~#APY*tOa!X5-uq1_JJwfmZH=%xf`OV!T5O;iO z#J`6#MYrZV1*#8YHx`B)Hd6WiJ@VMB@}}uW+Wz>TKg}3*Cj1p?BeM-X8D19^(Gokz z#8*B_-K$Pj+<&6g{8tv-EQAlr8RFxW>z!&a6PdNTCfyH%sDFJkgfZ7MGcfo8uNTOk zg^=T;WffPyJU@3t3Ft(LjHKjpDhX=mal#`K@%d%ZGhdO7s_N!$zsMXrnSuzPuxAavE_WQ3 z(Tddfh|59^(~oYbFO4Aoxx-(LTHA3G%}{qTwd6Qj6fTZZQ*nbpKCrCSkBHojJNzGE z@{VN+^P*iIE%U@@A2kGh+vcs9D$^QF&gV=sVXNGKRZv{qfxGDmtdJg)^%FUe%CP!6lnl{IU%PL@QY8I;$t2bc)RsO?K(F4yTb5>fGvQE z2t(Ww0%`KPEQESoDSEYPAge&HLPL*ZxbN|YBg)Ij_SlIjK0;6oG9+(L7xNe@#)-^i*6Goj2C6`}xjwx>K;)mo%vCUku=}`&$vlZK}>%)rs;0-KDW2Y^V zgM89ZK@xdMfvPXSQwgR*_`*Foe=f1u(Qtx1!A|5jxAfB5sx4|ijZBjx7>Nok3#C&{ zcnwat2IC^sm-l zfF9NgW<$4{xv1W9jjXS1=NQ9WR1CA;3nduFV^)&>gFt><_U>tne}yqW%2%F?RAd0@ zywe6E@T6i^B?Z2U0K7~^8e`)u=tD=LTv&FK5iSon7HIdxG5 zEs3kgU`g?R)$LB^~z6nec;=3ohLM<)AI1KX~j&$!*K8{beJ{%u*t zF7G`7_?kUoARsf-RyL9OQ-Dy9k%9?emG6HFRbrt7kK`#v_M1{Nwd7x}*nqo|&fAjL zZo4;sQ+tnjW#GMfm3s_rsT`3V(#~@{H9c@H==*$0L`dHz=UA=UyXdvp%OQc zaTSJw{nm4?fpDPyr+z zyX~ycmNHUqLot*gi0IcId=eTu)71MeVddEE=zfM>ZO)FnBlC}?x0*mk-ia6LSD))J z+%>z)Cy+m$QFlthr%!&iy)zZX>K5~&@J_705yA;*4(CujaW`|PcuWeyJ646PT(MG- z(5hcukuHC)gWkq{xE5LkEGVxkj8~gQnYzE{Kea2xFYJ*AJ-#u2@tQW2lK9mt6SJ0Q z$`hPdOZyA%7K)n$y~j%xFJ92H@_dIh*b>oEQ>*T&-x5i-E9DQ=uK$ zFK&>X%oV}LIfnYP8pBdNTS3_pvFrPC#>ZldxSXsMHOT>=w+;T0an!Fu?5o-@?on)? z+CE}D=Dpxuiu&@4xAs&h%HB>}Sm@AwaVRp<-&HO}<>y8ZLnld|!NSNbf#R^53)N(q zGZ&iZi#(ZqSB=W3g)?;LecAgK*o_vg=kC%Wdyt>iSJuOj zLDK*|yJIoW7jhzZ+IP3+AMa=RT>F7=h{d&kJf|4Z0N+oiq`*05T30n664XWQ#L2Rm#f zmigt4OEo7vn}6rEtm!t3u69W*H$cR9vx!eBoQ&@O4py<!7iU*kg{O1g#-vxiR-oCXgDaoterB=CUQX$(+O>LUnR}m4(1ktGT z_6qO9nwswFDkiX+uCA^>3yPJ8z)Hpsns&CdLt8dt9e(tYAyP2MpRQOBh z`_GOneXUln!EvFU`UNDsf5&mg8fm3s@JmXdWuF>Z_RPbLG`GO|Rq@;_KW1FUCIsxzwrfc^o;ZOEh>T)VmOMSFY#l`7*>W=Yoq*kYb<_IDksQ}`G>@E z==J}%0ICC3{B$jN{M-7&(WdxwN+wL~b1Nzwr*TEI;*bCL;H#QlI$0A-=V;rZ%YEB! zJF2hWw_aV*p)dAG;Q;^u0HiR(@Mz8>tMvMg75yG_x%0HK`q!#Ceo_}NoY%P%HCi*T zK`%VENZ}i`LjA=HeQp~j`&IJr*7)yuarIU$-}MjubJw@@^Y5(t{FleB>E)^o+O%i0 zye?zNdDw4O3jhEBU?Z71v$T5oEVW-c-|sQQovSaG<;H)G#bPofWf#p>MuJ))-13gL zoW82+J#*sQ4!4H1W5#IZXq7^()$#2|w^r%u>Nm9@kTooMPh%;@ch#c=g7=oAi|4mN)PXNm9$n-)hZ=OI5pe z(y+zIP%8ic03gjhbLg1Poxi9Pwfi*d(r!Jr=1={f6z$fAoo6)nr_c4-yk++*`rG=) zwRHX8RlRGoBH>F~z2eW>wSBp+e)Kz4Eq+*w7cbMUlPyDvkux3u004kZjGa1H)jOA{ z^!_#K{^e3--E^9v@z^FEzcyMQEH3Hun!FiLYVW}(<3I0w`Vl?w<^dIZ+IHXW0BuQ#J_m=k8{zqMr zo=aGLdg@(mSb0Dt54|GKO@&9etwujN@tK}|dES6+bT_}F72EyVy>@nd+x$@;{pR>* zYCiskMvR(2q#PJ(1poj5q`1PO;`se9PMRP|YHn&&EYhOwKUk?3KEAB$v6!+0leA#z z4|VXRsy?qj`T9%pjD1Sa6y_+AShP!1z@1I_m;1zd| zp;iC@005GX!UF&R06@}FcmMzZ3}BSsuPm=uhLKpEf)4KP?rvxDzTdy@`EH$4 z_fFN!)a>28rg!)5UcdG9+F^?Fk|>CHhyVbfNK1(+0|4Yb_{|0n2|luCIphWYf^brn z6agy72oAtM5bUM2oB#l|@9!HTkq#9fd=SoAT235p5g8YXj8Mv>p8$La*I8WCS=7$P z#>Cbc5Op*$bT%<2akFqXCy|tvQ`87R#Q^{kKw3;#)qU}J#l;;%8Xq`!Gm4sFxJfEx z6pEO_PVNnF#SGbW3?cCT*=4Aa0Tr&Yyi$Qlr%WA^EV8n)`N!9-s^w zv6(3qYx;5e!h&Aj`oPxLSRqmk5RGcACfnmZiV!^Mcl1Z*7yb&mAQ4jdKoWSwAQ3tm znp|aS#GsGs&g4_`7Ly4U^Ai7*6K3FY)k(N9{qsSPHc=#wJl1=cQo3iq?ha}&6579B z7ozc<2)JN}vV4FLrG_dibCeA8w25E*`$*>$pxR|{tUuqU7!xtp{%~O42@PE7^B=}; zePM7F5NDX9Ba*DXK%4sLbtTHuhkg5@K^_Aw5p~}`D@SJ7(dIJoe|A0_Q2`{CDs`1s zzKK)9E>=On=dqDIJiZ@FfZ?G5*blB$~Lm~eILV*A9*-+H(kY~ypEuxDLHIZN7~`h%#*A<{(-IZBF2jgRL*!6So-zUu6R&}uoHDZGn0aCYkg${SGIe$Z7a0upkkoxB zO;Y3rDHS8Ae?08~DROt3+TvY){O-F?O?BYWHk?D`x0K{7>;E|;F2(n1Y*@C&H0!p7 zEzkR2IYoiRtL|}Z%l$p8eDSU@m z&s231Oqm^Wp!-X@<|0pu(*a@}c_`X9uDm-Xw6(g5^y$5tPm99)d&(|+5?jeAS_1hj z#l@;3Uu72UP)3kl7Fb~)Dwo}m{4bB>cH@)HFAT**49CuMR631UA5OknS1C{d zVz_qSntt9K9&gKGDd`(5U#Txws>G+dwwUVTL69&FwGzI%yOodpK@>y+f60#o*&b5WgOt4>^ZYG+G4vh{#0|+_ZQn}P{&ir!s0gR_95=Oee&r77J$kBH?&EacQ)k{Wd-_yeJsG$k^z&p#>MZl0tCkQCNDxsbgk42zAZX`a* z8Lz%J<(~{=|IV}RGyCl_)FB#~xondX#9Sp_DwBI~^jm)rsVjVRb|z0M=={Q%J~%Z# zpF08|!Meu^1dRvDGrSZJV`15@D;`)p;FMq@0*ch%RV$0NMQrtbO+6n+gnb_u%iBJZ z#^hA>Dv!-6#S{c|=+FFZ)ghW*B2iIX*$-3uY24gw7EsBv2{|S?W#LNO)uClHW1aOh z>~GpNz&J=5UgiLVuH*@?+nl1fs|u_i6MXmO`JN`KftH`8E?53JAK5w-4K9l|kpw+~ znreR=6JF$299@Vyd+ftDz9(gxh@!J|Jzb*WiqM`>Uw%dqGIVZ6)@Ma{WM}lp5~$2t z1=qtJr1(m#Aq!_pok39FP`B>_w^9Fw#`x4e?3nznbz2&$ zh+uLpdaid){weZRxRdjGFF_`vEJ9$C4mG5I;*%{d?o|R>LQ(S4Ir66R)h}J!pYKay zc}kBgtxVn?1fS7G1ch@{Hd2#P<1rMgS&lc%pb~e&Of(INN=3+!UIEXe%$$PI{+WrH8Ku{r zMd!_$hSZLR5?l4y`eiMRJ~LfhkB2qc(uZC&UaZ_~CJ-r|A4ob;&{nGUG6uDTLqG3O z=TM9&y8cwJ>Kj8ue;(Ez%?D(WauR7i{~(Y;!Epx74l=%*n+8hQu)=bQ=WL>533fb< zMvP-~#;7Ts!NlxD;iP$3s`x^`BWj4A`futeKd*}Tl2hGnsQI0#y%(8oho-NrOFYdm=4wpw>Cp>p?LzomI z6Mx+^CL+lB&JkQ5K9@<69=#?tlB4sc&2_`w@us%^p`u9hBZl`c>an?G#ljXdy}xcB zUQH!T(K=`NV6xqSeJbK-?fcyOrKFrTZx~pfe?-cy<7LF#()$DqAM>%r1uCYMp4Y!B z2c$5d#hVTb6eZmakN$!6Z(IIsjrrH!3+Ni-y-P$wnF4T^?d}{tOE_g+rL>cRBg02G1a7l z4H@Qq>mVO0c`<}un_%GBg>l6OU;Z0CsHVoLD_E4B^y4$F?Uyx0k!2lg=)VTD33rw| z-HzaVngo1pY$bJ{On6(H?T(1^vewL?p0GGzi90#C_=3?N`(H%jW691|x?d$a#|HfI z`9$C$vRs1xk5}*#g9)Q>TY<=(N>bsA?J=5 z$E$X0jm>vGjl`ZQbWf4=FyocF%{WYo-bIS#`ww9ixi~78jdwd9N+C_wKYl07gv*!6 zC4xH&+1b)pL*t%jb9T!(cQeF~EN|K@)@==YW*wi@N#Vw6>rNoHSQr z;}TCVg8u3@R}{wpYbM;ZObu)$S9>>I4>uK)BKT~@WqtD{IrSsZ(h;S@`lb}`*@iWjyBUH-HcBr}P_9&0a()%Jah520^Q{RsUfg=7E8 z>-X^*y`UJ*gWKEb+0~_ZVS=f0)p-4SGyem<$rtL;U#|-1m(}TK;ld$nt|Ngk`S=GK zp_{+sG~nLST2GJb2)NBtA75(7oI@Gf8{03Oyoi3+TR2GGz8(qArHig7Lxb=5%Yf+p zndttf)zmwKPUh;V7GDUUFD^6*6N0NSqku4>}@mJ28g!>=+blUd-o@cbb3P zR;<}?yIKbX_Ec=W&7~dOaDPuj5tTCmF90)QIb`l0+alQc(x5L2YJ(+G-F2fXZ(K$o zKhNLUyA)`5-@m`s^lXAQXP4uC4USJ%1T$nD4ZJH_UTJk0%s_7yjnFcL_Mv0x zHkLX+etZo78WhEhQv8^uN5yb#RUrDu!_nMhf0BZc$cp!a?WWhr{7WY+*%`=`eq`GFqgG(_XUIJ&$pMKQ178b*1$p+ z0G1=)%LmzYq*EW*<{^Wwb)quos|1j`no^P44(q+0?uk42KO@>!t!1kVQXl^~EmQ^W z`X4l&u?c;Zr%S|}*9$)J6aPX<=leApkslb2D(5|&z zy7v4D^{L?dl6~KEO=0bwhO4bEhg@-|mA=Y~rS%8n)fXs@emR_aw<@cxCWnClB8 z*8K8&#`^X#j+58yGYZB%@|%&ho+t~a#;|gPVw2&1VsQyF*nQx^J8wTYI8c0<0SW8O z$S2af|JpJxe7a^2AdI2`#{4js4;xNL>NaQPAb@#w{ZYJD*6yWYmM8tLi=#7fh7F9gEa)uH9_()+0L&-6Nef+GVTLa@cHAri0#1R`=ULOJ1YN`lonV_ z5>@O-y6O>!aM+H=CWAwlH3d9PpY@;a}s`w1VH(GMY>jh(Tqr`pf?1 zPpe(6xVCQ6hc5lnua$J8^@gHGmm-^-1I&~H=KdhO5HXF&Y5w;G9C zy|-x`-&ht7P{_Z-IbDSXNa|OXJSMRX{1T?th7xGqy>?1|je%eXR09irw^VBuc==X+ zKTTNMo1fcvs4pyybmlwunjc(9{X0+lLQ$n50pSERrve8<6-s?){YIl&qsIv7l8;Uv zew{nSI7?>O8ay&I&mo-i1rmQNx8G9L@(FVci#o5}!`@yUv(YJPwosmCKb-~td zhfSZ1y+v=$+I9{nYAsiP+q>OQVM^me?IvTAM6GaJZgOZ4n{>DrgFX%lO#o?xKJYQ>Kn$55@@SQM2Df{W+oBU+G*%|qw zew5${US7Jp7d{Q6WRcV&z8c;_4(?2amDH+xEaQRsb4g(gr9RJlqv;1UDoVh7=3sW^ zcKy}pEjnc>R91>rpW;sgzWY_Fgem5Vr{3Wtw!Uw|)|%GSNn!|v>o=dz7Bfp+!yH}~ zi=8#^ZK?*6v}fk?#184cf#vBE9FHo$l@mj#XA=4G=$3D&&vs8>VB1&RlI1rG_SAOI zJgWuYU=Ryip*jzu=uaiU7%{Hg)Dy6H-dNisjB!b;-A3aSW!bT|KVM+-f|`X&dYur< z?w(|4Vdea)!j3IZyN#FwD*2uks$eooHvs)ve+5l_ZG9v*UH#a++3lm6-asiU z6Fef!wlcTY32;3ex=GvyHMcJ9<2_nJGUqg{!g(5R|Kf^0lbf4}{mDJcrPynAAO^er zSPKiXD?Bl`y4(kr(R{UiF#NRL)y|K__8U{vBWZ&Ou8Pkqewq9yifDcx0j=0}GqFK_ zVuR1T@6|v#K}29F|66Tf0<%4sAMewv8#BxB_@TFPjf#*gYZ{xcT?5A$T6(*Pi&@FS zC*>IpFlz%f5lYiy$`<$olB+Mz%FclG> zkI`i~aLyPdM+3h6d=(2ErIU8j!O5AG_Q`1?m!PRA!jZ78aj;|KuQ-_TE-Jli`~?e; zQX;0RM`edo)}mhRa#y&O#IK7|oa!Ks6_?!B>30<^rjy|8cD4wD9`-k3h@uwy@F;(1 z$6;@_E;f(=A;*v!cs)-q`{uj)s2W{@YP>3dPh_+dezm?X*ZeJlTQbS_NKL>#syUmv zK};zlO&!@<6g9Eip)Q};$5T*CIe8oaEKF5ZIr;~tG9VN!2tLPo?+K&MR95y=rRQzW z)X*&?L1Du+yjC;Bz%(U~q4GYG%r&)>j*mwBvOUVT6=yjmj!`(bdp$auX1BTb9yb=B zsuHWv!n4_ClyZ74))dA5*=!+3(<@oZlln(ZUyni&inJ=N*K;Uf2Swu&^A?-QYN&8% z-SZTl_l~bf^tPsc=DXhGdzA8HB2r1f$~KzqC=01<=_$?BA0Fu^KqXjlS}o82MnpkX z^XnLgV<{Ag8?9<3s?O4I@S&EQ_7JgXpOa`=`{~DtFlh#J=fb-`v3si!zs!A$h%HHc zTm24lzs?2Q&cbSk2i~`apcM&aGI~cZMml3~@;-Lc8HOC)x#k(09B@2TFjiU6m5sJ? z&@Yjl9Ol7UFh2m;CL2TTFRf$Fw=9W+dMnKb?ea@Ia%H^Cyrk9x`_;8(w%v2lcf<{( z)JCfV{bZ2~U1fOm3pz%? z!;yhhOI|aSNEcXrWYaH7?Nu0G#%Qba=?!3FvRQ4W)*q;RTmmZ6f&K(S`HJ|p4Msl=|;6)u;v3sr^ zYxNbcqA;ZN%sKS$7@6D&oLmoD8{qd|=&kno=NWFPb}qmirgdG}b5SDlF}SyN@*H%iWu0S}4q0dKiDucb-9P_-SsL2;%0E56-Xw@A|scvUys zHx*PGV@B(&SN7YV0pNU*ar6p3kUD@g+ z_yws52V$^vBB!%3T6OF;*YUV*S+43VQ&1EZd=s1#);abFjVomO6#n*ef9?R87FTIK zC_v8?Xu*ZJyk-2#TC|Bt94?+Ys^_%jX)zoVrUB#zmuJRbw~pyTviOgq?dT3cb2=fQ z`j_Gpc-M9WEA@Trd1veX@)h87*0|V@B>7#-M(Vth4_ZrV$1bu?n;n9m_%-w-}~P1N5i0L zvsJOA)7tFWYDf8~59T{xm%bF5wZ_gPC*HiYH6sTrs_kD7@ z*?)A;2L8bwnb{EHMHAB~gGIBo+7lHaC+!@_UVo`aY5m#&DdPf1L#y3b zIwx>y!wStkHppO)L6wIcSUmQpz`$#E=0|O(*oPQ!-N*ioT)MyJUx1H2RbO+!e)ylj z`u`KH{5N;`4_X0Jl>e>%|BJi)=j8t%ZX-YmF;r z1PZZ+Rb*huAhM4`I_#T_0ssz6vtrw{2~0y%V->5}5J1ceE~@b+*4dVR1nQ;m@_R*ixdG?s-YL zav!}KwRlU|c@TuomZU;D@~7pK-B_3^P<={N|1z1``r}ler{Sck-|x0sZ7eF*RP33x zU58bnBR@U;tSgn5c!#!(E_#8(Luknqg@6ET&US3{X>9(cK1bvM!HRcgi?`*X^*hC% z8C89~4fxzM7%DQd?;Y=yGcrj5pp-~1i@46{X{tM-johvASOH?aI!6p1#^QmcIu~;p zf#}nwA}pXc?w^$X&WFw29QJ9sk%+I9YvVaLeY^n3={F6BK{WD_8B64T8OR=m%E8lK znq=LY!Z6SclY0Nd$td=4n1*=ISa*$x5gJJ5PESUu&4mE=4ucL1Ep{JCS zVF5Kd1vLXMTL$=zQ1I}=kuiN{f(Gn~*}EeU7pR(o&B(Ktyc?h+z2r{6Kmy{a;*K#z z8Ct&7P+f+PslP*FV>gi6i%D7UwaX2^CERAGuW# zt?`U(ZY>Jvp#uKoH(Kujf3@^oQ#HT&KXD2Sf^iTzE51838cg|&V-*Te?oCE|?$Mh@ zCaB8~cL)6>3XnOUo~Nxg2A4Uu?(~|yo(674Urklj636e2H~z(+f{0qu>de3=Bx?YD7h78R{`FP|@NX(>@#N*2wRz|qbOe4!jwYzmM(0>e zh+W)m0sbrX22Ny_{rxixAtdkspy=V7aQ>3n1aw(&{A$3>{IcjqxQ+l!a>j;X$>yd{ z-*LeB=hb^lH!KGJH8Dd^K&l#l4#E=I$5%?&P5=PeA2uLkXQn!&*0szw$gXqTrBV64 z_eg+HjLt_YEJyGJ(Rv~!EEmuf4lZ5m%0SKe`ih7E2q{vFCBonh(S#Uonj^-*NpIY- zP;zUlJr0riD^_mD7lo(d(ykS0n-7aYtfV|aJ~0*q6~x56<|VM&sq61832byYT? zgCt;Lu!{;1FmF=1>Z8Fc+Bgn4_)!c+ir4|VzOYgY)$I$|NL_iZW>Q66Z$bujPe6jl z5@E-ADQk-N5EB0Ed1i39f4Fyar6J7EK0(MN^_qtt>O~U}*D!S}Ia=@>`Lp~ZqEriY z)N_53#^nGAcawa@0p)s3J)-C|p0GOHwxQf1NtK#3rM5=`;f&+vN1KN$4$}3=U7o)S z)PwOl@fV&sPBDRvn=s!Sd^UTl_Ulwdaay?`))Br@2q8x+%Q+fOB!?~GzbszSMiTKV z2mqWpGJ%}^hp|;3F6$E#ULHUZ*O~`_zk)%`!E<|lI^RXG(L=TXzUC&BTAdh*#+PN~ z$nM-|`Wdf$XB_3v)H~w5a`*xO!uju@Ra*%HcX&M4f>5Sj+HG7Cue_;soto5F()Xbd zFx#=a;Y0?ToIyYR38)|CJLT3~&+j}5M7DH(YF}$LdsinTp!|*#d8d<2tK>2HE4b&t zRaA7>*@Za=a%$Q?03S_+JtPH_%XURD-O;HQymiZY6_0yNsJqtg6NUoz+Kk)%G`Nl` zPI`DTd2YOLZU&cCJ;uMgkFNMr<~iVBzJlFk^aoZ7j@^DLmBatX!P`fJZ$^$m?$jcx z#-}wTTFK-xYHD;y;QZ;%sgD|tR8`J>ACXiwf`&YS$JUfUTv|8)J*Dupb9BC$0i=Y4 z4+}2AmG=$3w11!DMT6+{t*&!8^t`O0(bkt?Y11_HAAftTCJ~u>$*(b2Ycd>7$ZIK& zK}6)c(F2o_5ccnRl$hj@0w>^NeGK3{$U*&HjZtGb5dU z_fKBFd?X{gx~gR_YWBFIWTA(8HG6DBP@ac>oA$#>td@^}gRiCF8G`JeXRPk=qssJx-*KVBZVF+iEkbEC;N#V z>J-`zHPUu}!ow`C9NYCm zp~K?E(Vm4xqutgV)fU9E zUx%BUOUeylQGC$;Vqefl;!O}1-Z+h-A!o)&(; zMBO(9SM>gRZ`*c-U235u_fOU0dYm2k_-pMhZ$UV5i5QIA%}wgCt~WMaZeVf3LG-K1 znLOv~s-to0yCW($%l$Do=dw9N-QP3QlOFh&Bg06+jaG-Ff6KPa*bx6Z)vtUcBebN2 z0)T&ZEL47g)x$BX`D=});exnX0q)!!wClMexU>hDnLKpw5lP1moP6M5iA3hA&M%Ue zy9uqs5IprM-+d#pWjw^+jY!u>@^(HwjyE2kiQu&#ZvULr#`CF3QU$Cf@YnKhLisOD zwlqsyHGLl2>QsF6O3U^1ii*$5FOT|ve2NASSPUgH1{D$)k;k^D_sUo!ecq&Ue20}t z$UG=uJ>^Kr|Lc6t+VV}WoC{5AEbpr>w^ve;o2DB^Y2Nz6PI}Gm)-0pdS8ArXrSwUX zBAHc|9=|zc;u`T~2Z`UhZi`DQWl7Me42xc0g~@D0l-_$W(e}IcwCvo}_lM1KG8u5% zc5L0;5TdBP9_E);MmlQH&0eIwXPNqZyF2o@;}nd5JpQ_(oGp?h_QLNxLYg1j&8x17 zwX(n_XndVLJICSt7#R~}EBGM4i%F|QAP`zyLUeI=$GM|rEcZPLw9C6MtjTE`)$9gBjBba*7C(DUlv*)z>2SqmdA{apzsCliBSYk;Cl z(T7rxOcjsz`*#C>cQDypJ(np>K64^wwLnHVo2My=bcK3lUSl`GBXH15NA2w zGw_^)S@0YmKM_f?EAy;e;v1Eh%iqHaWWTQ&}PZnFzn z#lx^h@ET%=79Y5DbXPQkhWM10)`oeIl+HhIjgoj11#P%WB%x za_gJa&XK`VTj^?M`TtJsbsofNTQx;JZIT=H7N^Z1*lItw&QcufMizgIKa_tMr4+u8EelIN3e&|%@Zltl2gS2LMEblZnOpYb`^D7W(C zDM;j_q7#2-KQAo)`A1xD<6I*fFO-NkoD`fG4JvFKn_0eg`n?6<*{=T3tP~yKj3*$P z%^j@2p~~Ks>J;}3E{UfBo25A95kLRtjNJncN3v}fAb%magwN$0FR&M?L zQZ!^yP{S)Jw@i7&?l)y{6ZN}~Y^spx;Tg+kfFZ5e8PWf>3iU>Z3Z$?|0GG9P&q3FnAlSQy0vJ8<`E^%%=BzO*|1# zdKYJ$W#U@Kh6WVq{?0j2@*wZ6?Kmluy^ z3ZW8(9WDbBlcYpK*gME1c%~GlWC6x46H)+&vhPjq0DRz7~k7;FQT%1-Hm6Eor6AMc9i;{;b;@Bj)u* zOvfh$_NQxnvIW|GOPc6C8(hYsKaTIZ9DS(U_Ndw5b)yJ0GB9K8{&eN|<(R9^L1QcT zbUMlm2hGkKOP?S-V6GpfJ*SfHDV^0%F~_i>2wp7 zMo`~5Y;Xg6E~K~Pn)pu2q0sJ0-3D_b1G{?R_RCAU8~I{hL95qXFr_9ey_JO+L=VVK z*{?2u7mA9d5ZT=F4`#ujsn+A&)hv^SwWQ>U_6%>+saS{igZ9Jx%*;ZQN4$bqslim6 zrIbqLNhgh)J@el0NxSwTxJu^a(vk?ZA`Kkjk|Ru)Dh(~WvtZc!{-A&{DsrkKZB5N+ z0`B)Z1TUMYM0_bRDfeaVR@}K&>2AJOpj&Y0|7ny@M{e!)iQ0?DU-;+&$x}fekL3Yd zF)Hn|%Mp+1bZ}0j2R_aZE^;WKurdhFK=Ot$vN-OpS0CM9&26!ga70|TNgj9E)E2!D+n&vY6AeM7z`C4HfZmDlmgI~h?_5VB&c%BvNLX{8nc(~c z;h(TwP@&VfZfp$Z3b9fN$;n8-O*rdpc0ACg^T-@9<23E3{ zg{i^uEP;VSp@tBVTq#*;Rcd=k#>a(qaL@?<;+W6`PQjCyVj%f9`$VxqZE%c(hFRYU zkBUlw1M?r*1ZukAFM46rZ>uH|RB%e;u4}JR`Hv=pxGegWMDlM|O6f?Ii4I=`elA|% ze^P4xJCWtTY0H17z+B7TUsUFc#uW&WCrRzN`&7ulLz=77MwE!>`$|94#t*}M4AW&C zbgh`IhW;jR!rA~I*fo3KEdJe~qQT|LY5|*fpYCMAjSKvurrvjYL&crO0l@0SAchls z2%HPUAppxWlSlHWd^s>75{&K$nsrH&hpXR)@|7(x5xWhY=tn&G$b4YiTQcclhbC*U zlvSo8WM!n{`hqJKtJ(0>6xOtBLI9Bz*n#vf&K6%zvF6%}Ken(p?J&@nN;GyDjUcNxUrRAE_b_Z#1}w=S<} z_~48PbH|AlLoQ`fJ950NVYj-woyxVS<)EpZJ)-szv%inR%+&P52fRxUS7$twyRAer zYZ#g&DHY|ZEK`%25+f@!TbZAm%xl?C`PVNJ?0X}rtX8w-iz?aKI*N)QuuyJwK2W}4 z3KCHopioOr5~nqBP@ZWUVxyHkovlb`kq3{Sw}`T*>v5}FBL~OqE~RxL_H71_dZ7f3 zRx`8R8iapqK4GTBOpGRN{9qr&-p&pWFSqswd=MMuYkz9`2l4{b4v&{$ncPLKlrP_M z>^}1G@lo-rIHg74FpXvL<1ZZ^SwyQ&_Y0ZCh7Ylsyi-z>fa|`9>7Y_kPBf_I+Y;5d<#{$@Qw|QXTAEqnfj8gwl@L33zU!YrQaZ%9{(aI>u zAT7wK%0Fc;MGzc-_tsYm)2*!j#NI<)!~+ko8u_4x#K&e98G_Qu|BM_HU`N>4TKg-> zyMQcIoiIe3bz?O&11kb7MU<2#LY0gn!o#a+EJf_?tB08JP1y2n#i+QrG@UY3U&suy zy(2BR@7~aqWOJoHqvwno8iuIFV}G-?v`kA$p-$3dZTLVt6-qwY*2YIiS9YkNBf+D~ zA?&Y64xXiJ8M=Q1ksbZ*mo5Yq*OO(LpR?;{Euf0l(s=9ReSf<;fm-s@*Kb@lRoJ#I z)0aQ221BERFH$VWCX|w!o#<9LjZ20cG zOmLGXKB<4t)_?x}iXPk2Kxz*^C=B`8K zRaI3NF7n3-ClC-3mB&n8w+RUUp`>Po)ZT55plT4O#3*c(!6HaqCkg9n-#2Yrw(5O% zHGbp4esx-<(?oimm6<}S9}7_zVQV%0&^t2$E-zA^WRsJbyw?064y6pDI}VNUxRE@&y^Mf3XY+5f zSFzYi6^a@OTTxQl>_;bU`DlUPEM&6^r_-R!vwiid-d{0gC2^D4H(DAvsAr(%^t1f| zw`=Q3qk&yst)Jh3$zM@~%XqI3Vw#U^TaRg7sQR{Ghf*c4!XfxO9tzO9JnUK~lH>o& zmVeBW-S){sU~+3vu{+qYoOo7l#=9i_S1i>K@xR4V4JC9YT0eU8om|o*)7W$UmL6{l z`B>?Gn4TS2@*|jd5E)8D7V-X zUpM52(eZhqIaq)yJa(Yd6-4<3#0Ew91=t)a^b$2@D;j4Ih5tB5UEmVyP znEk&8X9P}r!f`j>8)T0hV8YyPtB`O7$oJN3n)Ndfw}gzPr`JRW30UxO+l+$LCNkx& zL?zxVd~8HppQ~wvaa;x~xInAnaq%%Grk|lmq?JjjOlHzd#GA6cshkiKsZohljo{p0 zUS8xpu+yflj||dLy`}21`r*w{`FVL1k>b{N;ANrWz0xGCxSKzS0-h zYq!6^T58=|4^B$>g)hmd7rlvcwbN}T#w!YYqZU2teQH3lQ@&9}17VnR<&pPweP0gT z)sBdUFAn=4bgs`*qXE~t_6-n}P@7YvJlKHD8!ZmEmRfWOK*CDg_daGwI2}eCIaC1- zjn_RMdX}=wv}eh99oL@&A0R10hyJJ-BNX>#_}lw;ZPL(zfQAkzuZ%H-gmzj+IvpjL zheV?*f{O%#fZl(!oB_p)9`YU=)Q1Ib#U|ALEP>Q}eJV(VbxSDVd>`e*LDH)lqjJpp zS12_!kv0V=J=B67U=6YsNr)B-!$)cil8O#pnuHN0qe7TllA08%UMnU8WtK8$Fes8w zN(zn;l}o3Lad52Mu_7Vz#=rNw2t*%w00%z!zXS7=8vOYhk5GfOgZU#ExP*P#aZcrOH{re5#LWp#wP(_HQ`*Iir%`7R2< z0pZZquUy+$$pZX-#2gv^p5CF-f&5N%1$;g@90YJbc+OcMZbx9qRuE;;*8Hd3x@M8T z#^n$ZXAO3PZqLtA+@}LhM-BItx$2?bR4r8h^s_J4O0xhmDGisROeUZeV z%=Up_qwC|W9|IPx0lR=VD!m1anCCLA<0^0Dq*HMTsNpzCwr`36MV)bX0%mywj3 zhC(_76Ac-dO&KGa@SaEl?)WnciCs#Q-7qNMsFb+!fa1{UZuv0glJgg@KL+RTBqI#b1bfv)rZ2)(@ z!M?YQ)gMTbMZd!Gc^Q!I1U-Rj-hGdRtARc(dE_>;g{B)2sX>Qr`Zjw*$^ir07@*R$ zaY<%=s7?Bbg)^`rzDo#y^(T-FQ$s_7-n(Rs9;%w0pQ{eb6O)1f)BnXpw-ql*7(A~& zfuCXgN~7xyAmb^P*x%X)8H0aC1(viMnhO4ULB3Sg+b-9Gg5QTv^{Dn``EVd)D&TAb zOJ&!cNPS-Au2`PQIYNkBvOt0k5f8zH;ZMGCz&o?k7O9~_2Y}{+H4wT?pm3PlRe2R} zjx_5?XlTLS0{)tUS>^n|kEVCWyd!STPl267#|BBsXZyixAHedu z&#%a1eL5UKEMh8*Z35TF8T64J*G71zgSF0lK+xv?^ zAi_w!e{2etMceQosJGMPK337Ek){r)Fv~3>=F${dIJih0$}OwH0zMz1us(HXn%T4B z32rq&&DHtgpTtF2-L=10U*xyca_442B$6Oc(EqNK_CNGx=16ylg@|wDqxF%Nx^CaP z$82u+-&8YiFW&<{Fp0(kfFP3-R{QSLt3iph_SNxRB@MgiL5wx=A+ zbUei%2Rla@sz^E+Wo23TULIIBH6;dcm`^7)4yV$2YNH!j0*#=}Mv~Yo1}$6^P_El0 zw)5dY$r$&*krJLf?`v4G=0{rEvB;{4yHY+`S&zZX!#4&$ik;GYcOl!Sh@? z9in@80I=5r&ElsZr%WO>W`{7Cb&a4u^K~a_q#*;I_dT~))pv*^MDY62_FM#;Q-aw2 zO#ma3xvKdQiY_*n&NnGYXb669!@d5=hJ*^$KZ8*2u%Ft<2wET@-__s1;;FfCcd}P1 zmR;_&$p%^d5RO2F(w@r;wpoYf`!*@V;Q$lp-w^-hO>N#28;>iQvYIUzR{o0#q!m?n zM;X{3riBUR_pIO$uaN<44luGtUsz<86c^0ZDc6dp}k$ zA$QTvQ&~m|HTL^b7d!8qiaPk4X~}~*Kb2P?U?og_zUpaucKYRp!P>vXYNgS)@3JyE zdEc8inQax^5&xKuvW&|W%WNW~B3nqp&oMmNna#<0viO?r2#4boP5&}m=Dm*RRFd<% zndj%#bcozsroqBuPSOjg)rIPEXLxRCu(EQjV>EqwsM1)I-EudIPNv?q{*b|+Kd@5z8OTRE z*S(OS6<=3;ZoBtk|9Mb*mTo2L0{P2A$|O$FT}ez%+hv6R_tX~wfus52>wwyfQvm>o zW!m^H_hAlY$bjcp`N#s4EHRtogBW+BhF(p^Si@PFwQkc8!?86AlBBA>x>VkZC?!SX<+1$>s zUphr@p`(x}0!oL^KIO|1+nJsY%ci?A%HTjLUK1>hX!0(^!ze-mc(xFC2A3AInk480 zgH-1a&$*&d;Sq?nEK`<7#l1Ba3q=Z<8WT$6XPu1TC+svIO>a?9BArXv&Z1wJi(>Dp z_;3P~I&8K&+FQ9N!s8;0p_e*h_nywZit??4Id^=$mkVs4u)}{3?nSRALjh4GHnu}~ z{si!aF08~&>1d3EekhoYYOJk~F7?!MJP-KKUV?|a;t&X!g`{hP`K0*aFzoz!-`scy zh4wV&63&Ss&Whd&r94!{_KvqCju_t)wc=bn(gK@A0+<^roGT=d*XX z@1Q42#jkYO9znUH{T~hGB)JV-Lg07?3w?QiG!B5H_-`^mjAIy>`JiG_jyF7X?Y5)b zG~i+?N`)g$Z8`-x0*F&RWl#HS?tD<5(t)bVr!_|TStu`2C@%HI(BP^i#Ux?SIfwHP zx8-Y7BdR(Ph$I-MRPaIcSrOy@U}G)~xT-*mY&c6?2Q_Gew*>|UhNkzO%a4uDjwS9M zp`rnY6k2&PNrQ1kxFvve<^!@sD~B&)5Iq?~vxLU=joT6VPGI23_rQ@-B;&wk@_PDL z>i@|F5UvcTcNCTwdWxK++98TSQjSAXRxKAv%T7(n*1Dh&mXBLh`Bln5O-;?k^~-u$ ze8;Fb)yqij?KjT9o2w$=C;J&F-Yw-yBgrZjWbMA*KR-D6`1l}2DCqut-5E}<(r;(s+W>rWU0w-RLE?uQcpIC-s9#lF(^n}MnUQN;Md#p=fc~EIMCqOZ)k~ zJ>8uZ{rq`zyl{my>-BJHLPkc0>ca+lGM+X= zmM(~jiViDFNJ!YOwA^Sc(LcYufE$Yhc-TIRnBwar3&5PYS`sLCfYJYuY%t5S3T}nZr z)92~7D*y`oz;`l}f$ziRPCBREQxfX9+4`*ou?#BQyF-|w|8Hdg89 zad&t3-gx%jh5L|IWj2??*R>8G6W(0|NpOes_Vj=Sw#&{?BKTPguuaG=@TedmBF!(Je@SHrLkG$ea=WvZ*|%myE&R;(yliLrwBOhj{Gma-Z~)4_G=d% zT1g2(krEIQX{B3`l9EoPJEXfrKtw=9q`SKt32Bf{>2B!`Im_R-zrD{s=j=0o%NX?e2A08XnwS{k!L+OKm@GHrr;yjU z^aRorJ}N3RJyQus6`qIQhkP$2_EEX0P z2v&CXSOND+_TNAKv3k}@D=YuG3HC7_=bh<1wW9j^dIlpF_x!v(ceu%0<3$m)Qg>Qe zN@X2(XLWuT*Vfh|=9iY178Z~Y@S%#8@?d*U$?wEJH&b+Raj^twb}&t=ius4=#@YT7 z>;j2UvK(wra2NB7iwCQ{abUcBe0(TP#d&upOkWCW;?&ayre{yTZYb9z7yq zc|&vyb$@@q%6g`|rzbcptkGfPs|?-0f57gCeMl+bMnp;J4R(~DpAYNUvvP1y^NlM- znXae5pGB)@b2KlEQiuW{pUrG2{lJJ}IO@mOxHxz4lxJsW(nel(Iu*rwYWeE;=!u?F46SrE!ubd8Zcy zx9+^~DK-%Po}8VH{ZgB|$#*f)Q9+_WQ>{Sj-Dttb#qSqoV;cFNs9tJUXTPTw<^1sD zAzz~qMW*GK)VuDDNgfAMvwWx1_Whnq^_L*?7qVUaAVz%~7gtVN8vJoYMn;COFH%&` zOr@2UoSdAbWM^+2S6*(eat_2KhH%N$)KpfsNP{4;REQxiF4c-T{O{&{{Qdo3q6rRfZQJsbD0=A}p(_DvI+D2?;4I zWJY8=1)lC(}+W4&EnQW6q@{c9w5@9H#q z&HVgH&BD^(-0a)4!X6{T5NQrB$_l188MPUg^>lYD=fK%q9&IS;=!692kUfp+0h44i z>i%ZX5o%^`4v`r@NGwNrk_y7k!%DRrW&JvEE5uBiM~D4FX-XvjF4xL;pe}2vc!35I zDkNcLrBQQaCaZ+6i|@mFSAQRpxFEl-m|p5oR8V9l4#uhGJ>$iagL_)%ynEnM?~8(g ziTb{?Q<6A1G9n@(HgWpJ=y{{kLx#hx75ia@s`Ez9@ zCD?D2-!UT|5(MegIbClRHNqZs_#sSnrY3hULotSlFbgilG( z{aW;gcW#M2kdk-z{?lI27TjQ^@>M(yMfj!bdGK1lZSd9Vu8>1|b@m;E^ru5DSfq`Ono3*Vn z$fqv71Hv9WBS2_hx>H3_|2xs3PxX8jJ71Su&r~0ARB$7{Bt*J0(tkXQbX}OMy+1WI z#pSZ#PZkVjb*r^eE(_0Lad8nr#mybvvT(FDF8}J)Q*Q2wo}Mj8V;UM7GMg*5sGyR3kzdn zV(#C+@50|uTs+X(**P`kzB66pz&q2^^OTm>5EeiBJ_N`K8{Py8GBRvLnMpq`F79lp zQE+49&3v;TQq#b|UVF#`NRwrauXkqnIOBBG)hEELV`F12#tUKV=Nx6Fr%PrizIyda zMyOH%PJCo!o0Kh)Ge z=jObRH%E7NcJT4>sl!eC69piJKu0(`pF-NZ0~tM>CVWw5W+r5*VC9|%%U%9hB>Vyb zcQM2_JwDDwP5q)mhS%5|3eE1$>&w&r1imQg41IBZok;-!ff5~tXQYhf zp|DsV`y{h=KWoE|(A2!x{#{mGUH$$&^0u>=*I&4Cm{?eZ1O)8t?6ZyDZ#6VxA|hyr zFp~t_=_0!9?CicqL_om>-)mrC!1l=1)fM(I_~u+42xU-rZftD8Qr*6NdqSBPB5Hf7 z%hj3f0)}!U8%i8g*CLQhV@QLf|>)qYbmX~nF#h>!x_8>o=DE#^J zMWkJ%%8Qgc!)ff?&z_YP0)-$vTF$a(rp~z})=C$>mKTg271IHp{)G>PWWRsb5C29c z|IZ6|ZV|2j*9*eQ!WjQN?*BM?aqi_CrTCLoE2j{}ikBM1WkzDoUj6qa2-`Y^;QeU4 zw@??~iogDQ(jD41TNvu$%Q2T4HC3HaXHBchF!`l;uRYzGnPRqw*`!DLfzf$CHDQ~= z$&s~34Kfcnb`O5BWn@(3!PlLKyM+{u%XWQ%H{H40YRR%HpyGvUJ~x3lZz+$!l9d(zQVq^aI-xO<0DACuHN7v)C+jae|PwH=$prI_uk?z zZn}f$ejzXTL4uVh8p9QH?bH^WRUqxarN62*is>< z$4^jdq@QX1VZnQI?P&3X95KkIOCKRd>OH^Hn5nq;USdcggm?McbizKQ#fHV3VjzZ`!=7zsJ+dWp zTSpdtX`O@WqrbV3f|2Y|;g#Ie>F-|Hm?v`l;eXh%AZcl0h#*4vVg}=9W8K~0VQLB@ zBt-LoV$=vdPPjBOObGkt9VjMkG<;z@;q{1KtL%d?9RfjrHyM?zWk0KDjZ^lIg;=hO z``Q`%?rpv|DeAC0{%c)nQ423WHy9#5p1!T#=+28T?f!a{WunF+7>|Vb)jaH0_Sbsq zwPXe+LQ1tYqzWO-S~~b>DTmRK8nN7wp-PV+vUBy@Uw&TJpo2)hSUCTvoul~8j%N8T z;!fQWJ8hNW_wxE^Lq4;alD(`(W;PU`qp5|M?9w|QZ*WbaFXFqNEh*tVG8Tfrq&mkS zjjO@KmflBEc>3M(nq!M!E%GmC+XgYpTa_nh2&*EVK22_gJ&eiuG<^$d;#%HprAH3C zSXExzs%io@BL^kTW!_Kg%YLP8;UVl0h_swwbkn7jT#YpI#nVvIn?{Dvl*Cwi8XUx} zi%dpkwOg&;7$d3RL3nq%x^zbx;vQ;c);X>yAR&C(D{Pbgc(aYn`6)G;u!*YaC_h1a z@5GhFv^I7+*o1Tk+r!BwX(&My)kvjAQZ|Chj1`-#-)`!xXAteW&U9V`*F`p1Z;rCD z_-A6MMKg7Vc8axiC((*YX8K)vbr0u8lsbub3bGIH+@x#~*df795WW>V<1tQgqBB+c zZS3Q;wV#cm z$M1!&OhlN#i~Vzp4Vt{3!J#1`I0y(YfzlbJzbzReYfbtoD8hiZW(?W2wRLF6QlvB_ z^}e;Wyy24NB_)s?v;^Wo$l@lG%Tc!Dj&E&kg>ntNw1vf1d3kwmE(2s|{1o00HvzL! zRZ)2@!_GpgTwN^%Th(i%dg)(uR zvUCwM^{)24u^f;+3=ba;rb+Nqu<-K6%Ft=4s}Go#PfVyow3L_chi`wKCLR+Td$Kti zEJiJrp~x8r=^un4L-zYg{T-jo%*=9>88jG)!zHK7Ozw1B`*j(5VRqPYlQ}v% z3MSb=xY1>;b>6i$GrNs|x`C1S6?4?-`XCBodS(XTtYXb~&dyO?hPjOhR)_V0;$l|8 zB$jZ=H}x(hfR_Ng@%8IhfUlw=BVUS(Bl}3w)&lyGDH{hlG!GeWQoj(OW;r<eXs?t zv%C9K&x$^$?g_xIIiKs@jv12r9}`&M{e{!XH=SUHa8E))qGI=NZIg);ya|be+w@Dw zplY(Ttkz~eiR)S6<>iG%hS2LPtgENjtjqctRv#N1j`^>={y(_R+Tl4Q<4}~1j*ePe zTSM8@pCklePd}8h8HyXA?t!#J{PR5#x(N7WC}`K_=jXS!w$|6P^YWfXbg34-Nk~lG zSz7Wl;xcH*e*E|`C1nyU*!JqDjwL8%D{bcf&N$D#rY9mNCnqF~fbu)Z`|o)mrB_p_ zafv!QI{NqT-&a>x;n|Y&LD^haSI{-mFJ;cSkh=;h=5X>TD1Pz_>I{+H`X$xcg;2=_ z1xZ0hRs+`<)v=X9wbCm&+*<~(@$jPsGg<$;>HQ$?V_Nd+e!T-L1LSmn*c~K zGc&(=^9IV~iqcYKAB{3&SV5caZ%-gA1P~MwBtW6C(G4Jxgkv~3ITN{T5+SSl@xxPH zJvt~T2r6B_=6ANX_XRz;!#cD|^r0*Xk)+Md&u`6Nw5x$?W*SfTWSpZEYypr;qx8T) zjIa)+KkS^G?O)UKS|0l@*zpSr^6YypovQXWlc=ZJ9ECJYorRcUTZhkGT?d8|k=#WV zma_HAyZx(9J%jeg`Gh5M7{%kS^pKkVDLasrHrCM4U~zwn+^|IRY?~9R9e|l3O9#xQ z43Ir!-#f&_#1s^>kl_LX|2!@)-S10djN zu8Lxg1E4UFa_dxD{sy%d)a`(W?Jb1~>0|ywqTVgMV2{b4d~Z~clXLzgm-GKr#(0M| z#5i7StEj9jEe$uB0a}8Chv)3zkY88`yKHP|2on=i6T}2BQcUMnC@Cpry5LkliY-F= zJYji~b!e!wjQLV#`vFvpPwiVy%x>MfRefV}R?S9()Kt-kQHx$dxnW+wo+13PykqRx*x9gLblo7-Y!O6 z0^qhuUwlw-@Fi4|A6}%u&hQnE=CmS3sB3EOKxPTG3?Nx>4dg;z{6S)+B_+)Z@4!X? zhCSNfZ(iDm3Ml&L)zuYX2k!3fd6mE7c_PHqJZrV=LbB1rY@Ea}DZ=vbN9l<^^(*<| zTuo1y!B&-|<>liuD0l+hhRi`zSWhUQeANKcV12~H!-GY_oUWJ?{kQ)$_M?%H=1{5+ zJUTw~NhL!?PGGqSB2Gv@iZ4IO znnLFB+F&-^ntUte(T|h@?q-&TBW>!9o}>!FxNa|AQVpCB2{x<}lLwIEAU^dlC?pSy zcQfSLmD+WRtKfydU|0) zxp%F~*OKCQZNiv-J3J~xe)s3;h>*ie3D<+eam^OtwL=w+4l-lzc-p1elohR?!9+Lf z9wNSdB*-yh%W->qF4J38QZYY&nunj29W!odSKTQQi+!t2oD|JKv>F?C&m#Akrd(=H zGb9G{1ZlxYfh;gWhb_Ua7ok5-hMInM1_6x z3*%K|^v!f)!`5Bo>nqN=t_a7EkxUjA!2&nQ6YA54AtBMqE2JVutboIZr zxEYAYjqSsCq&^067+uWGnKU+RED|y-G!XGM=dFNL4bsYskkQj5+6C!Cx z930=A6k_wfb5zU8@~+X*3UFm1S`LC2ld_x%UduyAEbAhF2q$S|8!3*WS6z+oRFx%F zyj3pnGz(O)Cwb>qrBR03h??le>Fq8g?%p4DgGex=Ah*IXcDC?Ma8x5Sps})IQg+2j z9^ODluP-FlapRe|XZPDhJI?Lik}bC=b6wUCS+!th{=|m~auSJ_F7sv<_aEH4 z{Hs`w5*?V8=wt=>TWi-Qqc{*${f%XMlgWbWFSe}xu1|y*R110NNkd#AP!PHM0zB6ejlKX zdGyROr(NN;1}CHOZCO>>#}*5o9TmFL=rE#=U0I77?|5H1>&0?5{Aqi9fF8OS^-?FO zNSulHt!S{ERlF?q=7uSgZxLYJC+>H#v(`OH9 zm|3&w&+c=%Q|dkbE9WJNm)3AXsM5C|4TmPBf3G}|3-wsy0QVm{Q5;cZ@&je(MezYU0RA-%W={N`a=~- zRp+vK+|EX#EXF-yxW^TDIhaP`1vEMOo#o;#g-*6Z9y{Gr<>xN79_O+M`H6?iAW&v_ z%@lIZ=XKxmBa1Z4z;KRtSE2N0xwd_iL$ltP!LibjR~h*i>IShV%O=?s#xlnvrulEt zM5b(i#-coP|VVfBko-z3ZwcX;P5WUo9$QDetS!!6*ecChF#p7FdlkiSo9JFw_TUTYEA z!A~gd9v7|<+&7L7c*DmcA82$y0KQL3+TPlVijFSmev;4ARjX!It3m0khCzDdxHT8T zt3N&XBivpdXS|u(v7yXeC~$JhGcEMkp-d1(o7{Aus>;@D`D0m1P-@Bv0-;P!h;_uO zGxgtGfM8~vH@;6_QEm$*w8x!J?YMp?Lae=6{d$Hkv>S4ElCRc7XfZZSXI8Rb5iTIg zn2PsdnKxhP(65Rasmb`2S@hOwFw0YPQ><6M3lmvMX*h%!A)57uk8)hu9Um~0&z0Y2 ziu8wT>|PAx%#@P%3edFZQ||v8a&&_e+UNY>JyW4UuUsSX{WDh4#a=UOs*KX@eP5;B zn&B6?EPupN6o^SEeS-@oHa=Q8+ih(L`%%!Hrz{{@_TQ#KH$^z8xw{#)N36@(CKWD! z{r=fzOXStqYT3i*848%jv?Hm**ru=LQIYp+c%bhP64HA*=e@hT+i17aO?)xMA@J#g zIq$$riA17^Cx5Fwy2!AYl}Wx=5(P+>CO-bi;Z{pJE@vb%v^Axs28S?jxCmu$S zy;^1&uhqJhe~xT{HGW(qq8hCvQW;yDT(rD+^e`=oqWVJZb&Ia>!yFj5A^dRKo9zl=!UWg^GxpZyg51H&<;VptBjCtCDd6tQv- z5<=2a$ts&6SGD~2nJTU(S&SUIZHD^b&-3@14!lt{>@oG(`KhIvwBcRfFrN!%|3wNz zq4rG{PczMZCg}7t#XP(^y}q0;E)Vsw>%Qo)cq?2pUlQd>zkJ0bT zk1h~ox5hl)!SQfe5mOkjOG;j{@7GpeZBl6CaA8kCUStR=6)-aM4P#qPb9A;W;4ok? z90I`}CQY&c#d-(^TGS6W=?=`RuuFPTJo|a-WhCTT|0@NYtKu`~LnQ z^OCIdKtGXqUS`|X(C0+wL)=9cy7p2$2wPDrs-#9G6`bl`pcjW8*iI;!h@ z)p(K=8#8A5CxhIL>^JEQWd@eK{O(`)bhLC`E5_n(yak!vM8tG-S*E6@4s0A_x&u!t;Oe=C*Grx^dN99HQp5z0M|oB}=_HS&Wr?=YF?_bn#__^K;= zsNepOdVEd%HA-f?B~2A80?XwMp&P4Ri|F5P&KtS%QMY#+na~1o)80f->kRaZ-9Mtr zFh`|LA#YC%-EsU5Z~Mr?b2f~E()l8imoj`3%(pAn9ZrNL7$P2L z8Fd@kS-cXA%LvUa_`OMc$5go#-S00a57U#CAG|sRE31KD54zL8omy6g`o}yBdB6I| zeAVkS20?hca@wHTHxK}3q?aTCO+HQ~Vo8hd`W5y;c8;`XYiPdsW&=I=H zCb&g<^{@y1;wYK8v4-5mu1o>j$K*CT^HkMD;cS`EV3TL{d0&~@Vy@e1Dwhhq$f1#0 z^WFDhY?)~PaqE*K#K`2Ox_!;Zu0j;E>|5UKh-CA769=O(EN7lm$H=7@NlV^JX{y+H ztE#bEO8ewc$v$KwT! z$H#jg@gI}-zqE1`?)f|_n&@oSUX1hMc%k`C?OV<5YmTv4MkbfmdBT|&JJ!xu$lc21 zb+(<$?ldg37tI$!?0lW$_1PvbD_~;XpthA&KwJ8jonx83oh&vtEp)!l{n)(YRQPsSwiF@;MfM z1Ytu1Zy_Vk_WFY1$sW%4w=c9Gx;eWUNQQJY#CU7@^+nNbFcuXWic$MY)1_cq&~TH5 z%B9_9SSHA+uMw7@jzmEuh>PmjP2&2?v@h%{-rp>`UTGJ<;V>OLJSo7R%SvAOnuPw+ zaV%IURNL!OJ~|?xWH_2Ut8usY47o5?8clB8bvD$@&*9d($2lo7xdL)XCi;57)oXb- zRQ{06v7eh+nEvmjGYD?2Kio^BmP~$a=41UNDR}a+^4FZXKQ2Pcp_zEn99tWC4XqnW z4WXJXW%1q@k1n!UN@mdvzI)CspT9R%2<$|I_DAp|9yW@t-+m2)To=~I4_@-fc6>-k zeRdG{?H5qs-khkS@_+g@DXl5zRmeKm{xe?6rgm8SrHbry9gzTYhgg!|^r-m%Ue%wm zIE#xzdgT4$l9$H2*H-j3kKyXLmv>C1qvFtEa(e2?WluR23#bk9-z<%x`)%i*fHydJZrJ=>(8XA-AgKUQV>z(3(T?( zXuA?!O#0NJG6*nk++X&jC;64?p@mVfTCuWbuan)ppU29dIuHrn z)cwX`)4z)u`s6!}n#Y@}EbXbPn||tLC!+N$8t<B^d98^1myo<0|shOZnyak@gMh zC?biIu`awPz5A&SJnidj(| zc}G4zTz9U%gJek1dAH&ZWyo>4?r2q-h#FyK;79<`Timn@kyZ-0BY>`;-yKy@K<7r_ zb-3wIFxz|1KM=0CXWsfn>DGD1v0<$<5+U=tsgD3z)iC$Rax6%sxg^Mpu&-W=sS3P(hGp~;|Xp8gUv2x01b8V7fBtN&NVbpuS zs~QZ+lU{czsN;5NFm0GM=UU(;7h}KUPJZ2>UG!CowNR)viiNyKHK40pnz9Zvem|hp& zEUU=M&i$JHCHy1fws_lrLnsw2u8&_NIzO9NcG_KedTFuH_+OXROZ|VxOn9H(sPOLZ z9egs+CO}fdN@wq6K`SJ_v#0PH=coR>Ig%0%L#_xl3Ohb6`+#cTfjK=Rih&N*yk38i zZa$WQwuMThny)f$tV|~pGA>rGSh4~#?))$E&Q8A>N8|dR4(54&#rH-wgdd5DQ@neg zl8$^-o>E$STR`)do9gIji?Uz7NAj2Ec|yj8(Vc}Av+sdOp z4>2Ug=;_fo7?gvBLogi}mWh1{gx@|u=pGR7C1HtE9<4+n641HHzNsOp<&By78x=3m ze%{7P)7do26-Q&oKX@e~|3Hj@o&kjzMT}rTkE1{$M6o}&)@>Q{4zX_`v8lt+BC)B< zxsWeQv2{f+dSHuZXpOMB{y1**mFeQB)~i~Nndai7>ymI$`QM2(KZb*RtzDAHH8hL+ zlZBge+@~%do;su6)GVyXaKH_N;r_Z!=p&-a)la)k5 z6t$G1hbcNlDJ}NwtfQZdh21+$Cq={NX;MZZS1ofRRaa39t0ldK%_rC`a^>Djfac8A zOEy%5@ed-J;0bv{e3qPC$tM2B!@Fuul0*X9<}B+18`_yNv2HFO9s4U-ED*wp-X<;O zBA&$`#%9nj|9Brct3`emomEA)XlQbq9_6(mnT)UBm_`zgB`F!Vk#vTaYwOm&HboQg zC<|zBwmQ%Jtvyl6r@rZ4X4Wy$W>J3rX!@Jx{~IeJXBaR%;N_Z(cTefs>@%>sj}tt` zN@cDgFOYDb%*CekuAKc9zHu2Dm>N| z5aMF6i3p8cksw#!{yiK3J$*`c@9`NjDXfYCX)8_}bu6@RBm%gag56!;0dmqhak{_a zO!a0Y6(y+NH|@;mwc29dpwt!1iz^%A2Ux0_nRSR-tO5K3+hPvQsQW^Q^V|F3^bCZQ zt%jtYb^UXRuM_sE3~vf!l!BSBDl_@Wv*_JD*ZK{w&o7bV%UAB&+3Qdnj!UUWUah-U zc2!+gO+9P7kMBEm+W+?PM{ZVS9E8s^uie3%cG{-FV+~oMLyjozOFx&T=}49T10Hll zz9W1)#EV|r*y07MkG1r7|DVd3rUG}F5~I<-*T z6a=JwFT&RDV*JcozB4~mAkgA;nlslhI1%z`TYOaW(0uoohR9+{k5fU(Lpq&H*SNXz zPxfk@NBW$O*yRdw1*BuzNEZJ`(5cy1Oeb(hbA_${!_cg;X^HrMh$~{R26`{5>v#u} zi?nX6NAQgnOLHFS)|0S2Q*5M0vOzaN9Yci{7?rietOvWHVFjNsr3hw{Li+;3K zUXC4)ph&FM;Vhsad^q^7H4W!mu!Fb)#|F>UUqFYM~W+&hPVwN3RuudBIP z(L6b8$~m1jdl(qyl!inf930lvHbyS_-|!LrfXIJn4CVN_8^RhDr&iUu>cXuzjjYElJmFIwMj}$HyWo{y$l_8vA_26*ZnJu z;@am==l`IQGgU)YXW;Z?Y(sPwJBb^bYzs5xQoU=BFkm+BUH^1NY$D!_6|``zaizEX zTYU?%7=?l!YV@hBruqnbv%{88w-^m@U%$~-V8Xyb{xXp{dFQqAOsJmZ*Zj5H`XPda z?G^Y0QbjgzXA;y5h913%Kbh{(WX<0|mM%^FahJ^L=@cS@zRyK|z$d-b(x)`-3*8tN#x~NZ68@MTLPsMh?j~GQHxUGBXQzXgR{3 zm?A1f$JsCsMJr~1YiQTYN`ouW2O|Ty454<~-!bMSG5lGt_pUGbdkIw$juUo0q{ZSCa5L^Uus9zALs8Y;Ej0ZJd-BxqOy zW24@FP0rPorxKVBK*abiMy;W)PDD%`N+EEu*cJ?3e=sEY*pPzmzP_>H;g+R+#Fv;D zGgH&EU0zP$n*;xXkz~*xT9xw2Kfv~8Uql^Hupdsr$=x93d>cHQr z!?o+2a1Q;T3IC4}_~{cS2y4P6(=#$g;{%S49H7U`92FNA_mm(=Mpm|Dn}LA=XpH9` zf)QQHw}FoWG;1JufOZUVC%DbX$cRktk9yJFr>Y)@yfll<3Cr@6hsOsydHZ%xE z^;qeO>ckx%A3vA~J4>Yx!sd0bjgLsA-e_+i56TZ0xpusT_=Ba=={8gMMShywBlq$qW8|qV1RA@$PHyy?fh!Wy8Z3}v)pG7dBHwFP)>X zZ+6U*uDP7+EI866($YhJVI&Z>SO>h@J__%tA5_)+a5d6j5x^`r?Aqn9R3bsbY*HAl zD=Jxgaabs}lm3h%-iZ>W_oZ?#(Ve0{yyHp+JF}03*uIDCynl6bIPQ#aDp0A-|8Hyy z(*X<#L*dOEL13-Gc42%|e+DWQgo1*?{OYO`&>Vml@Ne!C0&r6<==*>u&T(tZYNqxs z0*IxJKyCq<9f&6QIXQ_V?sHmBfD{X)2;Y;Ec7d=0Eb+c1p+?)#v9U4Wdg_;)4Q0F% z6cl851~NDo=$AuxPQdkG`Re=-=sr~y6=(=Y$Kw)%4$ew*;1{SPzJ2|A(91RFal0>` z*KxDPeho1{U1JY)i#E;xfBz6LMc|wO2L*a2h`nKXA=w!A6;RiKjK>WWe73f>z^4Y* zhI|4q8iLDudhhsH02Ep@bU$~>ZH650I{y; zs^pPQDU7e8pU^aLOa6oSlGrZmd;&=cujFk2ou+|h4cItcDJ&n`{pH3(pw zqT$jo(iBi6cSbfUzg2lO67*6hBFt0Bp#7_7iTELIlFn9ZtD{Stwmn*_1@45K`IP!< zl2&8FbH}cRz?J0Kt%l#9zO0C8%d0xyw+dOUJ>%MFB}8xVy5^;#nun#Fm=kb6fwr;P zaAucbsa{I}{I6w4D7g%see-)XSgJIMFfU;A!i@srG|UluN*t`Cqm#t%ii`kCgZK6E zI9P*)xw+H!1U@OL8}R>u{D9m9YsSIxZwQ*-4==alO%=asu#ujHcXFWif?;j&ML*n* z&4IopMr}Ko`Z5}RLa4{m($csuK1X_DA{X3Hp;pxnSYV!N0Z^&NfvnA&sh9bK5FH&A z_1^va*B4twe9k-CFhUVT2%w$(1I;7Y1t;4YG&E^&N+u>IAYhv9@9%GGGXg0YXo0-{ zUY!FY9eCjI;|uS$Ig)~ddm^8z0XgOG^(DC3xMA2woFK*nY8TLz!Pc^~v*)}n|50rG z&~YZKAa_Wd1%CVsQBeq9^J{D4z=Q_j5K0qRBV4XYZ!E|S|DBg^fvx)C1ZX@#ISQO6 z*mTn%fQ0x(F5ouuE8ppNe>>+$Ma|AGod_ZNU&6`iP!+;5UnwQLuzR*c``RO8V}YYo zo0O%lQO4L)!s?V1+ZnHfch*@A&6;V@lh%ptoa+n@0}UOw+aE^khSa-kVOW%JzX=>@ zxQ)`7*w^{{_ivzutMfJgBjO9w6Y0x7adUIat-8lgfd@?&%orJTA5c;N59adX;%nFP z`}glBb^E5tF2m#Ew&v$yB!AQsoM>*_)T}Jf)IRcSR)|^H*(oGoWo7N`?#_)%FHr$u zNkMit2m`9Y$AEyc;f}XlJh$!D**>h;Pu?wECc_B}4&ZYGGs)mV2@}K-0;!g8MsW5( z1dC|i%#gyFa2E&NkEJCx0yF`NIYfucIZ9c@TyFntP=Vu_@vnPa*73kytEi}8=x#12 z=W~+DQBLHAQL&3{5Y52;9Opzi%up5&_joe-#h?2m^Lea{G?mmj%{tEvz9n=Fy2g+k z@@m{e$edklR+laprv*m*ZsAg|ywmh?HevRj;!=rC=A%z`e{~uXTN;23M27pA>fb{b z*op{X!oAy_6+rwW)Gx_#-aFl$OX9E?1D5078J+e5{PpIqC&IK)EARVvP;r$t-28PP z{SJy}|A2roL4WCt2s&BJ+qau9s)70kgPS?bMuBe!I#BRUQnX%AQnI3=#zDdUqrP5Q z3v_y{Leq85c)>TMqSWCZUOYURnw|X%`$#(D0Cs@YxWae@NDMj{%59%UK}0Vp*@ry? zE)B$*p!bQCeuNvSbUbY5;85?lMXX9LI|)v$wh{kh5lZZFy{ARM;S=dc2W>(kuM>_J z!)SzP)M6kd^HI!t<=44F<0WP#br!nOsi zC&(`oK{WT~4Fr;oN!r}JJc$s}73kVJ@4i6{3=AmD+%PgSB6NXx2g1u3UdLP+x@YX{ z=2S~tTXB(*KpZM|@3k!qK&dOTr45xw3+`D22G)0gU z4uJp)2AfucEVM)gG5_b!^@_v5f?W+*6A`8n2v$Kq^y(FseJAKzK!d%tvZA7(zzRgg ze=^gbv8DI0(dj^5mJV`k19u?1If5VrY>f2YJ#hWy`63{9myp1)XH>-p?e)b<)LU2@ z9`g};#^=hn4SvOPfK(E!Y?R|K_ze_v?0f8noj|HP-TsY&fP|DAw9RnB9U%|K({UWF z3NIh*qlvH|*OA{4{irgh0zhuVYe8u_spWhA!R|+ zp-%T#>F&(y=tH!4q=c%lzHu=JhocnHz)h#z>$UsSNU{IT1t_lzlamOKiV8$yR?3vo zsIfC@1TU^oqnM*zWt{-KB)8~j4e5AL<6^U4(x&xIR=mSsx7Yb-Z z^gmI+ht3b-@8|lU6xN1`nxITpu^=iJHZ(NUa^NK90}&`}gTuo^F3X7lT{T_M8?G>m z&&(ynT1{1=p`*WP^!njRVUadbX*C7@ZnoY`UoNxK6f%g~)!0Nf6QHSF>(`oRCkQOhbMX8kns_|RsyE&2P*a#8+VX|0dCt3<11{h z@6AKfJ-XN!in(1%HHw*haK#rFwOdb~q)Cg6s12Ih4$*43W|er?{?H~*6oEM5OJ#Pm zxVfHq%;IsU{L#E}>l6Xc8y(jD`4}95j6oc`7=6ia0DJu=ct=NFBGbj{7*o2K)kbl# z{Jr3sFSs@Ue*!nHao@0AyO#L8P+e}R=GScXrPgC6WEkGa%$T@&W8#E^&=|M9`lOQ= zu-_^B{laFZ`_se>VOByq%lV%X##iRYQ&?K#+c(#a;bio+g+lS%yrUmJgwms$4{nIP zAaVmNsl! z*R#D81{KJf-=krHu#2?>{qz;4zoLdlkXg$zBpH0*xTwP+KEJJZVKeC?+dj!3O8dH9 zA38cT1clqb6deXA06iUaa>R`4?_emy(a{k!>L9rR-73U#s3XBO0xcZG_PBv*1qBH) zF*(v11qCqb;R*!QGWlJ?s1fJD{atscjf>N=wJlMgZ{?hA@O+?j49R#cuK+*4GP@&T z>fw3b%hxeyRCL3pCk;y-?@x>Fw|SIXtd9I)$^C{%{vY7q#-&^$uk-ZH6jJT+;_a6z z2We}+>B>$ig`5rsYT15C09Op_Y3`qx7GR2XhdgbZtFASn%InKeAgc0SJrXE7%Ch9~ zqT_ydo&PZNxi(?VNc|+A{g^M8vAt6QZ;g#q)#o&?;mUSpdacUJ6g_*~L|#|(xkYQU zsH>{kj4P<6jFeb(H!FG+m#)owdt(v_bN{ z504-W4?A8@szpkvk5R)rc)e^Xs)yvp`Q7>1EUzglCNgjbNDbLFpq^4y9dn-Z#6Up) z3pvsa-1ksQp~8#|(BMLB?lfeNltx2<3)tIx2bu$fZi)JT$iJX3#(Aak`ZW?lhAyH_ z-#;+$Rfggy6Ko?G!2xTAiiQS+c7p@p;zQ*wodKghfSU(;RtIp$$_#gVfwH}~H(04VjRAqS0!7^d{Tg0aa+!b(bn@EhwdU%Yq^xB#&J zhc}cNR3JT%WMF2-)uN{$%$rJ8di{DI=CmODCKndUr6_>X0~E@pru3kv;Fn5KC`K!W zPmfPXfRsLUC}RhnA8jR0#rp&}v@sBfdmbjIUX-do zzjB7Z^T|WOxj5nM3nR1TeE$0R2nE6?*Faxy&|mwly2gd>T+nH~Yt#wT=EdpWBeNFm zZ~uSr-}{O)^Z=fkV}LpFBCZDZ5S42m@KK&4YV!nsurEnDWLC?oVa~66R6U$XvHD-U zv=k0CbF-b^ik`7X#~FLG$Y44ogyG6hMP2TbjWyGjR$mU@PY^dYWUkJZ!gA*h*ZMoW z#3Us8W1eM|?19N6>B7xN_@IeT5QN>EXl;e*GUoAj2*(Bn&Ni}=NISWn{EknQ69b9o zW|g@f=Htg%fKwoR0s{lhu@JggZ3aEXd1C@98RqkwwHBRub};M&!w2B4VbgL@fw`z^NX~)N%!hT4zeU0vNSBg?61y4(_}RGsZO z%v`@z(r&rFS5FJeV?(=?|3`LnUK@>e2qFobsIQPM;*-$5Z~yUN@x3{Z=^dX|&e4F6 zspjyLNZkJ~Y!Zv6O}g;9Sg|Yds^?2$Pzfl6Q%uc>>Il9`H&r}5#H}Ef zZ}L<0m74$imqu2Q$7EsuloKmdyVhfAnwav<)0hFWdW?6NeK*BhZ^ExcquY{P7vHo7 z`JcROWIEjtavSfFevTmb1=1W1sC($>=-?SaMTGfJ03w^AxU{$kkqzbvWh=wTfp1-g zfD^zN0MP2wMcgGOX1|9Gntgr!gYDnX(EUK~uFR5x@cB0z=7o$9C~gRXK>iBi4fdGN zZTg^H0s(birEcs?YJB6*3iO6$zdZzn*xBLZ6=?~s|2R{JOJ{(90Dv}KS13Y$wYQ@W z-ytDc+ujE0?kA~FV$?A*0UMCw8kVSo1ecLGSdtcINqbO7eG>Gkp=V;ku?TC%{?fAo zjsrBXAZjhEDJ>;HOjtT;Xx#UI(VQzx7x9RecJJH+E`SIV82R8ou&}U@s2)CS9vS&2 zOr@-<3c7#r>C@BN6k%BhVUn~AOiXu!#6a!?DRMLyoNRHQ{AWBku-lLwE;^!X*{-It z(n(d7*smGB8>X&A_rmZP35mxX9HYN~Ye4;{p-Y^5@RNbGEH^#<1IX2Dv>klUUWBi- z@iR5WOdNJ1{>0tJkWW<-R@NNm=FsTx`|Pr6rW~7XGEPkDNRK{)w)_kb&o%+3CkU!u z&og>Fn;p}UiS*hruWhqv;s|8b2PEg!>x9C61jU*bo9vWj?(%ait+uClBBSt_(l-^XTfD~y`gHf6Yh_qnn9qABy zRq0iF2Lb6#dIym%ND*lwB0V%Cy%}<6+~3`2?C+Fu#u@j|W$+_wjkU7oTyxI1Jnwv- z9Jb>CFbTNKAjtyW4k$2yDDBzWr#z4n0lqq5fPlZ`mGdN2AYWktnH-qR;5r^EYd|Xp zumUd+56ab*Nyu^pFgrAn?5dgG02YXdARSD8_39M}Do;;O0pWug@PJrY?wh>@;A~3D zG>F;w^qSt3l#oCG63_$^6F?DvivivjjkW|>fgwMhx~-)Zv^i3eYm}2Q)3DJolzR0tuc&a9v0U_0FFF0Bu0C21sXxg@n9&2qHUc2#vJ&(LfR( zNPB_m6c9a8)6>HOWbNqm6p+#a0|IP7*8q+nA04L$)=B}=-Eh{ev zG&8__0Smvfwl<;P6yWcjHe?qs(gHvZJYZ~Wtnw=Xr228fB*1B3d+bwyxz@|C0SB1H8klr>=wokRp zQuut-8__}7-9>D27WJlMLuHc$8;9hQsz*}!2`c61*~}9|G(Qym82$%IyiMje*7uj~ ze7F*~f85UJ3q?VC(TyjY0uvLA7L!9#f0GfUX~^&85AWf!oK4IWzc;(-w|Poy_Kx2% z#qFq|Tjh~%@KYtKL9qsDOm8RB9IHwM(YQp2Z1c2!P8?+}?1lNzXLMF_=%ugo(A`<$ z=aP9g4P=;tRJYE)lJOFw;vaPOt^$H!YaEYnD%SUCPAfR5-s<<}uJ)BWp{W5B3}pjtgZIp&+4yS(b6*cUOUA>~^6npbdL( z3;C+QER_XvCWN*Bmu~;N2!~Gz{|j%R(D*tbuKK|-6XK%KWq_pJZ!nTa`^hb{# zy|pI`UYwtQzO~?R7o<<7ccwc#Uv|!qSPB8V3i5iup(G0?giP6k0tZ>}OIrd6h}{;q zL9F8;$pj*Dei|kwCJ-(^z?*&Jc1O~s7NdOtJ5&}Xhqn|%_p@41PIrffG=vv)fL!A^j-%5CBR*9ep?E=nZ zWQ3gi90X|ipf@%EhZ8U;A>W-E5k&wqh4^9*qzB#(-#roVm51bk6IP17p+5Q6R5d4FcCWwe7{_s0(~L4&OC?jf$d zRU$gNs_p9CGq0#di#u`sjBuzTG{`~d`b|#G$ARZvZWX?+awn)_cvjmCD(crZNoLDV zcM8utS|i`sO}b9nafd5BexQW>n~Qd~KP$tANHv&h{fb1+O;3At ziw50tI&r<%y|@js+lJX6pa|e|*gU7#>gi%)vIr7%kY)1>>;Nbj`Sj^GFH9@=cLRws zi(JH1t#uMPJaHMoJ^-cFE*KmC{8@5uq^)C%#9DB;iTRd$TQ<*`;aHja?-8E&-xSyu8wtbDY~9 zz-NIn5KVM1kQiwLnpDxSGk1WcflLOxVg;V>4tLKz_s_QiS#j&m2kuC@MSx9$dano& z&Fdk7pjEQOP?V9fW8UFaJU}Exl!mliuUTuXrmMus)fJ#9&9)+d(Hth1OZ2j14duHx zD$gFL2)&^Qa^vYXpVP3gu%}2QAd-)*eFgB_%gfRh2c% z&|*<(sVd?L+zkZrbsW&nK{zFH(Ua26Ml-KY2fSnSqY&aEQ+NC-iXN``FJzW<#qKa9i zoyU|#+0Mkw2b1HpVU^zEfh?o>`Q`;6ASo&lEp0_Eb7y=2X4y%PS|V9B6LYGn zKJ-&V&V8m+I*sXQW1}IS92aE-ML>uC>&@eXGWeGx$iZ@%t1nd6q}IjdBk!dDi*vd9 zy&e<=qe54rh|!#rpq$5sTiZDWK{=x|CQ{hv9EzS9 z&je@{7$DbCpJF6vXLZ-9sqYu4Gm0kwiI|gdzLE$C1hS{?gAqMKNd6%C8%qpLaJfp{ zU6h#!-5zy~2|GjRi5SXdVvdMau|S=NJ@=&0 zS{>*WQh7SPEq%XNqih=ricVk3j?*JZApt{qI2UFJ_dyyRiBe!w(@;>|iJ*S1$ z4?&238zC&p<&Wp4UwYeZCkN?c0X@A@0{@eabB!t|wUI!wt~w)Lqd z+wRV3636d9+WtUD+SR9q?^G3~FGYCHekbq{*WA7U&tPIEB!IvRdQtA)@DN=KqF~Y| z@mU$S0?<1rap_fzlQp~*22izEas6FSvbi3r{830H((fd9EB|`)U$6Xsc=KN$^S_$?k8S+xlmFA3sg)^!)MI7q(0v{% zYIvVhecIjaye?yfnEZ@A|G(kiF}$D{9%6WRkVxrxA3+kx0*AJ$tl6b>CBb7tzS4t^~`4axekZilKaq@I4jjQQ{(4y+FsZDzEx>(6_gBYB$?fs zu`{8AjBxBlO8peqyfx?|B2+KjB<_9oYRpcUZm()El%iln=r%*Bt0&ghE;`?eEUnw9 zn$@5?#%TM9&@Q^7F8kJu(ZJi(eR0iLn$25y`$Syt;wjnYPi`!ul32_YaUS1^_!OfA z)-{9@GHG~jdAE8wcA#p8*y)bCP8BDgQp|FlN_0u?z<38)wW+BN-K#X0A#eO!qJD2w zjZp46;H~JThRWwYO?S3by`c!#q^urA*C3UNd_Gt!1~v{2l3IHuO)^8}Oaz9MrF|Y$ zz0uZ8>t3osY6kj<;n#0da|u_YidXsAP~wITd#o4f+eLU1-LGLa>^Kt^^)lU zPbA`&)XN<4AjfftO)P;`vG``1vYbWG_%o5r$tHcjx2QS(?S1B}x9JQOtZwhv<*B~Q3%X6I*M=r|e>M{8#$!jls z=zB@*95<|Rb-^-sV3CBgDm^YG#z=5O6I>^U?y5Ds`}Nz}7J7%tt(HX5)UiVbEJV-8 zcPVUbw#ebvmd(t}5z{snY>Kh>3I-g%2$rri1(`?ljf}3je2I%J$sOC+KCdBr>-Gmh zw9DYnQd6Bf^q0(YJB;tJmOr%;OuHL&9^$iT;hxoy6sm+ZH%AnuYtZa9b&a1JKBgAb zWz2wwyw~MOhzlDeE$K8L6)G!>gEbRD0#t^#PYB^5OA;IocbY%ua5;f~%jeAAz8dwQ zGp4YZ)3qceG>_A9tj5c+heRi;p>q<#E2v#uV_sEX;qmdjG*<{R`XncWdzP?8d*l z`Ck~uzc>58z4=f3>p#+=EjuQ3BY@SVS!O{gv>R`r+nT&?DZxV!JVQiEdiWP!81`xQ zTv$#zg7nryNvK)M968>Sh_UD1gN}mb+VSKXu{?Y}glB-LwY=FZ!ZU+MDcgbdS}1?z zH5U&o92%!K{D$e z7|kakWwoVyfnwsCifv&knjmV55~@QTpUdp*K!u@%Lh(p<|%)7CVDZ6ciI6oXS#(duRyzn9& z!Se%eQfQo|Oy0)o7bHg#QCt8P6VxvKVX`sM{OI*!vZUT2ZU%*e#reuk> zp*Df4up1DWcH#_r^PvW#m58q1nfgit;PT%Pt^%L#@2jMYQ;wn$PHhC6x6f$BQ&Ln` zfL;CMe_#8bh6VqBES-OdW_~yO&qX_8T}b_Q=)hK(6m)g3b0mf}w20t$_b*)DGMeRlV{`^c^Sx`s5$J^9=fvoWUUJ^t&2*UiuF`dWB41Wv_{=`2C!S+HByAmbL z-bb}f{J9_$`@X@}V6k7be$nsnxkP`U%EI%LXds&~thfEmwfEICG|IQmY=D{UbTJ~w zUWx>?_AbfCR+nkbWlGIZ99QqhmMx5d2L^%Ogms!Z8(HbB`IG9!+S7b#2W5UujF3Fv zPTde@6-De;8g0jn%T^wi5;{#40Cz7_CaI?T;9%`Ok{=f9Fw!KRY`iqk*UaHw$l08w zAIxQ`v25pTYyD34Q&*{4n^)!2GBYxB)7wgYe`Z+w`dE0{ZM5iaGH#U3bIp zvC~(79L)w>3wsJc*J85DT`MGv^ ze9o=QWQ$p{d9NolDM?!+K|7+^=f01S6S{Y-xJUX#Q3iU&+GDl<{A8r+rd1)G3-%NB z*$C4q4&%0$r_;$*{DHgJ?o1i^>%E;4^oo`5VPoEyoOXh?Mr7vpyDu4x0`oK5TigR2 zQoA}o2PO*=MKLr_JSOewt#MAhLv1;@TzU3*gZ-B{#ZsCnY~NII`$>OHAvxUAmL5~u zVB?FK;d+kq*_PnL@aZ3&*!vxHy+@jRJD(`m&$jP0j*BjH-}Kx|QmUZU)YMngl=lA6 zl8{D6!SR`OnzM3ZuEOJIk0Z+fcQF?)ZsMvRKxCM&4Zl#@;W3ORgX~d-jhd6+WC(k< z{muf@;`i2}e^=EYg>tv+!;XgI=9{_aJ{NFrPZ9l9)S1UYw^4huwZkoMmny^D4ASkW z;2~d;SzgEXL~8-2w@`i5uEL^LDl?iTWIHdMN*$7Zh=1XN z@w>u@oZ6@h!1(zdFn`Ry#m7r)B4HBraAMiH{cvH{!?kfax7EzhqaU=Qhkx>M+H)mp9x{|o!N%h*R6|Yk4u=# zODOL%wMi;nxdew=ACIe-7mN5b7A)=U^W-gZs1}QaUR)%qwP~KOjlA$;tR0Bv_oT;y z9aU()g}R!9Lw)bo%9GH2KNz>_72_lIAGhPQTDL>pJoh6_KDW>8ohAmd1%}yUFs|ph z&s^bcJ4v&0PkVzc^c=s0Yy>HC&tXfg@2Sac^kODS*y;{v37>ED7VXctxsfGHx7FLm zAx@va)E7X1AfC~Q(ojs?vCdB*xe-wKL3+nvX5zwk| zHRx1Hi+whxiI!6wFM%<~@qnd%y-eC~=Zl&uyL9|+?``k3BCi3I#hHvMJWE2z;0QT8 zpV?G4vaNbK$V53>h4ut(Anh^j7%k%R^|p!2W!z*`qKD|r;n@M9YIkfAp@y2@5M_6~ zqbO;l6mCd*4iw_-#C4rkeWFCaeSJ#Z^!2RwFlt%X3;SKaUQHkM+GNXrV zcVi-nm;hq5AO2u5b;6`R&+5JV$Mt<2|9V$Rwas9^w(0V^1Un7W(ePnf1@kXvj8}1@ zDsy3&J25wx@u$HKRqW;#w!9B>FvS5wb$(Yh!1kZYpRpfqy^IP~B^5ZRv&}J0q)O|G znho|L2~&|sy(V@v7C3+t7GJFth7}G?M4heATt4GklM5wLzWSv2DwT^Q3GeYA4XsLu zV9?8$VX<$0uTc8$*cv*p$HBbOQ8#jfsU*=f;B`uito_6VF!)`>$xh%e+fynwT=B)E*>1LW+6mY^*~vN2>GogWj}M*fPrDz-<+QtMtrd@3 zKNw=1+lb6yc@t5>?6DIBlm4}tjy&XT!JfnfQk9j=@9G&W&F%N0)d;(}VFtTdvU7AR z8c)eQhJ+ujc2VvU+k1JeVb=+Fdsa&Hlrv=2Ewo$&IlE(%ZakItww`$&yGAL(G%B^j z)8J8BEjnlLO`i->)GjGeAbGI#kx&{tj}8CPglnAh{_6RB@==_Pwzqv}({e7I-*H!L z^N&XBZo&3nV@8;y_UrV)AKOhr$Q%894&9qkOx(qRfQ{ZU&5UY|oqX77^JHcV8}3~@47-)5M9p{FOFbt|5h@=a76|iPU>|5!ofX7P=+yJz z0=?e-+=(z1zNOQ9)@fbA!>r#vKicg!>ov>*^RAPDgdm&56b8=e)Z$n>KaMIr?JqT|doPS|Er{z4n05+~pbsCNdPVIzo zDUT&@bwARCI<6QF$FB`i!Wpa!{mf>?$@B2 zBS>!_{ly|$xeSr?Tma1c8GO7>`W>=-vN)}y3vyUXev~*?91Ap6;WnYG=?TM zIenYmnHWs7V?#lHrV800~_#E%tfk4o(1og*{ zAK;_JGaa#ljEG0SKdOU|`S<_lEIy<{YbSK}_ko~kPK%6#1%#2lNHIL32RX4_cEEqp z(NhgFe4=%t`NuK3K4HOQs18DC>?a&S)SVoevhpuJ;1HrHtMZ^6ZusK=0DSP17XSbN literal 35924 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 diff --git a/help/C/figures/merge-ex1-4.png b/help/C/figures/merge-ex1-4.png index 808aef68f33b9c2265c0539fcdd7367942513779..06a5743a5500b539e458b6cc79025acf0d624616 100644 GIT binary patch literal 56557 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 literal 75437 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

    gxaaBQ_DhtxKsm=Y>HdbU|+Q)K^@Sx)Y1 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

    jWc-^8lOu9=%_a(6?8wQ}ShTs#(5l*%Qk9 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 diff --git a/help/C/figures/merge-ex2-1.png b/help/C/figures/merge-ex2-1.png index a41e3d6755e263975e0f3f98ee5b9b680711d49b..61be56c79da7cab56b924b7c5ea8b2d4bdeb3959 100644 GIT binary patch literal 38405 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

    2Z-bTczj%L^J#5nHmkZ_5I|4Z7cc- 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 literal 41226 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

    jmRUfmq5Pk?IE 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 au;h#V)~e>N_r^s&Ag-sYpUXO@geCyfKT3xH literal 65252 zcmY&=bzGF)7A}G!BBgYTNK1EjN=i3^bV&{!g3_RL4Il#y-JOy{4kgXdFm&focl^F{ z?z#8C99i-tEHurn~k&k5n6{B3d$Q4 zMHxvgugrZIz>i>R{`bkUgQA)O?hdvBYVcS_5N7VI#4GYh^NQJCA4f083KL)F8P|)o zItzJ;XL(nzeN<3i?0D=A-$Lj=4AReqYI(I&!`HbshuxsVs$2V+ZgQQxWj}AEFla*Y zq%g)Q@|#GZn2;V)+y-Bse+$Fchwjv}O7GRI{kzre3(z@s5b$Hn539Rp5O;N(|JM2D zyvU&}Uw<|vT+^umQD3p??bhFEyg}Hb2x#fez4(OrPx~%@jEqG+R=S3DWs()Nd0}b| z%7DHmQ1Cd42QxL4fr>XNcKM znw?HW&SGB!jl|{X5!7x7V15}Ce0b{rT8biHD{lP{_bhJ9d^7p}u~}ffHdxy&ZV5I~ zR$SP~^` z5BC*>C{7iot=9OPI~Lc6$#016eW~2eG=<7eSN|R1$Gr6=a_Aen;pZVZ_5SxSiyYmf z_aGbvri=?ypWA&sMOuhiSEw_1<>)*dHbME2+A5y;HQzDgb~UN+X7|Byex1Uy)}IwX zoe|OI68Au(%0Ff9(5x>XqbACLp7)OA8K&Ye#IBZz7BR~KtUmcFyZOZzEoCDWz6@-Y z$?MYvYJo3LeM04U<1J}=PP(Qpa_RQww6WXDJ6pa9sW`Z+ZL!X+-tDVC5V4u)!wbIL z&917HR}|6LZ|r!x8NEp^HZoZ*vL03dEm+Pi86`<>CEpu8{?<$=pgc)yo#u6~^ z8&%_vEwZryyr0sU>$j(4Yge69173>~Jt)iGNwj)6)<@CTou@XJlnoY^WU@$w7ckX1 zZ^WJWmM}(g$MjA3Ut|ra6mag{9Fg~o8#Rlw-z}samcl#W!zZAO%p+zPBHhtWo7;K4 zFUHGDARvi5LnSm!{>%0l&AAWdr%#`*5eS#@KLdA18Q%M&x)>M{4%H~3c))HWzaJ{T zn4D>)dc4>noeC0W90P3@Cnegi`bU>WmoibA-+PMqlht39Ht{vqEalR%JR!*<8;T9_ zPSi2LP~Mh*RB*1;t@KqRl8_gXgvLqs(363R=EvOTLeT#~7I#RM+GWq%(hgPAY^6CiNORkUiJt)zp z{$La|Yz|rA584nL*p958O){3q*X~_tc-}S{|Kd`>hruL1qkBpECQ&C(%srGMRaJX|xg8cToZWlVs_)DhQtEo| zcG}*K>sG8eHBH5WS)l+LnOnPC1}aFF)BS~E{9(zJveoq2vaondhLit@*vZ(Kx^~i! zA7<`CqDe_f$OT#1+>|vldlQK&1jNZ0`CeR{34p$9zupzDjx9XhkPc_-`^b2YAxGg(_o%2i+hMpHR0l0O9p-fjJmRcQ+^pmVi z@7>FB|J;adwl`(^O;n=a3b!*`GMgMo{SQbeqC zJ-EWkSO=7-V`~=L9Xo`-XGV>b{r@_f*-vfyDf+V;E?SGxl2bgbZ@>2Id*jhRjsK#A zwOK)s`n*X6+oLv<4pX@p7EBc8K7L(r{ z@0QhkNmG9YnX@|8FYa;^QaUA^8DosM+rc0Wo%pzRqG>iFu=Gete_q0G-_=CYRRL=Q zv}qT2SI~n!T>&f6M^St=s=3e27rYA)=}C&StNpoUj1 zo_AW>mOB&q*EcsmGu(o-_lUV3PQ%m_aeTzsLT!>qjK1m0ys^`NF?31U=MXm5pA}7! z+GQb0X!NK^buay)GB0LhwT8B8fmy$P>&+%fn(JJikZlrt|BHRwyh%GxOdWa6wPW_z z&W(tJFJf_G?nL)~=LD9U$3qX8UoCRe{GfVk?j5HS0fD8@aZWeZCl$`esw~dLJQL?J zu+G71=2%-3n-0uucCJkYw);zfN>z%17gZz4Qw75XSLBq0ovn1j0sv)d6l;9CpzT78 zl$l9sq9k8b3N_pZ<_3Ic8!wpu>er{qR2?XLjbh<6HJ93C;jk(3wKgb3#5K+jBVJq+j}FEQOlQb zXof0}0GBOw+?}*hDE9A?`)=)HAmg8etPd($7>=3hCh9{~ImZ3ZOsk=?_ATfK($}Wp z<-cfez5eiha)1Sxy(FrzarXyI069EmfP?Ze`lErPp;fd-eJh^SxKUF}X5Z2qhzkk| zRyQ}lP1(tUCx51=BhRy!x3`9oQ8e;kyACo1$;ru~lY6!Y&pAkgXId7k@N(C8LS7dc z)uc9@=8}>SE8se#$>UId&oem>--)WbWAN0TZ@L})f+7~MsT)vpy$aSk*;#ul*2dDE zHeHTp=~Sk>5O?(01(t8cIMu4$E4`+}DaekaQkm4N>!4^sznKf85sL^|4^uzwagDa| z(ly1?bsn;kRwWIKP1LXpi4G?HTyDC&aZ1^8_<&bPcSrv~;xUF!A|zwN>V} z6x6}*Oesp+g`yB1<>D>MTSO*`9ZPL-dO-GqkMKj=B~Nx6U$*JUQYtfm+X_m$jcww0 zUg3N_wXdSx%cq*|hST2JR+ZLJZJ*so$xWe_Ebe`w8^C+B4%Rx&-nHP^AC?pmx27Z- zH1sP)F$aN+wobkr{uCm_m6ke#xDabQ^_o@9OHP93S)PoM`bqM(ydU*{UTs9R5ZaiE zzIQ03J_ys5(@Ht1xYOH=s?Zq#e~7v{zkG;E4lcQGJ`*iI0O~%N)pfqy`|7tPCh~Q5 zl~n8DjzMyOHiNYRkuJ<`+{+TW?NxWHtd;s6lBqKSXlZiKnAg3xWL2C2o*U&Gnx3hY z6$}5cwzPajKp^Ad!ujOM6TLE`eNW-l)zwsGZ3@BoxGB3|)}snO=i9+4V9<-;=y4XA z8I48&xuT{je5q5E?EU0U+ZYc^zUMZ4^SW~dEb><(-26m*T+2}9FVvL^aa=Q}1R;1Y!{;=?KkPLlxOOq7 zSWYkZDWIYstxbZ+Ayry#?C9E)V?5kKZ58Xw^_XMcjnTatPwc!L>|>=J z>qcjeT!*np(!YQ0+vUv&?qi`Uzubdf71sA!@}XlZSxq&o{Kmk_>MSfCDRV6u1)fcO zAS1&V--$+mOl4YjuU`dDrDHoe3Oj_arx(r$PK@mkluqHIB9|qj#QP$p?j20qp09Dg z(PR=1qMz=YC>xC_(20$dH!vVeFL*^nG;O9;k|j#}0yj=VTYKNL<*Z0y#Fa*7rm|sd z7#|G{#S4+|T`FYsqVG+6mRqwMWnfz@E4?u3k`EN~YNf&W`LRavF?Pj*6AX4?$8DQ4 z$;0z|#UhWV1rtL`({b@(n}5H7qD@^^#%D~tj2fL?^cgw73ml>1<>fuW&GSQlCN^L9 zNXF?fVL&|Y=`W|n#qCq@sU~?XjGFHqXigmEdrp?h;Z>2JriZZ37*md}*<-MS`Wv=B zkH>mEQ0zBLPd40X&S|w#*C?etd02}~##wyPR0cR$r-8D(!vtcL01QSBHTHOA26lVW zxgmnCqe&IHge%T$;8&V+((&S=$&KR5ad}qX+iJG+oY< zY_kEsM1@7d0Q8NsXhK)?UHdJHnAX}%jarC@{X%>b2-!jpdW5pSY+TOqK&YsI5CfNUzk?&h_;#bygX9TkBtYx9wQm=hwPfmU98~3{05&3=iAB~0^mf3Tz2(5)@ zPB1^@eeUMUn#NtJ9(ReRN|(_Hpb;OwPhw#guj$>Jg16E$%K2R2Y(@}2Y)rV_ay0`O z!7*5UMwV+5s#MG6b$G9~!kT)b!~x0iukq#VB8lZ>LA7~_mgIm_&scGqC(ZOJSBmF0 zQyz>x9Xt1zis!$Hh@tjw4P3X2OYgu86JSKw{Zgw(j|_k7s|$?C)&6E}0<|=m{ZuUF zC>_wHg8-(6rgX;47U}Ca7l<9zU3KUVXq}W#;03PM>FH@&i#xaJ0nR(oC47NCi>YA| zKr9HE$Z*;e_dTG#yox)OugmcAZ;NQ;8MSyYTq8{ns`hy1cD`f8NuQPQon9kR_ctJW z1is6{AShHf`rN)}7S~)M)iyxf<6LpDORSYFT%uypZx6vhj(~P5Y!2!nuB5rngQDT`8 zNV33d)M&P$ewg>>v!;y=VolrXT+}QRv8Ug@;S(BNiISFy>KqQc!3CP}L-NnxG-VaF z@^fdwqKJ-H=BdtOPHk&NVEMK>Jier93$9f~p8L$(7eanrAFt1$4|>dQjn@MgSo_&4 z!x=2RHy&_btprsABLQExQ_h7>c8=)0#$(XY$rsR~ftv{?jgT&`DSN>E2@6~EHJ7I) zaV;~pxUwxFqkYS#y&t-#aIut-RIw`|$`Pb4LErA;y43l+ha zj9}_{P9iLv$p-o8^P|l7!!eH9Te{O(7D|-jO%7kob+5;Cj${Wh8P$kqM?olkF$!-M zb1ILcsBd`0BO48p-qD2Gl$ixm2i&ZF=u^p*vMtLvPUc7}b1Ye zPR+W~H1&_qWu<|QRvx<6H^)wIr}a7ano#2=;q@QVg@!bvkf7^wb38+tPQcMLKu2?aX;EuCRg6M6kQAv3$1)~6oA zHZOB9YX?~z7jj#M7@v8RHlGTz|LtsC-{8InByvj^A0`sj5QkgW61&*uj^=x{ zU!EZ6D=umKo~WaLZ?^XQfxe+EqReynl_>3isNZ(#I%2!@N$bWf$=(BhU1xQJ+6OqW zAFg*cppQLR!ZO>jZ9#>Yd0sl3{>}JEaegdf@p5)Oa~v!Wyhx91DLb9gfq(>g;p4^k z`aRye5;ZBO6$@(k2l7qno8X^qh9FRXq$Vnxf8s+gD>KVNJ{F|MWH|Z6i8c5^{U_zt$~4D( zzjNHw^LxAEiEy0N2$eYBoomS9D$vp}#k_R#{rT~B+!O&D(Y+w^yP9z5!#R|f`p8uj z(svq1T|*{HbsOlD#w};{BlS;|*p775UHfL)sN2iB4UyPw(z(y1FaGY+OhyCPpJFRY zl}V%WqvE0|Lt#?{C3OH9(%vV!lCIuZix{KQPqHmSNJ%?!v?9MVhKHXUo{FR-%25Sk(c?AaoXC*tN+v_1%ym7rF;l}e)Bv;Kh*e33~ zOS7gNTrJ9?kHwxb#`N23e-_32(OmPZXIciMaMP9#jsC9Pm?|GgT7A)e=-XNrn!*O< zwVn8cq)}e=fvV!lj0+wtDs_xt#eQW>4P5+VLk9xlx4YU@_cJBRe%n5%i0F;Jux$9m z>L(}XzSEipA3_atm+C!GOgGnVfMH+U!G0$HZQEmAvSNT2zc5^%m-)wg)vt^4mLaVd0 z<|Wj3jY-BbE!!J=dal#CSdG7SGPG$!0>ZO@-pFcaQZ81WuI_q0y%bML5f>rmAvb)u z3*rW=!Q+7)bwbOrda-?4{J5+`AMQs-lKuv2nx2T9?j<9qbLzp6?(U}B_J%oA^CvmQ z$0#p5OlN3r1Gm4vJ8an#jZHn6Rq<~1p8>^`XKYxS*?NQ>)Z?YPQZwA9HJVNTf*1|sfhtzyP#z3S;&nE~GWURRe>mFP zOx41kGU&mrfOUya+l!n$dirfWbA zilp_`tIj8}@eHSga5I#7)X{YqnyQ|%iFCt@ za{RZ|u=D@5T7<-V|JYz2xW}I|^riVfmH0LgqEwWW|Db_TytPJpm9l@Th2kBkGXD<& z{ew0Cwr~LT=mi0_bhN7-<>|w4Hgkkn_zgw^y}ajl#--KNaWSy|ydv5S%bhLhK1W9l zCi&e!+f9@!t(|u89;Wd-wiNTdCppv4hv*Nuy)!k^9p%Q*>dm3>xHwv7uI4!pey920 z%R`S_eS1#3LH&ORvKotXV3gJ5&%!xg6;0~T6`A`71~v#9F$o{2C6Bs6NzxYFU&vO` zvw0fOE|zosL{fr=Oi@BcSaz;{>;71D+3!{bG*r=Y>GK_zJl3S*=y##esAYB-U-LfD zw&jHPa{ISUbHTHWI1~G+*Uvz3ZEYy;o=%PZl_y)rK684r zl75-abg5xXSlIJhT&j0$eD&+7j%X~pWoA>mNlq2il!PPRng#V1GQjl~>VSm!}~QZ{)f^MN>7M zb8M{}BE$$JsvKWGdBVBv{z`%g(~74xI4BmYL%aRvlANvSGuP@WwsYgz>8bZs8vuob z*HueCY?_Gx7(2se_`RY1IpL*Lq{DNRYk10xS$(2nFWM}iG4y5M<(fjoixOiCnPtX@ z+l2xsPKl=DLVHXCB$}38JkC*=OYwuEw0)l9_Pj?4DgV}IKY#zZYL5>MC0?ZlZSl8< z{$mFh+4mjbdCv6M8tbW<_kLG)@D6dk$pp^&!}tHy0#pRv;j^=|!&@UGG0U5dKgaq7 zrnxO$?}@#!ojuV#c`X&bt`T;5Qn{c_AlqqImuqWq@mca0maJg3iEec9p&ZRiUbygA zgw8KU69OlVN*`RvBrOgBzD>@`x4s{8HDgJkVPWxUO;w$DwY5*4KKDL3^gR+_c@vYy z5rCRv?4zHs=T7Wd`Z;YT!Ex?)awIh=wO4~hupIc3eZDe)l~z73zqmSg(j29*n8!kw zkXePuJrbv8L{0FJ|I!6|wC0X7`8tf#>I{hu=(Qj+s8`dkeN)?OP3R zS0NAEm+LR8DU1!%dJO@Dk*aYf71H2I(9B-d!ol{153)g^iF`$#SZq>@EtS3D_2Ja8 zpAQqtXoo1V8uwDFqhL-*;HBQgLT+c z(csWfRf(tH{T+#b8QzfYd+XtCPV6k7_onTM-1MrbvcIZxqa%xpRU@xwcd*f?%M9ak zCx2-YAm^#AInE?R0PHH%00|5Ccxu$|SZs}$cIVzKyKX3m1qVNY`e=JAvPEqLLPFix zEDIm$-^wqIHFY8d7dAg}4%UC!GNTk1=p4zQIcz6>#FBUFWbhWFqFNu@5!rPBGX_7s za+9%aa0Gw$Wu|grfAY)*mba#%vD)}#aDXYNvT|53us3p;zTqX#CH#C+&GP2d1Gd{6 z%a;*D9f%0dl%Df&#t9)`-U6wK_ej5dDxpDOZf-7MKOsoD^q9{*q(8|sI5hcbj}lU#K}+*$SV?jZi0wKjb;~RvYdzDDd&g_3e%D%z$uw*pwa8 zb47l=GeYwELb5Yu?fiA5Sm<)mB*7+NdGO3sk=NgyP?vS>J|ohcJI`ws9rvkAaFX2E zy6>7q>%yiy4t)0#DIF-a$oBek_iL$#d?=FnQ{$j z-n~dK0 zs9HPLiZL=5?-h~cN2v-ZW>fbC#t;Wp})yb#|T=z2Mq zP*nOJ;!ymyqcYrvU+(vAu>&9Z-gKGRYL-`F`rr+%w1BhB7Y{ch3eX!nvf_f(YnYO( z_7oIH8-qsXrH2i5Tsn78-x3adEZkdEl)=M8+fgQ*A8+}UWXC_L zM=v6bzq>7k5r0ld{m}yjE-0$)&HVfY@De;)tV^(ko9F9H{TUL26> zv@pMCe#gOqp`JQ%h4ZlZ_@ZXipPJg@O>g~sp4bP2rkUF4TQ;wkQ{|@o9ipV0NC+8N!sZ~&qWv|-{^aXi&S?bEcQ7H_U-0j2y9RrmSX-$c7kgZA1O^$6WF&cAoUlby+QJhBQL zCt5P#$uMMSRZbHnc7}~BSp<9FR`t>NHQL~eFWn24%uuE()B8L<&nawd#CMwr;B%f+ z)^K@2tPJc66uV874#WBBCQveW@HbivC{1_1FK;!c|M2*bF=EJ^u9FaS@$nX6K5a z@jVKV!H&C+*3==%suH-w&G-xNofCl4N>`g#i$cxotVBe$|JS!~cxzr$Ou!)x0tgze ztfYot&>NnwK+0ai-tYo#joPW_LBIcqxcflZQwWnDyu8Cuf7!U-n{pE(s}g9bluh#F zSMk#^w%jdrtcKE72souO3c&$Q?_2+N@EnHwC6wlYs%zF8!w_KJ#XiHfE^Eq6_-tNU%G0V@F^;p=g3%qb^` zk&~6q>#9I7YUQ`a&)Aj{ z5*`~4?E<9$#HKYSW>jG@SC!9*o#+0%V#m3=58c(_KHh?id*Utp4vAHa076IKd2YvJ zH+c>IjGG_>QOe(Q<3?P-JXBO+Ft(o zsbOB8IxrOG1W(cx`vRThX*`Hs5WF3pB;~3VCyH7JVi(&1&Yx*a?TXQOYPC?7Onpsh zz$M(&X-6RBqvb3Zw)#bTdu4n2dd#`f3JZ%@%%;V1X)Ru0VHH%4#qCWl!>4X$IKBI^ zhYjy(X7buqWa4D}{O^%g-5}nus98XUc#Ib~pN^J9fxvt|Z5@NJCKce)*2Etxc*zw8 z^J~8(J%lJ}Iy)J+mdCCdQ>!Q9JtOPw8JDXPhUaPqOsgoKJwvVwH&3WZMceS=qkn8e z1Md5~5VVLm;i$8`^7&Glyzhx#e)|?yHFuy_#;4V?YqMaaiOdeF7PL!=Ui!5C zT#J9b?^)MvS};R4Cn%W7s2YRg|!vEe$C;V<0WAY-LkiqQw9jt zw6D3vHWCj%X-kEU{Nx^Qo-c870)f~K*n=cJInk2XTOBu0@MRP6ty*GGM;S5m>s<(dw{KpG3mJ8mO>Dvk=fE z3|9V8TRR$dXk%wtQSMb(yz57kJZ0YL)Bv(ew`gi>Ui(#?Izn`(l@uANba#J0PL5?P z_PDvZiIj@Dys@VaLC1Y7z?jA2#APso`@N+AFAGxmdRLr7%12!{-)iqH~of} z^%*s__}8yeg^U&3V7R|0gf}Z>u*hW=I;WuuWE1@9-$T78El^b}=<9_bxlPg?S$s3^z3?&sI@V z9$WWG^kunXBKgajy+CV&9J=m(&oI9QN4{d_xU8#UV>hkgJ<$_^tkd_%tFB_GcW{oI z+{I&}4|iQU!2ip++eLjHbqBzMN=~g*hnz2?4DtP=3txV*t$}4tiQWj&{*?2c_JK!+ zf&P0do}AX)_#6pJqNr!Mar7pIQ_p((=#SS}*mGxi_un7v`MSFoBa?Qx2-1wP6oMb& z+yYrRp<#9HOdoagien#yKXty^pKHqq4ngPko5hG!!Xyij-$eq*mEU-tN3h<*HepgB zFM(oMY;nDVR_UQk%^VU0wvD41+LCV4<$ECzW>tE}SeRW7RV%Mve;xST)xD5WO(}dF z6(d`8_@SWwOHXBa`CkKg7+l1$Yt!SSBo}k7$(zPZX$4Oiy$C!&i>(krCQT8g(kxVw zQXUCRy(jOaT}1lT?b_7UOLiPg?1dp8dz%~q$XGGb>itr{dGK9i6hOd)-e#uw*3|}z z`MuY?*9p)H2W{Dgw;`-1?CL=CzX}Uemj+ByS&4)WV~EP|C%GfR*}gxip0p<>>f|tD zQpurFQK4h`pi!Yi;I*{`o`;LF1_sPX6l`(4f)$YQ_#6e9A)58>)+Ht-yNw>y2=Plh z4m&k)!v`3SPfqBIbYByzv=OMOslDx5Brj6YASh62`_W{2AEs*(n1*D4JYyT(o?%fa zD4I~+-=2RuVFH_-pXV(HVc~3Uz4k-wc=`Ce_Bm{#Fsb@_UdzJ=ZAATGNk{5``!Ov$ z&e_h++WMDD-RD%;;k%RCu$%n|MGtG7bTo>Ne*(Qqn6?OoH0XPk{go;*3_7_ylbYo5 zJXlhc@p@`iL#n1W>KR#kU?jM%WDl(Ez+>FcMRxy7NFx<`IBIoby2Y!jRdK@@mAwdt4y zUnC63`1p`n)uf#VFxil$4qKsU5eyT3u(r%MHu9bF*nq=p9HzL|*4OkqY+1h(dB)Zi zd9JO$7KqpFCtYWFMMgHSI_}v{HDf$fz*7FXKj=v&XMl)j3ouhUY_{H+I$~5LWZWk2 zs_m-MeM7-VR+igomg8KGmaezAbg43U#X9>}X(?7<;3E{OlwmW#(P9kDWkf=**0xp! zD$gf0Z4BxkKT3JaKC?L$k*C?hT zE+u1R!X65WV*Zts>y_E) zpr6Ps!DhOHa(v9emGg*V;enTK&!wq3R`tQO{ zO%ZFkZ{HKKkdb+2fGR$y;B&_`TdF5GLy$UBEIC>#Ib2jUUp%A+Z$Qw_mxhKWub{wn zMigLfyNOSUi;Ii6*ppXKP#~9|srxH{4p`+Wg{vSLL?LIby(fRA5$2~bY$>g!a5(2KZn*8CJ zDr+K|zUvU??IuJbWNqZZK|bMeQG10j4^p4DhsLH87u~-r06Pb>BHj7LjM4JkCwCS( z(0CcKjgJ?}$?-OVeV)KWFwk!sUA!Dgo7+$}b-nz*{5vtmpuqOpQ+jydS>8Wa8RG=H zDrTF1brF9l_FR}EQoyE4l>K9Nj^-cMzP81)%u8#dRZ`FE=|Hy?s5#Ztd@o>x_mcfC zd|y+M!F)!re9|0@$o!1xUKH}Dm(A^ zU~12m=gz3D&!Yv;vv1yK01nKrwt5!@x_X9RSlo!Uv`((?Z4Wrj4~4!w>=fAKtlyvO zUNSbkKHZ#qce^VrTCbx5@p;hgu(lYe2ktMogu%#(xq6+k`7=F|&hmeH(EDodneRg_ z|9ssU>jIOAT~K{xSn4w+_pA&YrAiLCAwzSwzeXrnUNKf&4jTf}4G=IJjd|lUlA(7A z%3Q$Xgcd^FGHiyRnJn=TXXmyw)Di>hfD!8qq+Y?wSh-_q;2k*6tnyIX$X^1iB}}C9Sn!b# zmD&8xVrQo>Umo$8s7Y z1-umk*UaN9wMX6Hvuf0-=n{VBuTLTrjqbXGam2SAHRPOB(qr~20uxO5M>mV?N8kN{ z1fidY9}Hc@wU3r*1VB%VI~+$^%hgRF@%-4r%dI>aoFTWbQ}EQXB`uoPA0NVGOEPBq z%6WY|fT~6v;E9*b^+AV|jL7bU6RaPf zNtg}73h6qkYX6+X*O`jVBdM8Szs5JugEE)J-@Uoy`-*jtL8!SZlAL0Y>aAiBVreZZ z5Y)xWZdRr}IP*x(FX~VBjhtPZmiW=*YEcXB4kpuQ{vjmfPjx zdrDvIec-e;YNhiL)g`jkz)`_~d^8|9Xu`WSP5aOYaNB~rp5R5C@Kt1i&iSzT z5oWV1^n~Mni@5QjZF#lchGPZXdC5{L?M=Hc1he#>% z4o|`|Sw)*4%So`DI#wpnne1S-7*cFi7rR6odGk_yHTt)7>*=vdG*zNhUs1}b$JRKe z!f;v&7Z)8SWzH4W>YBV*p4oa-?13o0x0TFOXYs0LAIBK5$-qV)gEi`5ingwsk`Gy% z&(*J^%9`t5u1MSfe=s!W^yR3DN@EHYuqtfmpryOY*?GG7AZYK%5CC^tdN}DLd$^gy z|15L!1TVpb{-~WZIpzpjUSnc0L)OL_9|)xCzQuh!(9@_n**07teH^xQ%%r{Iz5K`0 zD-~g||3^;pGv*M~V#1Hi1!YzcBbza`Lw39>w2U4^YFPI{d(O96;@KiX%O9Ixt4ub! z^`IOU*F~7u2(1e|e)VDtv?RbGt9h1C^H5+7J?B1C51Gi;KHrd9uq2chTVlbP)Nnl;T;}`H(G|aE$}Mdy9Cv( z2wl~!7ddz8^z2Jwzyu$9Vy+( zFT4%|A~%ysxa8&C{nB{OU^a(BCpR+{r~NN0zRXL{tS`EW}I z*N^1I=`Ldhw?nw;9?VVR@HD7Z_HW+g+LybW;==#<~;K^9y3 zEJ(>*1xs>Di#Pe2^+w8DO`v6O+8zfYPmqOj?79y9H~%Rn8*bUk(sIqs#Y2TcDkAXd zc8f_G4*-Zk#_>&891(euX6U_FK0cf!25TyP;1n~dAV>11)xgvubOfm-QX9~{tb%%;R^6pQ+Z4bP#qA~!VZakmd+qj_yv`Lo_#E$rd zHXOBP=h@=608MovIc0Gl43!JkZbU9R8}&qSSrk2uZN;r;inBdIGE{%NHZHf6^)B3ul9&cqL z#mYsC^U=pmkN4ibYu|%K1lC>ns6G8Us`*FZeTGB{0aG;|vGNu(>FGPug0%X6kD4Nt zyBJp@0)?8Rz`kT&4`Ag&q<7%b>r)m-o5JkMua z?=Du63LG=Ooi?9I7DpcEyE1s&G7&fLbOp58IV*iM@zcG6D&^4Iqn9^_0~%1vkrOoIi81e(Y~qD>K&vfSOV&qN62&8h|EmQ6sB9%Cpii`@VWvEK z;cW}Sr46HmE+ms5k8E8710p!@Z+|3a4lBZ!hvhslh(o>5zT6VCo8R22#wYl2+N^nO z7qpr(VC!y95jG|?M7OlBot)@63Ai!7h;HLVVWQvyBt}S1ODWGR_&U^#6#7EY3G9{RnGU-v0Oeo7=!lE{iA||=_?OXD zX~B=*rNTXD7VE4ora_?N0bWJqtJZs|SO1mnsM?(F8~>9KV2mH;{ZA$|0g?W{rE&jD zA~ae4%{Y*%<-gtkt&$6Cagkk^oMS~O)U3vBYPe}CcFO~UEFaMu%$eE4!pF*U_dd6Qw zNa)}Hu|U(~qLOa#k7O39Lx*wl))kZ9?>^4899HiOFZvoU+-@S`c zs=Qb!?k!qeiw1bx;$A53UfkVFTO3MpFBB=o-3gRH&_D_99z2BLdN;h^|D5mszkAP| zIdd}8nG$yP{@GgVd7ibhXaq~hD=5Gdne5|E2oFB^AR7^Wd%gC)5+_-{Kh%?}O+bm&UQu19=gqLij4$<)-87l@|ZqEwUZ_3PIU9?xL?Rb^7Ei#;%O zgVy>Jcwb6VnQ4u}#@)2Bk198R$)vDADP4faee3=DKx+T`V7i=w0zDmFhR@NKD@=Hf z9OT6vP4Vh4*_pVwcLAl2Gj*jxJ9tzt@WA7GhHaO2i3kJ_A76YU8WHEW!R=02o2N1J z2qG1Ff8X(d;CN4>X9#@t+U@-Vgxl_yIR`Eo+Xw{ssftd$Ae`UX7vy){MH)rsY*v({ z)9OPU7Z;~pLc-3>Kto5TCbA~766dMUT;F01~@owuVe?-?T@NQdTkXIHXf(h zdTr*12iOXNm(jUYZ18-9E@Viif7B>b#Qb@j^v7Aq)s;U zVSyJYbtWD;#;w_RI0K@ADL!7eNxkc`a5UzER&BNvK^!Z@cljM2+s$RXD{QkvaKTT> z+}ym2iFS>Me2v|G%3klLW65dJ>GWj7O~>>ltgiINxL)*05#$Hr9qa?fUc;5Z2poP@ z#{sB3p~YYH2ba4dtw(>p&@z}$%(4>vuG7gVDb?OVq+M&mjV5)ln2krGJ3?uzyn0RB z&JPrpS5~f`g_O^?us;hT$R<|SR#Q`}n4uQxuf&p+7C!SFqFIh9MF0;~J*n||IFEoy zpti#;g8rHd;N{~>eRbj6lqHA}IoKiCuO1eQ$0$OVvJsYXC0uXq@)F(&yeU-eEM_wi zVKu&Uv+}D$>-5SqdYQ!^R31o|{oqE43oGnKVh4bTl z3<>cstsK2{k1A5m6!AlKA%v*#bZh1N(%XzXFyFkPI^3Sf-kqtBciDLQE@*Bj{Be7J z2p7x50lXlfqhr-P_s0)5i^&-4G@)2VYHSkr=Nw|0#?91(H-5^Ea!_wXRtLnH^iN&~ z=A!ZZrH%5&xU=w_$eR;o{DV~m2_D~LM}0R`m*2^pr=--GXIO$@{9_ps5z24rZmVq) zJZIeK);@ZAK6>O;$Li`Eq$?u(bWD%jsGinn++^?ajQ_(t0kDw2Ijs3h$iv4>D=e&d z6~^~|Klny5k>{b$;0#j@m~;D7P4OB2-CJfImaT%!67!F!EkTh%$A@-#cxIU7cfEykHx5t`PUVt9fN_}*UBcJK0>9nK`ScwGpmFqt>aM)@MN zICmCry!x72*HlDY{I9x_ArQ!jND*$~ z3WQgQcI8JJG1yw@RJF6n56nQfetaISa>Goy@>Y3iACY6iZ}|xc=Iy;Rj;&pcA&=s+ zl48Ur@!kcW5gzs`aAqepFUMrW@-qsPhjs>6V|rAf(Ow`)tzx|Pj}HSen1F92OMa4h zYF?dq;Yz``e%+F{(j2=I{IDxYqPbHZcK!T|xR!_MpXFCkRNkcO^WM$+JPGCpi?WJn zE1Vz32RzHwqozY%tB27#d*bqdmh7ATjSJP|pDlU=DWC5>kcM z9O&x0&ot$Lo*d+lDRp4%Mvn{jdo3OBc_}t*uVu4=vVb$r1aVlK*9z?B#*x;a6(|oZ z1A&Qex1zxMV5f9W*o!~CZt#jWmP>*Ua20G$>&v+Th#-^udM`_7n0y@RZxkdY``EwN z!-0f3o0#v>@^H>ub4$xdRV-lbHanKW?D2zFj$kxip`i7E*^i3^>nSUmT^ZocX9xXUsp9@Vjb<$J z4kP!B(#J=*1NV6-1bfNP5AcrYS7~2M`-&VNs90Jcl1iCG&C8yD8l4kBoz$ z{K9EjiOKQ#`BqEEDZ*TE1_%vgi`shBe)Jo)sHdhZh_l`s^yL!C_9Cmk&9K|G-lIRc zTGJ2oqGPa!gxwK1Q?a#bAW-L2bPbLNl9MYUIs)%!|NR8`n<(_Q7ib>;Ss-r_-NN|y`(rv_S~Mo zSIQhs6ngTx-;ZI&FNI|#CG0kk?t8&4#Bv+^!y{VoY9& zr*_AzJIBwJB}yMvj?teAj!Bsg+FUleaZt0pq>0b)8ZZ;RAf}G(w?Ej6A_fKOd4jT5 zP+p2X9=<&u=?(fcAR0`XAq`Rn=ZSs^S9dT2Z`G`qqLVME0VFJ!*1wx$bg~}hXU*9< zWJmGU%WuiK(AltFlPu|Z#RC&E0Yy&{F<&=G#bo;vOg&jc@8o_ZOG^@KYwN#Z_O2Wx z*qX(}#bdv=#U&->J1$<)1c*mxr2AcR`wF~!7u>iwOUpx=Xtz2RSb{6lc3M0;_bH|~ zx}I*CPYLZcf`THA(}XgWGnAPNoCnQ>oQ$&<>T16&_bQ1Gn9049g0Ao`R%LNCqVpRuK!LU=W~dbNMo_~nVA%LN zQ(1q7BSs9v%`Lt6skRBxljQix%*=SnGkJ(qrJezg#|$*tTh4`O#IylqJS;~CYU|Xf z-ymigH+0ZoKK%U+T);tFMO&M!qoZTe?w&*pGo8ywaRqa-<6KiB%%I6>Lv>4zXGdPX zuzmlRgv%Gk+a>$+=ixK{z{v^|dYKri0{7}FW@-$3J@yC27ctaS;w}&_9vzNhFo$15 z!Q%aavc>|#V5G#H`N$6`*hP~2QXfsKupD$K0Bc2}lV53s*Fadb{HzdhVMF$)0857x zzgd06xv>@b@;Z5?m%7hQXGpRf)i6u*E!JGa3sk_&e1=MaIwq*bp%TKGqmz_upBd3d z9Y!fuRT(tQ?PWwl6;POyt-gZ2y}fybg)1T+OO0V+L>$JUA8{;OBbYGXSX7ZVAhr-_LZz0EVCPY5G;~0H)_TvZ3lE(MPAV;u$#{Kd7dLf0lEB zb6(k)FehYYAko|0s=0#f z(a_vDHT+W?*H9O~(#H_H(K3zbVPi^nGpZd?w}h>+{=i4YHK^73*L|*b%r&_ySXH`C z5A>WK==6Gc19o)qEjv(sq}Ky*_SL_ab*fyj5pFh7^gR(`J>Li;XBcMIVC3g(yl4KK zOt24d?&qje$bj*@<94_Q4LJCXPN;(W?l^VOt70txV7srsmCSo!82Gjc(2+HpJ?sGl z-3z4+{GE{27lR_NdC@#)Ja<62#(=D9V870K%|q+}z{<0k4LF7RpEK;biI3uMQN zNQ8A0kJzSEQvGDcq}>vk^h=`vl;>y2wo7A}gojL;QQ+Cbs+tRIe6xrG@?~5b@fvZAgUC#%QjAn#=P#oCX7#V?C6&1iYRG6o3syM3ofHp56kam z%rwf)?=!_(tJV8FeT=vFLsK6YZ136CWyXWkbC&H|@M6KKI3faS!vk#0l*3Tv(rf4i z)S>#Bd1-@}_=PhE*ZiMMU&BC}9_^m1DVyOaC&*l{LD_Vmco(YXaFNj_+y9Y9^E7B@5q75EDzvXwVr z0!56Lnk4bEr*HDL<@uvo zPR~ks)F(L>(|9(?AP`$9;w(_ z_ctind;92JnD&dembOl4?X{>IycyKJtafIMUZH|WJtCm6V;ps09B`m#XCN!?YPaEe zf{hDHr?IJjMoBLDL;LZK-D&)Tz`3;APhK&BwVC_=YmoRE!N&547$}W-udVO(veM^s ztNGk$Z}hH!!r#lNL6d9kmYABFgpB4-Yi4B9MMfBiqa7)=ZGpT3pGKv+u&`B>?=tGb z5xnds5*`_82H9W2XhFk>VrazVE!!R^%KZV+;L}W)e2<9w3}e3eyh@zvhT$e5P_i^5 zOzE#H?%4=LS<|CVrzcuXy-RO7ua%Co$g;dLWy;>UClj5rKBYB^53Aq?ii+PLqzOKW zxOnKl-PQc29E*ta47mMQc(jRn=y5Fi3dic`3y0*VP?DyH9^aR-s%M^5>!Dj&1+!iw z7OZL5T->(u$C)1jV_h-lUIN(yx%<B2ZbW$b%@T2LUofBuPLh45#6q)IQO?3^L!0x_`xV?^$i=2( zx^==+xuc$M@wdygKTvl}Hn(KmzJWJ~9+Yrq?$&yUG?)5!6VtWw*c%`<3Y5zHOODPF}Hjh-!%5YNB0QRea8M#A@pHfVrs{MlmxuSnQ&wT{>1qc5&UD|awQoNMVk5) z3a9aT(a3V6@32%<`T?5^pIC!Z!`7vy_Z8pjM+WIu0sP2&CLY+HMk5)HZRZfcn5tTJ zLOk~`Fom{vs2@ySx{A(rhT>=Q2hvMQVh+wAHNZv>lLN^#cBg9_cSaP>Jk}L8OSC(h zj<&5Q>NtSHoxTM$NPx4g{R9A@roGEj007n8w2FJ6cAa>6jt&UR=cM+AM(7{3nwL(kK4=rT>yUKC#E?2lLAE!)p4J9KP} z5%V0|#3KxkN4wq{8#^#t!OxG~n%p`n&=fRb=*kgIA)p2#rWzu)@+ih3Vc0J6}oSd$xQ?hhFjW#no&d-mQm?p8m6yQZ54K+RL7R-nU&bY8PcHICC zCE37(9EEb$_nfP3sH#>;)5F`FY>UNZ_699X_EHtTXXLm+R^P!e+y09dPBiy|AfA?hTZ_LLkesB`a$;*Q~a6?RA50wYuRM*UI6pSbN@ zXv7+bikmg!Lm{EBlhfzJuJ8h-s{{ou%7Iu3j=U}vZ12OI?TwiqJh*1GJ#6TcdFE3O zSa-{k1|T?@9{%*j!o|vQS7QT1s9n=CJFLb!S1@hAhC^|a%!)35ibP^3(jNUrop9|5 zrL(Juc!J`?;(RS^_r!FsPBC7Wt7N}izxPopiA4)1-+;ktF2qit$!!O+C)PaGYENi; zt;i%SOdbTplizPTf4(afF?o?=ZfSv9$)FWZ$dH$OFO+N`kivpgS!&9e7^!&ucEMB& z#B2l-cPNxA#U~(7#M!}UKSF+P;H6ytdC`J&&Uo;6TvC!X^28Q&ITbW0E&Ji+vDt+G zgNF}0DlZl<;=$Y4bu(CXGvRckmxGs3&gy_03eS&We&O$PVtKkx`2-g?|J@JifXIslTyhBWCl`jn&m2A9 zJo64ycc~)`9NuSkMU`A(57{Au=pku>bF|qy4q{!cTwAtsXus$j_I@u#zH)q1Q=3IM z=@pm89+=0HM{~@a!(`^kylL&oMa#V3NvCIq<_SLuhoO_5)v-ZY^STJdsN>=a#mlUC z78;{^I3xDXXc4vi3d!S?GkXS}KXLDi_vrW`^7`+mhSsOqP$#)zJ-yEtRYdyyzkW}E zeL32elapgw8_sbVTLC=nI~cYgx@@y2+3kJzKC2@ze=l^jV1rXTMq9R6x`je=r5Qqb zWMt$C78X!$6Py$t?uMMt{DMpQ)UF;b!cw#v;s2CIw~qFQRh{R)k2HiQX0}3Z>utBTC%U$Ts)TUp+WuNwer?6=XM>X@IRVzWIs2 zAyO{hke;1CVbNGrAiY-A9|$@!!sNl0@LUhOYcX0ri9p`8w)Oqh$r*$hxs*lF07 zquS}%5S;GV79JIa^SkpmtGk!RyK_UQd(@(C#uIyU4F;Sz3b542aDE;!ni2s@K;z8= zpvb*&-Rhkt+Ws^8VuNldRSaN;+TAM={ zpQ=`;)Ju7T63*WXgE0a6>{FR1r1%YC<=04C8{cQAo=C9p(EFD%Myy%!FKK9#u&obY zr}oK+X1*`hjIOBQ{@6O3`p2ev?Q*{C4VYF+@>g0Ae(kT9z@+9UsquF39>06{In?Vc z7j(sIIp7aymd5on;bCDvN0&6Z!i(O8q)@zy;2;cZm?$@b<|HJzWM}pf6BBxYC_=kxDG@$f-5$j8#l>G{)UmB52?4ViOWfL-K*i;s8 zHyxb|D-Q5%N93E=-rNQBkk?_I z?-;*SgK zeO5bhKQKBpqb0$PXvm=+!GIMYBFacd{C2`LEbM*E&44N!P(?>TP}FoSN}3!Q2E1ew ziHDj0`EOXzGyH#kjWJ)28vfU{DEds))7!V>g3vzQD@d@QrW+OA?dyQ{Pl>l_joQ6RyZ54G zCG)mM$br$vx%^Zw#0$KC2gKXcY@h%%} zxndFF);=R3K>b;kiahuh{`2QgOf;bD0<3v!qI~G1L;#cK=^6LADuHv4Tf~k3k`!AFVW9LKhR(?fP?zhFssp^8HjVW~!`J{?RE+iry)VY)QJZ zohEd1m=8Lgj&59y38!+VrLFTY^<^woFVlbIWk5X%SJDN0HI)S2wM1ZmMV0*u-PR32#`{vl9w3M-E>*S0>b4w;i5kojLOC&nk~9 z{Y-@~l!`hpC3Z&cstX@&L;+`}C-5t?tzd|V5d`^|FU;1JW}>bfx|hh8dbs~|ylMTQ zYd0L?=^GU5c%9l&&S52a6PglWC2}$}A1wCkzL82RHny8(9~sXF^eeR- zZZY7|Oyaly8na~;WCf17{4j5&RAbUmV1gG+MdBGLsSNNn5ARM^_vSO`HZslg6$jTD zUT1~N5pL&`O0tx_A1!C&GL!T}#z5;fjFc>#z3nW>OdvJHhRloIBP$KfJW(IUS$DmR zWAi?}ktG#$-2ceIF-cwJph@e4+xW_4CZfU?ZuM}>-~LGR5j6DMG4lOZO#`m4=>Fe@>iP{f61Bj zZG0hF+|j6+Nsm`QDplySLpZMWa03s|3mWbg{MQNUP#E=0>g9TR%jNX8$O_;#4vgHK z&Kxil;e!|P%%myF?q1IGzMad9ZE_*r%`*(MfW8AqvVCxuF zNT&!)%o^yd{}LmolJtIkoV(lS2_J=KWiVBr^-UI^DRx4yl1SeV{z~yl#9 zi|-BEeYrKe{+E~bv-=Ptrde-lLX6I5l96R0UWiVF^~UgC!Rqj@f`c{ggETy=FDHC7GfS(5!(=KmWW|SUc}3j z)y>9g^8cy@IAZaJs|mC`{M*Sq`OO;mTo5;?rqyUI0n65)%w0s3weX6R1j$v=!UkVK zizG6Rt12vQ`(KVR=kJCrn+A`R2U^b*yZ7E7FscmSrPSiPxv*yVOi^-uM!0wCVvEA< zVUc3_d22YTv#BcZKfppuSwY=`jzUP8OT{rfNORQMoM{nug^nbCA>mC z3t>zx(*i3=P z_b}qzzi7Dd(=FrQMcPZqlGCbKKIp_3HCQHGelVL*J8CnYh($ZEIkglPM*H$Milgo~ z&y~H<2pF|Fq&ki*+j$vN{4+;|!j$pGqNzdu|0JgWUjqmKc_XXh9SmSd%8&ZTk?Z~5 z+mm(7ja6@pR5gn~PglOvpRHxFPaiGWagtnRD7X#9c@MVh_7HQaY{EYb=nx*o!Cfv} zIAr@?pq+W&AkQ{~U{SVAJPykD9

    U-_&lgjM~RotMURRHH8e=7S-TBMphqQ(Hkjg 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 o|Nk%4&nZA`|2^XaA7Tn!ExV!s3dEei6>n~s3 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 T_r-qa00000NkvXXu0mjfY!{Gf literal 35176 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 YHtTInmoWk2?=)KK`cEnzKYRV(08d~UW&i*H diff --git a/help/C/figures/merge-ex2-4.png b/help/C/figures/merge-ex2-4.png index 73996dd983515cdb81a670e297d5ea84b795df56..3f53adfaf83d7a59b2d24a2d04147bbf9d200071 100644 GIT binary patch literal 44112 zcmbq)bx<79vo4n4!8N!CcL*BXo!}DO-JReLf#4S0b#V>u?y$JKyS>TpzFT$c{dwP1 zQM=6U%$#$&`}@A`J{ztmFM*7Jj{pGyfh;8{stf@E^#k~GhJymm@W{jc`vB5OSwa}1 za-850_y^uzQqu_n;#2RxKgdM7PoII4u+CC)VzA3dc+jl0d4wX+z$rXuF%4%CI~yAl zTW1InM-u~Q6JruL3uki@2`M>6^`D<`ARtH}q(p^O-Iq^R-P|!vh+r?=mha-nOl3TU z;iO1Ne@}WL!oU##Lxth9mTz9Zte@c3KHT|h*&W``+-O*+4eJe}#Z*p%Qt`)ig z+uR`r+%enS@>?*K3&)y4dzs@{#ZcJoJZST15D@-;e~J~}S(7Pjv^hda;0Ok4@{!Xu zgY+U9^qB8I1StwN|JT>B>1Oaw*=KrxNkOR(i`nGE;G{y3)){OUX1`xU387NRu~iKu zGNwEW>y-mL0gF?WtHyp^90r8DI`Eu%ZH!)8{lz2caJEvR^Hk2wJ~ge2wpq z`-bI@YN*+;2h+DZCx!QT__cst#SadHdu@D%^6!G&DSfaHFqv;2i6wQ)+3t^v)nQVQ zSrJ|_*}qlLob26x+~>fNnx$4p|Mo{kFNO+Xilx*S%zV2k|FzUN$3ac=rD}Y1{Pn(k z?R0eqH)KwmW~A2Qu?0&|?}w%vmN7+>UwK7sQ=N_-PP2!3@S+H9bOCZ=V&cco6JmMj zKVnUl(qHGa>P8{>+_BU7FRyBTlK0b@bSq~*W^Dtnf6qiPn23*A?Ad#2fi(e!q4JGa zvP?_Ph*TZ8A32NO}^N z9DUn|!AWNs~w`y;8H|)1pDlC$32K!RQ18 zkRA&gH{h+iv#ZE2yD&euanY~fky(#B9&(S4zRPH((a@K_?lHhOe-BRFv+a<_`%3B4 z`p}aFc^0Xgoh8QPU1jCg?R{W6ja-(FPuGsAPNFt6Cyk>H7Dv##JK^2y@66`AG7a9eYRF z!9K+b^t*u!3*%Cjo~Kn1Opu~xFe5pyI@vFnClB(Vt4L`&T9-8~Fy>19Hw!fZRD)vCaF|gIL`A)voMDr4_ub@mW9G_092G(+qDpj^3&;0JiD*1|8y6_UtyeNL7 zF`RVyyFX6O+>r;dWzR zy9(;uXetWyD}HF`jjZd=V_rL z0&~zoe0h1M9~C7}$$1nR?!`&drXx{TN&?fWh8Oz?(GF$L*wW=;M3%1F=-mYxX?o?! z&SevELZVQIMg?s~4hgyX&h0RrPb;ld5U#H8{JZZM{oR$LgK_>hjQlSTI|=-WiBxQn zLjlizf-})fZjKH6X}EWHT(!rb;a(;tqyzbs%ie?avVxZk`u*z3*sN=F>aOyZTDGD} zn|6b%^S@TssplCg%pnlIi?Pqec&t~Qd(bi%bmujE5Ow(^2 zMANGzyoztkuP^>(_t1B-ON%~tQc=dyaVlB=>FvR&%45ro{-;^tMt9UeOqnh|#M>_Miyq^4)9B0$k2w*yx1Pw^^hN~M6>t1>~lhIo`Ls35wQc+1&m29+Luchpmn4+aML2)0e zgtTm&+e7J#1_!sQI%uEH{enqJ*FJNqrX56BMn*9ei3m{3Xuc^_vI_?tF8 zduaEMSBF_0maR3vO;)mI{BClwWLj8l$tZ3GagF>I?zk^y^bRU7^5bjTOIo$sDQ5Z@ zX_w7Q)+TOIJ~_hWx4stMi6+n5@$KkxuY2;&QI6U`xbi2WW3&M~-*bNBX!Gr{pEFgS6NzMrGceBpg+Re!CcUx~Vi%+>MUTDPR~SxgojMfwclh7;ea{jngE=h%8k{ z2ez!&l55}pl;!7<@(#H4R!yhF4q zf+h?TLmp&L0Gg6rMaSn3?y&l?P5E106&nY;3stOlo*Z zLmiSSQbX=plb(6Impre3<&-%MueMem741wVhJK==Ud*79KiG)Q(c+*C$Gd?o-!ys$s<#o1#A>8)cV?PLb{=7ZHs7aQp;=6DH)bw2VL~?( z&ekZ_JKUMBbagt3!`i5;n7r0UlAv;|MrUp#rZ1veZoL>uW~bcR7RDON^lCD@tchX8 z%ySy533K6lE5j(KydK=k7DsfO6UF&HJXfwSZB}i4Q}`!GdBR)6b!8vaJ{kpQWqN)k z4?3u&P0Kxdp*nv;Hn@xLw%$1!nTh$-^t4p(z2F=8iY8pg*bznYS;tg5w?zeiJo(Sj z@zNft9#ro^0;?Qf#jtviHD!U++#MewDM@)ie=@B9o)aI%?2DJ;R3=^6?Mr>mZyRZN zT=69JR5al-KY`ucX-DFw0lv2SalA(?^zeK&co*oaGY~`&Y0%a*-HHXJCZ#xmNWq-i zK!p(4=M*Wj$roV!E))dteJZs=RAPZ@t{!dMF$k^7CgQCyttn-|^_t9UG~*(2NM4h5 z{gE}{0_E_`{N2c=;4qap0ZJeFkEa6R>+x(_9~znLIgQO_A@s2$Es`XyD~k4Ysa;m^ zzV+;ER>@?KT}OJ$w(T`ig$ta*YJf>8VoV)Zn?w@$Q`$OM(G= zq#kB$k;c|712jX;-s^#12hDtVL)_wI@Idl^&Puy9Lrl;Pz11ynHGO>g zgsjKEx#>qMhoIJ`UOPrQ#VOKP4^XSR*Ckkq=A)82i4Bz`EckYOxxGYFDYsfCmQceE z6<8e^Qy0E~SJPM13q$;%Q6Xj`nZ?lv#y+9H{1(P?WH_Pw&Zv91D@G=%iI$YV-EUDYLhX=P3(s3v3>R8;k5|7(Aju5z@@ z`bX*`hoxUsUsPG(E?E{UQ_(q}T6{XB`x%^maoa|K-k=FQSigy3LYtGQhh zoFsf}I8x!_n_H(u@aiUk4GW%2uvp(m=s;#=?5}pS*I62mspL%ADs^rctQ;~J%pvhF z;CR}EOx_`iN3ztiIqh=xNFY}+43<7F#6)jwZLB$rKtLENZ7zZ9kUZQx zr6RRtC{6k@KFBzujTeMU2E&RIT_o;#-~Ok(K9{*j)QouvI4vJ;GLFxMlWIgUuNs%3 zM0@l6a%y`TXK)l$}^yiPPT>~f#le^iRe-<5GB+SM+)ha_T9YHxEqJnI~ z|C4;fNzjd>*4E6_K)7}H6~rXjxU$kshc2{4R26GVI(PVzp-h{%_3Yx8-MM~FWhmjW z!lg)whV@T_Q2|%2;$})hQYP|3sd3#fd|R%d<5i=Sin^tK&n8;k@A7cIY8#tIHYOI$ zT}9c!5J;acO{pkXqc0y#jT|EWXQY zC8{L&t`@s;(LnJ1)-lldiAwi{$;H7H?GiP2#PRx*xW1sQyZiO!KuKm?Ap?@aaW9VH zpho=tirwX-r2-d$r#(z8ar+cK`bCJCY{b_l-bRZAq{tNGn&oIWA}MP`N^WqaP~mQ3 zSK$W;2>bVpT|)seP6y-2F}+H*x_0#HG!98_P2i(Rgkjp-STA^RMYZvtx|>*$q92j} z>Rq3HPAj96-t3oJ?3xt7k^WSKqXWMES1@VGSQu`1chCCajOoA`D0)E@!@`$A@L@-N z3|unKJ)HNmLlQ#u{`rjpo0n$;s9o_u!Z#lIbC%TRl5ufSzx7AQ$8XIu;0-twOjG7N zng1Aw(TRP7fKXKUCd?Pmpy@U`HWuFQ&caPWQRiefTYAff)FW$p-50rEz*-V(*9xm7 z@&SSmjYAS*nJ99JfY^_mA|IqdPbP(Kcj`$bret8iKc30Iy|6|Mg$^pRBa}U9QZB>? zcnApmVxa(@a%{wV{q(W^S@(MBm7m+(QcB(e#H793*V(hkUA2H19qC?ahJ=WvAbFPx z&9YM8_Pi(j!HR$OwQ%Z(q=G`H`=+;pgOc`$B*DO(rQF0?J8!6~f%%iedVt(I4GLrE z=AVmv8x;s51LSFQcAa)#$~q_Y8p)S$$#aG*X2xc}e`9{-ZGCurfQLcJTPH5-i_gls zTe#dNCl_yRZr-*zk%CAo1c5*?0|bdfJ8y4q3a+OS?a;oB5dNWraSYrSxJXZkHTyiF z&R>1bRI~M7^W$M3_I7T{ow+K!8X5VouACB75<~(-v^P_{s?e-CSNbAx#Koe{mRc27 zz(IOzYmAJH&-bT?izNwth92kv)j7_hD10QOUIu+oli!eQQ$vZ`h5X*Onm0vy3Y1eL zmFwR()*xR$4(Hdx)|Cf~eOPV1V^588Onvbd(vvJ2uTZA5csWPv!NkF`&|O`=QnNlk z*H_gD+g2E+gCX8*G{m1q$K6DGCki3E zDpi7Dm_v=^nio-CoW7KD`^c+IqWjt>w7#d(}2l zA?)6c7!@5{aOo3UcuHA7c?o~nCDg?*G8p=`%FEMq{`y0(7(>dW6yvkYvFTfaR|3BK z4dl{|6JLAB6ZnyBlblSHtVT~icsoc>pYqpWzl1!v-fJMtVAHW#rHsjncl}Q4i_}7; z?o@I8Pe`E(NAahi%=ub{v&N>GZms9l0{W3Xti7jaSWi#)b+$$XgsUw(J-4~0U&s_f zR#ybuFTwTk&=izl`2F~*!#t?G}pjv#0rm=c{?`Vr1G zH^`7p{Cezx%X09EtAMYKtDf8vn~by!^2eTxrHPLpT#(Li!M*Vb2?>n4&CVAWmr>;> z{-56LWnoduKQ7goqPFY#?RA$Zk@wplO2+>lGcBMYO8%8V&3}7*r%%>Ro{^#Tl{^^A zAUTdvSGc9lG;a)J{%U4&!62He<9(+pri%Vx|LWqXyPU;h;AkD|Iw`0u9JWD8dRQ6^ zZf|S%zIi%|i0EhRQpQxsbEuzjRyGU>P4{v#%S=w@HNLRVtVACO*M{d}>enlFtMm8& zmCP@9gwuACg#hw%t!B_Bf&(h#9R7mdFn)I2Ld-`?)Jy0bozc)_U)~cj9;mE8|y?dhZ{dX z7-Og&-183|{uDR$Ygh8c+*6^`Ki;0JDDOUv;0 zW7oYCsrx;BRYnH7Jetzl+U_B#UsA@1R`XTwu0;?yeB5V{yC%j1moy-$BYBX-6H+pRvF zS3+5Sswywfr-?8)=*d9M3}!I0Q~f&Nw?| zFS4YLxwfvFHaaCL5e)dfn1GhN7gl+c*i5f!h(ZiFTQdt!sS*x-wP;RUy~aw@MakA4 zUa^BFubITB*jHQJuIDor^5Qe%OC6P_+2!KgHG@Bq_EH*-y(?qRH9PH}8LUD<@hD=7 zDgEwfNi#4v3s#ZV!Y7#Qf<_wb_jCN1x4Cn;Z6u+98ZH{+{Bqn|gVrO#Gqh8SR{IKj z_X&>=Al!=b^4_H-lf5X-&s?@CJRYS9Dj>FLYZhuMD&u|A*47qSXSg`Ye7Ky9jM1FH z&{SFRL}izqgPe}`Cz2rNmSLy;36ovp#%r5}A_aXZw(LIZE~SvEBEnaLU9W8MeG<&Y zeonJ?{eiTG(~*Q+ct7!$E&35M@odinzjwVBLqASop)pVEZaw=u_sW??JNA;oTd7S7qmak;@zH7BHi$Vw;unQjJVj3} zHmJZhmx~_=dn&kY+fE_|cn@pu@w&FXNQe7OwuSJ=qs6r2^H*c64<1IvOW zcUf}x<~y?P*LbGNEx+-weoErHEPf?PlwE`!u8SelSe9z#iyioFi7^^eG)i$j2 z?U_oycOfjSU9Y=W7ViVNX4$i&BiGaZ?-g23yOtTD>9E4ZZMlZ`=e*fIoYHw}Mfp_O zyk4fg7ZYYS^RL$57D=&X-~veC zp=!#9tSy&tc4-UQZK&a15){9#sYMrB;AoDuef2Ddi1V&UL4Hx;wiYB?H^@N#)wY#4|K zt_=-YT=kZ$G`yp;u#)Ag?9(l5jc4%h?jFun$lPB=T&=sFr|}M-t@DMNX1OysSyR2!%@~zTKQx* zvM>H;(|_*;5P?NbXSXN-p$T* zT0c9;_AWyDzsO$%fwrh|I5-%fe?qFh4I7LDqHZFWl@ zIX!UP;MekZ%|>E5wTvB|!fn|G2N*Jlw|EWYop71hI$2DwXj#$@t@r*&x2 zeD}vcm8Y%Ec}5uY+QI&L{ecgFnt>kp-14@lkBT6r& zpzurDWJyzVz|b%^D}4^^Q6KDup{2yHKVUkWil#5jQvYUJ1QZ5DR!;BIx=e?-KijDx z;cm$}Zf`HYLF*o77AYgE=t}bTtYzhQ)vGmXgkWC96%3o#uRPw@DB*@Qte}lB*Xz0U z?PAAZQ1taM_vX<+QPV{1bL(tzk8fWyBVD@lG4{w(f#xhL?oq*mT-(c7U*gf>#gexe zRaKKzFge`++E*%5Vuv&JW>u8VUp~J4d<|JH=Oh@Aqhj;9KeDl`7`HaXT{Z=6ax*53 zaN4~>lJ+u>f^qbO;cUQdKU;ewsggIjZ9z-8A$yg5xoTfMXyA?KZtL2q7hOu)vQ~#`WPF?l)#sww%#=0*v)bj@+9pfXpWagj zgLm2DHNn2$vYMnL$Sr%qgPRAT*d=Ah5wVAvC{`3#{E`N#=lA$P*bd~l4k^;!R0{1-gn;h^J2ypDSg2Wsb4ZrGI@u8mHH{6 z7HIvmQn#f~uf_eODz9U$gWv1MvX3%hB$G^B^klWu?XUk&tqM+l^0|cpJJ;E3ec#)4 zb!>(t$^4-&jXSJGN32&!^ynO$;I#84wy^uo>w#$o zpMXa=QmeBel@CpR#C8J0&XL%E)iQJfX18bWS2*yziqN~}6SUz-33^z9Bm<%zk5OZ{ zkWU0LNin@1+bT<^l@ecg8#Nl5V_Rm}$8O_Qu4S(eE)T?G9-`f3XW&3Xqpb8&@nU_A z&$=^~I+W-&W2Pc-QWSOfnFm@k4YNzbWdD;|F>%^zV^tHJZ9T7Q0njg zwxSOV3L}a3WEc~gOb8M_kMZOrcJidVcuY9%_4AtGM`YZcqocHpw4HODi?=J3Q&(+a z<+g+jnSq01JS9fyAP4#Y5VMYUg1Dc`K!D*NA3I(rWIWqrZ(;Q@<_DhRg0~;XhR1AW3qN5T^aqz z?v_4vtRtjpO-d*dfqcB*M8*h1!>>=L_$5dn+31OrKW`$RQ!^@Zmg;#x@T5tl4kA<` z2I%2CH_h8{q~W3g2DmN@r)mF@4dXg)diP)fhLi>V0W;0J?fbXeW$h7ZI%nHTtrFQn zd*v`J%fNbNk`35lFCO?g3!ow_S0df4CMku55G+ZdTvk1LqJz{U3H5&8xz^=CP$?Sl zY~yUDiDC6G#~Rn=&W=w5k1tf|XLnSr$u$da@)?{2>2{tIu$xz>muU-6BQq&vM~ylM zCy>$6@jgv{W)7S$C@Vhu6++ZZq%Q-Kc=(je#o^Q@m*)sd3sxL$|@CA?lh>f ze!Qu8y8`l?m8(yuvhgUd)u0`L&W{W5boZSt&0;fkjmhVSAU}rzi8Bs-`VnQmx61^H z<|%KVmnPaDBaSksxwH%nw>KC07Rw{o=N@xg+jB7nxJW&vrKL?)77R3oeE&XY zSR=_87fDm1ypyDcZx<0fx0nh1!m3qT#MZ z?Lu^pM0?}p(J7NRR6hG|H2UE)wS0C20e{0B&eYP9$5ro_6<6!eJnmuX>Dtnk@yaE` z!{admn6EERpzoy;zhkxptT3*LB5g*my)2bFIqWLFR+lfRRK|Q(>GgR}UjCMVUqIMm zJTgh?f_SCx-C%ynuQsyUhhJH#k8>_yBzOMo2aE4^i&jP$H!dGBJ*^zBk*n0&((K6{ zqD_yTWa1TkTe38lv1DCYT8fSkEb63(-2Wk`v-7>ih(&2)tX6|wE4r*TUE;M~He{1A zGK>3BJ@k&S$)bje>(ybqwb@gr)uG+3YK^lj+SEKqv0hK#i_XDqVhg4(ZyeYyw0AV6 zb!|ELI$HJx@=K!R%SvP8l8vwLX$%p+JbF;qkBzq@hW6EhQ`BslAXKil+FDw3)s0^% zoliGsb0sR&X9C*Xg@LfxabtFwlG5^?o=+gEgsGXH?PME4aq%b*RGAW0ZiQ^t*CHG3 z&`)@K$198+3>;6BIXHP)>dnPxjg6On!e+Zo$3ge|zARUPu|^?2{N0bFSw`s?9bQ%- zha0zRUih^7tmDtA6_@L+G3U0GEG!acVq=`RNG@g0^)0x4%qLYC1N^J}sUb1vF47xE zX|8E!E3M~#oo|LC^JC;a5*F-f;xT;%CI!?AS=>H*vvi36W;uvexs_pp< zXdfk=D^;#Ai{F!TnzpCb8t|u7P*E%)@6*-^PLqd$T%{QQs0YVxsQ3nVNcD95baz18 zXjIhK>wU>1FUZ!~btnRAN5lD@-8~9$%Xi%Zaw+B6(F7uhG{U&C<>qoVD^1N*=>h?l zr~Ila1=&%S=w*)1Ki^7JIp5}Uu&cEy)XM7Z&LO?-&yQzIW^Sz(#ACv$mrk+EZUy#l zQ9M=?|6E(G`xw8;{AGsYZ*#Iv5?}6$oF9)=#IUCGMr_#2 zOc%ev)J?jCc}R^$1$$(R8}dr){zPW0EBKnSU-+l}P4N_c_lYa79*DT1ft{(rVtWy9 z*_t(z4?|nGqH)DsCi?b-`*|qxF~9_`Y%aHIKKrZRk~Qm!wd-B@Gecm5dZ6{Ez^)(6 zxVm$dMGDzZ+Y_q@!K}q1aa}(!;b1C=;=pYhA&0n=m;Lphy9jy7lYG8imli>VY}>pz zNVTrI#+EUqG+k%J@(Awqb@%?9S=XNT+?<#%4zs_%Svhr0pTkChBa)5{;F(!r;sHLtY3mCFK%!?xqBNFTt`t;TfcrzmRw$xKikR0{VaV5rc&za?|F{ zLbthNCz3~u4GdNT19>$o<_jkxDTX+CtEkWsU~ofhb=m_qA082t@w0=6jAdI~5+sz! ze!=0ZcLkyh?y)P7O0m2-R;247b{3Aw-eIz!Icuvv`v3|t!(YH~Q4|!?$E4R^ zar<=#+>prO0wk39h!jXrQ7MMzwUaB^zJ{Ro%h994J$R?84s&+w|G?$KTKEFFSDepj zGqZs!jt0}{$A&Z$@4?|g?4ELMIh=wkj32#M_Fg$OG+r}vFA%s%B;(@dc7J0(kY3LW zQAa|O-s*=&@g+&J7k%gz^U8eRWddC?;%KStz9uD48YlVgjc{2@ebBX)pM%n4|4yHL zK%rW*LZKfmw}xuI)e+G^hcaxys5dIl7T8yXV}N_lP7z{o;F`F7mS-7AcOgHy2{YA; zgV^ZJ1f*hW>)FI}ZHt8rQL413b7ks4DLLIemSq7kNRdVq_v0lTkv%f{Y}fWBPpIp! zA>-%!voEx?)>gVM8{Cys=D?%j5D*-}SNF!28+}STeIe#Tw)J)0kQE*%pM+2iYjD?s zKP?-7drMfRd3l8%mX1hwWH&ZnUhfnckngg&{z4aGV6Aq1>g+w*_=Eg&f$6iQNO~#O z5zD0PeVDH~#5d%tOQXgmg7*)xO$gx|YGM$7$q^*EAN(8O2QGP&NtR$$-%hi%40NF( zj;e%&pV7^|n2}VtdDBNtb0i=9O$|UZ|We{}^FhVe}q51g~E9LVm zZr6=#?+!>t=6j~z-q`}L^rmd(HW1%lftHxZM;jIrsalb5e^jY>{qC$iJT#BjB%`*Q zKp@A#>dg*c-SXk9rkPyhQ z6c9FvQ$LsmmQXyQAeJ4!6&4iy#fOA|xQNA?WodfzcXo6PsRwqyZ@_OH?d?5eq^9Dz zJt|8{NwphoaaXF+wz{BPH@8mMm>UAEw+o7q(NS)vr<;oldwqSu01^$LXrCljzG`Zw znPifBR9c#wo6ARr}Et9=nYnZ!MO)4SvO?0KReoK+8NhvY@n{Jwnqqm1A2n)@ilOl z?rmNje?uvTw2atYky*V}Vahdu=h!T59t4iX$R>@Aj48DgpP{8jzkg+7LYWr;I)DvB ztE=rF4&Aq(=D;WPOvLN1r!V+;7-<^7(_U1n>AhZ$5{Iv@{QtxNt;R!(l4xgA*jNwX zuI^D^D?f4;RNOwzH62;5PNI=pET0|i0fi1_Q}K}d)mXv*jO$@w%3N2ZHF(OEw}+WK zCN#*kUaNvnVBMN^ju7wvKE+&j6*tWlJSB|^lReR>MSmNE1PL_wAin*Z7zAqEzqgTH zay-CmmVMb92ny&PLO?XhvF1YV6Nrwe({z{6S&|FOQ)AT==G0 zI_8>YfESX3mt>#;nj2@f9wQxB_N|cGz^4H2qKE<~3A{l3=a&BdFu+?95@7BS|LfEL zHDCyse|LxYf9LVPI{p7Sp#M3m|2d$sZ)<*Np6vnx0$I5<8tD+sNFqwA=H@gZ26EXE zCQD`NRm-QY1ffo95OHIsi16@ek$tgl-_}}O%34}l+|Jjk#UM9ukwSVxQSQ%HwHcGS zOkReEha+*A?#|csDbTx?q5YjUyFaALVq;?7z$I^X$g4+2Mpmd8LLSli|HsRC>R({v+@e^ z^PSJYcxpHhE-uIO3@j{{4#bxJX^x8e6 z33*+227l?cIDd88lU<#{X4HA;K@sE&`=HU{Tq0eN#_h1x=5f6@mcCFRlPvi5kf%wx zv%e1rtGiUQtkkbgraylC(9t0{;or!4e7#>65fSO>?%o^Ee4bTN;J*hu-M$5AS$73| zz>hYaEmi`kq3l^bT0Bp=L|Iw+hlsx)<`wB^VBz85pro1E{`Nqu)A^0Zb~KlxlhbjG z$JLHhJO!FC{Ya&Lr!TPX;EU+bTmsK0Aa8-rzL9Fnxl*}w&i1QeI*|}0A-D>i=6{Xc zdpK76jlYd+o`|G%#zXP7wXBO?e?{0Fwt73?o<^)WtMogGNPj0La`?VH038oTjp{$& zhxHq6SKnTrahUW7@bR_ot5{P<`}#gKK>7Q7lTdf6SLy&oD7UuDvw~#3t?NhN@VY-E zWH(o|wx%DcB^Qrc1es0z5ei&xwCi*|UDo$|t@nApv#ejXZDi7IQO%pWcziMF2{FKR zeYn_UGaHBb_)$Kc6S=1v@V+cy5zoNQWoi{^0zRHa@|pPhS%6;#BjPwRf#l@n*J_MH zyMBa)h2e7B|8Q`)R1kbs)zJZ0Xg3yRd6w>}Iyg8aP|0lxFlp6ElKuL-22F%zXLo+y z`R=>%_h$mN!n`>c@JA&)VAB1phrjh{5IMCG01Hu!xA|W+yW-vA&nb>+iH!)`S6 zw5+%oC>%F8Hy0EX0PYVQI;Yn_EJb27@Oa&w#8b+Ys~xAZnZ3Q9`!Q)ZM42oF1O$jD ziB>JBtEzgxzup59bnoq}>&YTuMENv!3&2U?as~$ne?r4D>NMGJ_ea+k0^WUcT-DiO zyUJ5GceJ~^dvb#0h2kF6;&R+ydoqa(Nv6#XMH&OL8nlEJ}&W@n3!1Bx13!7UdGGItB}HMus50tMlDbV%CC-& zN5EKs+UabG3YxGf2#=KAVw&QYa}UKn)j#NZGi*JY{?&;~NQlo~9kI(z%;WFFr?W?dk zFhfLa`o&t4kp+D}UAkHL0C!+=dY*>`K(H_Z;X#||2#W|o1fNz2IIFI%t{u2(^Za~* zqs$N&8yDC8beSVZ@!;fS^i>%O3d-~DWa+m#g%m3nS7Tcn9|?*7XIxB7=Yz={Eu*VP z@3cZIIlQMQ_zn$*kfh$`Ifb&nk`s_%1)<<|WS^f=}-IXOA+MwmLSy?>3GUVpZ0 za{w4*ES<}$ei>-O%&_aKs^0W}whQaqqLfLR<-uuKIi;4**bw-P6k@edDJClV52F$R zx*pFKe1AUgRHwl-8i-+FV2F;6-c8e(o|yqMeF8kZf3(BzbqDM{Ryziw22FS%hOo@V zfuEXsAGk^aj*#CIKvozS7`WhWJT_D7mo|Gs*FE+#nL1yl`}!zpX%R>PH>&^$#2L7I z%rP3U8SC)ykg4rLSYCb{s3$dtmd{t}KA*Lo|BIHQnf8~f5rA8yWo7x?&UAp9%1{FJ zuA_&mE2mUEIJ0uK)$RRm#SWO(EnxoE*4Fon9u)gSNIsToF~mK;+p)%f+x>C^TD@xE ziLrhqCoc^40;qikto!E|H2`BDF9(Q&g-NY{T)=Vc!d@}^iPDdVi;JJFw&L_KFY;^* zJ)kwWw(<%P#|UU#D^%Lrf7?EumS7~a}4Qk3WHGoPs#sJk*#&KsT(*tKEBrKb{>VtMvz&nRWYB*>$bPQ?{>1t zLPi$gwKio6I$dq$;^6pRHV4pq#r$W!f70@}e;Jq&;9~7q$=3kM0%*vAAN}*^Pc$?% zJ|dJm^hsB6n+F>QhYNsY42(ZbmH-K<+v%I>MU+=v9p|N^Oo2X@!U90&_TVpaxEwTc z@rS3UZUk7xK=0}(@oj*K1)mP`lJ$L?TUydS7cU$G5{xF|Xr^ew4Cvz9EVG{#@tRNm z+1lCyxbX~#^Tld|`lp%0$($a*H5@Ou#29fvwY30qFGNH>0ZPH?yaEXk(d+egp}CQZ z4N2wu_Ycnq=7<8XH!}duu|O18s%0A{O2(2t2E^?4xK3t9 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 diff --git a/help/C/figures/merge-ex3-1.png b/help/C/figures/merge-ex3-1.png deleted file mode 100644 index 6395cd036d4e345e9b210c9f22f1b97b8e222057..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50907 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.H6z8O-K=2*Wf`}Paj1t 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

    {YW|zgzrgshohN`tAR8 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 Pjv+6j0xXmI@a2C2=6Icj literal 11840 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

    otHqY|DClI>XYKK_iG3Vn?~_hjU@`LXQ2;Um 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 Y6iFPbbYE4ty&Iq`uP#?1V;=Iq0C`4wbpQYW diff --git a/help/C/figures/print-copies.png b/help/C/figures/print-copies.png index 029add8013324f5b531fa8784cd91085d713a4f1..bcac68680195c9b0438e2ba34779df0133ddac0d 100644 GIT binary patch literal 50499 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 RzQKY&vX2xV=E&&3{$Cj)g>wJ^ literal 10945 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 diff --git a/help/C/figures/print-merge.png b/help/C/figures/print-merge.png index 86f2e929f80bb611e0a1f5ce3c8515a4ccfc6fd3..0d01733edf2bde30be435bf0fce2736d9d460c8b 100644 GIT binary patch literal 36678 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 NuPndpI)4waC3CbJUzqpn_L%Y3;_U{q0 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 literal 11307 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
      p?5t5elHw1Ha!0#=N8}tw46p- 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 e{N%jekno9dz*XiP6^AdTxVu|$8EkOpo1Am* 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 E0Tm)f-~a#s literal 0 HcmV?d00001 diff --git a/help/C/glabels.xml b/help/C/glabels.xml deleted file mode 100644 index 8e17cb3d..00000000 --- a/help/C/glabels.xml +++ /dev/null @@ -1,2251 +0,0 @@ - - - - - - gLabels"> - -]> - - - - - -
      - - - - &app; Manual V&manrevision; - - - User manual for the &app; label and business card creation program - - - - 2003-2009 - Jim Evins - - - Jim Evins - - - &legal; - - - - - Jim - Evins - - - - - - - - - - - - - - - - - - - - - gLabels Manual V2.2.6 - October 2009 - - Mario Blättermann - mariobl@gnome.org - - Jim Evins - - - - gLabels Manual V2.2 - December 2007 - - Jim Evins - evins@snaught.com - - Jim Evins - - - - - This manual describes version &appversion; of &app;. - - - Feedback - To report a bug or make a suggestion regarding the &app; application or - this manual, follow the directions in the &app; Contact Page. - - - - - - - gLabels - - - glabels - - - - - - - - - - Introduction - - The &app; application is a lightweight program for creating labels - and business cards for the GNOME desktop - environment. It is designed to work with various laser/ink-jet - peel-off label and business card sheets that you'll find at most - office supply stores. - - - - - - - - - - - Getting Started - - - To Start &app; - You can start &app; in the following ways: - - - - Applications menu - - Choose - - Office - gLabels - . - - - - Command line - - Type glabels, - then press Return: - - - - - - - When You Start &app; - When you start &app;, the following window is displayed. - - -
      - &app; Start Up Window - - - - - - -
      - - - - - - The &app; window contains the following elements: - - - - Menubar. - - The menus on the menubar contain all of the commands you - need to create and edit labels and business cards in - &app;. - - - - Main toolbar. - - The main toolbar contains a subset of common File and Edit - commands that you can access from the menubar. - - - - Drawing toolbar. - - The drawing toolbar contains a subset of commands for - editing the current &app; document. - - - - Display area. - - The display area is the main drawing interface to - &app;. - - - - Object sidebar. - - The object sidebar provides an interface for viewing and - editing all properties of an individual object. - - - - Properties toolbar. - - The properties toolbar contains a set of tools to - manipulate the properties of selected objects and set default - properties for new objects. - - - - Statusbar. - - The statusbar displays information about current - &app; activity and contextual - information about the menu items. - - - -
      -
      - - - - - - - - Usage - - - - To Create a New Label or Card - - To create a new label or business card, choose - File New - - to display the New Label or Card dialog. Select - the media type and orientation for the new document, - then click OK. A new document is - displayed in the display area of the &app; - window. - - If your particular media type is missing from this dialog, - see - - - - - - To Open a File - - To open a file, choose - File Open - to display the Open File dialog. - Select the file that you want to open, then click - OK. The file is displayed in the display area - of the &app; window. - - You can also open multiple files in - &app;. The application creates a separate - application window for each open file. - - The application records the paths and filenames of the - most recent files that you have edited and displays the files as menu - items on the - FileRecent Files - menu. - - - - - - To Open Multiple Files from a Command Line - - You can run &app; from a command line - and open a single file or multiple files. To open multiple files from - a command line, type the following command, then press - Return: - - glabels - file1.glabels file2.glabels file3.glabels - - - When the application starts, the files that you specify are - displayed in separate &app; windows. - - - - - - To Save a File - - You can save files in the following ways: - - - - - To save changes to an existing file, choose - File - Save . - - - - - To save a new file or to save an existing file under a new - filename, choose File - Save As . Enter a name - for the file in the Save As dialog box, - then click OK. - - - - - - - - - To Change Label Properties - - To change the media type and/or orientation of a label, choose - File - Properties to display the - Label properties dialog. Select the - new media type and orientation for the document, then click - OK. - - - - - - To Create a Custom Template - - To create a new custom template, choose - File - Template Designer ... - to display the Template Designer dialog. - This dialog will assist you in creating a custom template for - most types of label or card stationery that you may encounter. - - If you prefer, you can create your templates manually. - For this option see - - - - - - - To Close a File - - To close the current document, choose - File - Close to close the application - window. If the current document is modified, a confirmation dialog - will be presented, allowing you to save the document or cancel - the command. If the window being closed is the only open window, - &app; will exit. - - - - - - To Quit &app; - - To quit &app;, choose - File - Quit . This is equivalent - to closing all open windows. See - . - - - - - - To Print Labels or Cards - - To print labels or cards, choose - File Print - to display the Print dialog. - Once print options have been selected, click Print - to print the labels or cards. To simply preview the results, - click Print Preview instead. - - The Print dialog allows you to specify the - following print options: - - - The Labels Tab of the Print Dialog - - - - - Print control (Simple) - - - For simple labels or cards (no document merge), the labels - tabbed section contains the following copy controls. - - - - - - The number of copies of the label can be selected by - choosing the number of full sheets to print, or a specific - subset of labels on a single sheet. - - The mini-preview can also be used to graphically select - the subset of labels by clicking the first label on the - mini-preview and dragging to the last label. - - - - - - Print control (Merge) - - - For labels or cards using the document merge (also known - as "mail merge") capability, the labels tabbed section contains - the following merge controls instead of copy controls. - - - - - - The total number of labels or cards printed is the - product of the number of records in the merge source and - the number of copies selected. If multiple copies are - selected, these can be either collated (copies of the - same record grouped together) or un-collated (one copy - each record is printed before next copy). - - Printing can begin on any label on the first sheet. - This can be selected with the Start on - label spinbutton. - - The mini-preview can also be used to graphically select - this first label, by clicking on the desired label in the - mini-preview. - - - - - Options - - The following options can also be selected. - - - print outlines - Print outlines of labels. This option is useful for - dry-runs, to test printer alignment. - - - print in reverse - Prints the labels as mirror images. This option is - useful for printing on clear labels that will be viewed - from the reverse side (e.g. in a car window). - - - print crop marks - Prints crop marks along the edge of the sheet. - This option is useful for printing on blank stock, to - be cut after printing. This option does not work well - with all templates. - - - - - - - - - - - - To Create New Objects - - Objects are created by choosing the appropriate selection under - the Objects - Create Object submenu or - the Drawing Toolbar. This will place the - display area into object creation mode as indicated by its cursor. - To return to the default object selection mode without creating - an object, choose Objects - Select Mode . This will - return the display area's cursor to the default selection arrow. - - The following describes the object creation mode for each object - type: - - - - - Text - - Click the desired location of the upper left corner of the - text object. New text objects are initialized with the - string "Text." To change this text, or other properties, see - . - - - - - Box - - Click the desired location of the upper left corner of the - box object and drag to the desired location of the lower right - corner. If you simply click in a single location, a square - box will be created. To change properties of the box object, see - . - - - - - Line - - Click the desired location of one end of the - line object and drag to the desired location of the other end. - If you simply click in a single location, a diagonal line - will be created. To change properties of the line object, see - . - - - - - Ellipse - - Click the desired location of the upper left corner of the - ellipse object and drag to the desired location of the lower - right corner. If you simply click in a single location, a circle - will be created. To change properties of the ellipse object, see - . - - - - - Image - - Click the desired location of the upper left corner of the - image object and drag to the desired location of the lower - right corner. If you simply click in a single location, a square - will be created. New image objects are initialized with a - simple checkerboard image. To change this image, or other - properties of the image object, see - . - - - - - Barcode - - Click the desired location of the upper left corner of the - barcode object. New barcode objects are initialized to a - POSTNET barcode with representative data. To change data - and properties of the barcode object, see - . - - - - - - - - - - - To Select Objects - - A prerequisite for performing operations on objects is the - selection of individual objects or groups of objects. The - display area must be in the object selection mode to create new - selections, as indicated by an arrow cursor. The object - selection mode is selected by the - Objects - Select Mode menu item, - or the corresponding command on the Drawing - Toolbar. - - - - - Selecting a single object - - A single object can be selected simply by clicking - on the desired object in the display area. - Once selected the object will be highlighted with a set of - resizing handles. - - - - - Aggregate object selections - - Multiple objects can be selected by first selecting the first - object as above and then by holding the Ctrl - key while selecting additional objects. - Individual objects can be added to an existing selection - at any time by holding the Ctrl key while - selecting the desired objects. All objects can also be - selected by using the Edit - Select All - menu item. All objects in an aggregate object selection will be - highlighted. - - - - - Area selections - - Multiple objects can also be selected by clicking an empty - area and dragging to form a rectangular area. When released, - all objects contained in the area will form an aggregate - selection. An area selection can be used to add to an existing - selection by holding the Ctrl key while - performing the selection. - - - - - Unselecting objects - - Individual objects can be removed from an existing - selection by holding the Ctrl key while - clicking on a previously selected object. An entire selection - can be dismissed by using the - Edit Un-select All - menu item - or by simply clicking any empty space in the display area. - Once an object is unselected its highlight is removed. - - - - - - - - - - Clipboard Commands - - Object selections can be manipulated using the standard clipboard - operations Cut, - Copy, Paste, - and Delete. - - - - - - - - CtrlX - - Cut - - - - Moves selected objects to the clipboard. The objects are - then available for pasting back into the current document or - another document. - - - - - - - - CtrlC - - Copy - - - - Copies selected objects to the clipboard without deleting - them. The objects are then available for pasting back into - the current document or another document. - - - - - - - - CtrlV - - Paste - - - - Pastes objects from the clipboard into the current document. - &app; can only paste objects from - another &app; document. - - - - - - - - Delete - - Delete - - - - Deletes selected objects without placing them on the - clipboard. - - - - - - - - - - To Edit Object Properties - - Most object properties can be modified through the object - editor sidebar, illustrated below. To use the object editor, - a single object must first be selected. See - . - - -
      - Object Editor Sidebar - - - - - - -
      - - - The object editor will contain a subset of the following - tabbed sections, depending on object type: - - - Text Tabbed Section (Text objects) - - This section contains a small editor for changing the content - of a text object. It also contains a dropdown menu of available - document merge keys, that can be inserted into text. - - - - - Image Tabbed Section (Image objecs) - - This section contains a file entry with preview to select - image files. The browse button can be used to easily locate - image files. Alternatively, a document merge key can be used - instead to provide a filename at print time. - - - - - Data Tabbed Section (Barcode objecs) - - This section contains a text entry to enter literal barcode - data. Alternatively, a document merge key can be used to - provide this data at print time. - - - - - Style Tabbed Section (Text objects) - - This section contains controls to select text properties, - including font family, font size, font weight, color, and - text justification. - - - - - Style Tabbed Section (Barcode objecs) - - This section contains controls to select barcode properties, - including barcode style, color, whether to print text, and whether - to include a checksum digit. - - - - - Line Tabbed Section - - This section contains controls to select properties of lines - and outlines. These properties include line width and color. - - - - - Fill Tabbed Section - - This section contains controls to select fill properties of box - and ellipse objects. Currently the only fill property is fill - color. - - - - - Size Tabbed Section (All except line objects) - - This section contains controls to select the width and height - of an object. A checkbox is provided, so that the current aspect - ratio can be locked while manipulating the width and height controls. - Image objects also provide a button to reset the size to the - image's natural size (Assumes 72DPI). - - - - - Size Tabbed Section (Line objects) - - This section contains controls to select the length and angle - of a line object. - - - - - Position Tabbed Section - - This section contains controls to change the position of an - object. - - - - - - Shadow Tabbed Section (All except image and barcode objects) - - This section contains controls to add a shadow to an object. - - - - -
      - - - - Other Manipulations of Objects - - Objects can also be manipulated in the following ways. - - - Moving and Resizing Objects - - Objects can be moved by simply clicking on a selected - object and dragging the object to its new location. If the object - is part of an aggregate selection, all objects in the selection - will move with the object being dragged, maintaining their relative - positions to one another. If no object is selected, clicking on - an object will create a new selection containing that object. - See . - - A selected object can be resized by clicking one of its resize - handle and dragging it to obtain the new size. - - - - - Changing Stacking Order - - Stacking order refers to relative position in the z-axis of - objects. That is when objects overlap, which object will appear - on top of the other. By default, newer objects will appear above - older objects. To change this order, select one or more objects - and choose Objects - Order - Bring to Front - to raise the selection to the top of the stacking - order, or choose Objects - Order - Send to Back - to lower the selection to the bottom of the - stacking order. These menuitems are also available by right-clicking - the display area when there is a non-empty selection. - - - - - Rotating and Flipping Objects - - Objects can be rotated 90 degrees in either direction, or flipped - horizontally or vertically, by choosing the appropriate menuitem - in the Objects - Rotate/Flip sub-menu. These - menuitems are also available by right-clicking - the display area when there is a non-empty selection. - - - - - Aligning Objects - - Objects can be aligned horizontally or vertically, relative to - one another, or relative to the center line of the label, by - choosing the appropriate menuitem from the - Objects - Align Horizontal - or Objects - Align Horizontal sub-menus. - These menuitems are also available by right-clicking - the display area when there is a non-empty selection. - - - - - Using the Property Bar - - The property bar can be used to change some common properties - of objects en-masse. These properties include font family, font - size, font weight, text alignment, text color, fill color, line - or outline color, and line width. The property bar also controls - the defaults for these properties for any newly created objects. - - - - - - - - - - - Performing a Document Merge - - Document Merge (sometimes called "Mail Merge") is a powerful - feature that allows a unique label or card to be printed for each - record in an external data source. - - The first step to performing a document merge is to prepare - a source document that contains your merge data. This data could - be mailing addresses or any other data that you wish to create - unique labels or cards for. Currently back-ends only exist for - text files and the evolution data server -- others are planned. The currently - supported text-file format is very simple: each line is a record; - fields are delimited by commas (CSV), tabs, or colons; and newlines - can be embedded into fields by using the "\n" entity. This file - could be created using any text editor or could be created by - another program or script. A common way of creating CSV files is - to export them from a spreadsheet program. - - A label must then be configured to "point at" this data file. - To configure the merge properties of a document, choose - Objects - Merge Properties menu item - to display the merge properties dialog. This - dialog is used to select the exact data file format and file - name (location) of the merge data. - - Finally, once the label has been configured for a data file, - field keys can be inserted into text objects and used as source - or data for barcode objects and image filenames for image objects. - See for more information - on using merge data for these object types. - - Now that your label is configured, &app; will print a unique - label for each record in your source document -- substituting fields - from each record for field keys in the all text, barcode, and - image objects. - - See for a detailed - tutorial on the document merge feature. - - - - - -
      - - - - - - - - Settings - To configure &app;, choose - - Settings - Preferences - . The - Preferences dialog contains the following tabbed - sections: - - - - - - - - - - - - - - Locale - - - - Units - - Use this radio button group to specify your preferred units. - Select one of the following options: - - - - Points - Use points (1 point = 1/72 in = 0.352778 mm). - - - - Inches - Use inches. - - - - Millimeters - Use millimeters. - - - Default: - Inches. - - - - - Default page size - - Use this radio button group to specify your preferred page size. - This will make it quicker for you to locate media types when creating a new - label or card. - - - - US Letter - Most of your media will be of the US Letter page size (8.5 x 11 inches). - - - - ISO A4 - Most of your media will be of the ISO A4 page size (210 x 297 mm). - - - Default: - US Letter. - - - - - - - - Object defaults - - - - Text - - Use these controls to set the default properties of new text objects. - These properties are - - - - Font - These controls are used to select font family and font size, and - whether the font should bold or in italics. - - - - Color - This control selects the default text color. - - - - Alignment - These controls are used to select the default text alignment (left, center or right). - - - - - - - Line - - Use these controls to set the default properties of lines and outlines of - new objects. These properties are - - - - Width - This control selects the default line width. - - - - Color - This control selects the default line color. - - - - - - - Fill - - Use these controls to set the default fill properties of - new objects. These properties are - - - - Color - This control selects the default fill color. - - - - - - - - - - - - - - Document Merge Tutorial - - Document Merge (sometimes called "Mail Merge") is a powerful - feature that allows a unique label or card to be printed for each - record in an external data source. It is however, the most mis-understood - feature of &app;. The following examples - will step through a couple of common tasks using the document merge - feature. - - - Example 1: Name Tags Using a CSV File - - In this example we are organizing an orientation party for the new - crew members of our ship. We have a list of freshman crew members that we - created in gnumeric and exported as the following - CSV file. We could have created this file by using a text editor, but heck it - is the 23rd century. - - -Name,Department,SN -"Jim Kirk",Management,"SC937-0176 CEC" -"Mr. Spock",Sciences,S179-276SP -"Leonard McCoy",Medicine,unknown -"Montgomery Scott",Engineering,SE-197-54T - - - In &app; we have created a new &app; - document using the Avery 5395 "Name Badge Labels" template. Next we use the - Objects - Merge Properties menu item to display - the merge properties dialog. We use this dialog to - select the source type (in our case CSV) and the merge source (filename) as - shown. - - -
      - Merge properties dialog - - - - - - -
      - - - Before applying the merge source, we uncheck the first record since it is only - column headers from our original gnumeric spreadsheet - and would simply waste our first label. We could also unselect any other records - that we didn't want to print a label for. - - We can also view each record in more detail by clicking on the appropriate - expander (the little triangles) as shown. Once we are satisfied with the - selections in this dialog we click OK to accept the - changes. - - Now we start adding objects to our &app; document as shown. - - -
      - Adding objects - - - - - - -
      - - - In this example we have added three text objects and a barcode object. The - first text object contains only simple literal text ("Hello, my name is"). The - second text object contains a single merge field ("${1}") corresponding to the - first field of a record (first column of a line) which contains the new crew - member's full name. The third text field contains both literal text - ("Department: ") followed by a single merge field ("${2}") corresponding to - the second field or the crew member's department. The barcode object is - configured to use field (or key) "3" which contains our crew member's - starfleet serial number. - - Now we can print our name tags by selecting the - File - Print menu item. This will display - print dialog as shown below. - - -
      - Printing name tags - - - - - - -
      - - - Just to make sure our labels are going to look okay, we select the - Print outlines option and click - Print Preview. This will display a print preview dialog - as shown below. - - -
      - Name tags preview - - - - - - -
      - - - Everything looks good, so we can now load up our printer with - the appropriate label stock, print our name tags and start beaming our guests - aboard. - -
      - - - Example 2: Address Labels Using a CSV File - - In this example we are going to throw a party and need to print mailing - address labels for our invitations. We have a list of our closest friends - that we created in gnumeric and exported as the - following CSV file. It should be noted that not everyone has a middle initial or - a two line address. - - -LAST,FIRST,MI,ADDR1,ADDR2,CITY,STATE,ZIP -,,,,,,, -Critter,Ess,S,"123 Faux St.",,Alexandria,VA,22310 -Doe,John,,"Apt 1X","451 Mystery St.",Trenton,NJ,08601 -Summers,Joyce,,"1630 Revello Dr",,Sunnydale,CA,95037 -McGarret,Steve,O,"404 Piikoi Street",,Honolulu,HI,96813 -Kramer,Cosmo,,"Apt 5B","129 W. 81 St.","New York",NY,10024-7207 - - - In &app; we have created a new &app; - document using the Avery 5512 "Address Labels" template. Next we use the - Objects - Merge Properties menu item to display - the merge properties dialog. We use this dialog to - select the source type (in our case CSV) and the merge source (filename) as - shown. - - -
      - Merge properties dialog - - - - - - -
      - - - Before applying the merge source, we uncheck the first record since it is only - column headers from our original gnumeric spreadsheet - and would simply waste our first label. We also unselect the second record - which is empty (an artifact of our original spreadsheet). We could also unselect - any other records that we didn't want to print a label for. - - We can also view each record in more detail by clicking on the appropriate - expander (the little triangles) as shown. Once we are satisfied with the - selections in this dialog we click OK to accept the - changes. - - Now we start adding objects to our &app; document as shown. - - -
      - Adding objects - - - - - - -
      - - - In this example we have a single text object. This text object contains - all of our merge fields organized on multiple lines as a mailing address. - Notice that fields ${4} and ${5} (corresponding to ADDR1 and ADDR2) are each - located with no other text on their own lines. When - &app; encounters a field as the only text on - a line, it will not expand the line if the field is empty. - - Now we can print our address labels by selecting the - File - Print menu item. This will display - print dialog as shown below. - - -
      - Printing address labels - - - - - - -
      - - - Just to make sure our labels are going to look okay, we select the - Print outlines option and click - Print Preview. This will display a print preview dialog - as shown below. - - -
      - Address labels preview - - - - - - -
      - - - Everything looks good, so we can now load up our printer with - the appropriate label stock, print our address labels and start mailing - our party invitations. - -
      - - - Example 3: Address Labels Using the <application>Evolution</application> Addressbook - - Our last party was a great success, and now we need to print mailing - address labels for the invitations to a new one. To simplify this, we can use - the Evolution addressbook, because the address - data of all our friends is stored there. - - - Depending on how your copy of &app; was packaged, this option could be unavailable. - Support for the Evolution addressbook will only be available - if the evolution-data-server and its development files - were present when &app; was built. Please keep this in mind if you build &app; - directly from source. - - If the &app; package from your distribution lacks this support, - you may wish to contact the package maintainer or file a bug against the package - to request it. - - - In glabels we have created a new &app; - document using the Avery 5512 "Address Labels" template. Next we use the - Objects - Merge Properties menu item to display - the Merge properties dialog. We use this dialog to - select the source type (in our case Data from default Evolution - addressbook) as shown. - - -
      - Merge properties dialog - - - - - - -
      - - - Once we have chosen Data from default Evolution addressbook - as our merge source, we will get a full list of its content. Initially, - all entries are checked. Assuming we were planning a really big party, we could - leave this selection untouched (but let's keep our budget in mind). We will now select or - unselect certain entries by clicking on the appropriate checkboxes, or we could use - the Select all and Unselect all - buttons to activate or deactivate all entries in the address book. - - We can also view each entry in more detail by clicking on the appropriate - expander (the little triangles) as shown. Once we are satisfied with the - selections in this dialog, we will click the OK button to - accept the changes. - - Now we start adding objects to our glabels document as shown. - - -
      - Adding objects - - - - - - -
      - - - In this example we have a single text object again. This text object contains - all of our merge fields organized on multiple lines as a mailing address. - - Now we can print our address labels by selecting the - File - Print menu item. This will display - the print dialog as shown below. - - -
      - Printing address labels - - - - - - -
      - - - Just to make sure our labels are going to look okay, we select the - Print outlines option and click - Print Preview. This will display a print preview dialog - as shown below. - - -
      - Address labels preview - - - - - - -
      - - - Everything looks good, so we can now load up our printer with - the appropriate label stock, print our address labels and start mailing - our party invitations. - -
      - -
      - - - - - - - Manually Creating New Templates - - Predefined templates are defined by XML files located in - ${prefix}/share/glabels/, - where ${prefix} is usually something like - /usr/local or /usr depending - on the configuration option prefix. &app; will - use all files of the form *-templates.xml - or *.template, that it finds in - ${prefix}/share/glabels/ and - ${HOME}/.glabels/. - Additional templates can be added by creating additional - *.template files in either of these directories. - - - The format for these files is defined in the DTD: - glabels-2.2.dtd. (This DTD also describes other - XML formats used by &app;.) - - - Assumptions/caveats - - - A sheet contains only one size of label or card (if a sheet - contains more than one size of item, it can be split into - multiple templates for multiple pass printing) - - - Distances can be expressed in units of pt, - in, mm, - cm, or pc. For example: - "1.0in" or "2.54cm". If no - units are specified, computer points (pt) will - be assumed (1 pt = - 1/72 in = 0.352778 mm). - - - - - - - Template Files - - -<?xml version="1.0"?> -<Glabels-templates> - - ...templates... - -</Glabels-templates> - - - - - - Example Template - - <Template brand="Avery" part="8160" size="US-Letter" description="Mailing Labels"> - <Label-rectangle id="0" width="189pt" height="72pt" round="5pt"> - <Markup-margin size="5pt"/> - <Layout nx="3" ny="10" x0="11.25pt" y0="36pt" dx="200pt" dy="72pt"/> - </Label-rectangle> - <Alias brand="Avery" part="5160"/> - <Alias brand="Avery" part="6233"/> - </Template> - - - - - Template Node - - A Template node describes a single stationary - product. It must contain one instance of any type of Label node - (Label-rectangle, - Label-round, or Label-cd). - This node can be followed by zero or more - Alias nodes. - - - - - - - - - Property - - - Description - - - - - - brand - - Brand or manufacturer of stationary product. - E.g. "Avery" - - - - part - - Part number or name of stationary product. - E.g. "8160" - - - - size - - Size of sheet. E.g., "US-Letter," "A4", ... - - - - description - - Description of stationary product. E.g, - "Mailing Labels." - - - - _description - - Translatable description of stationary product. - E.g, "Mailing Labels." (Only useful for predefined - templates) - - - - width - - Page width. Only valid if size="Other" - - - - height - - Page height. Only valid if size="Other" - - - - - - - - - - Label-rectangle Node - - A Label-rectangle node describes the - dimensions of a single label or business card that is rectangular - in shape (may have rounded edges). - - - - - - - - - Property - - - Description - - - - - - id - - Reserved for future use. Should always be 0. - - - - width - Width of label/card - - - height - Height of label/card - - - round - - Radius of corners. For items with square edges - (business cards), the radius should be 0. - - - - x_waste - - Amount of horizontal waste (over-print) to allow. This is useful - for minimizing alignment problems when using non-white - backgrounds (e.g. images). - - - - y_waste - - Amount of vertical waste (over-print) to allow. This is useful - for minimizing alignment problems when using non-white - backgrounds (e.g. images). - - - - - - - -
      - Label-rectangle Parameters - - - - - - -
      - - -
      - - - Label-round Node - - A Label-round node describes the dimensions - of a simple round label (not a CD). - - - - - - - - - Property - - - Description - - - - - - id - - Reserved for future use. Should always be 0. - - - - radius - Radius (1/2 diameter) of label - - - waste - - Amount of waste (over-print) to allow. This is useful - for minimizing alignment problems when using non-white - backgrounds (e.g. images). - - - - - - - - - - Label-cd Node - - A Label-cd node describes the dimensions - of a CD, DVD, or business card CD. - - - - - - - - - Property - - - Description - - - - - - id - - Reserved for future use. Should always be 0. - - - - radius - Outer radius of label - - - hole - Radius of concentric hole - - - width - - If present, the label is clipped to the given width. - (Useful for "business card CDs"). - - - - height - - If present, the label is clipped to the given height. - (Useful for "business card CDs"). - - - - waste - - Amount of waste (over-print) to allow. This is useful - for minimizing alignment problems when using non-white - backgrounds (e.g. images). - - - - - - - -
      - CD Label Parameters - - - - - - -
      - - -
      - - - Markup-margin Node - - A Markup-margin describes a margin along - all edges of a label. - - - - - - - - - Property - - - Description - - - - - - size - - Size of the margin. I.e. the distance of the margin - line from the edge of the card/label. - - - - - - - - - - Markup-line Node - - A Markup-line describes a markup line. - - - - - - - - - Property - - - Description - - - - - - x1 - - x coordinate of 1st endpoint of the line segment. - - - - y1 - - y coordinate of 1st endpoint of the line segment. - - - - x2 - - x coordinate of 2nd endpoint of the line segment. - - - - y2 - - y coordinate of 2nd endpoint of the line segment. - - - - - - - - - - Markup-circle Node - - A Markup-circle describes a markup circle. - - - - - - - - - - Property - - - Description - - - - - - x0 - - x coordinate of circle origin (center). - - - - y0 - - y coordinate of circle origin (center). - - - - radius - Radius of circle. - - - - - - - - - Markup-rect Node - - A Markup-rect describes a markup rectangle. - - - - - - - - - - Property - - - Description - - - - - - x1 - - x coordinate of upper left corner of rectangle. - - - - y1 - - y coordinate of upper left corner of rectangle. - - - - w - - Width of rectangle. - - - - h - - Height of rectangle. - - - - r - Radius of rounded corners of rectangle. - - - - - - - - - Layout Node - - A label node may contain multiple Layout - children. If labels are arranged in a simple grid pattern, only - one layout is needed. However, if labels are arranged in multiple - grids, such as a running bond pattern, multiple - layout tags can be used. Note: a single label - can always be treated as a grid of one. - - - - - - - - - Property - - - Description - - - - - - nx - - Number of labels/cards across in the grid - (horizontal) - - - - ny - - Number of labels/cards up and down in the grid - (vertical) - - - - x0 - - Distance from left edge of sheet to the left edge of - the left column of cards/labels in the layout. - - - - y0 - - Distance from the top edge of sheet to the top edge of - the top row of labels/cards in the layout. - - - - dx - Horizontal pitch of grid. - - - dy - Vertical pitch of grid. - - - - - - -
      - Layout Parameters - - - - - - -
      - - -
      - - - Alias Node - - An Alias node provides the name of a - product with the same size and layout characteristics as the - parent template. - - - - - - - - - Property - - - Description - - - - - - brand - - The brand or manufacturer of the equivalent product. - - - - part - - The part number or name of the equivalent product. - - - - - - - - -
      - - - - - - - - - - - - - - About &app; - &app; was written by Jim Evins - (evins@snaught.com). To find more information about - &app;, please visit the - gLabels Web - page. - - To report a bug or make a suggestion regarding this application or - this manual, follow the directions at the - &app; Contact Page. - - - This program is distributed under the terms of the GNU - General Public license as published by the Free Software - Foundation; either version 2 of the License, or (at your option) - any later version. A copy of this license can be found at this - link, or in the file - COPYING included with the source code of this program. - - - - - - - -
      diff --git a/help/C/index.page b/help/C/index.page new file mode 100644 index 00000000..de674c3c --- /dev/null +++ b/help/C/index.page @@ -0,0 +1,64 @@ + + + + gLabels label and business card designer + gLabels label and business card designer + + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Share Alike 3.0

      +
      +
      + + + <media type="image" mime="image/png" src="figures/glabels-logo.png">gLabels logo</media> + gLabels Manual + + +

      + The gLabels application is a lightweight program for creating labels and + business cards for the GNOME desktop environment. It is designed to work with + various laser/ink-jet peel-off label and business card sheets that you'll find + at most office supply stores. +

      + +

      + gLabels can be used to design address labels, name tags, price tags, + cd/dvd labels, or just about anything else that is organized in a regular + pattern on a sheet of paper. Labels (or cards) can contain text, images, lines, + shapes, and barcodes. gLabels also includes a document-merge + feature which lets you print a unique label for each record from an external + data source, such as a CSV file or an Evolution address book. +

      + +
      + <app>gLabels</app> main window + gLabels main window + +

      gLabels main window.

      +
      +
      + +
      + Usage +
      + +
      + Document Merging +
      + +
      + Advanced usage +
      + +
      diff --git a/help/C/labelprop.page b/help/C/labelprop.page new file mode 100644 index 00000000..d77e2bcd --- /dev/null +++ b/help/C/labelprop.page @@ -0,0 +1,34 @@ + + + + + + + How to change the properties of a label or business card. + + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Share Alike 3.0

      +
      +
      + + To change label properties + +

      To change the media type and/or orientation of a label, choose + File + Properties to display the + Label properties dialog. Select the + new media type and orientation for the document, then click + OK.

      + +
      diff --git a/help/C/legal.xml b/help/C/legal.xml deleted file mode 100644 index ac97e1de..00000000 --- a/help/C/legal.xml +++ /dev/null @@ -1,76 +0,0 @@ - - - Permission is granted to copy, distribute and/or modify this - document under the terms of the GNU Free Documentation - License (GFDL), Version 1.1 or any later version published - by the Free Software Foundation with no Invariant Sections, - no Front-Cover Texts, and no Back-Cover Texts. You can find - a copy of the GFDL at this link or in the file COPYING-DOCS - distributed with this manual. - - This manual is part of a collection of GNOME manuals - distributed under the GFDL. If you want to distribute this - manual separately from the collection, you can do so by - adding a copy of the license to the manual, as described in - section 6 of the license. - - - - Many of the names used by companies to distinguish their - products and services are claimed as trademarks. Where those - names appear in any GNOME documentation, and the members of - the GNOME Documentation Project are made aware of those - trademarks, then the names are in capital letters or initial - capital letters. - - - - DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT ARE PROVIDED - UNDER THE TERMS OF THE GNU FREE DOCUMENTATION LICENSE - WITH THE FURTHER UNDERSTANDING THAT: - - - - DOCUMENT IS PROVIDED ON AN "AS IS" BASIS, - WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR - IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES - THAT THE DOCUMENT OR MODIFIED VERSION OF THE - DOCUMENT IS FREE OF DEFECTS MERCHANTABLE, FIT FOR - A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE - RISK AS TO THE QUALITY, ACCURACY, AND PERFORMANCE - OF THE DOCUMENT OR MODIFIED VERSION OF THE - DOCUMENT IS WITH YOU. SHOULD ANY DOCUMENT OR - MODIFIED VERSION PROVE DEFECTIVE IN ANY RESPECT, - YOU (NOT THE INITIAL WRITER, AUTHOR OR ANY - CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY - SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER - OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS - LICENSE. NO USE OF ANY DOCUMENT OR MODIFIED - VERSION OF THE DOCUMENT IS AUTHORIZED HEREUNDER - EXCEPT UNDER THIS DISCLAIMER; AND - - - - UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL - THEORY, WHETHER IN TORT (INCLUDING NEGLIGENCE), - CONTRACT, OR OTHERWISE, SHALL THE AUTHOR, - INITIAL WRITER, ANY CONTRIBUTOR, OR ANY - DISTRIBUTOR OF THE DOCUMENT OR MODIFIED VERSION - OF THE DOCUMENT, OR ANY SUPPLIER OF ANY OF SUCH - PARTIES, BE LIABLE TO ANY PERSON FOR ANY - DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR - CONSEQUENTIAL DAMAGES OF ANY CHARACTER - INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS - OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR - MALFUNCTION, OR ANY AND ALL OTHER DAMAGES OR - LOSSES ARISING OUT OF OR RELATING TO USE OF THE - DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT, - EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF - THE POSSIBILITY OF SUCH DAMAGES. - - - - - - diff --git a/help/C/license.page b/help/C/license.page new file mode 100644 index 00000000..312b6cfa --- /dev/null +++ b/help/C/license.page @@ -0,0 +1,59 @@ + + + + + + Legal information. + + + License +

      + + This work is distributed under a CreativeCommons Attribution-Share Alike + 3.0 Unported license. +

      +

      + You are free: +

      + + + <em>To share</em> +

      To copy, distribute and transmit the work.

      +
      + + <em>To remix</em> +

      To adapt the work.

      +
      +
      +

      + Under the following conditions: +

      + + + <em>Attribution</em> +

      + You must attribute the work in the manner specified by the author or + licensor (but not in any way that suggests that they endorse you or + your use of the work). +

      +
      + + <em>Share Alike</em> +

      + If you alter, transform, or build upon this work, you may distribute the + resulting work only under the same, similar or a compatible license. +

      +
      +
      +

      + + For the full text of the license, see the + CreativeCommons website, + or read the full Commons Deed. +

      +
      diff --git a/help/C/mancreate.page b/help/C/mancreate.page new file mode 100644 index 00000000..34c681ee --- /dev/null +++ b/help/C/mancreate.page @@ -0,0 +1,774 @@ + + + + + + + Create your templates manually. + + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Share Alike 3.0

      +
      +
      + + Manually creating new templates + + + + + + +

      This page is a reference guide to manually creating gLabels templates. + gLabels templates are defined in simple XML files as described in the DTD: + glabels-2.3.dtd + (this DTD also describes other XML files used by gLabels).

      + +

      Manually created template files should be placed in the ${HOME}/.glabels + and be named with a .template extension.

      + + +

      gLabels searches for templates in several other locations as defined here:

      + + + + + + + + + + + + + + + + + + + + + +

      Location

      Description

      ${prefix}/share/libglabels-3.0/templates

      Predefined templates distributed with gLabels.

      +

      ${prefix} is usually /usr or /usr/local, + depending on where gLabels was installed.

      ${XDG_CONFIG_HOME}/libglabels/templates

      User defined templates created with the gLabels Template Designer. + Do not put manually created templates in this directory.

      +

      If ${XDG_CONFIG_HOME} is not defined, it defaults to + ${HOME}/.config.

      ${HOME}/.glabels

      User defined templates that have been created manually should be placed in this + directory. + Older versions of the gLabels Template Designer (prior to 3.0) + would also put templates in this directory.

      +
      + +

      Completed template files can be sent to the + gLabels template + mailing list + for possible inclusion in future versions of gLabels.

      +
      + + + + + + + + +
      + Assumptions/caveats + + +

      A sheet contains only one size of label or card (if a sheet + contains more than one size of item, it can be split into + multiple templates for multiple pass printing)

      +
      + +

      Distances can be expressed in units of pt, + in, mm, + cm, or pc. For example: + "1.0in" or "2.54cm". If no + units are specified, computer points (pt) will + be assumed (1 pt = + 1/72 in = 0.352778 mm). +

      +
      +
      +
      + + + + + + + + + +
      + Template Files + +

      A template file contains a single Glabels-templates top-level + node.

      + + +<?xml version="1.0"?> +<Glabels-templates> + + ...templates... + +</Glabels-templates> + + + Example Template + Example gLabels template file containing a single + Template node. + +<?xml version="1.0"?> +<Glabels-templates> + + <Template brand="Avery" part="8160" size="US-Letter" description="Mailing Labels"> + <Meta category="label"/> + <Meta category="mail"/> + <Meta product_url="http://www.avery.com/avery/en_us/"/> + <Label-rectangle id="0" width="189pt" height="72pt" round="5pt"> + <Markup-margin size="5pt"/> + <Layout nx="3" ny="10" x0="11.25pt" y0="36pt" dx="200pt" dy="72pt"/> + </Label-rectangle> + </Template> + +</Glabels-templates> + + +
      + + + + + + + + + +
      + <span its:translate="no">Template</span> Node + +

      A Template node describes a single + stationery product. It must contain one instance of any type of Label node + (Label-rectangle, + Label-round, or + Label-cd).

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      Property

      Description

      brand

      Brand or manufacturer of stationery product. E.g. "Avery"

      part

      Part number or name of stationery product. E.g. "8160"

      size

      Size of sheet. + E.g., "US-Letter", "A4", ... +

      description

      Description of stationery product. E.g, "Mailing Labels."

      _description

      Translatable description of stationery product. E.g, "Mailing Labels." + (Only useful for predefined templates)

      width

      Page width. Only valid if size="Other"

      height

      Page height. Only valid if size="Other"

      equiv

      Equivalent part number. If this property is present, the template + is a clone of another template of the same brand. The template will + inherit all properties, except brand and name from the other template. + This equiv property must refer to a previously defined template - + gLabels does not currently support forward references.

      + +
      + + + + + + + + +
      + <span its:translate="no">Meta</span> Node + +

      A Meta node contains some additional + information about the template. A Template + node may contain zero or more Meta nodes.

      + + + + + + + + + + + + + + + + +

      Subnode

      Description

      category

      A category for the template. + A template can belong to multiple categories by simply adding multiple + Meta nodes to the parent + Template node. + Template categories are used by the gLabels New Label + Dialog to filter the results of template searches.

      + +

      The value of this category must match a predefined category ID defined in + the file ${prefix}/libglabels-3.0/templates/categories.xml. + Currently defined category IDs include:

      + +

      label

      +

      round-label

      +

      elliptical-label

      +

      square-label

      +

      rectangle-label

      +

      card

      +

      business-card

      +

      media

      +

      mail

      +

      foldable

      +

      photo

      +
      + + +

      product_url

      A URL pointing to the vendor's webpage for the specific product, if available.

      + +

      Suggestions for additional categories can be sent to the + gLabels developer's + mailing list.

      +

      Product URLs may be of limited use, because they may not be permanent.

      +
      + +
      + + + + + + + + +
      + <span its:translate="no">Label-rectangle</span> Node + +

      A Label-rectangle node describes the + dimensions of a single label or business card that is rectangular + in shape (may have rounded edges).

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      Property

      Description

      id

      Reserved for future use. Should always be 0.

      width

      Width of label/card

      height

      Heigth of label/card

      round

      Radius of corners. For items with square edges (business cards), + the radius should be 0.

      x_waste

      Amount of horizontal waste (over-print) to allow. This is useful + for minimizing alignment problems when using non-white + backgrounds (e.g. images).

      y_waste

      Amount of vertical waste (over-print) to allow. This is useful + for minimizing alignment problems when using non-white + backgrounds (e.g. images).

      + + +
      + Label-rectangle parameters + +

      Label-rectangle parameters

      +
      +
      + + +
      + + + + + + + + +
      + <span its:translate="no">Label-ellipse</span> Node + +

      A Label-ellipse node describes the + dimensions of a single label or business card that is elliptic + in shape.

      + + + + + + + + + + + + + + + + + + + + + + + + +

      Property

      Description

      id

      Reserved for future use. Should always be 0.

      width

      Width of the ellipse

      height

      Heigth of the ellipse

      waste

      Amount of waste (over-print) to allow. This is useful + for minimizing alignment problems when using non-white + backgrounds (e.g. images).

      + + +
      + Label-ellipse parameters + +

      Label-ellipse parameters

      +
      +
      + + +
      + + + + + + + + +
      + <span its:translate="no">Label-round</span> Node + +

      A Label-round node describes the dimensions + of a simple round label (not a CD).

      + + + + + + + + + + + + + + + + + + + + +

      Property

      Description

      id

      Reserved for future use. Should always be 0.

      radius

      Radius (1/2 diameter) of label

      waste

      Amount of waste (over-print) to allow. This is useful + for minimizing alignment problems when using non-white + backgrounds (e.g. images).

      + + +
      + Label-ellipse parameters + +

      Label-ellipse parameters

      +
      +
      + + +
      + + + + + + + + +
      + <span its:translate="no">Label-cd</span> Node + +

      A Label-cd node describes the dimensions + of a CD, DVD, or business card CD.

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      Property

      Description

      id

      Reserved for future use. Should always be 0.

      radius

      Outer radius of label

      hole

      Radius of concentric hole

      width

      If present, the label is clipped to the given width. + (Useful for "business card CDs").

      height

      If present, the label is clipped to the given height. + (Useful for "business card CDs").

      waste

      Amount of waste (over-print) to allow. This is useful + for minimizing alignment problems when using non-white + backgrounds (e.g. images).

      + + +
      + Label-cd parameters + +

      CD label parameters

      +
      +
      + + +
      + + + + + + + + +
      + <span its:translate="no">Markup</span> Nodes + +

      Templates may contain optional markup nodes. These nodes are used to describe + a simple set of markup lines that are visible in the glabels drawing canvas, but + not visible when printed. These lines can represent margins, fold lines, center lines, + special areas, or other helpful hints to the user of a template.

      + + + + + +
      + <span its:translate="no">Markup-margin</span> Node + +

      A Markup-margin describes a margin along + all edges of a label.

      + + + + + + + + + + + + +

      Property

      Description

      size

      Size of the margin. I.e. the distance of the margin + line from the edge of the card/label.

      +
      + + + + + + + + +
      + <span its:translate="no">Markup-line</span> Node + +

      A Markup-line node describes a markup line.

      + + + + + + + + + + + + + + + + + + + + + + + + +

      Property

      Description

      x1

      x coordinate of 1st endpoint of the line segment.

      y1

      y coordinate of 1st endpoint of the line segment.

      x2

      x coordinate of 2st endpoint of the line segment.

      y2

      y coordinate of 2st endpoint of the line segment.

      +
      + + + + + + + + +
      + <span its:translate="no">Markup-circle</span> Node + +

      A Markup-circle describes a markup circle.

      + + + + + + + + + + + + + + + + + + + + +

      Property

      Description

      x0

      x coordinate of circle origin (center).

      y0

      y coordinate of circle origin (center).

      radius

      Radius of circle.

      +
      + + + + + + + + +
      + <span its:translate="no">Markup-rect</span> Node + +

      A Markup-rect describes a markup rectangle.

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      Property

      Description

      x1

      x coordinate of upper left corner of rectangle.

      y1

      y coordinate of upper left corner of rectangle.

      w

      Width of rectangle.

      h

      Height of rectangle.

      r

      Radius of rounded corners of rectangle.

      +
      + + + + + + + + +
      + <span its:translate="no">Markup-ellipse</span> Node + +

      A Markup-ellipse describes a markup ellipse.

      + + + + + + + + + + + + + + + + + + + + + + + + +

      Property

      Description

      x1

      x coordinate of upper left corner of ellipse.

      y1

      y coordinate of upper left corner of ellipse.

      w

      Width of ellipse.

      h

      Height of ellipse.

      +
      + + + + +
      + + + + + + + + +
      + <span its:translate="no">Layout</span> Node + +

      A label node may contain multiple Layout + children. If labels are arranged in a simple grid pattern, only + one layout is needed. However, if labels are arranged in multiple + grids, such as a running bond pattern, multiple + Layout tags can be used.

      + +

      A single label can always be treated as a grid of one.

      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      Property

      Description

      nx

      Number of labels/cards across in the grid (horizontal)

      ny

      Number of labels/cards across in the grid (vertical)

      x0

      Distance from left edge of sheet to the left edge of + the left column of cards/labels in the layout.

      y0

      Distance from the top edge of sheet to the top edge of + the top row of labels/cards in the layout.

      dx

      Horizontal pitch of grid.

      dy

      Vertical pitch of grid.

      + + +
      + Layout parameters + +

      Layout Parameters

      +
      +
      + + +
      + + + + + +
      diff --git a/help/C/merge-ex1.page b/help/C/merge-ex1.page new file mode 100644 index 00000000..29ea44c7 --- /dev/null +++ b/help/C/merge-ex1.page @@ -0,0 +1,105 @@ + + + + + + + Create name tags from a CSV file. + + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Share Alike 3.0

      +
      +
      + + Example 1: Name Tags + +

      In this example we are organizing an orientation party for the new + crew members of our ship. We have a list of freshman crew members that we + created in gnumeric and exported as the following + CSV file. We could have created this file by using a text editor, but heck it + is the 23rd century.

      + + +Name,Department,SN +"Jim Kirk",Management,"SC937-0176 CEC" +"Mr. Spock",Sciences,S179-276SP +"Leonard McCoy",Medicine,unknown +"Montgomery Scott",Engineering,SE-197-54T + + +

      In gLabels we have created a new glabels + document using the Avery 5395 "Name Badge Labels" template. Next we use the + Objects + Merge Properties menu item to display + the merge properties dialog. We use this dialog to + select the source type (in our case CSV with keys on line 1) and the merge + source (filename) as shown.

      + + + +

      Merge properties dialog

      +
      + + +

      We can also view each record in more detail by clicking on the appropriate + expander (the little triangles) as shown. Once we are satisfied with the + selections in this dialog we click OK to accept the + changes.

      + +

      Now we start adding objects to our glabels document as shown.

      + + + +

      Adding objects

      +
      + + +

      In this example we have added three text objects and a barcode object. The + first text object contains only simple literal text ("Hello, my name is"). The + second text object contains a single merge field ("${Name}") corresponding to the + first field of a record (first column of a line) which contains the new crew + member's full name. The third text field contains both literal text + ("Department: ") followed by a single merge field ("${Department}") corresponding to + the second field or the crew member's department. The barcode object is + configured to use field (or key) "SN" which contains our crew member's + starfleet serial number.

      + +

      Now we can print our name tags by selecting the + File + Print menu item. This will display + print dialog as shown below.

      + + + +

      Printing name tags

      +
      + + +

      Just to make sure our labels are going to look okay, we select the + Print outlines option and click + Print Preview. This will display a print preview dialog + as shown below.

      + + + +

      Name tags preview

      +
      + + +

      Everything looks good, so we can now load up our printer with + the appropriate label stock, print our name tags and start beaming our guests + aboard.

      + + +
      diff --git a/help/C/merge-ex2.page b/help/C/merge-ex2.page new file mode 100644 index 00000000..4dfef4fa --- /dev/null +++ b/help/C/merge-ex2.page @@ -0,0 +1,108 @@ + + + + + + + Create address labels from a CSV file. + + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Share Alike 3.0

      +
      +
      + + Example 2: Address labels + +

      In this example we are going to throw a party and need to print mailing + address labels for our invitations. We have a list of our closest friends + that we created in gnumeric and exported as the + following CSV file. It should be noted that not everyone has a middle initial or + a two line address.

      + + +LAST,FIRST,MI,ADDR1,ADDR2,CITY,STATE,ZIP +,,,,,,, +Critter,Ess,S,"123 Faux St.",,Alexandria,VA,22310 +Doe,John,,"Apt 1X","451 Mystery St.",Trenton,NJ,08601 +Summers,Joyce,,"1630 Revello Dr",,Sunnydale,CA,95037 +McGarret,Steve,O,"404 Piikoi Street",,Honolulu,HI,96813 +Kramer,Cosmo,,"Apt 5B","129 W. 81 St.","New York",NY,10024-7207 + + +

      In glabels we have created a new glabels + document using the Avery 5512 "Address Labels" template. Next we use the + Objects + Merge Properties menu item to display + the merge properties dialog. We use this dialog to + select the source type (in our case CSV with keys on line 1) and the merge + source (filename) as shown.

      + + + +

      Merge properties dialog

      +
      + + +

      Before applying the merge source, we uncheck the first record since it only + contains empty fields. It is an artifact of our original gnumeric spreadsheet + and would simply waste our first label. We could also unselect + any other records that we didn't want to print a label for.

      + +

      We can also view each record in more detail by clicking on the appropriate + expander (the little triangles) as shown. Once we are satisfied with the + selections in this dialog we click OK to accept the + changes.

      + +

      Now we start adding objects to our glabels document as shown.

      + + + +

      Adding objects

      +
      + + +

      In this example we have a single text object. This text object contains + all of our merge fields organized on multiple lines as a mailing address. + Notice that fields ${ADDR1} and ${ADDR2} are each + located with no other text on their own lines. When + glabels encounters a field as the only text on + a line, it will not expand the line if the field is empty.

      + +

      Now we can print our address labels by selecting the + File + Print menu item. This will display + print dialog as shown below.

      + + + +

      Printing address labels

      +
      + + +

      Just to make sure our labels are going to look okay, we select the + Print outlines option and click + Print Preview. This will display a print preview dialog + as shown below.

      + + + +

      Address labels preview

      +
      + + +

      Everything looks good, so we can now load up our printer with + the appropriate label stock, print our address labels and start mailing + our party invitations.

      + +
      diff --git a/help/C/merge-ex3.page b/help/C/merge-ex3.page new file mode 100644 index 00000000..6505936b --- /dev/null +++ b/help/C/merge-ex3.page @@ -0,0 +1,109 @@ + + + + + + + Create address labels from the Evolution address book entries. + + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Share Alike 3.0

      +
      +
      + + Example 3: Address Labels Using the <app>Evolution</app> Addressbook + +

      Our last party was a great success, and now we need to print mailing + address labels for the invitations to a new one. To simplify this, we can use + the Evolution addressbook, because the address + data of all our friends is stored there.

      + + +

      Depending on how your copy of gLabels was packaged, this option could be unavailable. + Support for the Evolution addressbook will only be available + if the evolution-data-server and its development files + were present when gLabels was built. Please keep this in mind if you build gLabels + directly from source.

      + +

      If the gLabels package from your distribution lacks this support, + you may wish to contact the package maintainer or file a bug against the package + to request it.

      +
      + +

      In glabels we have created a new gLabels + document using the Avery 5512 "Address Labels" template. Next we use the + Objects + Merge Properties menu item to display + the Merge properties dialog. We use this dialog to + select the source type (in our case Data from default Evolution + addressbook) as shown.

      + + + +

      Merge properties dialog

      +
      + + +

      Once we have chosen Data from default Evolution addressbook + as our merge source, we will get a full list of its content. Initially, + all entries are checked. Assuming we were planning a really big party, we could + leave this selection untouched (but let's keep our budget in mind). We will now select or + unselect certain entries by clicking on the appropriate checkboxes, or we could use + the Select all and Unselect all + buttons to activate or deactivate all entries in the address book.

      + +

      We can also view each entry in more detail by clicking on the appropriate + expander (the little triangles) as shown. Once we are satisfied with the + selections in this dialog, we will click the OK button to + accept the changes.

      + +

      Now we start adding objects to our glabels document as shown.

      + + + +

      Adding objects

      +
      + + +

      In this example we have a single text object again. This text object contains + all of our merge fields organized on multiple lines as a mailing address.

      + +

      Now we can print our address labels by selecting the + File + Print menu item. This will display + the print dialog as shown below.

      + + + +

      Printing address labels

      +
      + + +

      Just to make sure our labels are going to look okay, we select the + Print outlines option and click + Print Preview. This will display a print preview dialog + as shown below.

      + + + +

      Addess labels preview

      +
      + + +

      Everything looks good, so we can now load up our printer with + the appropriate label stock, print our address labels and start mailing + our party invitations.

      + + +
      diff --git a/help/C/merge-ex4.page b/help/C/merge-ex4.page new file mode 100644 index 00000000..52951131 --- /dev/null +++ b/help/C/merge-ex4.page @@ -0,0 +1,28 @@ + + + + + + + Create address labels from a vCard file. + + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Share Alike 3.0

      +
      +
      + + Example 4: Address Labels Using a vCard file + + +
      diff --git a/help/C/merge.page b/help/C/merge.page new file mode 100644 index 00000000..033ebd0e --- /dev/null +++ b/help/C/merge.page @@ -0,0 +1,37 @@ + + + + + + + Merge a data source to create multiple documents. + + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Share Alike 3.0

      +
      +
      + + Document merge tutorial + +

      Document Merge (sometimes called "Mail Merge") is a powerful + feature that allows a unique label or card to be printed for each + record in an external data source. It is however, the most mis-understood + feature of glabels. The following examples + will step through a couple of common tasks using the document merge + feature.

      + +
      +
      + +
      diff --git a/help/C/mergefeatures.page b/help/C/mergefeatures.page new file mode 100644 index 00000000..e3255275 --- /dev/null +++ b/help/C/mergefeatures.page @@ -0,0 +1,65 @@ + + + + + + + What you may expect from a document merge. + + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Share Alike 3.0

      +
      +
      + + Performing a document merge + +

      Document Merge (sometimes called "Mail Merge") is a powerful + feature that allows a unique label or card to be printed for each + record in an external data source.

      + +

      The first step to performing a document merge is to prepare + a source document that contains your merge data. This data could + be mailing addresses or any other data that you wish to create + unique labels or cards for. Currently back-ends only exist for + text files and the evolution data server -- others are planned. The currently + supported text-file format is very simple: each line is a record; + fields are delimited by commas (CSV), tabs, or colons; and newlines + can be embedded into fields by using the "\n" entity. This file + could be created using any text editor or could be created by + another program or script. A common way of creating CSV files is + to export them from a spreadsheet program.

      + +

      A label must then be configured to "point at" this data file. + To configure the merge properties of a document, choose + Objects + Merge Properties menu item + to display the merge properties dialog. This + dialog is used to select the exact data file format and file + name (location) of the merge data.

      + +

      Finally, once the label has been configured for a data file, + field keys can be inserted into text objects and used as source + or data for barcode objects and image filenames for image objects. + See for more information + on using merge data for these object types.

      + +

      Now that your label is configured, gLabels will print a unique + label for each record in your source document -- substituting fields + from each record for field keys in the all text, barcode, and + image objects.

      + +

      See for a detailed + tutorial on the document merge feature.

      + +
      diff --git a/help/C/multifile.page b/help/C/multifile.page new file mode 100644 index 00000000..acfa057b --- /dev/null +++ b/help/C/multifile.page @@ -0,0 +1,39 @@ + + + + + + + How to open multiple files at once by using the command line. + + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Share Alike 3.0

      +
      +
      + + To open multiple files from the command line + +

      You can run gLabels from a command line + and open a single file or multiple files. To open multiple files from + a command line, type the following command, then press + Return:

      + +

      glabels + file1.glabels file2.glabels file3.glabels +

      + +

      When the application starts, the files that you specify are + displayed in separate gLabels windows.

      + +
      diff --git a/help/C/newlabel.page b/help/C/newlabel.page new file mode 100644 index 00000000..4b2809eb --- /dev/null +++ b/help/C/newlabel.page @@ -0,0 +1,35 @@ + + + + + + + Create a new label or card in gLabels. + + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Share Alike 3.0

      +
      +
      + + To create a new label or card + +

      To create a new label or business card, choose + FileNew + to display the New Label or Card dialog. Select + the media type and orientation for the new document, + then click OK. A new document is + displayed in the display area of the gLabels + window.

      + +
      diff --git a/help/C/printfile.page b/help/C/printfile.page new file mode 100644 index 00000000..f55a6c02 --- /dev/null +++ b/help/C/printfile.page @@ -0,0 +1,118 @@ + + + + + + + How to print your labels and cards. + + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Share Alike 3.0

      +
      +
      + + To print labels and cards + +

      To print labels or cards, choose + FilePrint + to display the Print dialog. + Once print options have been selected, click Print + to print the labels or cards. To simply preview the results, + click Print Preview instead.

      + +

      The Print dialog allows you to specify the + following print options:

      + +
      + The Labels Tab of the Print Dialog + +
      + Print control (Simple) + +

      For simple labels or cards (no document merge), the job + tabbed section contains the following copy controls.

      + + + +

      Print Copy Controls

      +
      + + +

      The number of copies of the label can be selected by + choosing the number of full sheets to print, or a specific + subset of labels on a single sheet.

      + +

      The mini-preview can also be used to graphically select + the subset of labels by clicking the first label on the + mini-preview and dragging to the last label.

      + +
      + +
      + Print control (Merge) + +

      For labels or cards using the document merge (also known + as "mail merge") capability, the job tabbed section contains + the following merge controls instead of copy controls.

      + + + +

      Print Document Merge Controls

      +
      + + +

      The total number of labels or cards printed is the + product of the number of records in the merge source and + the number of copies selected. If multiple copies are + selected, these can be either collated (copies of the + same record grouped together) or un-collated (one copy + each record is printed before next copy).

      + +

      Printing can begin on any label on the first sheet. + This can be selected with the Start on + label spinbutton.

      + +

      The mini-preview can also be used to graphically select + this first label, by clicking on the desired label in the + mini-preview.

      + +
      + +
      + Options +

      The following options can also be selected.

      + + +

      print outlines

      +

      Print outlines of labels. This option is useful for + dry-runs, to test printer alignment.

      +
      + +

      print in reverse

      +

      Prints the labels as mirror images. This option is + useful for printing on clear labels that will be viewed + from the reverse side (e.g. in a car window).

      +
      + +

      print crop marks

      +

      Prints crop marks along the edge of the sheet. + This option is useful for printing on blank stock, to + be cut after printing. This option does not work well + with all templates.

      +
      +
      +
      +
      + +
      diff --git a/help/C/select.page b/help/C/select.page new file mode 100644 index 00000000..dc3fea77 --- /dev/null +++ b/help/C/select.page @@ -0,0 +1,129 @@ + + + + + + + How to select objects. + + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Share Alike 3.0

      +
      +
      + + To select objects + +

      A prerequisite for performing operations on objects is the + selection of individual objects or groups of objects. The + display area must be in the object selection mode to create new + selections, as indicated by an arrow cursor. The object + selection mode is selected by the + Objects + Select Mode menu item, + or the corresponding command on the Drawing + Toolbar.

      + +
      + Selecting a single object +

      A single object can be selected simply by clicking + on the desired object in the display area. + Once selected the object will be highlighted with a set of + resizing handles.

      +
      + +
      + Aggregate object selections +

      Multiple objects can be selected by first selecting the first + object as above and then by holding the Ctrl + key while selecting additional objects. + Individual objects can be added to an existing selection + at any time by holding the Ctrl key while + selecting the desired objects. All objects can also be + selected by using the Edit + Select All + menu item. All objects in an aggregate object selection will be + highlighted.

      +
      + +
      + Area selections + +

      Multiple objects can also be selected by clicking an empty + area and dragging to form a rectangular area. When released, + all objects contained in the area will form an aggregate + selection. An area selection can be used to add to an existing + selection by holding the Ctrl key while + performing the selection.

      + +
      + +
      + Unselecting objects + +

      Individual objects can be removed from an existing + selection by holding the Ctrl key while + clicking on a previously selected object. An entire selection + can be dismissed by using the + Edit Un-select All + menu item + or by simply clicking any empty space in the display area. + Once an object is unselected its highlight is removed.

      + +
      + +
      + Clipboard Commands + +

      Object selections can be manipulated using the standard clipboard + operations Cut, + Copy, Paste, + and Delete.

      + +
      + <gui>Cut</gui> (<keyseq><key>Ctrl</key><key>X</key></keyseq>) + +

      Moves selected objects to the clipboard. The objects are + then available for pasting back into the current document or + another document.

      + +
      + +
      + <gui>Copy</gui> (<keyseq><key>Ctrl</key><key>C</key></keyseq>) + +

      Copies selected objects to the clipboard without deleting + them. The objects are then available for pasting back into + the current document or another document.

      + +
      + +
      + <gui>Paste</gui> (<keyseq><key>Ctrl</key><key>V</key></keyseq>) + +

      Pastes objects from the clipboard into the current document. + gLabels can only paste objects from + another gLabels document.

      + +
      + +
      + <gui>Delete</gui> (<key>Del</key>) + +

      Deletes selected objects without placing them on the + clipboard.

      + +
      +
      + +
      diff --git a/help/C/skipfields.page b/help/C/skipfields.page new file mode 100644 index 00000000..d7030ab8 --- /dev/null +++ b/help/C/skipfields.page @@ -0,0 +1,57 @@ + + + + + + + How to skip blank address lines when doing a document merge. + + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Share Alike 3.0

      +
      +
      + + Skipping blank address lines + +

      This feature can be best described by a simple example. In the + following CSV file, column 5 (ADDR2) contains the second address line + for each record. This field is empty in records 1 and 2, but not in + record 3. (For this feature to work, the field must be completely + empty -- any text, including spaces will defeat this feature.)

      + + + LAST,FIRST,MI,ADDR1,ADDR2,CITY,STATE,ZIP + Summers,Joyce,,"1630 Revello Dr",,Sunnydale,CA,95037 + McGarret,Steve,O,"404 Piikoi Street",,Honolulu,HI,96813 + Kramer,Cosmo,,"Apt 5B","129 W. 81 St.","New York",NY,10024-7207 + + +

      In the following screenshot, a single multiline text object has been + created to format these addresses. Notice that ${ADDR2} representing + the second address line is on a line by itself. (Any additional text + on this line, including spaces would defeat this feature.)

      + + +

      Multi-line address

      +
      + +

      Printing this label results in the following output. Notice that the + line containing the ${ADDR2} field is completely skipped for the first + two records, without printing a blank line.

      + + +

      Output

      +
      + +
      diff --git a/help/Makefile.am b/help/Makefile.am index 3ed935f6..4177122c 100644 --- a/help/Makefile.am +++ b/help/Makefile.am @@ -2,25 +2,51 @@ include $(top_srcdir)/gnome-doc-utils.make dist-hook: doc-dist-hook -DOC_MODULE = glabels -DOC_ENTITIES = legal.xml -DOC_INCLUDES = -DOC_FIGURES = figures/glabels-template-cd.png \ - figures/glabels-template-label.png \ - figures/glabels-template-layout.png \ - figures/main-window-empty.png \ - figures/merge-ex1-1.png \ - figures/merge-ex1-2.png \ - figures/merge-ex1-3.png \ - figures/merge-ex1-4.png \ - figures/merge-ex2-1.png \ - figures/merge-ex2-2.png \ - figures/merge-ex2-3.png \ - figures/merge-ex2-4.png \ - figures/merge-ex3-1.png \ - figures/merge-ex3-2.png \ - figures/object-editor-sidebar.png \ - figures/print-copies.png \ - figures/print-merge.png +DOC_ID = $(GLABELS_BRANCH) +DOC_FIGURES = \ + figures/glabels-logo.png \ + figures/glabels-template-cd-label.png \ + figures/glabels-template-circle-label.png \ + figures/glabels-template-ellipse-label.png \ + figures/glabels-template-layout.png \ + figures/glabels-template-rect-label.png \ + figures/introduction-glabels-main-window.png \ + figures/main-window-empty.png \ + figures/merge-ex1-1.png \ + figures/merge-ex1-2.png \ + figures/merge-ex1-3.png \ + figures/merge-ex1-4.png \ + figures/merge-ex2-1.png \ + figures/merge-ex2-2.png \ + figures/merge-ex2-3.png \ + figures/merge-ex2-4.png \ + figures/object-editor-sidebar.png \ + figures/print-copies.png \ + figures/print-merge.png \ + figures/skip-fields-output.png \ + figures/skip-fields-screenshot.png -DOC_LINGUAS = cs de es fr +DOC_PAGES = \ + about.page \ + basicusage.page \ + createnew.page \ + customize.page \ + customtemplate.page \ + editprop.page \ + index.page \ + labelprop.page \ + license.page \ + mancreate.page \ + merge-ex1.page \ + merge-ex2.page \ + merge-ex3.page \ + merge-ex4.page \ + mergefeatures.page \ + merge.page \ + multifile.page \ + newlabel.page \ + printfile.page \ + select.page \ + skipfields.page + +DOC_LINGUAS = cs de es fr nl sl diff --git a/help/Makefile.in b/help/Makefile.in index c8b57ac2..2ce87bea 100644 --- a/help/Makefile.in +++ b/help/Makefile.in @@ -61,24 +61,32 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/gnome-doc-utils.make subdir = help ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ SOURCES = DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ +CAIRO_REQUIRED = @CAIRO_REQUIRED@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ @@ -92,6 +100,7 @@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@ DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ +DLLTOOL = @DLLTOOL@ DOC_USER_FORMATS = @DOC_USER_FORMATS@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ @@ -101,17 +110,23 @@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ +GDK_PIXBUF_CSOURCE = @GDK_PIXBUF_CSOURCE@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GLABELS_BRANCH = @GLABELS_BRANCH@ GLABELS_CFLAGS = @GLABELS_CFLAGS@ GLABELS_LIBS = @GLABELS_LIBS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ GLIB_REQUIRED = @GLIB_REQUIRED@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ GTKDOC_CHECK = @GTKDOC_CHECK@ +GTKDOC_MKPDF = @GTKDOC_MKPDF@ +GTKDOC_REBASE = @GTKDOC_REBASE@ GTK_REQUIRED = @GTK_REQUIRED@ -HAVE_XML_PARSE_HUGE = @HAVE_XML_PARSE_HUGE@ +GTK_UPDATE_ICON_CACHE = @GTK_UPDATE_ICON_CACHE@ HELP_DIR = @HELP_DIR@ HTML_DIR = @HTML_DIR@ INSTALL = @INSTALL@ @@ -127,31 +142,45 @@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ +LIBBARCODE_CFLAGS = @LIBBARCODE_CFLAGS@ +LIBBARCODE_LIBS = @LIBBARCODE_LIBS@ +LIBBARCODE_REQUIRED = @LIBBARCODE_REQUIRED@ LIBEBOOK_CFLAGS = @LIBEBOOK_CFLAGS@ LIBEBOOK_LIBS = @LIBEBOOK_LIBS@ LIBEBOOK_REQUIRED = @LIBEBOOK_REQUIRED@ +LIBGLABELS_API_VERSION = @LIBGLABELS_API_VERSION@ +LIBGLABELS_BRANCH = @LIBGLABELS_BRANCH@ LIBGLABELS_CFLAGS = @LIBGLABELS_CFLAGS@ LIBGLABELS_LIBS = @LIBGLABELS_LIBS@ -LIBGLABELS_VERSION_INFO = @LIBGLABELS_VERSION_INFO@ -LIBGLADE_REQUIRED = @LIBGLADE_REQUIRED@ -LIBGNOMEUI_REQUIRED = @LIBGNOMEUI_REQUIRED@ -LIBGNOME_REQUIRED = @LIBGNOME_REQUIRED@ +LIBGLBARCODE_API_VERSION = @LIBGLBARCODE_API_VERSION@ +LIBGLBARCODE_BRANCH = @LIBGLBARCODE_BRANCH@ +LIBGLBARCODE_CFLAGS = @LIBGLBARCODE_CFLAGS@ +LIBGLBARCODE_LIBS = @LIBGLBARCODE_LIBS@ +LIBIEC16022_CFLAGS = @LIBIEC16022_CFLAGS@ +LIBIEC16022_LIBS = @LIBIEC16022_LIBS@ +LIBIEC16022_REQUIRED = @LIBIEC16022_REQUIRED@ LIBOBJS = @LIBOBJS@ +LIBQRENCODE_CFLAGS = @LIBQRENCODE_CFLAGS@ +LIBQRENCODE_LIBS = @LIBQRENCODE_LIBS@ +LIBQRENCODE_REQUIRED = @LIBQRENCODE_REQUIRED@ +LIBRSVG_REQUIRED = @LIBRSVG_REQUIRED@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_REQUIRED = @LIBXML_REQUIRED@ +LIBZINT_CFLAGS = @LIBZINT_CFLAGS@ +LIBZINT_LIBS = @LIBZINT_LIBS@ +LIBZINT_REQUIRED = @LIBZINT_REQUIRED@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ -MYGAL_CFLAGS = @MYGAL_CFLAGS@ -MYGAL_LIBS = @MYGAL_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ @@ -164,9 +193,13 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PANGO_REQUIRED = @PANGO_REQUIRED@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ @@ -176,18 +209,15 @@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ -UPDATE_DESKTOP_DATABASE = @UPDATE_DESKTOP_DATABASE@ -UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ XGETTEXT = @XGETTEXT@ -XML_PARSE_HUGE_CFLAGS = @XML_PARSE_HUGE_CFLAGS@ -XML_PARSE_HUGE_LIBS = @XML_PARSE_HUGE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ @@ -207,6 +237,7 @@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ @@ -220,7 +251,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -305,6 +335,7 @@ _DOC_C_HTML = $(foreach f, \ _DOC_POFILES = $(if $(DOC_MODULE)$(DOC_ID), \ $(foreach lc,$(_DOC_REAL_LINGUAS),$(lc)/$(lc).po)) +_DOC_MOFILES = $(patsubst %.po,%.mo,$(_DOC_POFILES)) _DOC_LC_MODULES = $(if $(DOC_MODULE), \ $(foreach lc,$(_DOC_REAL_LINGUAS),$(lc)/$(DOC_MODULE).xml)) @@ -333,7 +364,7 @@ _DOC_SRC_FIGURES = \ $(foreach fig,$(_DOC_C_FIGURES), $(foreach lc,C $(_DOC_REAL_LINGUAS), \ $(wildcard $(srcdir)/$(lc)/$(patsubst C/%,%,$(fig))) )) -_DOC_POT = $(if $(DOC_MODULE),$(DOC_MODULE).pot) +_DOC_POT = $(if $(DOC_MODULE),$(DOC_MODULE).pot,$(if $(DOC_ID),$(DOC_ID).pot)) ################################################################################ _DOC_HTML_ALL = $(if $(filter html HTML,$(_DOC_REAL_FORMATS)), \ @@ -345,28 +376,54 @@ _clean_dsk = $(if $(_DOC_DSK_IN),clean-doc-dsk) _clean_lc = $(if $(_DOC_REAL_LINGUAS),clean-doc-lc) _clean_dir = $(if $(DOC_MODULE)$(DOC_ID),clean-doc-dir) _doc_install_dir = $(if $(DOC_ID),$(DOC_ID),$(DOC_MODULE)) -DOC_MODULE = glabels -DOC_ENTITIES = legal.xml -DOC_INCLUDES = -DOC_FIGURES = figures/glabels-template-cd.png \ - figures/glabels-template-label.png \ - figures/glabels-template-layout.png \ - figures/main-window-empty.png \ - figures/merge-ex1-1.png \ - figures/merge-ex1-2.png \ - figures/merge-ex1-3.png \ - figures/merge-ex1-4.png \ - figures/merge-ex2-1.png \ - figures/merge-ex2-2.png \ - figures/merge-ex2-3.png \ - figures/merge-ex2-4.png \ - figures/merge-ex3-1.png \ - figures/merge-ex3-2.png \ - figures/object-editor-sidebar.png \ - figures/print-copies.png \ - figures/print-merge.png - -DOC_LINGUAS = cs de es fr +DOC_ID = $(GLABELS_BRANCH) +DOC_FIGURES = \ + figures/glabels-logo.png \ + figures/glabels-template-cd-label.png \ + figures/glabels-template-circle-label.png \ + figures/glabels-template-ellipse-label.png \ + figures/glabels-template-layout.png \ + figures/glabels-template-rect-label.png \ + figures/introduction-glabels-main-window.png \ + figures/main-window-empty.png \ + figures/merge-ex1-1.png \ + figures/merge-ex1-2.png \ + figures/merge-ex1-3.png \ + figures/merge-ex1-4.png \ + figures/merge-ex2-1.png \ + figures/merge-ex2-2.png \ + figures/merge-ex2-3.png \ + figures/merge-ex2-4.png \ + figures/object-editor-sidebar.png \ + figures/print-copies.png \ + figures/print-merge.png \ + figures/skip-fields-output.png \ + figures/skip-fields-screenshot.png + +DOC_PAGES = \ + about.page \ + basicusage.page \ + createnew.page \ + customize.page \ + customtemplate.page \ + editprop.page \ + index.page \ + labelprop.page \ + license.page \ + mancreate.page \ + merge-ex1.page \ + merge-ex2.page \ + merge-ex3.page \ + merge-ex4.page \ + mergefeatures.page \ + merge.page \ + multifile.page \ + newlabel.page \ + printfile.page \ + select.page \ + skipfields.page + +DOC_LINGUAS = cs de es fr nl sl all: all-am .SUFFIXES: @@ -640,7 +697,7 @@ _db2omf ?= `$(PKG_CONFIG) --variable db2omf gnome-doc-utils` _malrng ?= `$(PKG_CONFIG) --variable malrng gnome-doc-utils` _chunks ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/chunks.xsl _credits ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/credits.xsl -_ids ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/ids.xsl +_ids ?= $(shell $(PKG_CONFIG) --variable xmldir gnome-doc-utils)/gnome/xslt/docbook/utils/ids.xsl @ENABLE_SK_TRUE@_skpkgdatadir ?= `scrollkeeper-config --pkgdatadir` @ENABLE_SK_TRUE@_sklocalstatedir ?= `scrollkeeper-config --pkglocalstatedir` @ENABLE_SK_TRUE@_skcontentslist ?= $(_skpkgdatadir)/Templates/C/scrollkeeper_cl.xml @@ -667,6 +724,9 @@ omf: $(_DOC_OMF_ALL) .PHONY: po po: $(_DOC_POFILES) +.PHONY: mo +mo: $(_DOC_MOFILES) + $(_DOC_POFILES): @if ! test -d $(dir $@); then \ echo "mkdir $(dir $@)"; \ @@ -694,16 +754,23 @@ $(_DOC_POFILES): $(_xml2po) -m $(_xml2po_mode) -e -u $(notdir $@) $$docs); \ fi +$(_DOC_MOFILES): %.mo: %.po + @if ! test -d $(dir $@); then \ + echo "mkdir $(dir $@)"; \ + mkdir "$(dir $@)"; \ + fi + msgfmt -o $@ $< + # FIXME: fix the dependancy # FIXME: hook xml2po up -$(_DOC_LC_DOCS) : $(_DOC_POFILES) +$(_DOC_LC_DOCS) : $(_DOC_MOFILES) $(_DOC_LC_DOCS) : $(_DOC_C_DOCS) if ! test -d $(dir $@); then mkdir $(dir $@); fi if [ -f "C/$(notdir $@)" ]; then d="../"; else d="$(_DOC_ABS_SRCDIR)/"; fi; \ - po="$(dir $@)$(patsubst %/$(notdir $@),%,$@).po"; \ - if [ -f "$${po}" ]; then po="../$${po}"; else po="$(_DOC_ABS_SRCDIR)/$${po}"; fi; \ + mo="$(dir $@)$(patsubst %/$(notdir $@),%,$@).mo"; \ + if [ -f "$${mo}" ]; then mo="../$${mo}"; else mo="$(_DOC_ABS_SRCDIR)/$${mo}"; fi; \ (cd $(dir $@) && \ - $(_xml2po) -m $(_xml2po_mode) -e -p "$${po}" \ + $(_xml2po) -m $(_xml2po_mode) -e -t "$${mo}" \ "$${d}C/$(notdir $@)" > $(notdir $@).tmp && \ cp $(notdir $@).tmp $(notdir $@) && rm -f $(notdir $@).tmp) .PHONY: pot @@ -729,12 +796,14 @@ clean-doc-omf: ; rm -f $(_DOC_OMF_DB) $(_DOC_OMF_HTML) clean-doc-dsk: ; rm -f $(_DOC_DSK_DB) $(_DOC_DSK_HTML) clean-doc-lc: rm -f $(_DOC_LC_DOCS) + rm -f $(_DOC_MOFILES) @list='$(_DOC_POFILES)'; for po in $$list; do \ if ! test "$$po" -ef "$(srcdir)/$$po"; then \ echo "rm -f $$po"; \ rm -f "$$po"; \ fi; \ done +# .xml2.po.mo cleaning is obsolete as of 0.18.1 and could be removed in 0.20.x @for lc in C $(_DOC_REAL_LINGUAS); do \ if test -f "$$lc/.xml2po.mo"; then \ echo "rm -f $$lc/.xml2po.mo"; \ diff --git a/help/cs/about.page b/help/cs/about.page new file mode 100644 index 00000000..4cef7855 --- /dev/null +++ b/help/cs/about.page @@ -0,0 +1,27 @@ + + + + + + + Informace o gLabels. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Share Alike 3.0

      +
      +
      + + O aplikaci <application>gLabels</application> + +

      Aplikaci gLabels napsal Jim Evins. Pokud o ní chcete najít více informací, navštivte prosím webovou stránku gLabels.

      +

      Pokud chcete oznámit chybu nebo navrhnout vylepšení vztahující se k této aplikaci nebo této příručce, postupujte dle instrukcí na kontaktní stránce gLabels.

      + +

      Tento program je šířen podle ustanovení GNU General Public License, vydávané Free Software Foundation; a to buď verze 3 této licence anebo (podle vlastního uvážení) kterékoliv pozdější verze. Kopii této licence naleznete pod tímto odkazem nebo v souboru COPYING přiloženém ke zdrojovým kódům tohoto programu.

      +
      diff --git a/help/cs/basicusage.page b/help/cs/basicusage.page new file mode 100644 index 00000000..4cfd6a9e --- /dev/null +++ b/help/cs/basicusage.page @@ -0,0 +1,62 @@ + + + + + + + Práce se soubory a ukončení aplikace. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Share Alike 3.0

      +
      +
      + + Základy používání + +
      + Jak otevřít soubor + +

      Soubor otevřete pomocí volby SouborOtevřít, která zobrazí dialogové okno Otevření souboru. Vyberte soubor, který chcete otevřít a klikněte na OK. Soubor se zobrazí v zobrazovací oblasti okna gLabels.

      + +

      V aplikaci gLabels můžete otevřít i více souborů naráz. Aplikace pro každý otevřený soubor vytvoří samostatné okno.

      + +

      Pro soubory nedávno otevřené k úpravě si aplikace zaznamenává cesty a názvy a tyto soubory potom zobrazuje v nabídce SouborOtevřít nedávné soubory.

      +
      + +
      + Jak zavřít soubor + +

      Když chcete aktuální dokument zavřít, zvolte SouborZavřít a zavřete tím aplikační okno. Pokud byl aktuální dokument změněn, zobrazí se potvrzovací dialogové okno, kde můžete dokument uložit nebo příkaz zrušit. Pokud je zavírané okno jediné otevřené, ukončí se celá aplikace gLabels.

      +
      + +
      + Jak uložit soubor + +

      Soubory můžete uložit následujícími způsoby:

      + + + +

      Pro uložení změn do stávajícího souboru, zvolte SouborUložit.

      + +
      + + +

      Pro uložení nového souboru nebo uložení stávajícího souboru pod novým názvem, zvolte SouborUložit jako. V dialogovém okně Uložení jako zadejte pro soubor název a klikněte na OK.

      + +
      +
      +
      + +
      + Jak ukončit <application>gLabels</application> + +

      Když chcete aplikaci gLabels ukončit, zvolte SouborUkončit. Odpovídá to zavření všech otevřených oken. Viz .

      +
      +
      diff --git a/help/cs/createnew.page b/help/cs/createnew.page new file mode 100644 index 00000000..b6b881c4 --- /dev/null +++ b/help/cs/createnew.page @@ -0,0 +1,57 @@ + + + + + + + Jak vytvořit nový objekt ve vašich dokumentech. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Share Alike 3.0

      +
      +
      + + Vytváření nových objektů + +

      Objekty se vytvářejí příslušným výběrem v podnabídce ObjektyVytvořit nebo na Liště kreslení. Zobrazovací oblast se přepne do režimu vytváření objektu, což je signalizováno patřičným ukazatelem. Do výchozího režimu výběru objektů se můžete vrátit, aniž byste nějaký objekt vytvořili, volbou ObjektyRežim výběru. Ukazatel pro zobrazovací oblast se změní zpět na výchozí šipku.

      + +

      Zde je popis režimu vytváření objektu pro jednotlivé typy objektů:

      + +
      + Text +

      Klikněte na požadované umístění levého horního rohu objektu text. Nový textový objekt se vytvoří s počátečním řetězcem „Text“. Jak tento text nebo další vlastnosti změnit uvádí .

      +
      + +
      + Obdélník +

      Klikněte na požadované umístění levého horního rohu objektu obdélník a táhněte k požadovanému umístění pravého dolního rohu. Když jednoduše kliknete na jednom místě, vytvoří se čtverec. Jak změnit vlastnosti obdélníku uvádí .

      +
      + +
      + Čára +

      Klikněte na požadované umístění levého horního konce objektu čára a táhněte k požadovanému umístění pravého dolního konce. Když jednoduše kliknete na jednom místě, vytvoří diagonální úsečka. Jak změnit vlastnosti čáry uvádí .

      +
      + +
      + Elipsa +

      Klikněte na požadované umístění levého horního rohu objektu elipsa a táhněte k požadovanému umístění pravého dolního rohu. Když jednoduše kliknete na jednom místě, vytvoří se kruh. Jak změnit vlastnosti elipsy uvádí .

      +
      + +
      + Obrázek +

      Klikněte na požadované umístění levého horního rohu objektu obrázku a táhněte k požadovanému umístění pravého dolního rohu. Když jednoduše kliknete na jednom místě, vytvoří se čtverec. Nový obrázkový objekt se vytvoří s jednoduchým počátečním obrázkem šachovnice. Jak změnit tento obrázek a další vlastnosti uvádí .

      +
      + +
      + Čárový kód +

      Klikněte na požadované umístění levého horního rohu objektu čárového kódu. Nový objekt čárového kódu se vytvoří jako čárový kód POSTNET s ukázkovými daty. Jak tato data nebo další vlastnosti změnit uvádí .

      +
      + +
      diff --git a/help/cs/cs.po b/help/cs/cs.po index 86f22876..67167037 100644 --- a/help/cs/cs.po +++ b/help/cs/cs.po @@ -1,768 +1,389 @@ # Czech translation for glabels help. # Copyright (C) 2010 glabels's COPYRIGHT HOLDER # This file is distributed under the same license as the glabels help. -# Marek Černocký , 2010. +# Marek Černocký , 2010, 2011. # msgid "" msgstr "" -"Project-Id-Version: glabels glabels_2_2\n" -"POT-Creation-Date: 2010-02-19 11:58+0000\n" -"PO-Revision-Date: 2010-02-19 21:31+0100\n" +"Project-Id-Version: glabels\n" +"POT-Creation-Date: 2011-04-03 14:39+0000\n" +"PO-Revision-Date: 2011-04-20 23:59+0200\n" "Last-Translator: Marek Černocký \n" "Language-Team: Czech \n" "MIME-Version: 1.0\n" +"Language: cs\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" #. When image changes, this message will be marked fuzzy or untranslated for you. #. It doesn't matter what you translate it to: it's not used at all. -#: C/glabels.xml:195(None) +#: C/skipfields.page:45(None) msgid "" -"@@image: 'figures/main-window-empty.png'; " -"md5=226b58f05f4171531066358a29cda1a7" +"@@image: 'figures/skip-fields-screenshot.png'; " +"md5=eef4a81f48546bd7d3753656a3df9cb7" msgstr "" -"@@image: 'figures/main-window-empty.png'; " -"md5=226b58f05f4171531066358a29cda1a7" +"@@image: 'figures/skip-fields-screenshot.png'; " +"md5=eef4a81f48546bd7d3753656a3df9cb7" #. When image changes, this message will be marked fuzzy or untranslated for you. #. It doesn't matter what you translate it to: it's not used at all. -#: C/glabels.xml:447(None) -msgid "" -"@@image: 'figures/print-copies.png'; md5=ebb4d08810a67cc9cd7ec6ddd7b52fb0" -msgstr "" -"@@image: 'figures/print-copies.png'; md5=ebb4d08810a67cc9cd7ec6ddd7b52fb0" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: C/glabels.xml:479(None) -msgid "" -"@@image: 'figures/print-merge.png'; md5=ffe6027513a10f7ba940c350c1dc5717" -msgstr "" -"@@image: 'figures/print-merge.png'; md5=ffe6027513a10f7ba940c350c1dc5717" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: C/glabels.xml:790(None) -msgid "" -"@@image: 'figures/object-editor-sidebar.png'; " -"md5=14eace177c1f5bfe36022acbbd6a9f0e" -msgstr "" -"@@image: 'figures/object-editor-sidebar.png'; " -"md5=14eace177c1f5bfe36022acbbd6a9f0e" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: C/glabels.xml:1231(None) -msgid "" -"@@image: 'figures/merge-ex1-1.png'; md5=55a97963022047cdad6aa198b5ed698e" -msgstr "" -"@@image: 'figures/merge-ex1-1.png'; md5=55a97963022047cdad6aa198b5ed698e" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: C/glabels.xml:1256(None) -msgid "" -"@@image: 'figures/merge-ex1-2.png'; md5=d03979f010e20e98532258edb20b1bc0" -msgstr "" -"@@image: 'figures/merge-ex1-2.png'; md5=d03979f010e20e98532258edb20b1bc0" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: C/glabels.xml:1284(None) -msgid "" -"@@image: 'figures/merge-ex1-3.png'; md5=94e382ccdfbc2fe5d320010d2ef10c61" -msgstr "" -"@@image: 'figures/merge-ex1-3.png'; md5=94e382ccdfbc2fe5d320010d2ef10c61" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: C/glabels.xml:1302(None) -msgid "" -"@@image: 'figures/merge-ex1-4.png'; md5=e72810bc3c191df6c8b2ad0cb1131021" -msgstr "" -"@@image: 'figures/merge-ex1-4.png'; md5=e72810bc3c191df6c8b2ad0cb1131021" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: C/glabels.xml:1348(None) -msgid "" -"@@image: 'figures/merge-ex2-1.png'; md5=4f062158be21bfadc4adfbdcf5d0206f" -msgstr "" -"@@image: 'figures/merge-ex2-1.png'; md5=4f062158be21bfadc4adfbdcf5d0206f" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: C/glabels.xml:1374(None) -msgid "" -"@@image: 'figures/merge-ex2-2.png'; md5=f69a7e0ae86f66b0d70d39a7757918fa" -msgstr "" -"@@image: 'figures/merge-ex2-2.png'; md5=f69a7e0ae86f66b0d70d39a7757918fa" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: C/glabels.xml:1399(None) C/glabels.xml:1513(None) -msgid "" -"@@image: 'figures/merge-ex2-3.png'; md5=f5134b9e911ebdd17d4a5b36a5ba56d0" -msgstr "" -"@@image: 'figures/merge-ex2-3.png'; md5=f5134b9e911ebdd17d4a5b36a5ba56d0" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: C/glabels.xml:1417(None) C/glabels.xml:1531(None) -msgid "" -"@@image: 'figures/merge-ex2-4.png'; md5=29a60e970cb026aecf75543203494b00" -msgstr "" -"@@image: 'figures/merge-ex2-4.png'; md5=29a60e970cb026aecf75543203494b00" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: C/glabels.xml:1464(None) -msgid "" -"@@image: 'figures/merge-ex3-1.png'; md5=b0c387b5fcfd730b2ae75172895ff5b8" -msgstr "" -"@@image: 'figures/merge-ex3-1.png'; md5=b0c387b5fcfd730b2ae75172895ff5b8" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: C/glabels.xml:1492(None) -msgid "" -"@@image: 'figures/merge-ex3-2.png'; md5=09f105e133657345e6e478a464e5b49f" -msgstr "" -"@@image: 'figures/merge-ex3-2.png'; md5=09f105e133657345e6e478a464e5b49f" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: C/glabels.xml:1767(None) -msgid "" -"@@image: 'figures/glabels-template-label.png'; " -"md5=b7db4090373462b8d45feb22d4cd5646" -msgstr "" -"@@image: 'figures/glabels-template-label.png'; " -"md5=b7db4090373462b8d45feb22d4cd5646" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: C/glabels.xml:1888(None) -msgid "" -"@@image: 'figures/glabels-template-cd.png'; " -"md5=145b49a5380de63ffa9451d2bbb81934" -msgstr "" -"@@image: 'figures/glabels-template-cd.png'; " -"md5=145b49a5380de63ffa9451d2bbb81934" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: C/glabels.xml:2150(None) -msgid "" -"@@image: 'figures/glabels-template-layout.png'; " -"md5=a8adcff0584be1f0275bc2a169a580df" -msgstr "" -"@@image: 'figures/glabels-template-layout.png'; " -"md5=a8adcff0584be1f0275bc2a169a580df" - -#: C/glabels.xml:31(title) -msgid "gLabels Manual V2.2.6" -msgstr "Příručka V2.2.6 k aplikaci gLabels" - -#: C/glabels.xml:33(para) -msgid "" -"User manual for the gLabels label and business " -"card creation program" -msgstr "" -"Uživatelská příručka k aplikaci gLabels na " -"vytváření etiket a vizitek" - -#: C/glabels.xml:38(year) -msgid "2003-2009" -msgstr "2003-2009" - -#: C/glabels.xml:39(holder) C/glabels.xml:42(publishername) -#: C/glabels.xml:93(para) C/glabels.xml:103(para) +#: C/skipfields.page:53(None) +msgid "" +"@@image: 'figures/skip-fields-output.png'; " +"md5=b64d1a7fdf0d37e9a6d93f0bc2f9fa0d" +msgstr "" +"@@image: 'figures/skip-fields-output.png'; " +"md5=b64d1a7fdf0d37e9a6d93f0bc2f9fa0d" + +#: C/skipfields.page:9(desc) +msgid "How to skip blank address lines when doing a document merge." +msgstr "Jak přeskakovat prázdné řádky v adresách při slučování dokumentu." + +#: C/skipfields.page:13(name) C/select.page:13(name) C/printfile.page:13(name) +#: C/newlabel.page:13(name) C/multifile.page:13(name) C/merge.page:13(name) +#: C/mergefeatures.page:13(name) C/merge-ex4.page:13(name) +#: C/merge-ex3.page:13(name) C/merge-ex2.page:13(name) +#: C/merge-ex1.page:13(name) C/mancreate.page:14(name) +#: C/labelprop.page:13(name) C/index.page:11(name) C/editprop.page:13(name) +#: C/customtemplate.page:13(name) C/customize.page:11(name) +#: C/createnew.page:13(name) C/basicusage.page:13(name) C/about.page:13(name) msgid "Jim Evins" msgstr "Jim Evins" -#: C/glabels.xml:2(para) -msgid "" -"Permission is granted to copy, distribute and/or modify this document under " -"the terms of the GNU Free Documentation License (GFDL), Version 1.1 or any " -"later version published by the Free Software Foundation with no Invariant " -"Sections, no Front-Cover Texts, and no Back-Cover Texts. You can find a copy " -"of the GFDL at this link or " -"in the file COPYING-DOCS distributed with this manual." -msgstr "" -"Je povoleno kopírovat, šířit a/nebo upravovat tento dokument za podmínek GNU " -"Free Documentation License, verze 1.1 nebo jakékoli další verze vydané " -"nadací Free Software Foundation; bez neměnných oddílů, bez textů předních " -"desek a bez textů zadních desek. Kopie této licence je zahrnuta v oddílu " -"jménem GNU Free Documentation " -"License nebo v souboru COPYING-DOCS dodávaném s touto příručkou." - -#: C/glabels.xml:12(para) -msgid "" -"This manual is part of a collection of GNOME manuals distributed under the " -"GFDL. If you want to distribute this manual separately from the collection, " -"you can do so by adding a copy of the license to the manual, as described in " -"section 6 of the license." -msgstr "" -"Tato příručka je součástí kolekce příruček GNOME, distribuovaných pod " -"licencí GNU FDL. Pokud chcete tento dokument šířit odděleně od kolekce, " -"musíte přiložit kopii licence dle popisu v sekci 6 dané licence." - -#: C/glabels.xml:19(para) -msgid "" -"Many of the names used by companies to distinguish their products and " -"services are claimed as trademarks. Where those names appear in any GNOME " -"documentation, and the members of the GNOME Documentation Project are made " -"aware of those trademarks, then the names are in capital letters or initial " -"capital letters." -msgstr "" -"Mnoho užívaných jmen určených k zviditelnění produktů nebo služeb jsou " -"ochranné známky. Na místech, kde jsou tato jména v dokumentaci užita a " -"členové Dokumentačního projektu GNOME jsou si vědomi skutečnosti, že se " -"jedná o ochrannou známku, je takové jméno psáno velkými písmeny celé nebo s " -"velkým písmenem na začátku." - -#: C/glabels.xml:35(para) -msgid "" -"DOCUMENT IS PROVIDED ON AN \"AS IS\" BASIS, WITHOUT WARRANTY OF ANY KIND, " -"EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT " -"THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS FREE OF DEFECTS " -"MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE " -"RISK AS TO THE QUALITY, ACCURACY, AND PERFORMANCE OF THE DOCUMENT OR " -"MODIFIED VERSION OF THE DOCUMENT IS WITH YOU. SHOULD ANY DOCUMENT OR " -"MODIFIED VERSION PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL " -"WRITER, AUTHOR OR ANY CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY " -"SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN " -"ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY DOCUMENT OR MODIFIED VERSION " -"OF THE DOCUMENT IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER; AND" -msgstr "" -"DOKUMENT JE POSKYTOVÁN V PODOBĚ „JAK JE“ BEZ ZÁRUKY V JAKÉKOLIV PODOBĚ, " -"NEPOSKYTUJÍ SE ANI ODVOZENÉ ZÁRUKY, ZÁRUKY, ŽE DOKUMENT, NEBO JEHO UPRAVENÁ " -"VERZE, JE BEZCHYBNÝ NEBO ZÁRUKY PRODEJNOSTI, VHODNOSTI PRO URČITÝ ÚČEL NEBO " -"NEPORUŠENOSTI. RIZIKO NEKVALITY, NEPŘESNOSTI A ŠPATNÉHO PROVEDENÍ DOKUMENTU, " -"NEBO JEHO UPRAVENÉ VERZE, LEŽÍ NA VÁS. POKUD KVŮLI TOMUTO DOKUMENTU, NEBO " -"JEHO UPRAVENÉ VERZI, NASTANE PROBLÉM, VY (NIKOLIV PŮVODNÍ AUTOR NEBO " -"JAKÝKOLIV PŘISPĚVATEL) PŘEBÍRÁTE JAKÉKOLIV NÁKLADY ZA NUTNÉ ÚPRAVY, OPRAVY " -"ČI SLUŽBY. TOTO PROHLÁŠENÍ O ZÁRUCE PŘEDSTAVUJE ZÁKLADNÍ SOUČÁST TÉTO " -"LICENCE. BEZ TOHOTO PROHLÁŠENÍ NENÍ, PODLE TÉTO DOHODY, POVOLENO UŽÍVÁNÍ ANI " -"ÚPRAVY TOHOTO DOKUMENTU; DÁLE" - -#: C/glabels.xml:55(para) -msgid "" -"UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER IN TORT (INCLUDING " -"NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE AUTHOR, INITIAL WRITER, ANY " -"CONTRIBUTOR, OR ANY DISTRIBUTOR OF THE DOCUMENT OR MODIFIED VERSION OF THE " -"DOCUMENT, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON " -"FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF " -"ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, " -"WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER DAMAGES " -"OR LOSSES ARISING OUT OF OR RELATING TO USE OF THE DOCUMENT AND MODIFIED " -"VERSIONS OF THE DOCUMENT, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE " -"POSSIBILITY OF SUCH DAMAGES." -msgstr "" -"ZA ŽÁDNÝCH OKOLNOSTÍ A ŽÁDNÝCH PRÁVNÍCH PŘEDPOKLADŮ, AŤ SE JEDNÁ O PŘEČIN " -"(VČETNĚ NEDBALOSTNÍCH), SMLOUVU NEBO JINÉ, NENÍ AUTOR, PŮVODNÍ PISATEL, " -"KTERÝKOLIV PŘISPĚVATEL NEBO KTERÝKOLIV DISTRIBUTOR TOHOTO DOKUMENTU NEBO " -"UPRAVENÉ VERZE DOKUMENTU NEBO KTERÝKOLIV DODAVATEL NĚKTERÉ Z TĚCHTO STRAN " -"ODPOVĚDNÝ NĚJAKÉ OSOBĚ ZA PŘÍMÉ, NEPŘÍMÉ, SPECIÁLNÍ, NAHODILÉ NEBO NÁSLEDNÉ " -"ŠKODY JAKÉHOKOLIV CHARAKTERU, VČETNĚ, ALE NEJEN, ZA POŠKOZENÍ ZE ZTRÁTY " -"DOBRÉHO JMÉNA, PŘERUŠENÍ PRÁCE, PORUCHY NEBO NESPRÁVNÉ FUNKCE POČÍTAČE NEBO " -"JINÉHO A VŠECH DALŠÍCH ŠKOD NEBO ZTRÁT VYVSTÁVAJÍCÍCH Z NEBO VZTAHUJÍCÍCH SE " -"K POUŽÍVÁNÍ TOHOTO DOKUMENTU NEBO UPRAVENÝCH VERZÍ DOKUMENTU, I KDYŽ BY " -"TAKOVÁTO STRANA BYLA INFORMOVANÁ O MOŽNOSTI TAKOVÉHOTO POŠKOZENÍ." - -#: C/glabels.xml:28(para) -msgid "" -"DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT ARE PROVIDED UNDER THE TERMS " -"OF THE GNU FREE DOCUMENTATION LICENSE WITH THE FURTHER UNDERSTANDING THAT: " -"" -msgstr "" -"DOKUMENT A JEHO UPRAVENÉ VERZE JSOU ŠÍŘENY V SOULADU SE ZNĚNÍM LICENCE GNU " -"FREE DOCUMENTATION LICENSE S NÁSLEDUJÍCÍM USTANOVENÍM: " - -#: C/glabels.xml:52(firstname) -msgid "Jim" -msgstr "Jim" - -#: C/glabels.xml:53(surname) -msgid "Evins" -msgstr "Evins" - -#: C/glabels.xml:87(revnumber) -msgid "gLabels Manual V2.2.6" -msgstr "Příručka V2.2.6 k aplikaci gLabels" - -#: C/glabels.xml:88(date) -msgid "October 2009" -msgstr "Říjen 2009" - -#: C/glabels.xml:90(para) -msgid "Mario Blättermann mariobl@gnome.org" -msgstr "Mario Blättermann mariobl@gnome.org" - -#: C/glabels.xml:97(revnumber) -msgid "gLabels Manual V2.2" -msgstr "Příručka V2.2 k aplikaci gLabels" - -#: C/glabels.xml:98(date) -msgid "December 2007" -msgstr "Prosinec 2007" - -#: C/glabels.xml:100(para) -msgid "Jim Evins evins@snaught.com" -msgstr "Jim Evins evins@snaught.com" - -#: C/glabels.xml:108(releaseinfo) -msgid "" -"This manual describes version 2.2.6 of gLabels." -msgstr "" -"Tato příručka popisuje aplikaci gLabels ve verzi " -"2.2.6." - -#: C/glabels.xml:111(title) -msgid "Feedback" -msgstr "Ohlasy" - -#: C/glabels.xml:112(para) -msgid "" -"To report a bug or make a suggestion regarding the gLabels application or this manual, follow the directions in the gLabels Contact Page." -msgstr "" -"Pokud chcete oznámit chybu nebo navrhnout vylepšení vztahující se k aplikaci " -"gLabels nebo této příručce, postupujte dle " -"instrukcí na kontaktní stránce gLabels." - -#: C/glabels.xml:121(primary) -msgid "gLabels" -msgstr "gLabels" - -#: C/glabels.xml:124(primary) -msgid "glabels" -msgstr "glabels" - -#: C/glabels.xml:135(title) -msgid "Introduction" -msgstr "Úvod" - -#: C/glabels.xml:137(para) -msgid "" -"The gLabels application is a lightweight program " -"for creating labels and business cards for the GNOME desktop environment. It is designed to work with various laser/ink-jet " -"peel-off label and business card sheets that you'll find at most office " -"supply stores." -msgstr "" -"Aplikace gLabels je jednoduchý program na " -"vytváření etiket a vizitek pro pracovní prostředí GNOME. Je navržená pro práci s různými samolepicími etiketami a " -"vizitkami rozmístěnými na listech pro laserový/inkoustový tisk, které " -"najdete v každém obchodě s kancelářskými potřebami." - -#: C/glabels.xml:158(title) -msgid "Getting Started" -msgstr "Začínáme" - -#: C/glabels.xml:161(title) -msgid "To Start gLabels" -msgstr "Jak spustit aplikaci gLabels" - -#: C/glabels.xml:162(para) -msgid "You can start gLabels in the following ways:" -msgstr "" -"Aplikaci gLabels můžete spustit následujícími " -"způsoby:" - -#: C/glabels.xml:166(term) -msgid "Applications menu" -msgstr "Nabídka Aplikace" - -#: C/glabels.xml:168(para) -msgid "" -"Choose OfficegLabels." -msgstr "" -"Zvolte KancelářNávrhář " -"etiket gLabels." - -#: C/glabels.xml:176(term) -msgid "Command line" -msgstr "Příkazový řádek" - -#: C/glabels.xml:178(para) -msgid "Type glabels, then press Return:" -msgstr "" -"Napište příkaz glabels a zmáčkněte Enter:" - -#: C/glabels.xml:186(title) -msgid "When You Start gLabels" -msgstr "Když spustíte aplikaci gLabels" - -#: C/glabels.xml:187(para) -msgid "" -"When you start gLabels, the following window is " -"displayed." -msgstr "" -"Když spustíte aplikaci gLabels, zobrazí se " -"následující okno." - -#: C/glabels.xml:191(title) -msgid "gLabels Start Up Window" -msgstr "Okno gLabels po spuštění" - -#. for example, the items on the menubar and on the toolbar. This section is optional. -#: C/glabels.xml:205(para) -msgid "" -"The gLabels window contains the following " -"elements:" -msgstr "Okno gLabels obsahuje následující části:" - -#: C/glabels.xml:209(term) -msgid "Menubar." -msgstr "Panel nabídek." - -#: C/glabels.xml:211(para) -msgid "" -"The menus on the menubar contain all of the commands you need to create and " -"edit labels and business cards in gLabels." -msgstr "" -"Nabídky v panelu nabídek obsahují všechny příkazy potřebné k vytváření a " -"úpravám etiket a vizitek v aplikaci gLabels." - -#: C/glabels.xml:217(term) -msgid "Main toolbar." -msgstr "Hlavní panel nástrojů." - -#: C/glabels.xml:219(para) +#: C/skipfields.page:14(email) C/select.page:14(email) +#: C/printfile.page:14(email) C/newlabel.page:14(email) +#: C/multifile.page:14(email) C/merge.page:14(email) +#: C/mergefeatures.page:14(email) C/merge-ex4.page:14(email) +#: C/merge-ex3.page:14(email) C/merge-ex2.page:14(email) +#: C/merge-ex1.page:14(email) C/mancreate.page:15(email) +#: C/labelprop.page:14(email) C/index.page:12(email) C/editprop.page:14(email) +#: C/customtemplate.page:14(email) C/customize.page:12(email) +#: C/createnew.page:14(email) C/basicusage.page:14(email) +#: C/about.page:14(email) +msgid "evins@snaught.com" +msgstr "evins@snaught.com" + +#: C/skipfields.page:17(name) C/select.page:17(name) C/printfile.page:17(name) +#: C/newlabel.page:17(name) C/multifile.page:17(name) C/merge.page:17(name) +#: C/mergefeatures.page:17(name) C/merge-ex4.page:17(name) +#: C/merge-ex3.page:17(name) C/merge-ex2.page:17(name) +#: C/merge-ex1.page:17(name) C/mancreate.page:18(name) +#: C/labelprop.page:17(name) C/index.page:15(name) C/editprop.page:17(name) +#: C/customtemplate.page:17(name) C/customize.page:15(name) +#: C/createnew.page:17(name) C/basicusage.page:17(name) C/about.page:17(name) +msgid "Mario Blättermann" +msgstr "Mario Blättermann" + +#: C/skipfields.page:18(email) C/select.page:18(email) +#: C/printfile.page:18(email) C/newlabel.page:18(email) +#: C/multifile.page:18(email) C/merge.page:18(email) +#: C/mergefeatures.page:18(email) C/merge-ex4.page:18(email) +#: C/merge-ex3.page:18(email) C/merge-ex2.page:18(email) +#: C/merge-ex1.page:18(email) C/mancreate.page:19(email) +#: C/labelprop.page:18(email) C/index.page:16(email) C/editprop.page:18(email) +#: C/customtemplate.page:18(email) C/customize.page:16(email) +#: C/createnew.page:18(email) C/basicusage.page:18(email) +#: C/about.page:18(email) +msgid "mariobl@gnome.org" +msgstr "mariobl@gnome.org" + +#: C/skipfields.page:21(p) C/select.page:21(p) C/printfile.page:21(p) +#: C/newlabel.page:21(p) C/multifile.page:21(p) C/merge.page:21(p) +#: C/mergefeatures.page:21(p) C/merge-ex4.page:21(p) C/merge-ex3.page:21(p) +#: C/merge-ex2.page:21(p) C/merge-ex1.page:21(p) C/mancreate.page:22(p) +#: C/labelprop.page:21(p) C/index.page:19(p) C/editprop.page:21(p) +#: C/customtemplate.page:21(p) C/customize.page:19(p) C/createnew.page:21(p) +#: C/basicusage.page:21(p) C/about.page:21(p) +msgid "Creative Commons Share Alike 3.0" +msgstr "Creative Commons Share Alike 3.0" + +#: C/skipfields.page:25(title) +#| msgid "Printing address labels" +msgid "Skipping blank address lines" +msgstr "Přeskakování prázdných řádků v adresách" + +#: C/skipfields.page:27(p) +msgid "" +"This feature can be best described by a simple example. In the following CSV " +"file, column 5 (ADDR2) contains the second address line for each record. " +"This field is empty in records 1 and 2, but not in record 3. (For this " +"feature to work, the field must be completely empty -- any text, including " +"spaces will defeat this feature.)" +msgstr "" +"Tuto funkci bude nejlepší popsat příkladem. V následujícím souboru CSV " +"obsahuje sloupec 2 (OSOBA) konkrétní osobu v adrese do firmy pro každý " +"záznam. Toto pole je v záznamech 1 a 2 prázdné, ale ve 3. záznamu ne. (Aby " +"tato funkce pracovala, musí být pole úplně prázdné – jakýkoliv text, a to " +"včetně mezer, překazí použití této funkce.)" + +#: C/skipfields.page:33(code) +#, no-wrap msgid "" -"The main toolbar contains a subset of common File and Edit commands that you " -"can access from the menubar." +"\n" +" LAST,FIRST,MI,ADDR1,ADDR2,CITY,STATE,ZIP\n" +" Summers,Joyce,,\"1630 Revello Dr\",,Sunnydale,CA,95037\n" +" McGarret,Steve,O,\"404 Piikoi Street\",,Honolulu,HI,96813\n" +" Kramer,Cosmo,,\"Apt 5B\",\"129 W. 81 St.\",\"New York\",NY,10024-7207\n" +" " msgstr "" -"Hlavní panel nástrojů obsahuje podmnožinu běžných příkazů pro práci se " -"soubory a k úpravám z těch, které jsou dostupné v panelu nabídek." - -#: C/glabels.xml:224(term) -msgid "Drawing toolbar." -msgstr "Panel kreslení." +"\n" +" FIRMA,OSOBA,ADR,MESTO,PSC\n" +" \"Stolařství Novák & syn\",,\"Pod Lesem 4\",\"Ústí nad Orlicí\",\"562 03\"\n" +" \"Dřevolak s.r.o.\",,\"Barvírenská 78/436\",Třešť,\"589 01\"\n" +" \"Nábytek holding a.s.\",\"Ing. Jiří Procházka\",\"Vídeňská 95\",Brno,\"619 00\"\n" +" " -#: C/glabels.xml:226(para) +#: C/skipfields.page:40(p) msgid "" -"The drawing toolbar contains a subset of commands for editing the current " -"gLabels document." +"In the following screenshot, a single multiline text object has been created " +"to format these addresses. Notice that ${ADDR2} representing the second " +"address line is on a line by itself. (Any additional text on this line, " +"including spaces would defeat this feature.)" msgstr "" -"Panel kreslení obsahuje podmnožinu běžných příkazů k úpravám aktuálního " -"dokumentu gLabels." +"Na následujícím snímku obrazovky byl pro formátování těchto adres vytvořen " +"textový objekt s více řádky. Všimněte si, že ${OSOBA} představující osobu v " +"adres do firmy, je na svém vlastním řádku. (Jakýkoliv další text na stejném " +"řádku, a to včetně mezer, by překazil tuto funkci.)" -#: C/glabels.xml:231(term) -msgid "Display area." -msgstr "Zobrazovací oblast" +#: C/skipfields.page:46(p) +msgid "Multi-line address" +msgstr "Adresa na víc řádků" -#: C/glabels.xml:233(para) +#: C/skipfields.page:49(p) msgid "" -"The display area is the main drawing interface to gLabels." +"Printing this label results in the following output. Notice that the line " +"containing the ${ADDR2} field is completely skipped for the first two " +"records, without printing a blank line." msgstr "" -"Zobrazovací oblast je hlavní rozhraní aplikace gLabels sloužící ke kreslení." +"Výsledky tisku můžete vidět na následujícím výstupu. Všimněte si, že řádek " +"obsahující pole ${OSOBA} byl u prvních dvou záznamů zcela vynechán, " +"nevytiskl se ani prázdný řádek." -#: C/glabels.xml:238(term) -msgid "Object sidebar." -msgstr "Postranní panel objektů." +#: C/skipfields.page:54(p) +msgid "Output" +msgstr "Výstup" -#: C/glabels.xml:240(para) -msgid "" -"The object sidebar provides an interface for viewing and editing all " -"properties of an individual object." -msgstr "" -"Postranní panel objektů poskytuje rozhraní na prohlížení a úpravu všech " -"vlastností jednotlivých objektů." +#: C/select.page:9(desc) +msgid "How to select objects." +msgstr "Jak vybrat objekty." -#: C/glabels.xml:245(term) -msgid "Properties toolbar." -msgstr "Panel vlastností." +#: C/select.page:25(title) +msgid "To select objects" +msgstr "Výběr objektů" -#: C/glabels.xml:247(para) +#: C/select.page:27(p) msgid "" -"The properties toolbar contains a set of tools to manipulate the properties " -"of selected objects and set default properties for new objects." -msgstr "" -"Panel vlastností obsahuje sadu nástrojů na úpravu vlastností vybraných " -"objektů a nastavení výchozích vlastností pro nové objekty." - -#: C/glabels.xml:253(term) -msgid "Statusbar." -msgstr "Stavový panel." +"A prerequisite for performing operations on objects is the selection of " +"individual objects or groups of objects. The display area must be in the " +"object selection mode to create new selections, as indicated by an arrow " +"cursor. The object selection mode is selected by the ObjectsSelect Mode menu item, or the corresponding command " +"on the Drawing Toolbar." +msgstr "" +"Předpokladem k provádění operací s objekty je výběr jednoho objektu či " +"skupiny více objektů. Aby bylo možné výběr provést, musí být zobrazovací " +"oblast v režimu výběru objektů, což je signalizováno kurzorem v podobě " +"šipky. Režim výběru objektů se zvolí pomocí ObjektyRežim výběru nebo odpovídajícím příkazem na " +"Liště kreslení." + +#: C/select.page:38(title) +msgid "Selecting a single object" +msgstr "Výběr jednoho objektu" -#: C/glabels.xml:255(para) +#: C/select.page:39(p) msgid "" -"The statusbar displays information about current gLabels activity and contextual information about the menu items." +"A single object can be selected simply by clicking on the desired object in " +"the display area. Once selected the object will be highlighted with a set of " +"resizing handles." msgstr "" -"Stavový panel zobrazuje informace o aktuální činnosti aplikace " -"gLabels a kontextové informace o položkách " -"nabídky." - -#: C/glabels.xml:271(title) -msgid "Usage" -msgstr "Použití" - -#: C/glabels.xml:275(title) -msgid "To Create a New Label or Card" -msgstr "Jak vytvořit novou etiketu nebo vizitku" +"Jeden objekt vyberete prostým kliknutím na něj v zobrazovací oblasti. " +"Vybraný objekt bude zvýrazněný pomocí úchytů sloužících ke změně velikosti" -#: C/glabels.xml:277(para) -msgid "" -"To create a new label or business card, choose FileNew to display the " -"New Label or Card dialog. Select the media type and " -"orientation for the new document, then click OK. A " -"new document is displayed in the display area of the gLabels window." -msgstr "" -"Když chcete vytvořit novou etiketu nebo vizitku, zvolte " -"SouborNový a zobrazí se dialogové okno Nová etiketa či vizitka. Vyberte pro nový dokument typ média a orientaci a klikněte na " -"OK. Nový dokument se zobrazí v zobrazovací oblasti " -"okna gLabels." +#: C/select.page:46(title) +msgid "Aggregate object selections" +msgstr "Přidávání objektů do výběru" -#: C/glabels.xml:286(para) +#: C/select.page:47(p) msgid "" -"If your particular media type is missing from this dialog, see " +"Multiple objects can be selected by first selecting the first object as " +"above and then by holding the Ctrl key while selecting additional " +"objects. Individual objects can be added to an existing selection at any " +"time by holding the Ctrl key while selecting the desired objects. " +"All objects can also be selected by using the EditSelect All menu item. All objects in an aggregate " +"object selection will be highlighted." msgstr "" -"V případě, že vaše konkrétní médium v tomto dialogovém okně schází, přečtěte " -"si ." +"Více objektů můžete vybrat tak, že vyberete první dříve uvedeným způsobem a " +"po té budete držet klávesu Ctrl a vybírat další objekty. " +"Jednotlivé objekty lze přidat do stávajícího výběru kdykoliv držením klávesy " +"Ctrl během vybírání požadovaných objektů. Všechny objekty můžete " +"vybrat pomocí položky nabídky UpravitVybrat vše. Všechny objekty ve výběru jsou zvýrazněné." -#: C/glabels.xml:293(title) -msgid "To Open a File" -msgstr "Jak otevřít soubor" +#: C/select.page:60(title) +msgid "Area selections" +msgstr "Výběr oblasti" -#: C/glabels.xml:295(para) +#: C/select.page:62(p) msgid "" -"To open a file, choose FileOpen to display the Open File " -"dialog. Select the file that you want to open, then click OK. The file is displayed in the display area of the " -"gLabels window." +"Multiple objects can also be selected by clicking an empty area and dragging " +"to form a rectangular area. When released, all objects contained in the area " +"will form an aggregate selection. An area selection can be used to add to an " +"existing selection by holding the Ctrl key while performing the " +"selection." msgstr "" -"Soubor otevřete pomocí volby SouborOtevřít, která zobrazí " -"dialogové okno Otevření souboru. Vyberte soubor, který " -"chcete otevřít a klikněte na OK. Soubor se zobrazí v " -"zobrazovací oblasti okna gLabels." +"Více objektů lze rovněž vybrat zmáčknutím tlačítka myši na prázdném místě a " +"tažením obdélníkové oblasti. Po uvolnění tlačítka se všechny objekty " +"obsažené v takovéto oblasti naráz vyberou. Výběr pomocí oblasti lez použít k " +"přidání ke stávajícímu výběru podržením klávesy Ctrl během " +"provádění výběru." -#: C/glabels.xml:302(para) -msgid "" -"You can also open multiple files in gLabels. The " -"application creates a separate application window for each open file." -msgstr "" -"V aplikaci gLabels můžete otevřít i více souborů " -"naráz. Aplikace pro každý otevřený soubor vytvoří zvláštní okno." +#: C/select.page:72(title) +msgid "Unselecting objects" +msgstr "Zrušení výběru objektů" -#: C/glabels.xml:306(para) +#: C/select.page:74(p) msgid "" -"The application records the paths and filenames of the most recent files " -"that you have edited and displays the files as menu items on the " -"FileRecent Files menu." -msgstr "" -"Pro soubory nedávno otevřené k úpravě si aplikace zaznamenává cesty a názvy " -"a tyto soubory potom zobrazuje v nabídce SouborOtevřít nedávné soubory." - -#: C/glabels.xml:316(title) -msgid "To Open Multiple Files from a Command Line" -msgstr "Jak otevřít více souborů z příkazové řádky" +"Individual objects can be removed from an existing selection by holding the " +"Ctrl key while clicking on a previously selected object. An " +"entire selection can be dismissed by using the EditUn-select All menu item or by simply clicking any " +"empty space in the display area. Once an object is unselected its highlight " +"is removed." +msgstr "" +"Jednotlivé objekty lze z výběru odebrat podržením klávesy Ctrl a " +"klikáním na označené objekty. Veškerý výběr můžete zrušit pomocí nabídky " +"UpravitZrušit výběr nebo jednoduchým " +"kliknutím na prázdné místo v zobrazovací oblasti. Jakmile je u objektu " +"zrušen výběr, zmizí i jeho zvýraznění." + +#: C/select.page:86(title) +msgid "Clipboard Commands" +msgstr "Příkazy pro práci se schránkou" -#: C/glabels.xml:318(para) +#: C/select.page:88(p) msgid "" -"You can run gLabels from a command line and open " -"a single file or multiple files. To open multiple files from a command line, " -"type the following command, then press Return:" +"Object selections can be manipulated using the standard clipboard operations " +"Cut, Copy, Paste, and Delete." msgstr "" -"Aplikaci gLabels můžete spustit z příkazového " -"řádku a otevřít při tom jeden nebo více souborů. Pokud chcete otevřít z " -"příkazového řádku více souborů, napište následující příkaz a zmáčkněte " -"Enter:" - -#: C/glabels.xml:324(replaceable) -msgid "file1.glabels file2.glabels file3.glabels" -msgstr "soubor1.glabels soubor2.glabels soubor3.glabels" +"S vybranými objekty lze manipulovat pomocí standardních operací se schránkou " +"Vyjmout, Kopírovat, Vložit a Smazat." -#: C/glabels.xml:323(command) -msgid "glabels " -msgstr "glabels " +#: C/select.page:94(title) +msgid "Cut (CtrlX)" +msgstr "Vyjmout (CtrlX)" -#: C/glabels.xml:327(para) +#: C/select.page:96(p) msgid "" -"When the application starts, the files that you specify are displayed in " -"separate gLabels windows." +"Moves selected objects to the clipboard. The objects are then available for " +"pasting back into the current document or another document." msgstr "" -"Po spuštění aplikace se každý ze zadaných souborů zobrazí ve zvláštním okně " -"gLabels." - -#: C/glabels.xml:334(title) -msgid "To Save a File" -msgstr "Jak uložit soubor" - -#: C/glabels.xml:336(para) -msgid "You can save files in the following ways:" -msgstr "Soubory můžete uložit následujícími způsoby:" +"Přesune vybrané objekty do schránky. Objekty jsou potom přístupné pro " +"vkládání zpátky do aktuálního dokumentu nebo jiného dokumentu." -#: C/glabels.xml:341(para) -msgid "" -"To save changes to an existing file, choose FileSave." -msgstr "" -"Pro uložení změn do stávajícího souboru, zvolte SouborUložit." +#: C/select.page:103(title) +msgid "Copy (CtrlC)" +msgstr "Kopírovat (CtrlC)" -#: C/glabels.xml:348(para) +#: C/select.page:105(p) msgid "" -"To save a new file or to save an existing file under a new filename, choose " -"FileSave As. Enter a name for the file in the Save As " -"dialog box, then click OK." +"Copies selected objects to the clipboard without deleting them. The objects " +"are then available for pasting back into the current document or another " +"document." msgstr "" -"Pro uložení nového souboru nebo uložení stávajícího souboru pod novým " -"názvem, zvolte SouborUložit " -"jako. V dialogovém okně Uložit jako zadejte pro soubor název a klikněte na OK." +"Zkopíruje vybrané objekty do schránky, aniž by byly vymazány. Objekty jsou " +"potom přístupné pro vkládání zpátky do aktuálního dokumentu nebo jiného " +"dokumentu." -#: C/glabels.xml:361(title) -msgid "To Change Label Properties" -msgstr "Jak změnit vlastnosti etikety" +#: C/select.page:112(title) +msgid "Paste (CtrlV)" +msgstr "Vložit (CtrlV)" -#: C/glabels.xml:363(para) +#: C/select.page:114(p) msgid "" -"To change the media type and/or orientation of a label, choose " -"FileProperties to display the Label properties dialog. " -"Select the new media type and orientation for the document, then click " -"OK." +"Pastes objects from the clipboard into the current document. gLabels can only paste objects from another gLabels document." msgstr "" -"Pokud chcete změnit typ média a/nebo orientaci etiket, zvolte " -"SouborVlastnosti a zobrazí se dialogové okno Vlastnosti etikety. Zvolte pro dokument nový typ média a orientaci a klikněte na " -"OK." +"Vloží objekty ze schránky do aktuálního dokumentu. Aplikace gLabels umí vkládat pouze objekty z jiného dokumentu gLabels." -#: C/glabels.xml:374(title) -msgid "To Create a Custom Template" -msgstr "Jak vytvořit vlastní šablonu" +#: C/select.page:121(title) +msgid "Delete (Del)" +msgstr "Smazat (Del)" -#: C/glabels.xml:376(para) -msgid "" -"To create a new custom template, choose FileTemplate Designer ... to " -"display the Template Designer dialog. This dialog will " -"assist you in creating a custom template for most types of label or card " -"stationery that you may encounter." -msgstr "" -"Když chcete vytvořit novou vlastní šablonu, zvolte " -"SouborNávrhář šablon… a zobrazí se dialogové okno Návrhář " -"šablon gLabels. Toto dialogové okno vás provede vytvořením " -"vlastní šablony pro většinu typů etiket nebo vizitek, se kterými se můžete " -"setkat." +#: C/select.page:123(p) +msgid "Deletes selected objects without placing them on the clipboard." +msgstr "Smaže vybrané objekty, aniž by byly umístěny do schránky." -#: C/glabels.xml:383(para) +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/printfile.page:47(None) msgid "" -"If you prefer, you can create your templates manually. For this option see " -"" +"@@image: 'figures/print-copies.png'; md5=1896f693ac50b47ea5abaafb59b5e8cc" msgstr "" -"Pokud dáváte přednost ručnímu vytvoření šablon, přečtěte si " - -#: C/glabels.xml:391(title) -msgid "To Close a File" -msgstr "Jak zavřít soubor" +"@@image: 'figures/print-copies.png'; md5=1896f693ac50b47ea5abaafb59b5e8cc" -#: C/glabels.xml:393(para) +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/printfile.page:70(None) msgid "" -"To close the current document, choose FileClose to close the " -"application window. If the current document is modified, a confirmation " -"dialog will be presented, allowing you to save the document or cancel the " -"command. If the window being closed is the only open window, " -"gLabels will exit." +"@@image: 'figures/print-merge.png'; md5=65a719b5624f88fdb40e2322454819a6" msgstr "" -"Když chcete aktuální dokument zavřít, zvolte SouborZavřít a zavřete tím " -"aplikační okno. Pokud byl aktuální dokument změněn, zobrazí se potvrzovací " -"dialogové okno, kde můžete dokument uložit nebo příkaz zrušit. Pokud je " -"zavírané okno jediné otevřené, ukončí se celá aplikace gLabels." - -#: C/glabels.xml:405(title) -msgid "To Quit gLabels" -msgstr "Jak ukončit gLabels" +"@@image: 'figures/print-merge.png'; md5=65a719b5624f88fdb40e2322454819a6" -#: C/glabels.xml:407(para) -msgid "" -"To quit gLabels, choose " -"FileQuit. This is equivalent to closing all open windows. See ." -msgstr "" -"Když chcete aplikaci gLabels ukončit, zvolte " -"SouborUkončit. Odpovídá to zavření všech otevřených oken. Viz ." +#: C/printfile.page:9(desc) +msgid "How to print your labels and cards." +msgstr "Jak vytisknout etikety nebo vizitky." -#: C/glabels.xml:417(title) -msgid "To Print Labels or Cards" -msgstr "Jak vytisknout etikety nebo vizitky" +#: C/printfile.page:25(title) +msgid "To print labels and cards" +msgstr "Tisk etiket a vizitek" -#: C/glabels.xml:419(para) +#: C/printfile.page:27(p) msgid "" -"To print labels or cards, choose FilePrint to display the " -"Print dialog. Once print options have been selected, " -"click Print to print the labels or cards. To simply " -"preview the results, click Print Preview instead." +"To print labels or cards, choose FilePrint to display the Print dialog. Once print options have been " +"selected, click Print to print the labels or cards. To simply " +"preview the results, click Print Preview instead." msgstr "" -"Když chcete vytisknout etikety nebo vizitky, zvolte " -"SouborTisk a zobrazí se dialogové okno Tisk. Až " -"nastavíte volby tisku, klikněte na Tisk a etikety nebo " -"vizitky se vytisknou. Pokud se chcete jen podívat na náhled, klikněte místo " -"toho na Náhled tisku." +"Když chcete vytisknout etikety nebo vizitky, zvolte SouborTisk a zobrazí se dialogové okno Tisk. Až " +"nastavíte volby tisku, klikněte na Tisk a etikety nebo vizitky se " +"vytisknou. Pokud se chcete jen podívat na náhled, klikněte místo toho na " +"Náhled tisku." -#: C/glabels.xml:426(para) +#: C/printfile.page:34(p) msgid "" -"The Print dialog allows you to specify the following " -"print options:" +"The Print dialog allows you to specify the following print " +"options:" msgstr "" -"V dialogovém okně Tisk můžete nastavit následující " -"volby tisku:" +"V dialogovém okně Tisk můžete nastavit následující volby tisku:" -#: C/glabels.xml:430(title) +#: C/printfile.page:38(title) msgid "The Labels Tab of the Print Dialog" msgstr "Karta Etikety v dialogovém okně Tisk" -#: C/glabels.xml:435(guilabel) +#: C/printfile.page:41(title) msgid "Print control (Simple)" msgstr "Ovládání tisku (jednoduchý)" -#: C/glabels.xml:438(para) +#: C/printfile.page:43(p) msgid "" -"For simple labels or cards (no document merge), the labels tabbed section contains the following copy controls." +"For simple labels or cards (no document merge), the job tabbed section " +"contains the following copy controls." msgstr "" "Pro jednoduché etikety nebo vizitky (bez slučování dokumentů), obsahuje " -"karta Etikety následující prvky." +"karta úlohy následující ovládací prvky pro nastavení kopie." -#: C/glabels.xml:443(title) +#: C/printfile.page:48(p) C/editprop.page:36(p) msgid "Print Copy Controls" msgstr "Ovládací prvky tisku kopií" #. ==== End of Figure ==== -#: C/glabels.xml:454(para) +#: C/printfile.page:52(p) msgid "" "The number of copies of the label can be selected by choosing the number of " "full sheets to print, or a specific subset of labels on a single sheet." @@ -770,36 +391,35 @@ msgstr "" "Počet kopií etikety můžete vybrat zvolením počtu plných listů, které se mají " "vytisknout, a nebo vybrat jen část etiket na jednom listu." -#: C/glabels.xml:458(para) +#: C/printfile.page:56(p) msgid "" "The mini-preview can also be used to graphically select the subset of labels " "by clicking the first label on the mini-preview and dragging to the last " "label." msgstr "" -"Mini-náhled můžete také použít ke grafickému výběru části etiket tak, že " -"kliknete na první etiketu v mini-náhledu a táhnete až na poslední etiketu." +"Minináhled můžete také použít ke grafickému výběru části etiket tak, že " +"kliknete na první etiketu v minináhledu a táhnete až na poslední etiketu." -#: C/glabels.xml:466(guilabel) +#: C/printfile.page:63(title) msgid "Print control (Merge)" msgstr "Ovládání tisku (slučování)" -#: C/glabels.xml:469(para) +#: C/printfile.page:65(p) msgid "" "For labels or cards using the document merge (also known as \"mail merge\") " -"capability, the labels tabbed section contains the " -"following merge controls instead of copy controls." +"capability, the job tabbed section contains the following merge controls " +"instead of copy controls." msgstr "" "Pro etikety nebo vizitky používající slučování dokumentů (někdy také " -"nazývané „hromadná korespondence“), obsahuje karta Etikety následující ovládací prvky slučování lišící se od ovládacích prvků " -"jednoduchého tisku." +"nazývané „hromadná korespondence“), obsahuje karta úlohy následující " +"ovládací prvky slučování, lišící se od ovládacích prvků jednoduchého tisku." -#: C/glabels.xml:475(title) +#: C/printfile.page:71(p) msgid "Print Document Merge Controls" msgstr "Ovládací prvky tisku slučovaných dokumentů" #. ==== End of Figure ==== -#: C/glabels.xml:486(para) +#: C/printfile.page:75(p) msgid "" "The total number of labels or cards printed is the product of the number of " "records in the merge source and the number of copies selected. If multiple " @@ -812,35 +432,35 @@ msgstr "" "uspořádané (kopie ze stejného záznamu seskupené spolu) nebo neuspořádané " "(kopie jednotlivých záznamů za sebou)." -#: C/glabels.xml:493(para) +#: C/printfile.page:82(p) msgid "" "Printing can begin on any label on the first sheet. This can be selected " -"with the Start on label spinbutton." +"with the Start on label spinbutton." msgstr "" "Tisk může začínat na libovolné etiketě na prvním listu. Tu můžete vybrat " -"pomocí číselníku Začít na etiketě." +"pomocí číselníku Začít na etiketě." -#: C/glabels.xml:497(para) +#: C/printfile.page:86(p) msgid "" "The mini-preview can also be used to graphically select this first label, by " "clicking on the desired label in the mini-preview." msgstr "" -"Mini-náhled můžete také použít ke grafickému výběru první etikety tak, že na " -"ni v mini-náhledu kliknete." +"Minináhled můžete také použít ke grafickému výběru první etikety tak, že na " +"ni v minináhledu kliknete." -#: C/glabels.xml:504(guilabel) +#: C/printfile.page:93(title) msgid "Options" msgstr "Volby" -#: C/glabels.xml:506(para) +#: C/printfile.page:94(p) msgid "The following options can also be selected." msgstr "Můžete rovněž vybrat následující volby." -#: C/glabels.xml:509(guilabel) +#: C/printfile.page:97(gui) msgid "print outlines" msgstr "tisk obrysů" -#: C/glabels.xml:510(para) +#: C/printfile.page:98(p) msgid "" "Print outlines of labels. This option is useful for dry-runs, to test " "printer alignment." @@ -848,11 +468,11 @@ msgstr "" "Tisk obrysů etiket. Tato volba je použitelná k tisku nanečisto, k otestování " "lícování." -#: C/glabels.xml:514(guilabel) +#: C/printfile.page:102(gui) msgid "print in reverse" msgstr "obrácený tisk" -#: C/glabels.xml:515(para) +#: C/printfile.page:103(p) msgid "" "Prints the labels as mirror images. This option is useful for printing on " "clear labels that will be viewed from the reverse side (e.g. in a car " @@ -861,11 +481,11 @@ msgstr "" "Tisknout etikety zrcadlově. Tato volba je použitelná pro tisk na čiré " "etikety, na které se bude dívat z druhé strany (např. na okně auta)." -#: C/glabels.xml:520(guilabel) +#: C/printfile.page:108(gui) msgid "print crop marks" msgstr "tisknout značky pro ořez" -#: C/glabels.xml:521(para) +#: C/printfile.page:109(p) msgid "" "Prints crop marks along the edge of the sheet. This option is useful for " "printing on blank stock, to be cut after printing. This option does not work " @@ -875,1913 +495,2599 @@ msgstr "" "na čisté listy, které se budou po tisku rozřezávat. Tato volba nepracuje " "úplně správně se všemi šablonami." -#: C/glabels.xml:536(title) -msgid "To Create New Objects" -msgstr "Jak vytvořit nový objekt" +#: C/newlabel.page:9(desc) +msgid "Create a new label or card in gLabels." +msgstr "Jak vytvořit novou etiketu nebo vizitku v aplikaci gLabels." + +#: C/newlabel.page:25(title) +msgid "To create a new label or card" +msgstr "Vytváření nové etikety nebo vizitky" -#: C/glabels.xml:538(para) +#: C/newlabel.page:27(p) msgid "" -"Objects are created by choosing the appropriate selection under the " -"ObjectsCreate Object submenu or the Drawing Toolbar. This will place the display area into object creation mode as " -"indicated by its cursor. To return to the default object selection mode " -"without creating an object, choose ObjectsSelect Mode. This will " -"return the display area's cursor to the default selection arrow." -msgstr "" -"Objekty se vytvářejí příslušným výběrem v podnabídce " -"ObjektyVytvořit nebo na Panelu kreslení. Zobrazovací oblast " -"se přepne do režimu vytváření objektu, což je indikováno patřičným " -"ukazatelem. Do výchozího režimu výběru objektů se můžete vrátit, aniž byste " -"nějaký objekt vytvořili, volbou ObjektyRežim výběru. Ukazatel pro " -"zobrazovací oblast se změní zpět na výchozí šipku." +"To create a new label or business card, choose FileNew to display the New Label or Card " +"dialog. Select the media type and orientation for the new document, then " +"click OK. A new document is displayed in the display area of the " +"gLabels window." +msgstr "" +"Když chcete vytvořit novou etiketu nebo vizitku, zvolte SouborNový a zobrazí se dialogové okno Nová etiketa " +"či vizitka. Vyberte pro nový dokument typ média a orientaci a klikněte " +"na OK. Nový dokument se zobrazí v zobrazovací oblasti okna " +"gLabels." -#: C/glabels.xml:548(para) -msgid "The following describes the object creation mode for each object type:" -msgstr "Zde je popis režimu vytváření objektu pro jednotlivé typy objektů:" +#: C/multifile.page:9(desc) +msgid "How to open multiple files at once by using the command line." +msgstr "Jak otevřít více souborů naráz pomocí příkazového řádku." -#: C/glabels.xml:554(term) C/glabels.xml:1123(guilabel) -msgid "Text" -msgstr "Text" +#: C/multifile.page:25(title) +msgid "To open multiple files from the command line" +msgstr "Jak otevřít více souborů z příkazového řádku" -#: C/glabels.xml:556(para) +#: C/multifile.page:27(p) msgid "" -"Click the desired location of the upper left corner of the text object. New " -"text objects are initialized with the string \"Text.\" To change this text, " -"or other properties, see ." +"You can run gLabels from a command line and open a single file or " +"multiple files. To open multiple files from a command line, type the " +"following command, then press Return:" msgstr "" -"Klikněte na požadované umístění levého horního rohu objektu text. Nový " -"textový objekt se vytvoří s počátečním řetězcem „Text“. Jak tento text nebo " -"další vlastnosti změnit uvádí ." +"Aplikaci gLabels můžete spustit z příkazového řádku a otevřít při " +"tom jeden nebo více souborů. Pokud chcete otevřít z příkazového řádku více " +"souborů, napište následující příkaz a zmáčkněte Enter:" -#: C/glabels.xml:564(term) -msgid "Box" -msgstr "Obdélník" +#: C/multifile.page:33(var) +msgid "file1.glabels file2.glabels file3.glabels" +msgstr "soubor1.glabels soubor2.glabels soubor3.glabels" + +#: C/multifile.page:32(cmd) +msgid "glabels " +msgstr "glabels " -#: C/glabels.xml:566(para) +#: C/multifile.page:36(p) msgid "" -"Click the desired location of the upper left corner of the box object and " -"drag to the desired location of the lower right corner. If you simply click " -"in a single location, a square box will be created. To change properties of " -"the box object, see ." +"When the application starts, the files that you specify are displayed in " +"separate gLabels windows." msgstr "" -"Klikněte na požadované umístění levého horního rohu objektu obdélník a " -"táhněte k požadovanému umístění pravého dolního rohu. Když jednoduše " -"kliknete na jednom místě, vytvoří se čtverec. Jak změnit vlastnosti " -"obdélníku uvádí ." +"Po spuštění aplikace se každý ze zadaných souborů zobrazí v samostatném okně " +"gLabels." -#: C/glabels.xml:575(term) C/glabels.xml:1149(guilabel) -msgid "Line" -msgstr "Čára" +#: C/merge.page:9(desc) +msgid "Merge a data source to create multiple documents." +msgstr "Jak slučovat zdroje dat při vytváření více dokumentů." -#: C/glabels.xml:577(para) +#: C/merge.page:25(title) +msgid "Document merge tutorial" +msgstr "Výuka slučování dokumentů" + +#: C/merge.page:27(p) msgid "" -"Click the desired location of one end of the line object and drag to the " -"desired location of the other end. If you simply click in a single location, " -"a diagonal line will be created. To change properties of the line object, " -"see ." +"Document Merge (sometimes called \"Mail Merge\") is a powerful feature that " +"allows a unique label or card to be printed for each record in an external " +"data source. It is however, the most mis-understood feature of glabels. The following examples will step through a couple of common tasks " +"using the document merge feature." msgstr "" -"Klikněte na požadované umístění levého horního konce objektu čára a táhněte " -"k požadovanému umístění pravého dolního konce. Když jednoduše kliknete na " -"jednom místě, vytvoří diagonální úsečka. Jak změnit vlastnosti čáry uvádí " -"." +"Slučování dokumentů (někdy také nazývané „hromadná korespondence“) je mocná " +"funkce, díky které můžete tisknout odlišné etikety nebo vizitky pro každý " +"záznam v externím zdroji dat. Je však také ze všech funkcí aplikace " +"gLabels nejnáročnější na pochopení. Následující příklady vás " +"provedou několika obvyklými úlohami, které používají funkci slučování " +"dokumentů." -#: C/glabels.xml:586(term) -msgid "Ellipse" -msgstr "Elipsa" +#: C/mergefeatures.page:9(desc) +msgid "What you may expect from a document merge." +msgstr "Co můžete očekávat od slučování dokumentů." + +#: C/mergefeatures.page:25(title) +msgid "Performing a document merge" +msgstr "Provádění slučování dokumentů" -#: C/glabels.xml:588(para) +#: C/mergefeatures.page:27(p) msgid "" -"Click the desired location of the upper left corner of the ellipse object " -"and drag to the desired location of the lower right corner. If you simply " -"click in a single location, a circle will be created. To change properties " -"of the ellipse object, see ." +"Document Merge (sometimes called \"Mail Merge\") is a powerful feature that " +"allows a unique label or card to be printed for each record in an external " +"data source." msgstr "" -"Klikněte na požadované umístění levého horního rohu objektu elipsa a táhněte " -"k požadovanému umístění pravého dolního rohu. Když jednoduše kliknete na " -"jednom místě, vytvoří se kruh. Jak změnit vlastnosti elipsy uvádí ." - -#: C/glabels.xml:597(term) -msgid "Image" -msgstr "Obrázek" +"Slučování dokumentů (někdy také nazývané „hromadná korespondence“) je mocná " +"funkce, která umožňuje vytisknout na etikety nebo vizitky různé texty podle " +"jednotlivých záznamů v externím zdroji dat." -#: C/glabels.xml:599(para) +#: C/mergefeatures.page:31(p) msgid "" -"Click the desired location of the upper left corner of the image object and " -"drag to the desired location of the lower right corner. If you simply click " -"in a single location, a square will be created. New image objects are " -"initialized with a simple checkerboard image. To change this image, or other " -"properties of the image object, see ." +"The first step to performing a document merge is to prepare a source " +"document that contains your merge data. This data could be mailing addresses " +"or any other data that you wish to create unique labels or cards for. " +"Currently back-ends only exist for text files and the evolution data server " +"-- others are planned. The currently supported text-file format is very " +"simple: each line is a record; fields are delimited by commas (CSV), tabs, " +"or colons; and newlines can be embedded into fields by using the \"\\n\" " +"entity. This file could be created using any text editor or could be created " +"by another program or script. A common way of creating CSV files is to " +"export them from a spreadsheet program." msgstr "" -"Klikněte na požadované umístění levého horního rohu objektu obrázku a " -"táhněte k požadovanému umístění pravého dolního rohu. Když jednoduše " -"kliknete na jednom místě, vytvoří se čtverec. Nový obrázkový objekt se " -"vytvoří s jednoduchým počátečním obrázkem šachovnice. Jak změnit tento " -"obrázek a další vlastnosti uvádí ." - -#: C/glabels.xml:610(term) -msgid "Barcode" -msgstr "Čárový kód" +"Prvním krokem při slučování dokumentů je příprava zdrojového dokumentu, " +"který má obsahovat slučovaná data. Tato data mohou být poštovní adresy nebo " +"jakákoliv jiná data, pro která si přejete vytvořit jedinečné etikety nebo " +"vizitky. V současnosti jsou zatím jako zdroje podporované pouze textové " +"soubory a datový server Evolution, jiné jsou v plánu. Současně podporovaný " +"formát textových souborů je velmi jednoduchý: co řádek, to záznam; pole jsou " +"oddělená čárkami (CSV), tabulátory nebo dvojtečkami; řádky jsou zakončené " +"pomocí znaku „\\n“. Takovýto soubor jde vytvořit v libovolném textovém " +"editoru nebo jiným programem nebo skriptem. Obvyklým způsobem vytváření " +"souborů CSV je jejich export z tabulkového kalkulátoru." -#: C/glabels.xml:612(para) +#: C/mergefeatures.page:43(p) msgid "" -"Click the desired location of the upper left corner of the barcode object. " -"New barcode objects are initialized to a POSTNET barcode with representative " -"data. To change data and properties of the barcode object, see ." +"A label must then be configured to \"point at\" this data file. To configure " +"the merge properties of a document, choose ObjectsMerge Properties menu item to display the merge " +"properties dialog. This dialog is used to select the exact data file " +"format and file name (location) of the merge data." msgstr "" -"Klikněte na požadované umístění levého horního rohu objektu čárového kódu. " -"Nový objekt čárového kódu se vytvoří jako čárový kód POSTNET s ukázkovými " -"daty. Jak tato data nebo další vlastnosti změnit uvádí ." - -#: C/glabels.xml:627(title) -msgid "To Select Objects" -msgstr "Jak vybrat objekty" +"Etiketa musí být nastavená tak, aby „ukazovala na“ takovýto datový soubor. " +"Abyste nastavili vlastnosti slučování dokumentu, zvolte položku nabídky " +"ObjektyVlastnosti slučování a zobrazí " +"se dialogové okno vlastnosti slučování. Toto dialogové okno " +"slouží k výběru přesného formátu datového souboru a názvu (umístění) souboru " +"se slučovanými daty." -#: C/glabels.xml:629(para) +#: C/mergefeatures.page:51(p) msgid "" -"A prerequisite for performing operations on objects is the selection of " -"individual objects or groups of objects. The display area must be in the " -"object selection mode to create new selections, as indicated by an arrow " -"cursor. The object selection mode is selected by the " -"ObjectsSelect Mode menu item, or the corresponding command on the " -"Drawing Toolbar." -msgstr "" -"Předpokladem k provádění operací s objekty je výběr jednoho či skupiny více " -"objektů. Aby bylo možné výběr provést, musí být zobrazovací oblast v režimu " -"výběru objektů, což je indikováno kurzorem v podobě šipky. Režim výběru " -"objektů se zvolí pomocí ObjektyRežim výběru nebo " -"odpovídajícím příkazem na Panelu kreslení." - -#: C/glabels.xml:642(term) -msgid "Selecting a single object" -msgstr "Výběr jednoho objektu" +"Finally, once the label has been configured for a data file, field keys can " +"be inserted into text objects and used as source or data for barcode objects " +"and image filenames for image objects. See for " +"more information on using merge data for these object types." +msgstr "" +"Nakonec, až je etiketa nastavená pro datový soubor, je zapotřebí vložit " +"klíče polí do textových objektů a použít klíče polí jako zdroje nebo data " +"pro objekty čárových kódů a jako názvy souborů pro obrázkové objekty. Více " +"informací o použití slučovaných dat pro tyto typy objektů viz ." -#: C/glabels.xml:644(para) +#: C/mergefeatures.page:57(p) msgid "" -"A single object can be selected simply by clicking on the desired object in " -"the display area. Once selected the object will be highlighted with a set of " -"resizing handles." +"Now that your label is configured, gLabels will print a unique " +"label for each record in your source document -- substituting fields from " +"each record for field keys in the all text, barcode, and image objects." msgstr "" -"Jeden objekt vyberete prostým kliknutím na něj v zobrazovací oblasti. " -"Vybraný objekt bude zvýrazněný sadou úchopů sloužících ke změně velikosti" - -#: C/glabels.xml:652(term) -msgid "Aggregate object selections" -msgstr "Přidávání objektů do výběru" +"Nyní, když máte svoji etiketu nastavenou, bude aplikace gLabels " +"tisknout jednotlivé etikety odlišné pro každý záznam ve vašem zdrojovém " +"dokumentu – do klíčů polí se ve všech textech budou dosazovat pole z " +"jednotlivých záznamů." -#: C/glabels.xml:654(para) +#: C/mergefeatures.page:62(p) msgid "" -"Multiple objects can be selected by first selecting the first object as " -"above and then by holding the Ctrl key while selecting " -"additional objects. Individual objects can be added to an existing selection " -"at any time by holding the Ctrl key while selecting the " -"desired objects. All objects can also be selected by using the " -"EditSelect All menu item. All objects in an aggregate object selection will be " -"highlighted." -msgstr "" -"Více objektů můžete vybrat tak, že vyberete první dříve uvedeným způsobem a " -"po té budete držet klávesu Ctrl a vybírat další objekty. " -"Jednotlivé objekty lze přidat do stávajícího výběru kdykoliv držením klávesy " -"Ctrl během vybírání požadovaných objektů. Všechny objekty " -"můžete vybrat pomocí položky nabídky UpravitVybrat vše. Všechny objekty " -"ve výběru jsou zvýrazněné." +"See for a detailed tutorial on the document merge " +"feature." +msgstr "Podrobný výklad funkcí slučování dokumentů viz ." -#: C/glabels.xml:668(term) -msgid "Area selections" -msgstr "Výběr oblasti" +#: C/merge-ex4.page:9(desc) +msgid "Create address labels from a vCard file." +msgstr "Vytvoření adresních štítků ze souboru VCard." -#: C/glabels.xml:670(para) +#: C/merge-ex4.page:25(title) +msgid "Example 4: Address Labels Using a vCard file" +msgstr "Příklad 4: Adresní štítky s použitím souboru VCard" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/merge-ex3.page:53(None) msgid "" -"Multiple objects can also be selected by clicking an empty area and dragging " -"to form a rectangular area. When released, all objects contained in the area " -"will form an aggregate selection. An area selection can be used to add to an " -"existing selection by holding the Ctrl key while performing " -"the selection." +"@@image: 'figures/merge-ex3-1.png'; md5=fb5bf719857fb0a49517ecb50124384d" msgstr "" -"Více objektů lze rovněž vybrat zmáčknutím tlačítka myši na prázdném místě a " -"tažením obdélníkové oblasti. Po uvolnění tlačítka se všechny objekty " -"obsažené v takovéto oblasti naráz vyberou. Výběr pomocí oblasti lez použít k " -"přidání ke stávajícímu výběru podržením klávesy Ctrl během " -"provádění výběru." +"@@image: 'figures/merge-ex3-1.png'; md5=fb5bf719857fb0a49517ecb50124384d" -#: C/glabels.xml:680(term) -msgid "Unselecting objects" -msgstr "Zrušení výběru objektů" - -#: C/glabels.xml:682(para) +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/merge-ex3.page:74(None) msgid "" -"Individual objects can be removed from an existing selection by holding the " -"Ctrl key while clicking on a previously selected object. An " -"entire selection can be dismissed by using the EditUn-select All menu item or " -"by simply clicking any empty space in the display area. Once an object is " -"unselected its highlight is removed." -msgstr "" -"Jednotlivé objekty lze z výběru odebrat podržením klávesy Ctrl a klikáním na označené objekty. Veškerý výběr můžete zrušit pomocí " -"nabídky UpravitZrušit výběr nebo jednoduchým kliknutím na prázdné místo v " -"zobrazovací oblasti. Jakmile je u objektu zrušen výběr, zmizí i jeho " -"zvýraznění." - -#: C/glabels.xml:699(title) -msgid "Clipboard Commands" -msgstr "Příkazy pro práci se schránkou" +"@@image: 'figures/merge-ex3-2.png'; md5=28a15319cea58be75ff789c766dc0717" +msgstr "" +"@@image: 'figures/merge-ex3-2.png'; md5=28a15319cea58be75ff789c766dc0717" -#: C/glabels.xml:701(para) +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/merge-ex3.page:88(None) msgid "" -"Object selections can be manipulated using the standard clipboard operations " -"Cut, Copy, " -"Paste, and Delete." +"@@image: 'figures/merge-ex3-3.png'; md5=443d59a44d8ddf5580087a772d4e3eec" msgstr "" -"S vybranými objekty lze manipulovat pomocí standardních operací se schránkou " -"Vyjmout, Kopírovat, " -"Vložit a Smazat." - -#: C/glabels.xml:712(keycap) C/glabels.xml:728(keycap) -#: C/glabels.xml:744(keycap) -msgid "Ctrl" -msgstr "Ctrl" - -#: C/glabels.xml:712(keycap) -msgid "X" -msgstr "X" - -#: C/glabels.xml:714(guimenuitem) -msgid "Cut" -msgstr "Vyjmout" +"@@image: 'figures/merge-ex3-3.png'; md5=443d59a44d8ddf5580087a772d4e3eec" -#: C/glabels.xml:718(para) +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/merge-ex3.page:99(None) msgid "" -"Moves selected objects to the clipboard. The objects are then available for " -"pasting back into the current document or another document." +"@@image: 'figures/merge-ex3-4.png'; md5=1995114757cccebda45b686caeb37fa7" msgstr "" -"Přesune vybrané objekty do schránky. Objekty jsou potom přístupné pro " -"vkládání zpátky do aktuálního dokumentu nebo jiného dokumentu." - -#: C/glabels.xml:728(keycap) -msgid "C" -msgstr "C" - -#: C/glabels.xml:730(guimenuitem) -msgid "Copy" -msgstr "Kopírovat" +"@@image: 'figures/merge-ex3-4.png'; md5=1995114757cccebda45b686caeb37fa7" -#: C/glabels.xml:734(para) +#: C/merge-ex3.page:9(desc) msgid "" -"Copies selected objects to the clipboard without deleting them. The objects " -"are then available for pasting back into the current document or another " -"document." +"Create address labels from the Evolution address book entries." msgstr "" -"Zkopíruje vybrané objekty do schránky, aniž by byly vymazány. Objekty jsou " -"potom přístupné pro vkládání zpátky do aktuálního dokumentu nebo jiného " -"dokumentu." +"Vytvoření adresních štítků ze záznamů adresáře aplikace Evolution." -#: C/glabels.xml:744(keycap) -msgid "V" -msgstr "V" +#: C/merge-ex3.page:25(title) +msgid "Example 3: Address Labels Using the Evolution Addressbook" +msgstr "Příklad 3: Adresní štítky z adresáře aplikace Evolution" -#: C/glabels.xml:746(guimenuitem) -msgid "Paste" -msgstr "Vložit" - -#: C/glabels.xml:750(para) +#: C/merge-ex3.page:27(p) msgid "" -"Pastes objects from the clipboard into the current document. " -"gLabels can only paste objects from another " -"gLabels document." +"Our last party was a great success, and now we need to print mailing address " +"labels for the invitations to a new one. To simplify this, we can use the " +"Evolution addressbook, because the address data of all our " +"friends is stored there." msgstr "" -"Vloží objekty ze schránky do aktuálního dokumentu. Aplikace " -"gLabels umí vkládat pouze objekty z jiného " -"dokumentu gLabels." +"Náš předchozí večírek měl velký úspěch a my nyní chceme vytisknout adresní " +"štítky pro pozvánky na další takový. Abychom si to zjednodušili, můžeme " +"použít adresář aplikace Evolution, protože adresy všech našich " +"přátel máme uložené v něm." + +#: C/merge-ex3.page:33(p) +msgid "" +"Depending on how your copy of gLabels was packaged, this option " +"could be unavailable. Support for the Evolution addressbook will " +"only be available if the evolution-data-server and its " +"development files were present when gLabels was built. Please " +"keep this in mind if you build gLabels directly from source." +msgstr "" +"V závislosti na tom, jak byl připravený váš balíček gLabels, " +"nemusí být tato funkčnost dostupná. Podpora pro adresář Evolution " +"je dostupná jen v případě, že byl při překladu aplikace gLabels k " +"dispozici evolution-data-server a k němu vývojářské soubory. " +"Mějte toto na paměti, pokud si aplikaci překládáte sami ze zdrojových kódů." + +#: C/merge-ex3.page:39(p) +msgid "" +"If the gLabels package from your distribution lacks this support, " +"you may wish to contact the package maintainer or file a bug against the " +"package to request it." +msgstr "" +"Pokud balíček gLabels ve vaší distribuci tuto podporu postrádá, " +"můžete zkusit kontaktovat správce balíčku nebo to zkusit nahlásit jako " +"požadavek do systému pro hlášení chyb." + +#: C/merge-ex3.page:44(p) +msgid "" +"In glabels we have created a new gLabels document " +"using the Avery 5512 \"Address Labels\" template. Next we use the " +"ObjectsMerge Properties menu item to " +"display the Merge properties dialog. We use this dialog to select " +"the source type (in our case Data from default Evolution addressbook) as shown." +msgstr "" +"V aplikaci glabels vytvoříme nový dokument ze šablony Avery L7162 " +"„Poštovní etikety“. Potom v nabídce zvolíme ObjektyVlastnosti slučování, aby se nám zobrazilo dialogové " +"okno Vlastnosti slučování. V něm vybereme typ zdroje (v našem " +"případě Data z výchozího adresáře Evolution), jak je ukázáno na " +"obrázku." -#: C/glabels.xml:760(keycap) C/glabels.xml:762(guimenuitem) -msgid "Delete" -msgstr "Smazat" +#: C/merge-ex3.page:54(p) C/merge-ex2.page:53(p) C/merge-ex1.page:51(p) +msgid "Merge properties dialog" +msgstr "Dialogové okno vlastností slučování" -#: C/glabels.xml:766(para) -msgid "Deletes selected objects without placing them on the clipboard." -msgstr "Smaže vybrané objekty, aniž by byly umístěny do schránky." +#. ==== End of Figure ==== +#: C/merge-ex3.page:58(p) +msgid "" +"Once we have chosen Data from default Evolution addressbook as " +"our merge source, we will get a full list of its content. Initially, all " +"entries are checked. Assuming we were planning a really big party, we could " +"leave this selection untouched (but let's keep our budget in mind). We will " +"now select or unselect certain entries by clicking on the appropriate " +"checkboxes, or we could use the Select all and Unselect all " +" buttons to activate or deactivate all entries in the address book." +msgstr "" +"Když máme jako zdroj slučování vybráno Data z výchozího adresáře " +"Evolution, obdržíme úplný seznam jeho obsahu. Na začátku jsou " +"zaškrtnuté všechny položky. Předpokládá se, že budeme pořádat opravdu velký " +"večírek a tak bychom mohli ponechat výběr jak je (ale uvědomte si kolik to " +"bude stát). Nyní některé záznamy kliknutím na příslušné zaškrtávací políčko " +"vyřadíme nebo naopak vybereme, případně můžeme použít tlačítka Vybrat " +"vše a Zrušit výběr pro aktivování nebo deaktivování všech " +"záznamů v adresáři." -#: C/glabels.xml:777(title) -msgid "To Edit Object Properties" -msgstr "Jak upravit vlastnosti objektu" +#: C/merge-ex3.page:66(p) +msgid "" +"We can also view each entry in more detail by clicking on the appropriate " +"expander (the little triangles) as shown. Once we are satisfied with the " +"selections in this dialog, we will click the OK button to accept " +"the changes." +msgstr "" +"U každého záznamu si také můžeme prohlédnou všechny údaje po jeho rozbalení " +"kliknutím na malý trojúhelníček. Až jsme s výběrem v dialogovém okně " +"spokojení, klikneme na OK a změny se použijí." -#: C/glabels.xml:779(para) +#: C/merge-ex3.page:71(p) C/merge-ex2.page:67(p) C/merge-ex1.page:60(p) msgid "" -"Most object properties can be modified through the object editor sidebar, " -"illustrated below. To use the object editor, a single object must first be " -"selected. See ." +"Now we start adding objects to our glabels document as shown." msgstr "" -"Většinu vlastností objektů lze upravit přes editor objektů v postranním " -"panelu, který je vyobrazený níže. Abyste mohli editor objektů používat, " -"musíte nejdříve vybrat jeden objekt. Viz ." +"Nyní můžeme začít s přidáváním objektů do svého dokumentu glabels, jak je ukázáno níže." -#: C/glabels.xml:786(title) -msgid "Object Editor Sidebar" -msgstr "Editor objektů z postranního panelu" +#: C/merge-ex3.page:75(p) C/merge-ex2.page:71(p) C/merge-ex1.page:64(p) +msgid "Adding objects" +msgstr "Přidávání objektů" #. ==== End of Figure ==== -#: C/glabels.xml:797(para) +#: C/merge-ex3.page:79(p) msgid "" -"The object editor will contain a subset of the following tabbed sections, " -"depending on object type:" +"In this example we have a single text object again. This text object " +"contains all of our merge fields organized on multiple lines as a mailing " +"address." msgstr "" -"Editor objektů bude obsahovat některé z následujících karet, které závisí na " -"typu objektu:" - -#: C/glabels.xml:801(title) -msgid "Text Tabbed Section (Text objects)" -msgstr "Karta Text (textové objekty)" +"V tomto příkladu máme opět jen jeden textový objekt. Ten obsahuje všechna " +"slučovaná pole uspořádaná v několika řádcích, představujících poštovní " +"adresy." -#: C/glabels.xml:803(para) +#: C/merge-ex3.page:82(p) msgid "" -"This section contains a small editor for changing the content of a text " -"object. It also contains a dropdown menu of available document merge keys, " -"that can be inserted into text." +"Now we can print our address labels by selecting the FilePrint menu item. This will display the print dialog " +"as shown below." msgstr "" -"Tato karta obsahuje malý editor na úpravu obsahu textového objektu. Rovněž " -"obsahuje vyskakovací nabídku dostupných klíčů slučování dokumentů, které lze " -"do textu vkládat." +"Nyní můžeme své etikety s adresami vytisknout volbou položky nabídky " +"SouborTisk. Zobrazí se dialogové okno " +"tisku, jak jej můžete vidět níže." -#: C/glabels.xml:810(title) -msgid "Image Tabbed Section (Image objecs)" -msgstr "Karta Obrázek (obrázkové objekty)" +#: C/merge-ex3.page:89(p) C/merge-ex2.page:89(p) +msgid "Printing address labels" +msgstr "Tisk etiket s adresami" -#: C/glabels.xml:812(para) +#. ==== End of Figure ==== +#: C/merge-ex3.page:93(p) C/merge-ex2.page:93(p) C/merge-ex1.page:89(p) msgid "" -"This section contains a file entry with preview to select image files. The " -"browse button can be used to easily locate image files. Alternatively, a " -"document merge key can be used instead to provide a filename at print time." +"Just to make sure our labels are going to look okay, we select the " +"Print outlines option and click Print Preview. This " +"will display a print preview dialog as shown below." msgstr "" -"Tato karta obsahuje pole na zadání souboru s obrázkem. Přes tlačítko " -"procházení můžete soubor snadno najít. Druhou možností je použití klíče pro " -"slučování dokumentů, který poskytne název souboru až během tisku." +"Nyní zkontrolujeme, zda vypadají etikety jak mají. Vybereme možnost " +"Tisk obrysů a klikneme na Náhled tisku. Zobrazí se " +"dialogové okno s náhledem tisku, stejně jako na následujícím obrázku." -#: C/glabels.xml:820(title) -msgid "Data Tabbed Section (Barcode objecs)" -msgstr "Karta Data (objekty čárových kódů)" +#: C/merge-ex3.page:100(p) +msgid "Addess labels preview" +msgstr "Náhled etiket s adresami" -#: C/glabels.xml:822(para) +#. ==== End of Figure ==== +#: C/merge-ex3.page:104(p) C/merge-ex2.page:104(p) msgid "" -"This section contains a text entry to enter literal barcode data. " -"Alternatively, a document merge key can be used to provide this data at " -"print time." +"Everything looks good, so we can now load up our printer with the " +"appropriate label stock, print our address labels and start mailing our " +"party invitations." msgstr "" -"Tato karta obsahuje textové pole na zadání dat pro čárový kód. Druhou " -"možností je použití klíče pro slučování dokumentů, přes který jsou data " -"poskytována až během tisku." - -#: C/glabels.xml:829(title) -msgid "Style Tabbed Section (Text objects)" -msgstr "Karta Styl (textové objekty)" +"Vše vypadá dobře a tak můžeme vložit do tiskárny správný list s etiketami, " +"vytisknout adresní štítky a začít rozesílat pozvánky na večírek." -#: C/glabels.xml:831(para) +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/merge-ex2.page:52(None) msgid "" -"This section contains controls to select text properties, including font " -"family, font size, font weight, color, and text justification." +"@@image: 'figures/merge-ex2-1.png'; md5=c9db139c5b7188e101470dc74684a118" msgstr "" -"Tato karta obsahuje ovládací prvky na výběr vlastností textu, včetně typu " -"písma, velikosti písma, tloušťky písma, barvy a zarovnání textu." - -#: C/glabels.xml:838(title) -msgid "Style Tabbed Section (Barcode objecs)" -msgstr "Karta Styl (objekty čárových kódů)" +"@@image: 'figures/merge-ex2-1.png'; md5=c9db139c5b7188e101470dc74684a118" -#: C/glabels.xml:840(para) +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/merge-ex2.page:70(None) msgid "" -"This section contains controls to select barcode properties, including " -"barcode style, color, whether to print text, and whether to include a " -"checksum digit." +"@@image: 'figures/merge-ex2-2.png'; md5=240b4e4ebaa270e0e8bf84c5bfd7233e" msgstr "" -"Tato karta obsahuje ovládací prvky na výběr vlastností čárového kódu, včetně " -"stylu čárového kódu, barvy, zda tisknout text a zda vkládat číslo s " -"kontrolním součtem." - -#: C/glabels.xml:847(title) -msgid "Line Tabbed Section" -msgstr "Karta Čára" +"@@image: 'figures/merge-ex2-2.png'; md5=240b4e4ebaa270e0e8bf84c5bfd7233e" -#: C/glabels.xml:849(para) +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/merge-ex2.page:88(None) msgid "" -"This section contains controls to select properties of lines and outlines. " -"These properties include line width and color." +"@@image: 'figures/merge-ex2-3.png'; md5=c347460091d8eef9f4ec89557fa9f1e2" msgstr "" -"Tato karta obsahuje ovládací prvky na výběr vlastností čar a obrysů. Tyto " -"vlastnosti zahrnují tloušťku čáry a její barvu." +"@@image: 'figures/merge-ex2-3.png'; md5=c347460091d8eef9f4ec89557fa9f1e2" -#: C/glabels.xml:855(title) -msgid "Fill Tabbed Section" -msgstr "Karta Výplň" - -#: C/glabels.xml:857(para) +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/merge-ex2.page:99(None) msgid "" -"This section contains controls to select fill properties of box and ellipse " -"objects. Currently the only fill property is fill color." +"@@image: 'figures/merge-ex2-4.png'; md5=30d12e946a79e27211b835e38742671c" msgstr "" -"Tato karta obsahuje ovládací prvky na výběr vlastností výplně objektů " -"obdélníků a elips. V současnosti obsahuje pouze barvu výplně." +"@@image: 'figures/merge-ex2-4.png'; md5=30d12e946a79e27211b835e38742671c" -#: C/glabels.xml:864(title) -msgid "Size Tabbed Section (All except line objects)" -msgstr "Karta Velikost (všechny objekty vyjma čar)" +#: C/merge-ex2.page:9(desc) +msgid "Create address labels from a CSV file." +msgstr "Vytvoření adresních štítků ze souboru CSV." + +#: C/merge-ex2.page:25(title) +msgid "Example 2: Address labels" +msgstr "Příklad 2: Adresní štítky" -#: C/glabels.xml:866(para) +#: C/merge-ex2.page:27(p) msgid "" -"This section contains controls to select the width and height of an object. " -"A checkbox is provided, so that the current aspect ratio can be locked while " -"manipulating the width and height controls. Image objects also provide a " -"button to reset the size to the image's natural size (Assumes 72DPI)." +"In this example we are going to throw a party and need to print mailing " +"address labels for our invitations. We have a list of our closest friends " +"that we created in gnumeric and exported as the following CSV " +"file. It should be noted that not everyone has a middle initial or a two " +"line address." msgstr "" -"Tato karta obsahuje ovládací prvky na výběr šířky a výšky objektu. K " -"dispozici je zaškrtávací pole, kterým můžete zamknout poměr stran během " -"úprav šířky a výšky. U obrázků je k dispozici rovněž tlačítko, kterým můžete " -"nastavit reálné rozměry obrázku (předpokládá se 72 DPI)." - -#: C/glabels.xml:875(title) -msgid "Size Tabbed Section (Line objects)" -msgstr "Karta Velikost (objekty čar)" +"V tomto příkladu se chystáme uspořádat večírek a potřebujeme vytisknout " +"adresní štítky na své pozvánky. Máme seznam svých nejbližších přátel, který " +"jsem vytvořili v aplikaci gnumeric a vyexportovali jej jako " +"soubor CSV. Povšimněte si, že ne všichni mají přezdívku nebo dvouřádkovou " +"adresu." -#: C/glabels.xml:877(para) +#: C/merge-ex2.page:33(code) +#, no-wrap msgid "" -"This section contains controls to select the length and angle of a line " -"object." -msgstr "Tato karta obsahuje ovládací prvky pro výběr délky a úhlu čáry." - -#: C/glabels.xml:883(title) -msgid "Position Tabbed Section" -msgstr "Karta Pozice" - -#: C/glabels.xml:885(para) -msgid "This section contains controls to change the position of an object." -msgstr "Tato karta obsahuje ovládací prvky pro změnu pozice objektu." - -#: C/glabels.xml:892(title) -msgid "Shadow Tabbed Section (All except image and barcode objects)" -msgstr "Karta Stín (všechny objekty vyjma obrázků a čárových kódů)" - -#: C/glabels.xml:894(para) -msgid "This section contains controls to add a shadow to an object." -msgstr "Tato karta obsahuje ovládací prvky pro přidání stínu k objektu." - -#: C/glabels.xml:903(title) -msgid "Other Manipulations of Objects" -msgstr "Ostatní manipulace s objekty" - -#: C/glabels.xml:905(para) -msgid "Objects can also be manipulated in the following ways." -msgstr "S objekty lze manipulovat ještě následujícími způsoby:" - -#: C/glabels.xml:908(title) -msgid "Moving and Resizing Objects" -msgstr "Přesouvání a změna velikosti objektů" +"\n" +"LAST,FIRST,MI,ADDR1,ADDR2,CITY,STATE,ZIP\n" +",,,,,,,\n" +"Critter,Ess,S,\"123 Faux St.\",,Alexandria,VA,22310\n" +"Doe,John,,\"Apt 1X\",\"451 Mystery St.\",Trenton,NJ,08601\n" +"Summers,Joyce,,\"1630 Revello Dr\",,Sunnydale,CA,95037\n" +"McGarret,Steve,O,\"404 Piikoi Street\",,Honolulu,HI,96813\n" +"Kramer,Cosmo,,\"Apt 5B\",\"129 W. 81 St.\",\"New York\",NY,10024-7207\n" +" " +msgstr "" +"\n" +"PRIJMENI,JMENO,PREZDIVKA,ADR1,ADR2,MESTO,PSC\n" +",,,,,,,\n" +"Pacovský,Tomáš,,\"U dvou akordů\",\"Křižíkova 506\",Praha,\"123 00\"\n" +"Pacovský,František,Ozzák,\"Křižíkova 62\",,\"Praha - Vinohrady\",\"110 00\"\n" +"Divičová,Marcela,,\"Náměstí míru 1\",,Praha,\"150 00\"\n" +"Bůček,Alexandr,Lexa,\"U Jezevce\",\"Nitranská 7\",Praha,\"160 13\"\n" +"Bůčková,Alexandra,,\"Korunní 18\",,Praha,\"100 24\"\n" +" " -#: C/glabels.xml:910(para) +#: C/merge-ex2.page:43(p) msgid "" -"Objects can be moved by simply clicking on a selected object and dragging " -"the object to its new location. If the object is part of an aggregate " -"selection, all objects in the selection will move with the object being " -"dragged, maintaining their relative positions to one another. If no object " -"is selected, clicking on an object will create a new selection containing " -"that object. See ." +"In glabels we have created a new glabels document " +"using the Avery 5512 \"Address Labels\" template. Next we use the " +"ObjectsMerge Properties menu item to " +"display the merge properties dialog. We use this dialog to select " +"the source type (in our case CSV with keys on line 1) and the merge source " +"(filename) as shown." msgstr "" -"Objekty lze přesunout kliknutím na vybraný objekt a tažením objektu na nové " -"místo. Pokud je objekt součástí skupiny označených objektů, budou se s " -"objektem přesouvat všechny vybrané objekty, ale jejich vzájemná pozice " -"zůstane zachovaná. Pokud není žádný objekt vybraný, kliknutí na objekt " -"provede nový výběr tohoto objektu. Viz ." +"V aplikaci gLabels vytvoříme nový dokument ze šablony Avery L7162 " +"„Poštovní etikety“. Následně použijeme položku nabídky ObjektyVlastnosti slučování a zobrazí se nám dialogové okno " +"vlastností slučování. V tomto dialogovém okně vybereme typ zdroje " +"(v našem případě CSV s klíči na 1. řádku) a konkrétní zdroj (název souboru) " +"pro slučování, jak můžete vidět na následujícím obrázku." -#: C/glabels.xml:918(para) +#. ==== End of Figure ==== +#: C/merge-ex2.page:57(p) msgid "" -"A selected object can be resized by clicking one of its resize handle and " -"dragging it to obtain the new size." +"Before applying the merge source, we uncheck the first record since it only " +"contains empty fields. It is an artifact of our original gnumeric " +"spreadsheet and would simply waste our first label. We could also unselect " +"any other records that we didn't want to print a label for." msgstr "" -"U vybraných objektů můžete měnit jejich velikost kliknutím na úchop pro " -"změnu velikosti a jeho tažením tak, abyste dosáhli správné velikost." - -#: C/glabels.xml:924(title) -msgid "Changing Stacking Order" -msgstr "Změna pořadí objektů" +"Před použitím zdroje slučování zrušíme zaškrtnutí prvního záznamu, protože " +"ten obsahuje pouze prázdná pole. To je pozůstatek z naší původní tabulky " +"vytvořené v gnumeric a akorát bychom tím zničili první etiketu. " +"Stejným způsobem můžeme zrušit zaškrtnutí kteréhokoliv záznamu, který " +"nechceme vytisknout." -#: C/glabels.xml:926(para) +#. ==== End of Figure ==== +#: C/merge-ex2.page:62(p) C/merge-ex1.page:55(p) msgid "" -"Stacking order refers to relative position in the z-axis of objects. That is " -"when objects overlap, which object will appear on top of the other. By " -"default, newer objects will appear above older objects. To change this " -"order, select one or more objects and choose ObjectsOrderBring to Front to raise the selection to the top of the stacking " -"order, or choose ObjectsOrderSend to Back to lower " -"the selection to the bottom of the stacking order. These menuitems are also " -"available by right-clicking the display area when there is a non-empty " -"selection." +"We can also view each record in more detail by clicking on the appropriate " +"expander (the little triangles) as shown. Once we are satisfied with the " +"selections in this dialog we click OK to accept the changes." msgstr "" -"Pořadí objektů představuje jejich relativní polohu v ose z. Prakticky to " -"určuje při překrývání objektů, který z nich bude nahoře a který vespod. " -"Standardně se nové objekty vytvářejí nad staršími objekty. Když chcete toto " -"pořadí změnit, jeden nebo více objektů vyberte a zvolte " -"ObjektyPořadíPřenést dopředu pro " -"vynesení výběru na nejvyšší pozici nebo ObjektyPořadíPřenést dozadu pro zatlačení výběru úplně dospod. Tyto položky " -"nabídky jsou přístupné i po kliknutí pravým tlačítkem v zobrazovací oblasti " -"za předpokladu, že jsou vybrané nějaké objekty." - -#: C/glabels.xml:944(title) -msgid "Rotating and Flipping Objects" -msgstr "Otáčení a překlápění objektů" +"U každého záznamu si také můžeme prohlédnou všechny údaje po jeho rozbalení " +"kliknutím na malý trojúhelníček. Až jsme s výběrem v dialogovém okně " +"spokojení, klikneme na OK a změny se použijí." -#: C/glabels.xml:946(para) +#. ==== End of Figure ==== +#: C/merge-ex2.page:75(p) msgid "" -"Objects can be rotated 90 degrees in either direction, or flipped " -"horizontally or vertically, by choosing the appropriate menuitem in the " -"ObjectsRotate/Flip sub-menu. These menuitems are also available by " -"right-clicking the display area when there is a non-empty selection." +"In this example we have a single text object. This text object contains all " +"of our merge fields organized on multiple lines as a mailing address. Notice " +"that fields ${ADDR1} and ${ADDR2} are each located with no other text on " +"their own lines. When glabels encounters a field as the only text " +"on a line, it will not expand the line if the field is empty." msgstr "" -"Objekty lze otáčet po 90stupňových krocích v obou směrech nebo je překlápět " -"svisle nebo vodorovně a to volbou příslušné položky v podnabídce " -"ObjektyOtočit/Překlopit. Tyto položky nabídky jsou přístupné i po kliknutí " -"pravým tlačítkem v zobrazovací oblasti za předpokladu, že jsou vybrané " -"nějaké objekty." - -#: C/glabels.xml:956(title) -msgid "Aligning Objects" -msgstr "Zarovnávání objektů" +"V tomto příkladu máme jen jeden textový objekt. Tento textový objekt " +"obsahuje všechna slučovaná pole uspořádaná v několika řádcích " +"představujících poštovní adresu. Všimněte si, že pole ${ADR1} a ${ADR2} jsou " +"umístěná na samostatných řádcích bez jakéhokoliv dalšího textu. Pokud " +"aplikace gLabels narazí na pole, které je jediným textem na řádku " +"a toto pole je prázdné, řádek nebude ve výsledku zabírat žádné místo." -#: C/glabels.xml:958(para) +#: C/merge-ex2.page:82(p) msgid "" -"Objects can be aligned horizontally or vertically, relative to one another, " -"or relative to the center line of the label, by choosing the appropriate " -"menuitem from the ObjectsAlign " -"Horizontal or ObjectsAlign Horizontal sub-menus. " -"These menuitems are also available by right-clicking the display area when " -"there is a non-empty selection." +"Now we can print our address labels by selecting the FilePrint menu item. This will display print dialog as " +"shown below." msgstr "" -"Objekty lze zarovnávat vodorovně nebo svisle, relativně vůči sobě nebo " -"relativně ke středové čáře etikety, volbou příslušné položky z podnabídky " -"ObjektyZarovnat vodorovně nebo ObjektyZarovnat svisle. Tyto " -"položky nabídky jsou přístupné i po kliknutí pravým tlačítkem v zobrazovací " -"oblasti za předpokladu, že jsou vybrané nějaké objekty." +"Nyní se můžeme pustit do tisku adresních štítků pomocí volby " +"SouborTisk v nabídce. Zobrazí se " +"dialogové okno tisku jako na následujícím obrázku." -#: C/glabels.xml:971(title) -msgid "Using the Property Bar" -msgstr "Používání panelu vlastností" +#: C/merge-ex2.page:100(p) +msgid "Address labels preview" +msgstr "Náhled etiket s adresami" -#: C/glabels.xml:973(para) +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/merge-ex1.page:50(None) msgid "" -"The property bar can be used to change some common properties of objects en-" -"masse. These properties include font family, font size, font weight, text " -"alignment, text color, fill color, line or outline color, and line width. " -"The property bar also controls the defaults for these properties for any " -"newly created objects." +"@@image: 'figures/merge-ex1-1.png'; md5=6e1cda54b797f875f379b657370d87c8" msgstr "" -"Panel vlastností lze použít ke změně některých běžných vlastností objektů " -"jako celku. Tyto vlastnosti zahrnují typ písma, velikost písma, tloušťku " -"písma, zarovnání textu, barvu textu, barvu výplně, barvu čáry nebo obrysu a " -"tloušťku čáry. Přes panel vlastností může také zadat výchozí hodnoty těchto " -"vlastností pro nově vytvářené objekty." - -#: C/glabels.xml:988(title) -msgid "Performing a Document Merge" -msgstr "Provádění slučování dokumentů" +"@@image: 'figures/merge-ex1-1.png'; md5=6e1cda54b797f875f379b657370d87c8" -#: C/glabels.xml:990(para) +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/merge-ex1.page:63(None) msgid "" -"Document Merge (sometimes called \"Mail Merge\") is a powerful feature that " -"allows a unique label or card to be printed for each record in an external " -"data source." +"@@image: 'figures/merge-ex1-2.png'; md5=2ccad04ae5830f5f4a6a601d9fabed6a" msgstr "" -"Slučování dokumentů (někdy také nazývané „hromadná korespondence“) je mocná " -"funkce, která umožňuje vytisknout na etikety nebo vizitky různé texty podle " -"jednotlivých záznamů v externím zdroji dat." +"@@image: 'figures/merge-ex1-2.png'; md5=2ccad04ae5830f5f4a6a601d9fabed6a" -#: C/glabels.xml:994(para) +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/merge-ex1.page:84(None) msgid "" -"The first step to performing a document merge is to prepare a source " -"document that contains your merge data. This data could be mailing addresses " -"or any other data that you wish to create unique labels or cards for. " -"Currently back-ends only exist for text files and the evolution data server " -"-- others are planned. The currently supported text-file format is very " -"simple: each line is a record; fields are delimited by commas (CSV), tabs, " -"or colons; and newlines can be embedded into fields by using the \"\\n\" " -"entity. This file could be created using any text editor or could be created " -"by another program or script. A common way of creating CSV files is to " -"export them from a spreadsheet program." +"@@image: 'figures/merge-ex1-3.png'; md5=858855ab1a392db74b70cdb2bdb27ddd" msgstr "" -"Prvním krokem při slučování dokumentů je příprava zdrojového dokumentu, " -"který má obsahovat slučovaná data. Tato data mohou být poštovní adresy nebo " -"jakákoliv jiná data, pro která si přejete vytvořit jedinečné etikety nebo " -"vizitky. V současnosti jsou zatím jako zdroje podporované pouze textové " -"soubory a datový server Evolution, jiné jsou v plánu. Současně podporovaný " -"formát textových souborů je velmi jednoduchý: co řádek, to záznam; pole jsou " -"oddělená čárkami (CSV), tabulátory nebo dvojtečkami; řádky jsou zakončené " -"pomocí znaku „\\n“. Takovýto soubor jde vytvořit v libovolném textovém " -"editoru nebo jiným programem nebo skriptem. Obvyklým způsobem vytváření " -"souborů CSV je jejich export z tabulkového kalkulátoru." +"@@image: 'figures/merge-ex1-3.png'; md5=858855ab1a392db74b70cdb2bdb27ddd" -#: C/glabels.xml:1006(para) +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/merge-ex1.page:95(None) msgid "" -"A label must then be configured to \"point at\" this data file. To configure " -"the merge properties of a document, choose ObjectsMerge Properties menu item " -"to display the merge properties dialog. This dialog is " -"used to select the exact data file format and file name (location) of the " -"merge data." +"@@image: 'figures/merge-ex1-4.png'; md5=8648ff55dd2e531a1a82b797f0430279" msgstr "" -"Etiketa musí být nastavená tak, aby „ukazovala na“ takovýto datový soubor. " -"Abyste nastavili vlastnosti slučování dokumentu, zvolte položku nabídky " -"ObjektyVlastnosti slučování, zobrazí se dialogové okno vlastnosti " -"slučování. Toto dialogové okno slouží k výběru přesného formátu " -"datového souboru a názvu (umístění) souboru se slučovanými daty." +"@@image: 'figures/merge-ex1-4.png'; md5=8648ff55dd2e531a1a82b797f0430279" -#: C/glabels.xml:1014(para) +#: C/merge-ex1.page:9(desc) +msgid "Create name tags from a CSV file." +msgstr "Vytvoření jmenovek ze souboru CSV." + +#: C/merge-ex1.page:25(title) +msgid "Example 1: Name Tags" +msgstr "Příklad 1: Jmenovky" + +#: C/merge-ex1.page:27(p) msgid "" -"Finally, once the label has been configured for a data file, field keys can " -"be inserted into text objects and used as source or data for barcode objects " -"and image filenames for image objects. See for more information on using merge data for these object " -"types." +"In this example we are organizing an orientation party for the new crew " +"members of our ship. We have a list of freshman crew members that we created " +"in gnumeric and exported as the following CSV file. We could have " +"created this file by using a text editor, but heck it is the 23rd century." msgstr "" -"Nakonec, až je etiketa nastavená pro datový soubor, je zapotřebí vložit " -"klíče polí do textových objektů a použít klíče polí jako zdroje nebo data " -"pro objekty čárových kódů a jako názvy souborů pro obrázkové objekty. Více " -"informací o použití slučovaných dat pro tyto typy objektů viz ." +"V tomto příkladu pořádáme seznamovací párty pro nové členy osádky naší lodi. " +"Máme seznam nováčků v osádce, který jsme vytvořili v aplikaci gnumeric a následně jej vyexportovali do souboru CSV. Mohli bychom jej vytvořit " +"i v textovém editoru, ale žijeme přece v 21. století." -#: C/glabels.xml:1020(para) +#: C/merge-ex1.page:33(code) +#, no-wrap msgid "" -"Now that your label is configured, gLabels will " -"print a unique label for each record in your source document -- substituting " -"fields from each record for field keys in the all text, barcode, and image " -"objects." +"\n" +"Name,Department,SN\n" +"\"Jim Kirk\",Management,\"SC937-0176 CEC\"\n" +"\"Mr. Spock\",Sciences,S179-276SP\n" +"\"Leonard McCoy\",Medicine,unknown\n" +"\"Montgomery Scott\",Engineering,SE-197-54T\n" +" " msgstr "" -"Nyní, když máte svoji etiketu nastavenou, bude aplikace " -"gLabels tisknout jednotlivé etikety odlišné pro " -"každý záznam ve vašem zdrojovém dokumentu - do klíčů polí se ve všech " -"textech budou dosazovat pole z jednotlivých záznamů." +"\n" +"jmeno,zarazeni,cislo\n" +"\"Jiří Kroupa\",vedení,\"SC937-0176 CEC\"\n" +"\"prof. Hrbolek\",vědec,S179-276SP\n" +"\"MUDr. Kroupová\",lékař,unknown\n" +"\"Viktor Hujer\",technik,SE-197-54T\n" +" " -#: C/glabels.xml:1025(para) +#: C/merge-ex1.page:41(p) msgid "" -"See for a detailed tutorial on " -"the document merge feature." +"In gLabels we have created a new glabels document " +"using the Avery 5395 \"Name Badge Labels\" template. Next we use the " +"ObjectsMerge Properties menu item to " +"display the merge properties dialog. We use this dialog to select " +"the source type (in our case CSV with keys on line 1) and the merge source " +"(filename) as shown." msgstr "" -"Podrobný průvodce funkcí slučování dokumentů viz ." +"V aplikaci gLabels máme vytvořený dokument vycházející ze šablony " +"Avery 5395 „Etikety na jmenovky“. Nyní použijeme položku nabídky " +"ObjektyVlastnosti slučování a zobrazí " +"se nám dialogové okno vlastnosti slučování. Toto dialogové okno " +"použijeme k výběru typu zdroje (v našem případě CSV s klíči na 1. řádku) a " +"vlastního zdroje (souboru), jak můžete vidět níže." -#: C/glabels.xml:1040(title) -msgid "Settings" -msgstr "Nastavení" +#. ==== End of Figure ==== +#: C/merge-ex1.page:68(p) +msgid "" +"In this example we have added three text objects and a barcode object. The " +"first text object contains only simple literal text (\"Hello, my name is\"). " +"The second text object contains a single merge field (\"${Name}\") " +"corresponding to the first field of a record (first column of a line) which " +"contains the new crew member's full name. The third text field contains both " +"literal text (\"Department: \") followed by a single merge field " +"(\"${Department}\") corresponding to the second field or the crew member's " +"department. The barcode object is configured to use field (or key) \"SN\" " +"which contains our crew member's starfleet serial number." +msgstr "" +"V tomto příkladu máme přidané tři textové objekty a čárový kód. První " +"textový objekt obsahuje pouze prostý text („Ahoj, jmenuji se“). Druhý " +"textový objekt obsahuje jedno slučované pole („${jmeno}“), které odpovídá " +"prvnímu poli v záznamu (první sloupec v řádku) a které obsahuje celé jméno " +"nového člena osádky. Třetí textové pole obsahuje jak text („Zařazení: “), " +"tak za ním následuje jedno slučované pole („${zarazeni}“), které odpovídá " +"druhému poli se zařazením člena posádky. Objekt s čárovým kódem je nastavený " +"na použití pole (klíče) „cislo“, které obsahuje identifikační číslo člena " +"posádky." -#: C/glabels.xml:1041(para) +#: C/merge-ex1.page:78(p) msgid "" -"To configure gLabels, choose " -"SettingsPreferences. The Preferences dialog " -"contains the following tabbed sections:" +"Now we can print our name tags by selecting the FilePrint menu item. This will display print dialog as " +"shown below." msgstr "" -"Když chcete v aplikaci gLabels změnit nastavení, " -"zvolte UpravitPředvolby. Dialogové okno Předvolby gLabels obsahuje následující karty:" +"Nyní můžeme své jmenovky vytisknout pomocí položky nabídky " +"SouborTisk. Zobrazí se dialogové okno " +"jako na následujícím obrázku." -#: C/glabels.xml:1062(title) -msgid "Locale" -msgstr "Národní prostředí" +#: C/merge-ex1.page:85(p) +msgid "Printing name tags" +msgstr "Tisk jmenovek" -#: C/glabels.xml:1066(guilabel) -msgid "Units" -msgstr "Jednotky" +#: C/merge-ex1.page:96(p) +msgid "Name tags preview" +msgstr "Náhled jmenovek" -#: C/glabels.xml:1068(para) +#. ==== End of Figure ==== +#: C/merge-ex1.page:100(p) msgid "" -"Use this radio button group to specify your preferred units. Select one of " -"the following options:" +"Everything looks good, so we can now load up our printer with the " +"appropriate label stock, print our name tags and start beaming our guests " +"aboard." msgstr "" -"Tento skupinový přepínač použijte k určení svých upřednostňovaných jednotek. " -"Vyberte jednu z následujících možností:" - -#: C/glabels.xml:1073(guilabel) -msgid "Points" -msgstr "Body" +"Vše vypadá v pořádku, takže můžeme do tiskárny vložit správný list s " +"etiketami, vytisknout jmenovky a vzhůru na palubu nalodit naše hosty." -#: C/glabels.xml:1074(para) -msgid "Use points (1 point = 1/72 in = 0.352778 mm)." -msgstr "Použít body (1 bod = 1/72 palce = 0,352778 mm)." +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/mancreate.page:340(None) +msgid "" +"@@image: 'figures/glabels-template-rect-label.png'; " +"md5=9c7ae1c1a888e1c9eefd19655d093971" +msgstr "" +"@@image: 'figures/glabels-template-rect-label.png'; " +"md5=9c7ae1c1a888e1c9eefd19655d093971" -#: C/glabels.xml:1078(guilabel) -msgid "Inches" -msgstr "Palce" +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/mancreate.page:392(None) +msgid "" +"@@image: 'figures/glabels-template-ellipse-label.png'; " +"md5=ba612c86b5fb8fcd2b5384ecc1c331d2" +msgstr "" +"@@image: 'figures/glabels-template-ellipse-label.png'; " +"md5=ba612c86b5fb8fcd2b5384ecc1c331d2" -#: C/glabels.xml:1079(para) -msgid "Use inches." -msgstr "Použít palce (1 palec = 25,4 mm)." +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/mancreate.page:439(None) +msgid "" +"@@image: 'figures/glabels-template-circle-label.png'; " +"md5=841e36a1f92aeed01e8fbaacc67758f1" +msgstr "" +"@@image: 'figures/glabels-template-circle-label.png'; " +"md5=841e36a1f92aeed01e8fbaacc67758f1" -#: C/glabels.xml:1083(guilabel) -msgid "Millimeters" -msgstr "Milimetry" +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/mancreate.page:500(None) +msgid "" +"@@image: 'figures/glabels-template-cd-label.png'; " +"md5=c7952ac1b26ecbfa53facfbbf6486841" +msgstr "" +"@@image: 'figures/glabels-template-cd-label.png'; " +"md5=c7952ac1b26ecbfa53facfbbf6486841" -#: C/glabels.xml:1084(para) -msgid "Use millimeters." -msgstr "Použít milimetry." +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/mancreate.page:762(None) +msgid "" +"@@image: 'figures/glabels-template-layout.png'; " +"md5=fe1c9652d5448b2e0ece086777d3a287" +msgstr "" +"@@image: 'figures/glabels-template-layout.png'; " +"md5=fe1c9652d5448b2e0ece086777d3a287" -#: C/glabels.xml:1087(para) -msgid "Default: Inches." -msgstr "Výchozí : Palce." +#: C/mancreate.page:10(desc) +msgid "Create your templates manually." +msgstr "Vytvářejte své šablony ručně." -#: C/glabels.xml:1093(guilabel) -msgid "Default page size" -msgstr "Výchozí velikost stránky" +#: C/mancreate.page:26(title) +msgid "Manually creating new templates" +msgstr "Ruční vytváření nových šablon" -#: C/glabels.xml:1095(para) +#. ****************** +#: C/mancreate.page:33(p) msgid "" -"Use this radio button group to specify your preferred page size. This will " -"make it quicker for you to locate media types when creating a new label or " -"card." +"This page is a reference guide to manually creating gLabels " +"templates. gLabels templates are defined in simple XML files as " +"described in the DTD: glabels-2.3.dtd (this DTD also describes other XML files " +"used by gLabels)." msgstr "" -"Tento skupinový přepínač použijte k určení své upřednostňované velikosti " -"stránky. Urychlí vám to hledání typu média při vytváření nové etikety nebo " -"vizitky." +"Tato stránka je příručkou k ručnímu vytváření šablon gLabels. " +"Šablony gLabels jsou definovány v jednoduchých souborech XML, " +"které jsou popsány v DTD: glabels-2.3.dtd (toto DTD popisuje i ostatní " +"formáty XML používané v aplikaci gLabels)." -#: C/glabels.xml:1101(guilabel) -msgid "US Letter" -msgstr "US Letter" +#: C/mancreate.page:38(p) +msgid "" +"Manually created template files should be placed in the ${HOME}/." +"glabels and be named with a .template extension." +msgstr "" +"Soubory s ručně vytvořenými šablonami by měly být umístěny ve složce " +"${HOME}/.glabels a jejich název by měl mít příponu .template." -#: C/glabels.xml:1102(para) +#: C/mancreate.page:42(p) msgid "" -"Most of your media will be of the US Letter page size (8.5 x 11 inches)." -msgstr "Většina vašich médií má velikost stránky US Letter (8,5 × 11 palců)." +"gLabels searches for templates in several other locations as " +"defined here:" +msgstr "" +"Aplikace gLabels hledá šablony na několika další místech, " +"konkrétně na těchto:" -#: C/glabels.xml:1106(guilabel) -msgid "ISO A4" -msgstr "ISO A4" +#: C/mancreate.page:45(p) +msgid "Location" +msgstr "Umístění" -#: C/glabels.xml:1107(para) -msgid "Most of your media will be of the ISO A4 page size (210 x 297 mm)." -msgstr "Většina vašich médií má velikost stránky ISO A4 (210 × 297 mm)." +#: C/mancreate.page:46(p) C/mancreate.page:173(p) C/mancreate.page:237(p) +#: C/mancreate.page:301(p) C/mancreate.page:364(p) C/mancreate.page:415(p) +#: C/mancreate.page:462(p) C/mancreate.page:535(p) C/mancreate.page:562(p) +#: C/mancreate.page:600(p) C/mancreate.page:634(p) C/mancreate.page:676(p) +#: C/mancreate.page:726(p) +msgid "Description" +msgstr "Popis" -#: C/glabels.xml:1110(para) -msgid "Default: US Letter." -msgstr "Výchozí: US Letter." +#: C/mancreate.page:53(file) +msgid "${prefix}/share/libglabels-3.0/templates" +msgstr "${prefix}/share/libglabels-3.0/templates" -#: C/glabels.xml:1119(title) -msgid "Object defaults" -msgstr "Výchozí hodnoty objektu" +#: C/mancreate.page:54(p) +msgid "Predefined templates distributed with gLabels." +msgstr "Předdefinované šablony šířené s aplikací gLabels." -#: C/glabels.xml:1125(para) +#: C/mancreate.page:55(p) msgid "" -"Use these controls to set the default properties of new text objects. These " -"properties are" +"${prefix} is usually /usr or /usr/local, depending on where gLabels was installed." msgstr "" -"Použijte tyto ovládací prvky k nastavení výchozích vlastností nových " -"textových objektů. Tyto vlastnosti jsou:" +"${prefix} je obvykle /usr nebo /usr/local podle toho, kde je nainstalována vlastní aplikace gLabels." -#: C/glabels.xml:1130(guilabel) -msgid "Font" -msgstr "Písmo" +#: C/mancreate.page:59(file) +msgid "${XDG_CONFIG_HOME}/libglabels/templates" +msgstr "${XDG_CONFIG_HOME}/libglabels/templates" -#: C/glabels.xml:1131(para) +#: C/mancreate.page:60(p) msgid "" -"These controls are used to select font family and font size, and whether the " -"font should bold or in italics." +"User defined templates created with the gLabelsTemplate " +"Designer. Do not put manually created templates in this directory." +"" msgstr "" -"Tyto ovládací prvky slouží k nastavení rodiny písma a velikosti písma a zda " -"by mělo být písmo tučné nebo kurzívou." - -#: C/glabels.xml:1136(guilabel) C/glabels.xml:1161(guilabel) -#: C/glabels.xml:1176(guilabel) -msgid "Color" -msgstr "Barva" +"Uživatelem definované šablony vytvořené pomocí Návrháře šablon " +"gLabels. Neumisťujte do této složky ručně vytvořené šablony." -#: C/glabels.xml:1137(para) -msgid "This control selects the default text color." -msgstr "Tímto ovládacím prvkem se vybírá výchozí barva textu." +#: C/mancreate.page:62(p) +msgid "" +"If ${XDG_CONFIG_HOME} is not defined, it defaults to " +"${HOME}/.config." +msgstr "" +"Pokud není ${XDG_CONFIG_HOME} definováno, použije se výchozí " +"${HOME}/.config." -#: C/glabels.xml:1141(guilabel) -msgid "Alignment" -msgstr "Zarovnání" +#: C/mancreate.page:66(file) +msgid "${HOME}/.glabels" +msgstr "${HOME}/.glabels" -#: C/glabels.xml:1142(para) +#: C/mancreate.page:67(p) msgid "" -"These controls are used to select the default text alignment (left, center " -"or right)." +"User defined templates that have been created manually should be placed in " +"this directory. Older versions of the gLabelsTemplate " +"Designer (prior to 3.0) would also put templates in this directory." msgstr "" -"Tyto ovládací prvky slouží k výběru výchozího zarovnání textu (vlevo, na " -"střed nebo vpravo)." +"Uživatelem definované šablony, které byly vytvořeny ručně, by měly být " +"umístěny v této složce. Do této složky by ukládaly šablony také starší verze " +"Návrháře šablon gLabels (před verzí 3.0)." -#: C/glabels.xml:1151(para) +#: C/mancreate.page:75(p) msgid "" -"Use these controls to set the default properties of lines and outlines of " -"new objects. These properties are" +"Completed template files can be sent to the gLabels template " +"mailing list for possible inclusion in future versions of gLabels." msgstr "" -"Použijte tyto ovládací prvky k nastavení výchozích vlastností čar a obrysů " -"nových objektů. Tyto vlastnosti jsou:" - -#: C/glabels.xml:1156(guilabel) -msgid "Width" -msgstr "Šířka" - -#: C/glabels.xml:1157(para) -msgid "This control selects the default line width." -msgstr "Tímto ovládacím prvkem se vybírá výchozí šířka čáry." +"Soubory s hotovými šablonami můžete posílat do poštovní konference o šablonách " +"gLabels a možná budou zařazeny jako součást příští verze " +"gLabels." -#: C/glabels.xml:1162(para) -msgid "This control selects the default line color." -msgstr "Tímto ovládacím prvkem se vybírá výchozí barva čáry." - -#: C/glabels.xml:1169(guilabel) -msgid "Fill" -msgstr "Výplň" +#: C/mancreate.page:89(title) +msgid "Assumptions/caveats" +msgstr "Předpoklady/upozornění" -#: C/glabels.xml:1171(para) +#: C/mancreate.page:92(p) msgid "" -"Use these controls to set the default fill properties of new objects. These " -"properties are" +"A sheet contains only one size of label or card (if a sheet contains more " +"than one size of item, it can be split into multiple templates for multiple " +"pass printing)" msgstr "" -"Použijte tyto ovládací prvky k nastavení výchozích vlastností výplně nových " -"objektů. Tyto vlastnosti jsou:" +"Stránka obsahuje etiketu nebo vizitku pouze jedné velikosti (pokud má " +"stránka obsahovat více než jednu velikost položky, můžete ji rozdělit do " +"více šablon a vytisknout na vícekrát)" -#: C/glabels.xml:1177(para) -msgid "This control selects the default fill color." -msgstr "Tento ovládací prvek slouží k výběru výchozí barvy výplně." +#: C/mancreate.page:97(p) +msgid "" +"Distances can be expressed in units of pt, " +"in, mm, cm, or pc. For " +"example: \"1.0in\" or \"2.54cm\". If no units are specified, computer points (pt) will be assumed (1 pt = 1/72 in = 0.352778 mm)." +msgstr "" +"Rozměry mohou být uváděny v jednotkách pt, " +"in, mm, cm nebo pc a s tečkou " +"jako desetinným oddělovačem. Například: „1.0in“ nebo „2.54cm“. Pokud není žádná " +"jednotka uvedená, budou předpokládány body pt " +"(1 pt = 1/72 in = 0,352778 mm)." + +#: C/mancreate.page:118(title) +msgid "Template Files" +msgstr "Soubory šablon" -#: C/glabels.xml:1191(title) -msgid "Document Merge Tutorial" -msgstr "Průvodce slučováním dokumentů" +#: C/mancreate.page:120(p) +msgid "" +"A template file contains a single Glabels-templates top-level node." +msgstr "" +"Soubor se šablonou obsahuje jeden uzel nejvyšší úrovně Glabels-templates." -#: C/glabels.xml:1193(para) +#: C/mancreate.page:123(code) +#, no-wrap msgid "" -"Document Merge (sometimes called \"Mail Merge\") is a powerful feature that " -"allows a unique label or card to be printed for each record in an external " -"data source. It is however, the most mis-understood feature of " -"gLabels. The following examples will step through " -"a couple of common tasks using the document merge feature." +"\n" +"<?xml version=\"1.0\"?>\n" +"<Glabels-templates>\n" +"\n" +" ...templates...\n" +"\n" +"</Glabels-templates>" msgstr "" -"Slučování dokumentů (někdy také nazývané „hromadná korespondence“) je mocná " -"funkce, díky které můžete tisknout odlišné etikety nebo vizitky pro každý " -"záznam v externím zdroji dat. Je však také ze všech funkcí aplikace " -"gLabels nejnáročnější na pochopení. Následující " -"příklady vás provedou dvojicí obvyklých úloh, které používají funkci " -"slučování dokumentů." +"\n" +"<?xml version=\"1.0\"?>\n" +"<Glabels-templates>\n" +"\n" +" …šablony…\n" +"\n" +"</Glabels-templates>" -#: C/glabels.xml:1201(title) -msgid "Example 1: Name Tags Using a CSV File" -msgstr "Příklad 1: Jmenovky s použitím souboru CSV" +#: C/mancreate.page:132(title) +msgid "Example Template" +msgstr "Příklad šablony" -#: C/glabels.xml:1203(para) +#: C/mancreate.page:133(desc) msgid "" -"In this example we are organizing an orientation party for the new crew " -"members of our ship. We have a list of freshman crew members that we created " -"in gnumeric and exported as the following CSV " -"file. We could have created this file by using a text editor, but heck it is " -"the 23rd century." +"Example gLabels template file containing a single Template node." msgstr "" -"V tomto příkladu pořádáme seznamovací párty pro nové členy osádky naší lodi. " -"Máme seznam nováčků v osádce, který jsme vytvořili v aplikaci " -"gnumeric a následně jej vyexportovali do souboru " -"CSV. Mohli bychom jej vytvořit i v textovém editoru, ale žijeme přece v 21. " -"století." +"Příklad souboru se šablonou gLabels obsahujícího jeden uzel Template." -#: C/glabels.xml:1209(programlisting) +#: C/mancreate.page:135(code) #, no-wrap msgid "" "\n" -"Name,Department,SN\n" -"\"Jim Kirk\",Management,\"SC937-0176 CEC\"\n" -"\"Mr. Spock\",Sciences,S179-276SP\n" -"\"Leonard McCoy\",Medicine,unknown\n" -"\"Montgomery Scott\",Engineering,SE-197-54T\n" -" " +"<?xml version=\"1.0\"?>\n" +"<Glabels-templates>\n" +"\n" +" <Template brand=\"Avery\" part=\"8160\" size=\"US-Letter\" description=\"Mailing Labels\">\n" +" <Meta category=\"label\"/>\n" +" <Meta category=\"mail\"/>\n" +" <Meta product_url=\"http://www.avery.com/avery/en_us/\"/>\n" +" <Label-rectangle id=\"0\" width=\"189pt\" height=\"72pt\" round=\"5pt\">\n" +" <Markup-margin size=\"5pt\"/>\n" +" <Layout nx=\"3\" ny=\"10\" x0=\"11.25pt\" y0=\"36pt\" dx=\"200pt\" dy=\"72pt\"/>\n" +" </Label-rectangle>\n" +" </Template>\n" +"\n" +"</Glabels-templates>" msgstr "" "\n" -"jmeno,zarazeni,cislo\n" -"\"Jiří Kroupa\",vedení,\"SC937-0176 CEC\"\n" -"\"prof. Hrbolek\",vědec,S179-276SP\n" -"\"MUDr. Kroupová\",lékař,unknown\n" -"\"Viktor Hujer\",technik,SE-197-54T\n" -" " +"<?xml version=\"1.0\"?>\n" +"<Glabels-templates>\n" +"\n" +" <Template brand=\"Avery\" part=\"8160\" size=\"US-Letter\" description=\"Mailing Labels\">\n" +" <Meta category=\"label\"/>\n" +" <Meta category=\"mail\"/>\n" +" <Meta product_url=\"http://www.avery.com/avery/en_us/\"/>\n" +" <Label-rectangle id=\"0\" width=\"189pt\" height=\"72pt\" round=\"5pt\">\n" +" <Markup-margin size=\"5pt\"/>\n" +" <Layout nx=\"3\" ny=\"10\" x0=\"11.25pt\" y0=\"36pt\" dx=\"200pt\" dy=\"72pt\"/>\n" +" </Label-rectangle>\n" +" </Template>\n" +"\n" +"</Glabels-templates>" + +#: C/mancreate.page:163(title) +msgid "Template Node" +msgstr "Uzel Template" -#: C/glabels.xml:1217(para) +#: C/mancreate.page:165(p) msgid "" -"In gLabels we have created a new " -"gLabels document using the Avery 5395 \"Name " -"Badge Labels\" template. Next we use the ObjectsMerge Properties menu item " -"to display the merge properties dialog. We use this " -"dialog to select the source type (in our case CSV) and the merge source " -"(filename) as shown." +"A Template node describes a single stationery " +"product. It must contain one instance of any type of Label node (Label-rectangle, Label-round, or Label-cd)." msgstr "" -"V aplikaci gLabels máme vytvořený dokument " -"vycházející ze šablony Avery 5395 „Etikety na jmenovky“. Nyní použijeme " -"položku nabídky ObjektyVlastnosti slučování a " -"zobrazí se nám dialogové okno vlastnosti slučování. " -"Toto dialogové okno použijeme k výběru typu zdroje (v našem případě CSV) a " -"vlastního zdroje (souboru), jak můžete vidět níže." +"Uzel Template popisuje jeden pevně daný " +"výrobek. Musí obsahovat jednu instanci libovolného uzlu Label (Label-rectangle, Label-round nebo Label-cd)." -#: C/glabels.xml:1227(title) C/glabels.xml:1344(title) -#: C/glabels.xml:1460(title) -msgid "Merge properties dialog" -msgstr "Dialogové okno vlastností slučování" +#: C/mancreate.page:173(p) C/mancreate.page:301(p) C/mancreate.page:364(p) +#: C/mancreate.page:415(p) C/mancreate.page:462(p) C/mancreate.page:535(p) +#: C/mancreate.page:562(p) C/mancreate.page:600(p) C/mancreate.page:634(p) +#: C/mancreate.page:676(p) C/mancreate.page:726(p) +msgid "Property" +msgstr "Vlastnost" -#. ==== End of Figure ==== -#: C/glabels.xml:1238(para) -msgid "" -"Before applying the merge source, we uncheck the first record since it is " -"only column headers from our original gnumeric " -"spreadsheet and would simply waste our first label. We could also unselect " -"any other records that we didn't want to print a label for." -msgstr "" -"Před použitím zdroje slučování zrušíme zaškrtnutí prvního záznamu, protože " -"ten obsahuje pouze záhlaví sloupců z naší původní tabulky v " -"gnumeric a akorát bychom tím zničili první " -"etiketu. Stejným způsobem můžeme zrušit zaškrtnutí kteréhokoliv záznamu, " -"který nechceme vytisknout." +#: C/mancreate.page:179(code) +#, no-wrap +msgid "brand" +msgstr "brand" -#: C/glabels.xml:1243(para) C/glabels.xml:1361(para) -msgid "" -"We can also view each record in more detail by clicking on the appropriate " -"expander (the little triangles) as shown. Once we are satisfied with the " -"selections in this dialog we click OK to accept the " -"changes." -msgstr "" -"U každého záznamu si také můžeme prohlédnou všechny údaje po jeho rozbalení " -"kliknutím na malý trojúhelníček. Až jsme s výběrem v dialogovém okně " -"spokojení, klikneme na OK a změny se použijí." +#: C/mancreate.page:180(p) +msgid "Brand or manufacturer of stationery product. E.g. \"Avery\"" +msgstr "Značka nebo výrobce papírenského produktu. Např. \"S&K Label\"" -#: C/glabels.xml:1248(para) C/glabels.xml:1366(para) -msgid "" -"Now we start adding objects to our gLabels " -"document as shown." -msgstr "" -"Nyní můžeme začít s přidáváním objektů do svého dokumentu " -"gLabels, jak je zobrazeno níže." +#: C/mancreate.page:183(code) +#, no-wrap +msgid "part" +msgstr "part" -#: C/glabels.xml:1252(title) C/glabels.xml:1370(title) -#: C/glabels.xml:1488(title) -msgid "Adding objects" -msgstr "Přidávání objektů" +#: C/mancreate.page:184(p) +msgid "Part number or name of stationery product. E.g. \"8160\"" +msgstr "Produktové číslo nebo název papírenského produktu. Např. \"8160\"" -#. ==== End of Figure ==== -#: C/glabels.xml:1263(para) -msgid "" -"In this example we have added three text objects and a barcode object. The " -"first text object contains only simple literal text (\"Hello, my name is\"). " -"The second text object contains a single merge field (\"${1}\") " -"corresponding to the first field of a record (first column of a line) which " -"contains the new crew member's full name. The third text field contains both " -"literal text (\"Department: \") followed by a single merge field (\"${2}\") " -"corresponding to the second field or the crew member's department. The " -"barcode object is configured to use field (or key) \"3\" which contains our " -"crew member's starfleet serial number." -msgstr "" -"V tomto příkladu máme přidané tři textové objekty a čárový kód. První " -"textový objekt obsahuje pouze prostý text („Ahoj, jmenuji se“). Druhý " -"textový objekt obsahuje jedno slučované pole („${1}“), které odpovídá " -"prvnímu poli v záznamu (první sloupec v řádku) a které obsahuje celé jméno " -"nového člena osádky. Třetí textové pole obsahuje jak text („Zařazení: “), " -"tak za ním následuje jedno slučované pole („${2}“), které odpovídá druhému " -"poli se zařazením člena posádky. Objekt s čárovým kódem je nastavený na " -"použití pole (klíče) „3“, které obsahuje identifikační číslo člena posádky." +#: C/mancreate.page:187(code) C/mancreate.page:541(code) +#, no-wrap +msgid "size" +msgstr "size" -#: C/glabels.xml:1273(para) +#: C/mancreate.page:188(p) msgid "" -"Now we can print our name tags by selecting the FilePrint menu item. This will " -"display print dialog as shown below." +"Size of sheet. E.g., \"US-Letter\", \"A4\", ..." msgstr "" -"Nyní můžeme své jmenovky vytisknout pomocí položky nabídky " -"SouborTisk. Zobrazí se dialogové okno jako na následujícím obrázku." +"Velikost stránky. Např. \"US-Letter\", \"A4\", …" -#: C/glabels.xml:1280(title) -msgid "Printing name tags" -msgstr "Tisk jmenovek" +#: C/mancreate.page:193(code) +#, no-wrap +msgid "description" +msgstr "description" -#. ==== End of Figure ==== -#: C/glabels.xml:1291(para) C/glabels.xml:1406(para) C/glabels.xml:1520(para) -msgid "" -"Just to make sure our labels are going to look okay, we select the " -"Print outlines option and click Print " -"Preview. This will display a print preview dialog as shown below." -msgstr "" -"Nyní zkontrolujeme, zda vypadají etikety jak mají. Vybereme možnost " -"Tisk obrysů a klikneme na Náhled tisku. Zobrazí se dialogové okno s náhledem tisku, stejně jako na " -"následujícím obrázku." +#: C/mancreate.page:194(p) +msgid "Description of stationery product. E.g, \"Mailing Labels.\"" +msgstr "Popis papírenského produktu. Např. \"Mailing Labels.\"" -#: C/glabels.xml:1298(title) -msgid "Name tags preview" -msgstr "Náhled jmenovek" +#: C/mancreate.page:197(code) +#, no-wrap +msgid "_description" +msgstr "_description" -#. ==== End of Figure ==== -#: C/glabels.xml:1309(para) +#: C/mancreate.page:198(p) msgid "" -"Everything looks good, so we can now load up our printer with the " -"appropriate label stock, print our name tags and start beaming our guests " -"aboard." +"Translatable description of stationery product. E.g, \"Mailing Labels." +"\" (Only useful for predefined templates)" msgstr "" -"Vše vypadá v pořádku, takže můžeme do tiskárny vložit správný list s " -"etiketami, vytisknout jmenovky a vzhůru na palubu nalodit naše hosty." +"Popis papírenského produktu s možností překladu. Např. \"Mailing Labels." +"\" (Použitelné pouze pro předdefinované šablony)" -#: C/glabels.xml:1316(title) -msgid "Example 2: Address Labels Using a CSV File" -msgstr "Příklad 2: Adresní štítky s použitím souboru CSV" +#: C/mancreate.page:202(code) C/mancreate.page:311(code) +#: C/mancreate.page:374(code) C/mancreate.page:480(code) +#, no-wrap +msgid "width" +msgstr "width" -#: C/glabels.xml:1318(para) -msgid "" -"In this example we are going to throw a party and need to print mailing " -"address labels for our invitations. We have a list of our closest friends " -"that we created in gnumeric and exported as the " -"following CSV file. It should be noted that not everyone has a middle " -"initial or a two line address." -msgstr "" -"V tomto příkladu se chystáme uspořádat večírek a potřebujeme vytisknout " -"adresní štítky na své pozvánky. Máme seznam svých nejbližších přátel, který " -"jsem vytvořili v aplikaci gnumeric a " -"vyexportovali jej jako soubor CSV. Povšimněte si, že ne všichni mají " -"přezdívku nebo dvouřádkovou adresu." +#: C/mancreate.page:203(p) +msgid "Page width. Only valid if size=\"Other\"" +msgstr "Šířka stránky. Platné jen v případě, že size=\"Other\"" + +#: C/mancreate.page:206(code) C/mancreate.page:315(code) +#: C/mancreate.page:378(code) C/mancreate.page:485(code) +#, no-wrap +msgid "height" +msgstr "height" + +#: C/mancreate.page:207(p) +msgid "Page height. Only valid if size=\"Other\"" +msgstr "Výška stránky. Platné jen v případě, že size=\"Other\"" -#: C/glabels.xml:1324(programlisting) +#: C/mancreate.page:210(code) #, no-wrap +msgid "equiv" +msgstr "equiv" + +#: C/mancreate.page:211(p) msgid "" -"\n" -"LAST,FIRST,MI,ADDR1,ADDR2,CITY,STATE,ZIP\n" -",,,,,,,\n" -"Critter,Ess,S,\"123 Faux St.\",,Alexandria,VA,22310\n" -"Doe,John,,\"Apt 1X\",\"451 Mystery St.\",Trenton,NJ,08601\n" -"Summers,Joyce,,\"1630 Revello Dr\",,Sunnydale,CA,95037\n" -"McGarret,Steve,O,\"404 Piikoi Street\",,Honolulu,HI,96813\n" -"Kramer,Cosmo,,\"Apt 5B\",\"129 W. 81 St.\",\"New York\",NY,10024-7207\n" -" " +"Equivalent part number. If this property is present, the template is a clone " +"of another template of the same brand. The template will inherit all " +"properties, except brand and name from the other template. This equiv " +"property must refer to a previously defined template - gLabels " +"does not currently support forward references." msgstr "" -"\n" -"PRIJMENI,JMENO,PREZDIVKA,ADR1,ADR2,MESTO,PSC\n" -",,,,,,,\n" -"Pacovský,Tomáš,,\"U dvou akordů\",\"Křižíkova 506\",Praha,\"123 00\"\n" -"Pacovský,František,Ozzák,\"Křižíkova 62\",,\"Praha - Vinohrady\",\"110 00\"\n" -"Divićová,Marcela,,\"Náměstí míru 1\",,Praha,\"150 00\"\n" -"Bůček,Alexandr,Lexa,\"U Jezevce\",\"Nitranská 7\",Praha,\"160 13\"\n" -"Bůčková,Alexandra,,\"Korunní 18\",,Praha,\"100 24\"\n" -" " +"Ekvivalentní produktové číslo. Pokud je tato vlastnost nastavena, je šablona " +"klonem jiné šablony téže značky. Šablona pak dědí všechny vlastnosti z jiné " +"šablony, vyjma značky a názvu. Tato vlastnost se musí odkazovat na šablonu " +"definovanou dříve – aplikace gLabels v současnosti nepodporuje " +"dopředné odkazy." -#: C/glabels.xml:1334(para) +#: C/mancreate.page:229(title) +msgid "Meta Node" +msgstr "Uzel Meta" + +#: C/mancreate.page:231(p) msgid "" -"In gLabels we have created a new " -"gLabels document using the Avery 5512 \"Address " -"Labels\" template. Next we use the ObjectsMerge Properties menu item " -"to display the merge properties dialog. We use this " -"dialog to select the source type (in our case CSV) and the merge source " -"(filename) as shown." +"A Meta node contains some additional " +"information about the template. A Template " +"node may contain zero or more Meta nodes." msgstr "" -"V aplikaci gLabels vytvoříme nový dokument ze " -"šablony Avery L7162 „Poštovní etikety“. Následně použijeme položku nabídky " -"ObjektyVlastnosti slučování a zobrazí se nám dialogové okno " -"vlastností slučování. V tomto dialogovém okně vybereme " -"typ zdroje (v našem případě CSV) a konkrétní zdroj (název souboru) pro " -"slučování, jak můžete vidět na následujícím obrázku." +"Uzel Meta obsahuje některé doplňující " +"informace o šabloně. Uzel Template může " +"obsahovat žádný nebo více uzlů Meta." -#. ==== End of Figure ==== -#: C/glabels.xml:1355(para) -msgid "" -"Before applying the merge source, we uncheck the first record since it is " -"only column headers from our original gnumeric " -"spreadsheet and would simply waste our first label. We also unselect the " -"second record which is empty (an artifact of our original spreadsheet). We " -"could also unselect any other records that we didn't want to print a label " -"for." -msgstr "" -"Před tím, než zdroj pro slučován použijeme, zrušíme zaškrtnutí prvního " -"záznamu, protože ten obsahuje pouze záhlaví sloupců z původní tabulky v " -"gnumeric a akorát bychom tím znehodnotili první " -"etiketu. Zrušíme zaškrtnutí i druhého záznamu, protože je prázdný (což je " -"pozůstatek z tabulkového kalkulátoru). A stejným způsobem můžeme vyřadit " -"kterýkoliv jiný záznam, který nechceme na etikety vytisknout." +#: C/mancreate.page:237(p) +msgid "Subnode" +msgstr "Podřízený uzel" -#. ==== End of Figure ==== -#: C/glabels.xml:1381(para) +#: C/mancreate.page:243(code) +#, no-wrap +msgid "category" +msgstr "category" + +#: C/mancreate.page:244(p) msgid "" -"In this example we have a single text object. This text object contains all " -"of our merge fields organized on multiple lines as a mailing address. Notice " -"that fields ${4} and ${5} (corresponding to ADDR1 and ADDR2) are each " -"located with no other text on their own lines. When gLabels encounters a field as the only text on a line, it will not " -"expand the line if the field is empty." +"A category for the template. A template can belong to multiple categories by " +"simply adding multiple Meta nodes to the " +"parent Template node. Template categories are " +"used by the gLabelsNew Label Dialog to filter the " +"results of template searches." msgstr "" -"V tomto příkladu máme jen jeden textový objekt. Tento textový objekt " -"obsahuje všechna slučovaná pole uspořádaná v několika řádcích " -"představujících poštovní adresu. Všimněte si, že pole ${4} a ${5} (ta " -"odpovídají ADR1 a ADR2) jsou umístěná na samostatných řádcích bez " -"jakéhokoliv dalšího textu. Pokud aplikace gLabels " -"narazí na pole, které je jediným textem na řádku a toto pole je prázdné, " -"řádek nebude ve výsledku zabírat žádné místo." +"Kategorie pro šablonu. Šablona může patřit do více kategorií jednoduše tak, " +"že přidáte více uzlů Meta do rodičovského uzlu " +"Template. Kategorie šablony využívá aplikace " +"gLabels v dialogovém okně Nová etiketa či vizitka, aby " +"vám mohla vyfiltrovat nalezené šablony." -#: C/glabels.xml:1388(para) +#: C/mancreate.page:251(p) msgid "" -"Now we can print our address labels by selecting the " -"FilePrint menu item. This will display print dialog as shown below." +"The value of this category must match a predefined category ID defined in " +"the file ${prefix}/libglabels-3.0/templates/categories.xml. " +"Currently defined category IDs include:" msgstr "" -"Nyní se můžeme pustit do tisku adresních etiket pomocí volby " -"SouborTisk v nabídce. Zobrazí se dialogové okno tisku jako na následujícím " -"obrázku." +"Hodnota kategorie musí odpovídat jednomu z předdefinovaných ID kategorie ze " +"souboru ${prefix}/libglabels-3.0/templates/categories.xml. " +"Aktuálně jsou definovány tato ID kategorií:" -#: C/glabels.xml:1395(title) C/glabels.xml:1509(title) -msgid "Printing address labels" -msgstr "Tisk etiket s adresami" +#: C/mancreate.page:255(code) +#, no-wrap +msgid "label" +msgstr "label (etiketa)" -#: C/glabels.xml:1413(title) C/glabels.xml:1527(title) -msgid "Address labels preview" -msgstr "Náhled etiket s adresami" +#: C/mancreate.page:256(code) +#, no-wrap +msgid "round-label" +msgstr "round-label (etiketa se zaoblenými rohy)" -#. ==== End of Figure ==== -#: C/glabels.xml:1424(para) C/glabels.xml:1538(para) +#: C/mancreate.page:257(code) +#, no-wrap +msgid "elliptical-label" +msgstr "elliptical-label (eliptická etiketa)" + +#: C/mancreate.page:258(code) +#, no-wrap +msgid "square-label" +msgstr "square-label (čtvercová etiketa)" + +#: C/mancreate.page:259(code) +#, no-wrap +msgid "rectangle-label" +msgstr "rectangle-label (obdélníková etiketa)" + +#: C/mancreate.page:260(code) +#, no-wrap +msgid "card" +msgstr "card (karta)" + +#: C/mancreate.page:261(code) +#, no-wrap +msgid "business-card" +msgstr "business-card (vizitka)" + +#: C/mancreate.page:262(code) +#, no-wrap +msgid "media" +msgstr "media (médium)" + +#: C/mancreate.page:263(code) +#, no-wrap +msgid "mail" +msgstr "mail (poštovní)" + +#: C/mancreate.page:264(code) +#, no-wrap +msgid "foldable" +msgstr "foldable (přání)" + +#: C/mancreate.page:265(code) +#, no-wrap +msgid "photo" +msgstr "photo (fotka)" + +#: C/mancreate.page:272(code) +#, no-wrap +msgid "product_url" +msgstr "product_url" + +#: C/mancreate.page:273(p) msgid "" -"Everything looks good, so we can now load up our printer with the " -"appropriate label stock, print our address labels and start mailing our " -"party invitations." +"A URL pointing to the vendor's webpage for the specific product, if " +"available." msgstr "" -"Vše vypadá dobře a tak můžeme vložit do tiskárny správný list s etiketami, " -"vytisknout adresní štítky a začít rozesílat pozvánky na večírek." +"Adresa URL odkazující na webovou stránku výrobce a to tu, pokud existuje, " +"která se týká konkrétního výrobku." -#: C/glabels.xml:1431(title) +#: C/mancreate.page:277(p) msgid "" -"Example 3: Address Labels Using the Evolution " -"Addressbook" +"Suggestions for additional categories can be sent to the gLabels " +"developer's mailing list." msgstr "" -"Příklad 3: Adresní štítky s použitím adresáře aplikace " -"Evolution" +"Doporučení na další kategorie můžete zasílat do vývojářské poštovní konference " +"aplikace gLabels." -#: C/glabels.xml:1433(para) -msgid "" -"Our last party was a great success, and now we need to print mailing address " -"labels for the invitations to a new one. To simplify this, we can use the " -"Evolution addressbook, because the address data " -"of all our friends is stored there." +#: C/mancreate.page:280(p) +msgid "Product URLs may be of limited use, because they may not be permanent." msgstr "" -"Náš předchozí večírek měl velký úspěch a my nyní chceme vytisknout adresní " -"štítky pro pozvánky na další takový. Abychom si to zjednodušili, můžeme " -"použít adresář aplikace Evolution, protože adresy " -"všech našich přátel máme uložené v něm." - -#: C/glabels.xml:1439(para) -msgid "" -"Depending on how your copy of gLabels was " -"packaged, this option could be unavailable. Support for the " -"Evolution addressbook will only be available if " -"the evolution-data-server and its development " -"files were present when gLabels was built. Please " -"keep this in mind if you build gLabels directly " -"from source." -msgstr "" -"V závislosti na tom, jak byl připravený váš balíček gLabels, nemusí být tato funkčnost dostupná. Podpora pro adresář " -"Evolution je dostupná jen v případě, že byl při " -"překladu aplikace gLabels k dispozici " -"evolution-data-server a k němu vývojářské " -"soubory. Mějte toto na paměti, pokud si aplikaci překládáte sami ze " -"zdrojových kódů." - -#: C/glabels.xml:1445(para) -msgid "" -"If the gLabels package from your distribution " -"lacks this support, you may wish to contact the package maintainer or file a " -"bug against the package to request it." -msgstr "" -"Pokud balíček gLabels ve vaší distribuci tuto " -"podporu postrádá, můžete zkusit kontaktovat správce balíčku nebo to zkusit " -"nahlásit jako chybu." - -#: C/glabels.xml:1450(para) -msgid "" -"In glabels we have created a new " -"gLabels document using the Avery 5512 \"Address " -"Labels\" template. Next we use the ObjectsMerge Properties menu item " -"to display the Merge properties dialog. We use this " -"dialog to select the source type (in our case Data from default " -"Evolution addressbook) as shown." -msgstr "" -"V aplikaci glabels vytvoříme nový dokument ze " -"šablony Avery L7162 „Poštovní etikety“. Potom v nabídce zvolíme " -"ObjektyVlastnosti slučování, aby se nám zobrazilo dialogové okno " -"Vlastnosti slučování. V něm vybereme typ zdroje (v " -"našem případě Data z výchozího adresáře Evolution), jak " -"je ukázáno na obrázku." +"Použití adresy URL výrobku může být omezené, protože adresa nemusí být " +"trvalá." -#. ==== End of Figure ==== -#: C/glabels.xml:1471(para) -msgid "" -"Once we have chosen Data from default Evolution addressbook as our merge source, we will get a full list of its content. " -"Initially, all entries are checked. Assuming we were planning a really big " -"party, we could leave this selection untouched (but let's keep our budget in " -"mind). We will now select or unselect certain entries by clicking on the " -"appropriate checkboxes, or we could use the Select all and Unselect all buttons to activate or " -"deactivate all entries in the address book." -msgstr "" -"Když máme jako zdroj slučování vybráno Data z výchozího adresáře " -"Evolution, obdržíme úplný seznam jeho obsahu. Na začátku jsou " -"zaškrtnuté všechny položky. Předpokládá se, že budeme pořádat opravdu velký " -"večírek a tak bychom mohli ponechat výběr jak je (ale uvědomte si kolik to " -"bude stát). Nyní některé záznamy kliknutím na příslušné zaškrtávací políčko " -"vyřadíme nebo naopak vybereme, případně můžeme použít tlačítka " -"Vybrat vše a Zrušit výběr pro " -"aktivování nebo deaktivování všech záznamů v adresáři." +#: C/mancreate.page:293(title) +msgid "Label-rectangle Node" +msgstr "Uzel Label-rectangle" -#: C/glabels.xml:1479(para) +#: C/mancreate.page:295(p) msgid "" -"We can also view each entry in more detail by clicking on the appropriate " -"expander (the little triangles) as shown. Once we are satisfied with the " -"selections in this dialog, we will click the OK " -"button to accept the changes." +"A Label-rectangle node describes the " +"dimensions of a single label or business card that is rectangular in shape " +"(may have rounded edges)." msgstr "" -"U každého záznamu si také můžeme prohlédnou všechny údaje po jeho rozbalení " -"kliknutím na malý trojúhelníček. Až jsme s výběrem v dialogovém okně " -"spokojení, klikneme na OK a změny se použijí." +"Uzel Label-rectangle popisuje rozměry jedné " +"etikety nebo vizitky, která má obdélníkový tvar (může mít zaoblené rohy)." + +#: C/mancreate.page:307(code) C/mancreate.page:370(code) +#: C/mancreate.page:421(code) C/mancreate.page:468(code) +#, no-wrap +msgid "id" +msgstr "id" + +#: C/mancreate.page:308(p) C/mancreate.page:371(p) C/mancreate.page:422(p) +#: C/mancreate.page:469(p) +msgid "Reserved for future use. Should always be 0." +msgstr "Rezervované pro pozdější použití. Vždy by mělo být nastavené na 0." + +#: C/mancreate.page:312(p) +msgid "Width of label/card" +msgstr "Šířka etikety/vizitky" + +#: C/mancreate.page:316(p) +msgid "Heigth of label/card" +msgstr "Výška etikety/vizitky" + +#: C/mancreate.page:319(code) +#, no-wrap +msgid "round" +msgstr "round" -#: C/glabels.xml:1484(para) -msgid "Now we start adding objects to our glabels document as shown." +#: C/mancreate.page:320(p) +msgid "" +"Radius of corners. For items with square edges (business cards), the radius " +"should be 0." msgstr "" -"Nyní můžeme začít s přidáváním objektů do svého dokumentu glabels, jak bylo " -"ukázáno dříve." +"Poloměr rohů. Pro položky s ostrými rohy (např. vizitky) by mělo být " +"nastaveno na 0." -#. ==== End of Figure ==== -#: C/glabels.xml:1499(para) +#: C/mancreate.page:324(code) +#, no-wrap +msgid "x_waste" +msgstr "x_waste" + +#: C/mancreate.page:325(p) msgid "" -"In this example we have a single text object again. This text object " -"contains all of our merge fields organized on multiple lines as a mailing " -"address." +"Amount of horizontal waste (over-print) to allow. This is useful for " +"minimizing alignment problems when using non-white backgrounds (e.g. images)." msgstr "" -"V tomto příkladu máme opět jen jeden textový objekt. Ten obsahuje všechna " -"slučovaná pole uspořádaná v několika řádcích, představujících poštovní " -"adresy." +"Velikost dovoleného vodorovného odsazení (umožňuje přetisk). To je užitečné " +"kvůli zamezení problémům se zarovnáním v situaci, kdy se nepoužívá bílé " +"pozadí, ale např. obrázkové." + +#: C/mancreate.page:330(code) +#, no-wrap +msgid "y_waste" +msgstr "y_waste" -#: C/glabels.xml:1502(para) +#: C/mancreate.page:331(p) msgid "" -"Now we can print our address labels by selecting the " -"FilePrint menu item. This will display the print dialog as shown below." +"Amount of vertical waste (over-print) to allow. This is useful for " +"minimizing alignment problems when using non-white backgrounds (e.g. images)." msgstr "" -"Nyní můžeme své etikety s adresami vytisknout volbou položky nabídky " -"SouborTisk. Zobrazí se dialogové okno tisku, jak jej můžete vidět níže." - -#: C/glabels.xml:1551(title) -msgid "Manually Creating New Templates" -msgstr "Ruční vytváření šablon" - -#: C/glabels.xml:1553(para) -msgid "" -"Predefined templates are defined by XML files located in ${prefix}/" -"share/glabels/, where ${prefix} is usually " -"something like /usr/local or /usr " -"depending on the configuration option prefix. " -"gLabels will use all files of the form " -"*-templates.xml or *.template, " -"that it finds in ${prefix}/share/glabels/ and " -"${HOME}/.glabels/. Additional templates can be added by creating " -"additional *.template files in either of these " -"directories." -msgstr "" -"Předdefinované šablony jsou definované soubory XML umístěnými v " -"${prefix}/share/glabels/, kde ${prefix} je " -"obvykle /usr/local nebo /usr, v " -"závislosti na volbě nastavení prefix při překladu " -"programu. Aplikace gLabels použije všechny " -"soubory s názvem v podobě *-templates.xml nebo " -"*.template, které nalezne v ${prefix}/share/" -"glabels/ a ${HOME}/.glabels/. Další šablony " -"si můžete přidat vytvořením dalších souborů *.template " -"v jedné z těchto složek." - -#: C/glabels.xml:1566(para) -msgid "" -"The format for these files is defined in the DTD: glabels-2.2." -"dtd. (This DTD also describes other XML formats used by " -"gLabels.)" -msgstr "" -"Formát těchto souborů je dán v DTD: glabels-2.2.dtd. (Toto " -"DTD popisuje i ostatní formáty XML používané v aplikaci " -"gLabels.)" - -#: C/glabels.xml:1572(title) -msgid "Assumptions/caveats" -msgstr "Předpoklady/upozornění" +"Velikost dovoleného svislého odsazení (umožňuje přetisk). To je užitečné " +"kvůli zamezení problémům se zarovnáním v situaci, kdy se nepoužívá bílé " +"pozadí, ale např. obrázkové." + +#: C/mancreate.page:339(desc) C/mancreate.page:341(p) +msgid "Label-rectangle parameters" +msgstr "Parametry uzlu Label-rectangle" -#: C/glabels.xml:1575(para) +#: C/mancreate.page:356(title) +msgid "Label-ellipse Node" +msgstr "Uzel Label-ellipse" + +#: C/mancreate.page:358(p) msgid "" -"A sheet contains only one size of label or card (if a sheet contains more " -"than one size of item, it can be split into multiple templates for multiple " -"pass printing)" +"A Label-ellipse node describes the dimensions " +"of a single label or business card that is elliptic in shape." msgstr "" -"Stránka obsahuje etiketu nebo vizitku pouze jedné velikosti (pokud má " -"stránka obsahovat více než jednu velikost položky, můžete ji rozdělit do " -"více šablon a vytisknout na vícekrát)" +"Uzel Label-ellipse popisuje rozměry jedné " +"etikety nebo vizitky, která má eliptický tvar." + +#: C/mancreate.page:375(p) +msgid "Width of the ellipse" +msgstr "Šířka elipsy" + +#: C/mancreate.page:379(p) +msgid "Heigth of the ellipse" +msgstr "Výška elipsy" + +#: C/mancreate.page:382(code) C/mancreate.page:429(code) +#: C/mancreate.page:490(code) +#, no-wrap +msgid "waste" +msgstr "waste" -#: C/glabels.xml:1580(para) +#: C/mancreate.page:383(p) C/mancreate.page:430(p) C/mancreate.page:491(p) msgid "" -"Distances can be expressed in units of pt, " -"in, mm, cm, " -"or pc. For example: \"1.0in\" or " -"\"2.54cm\". If no units are specified, computer points " -"(pt) will be assumed (1 pt = 1/72 " -"in = 0.352778 mm)." +"Amount of waste (over-print) to allow. This is useful for minimizing " +"alignment problems when using non-white backgrounds (e.g. images)." msgstr "" -"Rozměry mohou být uváděny v jednotkách pt, " -"in, mm, cm " -"nebo pc. Například: „1.0in“ nebo " -"„2.54cm“. Pokud není žádná jednotka uvedená, budou " -"předpokládány body pt (1 pt = " -"1/72 in = 0,352778 mm)." +"Velikost dovoleného odsazení (umožňuje přetisk). To je užitečné kvůli " +"zamezení problémům se zarovnáním v situaci, kdy se nepoužívá bílé pozadí, " +"ale např. obrázkové." -#: C/glabels.xml:1593(title) -msgid "Template Files" -msgstr "Soubory šablon" +#: C/mancreate.page:391(desc) C/mancreate.page:393(p) +#: C/mancreate.page:438(desc) C/mancreate.page:440(p) +msgid "Label-ellipse parameters" +msgstr "Parametry uzlu Label-ellipse" -#: C/glabels.xml:1595(programlisting) +#: C/mancreate.page:408(title) +msgid "Label-round Node" +msgstr "Uzel Label-round" + +#: C/mancreate.page:410(p) +msgid "" +"A Label-round node describes the dimensions of " +"a simple round label (not a CD)." +msgstr "" +"Uzel Label-round popisuje rozměry jedné kulaté etikety " +"(ale ne CD)." + +#: C/mancreate.page:425(code) C/mancreate.page:472(code) +#: C/mancreate.page:614(code) #, no-wrap +msgid "radius" +msgstr "radius" + +#: C/mancreate.page:426(p) +msgid "Radius (1/2 diameter) of label" +msgstr "Poloměr (½ průměru) etikety." + +#: C/mancreate.page:455(title) +msgid "Label-cd Node" +msgstr "Uzel Label-cd" + +#: C/mancreate.page:457(p) msgid "" -"\n" -"<?xml version=\"1.0\"?>\n" -"<Glabels-templates>\n" -"\n" -" ...templates...\n" -"\n" -"</Glabels-templates>\n" -" " +"A Label-cd node describes the dimensions of a " +"CD, DVD, or business card CD." msgstr "" -"\n" -"<?xml version=\"1.0\"?>\n" -"<Glabels-templates>\n" -"\n" -" …šablony…\n" -"\n" -"</Glabels-templates>\n" -" " +"Uzel Label-cd popisuje rozměry etiket na CD, " +"DVD nebo vizitkové CD." -#: C/glabels.xml:1607(title) -msgid "Example Template" -msgstr "Příklad šablony" +#: C/mancreate.page:473(p) +msgid "Outer radius of label" +msgstr "Vnější poloměr etikety." -#: C/glabels.xml:1608(programlisting) +#: C/mancreate.page:476(code) #, no-wrap +msgid "hole" +msgstr "hole" + +#: C/mancreate.page:477(p) +msgid "Radius of concentric hole" +msgstr "Poloměr středové díry." + +#: C/mancreate.page:481(p) msgid "" -"\n" -" <Template brand=\"Avery\" part=\"8160\" size=\"US-Letter\" description=\"Mailing Labels\">\n" -" <Label-rectangle id=\"0\" width=\"189pt\" height=\"72pt\" round=\"5pt\">\n" -" <Markup-margin size=\"5pt\"/>\n" -" <Layout nx=\"3\" ny=\"10\" x0=\"11.25pt\" y0=\"36pt\" dx=\"200pt\" dy=\"72pt\"/>\n" -" </Label-rectangle>\n" -" <Alias brand=\"Avery\" part=\"5160\"/>\n" -" <Alias brand=\"Avery\" part=\"6233\"/>\n" -" </Template>\n" -" " +"If present, the label is clipped to the given width. (Useful for \"business " +"card CDs\")." msgstr "" -"\n" -" <Template brand=\"Avery\" part=\"8160\" size=\"US-Letter\" _description=\"Mailing Labels\">\n" -" <Label-rectangle id=\"0\" width=\"189pt\" height=\"72pt\" round=\"5pt\">\n" -" <Markup-margin size=\"5pt\"/>\n" -" <Layout nx=\"3\" ny=\"10\" x0=\"11.25pt\" y0=\"36pt\" dx=\"200pt\" dy=\"72pt\"/>\n" -" </Label-rectangle>\n" -" <Alias brand=\"Avery\" part=\"5160\"/>\n" -" <Alias brand=\"Avery\" part=\"6233\"/>\n" -" </Template>\n" -" " +"Pokud je zadáno, bude etiketa oříznuta na uvedenou šířku. (Vhodné pro " +"„vizitková CD“)." + +#: C/mancreate.page:486(p) +msgid "" +"If present, the label is clipped to the given height. (Useful for \"business " +"card CDs\")." +msgstr "" +"Pokud je zadáno, bude etiketa oříznuta na uvedenou výšku. (Vhodné pro " +"„vizitková CD“)." + +#: C/mancreate.page:499(desc) +msgid "Label-cd parameters" +msgstr "Parametry uzlu Label-cd" + +#: C/mancreate.page:501(p) +msgid "CD label parameters" +msgstr "Parametry etiket na CD" -#: C/glabels.xml:1621(title) -msgid "Template Node" -msgstr "Uzel Template" +#: C/mancreate.page:516(title) +msgid "Markup Nodes" +msgstr "Uzly Markup" -#: C/glabels.xml:1623(para) +#: C/mancreate.page:518(p) msgid "" -"A Template node describes a single stationary product. " -"It must contain one instance of any type of Label node (Label-" -"rectangle, Label-round, or Label-" -"cd). This node can be followed by zero or more Alias nodes." +"Templates may contain optional markup nodes. These nodes are used to " +"describe a simple set of markup lines that are visible in the glabels drawing canvas, but not visible when printed. These lines can represent " +"margins, fold lines, center lines, special areas, or other helpful hints to " +"the user of a template." msgstr "" -"Uzel Template popisuje jeden pevně daný výrobek. Musí " -"obsahovat jednu instanci libovolného uzlu Label (Label-rectangle, Label-round nebo Label-cd). Tento uzel může být následován žádným nebo více uzly " -"Alias." +"Šablona může volitelně obsahovat uzly se značkami. Tyto uzly se používají k " +"popisu jednoduchých sad pomocných čar, které jsou viditelné na kreslící " +"ploše aplikace glabels, ale netisknou se. Tyto čáry mohou " +"představovat například okraje, přehyby, speciální oblasti a další pomůcky " +"užitečné pro uživatele šablony." -#: C/glabels.xml:1637(para) C/glabels.xml:1712(para) C/glabels.xml:1789(para) -#: C/glabels.xml:1834(para) C/glabels.xml:1910(para) C/glabels.xml:1943(para) -#: C/glabels.xml:1994(para) C/glabels.xml:2037(para) C/glabels.xml:2096(para) -#: C/glabels.xml:2173(para) -msgid "Property" -msgstr "Vlastnost" +#: C/mancreate.page:528(title) +msgid "Markup-margin Node" +msgstr "Markup-margin Node" -#: C/glabels.xml:1640(para) C/glabels.xml:1715(para) C/glabels.xml:1792(para) -#: C/glabels.xml:1837(para) C/glabels.xml:1913(para) C/glabels.xml:1946(para) -#: C/glabels.xml:1997(para) C/glabels.xml:2040(para) C/glabels.xml:2099(para) -#: C/glabels.xml:2176(para) -msgid "Description" -msgstr "Popis" +#: C/mancreate.page:530(p) +msgid "" +"A Markup-margin describes a margin along all " +"edges of a label." +msgstr "" +"Uzel Markup-margin popisuje okraj podél všech " +"hran etikety." -#: C/glabels.xml:1646(para) C/glabels.xml:2182(para) -msgid "brand" -msgstr "brand" +#: C/mancreate.page:542(p) +msgid "" +"Size of the margin. I.e. the distance of the margin line from the edge of " +"the card/label." +msgstr "" +"Velikost okraje. Např. vzdálenost hranice okraje od hrany etikety/vizitky." -#: C/glabels.xml:1648(para) -msgid "Brand or manufacturer of stationary product. E.g. \"Avery\"" -msgstr "Značka nebo výrobce pevně daného výrobku. Např. \"S&K Label\"" +#: C/mancreate.page:556(title) +msgid "Markup-line Node" +msgstr "Uzel Markup-line" -#: C/glabels.xml:1653(para) C/glabels.xml:2188(para) -msgid "part" -msgstr "part" +#: C/mancreate.page:558(p) +msgid "" +"A Markup-line node describes a markup line." +msgstr "" +"Uzel Markup-line popisuje značku v podobě čáry." -#: C/glabels.xml:1655(para) -msgid "Part number or name of stationary product. E.g. \"8160\"" -msgstr "Produktové číslo nebo název pevně daného výrobku. Např. \"8160\"" +#: C/mancreate.page:568(code) C/mancreate.page:640(code) +#: C/mancreate.page:682(code) +#, no-wrap +msgid "x1" +msgstr "x1" -#: C/glabels.xml:1660(para) C/glabels.xml:1919(para) -msgid "size" -msgstr "size" +#: C/mancreate.page:569(p) +msgid "x coordinate of 1st endpoint of the line segment." +msgstr "x-ová souřadnice 1. koncového bodu úsečky." -#: C/glabels.xml:1662(para) -msgid "Size of sheet. E.g., \"US-Letter,\" \"A4\", ..." -msgstr "Velikost stránky. Např. \"A4\", \"US-Letter\"" +#: C/mancreate.page:572(code) C/mancreate.page:644(code) +#: C/mancreate.page:686(code) +#, no-wrap +msgid "y1" +msgstr "y1" -#: C/glabels.xml:1666(para) -msgid "description" -msgstr "description" +#: C/mancreate.page:573(p) +msgid "y coordinate of 1st endpoint of the line segment." +msgstr "y-ová souřadnice 1. koncového bodu úsečky." + +#: C/mancreate.page:576(code) +#, no-wrap +msgid "x2" +msgstr "x2" -#: C/glabels.xml:1668(para) -msgid "Description of stationary product. E.g, \"Mailing Labels.\"" -msgstr "Popis pevně daného produktu. Např. \"Mailing Labels.\"" +#: C/mancreate.page:577(p) +msgid "x coordinate of 2st endpoint of the line segment." +msgstr "x-ová souřadnice 2. koncového bodu úsečky." -#: C/glabels.xml:1673(para) -msgid "_description" -msgstr "_description" +#: C/mancreate.page:580(code) +#, no-wrap +msgid "y2" +msgstr "y2" + +#: C/mancreate.page:581(p) +msgid "y coordinate of 2st endpoint of the line segment." +msgstr "y-ová souřadnice 2. koncového bodu úsečky." + +#: C/mancreate.page:594(title) +msgid "Markup-circle Node" +msgstr "Uzel Markup-circle" -#: C/glabels.xml:1675(para) +#: C/mancreate.page:596(p) msgid "" -"Translatable description of stationary product. E.g, \"Mailing Labels." -"\" (Only useful for predefined templates)" +"A Markup-circle describes a markup circle." msgstr "" -"Popis pevně daného produktu s možností překladu. Např. \"Mailing Labels." -"\" (Použitelné pouze pro předdefinované šablony)" +"Uzel Markup-circle popisuje značku v podobě " +"kruhu." -#: C/glabels.xml:1681(para) C/glabels.xml:1727(para) C/glabels.xml:1857(para) -msgid "width" -msgstr "width" +#: C/mancreate.page:606(code) C/mancreate.page:740(code) +#, no-wrap +msgid "x0" +msgstr "x0" -#: C/glabels.xml:1683(para) -msgid "Page width. Only valid if size=\"Other\"" -msgstr "Šířka stránky. Platné jen v případě, že size=\"Other\"" +#: C/mancreate.page:607(p) +msgid "x coordinate of circle origin (center)." +msgstr "x-ová souřadnice středu kruhu." -#: C/glabels.xml:1687(para) C/glabels.xml:1731(para) C/glabels.xml:1864(para) -msgid "height" -msgstr "height" +#: C/mancreate.page:610(code) C/mancreate.page:745(code) +#, no-wrap +msgid "y0" +msgstr "y0" -#: C/glabels.xml:1689(para) -msgid "Page height. Only valid if size=\"Other\"" -msgstr "Výška stránky. Platné jen v případě, že size=\"Other\"" +#: C/mancreate.page:611(p) +msgid "y coordinate of circle origin (center)." +msgstr "y-ová souřadnice středu kruhu." + +#: C/mancreate.page:615(p) +msgid "Radius of circle." +msgstr "Poloměr kruhu." -#: C/glabels.xml:1699(title) -msgid "Label-rectangle Node" -msgstr "Uzel Label-rectangle" +#: C/mancreate.page:628(title) +msgid "Markup-rect Node" +msgstr "Uzel Markup-rect" -#: C/glabels.xml:1701(para) +#: C/mancreate.page:630(p) msgid "" -"A Label-rectangle node describes the dimensions of a " -"single label or business card that is rectangular in shape (may have rounded " -"edges)." +"A Markup-rect describes a markup rectangle." msgstr "" -"Uzel Label-rectangle popisuje rozměry jedné etikety " -"nebo vizitky, která má obdélníkový tvar (může mít zaoblené rohy)." +"Uzel Markup-rect popisuje značku v podobě " +"obdélníku." -#: C/glabels.xml:1721(para) C/glabels.xml:1798(para) C/glabels.xml:1843(para) -msgid "id" -msgstr "id" +#: C/mancreate.page:641(p) +msgid "x coordinate of upper left corner of rectangle." +msgstr "x-ová souřadnice levého horního rohu obdélníku." -#: C/glabels.xml:1723(para) C/glabels.xml:1800(para) C/glabels.xml:1845(para) -msgid "Reserved for future use. Should always be 0." -msgstr "Rezervované pro pozdější použití. Vždy by mělo být nastavené na 0." +#: C/mancreate.page:645(p) +msgid "y coordinate of upper left corner of rectangle." +msgstr "y-ová souřadnice levého horního rohu obdélníku." -#: C/glabels.xml:1728(para) -msgid "Width of label/card" -msgstr "Šířka etikety/vizitky" +#: C/mancreate.page:648(code) C/mancreate.page:690(code) +#, no-wrap +msgid "w" +msgstr "w" -#: C/glabels.xml:1732(para) -msgid "Height of label/card" -msgstr "Výška etikety/vizitky" +#: C/mancreate.page:649(p) +msgid "Width of rectangle." +msgstr "Šířka obdélníku." -#: C/glabels.xml:1735(para) -msgid "round" -msgstr "round" +#: C/mancreate.page:652(code) C/mancreate.page:694(code) +#, no-wrap +msgid "h" +msgstr "h" + +#: C/mancreate.page:653(p) +msgid "Height of rectangle." +msgstr "Výška obdélníku." + +#: C/mancreate.page:656(code) +#, no-wrap +msgid "r" +msgstr "r" + +#: C/mancreate.page:657(p) +msgid "Radius of rounded corners of rectangle." +msgstr "Poloměr zakulacených rohů obdélníku." -#: C/glabels.xml:1737(para) +#: C/mancreate.page:670(title) +msgid "Markup-ellipse Node" +msgstr "Uzel Markup-ellipse" + +#: C/mancreate.page:672(p) msgid "" -"Radius of corners. For items with square edges (business cards), the radius " -"should be 0." +"A Markup-ellipse describes a markup ellipse." msgstr "" -"Poloměr rohů. Pro položky s ostrými rohy (např. vizitky) by mělo být " -"nastaveno na 0." +"Uzel Markup-ellipse popisuje značku v podobě " +"elipsy." -#: C/glabels.xml:1742(para) -msgid "x_waste" -msgstr "x_waste" +#: C/mancreate.page:683(p) +msgid "x coordinate of upper left corner of ellipse." +msgstr "x-ová souřadnice levého horního rohu elipsy." + +#: C/mancreate.page:687(p) +msgid "y coordinate of upper left corner of ellipse." +msgstr "y-ová souřadnice levého horního rohu elipsy." -#: C/glabels.xml:1744(para) +#: C/mancreate.page:691(p) +msgid "Width of ellipse." +msgstr "Šířka elipsy." + +#: C/mancreate.page:695(p) +msgid "Height of ellipse." +msgstr "Výška elipsy." + +#: C/mancreate.page:713(title) +msgid "Layout Node" +msgstr "Uzel Layout" + +#: C/mancreate.page:715(p) msgid "" -"Amount of horizontal waste (over-print) to allow. This is useful for " -"minimizing alignment problems when using non-white backgrounds (e.g. images)." +"A label node may contain multiple Layout " +"children. If labels are arranged in a simple grid pattern, only one layout " +"is needed. However, if labels are arranged in multiple grids, such as a " +"running bond pattern, multiple Layout tags can " +"be used." msgstr "" -"Velikost dovoleného vodorovného odsazení (umožňuje přetisk). To je užitečné " -"kvůli zamezení problémům se zarovnáním v situaci, kdy se nepoužívá bílé " -"pozadí, ale např. obrázkové." +"Uzel typu Label může obsahovat více potomků Layout. V případě, že jsou etikety rozmístěné do jednoduché pravidelné " +"mřížky, postačuje jeden uzel Layout. Pokud jsou ale etikety rozmístěné ve " +"více mřížkách, např. mají podobu cihlové zdi, musí se použít více značek " +"Layout." -#: C/glabels.xml:1750(para) -msgid "y_waste" -msgstr "y_waste" +#: C/mancreate.page:721(p) +msgid "A single label can always be treated as a grid of one." +msgstr "Jedna etiketa může být vždy považována za mřížku s jednou buňkou." + +#: C/mancreate.page:732(code) +#, no-wrap +msgid "nx" +msgstr "nx" + +#: C/mancreate.page:733(p) +msgid "Number of labels/cards across in the grid (horizontal)" +msgstr "Počet etiket/vizitek v mřížce (vodorovně)." + +#: C/mancreate.page:736(code) +#, no-wrap +msgid "ny" +msgstr "ny" + +#: C/mancreate.page:737(p) +msgid "Number of labels/cards across in the grid (vertical)" +msgstr "Počet etiket/vizitek v mřížce (svisle)." + +#: C/mancreate.page:741(p) +msgid "" +"Distance from left edge of sheet to the left edge of the left column of " +"cards/labels in the layout." +msgstr "" +"Vzdálenost od levé hrany stránky k levé hraně levého sloupce etiket/vizitek " +"v rozvržení." + +#: C/mancreate.page:746(p) +msgid "" +"Distance from the top edge of sheet to the top edge of the top row of labels/" +"cards in the layout." +msgstr "" +"Vzdálenost od horní hrany stránky k horní hraně horní řady etiket/vizitek v " +"rozvržení." + +#: C/mancreate.page:750(code) +#, no-wrap +msgid "dx" +msgstr "dx" + +#: C/mancreate.page:751(p) +msgid "Horizontal pitch of grid." +msgstr "Vodorovná rozteč mřížky." + +#: C/mancreate.page:754(code) +#, no-wrap +msgid "dy" +msgstr "dy" + +#: C/mancreate.page:755(p) +msgid "Vertical pitch of grid." +msgstr "Svislá rozteč mřížky." + +#: C/mancreate.page:761(desc) +msgid "Layout parameters" +msgstr "Parametry uzlu Layout" + +#: C/mancreate.page:763(p) +msgid "Layout Parameters" +msgstr "Parametry uzlu Layout" + +#: C/license.page:8(desc) +msgid "Legal information." +msgstr "Právní informace." + +#: C/license.page:11(title) +msgid "License" +msgstr "Licence" + +#: C/license.page:12(p) +msgid "" +"This work is distributed under a CreativeCommons Attribution-Share Alike 3.0 " +"Unported license." +msgstr "" +"Tato práce je šířena pod licencí CreativeCommons Attribution-Share Alike 3.0 " +"Unported Licence." + +#: C/license.page:20(p) +msgid "You are free:" +msgstr "Můžete volně:" + +#: C/license.page:25(em) +msgid "To share" +msgstr "Sdílet" + +#: C/license.page:26(p) +msgid "To copy, distribute and transmit the work." +msgstr "Kopírovat, šířit a rozesílat dílo." + +#: C/license.page:29(em) +msgid "To remix" +msgstr "Měnit" + +#: C/license.page:30(p) +msgid "To adapt the work." +msgstr "Přizpůsobovat dílo." + +#: C/license.page:33(p) +msgid "Under the following conditions:" +msgstr "Za následujících podmínek:" + +#: C/license.page:38(em) +msgid "Attribution" +msgstr "Označení" + +#: C/license.page:39(p) +msgid "" +"You must attribute the work in the manner specified by the author or " +"licensor (but not in any way that suggests that they endorse you or your use " +"of the work)." +msgstr "" +"Musíte dílo označit v souladu s požadavky autora nebo licence (ale ne žádným " +"způsobem, který předpokládá, že schvalují vás nebo vaše použití díla)." + +#: C/license.page:46(em) +msgid "Share Alike" +msgstr "Stejné sdílení" + +#: C/license.page:47(p) +msgid "" +"If you alter, transform, or build upon this work, you may distribute the " +"resulting work only under the same, similar or a compatible license." +msgstr "" +"Pokud dílo změníte, převedete nebo na něm založíte jiné, můžete výsledek " +"této práce šířit pouze pod stejnou, podobnou nebo kompatibilní licencí." + +#: C/license.page:53(p) +msgid "" +"For the full text of the license, see the CreativeCommons website, or read the full Commons Deed." +msgstr "" +"Text licence v plném znění najdete na webových stránkách CreativeCommons " +"nebo si přečtěte výtah dokumentu pro neprávníky." + +#: C/labelprop.page:9(desc) +msgid "How to change the properties of a label or business card." +msgstr "Jak změnit vlastnosti etikety nebo vizitky." + +#: C/labelprop.page:25(title) +msgid "To change label properties" +msgstr "Změna vlastností etikety" + +#: C/labelprop.page:27(p) +msgid "" +"To change the media type and/or orientation of a label, choose " +"FileProperties to display the " +"Label properties dialog. Select the new media type and " +"orientation for the document, then click OK." +msgstr "" +"Pokud chcete změnit typ média a/nebo orientaci etiket, zvolte " +"SouborVlastnosti a zobrazí se " +"dialogové okno Vlastnosti etikety. Zvolte pro dokument nový typ " +"média a orientaci a klikněte na OK." + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/index.page:24(None) +msgid "" +"@@image: 'figures/glabels-logo.png'; md5=0c1e32afcbae0d2fc6976020c24a0a43" +msgstr "" +"@@image: 'figures/glabels-logo.png'; md5=0c1e32afcbae0d2fc6976020c24a0a43" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/index.page:47(None) +msgid "" +"@@image: 'figures/introduction-glabels-main-window.png'; " +"md5=fceca242699bb062a5ac243a5f962f3b" +msgstr "" +"@@image: 'figures/introduction-glabels-main-window.png'; " +"md5=fceca242699bb062a5ac243a5f962f3b" + +#: C/index.page:7(title) C/index.page:8(title) +msgid "gLabels label and business card designer" +msgstr "Návrhář etiket a vizitek gLabels" + +#: C/index.page:23(title) +msgid "" +"gLabels logo gLabels Manual" +msgstr "" +"logo gLabels Příručka aplikace gLabels" + +#: C/index.page:28(p) +msgid "" +"The gLabels application is a lightweight program for creating " +"labels and business cards for the GNOME desktop environment. It is designed " +"to work with various laser/ink-jet peel-off label and business card sheets " +"that you'll find at most office supply stores." +msgstr "" +"Aplikace gLabels je jednoduchý program na " +"vytváření etiket a vizitek pro pracovní prostředí GNOME. Je navržená pro " +"práci s různými samolepicími etiketami a vizitkami rozmístěnými na listech " +"pro laserový/inkoustový tisk, které najdete ve většině obchodů s " +"kancelářskými potřebami." + +#: C/index.page:35(p) +msgid "" +"gLabels can be used to design address labels, name tags, price " +"tags, cd/dvd labels, or just about anything else that is organized in a " +"regular pattern on a sheet of paper. Labels (or cards) can contain text, " +"images, lines, shapes, and barcodes. gLabels also includes a " +"document-merge feature which lets you print a unique label for each record " +"from an external data source, such as a CSV file or an Evolution " +"address book." +msgstr "" +"Aplikaci gLabels můžete používat k návrhu adresních štítků, " +"visaček, cenovek, obalů na CD/DVD nebo cokoliv jiného, co je uspořádáno na " +"listu papíru v pravidelném vzoru. Etikety (nebo kartičky) mohou obsahovat " +"text, obrázky, čáry, tvary a čárové kódy. Aplikace gLabels " +"obsahuje také funkci slučování dokumentů, díky které můžete tisknout každou " +"etiketu jinou, podle záznamů v externím zdroji dat, jako jsou soubory CSV " +"nebo adresář kontaktů Evolution." + +#: C/index.page:45(title) C/index.page:46(desc) +msgid "gLabels main window" +msgstr "Hlavní okno gLabels" + +#: C/index.page:48(p) +msgid "gLabels main window." +msgstr "Hlavní okno gLabels." + +#: C/index.page:53(title) +msgid "Usage" +msgstr "Použití" + +#: C/index.page:57(title) +msgid "Document Merging" +msgstr "Slučováním dokumentů" + +#: C/index.page:61(title) +msgid "Advanced usage" +msgstr "Pokročilé používání" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/editprop.page:35(None) +msgid "" +"@@image: 'figures/object-editor-sidebar.png'; " +"md5=828ffc05f69e1914595cc1e3d7401e2f" +msgstr "" +"@@image: 'figures/object-editor-sidebar.png'; " +"md5=828ffc05f69e1914595cc1e3d7401e2f" + +#: C/editprop.page:9(desc) +msgid "Change the properties of objects." +msgstr "Jak upravit vlastnosti objektu." + +#: C/editprop.page:25(title) +#| msgid "To Edit Object Properties" +msgid "To edit object properties" +msgstr "Změna vlastností objektů" + +#: C/editprop.page:29(p) +msgid "" +"Most object properties can be modified through the object editor sidebar, " +"illustrated below. To use the object editor, a single object must first be " +"selected. See ." +msgstr "" +"Většinu vlastností objektů lze upravit přes editor objektů v postranní " +"liště, který je vyobrazený níže. Abyste mohli editor objektů používat, " +"musíte nejdříve vybrat jeden objekt. Viz ." + +#. ==== End of Figure ==== +#: C/editprop.page:40(p) +msgid "" +"The object editor will contain a subset of the following tabbed sections, " +"depending on object type:" +msgstr "" +"Editor objektů bude obsahovat některé z následujících karet, které závisí na " +"typu objektu:" + +#: C/editprop.page:44(title) +msgid "Text Tabbed Section (Text objects)" +msgstr "Karta Text (textové objekty)" + +#: C/editprop.page:46(p) +msgid "" +"This section contains a small editor for changing the content of a text " +"object. It also contains a dropdown menu of available document merge keys, " +"that can be inserted into text." +msgstr "" +"Tato karta obsahuje malý editor na úpravu obsahu textového objektu. Rovněž " +"obsahuje vyskakovací nabídku dostupných klíčů slučování dokumentů, které lze " +"do textu vkládat." + +#: C/editprop.page:53(title) +msgid "Image Tabbed Section (Image objects)" +msgstr "Karta Obrázek (obrázkové objekty)" + +#: C/editprop.page:55(p) +msgid "" +"This section contains a file entry with preview to select image files. The " +"browse button can be used to easily locate image files. Alternatively, a " +"document merge key can be used instead to provide a filename at print time." +msgstr "" +"Tato karta obsahuje pole na zadání souboru s obrázkem. Přes tlačítko " +"procházení můžete soubor snadno najít. Druhou možností je použití klíče pro " +"slučování dokumentů, který poskytne název souboru až během tisku." + +#: C/editprop.page:63(title) +msgid "Data Tabbed Section (Barcode objects)" +msgstr "Karta Data (objekty čárových kódů)" + +#: C/editprop.page:65(p) +msgid "" +"This section contains a text entry to enter literal barcode data. " +"Alternatively, a document merge key can be used to provide this data at " +"print time." +msgstr "" +"Tato karta obsahuje textové pole na zadání dat pro čárový kód. Druhou " +"možností je použití klíče pro slučování dokumentů, přes který jsou data " +"poskytována až během tisku." + +#: C/editprop.page:72(title) +msgid "Style Tabbed Section (Text objects)" +msgstr "Karta Styl (textové objekty)" + +#: C/editprop.page:74(p) +msgid "" +"This section contains controls to select text properties, including font " +"family, font size, font weight, color, and text justification." +msgstr "" +"Tato karta obsahuje ovládací prvky na výběr vlastností textu, včetně typu " +"písma, velikosti písma, tloušťky písma, barvy a zarovnání textu." + +#: C/editprop.page:81(title) +msgid "Style Tabbed Section (Barcode objects)" +msgstr "Karta Styl (objekty čárových kódů)" + +#: C/editprop.page:83(p) +msgid "" +"This section contains controls to select barcode properties, including " +"barcode style, color, whether to print text, and whether to include a " +"checksum digit." +msgstr "" +"Tato karta obsahuje ovládací prvky na výběr vlastností čárového kódu, včetně " +"stylu čárového kódu, barvy, zda tisknout text a zda vkládat číslo s " +"kontrolním součtem." + +#: C/editprop.page:90(title) +msgid "Line Tabbed Section" +msgstr "Karta Čára" + +#: C/editprop.page:92(p) +msgid "" +"This section contains controls to select properties of lines and outlines. " +"These properties include line width and color." +msgstr "" +"Tato karta obsahuje ovládací prvky na výběr vlastností čar a obrysů. Tyto " +"vlastnosti zahrnují tloušťku čáry a její barvu." + +#: C/editprop.page:98(title) +msgid "Fill Tabbed Section" +msgstr "Karta Výplň" + +#: C/editprop.page:100(p) +msgid "" +"This section contains controls to select fill properties of box and ellipse " +"objects. Currently the only fill property is fill color." +msgstr "" +"Tato karta obsahuje ovládací prvky na výběr vlastností výplně objektů " +"obdélníků a elips. V současnosti obsahuje pouze barvu výplně." + +#: C/editprop.page:107(title) +msgid "Size Tabbed Section (All except line objects)" +msgstr "Karta Velikost (všechny objekty vyjma čar)" + +#: C/editprop.page:109(p) +msgid "" +"This section contains controls to select the width and height of an object. " +"A checkbox is provided, so that the current aspect ratio can be locked while " +"manipulating the width and height controls. Image objects also provide a " +"button to reset the size to the image's natural size (Assumes 72DPI)." +msgstr "" +"Tato karta obsahuje ovládací prvky na výběr šířky a výšky objektu. K " +"dispozici je zaškrtávací pole, kterým můžete zamknout poměr stran během " +"úprav šířky a výšky. U obrázků je k dispozici rovněž tlačítko, kterým můžete " +"nastavit reálné rozměry obrázku (předpokládá se 72 DPI)." + +#: C/editprop.page:118(title) +msgid "Size Tabbed Section (Line objects)" +msgstr "Karta Velikost (objekty čar)" + +#: C/editprop.page:120(p) +msgid "" +"This section contains controls to select the length and angle of a line " +"object." +msgstr "Tato karta obsahuje ovládací prvky pro výběr délky a úhlu čáry." + +#: C/editprop.page:126(title) +msgid "Position Tabbed Section" +msgstr "Karta Pozice" + +#: C/editprop.page:128(p) +msgid "This section contains controls to change the position of an object." +msgstr "Tato karta obsahuje ovládací prvky pro změnu pozice objektu." + +#: C/editprop.page:135(title) +msgid "Shadow Tabbed Section (All except barcode objects)" +msgstr "Karta Stín (všechny objekty vyjma čárových kódů)" + +#: C/editprop.page:137(p) +msgid "This section contains controls to add a shadow to an object." +msgstr "Tato karta obsahuje ovládací prvky pro přidání stínu k objektu." + +#: C/editprop.page:146(title) +msgid "Other Manipulations of Objects" +msgstr "Ostatní manipulace s objekty" + +#: C/editprop.page:148(p) +msgid "Objects can also be manipulated in the following ways." +msgstr "S objekty lze manipulovat ještě následujícími způsoby:" + +#: C/editprop.page:151(title) +msgid "Moving and Resizing Objects" +msgstr "Přesouvání a změna velikosti objektů" + +#: C/editprop.page:153(p) +msgid "" +"Objects can be moved by simply clicking on a selected object and dragging " +"the object to its new location. If the object is part of an aggregate " +"selection, all objects in the selection will move with the object being " +"dragged, maintaining their relative positions to one another. If no object " +"is selected, clicking on an object will create a new selection containing " +"that object. See ." +msgstr "" +"Objekty lze přesunout kliknutím na vybraný objekt a tažením objektu na nové " +"místo. Pokud je objekt součástí skupiny označených objektů, budou se s " +"objektem přesouvat všechny vybrané objekty, ale jejich vzájemná pozice " +"zůstane zachovaná. Pokud není žádný objekt vybraný, kliknutí na objekt " +"provede nový výběr tohoto objektu. Viz ." + +#: C/editprop.page:161(p) +msgid "" +"A selected object can be resized by clicking one of its resize handle and " +"dragging it to obtain the new size." +msgstr "" +"U vybraných objektů můžete měnit jejich velikost kliknutím na úchyt pro " +"změnu velikosti a jeho tažením tak, abyste dosáhli správné velikost." + +#: C/editprop.page:167(title) +msgid "Changing Stacking Order" +msgstr "Změna pořadí objektů" + +#: C/editprop.page:169(p) +msgid "" +"Stacking order refers to relative position in the z-axis of objects. That is " +"when objects overlap, which object will appear on top of the other. By " +"default, newer objects will appear above older objects. To change this " +"order, select one or more objects and choose ObjectsOrderBring to Front to raise the " +"selection to the top of the stacking order, or choose ObjectsOrderSend to Back to lower the selection " +"to the bottom of the stacking order. These menuitems are also available by " +"right-clicking the display area when there is a non-empty selection." +msgstr "" +"Pořadí objektů představuje jejich relativní polohu v ose z. Prakticky to " +"určuje při překrývání objektů, který z nich bude nahoře a který vespod. " +"Standardně se nové objekty vytvářejí nad staršími objekty. Když chcete toto " +"pořadí změnit, jeden nebo více objektů vyberte a zvolte " +"ObjektyPořadíPřenést dopředu pro vynesení výběru na nejvyšší pozici nebo ObjektyPořadíOdsunout dozadu pro zatlačení " +"výběru úplně dospod. Tyto položky nabídky jsou přístupné i po kliknutí " +"pravým tlačítkem v zobrazovací oblasti za předpokladu, že jsou vybrané " +"nějaké objekty." + +#: C/editprop.page:187(title) +msgid "Rotating and Flipping Objects" +msgstr "Otáčení a překlápění objektů" + +#: C/editprop.page:189(p) +msgid "" +"Objects can be rotated 90 degrees in either direction, or flipped " +"horizontally or vertically, by choosing the appropriate menuitem in the " +"ObjectsRotate/Flip sub-menu. These " +"menuitems are also available by right-clicking the display area when there " +"is a non-empty selection." +msgstr "" +"Objekty lze otáčet po 90stupňových krocích v obou směrech nebo je překlápět " +"svisle či vodorovně a to volbou příslušné položky v podnabídce " +"ObjektyOtočit/Překlopit. Tyto položky " +"nabídky jsou přístupné i po kliknutí pravým tlačítkem v zobrazovací oblasti " +"za předpokladu, že jsou vybrané nějaké objekty." + +#: C/editprop.page:197(p) +msgid "" +"This feature could be useful when you are designing CD box inlays. For the " +"spine caption, you need vertical aligned text. After you have created a " +"basic text box, choose ObjectsRotate/Flip to rotate the text box according to your needs." +msgstr "" +"Tato funkce je užitečná, když navrhujete vložky do krabičky na CD. Pro text " +"na hřbetu potřebujete svisle uspořádaný text. Po té co vytvoříte rámec se " +"základním textem, zvolte ObjektyOtočit/překlopit, abyste textový rámec natočili podle svých požadavků." + +#: C/editprop.page:208(title) +msgid "Aligning Objects" +msgstr "Zarovnávání objektů" + +#: C/editprop.page:210(p) +msgid "" +"Objects can be aligned horizontally or vertically, relative to one another, " +"or relative to the center line of the label, by choosing the appropriate " +"menuitem from the ObjectsAlign Horizontal or ObjectsAlign Vertical sub-" +"menus. These menuitems are also available by right-clicking the display area " +"when there is a non-empty selection." +msgstr "" +"Objekty lze zarovnávat vodorovně nebo svisle, relativně vůči sobě nebo " +"relativně ke středové čáře etikety, volbou příslušné položky z podnabídky " +"ObjektyZarovnat vodorovně nebo " +"ObjektyZarovnat svisle. Tyto položky " +"nabídky jsou přístupné i po kliknutí pravým tlačítkem v zobrazovací oblasti " +"za předpokladu, že jsou vybrané nějaké objekty." + +#: C/editprop.page:223(title) +msgid "Using the Property Bar" +msgstr "Používání lišty vlastností" + +#: C/editprop.page:225(p) +msgid "" +"The property bar can be used to change some common properties of objects en-" +"masse. These properties include font family, font size, font weight, text " +"alignment, text color, fill color, line or outline color, and line width. " +"The property bar also controls the defaults for these properties for any " +"newly created objects." +msgstr "" +"Lištu vlastností lze použít ke změně některých běžných vlastností objektů " +"jako celku. Tyto vlastnosti zahrnují typ písma, velikost písma, tloušťku " +"písma, zarovnání textu, barvu textu, barvu výplně, barvu čáry nebo obrysu a " +"tloušťku čáry. Přes panel vlastností může také zadat výchozí hodnoty těchto " +"vlastností pro nově vytvářené objekty." + +#: C/customtemplate.page:9(desc) +msgid "Create your own templates for stationery products." +msgstr "Jak vytvořit vlastní šablonu pro papírové výrobky." + +#: C/customtemplate.page:25(title) +msgid "To create a custom template" +msgstr "Vytvoření vlastní šablony" + +#: C/customtemplate.page:27(p) +msgid "" +"To create a new custom template, choose FileTemplate " +"Designer ... to display the Template Designer " +"dialog. This dialog will assist you in creating a custom template for most " +"types of label or card stationery that you may encounter." +msgstr "" +"Když chcete vytvořit novou vlastní šablonu, zvolte SouborNávrhář šablon… a zobrazí se dialogové okno " +"Návrhář šablon gLabels. Toto dialogové okno vás provede " +"vytvořením vlastní šablony pro většinu typů etiket nebo vizitek, se kterými " +"se můžete setkat." + +#: C/customtemplate.page:34(p) +msgid "" +"If you prefer, you can create your templates manually. For this option see " +"" +msgstr "" +"Pokud dáváte přednost ručnímu vytvoření šablon, přečtěte si " + +#: C/customize.page:9(desc) +msgid "Customize gLabels to match your needs." +msgstr "Přizpůsobte si aplikaci gLabels svým potřebám." + +#. Use this section to describe how to customize the application. +#: C/customize.page:25(title) +msgid "Settings" +msgstr "Nastavení" -#: C/glabels.xml:1752(para) +#: C/customize.page:26(p) msgid "" -"Amount of vertical waste (over-print) to allow. This is useful for " -"minimizing alignment problems when using non-white backgrounds (e.g. images)." +"To configure gLabels, choose SettingsPreferences. The Preferences dialog " +"contains the following tabbed sections:" msgstr "" -"Velikost dovoleného svislého odsazení (umožňuje přetisk). To je užitečné " -"kvůli zamezení problémům se zarovnáním v situaci, kdy se nepoužívá bílé " -"pozadí, ale např. obrázkové." +"Když chcete v aplikaci gLabels změnit nastavení, zvolte " +"UpravitPředvolby. Dialogové okno " +"Předvolby gLabels obsahuje následující karty:" -#: C/glabels.xml:1763(title) -msgid "Label-rectangle Parameters" -msgstr "Parametry uzlu Label-rectangle" +#: C/customize.page:35(title) +msgid "Locale" +msgstr "Národní prostředí" -#: C/glabels.xml:1777(title) -msgid "Label-round Node" -msgstr "Uzel Label-round" +#: C/customize.page:37(title) +msgid "Units" +msgstr "Jednotky" -#: C/glabels.xml:1779(para) +#: C/customize.page:38(p) msgid "" -"A Label-round node describes the dimensions of a simple " -"round label (not a CD)." +"Use this radio button group to specify your preferred units. Select one of " +"the following options:" msgstr "" -"Uzel Label-round popisuje rozměry jedné zaoblené " -"etikety (ne CD)." - -#: C/glabels.xml:1804(para) C/glabels.xml:1849(para) C/glabels.xml:2015(para) -msgid "radius" -msgstr "radius" +"Tento skupinový přepínač použijte k určení svých upřednostňovaných jednotek. " +"Vyberte jednu z následujících možností:" -#: C/glabels.xml:1805(para) -msgid "Radius (1/2 diameter) of label" -msgstr "Poloměr (½ průměru) etikety" +#: C/customize.page:42(gui) +msgid "Points" +msgstr "Body" -#: C/glabels.xml:1808(para) C/glabels.xml:1871(para) -msgid "waste" -msgstr "waste" +#: C/customize.page:43(p) +msgid "Use points (1 point = 1/72 in = 0.352778 mm)." +msgstr "Použít body (1 bod = 1/72 palce = 0,352778 mm)." -#: C/glabels.xml:1810(para) C/glabels.xml:1873(para) -msgid "" -"Amount of waste (over-print) to allow. This is useful for minimizing " -"alignment problems when using non-white backgrounds (e.g. images)." -msgstr "" -"Velikost dovoleného odsazení (umožňuje přetisk). To je užitečné kvůli " -"zamezení problémům se zarovnáním v situaci, kdy se nepoužívá bílé pozadí, " -"ale např. obrázkové." +#: C/customize.page:46(gui) +msgid "Inches" +msgstr "Palce" -#: C/glabels.xml:1822(title) -msgid "Label-cd Node" -msgstr "Uzel Label-cd" +#: C/customize.page:47(p) +msgid "Use Inches." +msgstr "Použít palce (1 palec = 25,4 mm)." -#: C/glabels.xml:1824(para) -msgid "" -"A Label-cd node describes the dimensions of a CD, DVD, " -"or business card CD." -msgstr "" -"Uzel Label-cd popisuje rozměry etiket na CD, DVD nebo " -"vizitkové CD." +#: C/customize.page:50(gui) +msgid "Millimeters" +msgstr "Milimetry" -#: C/glabels.xml:1850(para) -msgid "Outer radius of label" -msgstr "Vnější poloměr etikety" +#: C/customize.page:51(p) +msgid "Use Millimeters." +msgstr "Použít milimetry." -#: C/glabels.xml:1853(para) -msgid "hole" -msgstr "hole" +#: C/customize.page:54(p) +msgid "Default: Inches." +msgstr "Výchozí : Palce." -#: C/glabels.xml:1854(para) -msgid "Radius of concentric hole" -msgstr "Poloměr středové díry" +#: C/customize.page:58(title) +msgid "Default page size" +msgstr "Výchozí velikost stránky" -#: C/glabels.xml:1859(para) +#: C/customize.page:59(p) msgid "" -"If present, the label is clipped to the given width. (Useful for \"business " -"card CDs\")." +"Use this radio button group to specify your prefered page size. This will " +"make it quicker for you to locate media types when creating a new label or " +"card." msgstr "" -"Pokud je zadáno, bude etiketa oříznuta na uvedenou šířku. (Vhodné pro " -"„vizitková CD“)." +"Tento skupinový přepínač použijte k určení své upřednostňované velikosti " +"stránky. Urychlí vám to hledání typu média při vytváření nové etikety nebo " +"vizitky." + +#: C/customize.page:64(gui) +msgid "US Letter" +msgstr "US Letter" -#: C/glabels.xml:1866(para) +#: C/customize.page:65(p) msgid "" -"If present, the label is clipped to the given height. (Useful for \"business " -"card CDs\")." -msgstr "" -"Pokud je zadáno, bude etiketa oříznuta na uvedenou výšku. (Vhodné pro " -"„vizitková CD“)." +"Most of your media will be of the US Letter page size (8.5 x 11 inches)." +msgstr "Většina vašich médií má velikost stránky US Letter (8,5 × 11 palců)." -#: C/glabels.xml:1884(title) -msgid "CD Label Parameters" -msgstr "Parametry etiket na CD" +#: C/customize.page:68(gui) +msgid "ISO A4" +msgstr "ISO A4" + +#: C/customize.page:69(p) +msgid "Most of your media will be of the ISO A4 page size (210 x 297 mm)." +msgstr "Většina vašich médií má velikost stránky ISO A4 (210 × 297 mm)." + +#: C/customize.page:72(p) +msgid "Default: US Letter." +msgstr "Výchozí: US Letter." + +#: C/customize.page:77(title) +msgid "Object Defaults" +msgstr "Výchozí hodnoty objektů" -#: C/glabels.xml:1898(title) -msgid "Markup-margin Node" -msgstr "Uzel Markup-margin" +#: C/customize.page:80(title) C/createnew.page:39(title) +msgid "Text" +msgstr "Text" -#: C/glabels.xml:1900(para) +#: C/customize.page:81(p) msgid "" -"A Markup-margin describes a margin along all edges of a " -"label." +"Use these controls to set the default properties of new text objects. These " +"properties are:" msgstr "" -"Uzel Markup-margin popisuje okraj podél všech hran " -"etikety." +"Použijte tyto ovládací prvky k nastavení výchozích vlastností nových " +"textových objektů. Tyto vlastnosti jsou:" + +#: C/customize.page:85(gui) +msgid "Font" +msgstr "Písmo" -#: C/glabels.xml:1921(para) +#: C/customize.page:86(p) msgid "" -"Size of the margin. I.e. the distance of the margin line from the edge of " -"the card/label." +"These controls are used to select font family and font size, and whether the " +"font should bold or in italics." msgstr "" -"Velikost okraje. Např. vzdálenost hranice okraje od hrany etikety/vizitky." - -#: C/glabels.xml:1932(title) -msgid "Markup-line Node" -msgstr "Uzel Markup-line" +"Tyto ovládací prvky slouží k nastavení rodiny písma a velikosti písma a zda " +"by mělo být písmo tučné nebo kurzívou." -#: C/glabels.xml:1934(para) -msgid "A Markup-line describes a markup line." -msgstr "Uzel Markup-line popisuje značku v podobě čáry." +#: C/customize.page:90(gui) C/customize.page:110(gui) +#: C/customize.page:122(gui) +msgid "Color" +msgstr "Barva" -#: C/glabels.xml:1952(para) C/glabels.xml:2046(para) -msgid "x1" -msgstr "x1" +#: C/customize.page:91(p) +msgid "This control selects the default text color." +msgstr "Tímto ovládacím prvkem se vybírá výchozí barva textu." -#: C/glabels.xml:1954(para) -msgid "x coordinate of 1st endpoint of the line segment." -msgstr "x-ová souřadnice počátku úsečky" +#: C/customize.page:94(gui) +msgid "Alignment" +msgstr "Zarovnání" -#: C/glabels.xml:1958(para) C/glabels.xml:2052(para) -msgid "y1" -msgstr "y1" +#: C/customize.page:95(p) +msgid "" +"These controls are used to select the default text alignment (left, center " +"or right)." +msgstr "" +"Tyto ovládací prvky slouží k výběru výchozího zarovnání textu (vlevo, na " +"střed nebo vpravo)." -#: C/glabels.xml:1960(para) -msgid "y coordinate of 1st endpoint of the line segment." -msgstr "y-ová souřadnice počátku úsečky" +#: C/customize.page:101(title) C/createnew.page:56(title) +msgid "Line" +msgstr "Čára" -#: C/glabels.xml:1964(para) -msgid "x2" -msgstr "x2" +#: C/customize.page:102(p) +msgid "" +"Use these controls to set the default properties of lines and outlines of " +"new objects. These properties are:" +msgstr "" +"Použijte tyto ovládací prvky k nastavení výchozích vlastností čar a obrysů " +"nových objektů. Tyto vlastnosti jsou:" -#: C/glabels.xml:1966(para) -msgid "x coordinate of 2nd endpoint of the line segment." -msgstr "x-ová souřadnice konce úsečky" +#: C/customize.page:106(gui) +msgid "Width" +msgstr "Šířka" -#: C/glabels.xml:1970(para) -msgid "y2" -msgstr "y2" +#: C/customize.page:107(p) +msgid "This control selects the default line width." +msgstr "Tímto ovládacím prvkem se vybírá výchozí šířka čáry." -#: C/glabels.xml:1972(para) -msgid "y coordinate of 2nd endpoint of the line segment." -msgstr "y-ová souřadnice konce úsečky" +#: C/customize.page:111(p) +msgid "This control selects the default line color." +msgstr "Tímto ovládacím prvkem se vybírá výchozí barva čáry." -#: C/glabels.xml:1982(title) -msgid "Markup-circle Node" -msgstr "Uzel Markup-circle" +#: C/customize.page:117(title) +msgid "Fill" +msgstr "Výplň" -#: C/glabels.xml:1984(para) -msgid "A Markup-circle describes a markup circle." +#: C/customize.page:118(p) +msgid "" +"Use this control to set the default fill property of new objects. This " +"property is:" msgstr "" -"Uzel Markup-circle popisuje značku v podobě kruhu." - -#: C/glabels.xml:2003(para) C/glabels.xml:2119(para) -msgid "x0" -msgstr "x0" +"Použijte tyto ovládací prvky k nastavení výchozích vlastností výplně nových " +"objektů. Tyto vlastnosti jsou:" -#: C/glabels.xml:2005(para) -msgid "x coordinate of circle origin (center)." -msgstr "x-ová souřadnice středu kruhu" +#: C/customize.page:123(p) +msgid "This control selects the default fill color." +msgstr "Tento ovládací prvek slouží k výběru výchozí barvy výplně." -#: C/glabels.xml:2009(para) C/glabels.xml:2126(para) -msgid "y0" -msgstr "y0" +#: C/createnew.page:9(desc) +msgid "Create new objects within your document." +msgstr "Jak vytvořit nový objekt ve vašich dokumentech." -#: C/glabels.xml:2011(para) -msgid "y coordinate of circle origin (center)." -msgstr "y-ová souřadnice středu kruhu" +#: C/createnew.page:25(title) +msgid "To create new objects" +msgstr "Vytváření nových objektů" -#: C/glabels.xml:2016(para) -msgid "Radius of circle." -msgstr "Poloměr kruhu." +#: C/createnew.page:27(p) +msgid "" +"Objects are created by choosing the appropriate selection under the " +"ObjectsCreate Object submenu or the " +"Drawing Toolbar. This will place the display area into object " +"creation mode as indicated by its cursor. To return to the default object " +"selection mode without creating an object, choose ObjectsSelect Mode. This will return the display area's " +"cursor to the default selection arrow." +msgstr "" +"Objekty se vytvářejí příslušným výběrem v podnabídce ObjektyVytvořit nebo na Liště kreslení. " +"Zobrazovací oblast se přepne do režimu vytváření objektu, což je " +"signalizováno patřičným ukazatelem. Do výchozího režimu výběru objektů se " +"můžete vrátit, aniž byste nějaký objekt vytvořili, volbou " +"ObjektyRežim výběru. Ukazatel pro " +"zobrazovací oblast se změní zpět na výchozí šipku." -#: C/glabels.xml:2025(title) -msgid "Markup-rect Node" -msgstr "Uzel Markup-rect" +#: C/createnew.page:35(p) +msgid "The following describes the object creation mode for each object type:" +msgstr "Zde je popis režimu vytváření objektu pro jednotlivé typy objektů:" -#: C/glabels.xml:2027(para) -msgid "A Markup-rect describes a markup rectangle." +#: C/createnew.page:40(p) +msgid "" +"Click the desired location of the upper left corner of the text object. New " +"text objects are initialized with the string \"Text.\" To change this text, " +"or other properties, see ." msgstr "" -"Uzel Markup-rect popisuje značku v podobě obdélníku." - -#: C/glabels.xml:2048(para) -msgid "x coordinate of upper left corner of rectangle." -msgstr "x-ová souřadnice levého horního rohu obdélníku." +"Klikněte na požadované umístění levého horního rohu objektu text. Nový " +"textový objekt se vytvoří s počátečním řetězcem „Text“. Jak tento text nebo " +"další vlastnosti změnit uvádí ." -#: C/glabels.xml:2054(para) -msgid "y coordinate of upper left corner of rectangle." -msgstr "y-ová souřadnice levého horního rohu obdélníku." +#: C/createnew.page:47(title) +msgid "Box" +msgstr "Obdélník" -#: C/glabels.xml:2058(para) -msgid "w" -msgstr "w" +#: C/createnew.page:48(p) +msgid "" +"Click the desired location of the upper left corner of the box object and " +"drag to the desired location of the lower right corner. If you simply click " +"in a single location, a square box will be created. To change properties of " +"the box object, see ." +msgstr "" +"Klikněte na požadované umístění levého horního rohu objektu obdélník a " +"táhněte k požadovanému umístění pravého dolního rohu. Když jednoduše " +"kliknete na jednom místě, vytvoří se čtverec. Jak změnit vlastnosti " +"obdélníku uvádí ." -#: C/glabels.xml:2060(para) -msgid "Width of rectangle." -msgstr "Šířka obdélníku." +#: C/createnew.page:57(p) +msgid "" +"Click the desired location of one end of the line object and drag to the " +"desired location of the other end. If you simply click in a single location, " +"a diagonal line will be created. To change properties of the line object, " +"see ." +msgstr "" +"Klikněte na požadované umístění levého horního konce objektu čára a táhněte " +"k požadovanému umístění pravého dolního konce. Když jednoduše kliknete na " +"jednom místě, vytvoří diagonální úsečka. Jak změnit vlastnosti čáry uvádí " +"." -#: C/glabels.xml:2064(para) -msgid "h" -msgstr "h" +#: C/createnew.page:65(title) +msgid "Ellipse" +msgstr "Elipsa" -#: C/glabels.xml:2066(para) -msgid "Height of rectangle." -msgstr "Výška obdélníku." +#: C/createnew.page:66(p) +msgid "" +"Click the desired location of the upper left corner of the ellipse object " +"and drag to the desired location of the lower right corner. If you simply " +"click in a single location, a circle will be created. To change properties " +"of the ellipse object, see ." +msgstr "" +"Klikněte na požadované umístění levého horního rohu objektu elipsa a táhněte " +"k požadovanému umístění pravého dolního rohu. Když jednoduše kliknete na " +"jednom místě, vytvoří se kruh. Jak změnit vlastnosti elipsy uvádí ." -#: C/glabels.xml:2070(para) -msgid "r" -msgstr "r" +#: C/createnew.page:74(title) +msgid "Image" +msgstr "Obrázek" -#: C/glabels.xml:2071(para) -msgid "Radius of rounded corners of rectangle." -msgstr "Poloměr zakulacených rohů obdélníku." +#: C/createnew.page:75(p) +msgid "" +"Click the desired location of the upper left corner of the image object and " +"drag to the desired location of the lower right corner. If you simply click " +"in a single location, a square will be created. New image objects are " +"initialized with a simple checkerboard image. To change this image, or other " +"properties of the image object, see ." +msgstr "" +"Klikněte na požadované umístění levého horního rohu objektu obrázku a " +"táhněte k požadovanému umístění pravého dolního rohu. Když jednoduše " +"kliknete na jednom místě, vytvoří se čtverec. Nový obrázkový objekt se " +"vytvoří s jednoduchým počátečním obrázkem šachovnice. Jak změnit tento " +"obrázek a další vlastnosti uvádí ." -#: C/glabels.xml:2080(title) -msgid "Layout Node" -msgstr "Uzel Layout" +#: C/createnew.page:85(title) +msgid "Barcode" +msgstr "Čárový kód" -#: C/glabels.xml:2082(para) +#: C/createnew.page:86(p) msgid "" -"A label node may contain multiple Layout children. If " -"labels are arranged in a simple grid pattern, only one layout is needed. " -"However, if labels are arranged in multiple grids, such as a running bond " -"pattern, multiple layout tags can be used. Note: a " -"single label can always be treated as a grid of one." +"Click the desired location of the upper left corner of the barcode object. " +"New barcode objects are initialized to a POSTNET barcode with representative " +"data. To change data and properties of the barcode object, see ." msgstr "" -"Uzel typu Label může obsahovat více potomků Layout. V " -"případě, že jsou etikety rozmístěné do jednoduché pravidelné mřížky, " -"postačuje jeden uzel Layout. Pokud ale jsou etikety rozmístěné ve více " -"mřížkách, např. mají podobu cihlové zdi, musí se použít více značek " -"layout. Poznámka: jedna etiketa může být vždy " -"považována za mřížku s jednou buňkou." - -#: C/glabels.xml:2105(para) -msgid "nx" -msgstr "nx" +"Klikněte na požadované umístění levého horního rohu objektu čárového kódu. " +"Nový objekt čárového kódu se vytvoří jako čárový kód POSTNET s ukázkovými " +"daty. Jak tato data nebo další vlastnosti změnit uvádí ." -#: C/glabels.xml:2107(para) -msgid "Number of labels/cards across in the grid (horizontal)" -msgstr "Počet etiket/vizitek v mřížce (vodorovně)" +#: C/basicusage.page:9(desc) +msgid "Handling files and quit the application." +msgstr "Práce se soubory a ukončení aplikace." -#: C/glabels.xml:2112(para) -msgid "ny" -msgstr "ny" +#: C/basicusage.page:25(title) +msgid "Basic usage" +msgstr "Základy používání" -#: C/glabels.xml:2114(para) -msgid "Number of labels/cards up and down in the grid (vertical)" -msgstr "Počet etiket/vizitek v mřížce (svisle)" +#: C/basicusage.page:28(title) +msgid "To open a file" +msgstr "Jak otevřít soubor" -#: C/glabels.xml:2121(para) +#: C/basicusage.page:30(p) msgid "" -"Distance from left edge of sheet to the left edge of the left column of " -"cards/labels in the layout." +"To open a file, choose FileOpen to " +"display the Open File dialog. Select the file that you want to " +"open, then click OK. The file is displayed in the display area of " +"the gLabels window." msgstr "" -"Vzdálenost od levé hrany stránky k levé hraně levého sloupce etiket/vizitek " -"v rozvržení." +"Soubor otevřete pomocí volby SouborOtevřít, která zobrazí dialogové okno Otevření souboru. Vyberte " +"soubor, který chcete otevřít a klikněte na OK. Soubor se zobrazí " +"v zobrazovací oblasti okna gLabels." -#: C/glabels.xml:2128(para) +#: C/basicusage.page:37(p) msgid "" -"Distance from the top edge of sheet to the top edge of the top row of labels/" -"cards in the layout." +"You can also open multiple files in gLabels. The application " +"creates a separate application window for each open file." msgstr "" -"Vzdálenost od horní hrany stránky k horní hraně horní řady etiket/vizitek v " -"rozvržení." +"V aplikaci gLabels můžete otevřít i více souborů naráz. Aplikace " +"pro každý otevřený soubor vytvoří samostatné okno." -#: C/glabels.xml:2133(para) -msgid "dx" -msgstr "dx" +#: C/basicusage.page:41(p) +msgid "" +"The application records the paths and filenames of the most recent files " +"that you have edited and displays the files as menu items on the " +"FileRecent Files menu." +msgstr "" +"Pro soubory nedávno otevřené k úpravě si aplikace zaznamenává cesty a názvy " +"a tyto soubory potom zobrazuje v nabídce SouborOtevřít nedávné soubory." -#: C/glabels.xml:2134(para) -msgid "Horizontal pitch of grid." -msgstr "Vodorovná rozteč mřížky." +#: C/basicusage.page:48(title) +msgid "To close a file" +msgstr "Jak zavřít soubor" -#: C/glabels.xml:2137(para) -msgid "dy" -msgstr "dy" +#: C/basicusage.page:50(p) +msgid "" +"To close the current document, choose FileClose to close the application window. If the current document is " +"modified, a confirmation dialog will be presented, allowing you to save the " +"document or cancel the command. If the window being closed is the only open " +"window, gLabels will exit." +msgstr "" +"Když chcete aktuální dokument zavřít, zvolte SouborZavřít a zavřete tím aplikační okno. Pokud byl " +"aktuální dokument změněn, zobrazí se potvrzovací dialogové okno, kde můžete " +"dokument uložit nebo příkaz zrušit. Pokud je zavírané okno jediné otevřené, " +"ukončí se celá aplikace gLabels." -#: C/glabels.xml:2138(para) -msgid "Vertical pitch of grid." -msgstr "Svislá rozteč mřížky." +#: C/basicusage.page:60(title) +msgid "To save a file" +msgstr "Jak uložit soubor" -#: C/glabels.xml:2146(title) -msgid "Layout Parameters" -msgstr "Parametry uzlu Layout" +#: C/basicusage.page:62(p) +msgid "You can save files in the following ways:" +msgstr "Soubory můžete uložit následujícími způsoby:" -#: C/glabels.xml:2160(title) -msgid "Alias Node" -msgstr "Uzel Alias" +#: C/basicusage.page:66(p) +msgid "" +"To save changes to an existing file, choose FileSave." +msgstr "" +"Pro uložení změn do stávajícího souboru, zvolte SouborUložit." -#: C/glabels.xml:2162(para) +#: C/basicusage.page:73(p) msgid "" -"An Alias node provides the name of a product with the " -"same size and layout characteristics as the parent template." +"To save a new file or to save an existing file under a new filename, choose " +"FileSave As. Enter a name for the " +"file in the Save As dialog box, then click OK." msgstr "" -"Uzel Alias uvádí názvy výrobků se stejnými rozměry a " -"rozvržením, jako má rodičovská šablona." +"Pro uložení nového souboru nebo uložení stávajícího souboru pod novým " +"názvem, zvolte SouborUložit jako. V " +"dialogovém okně Uložení jako zadejte pro soubor název a klikněte " +"na OK." + +#: C/basicusage.page:84(title) +msgid "To quit gLabels" +msgstr "Jak ukončit gLabels" -#: C/glabels.xml:2184(para) -msgid "The brand or manufacturer of the equivalent product." -msgstr "Značka nebo výrobce odpovídajícího výrobku." +#: C/basicusage.page:86(p) +msgid "" +"To quit gLabels, choose FileQuit. This is equivalent to closing all open windows. See ." +msgstr "" +"Když chcete aplikaci gLabels ukončit, zvolte SouborUkončit. Odpovídá to zavření všech otevřených oken. " +"Viz ." -#: C/glabels.xml:2190(para) -msgid "The part number or name of the equivalent product." -msgstr "Produktové číslo nebo název odpovídajícího výrobku." +#: C/about.page:9(desc) +msgid "Information about gLabels." +msgstr "Informace o gLabels." -#: C/glabels.xml:2226(title) -msgid "About gLabels" +#: C/about.page:25(title) +msgid "About gLabels" msgstr "O aplikaci gLabels" -#: C/glabels.xml:2227(para) +#: C/about.page:27(p) msgid "" -"gLabels was written by Jim Evins " -"(evins@snaught.com). To find more information about " -"gLabels, please visit the gLabels Web page." +"gLabels was written by Jim Evins. To find more information about gLabels, " +"please visit the gLabels Web page." msgstr "" -"Aplikaci gLabels napsal Jim Evins " -"(evins@snaught.com). Pokud chcete o aplikaci " -"gLabels najít více informací, navštivte prosím " -"webovou stránku " -"gLabels." +"Aplikaci gLabels napsal Jim Evins. Pokud o ní chcete najít více informací, navštivte " +"prosím webovou stránku " +"gLabels." -#: C/glabels.xml:2232(para) +#: C/about.page:31(p) msgid "" "To report a bug or make a suggestion regarding this application or this " -"manual, follow the directions at the gLabels Contact " -"Page." +"manual, follow the directions at the gLabels Contact Page." msgstr "" "Pokud chcete oznámit chybu nebo navrhnout vylepšení vztahující se k této " -"aplikaci nebo této příručce, postupujte dle instrukcí na kontaktní stránce " -"gLabels." +"aplikaci nebo této příručce, postupujte dle instrukcí na kontaktní stránce gLabels." -#: C/glabels.xml:2238(para) +#: C/about.page:37(p) msgid "" "This program is distributed under the terms of the GNU General Public " -"license as published by the Free Software Foundation; either version 2 of " +"license as published by the Free Software Foundation; either version 3 of " "the License, or (at your option) any later version. A copy of this license " -"can be found at this link, or " +"can be found at this link, or " "in the file COPYING included with the source code of this program." msgstr "" "Tento program je šířen podle ustanovení GNU General Public License, vydávané " -"Free Software Foundation; a to buď verze 2 této licence anebo (podle " +"Free Software Foundation; a to buď verze 3 této licence anebo (podle " "vlastního uvážení) kterékoliv pozdější verze. Kopii této licence naleznete " -"pod tímto odkazem nebo v " +"pod tímto odkazem nebo v " "souboru COPYING přiloženém ke zdrojovým kódům tohoto programu. " #. Put one translator per line, in the form of NAME , YEAR1, YEAR2 -#: C/glabels.xml:0(None) +#: C/index.page:0(None) msgid "translator-credits" -msgstr "Marek Černocký , 2010" - +msgstr "Marek Černocký , 2010 – 2011" diff --git a/help/cs/customize.page b/help/cs/customize.page new file mode 100644 index 00000000..c9b1c971 --- /dev/null +++ b/help/cs/customize.page @@ -0,0 +1,114 @@ + + + + + + + Přizpůsobte si aplikaci gLabels svým potřebám. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Share Alike 3.0

      +
      +
      + + + + Nastavení +

      Když chcete v aplikaci gLabels změnit nastavení, zvolte UpravitPředvolby. Dialogové okno Předvolby gLabels obsahuje následující karty:

      + +
      + Národní prostředí +
      + Jednotky +

      Tento skupinový přepínač použijte k určení svých upřednostňovaných jednotek. Vyberte jednu z následujících možností:

      + + +

      Body

      +

      Použít body (1 bod = 1/72 palce = 0,352778 mm).

      +
      + +

      Palce

      +

      Použít palce (1 palec = 25,4 mm).

      +
      + +

      Milimetry

      +

      Použít milimetry.

      +
      +
      +

      Výchozí : Palce.

      +
      + +
      + Výchozí velikost stránky +

      Tento skupinový přepínač použijte k určení své upřednostňované velikosti stránky. Urychlí vám to hledání typu média při vytváření nové etikety nebo vizitky.

      + + +

      US Letter

      +

      Většina vašich médií má velikost stránky US Letter (8,5 × 11 palců).

      +
      + +

      ISO A4

      +

      Většina vašich médií má velikost stránky ISO A4 (210 × 297 mm).

      +
      +
      +

      Výchozí: US Letter.

      +
      +
      + +
      + Výchozí hodnoty objektů + +
      + Text +

      Použijte tyto ovládací prvky k nastavení výchozích vlastností nových textových objektů. Tyto vlastnosti jsou:

      + + +

      Písmo

      +

      Tyto ovládací prvky slouží k nastavení rodiny písma a velikosti písma a zda by mělo být písmo tučné nebo kurzívou.

      +
      + +

      Barva

      +

      Tímto ovládacím prvkem se vybírá výchozí barva textu.

      +
      + +

      Zarovnání

      +

      Tyto ovládací prvky slouží k výběru výchozího zarovnání textu (vlevo, na střed nebo vpravo).

      +
      +
      +
      + +
      + Čára +

      Použijte tyto ovládací prvky k nastavení výchozích vlastností čar a obrysů nových objektů. Tyto vlastnosti jsou:

      + + +

      Šířka

      +

      Tímto ovládacím prvkem se vybírá výchozí šířka čáry.

      +
      + +

      Barva

      +

      Tímto ovládacím prvkem se vybírá výchozí barva čáry.

      +
      +
      +
      + +
      + Výplň +

      Použijte tyto ovládací prvky k nastavení výchozích vlastností výplně nových objektů. Tyto vlastnosti jsou:

      + + +

      Barva

      +

      Tento ovládací prvek slouží k výběru výchozí barvy výplně.

      +
      +
      +
      +
      + +
      diff --git a/help/cs/customtemplate.page b/help/cs/customtemplate.page new file mode 100644 index 00000000..8254c9ad --- /dev/null +++ b/help/cs/customtemplate.page @@ -0,0 +1,27 @@ + + + + + + + Jak vytvořit vlastní šablonu pro papírové výrobky. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Share Alike 3.0

      +
      +
      + + Vytvoření vlastní šablony + +

      Když chcete vytvořit novou vlastní šablonu, zvolte SouborNávrhář šablon… a zobrazí se dialogové okno Návrhář šablon gLabels. Toto dialogové okno vás provede vytvořením vlastní šablony pro většinu typů etiket nebo vizitek, se kterými se můžete setkat.

      + +

      Pokud dáváte přednost ručnímu vytvoření šablon, přečtěte si

      + +
      diff --git a/help/cs/editprop.page b/help/cs/editprop.page new file mode 100644 index 00000000..d5d80197 --- /dev/null +++ b/help/cs/editprop.page @@ -0,0 +1,167 @@ + + + + + + + Jak upravit vlastnosti objektu. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Share Alike 3.0

      +
      +
      + + Změna vlastností objektů + +
      + +

      Většinu vlastností objektů lze upravit přes editor objektů v postranní liště, který je vyobrazený níže. Abyste mohli editor objektů používat, musíte nejdříve vybrat jeden objekt. Viz .

      + + + +

      Ovládací prvky tisku kopií

      +
      + + +

      Editor objektů bude obsahovat některé z následujících karet, které závisí na typu objektu:

      + +
      + Karta Text (textové objekty) + +

      Tato karta obsahuje malý editor na úpravu obsahu textového objektu. Rovněž obsahuje vyskakovací nabídku dostupných klíčů slučování dokumentů, které lze do textu vkládat.

      + +
      + +
      + Karta Obrázek (obrázkové objekty) + +

      Tato karta obsahuje pole na zadání souboru s obrázkem. Přes tlačítko procházení můžete soubor snadno najít. Druhou možností je použití klíče pro slučování dokumentů, který poskytne název souboru až během tisku.

      + +
      + +
      + Karta Data (objekty čárových kódů) + +

      Tato karta obsahuje textové pole na zadání dat pro čárový kód. Druhou možností je použití klíče pro slučování dokumentů, přes který jsou data poskytována až během tisku.

      + +
      + +
      + Karta Styl (textové objekty) + +

      Tato karta obsahuje ovládací prvky na výběr vlastností textu, včetně typu písma, velikosti písma, tloušťky písma, barvy a zarovnání textu.

      + +
      + +
      + Karta Styl (objekty čárových kódů) + +

      Tato karta obsahuje ovládací prvky na výběr vlastností čárového kódu, včetně stylu čárového kódu, barvy, zda tisknout text a zda vkládat číslo s kontrolním součtem.

      + +
      + +
      + Karta Čára + +

      Tato karta obsahuje ovládací prvky na výběr vlastností čar a obrysů. Tyto vlastnosti zahrnují tloušťku čáry a její barvu.

      + +
      + +
      + Karta Výplň + +

      Tato karta obsahuje ovládací prvky na výběr vlastností výplně objektů obdélníků a elips. V současnosti obsahuje pouze barvu výplně.

      + +
      + +
      + Karta Velikost (všechny objekty vyjma čar) + +

      Tato karta obsahuje ovládací prvky na výběr šířky a výšky objektu. K dispozici je zaškrtávací pole, kterým můžete zamknout poměr stran během úprav šířky a výšky. U obrázků je k dispozici rovněž tlačítko, kterým můžete nastavit reálné rozměry obrázku (předpokládá se 72 DPI).

      + +
      + +
      + Karta Velikost (objekty čar) + +

      Tato karta obsahuje ovládací prvky pro výběr délky a úhlu čáry.

      + +
      + +
      + Karta Pozice + +

      Tato karta obsahuje ovládací prvky pro změnu pozice objektu.

      + +
      + + +
      + Karta Stín (všechny objekty vyjma čárových kódů) + +

      Tato karta obsahuje ovládací prvky pro přidání stínu k objektu.

      + +
      + + +
      + + +
      + Ostatní manipulace s objekty + +

      S objekty lze manipulovat ještě následujícími způsoby:

      + +
      + Přesouvání a změna velikosti objektů + +

      Objekty lze přesunout kliknutím na vybraný objekt a tažením objektu na nové místo. Pokud je objekt součástí skupiny označených objektů, budou se s objektem přesouvat všechny vybrané objekty, ale jejich vzájemná pozice zůstane zachovaná. Pokud není žádný objekt vybraný, kliknutí na objekt provede nový výběr tohoto objektu. Viz .

      + +

      U vybraných objektů můžete měnit jejich velikost kliknutím na úchyt pro změnu velikosti a jeho tažením tak, abyste dosáhli správné velikost.

      + +
      + +
      + Změna pořadí objektů + +

      Pořadí objektů představuje jejich relativní polohu v ose z. Prakticky to určuje při překrývání objektů, který z nich bude nahoře a který vespod. Standardně se nové objekty vytvářejí nad staršími objekty. Když chcete toto pořadí změnit, jeden nebo více objektů vyberte a zvolte ObjektyPořadíPřenést dopředu pro vynesení výběru na nejvyšší pozici nebo ObjektyPořadíOdsunout dozadu pro zatlačení výběru úplně dospod. Tyto položky nabídky jsou přístupné i po kliknutí pravým tlačítkem v zobrazovací oblasti za předpokladu, že jsou vybrané nějaké objekty.

      + +
      + +
      + Otáčení a překlápění objektů + +

      Objekty lze otáčet po 90stupňových krocích v obou směrech nebo je překlápět svisle či vodorovně a to volbou příslušné položky v podnabídce ObjektyOtočit/Překlopit. Tyto položky nabídky jsou přístupné i po kliknutí pravým tlačítkem v zobrazovací oblasti za předpokladu, že jsou vybrané nějaké objekty.

      + + +

      Tato funkce je užitečná, když navrhujete vložky do krabičky na CD. Pro text na hřbetu potřebujete svisle uspořádaný text. Po té co vytvoříte rámec se základním textem, zvolte ObjektyOtočit/překlopit, abyste textový rámec natočili podle svých požadavků.

      +
      + +
      + +
      + Zarovnávání objektů + +

      Objekty lze zarovnávat vodorovně nebo svisle, relativně vůči sobě nebo relativně ke středové čáře etikety, volbou příslušné položky z podnabídky ObjektyZarovnat vodorovně nebo ObjektyZarovnat svisle. Tyto položky nabídky jsou přístupné i po kliknutí pravým tlačítkem v zobrazovací oblasti za předpokladu, že jsou vybrané nějaké objekty.

      + +
      + +
      + Používání lišty vlastností + +

      Lištu vlastností lze použít ke změně některých běžných vlastností objektů jako celku. Tyto vlastnosti zahrnují typ písma, velikost písma, tloušťku písma, zarovnání textu, barvu textu, barvu výplně, barvu čáry nebo obrysu a tloušťku čáry. Přes panel vlastností může také zadat výchozí hodnoty těchto vlastností pro nově vytvářené objekty.

      + +
      + + + +
      + +
      diff --git a/help/cs/figures/main-window-empty.png b/help/cs/figures/main-window-empty.png deleted file mode 100644 index f9157f9901a383e12f5cdfa00dc7e06898a11406..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38354 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 Bta<Daby-QE42Gwz@B^WHtiuIy2( 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

      &vku|6*-dydYrkL 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 diff --git a/help/cs/figures/merge-ex2-1.png b/help/cs/figures/merge-ex2-1.png index 855a1c1fe6ded7c17031853f16f9414b3336380e..2a94e80e356b38a1d069cd743416d0c29a552a36 100644 GIT binary patch literal 49173 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

      G{h2UH-}0 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 z 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 L|5Pq&5b%EhhxmBY diff --git a/help/cs/figures/object-editor-sidebar.png b/help/cs/figures/object-editor-sidebar.png index f09cd2b1d954c65a314e70ea4d3635f479e05cad..3ba9c32f8775716e9252e8935b17751665a44d34 100644 GIT binary patch literal 16093 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�zbF8YXuyOQ@exeg5)>?b- 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 G4*G9c&Otx` literal 4100 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 literal 4338 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 diff --git a/help/cs/figures/skip-fields-output.png b/help/cs/figures/skip-fields-output.png new file mode 100644 index 0000000000000000000000000000000000000000..48eb23836da1381c96152fe486b364625cd99ebd GIT binary patch literal 35459 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 literal 0 HcmV?d00001 diff --git a/help/cs/figures/skip-fields-screenshot.png b/help/cs/figures/skip-fields-screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..95e944b21eb5f8c2880219c1784db9e5c0b891ac GIT binary patch literal 63361 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
    1. Pj0j^5|kZ0>LMhU%Vt8Pw-w&yqRQ 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 - - - - -gLabels"> -]> - - -
      - - - - Příručka V2.2.6 k aplikaci <application>gLabels</application> - - Uživatelská příručka k aplikaci gLabels na vytváření etiket a vizitek - - - 2003-2009 - Jim Evins - 2010Marek Černocký (marek@manet.cz) - - Jim Evins - - - - Je povoleno kopírovat, šířit a/nebo upravovat tento dokument za podmínek GNU Free Documentation License, verze 1.1 nebo jakékoli další verze vydané nadací Free Software Foundation; bez neměnných oddílů, bez textů předních desek a bez textů zadních desek. Kopie této licence je zahrnuta v oddílu jménem GNU Free Documentation License nebo v souboru COPYING-DOCS dodávaném s touto příručkou. - Tato příručka je součástí kolekce příruček GNOME, distribuovaných pod licencí GNU FDL. Pokud chcete tento dokument šířit odděleně od kolekce, musíte přiložit kopii licence dle popisu v sekci 6 dané licence. - - Mnoho užívaných jmen určených k zviditelnění produktů nebo služeb jsou ochranné známky. Na místech, kde jsou tato jména v dokumentaci užita a členové Dokumentačního projektu GNOME jsou si vědomi skutečnosti, že se jedná o ochrannou známku, je takové jméno psáno velkými písmeny celé nebo s velkým písmenem na začátku. - - DOKUMENT A JEHO UPRAVENÉ VERZE JSOU ŠÍŘENY V SOULADU SE ZNĚNÍM LICENCE GNU FREE DOCUMENTATION LICENSE S NÁSLEDUJÍCÍM USTANOVENÍM: - - DOKUMENT JE POSKYTOVÁN V PODOBĚ „JAK JE“ BEZ ZÁRUKY V JAKÉKOLIV PODOBĚ, NEPOSKYTUJÍ SE ANI ODVOZENÉ ZÁRUKY, ZÁRUKY, ŽE DOKUMENT, NEBO JEHO UPRAVENÁ VERZE, JE BEZCHYBNÝ NEBO ZÁRUKY PRODEJNOSTI, VHODNOSTI PRO URČITÝ ÚČEL NEBO NEPORUŠENOSTI. RIZIKO NEKVALITY, NEPŘESNOSTI A ŠPATNÉHO PROVEDENÍ DOKUMENTU, NEBO JEHO UPRAVENÉ VERZE, LEŽÍ NA VÁS. POKUD KVŮLI TOMUTO DOKUMENTU, NEBO JEHO UPRAVENÉ VERZI, NASTANE PROBLÉM, VY (NIKOLIV PŮVODNÍ AUTOR NEBO JAKÝKOLIV PŘISPĚVATEL) PŘEBÍRÁTE JAKÉKOLIV NÁKLADY ZA NUTNÉ ÚPRAVY, OPRAVY ČI SLUŽBY. TOTO PROHLÁŠENÍ O ZÁRUCE PŘEDSTAVUJE ZÁKLADNÍ SOUČÁST TÉTO LICENCE. BEZ TOHOTO PROHLÁŠENÍ NENÍ, PODLE TÉTO DOHODY, POVOLENO UŽÍVÁNÍ ANI ÚPRAVY TOHOTO DOKUMENTU; DÁLE - - - ZA ŽÁDNÝCH OKOLNOSTÍ A ŽÁDNÝCH PRÁVNÍCH PŘEDPOKLADŮ, AŤ SE JEDNÁ O PŘEČIN (VČETNĚ NEDBALOSTNÍCH), SMLOUVU NEBO JINÉ, NENÍ AUTOR, PŮVODNÍ PISATEL, KTERÝKOLIV PŘISPĚVATEL NEBO KTERÝKOLIV DISTRIBUTOR TOHOTO DOKUMENTU NEBO UPRAVENÉ VERZE DOKUMENTU NEBO KTERÝKOLIV DODAVATEL NĚKTERÉ Z TĚCHTO STRAN ODPOVĚDNÝ NĚJAKÉ OSOBĚ ZA PŘÍMÉ, NEPŘÍMÉ, SPECIÁLNÍ, NAHODILÉ NEBO NÁSLEDNÉ ŠKODY JAKÉHOKOLIV CHARAKTERU, VČETNĚ, ALE NEJEN, ZA POŠKOZENÍ ZE ZTRÁTY DOBRÉHO JMÉNA, PŘERUŠENÍ PRÁCE, PORUCHY NEBO NESPRÁVNÉ FUNKCE POČÍTAČE NEBO JINÉHO A VŠECH DALŠÍCH ŠKOD NEBO ZTRÁT VYVSTÁVAJÍCÍCH Z NEBO VZTAHUJÍCÍCH SE K POUŽÍVÁNÍ TOHOTO DOKUMENTU NEBO UPRAVENÝCH VERZÍ DOKUMENTU, I KDYŽ BY TAKOVÁTO STRANA BYLA INFORMOVANÁ O MOŽNOSTI TAKOVÉHOTO POŠKOZENÍ. - - - - - - - - - - Jim - Evins - - - - - - - - - - - - - - - - - - - - - Příručka V2.2.6 k aplikaci gLabels - Říjen 2009 - - Mario Blättermann mariobl@gnome.org - Jim Evins - - - - Příručka V2.2 k aplikaci gLabels - Prosinec 2007 - - Jim Evins evins@snaught.com - Jim Evins - - - - - Tato příručka popisuje aplikaci gLabels ve verzi 2.2.6. - - Ohlasy - Pokud chcete oznámit chybu nebo navrhnout vylepšení vztahující se k aplikaci gLabels nebo této příručce, postupujte dle instrukcí na kontaktní stránce gLabels. - - - - - - gLabels - - - glabels - - - - - - - - - - Úvod - - Aplikace gLabels je jednoduchý program na vytváření etiket a vizitek pro pracovní prostředí GNOME. Je navržená pro práci s různými samolepicími etiketami a vizitkami rozmístěnými na listech pro laserový/inkoustový tisk, které najdete v každém obchodě s kancelářskými potřebami. - - - - - - - - - - - Začínáme - - - Jak spustit aplikaci <application>gLabels</application> - Aplikaci gLabels můžete spustit následujícími způsoby: - - - Nabídka Aplikace - - Zvolte KancelářNávrhář etiket gLabels. - - - - Příkazový řádek - - Napište příkaz glabels a zmáčkněte Enter: - - - - - - - Když spustíte aplikaci <application>gLabels</application> - Když spustíte aplikaci gLabels, zobrazí se následující okno. - - -
      - Okno <application>gLabels</application> po spuštění - - - - - - -
      - - - - - - Okno gLabels obsahuje následující části: - - - Panel nabídek. - - Nabídky v panelu nabídek obsahují všechny příkazy potřebné k vytváření a úpravám etiket a vizitek v aplikaci gLabels. - - - - Hlavní panel nástrojů. - - Hlavní panel nástrojů obsahuje podmnožinu běžných příkazů pro práci se soubory a k úpravám z těch, které jsou dostupné v panelu nabídek. - - - - Panel kreslení. - - Panel kreslení obsahuje podmnožinu běžných příkazů k úpravám aktuálního dokumentu gLabels. - - - - Zobrazovací oblast - - Zobrazovací oblast je hlavní rozhraní aplikace gLabels sloužící ke kreslení. - - - - Postranní panel objektů. - - Postranní panel objektů poskytuje rozhraní na prohlížení a úpravu všech vlastností jednotlivých objektů. - - - - Panel vlastností. - - Panel vlastností obsahuje sadu nástrojů na úpravu vlastností vybraných objektů a nastavení výchozích vlastností pro nové objekty. - - - - Stavový panel. - - Stavový panel zobrazuje informace o aktuální činnosti aplikace gLabels a kontextové informace o položkách nabídky. - - - -
      -
      - - - - - - - - Použití - - - - Jak vytvořit novou etiketu nebo vizitku - - Když chcete vytvořit novou etiketu nebo vizitku, zvolte SouborNový a zobrazí se dialogové okno Nová etiketa či vizitka. Vyberte pro nový dokument typ média a orientaci a klikněte na OK. Nový dokument se zobrazí v zobrazovací oblasti okna gLabels. - - V případě, že vaše konkrétní médium v tomto dialogovém okně schází, přečtěte si . - - - - - - Jak otevřít soubor - - Soubor otevřete pomocí volby SouborOtevřít, která zobrazí dialogové okno Otevření souboru. Vyberte soubor, který chcete otevřít a klikněte na OK. Soubor se zobrazí v zobrazovací oblasti okna gLabels. - - V aplikaci gLabels můžete otevřít i více souborů naráz. Aplikace pro každý otevřený soubor vytvoří zvláštní okno. - - Pro soubory nedávno otevřené k úpravě si aplikace zaznamenává cesty a názvy a tyto soubory potom zobrazuje v nabídce SouborOtevřít nedávné soubory. - - - - - - Jak otevřít více souborů z příkazové řádky - - Aplikaci gLabels můžete spustit z příkazového řádku a otevřít při tom jeden nebo více souborů. Pokud chcete otevřít z příkazového řádku více souborů, napište následující příkaz a zmáčkněte Enter: - - glabels soubor1.glabels soubor2.glabels soubor3.glabels - - Po spuštění aplikace se každý ze zadaných souborů zobrazí ve zvláštním okně gLabels. - - - - - - Jak uložit soubor - - Soubory můžete uložit následujícími způsoby: - - - - - Pro uložení změn do stávajícího souboru, zvolte SouborUložit. - - - - - Pro uložení nového souboru nebo uložení stávajícího souboru pod novým názvem, zvolte SouborUložit jako. V dialogovém okně Uložit jako zadejte pro soubor název a klikněte na OK. - - - - - - - - - Jak změnit vlastnosti etikety - - Pokud chcete změnit typ média a/nebo orientaci etiket, zvolte SouborVlastnosti a zobrazí se dialogové okno Vlastnosti etikety. Zvolte pro dokument nový typ média a orientaci a klikněte na OK. - - - - - - Jak vytvořit vlastní šablonu - - Když chcete vytvořit novou vlastní šablonu, zvolte SouborNávrhář šablon… a zobrazí se dialogové okno Návrhář šablon gLabels. Toto dialogové okno vás provede vytvořením vlastní šablony pro většinu typů etiket nebo vizitek, se kterými se můžete setkat. - - Pokud dáváte přednost ručnímu vytvoření šablon, přečtěte si - - - - - - Jak zavřít soubor - - Když chcete aktuální dokument zavřít, zvolte SouborZavřít a zavřete tím aplikační okno. Pokud byl aktuální dokument změněn, zobrazí se potvrzovací dialogové okno, kde můžete dokument uložit nebo příkaz zrušit. Pokud je zavírané okno jediné otevřené, ukončí se celá aplikace gLabels. - - - - - - Jak ukončit <application>gLabels</application> - - Když chcete aplikaci gLabels ukončit, zvolte SouborUkončit. Odpovídá to zavření všech otevřených oken. Viz . - - - - - - Jak vytisknout etikety nebo vizitky - - Když chcete vytisknout etikety nebo vizitky, zvolte SouborTisk a zobrazí se dialogové okno Tisk. Až nastavíte volby tisku, klikněte na Tisk a etikety nebo vizitky se vytisknou. Pokud se chcete jen podívat na náhled, klikněte místo toho na Náhled tisku. - - V dialogovém okně Tisk můžete nastavit následující volby tisku: - - - Karta Etikety v dialogovém okně Tisk - - - - - Ovládání tisku (jednoduchý) - - - Pro jednoduché etikety nebo vizitky (bez slučování dokumentů), obsahuje karta Etikety následující prvky. - - - - - - Počet kopií etikety můžete vybrat zvolením počtu plných listů, které se mají vytisknout, a nebo vybrat jen část etiket na jednom listu. - - Mini-náhled můžete také použít ke grafickému výběru části etiket tak, že kliknete na první etiketu v mini-náhledu a táhnete až na poslední etiketu. - - - - - - Ovládání tisku (slučování) - - - Pro etikety nebo vizitky používající slučování dokumentů (někdy také nazývané „hromadná korespondence“), obsahuje karta Etikety následující ovládací prvky slučování lišící se od ovládacích prvků jednoduchého tisku. - - - - - - Celkový počet etiket nebo vizitek je dán počtem záznamů ve zdroji slučování a počtem vybraných kopií. Jestliže je vybráno více kopií, mohou být také uspořádané (kopie ze stejného záznamu seskupené spolu) nebo neuspořádané (kopie jednotlivých záznamů za sebou). - - Tisk může začínat na libovolné etiketě na prvním listu. Tu můžete vybrat pomocí číselníku Začít na etiketě. - - Mini-náhled můžete také použít ke grafickému výběru první etikety tak, že na ni v mini-náhledu kliknete. - - - - - Volby - - Můžete rovněž vybrat následující volby. - - - tisk obrysů - Tisk obrysů etiket. Tato volba je použitelná k tisku nanečisto, k otestování lícování. - - - obrácený tisk - Tisknout etikety zrcadlově. Tato volba je použitelná pro tisk na čiré etikety, na které se bude dívat z druhé strany (např. na okně auta). - - - tisknout značky pro ořez - Tisknout ořezové značky podél hran listu. Tato volba je použitelná pro tisk na čisté listy, které se budou po tisku rozřezávat. Tato volba nepracuje úplně správně se všemi šablonami. - - - - - - - - - - - - Jak vytvořit nový objekt - - Objekty se vytvářejí příslušným výběrem v podnabídce ObjektyVytvořit nebo na Panelu kreslení. Zobrazovací oblast se přepne do režimu vytváření objektu, což je indikováno patřičným ukazatelem. Do výchozího režimu výběru objektů se můžete vrátit, aniž byste nějaký objekt vytvořili, volbou ObjektyRežim výběru. Ukazatel pro zobrazovací oblast se změní zpět na výchozí šipku. - - Zde je popis režimu vytváření objektu pro jednotlivé typy objektů: - - - - - Text - - Klikněte na požadované umístění levého horního rohu objektu text. Nový textový objekt se vytvoří s počátečním řetězcem „Text“. Jak tento text nebo další vlastnosti změnit uvádí . - - - - - Obdélník - - Klikněte na požadované umístění levého horního rohu objektu obdélník a táhněte k požadovanému umístění pravého dolního rohu. Když jednoduše kliknete na jednom místě, vytvoří se čtverec. Jak změnit vlastnosti obdélníku uvádí . - - - - - Čára - - Klikněte na požadované umístění levého horního konce objektu čára a táhněte k požadovanému umístění pravého dolního konce. Když jednoduše kliknete na jednom místě, vytvoří diagonální úsečka. Jak změnit vlastnosti čáry uvádí . - - - - - Elipsa - - Klikněte na požadované umístění levého horního rohu objektu elipsa a táhněte k požadovanému umístění pravého dolního rohu. Když jednoduše kliknete na jednom místě, vytvoří se kruh. Jak změnit vlastnosti elipsy uvádí . - - - - - Obrázek - - Klikněte na požadované umístění levého horního rohu objektu obrázku a táhněte k požadovanému umístění pravého dolního rohu. Když jednoduše kliknete na jednom místě, vytvoří se čtverec. Nový obrázkový objekt se vytvoří s jednoduchým počátečním obrázkem šachovnice. Jak změnit tento obrázek a další vlastnosti uvádí . - - - - - Čárový kód - - Klikněte na požadované umístění levého horního rohu objektu čárového kódu. Nový objekt čárového kódu se vytvoří jako čárový kód POSTNET s ukázkovými daty. Jak tato data nebo další vlastnosti změnit uvádí . - - - - - - - - - - - Jak vybrat objekty - - Předpokladem k provádění operací s objekty je výběr jednoho či skupiny více objektů. Aby bylo možné výběr provést, musí být zobrazovací oblast v režimu výběru objektů, což je indikováno kurzorem v podobě šipky. Režim výběru objektů se zvolí pomocí ObjektyRežim výběru nebo odpovídajícím příkazem na Panelu kreslení. - - - - - Výběr jednoho objektu - - Jeden objekt vyberete prostým kliknutím na něj v zobrazovací oblasti. Vybraný objekt bude zvýrazněný sadou úchopů sloužících ke změně velikosti - - - - - Přidávání objektů do výběru - - Více objektů můžete vybrat tak, že vyberete první dříve uvedeným způsobem a po té budete držet klávesu Ctrl a vybírat další objekty. Jednotlivé objekty lze přidat do stávajícího výběru kdykoliv držením klávesy Ctrl během vybírání požadovaných objektů. Všechny objekty můžete vybrat pomocí položky nabídky UpravitVybrat vše. Všechny objekty ve výběru jsou zvýrazněné. - - - - - Výběr oblasti - - Více objektů lze rovněž vybrat zmáčknutím tlačítka myši na prázdném místě a tažením obdélníkové oblasti. Po uvolnění tlačítka se všechny objekty obsažené v takovéto oblasti naráz vyberou. Výběr pomocí oblasti lez použít k přidání ke stávajícímu výběru podržením klávesy Ctrl během provádění výběru. - - - - - Zrušení výběru objektů - - Jednotlivé objekty lze z výběru odebrat podržením klávesy Ctrl a klikáním na označené objekty. Veškerý výběr můžete zrušit pomocí nabídky UpravitZrušit výběr nebo jednoduchým kliknutím na prázdné místo v zobrazovací oblasti. Jakmile je u objektu zrušen výběr, zmizí i jeho zvýraznění. - - - - - - - - - - Příkazy pro práci se schránkou - - S vybranými objekty lze manipulovat pomocí standardních operací se schránkou Vyjmout, Kopírovat, Vložit a Smazat. - - - - - - - - CtrlX - - Vyjmout - - - - Přesune vybrané objekty do schránky. Objekty jsou potom přístupné pro vkládání zpátky do aktuálního dokumentu nebo jiného dokumentu. - - - - - - - - CtrlC - - Kopírovat - - - - Zkopíruje vybrané objekty do schránky, aniž by byly vymazány. Objekty jsou potom přístupné pro vkládání zpátky do aktuálního dokumentu nebo jiného dokumentu. - - - - - - - - CtrlV - - Vložit - - - - Vloží objekty ze schránky do aktuálního dokumentu. Aplikace gLabels umí vkládat pouze objekty z jiného dokumentu gLabels. - - - - - - - - Smazat - - Smazat - - - - Smaže vybrané objekty, aniž by byly umístěny do schránky. - - - - - - - - - - Jak upravit vlastnosti objektu - - Většinu vlastností objektů lze upravit přes editor objektů v postranním panelu, který je vyobrazený níže. Abyste mohli editor objektů používat, musíte nejdříve vybrat jeden objekt. Viz . - - -
      - Editor objektů z postranního panelu - - - - - - -
      - - - Editor objektů bude obsahovat některé z následujících karet, které závisí na typu objektu: - - - Karta Text (textové objekty) - - Tato karta obsahuje malý editor na úpravu obsahu textového objektu. Rovněž obsahuje vyskakovací nabídku dostupných klíčů slučování dokumentů, které lze do textu vkládat. - - - - - Karta Obrázek (obrázkové objekty) - - Tato karta obsahuje pole na zadání souboru s obrázkem. Přes tlačítko procházení můžete soubor snadno najít. Druhou možností je použití klíče pro slučování dokumentů, který poskytne název souboru až během tisku. - - - - - Karta Data (objekty čárových kódů) - - Tato karta obsahuje textové pole na zadání dat pro čárový kód. Druhou možností je použití klíče pro slučování dokumentů, přes který jsou data poskytována až během tisku. - - - - - Karta Styl (textové objekty) - - Tato karta obsahuje ovládací prvky na výběr vlastností textu, včetně typu písma, velikosti písma, tloušťky písma, barvy a zarovnání textu. - - - - - Karta Styl (objekty čárových kódů) - - Tato karta obsahuje ovládací prvky na výběr vlastností čárového kódu, včetně stylu čárového kódu, barvy, zda tisknout text a zda vkládat číslo s kontrolním součtem. - - - - - Karta Čára - - Tato karta obsahuje ovládací prvky na výběr vlastností čar a obrysů. Tyto vlastnosti zahrnují tloušťku čáry a její barvu. - - - - - Karta Výplň - - Tato karta obsahuje ovládací prvky na výběr vlastností výplně objektů obdélníků a elips. V současnosti obsahuje pouze barvu výplně. - - - - - Karta Velikost (všechny objekty vyjma čar) - - Tato karta obsahuje ovládací prvky na výběr šířky a výšky objektu. K dispozici je zaškrtávací pole, kterým můžete zamknout poměr stran během úprav šířky a výšky. U obrázků je k dispozici rovněž tlačítko, kterým můžete nastavit reálné rozměry obrázku (předpokládá se 72 DPI). - - - - - Karta Velikost (objekty čar) - - Tato karta obsahuje ovládací prvky pro výběr délky a úhlu čáry. - - - - - Karta Pozice - - Tato karta obsahuje ovládací prvky pro změnu pozice objektu. - - - - - - Karta Stín (všechny objekty vyjma obrázků a čárových kódů) - - Tato karta obsahuje ovládací prvky pro přidání stínu k objektu. - - - - -
      - - - - Ostatní manipulace s objekty - - S objekty lze manipulovat ještě následujícími způsoby: - - - Přesouvání a změna velikosti objektů - - Objekty lze přesunout kliknutím na vybraný objekt a tažením objektu na nové místo. Pokud je objekt součástí skupiny označených objektů, budou se s objektem přesouvat všechny vybrané objekty, ale jejich vzájemná pozice zůstane zachovaná. Pokud není žádný objekt vybraný, kliknutí na objekt provede nový výběr tohoto objektu. Viz . - - U vybraných objektů můžete měnit jejich velikost kliknutím na úchop pro změnu velikosti a jeho tažením tak, abyste dosáhli správné velikost. - - - - - Změna pořadí objektů - - Pořadí objektů představuje jejich relativní polohu v ose z. Prakticky to určuje při překrývání objektů, který z nich bude nahoře a který vespod. Standardně se nové objekty vytvářejí nad staršími objekty. Když chcete toto pořadí změnit, jeden nebo více objektů vyberte a zvolte ObjektyPořadíPřenést dopředu pro vynesení výběru na nejvyšší pozici nebo ObjektyPořadíPřenést dozadu pro zatlačení výběru úplně dospod. Tyto položky nabídky jsou přístupné i po kliknutí pravým tlačítkem v zobrazovací oblasti za předpokladu, že jsou vybrané nějaké objekty. - - - - - Otáčení a překlápění objektů - - Objekty lze otáčet po 90stupňových krocích v obou směrech nebo je překlápět svisle nebo vodorovně a to volbou příslušné položky v podnabídce ObjektyOtočit/Překlopit. Tyto položky nabídky jsou přístupné i po kliknutí pravým tlačítkem v zobrazovací oblasti za předpokladu, že jsou vybrané nějaké objekty. - - - - - Zarovnávání objektů - - Objekty lze zarovnávat vodorovně nebo svisle, relativně vůči sobě nebo relativně ke středové čáře etikety, volbou příslušné položky z podnabídky ObjektyZarovnat vodorovně nebo ObjektyZarovnat svisle. Tyto položky nabídky jsou přístupné i po kliknutí pravým tlačítkem v zobrazovací oblasti za předpokladu, že jsou vybrané nějaké objekty. - - - - - Používání panelu vlastností - - Panel vlastností lze použít ke změně některých běžných vlastností objektů jako celku. Tyto vlastnosti zahrnují typ písma, velikost písma, tloušťku písma, zarovnání textu, barvu textu, barvu výplně, barvu čáry nebo obrysu a tloušťku čáry. Přes panel vlastností může také zadat výchozí hodnoty těchto vlastností pro nově vytvářené objekty. - - - - - - - - - - Provádění slučování dokumentů - - Slučování dokumentů (někdy také nazývané „hromadná korespondence“) je mocná funkce, která umožňuje vytisknout na etikety nebo vizitky různé texty podle jednotlivých záznamů v externím zdroji dat. - - Prvním krokem při slučování dokumentů je příprava zdrojového dokumentu, který má obsahovat slučovaná data. Tato data mohou být poštovní adresy nebo jakákoliv jiná data, pro která si přejete vytvořit jedinečné etikety nebo vizitky. V současnosti jsou zatím jako zdroje podporované pouze textové soubory a datový server Evolution, jiné jsou v plánu. Současně podporovaný formát textových souborů je velmi jednoduchý: co řádek, to záznam; pole jsou oddělená čárkami (CSV), tabulátory nebo dvojtečkami; řádky jsou zakončené pomocí znaku „\n“. Takovýto soubor jde vytvořit v libovolném textovém editoru nebo jiným programem nebo skriptem. Obvyklým způsobem vytváření souborů CSV je jejich export z tabulkového kalkulátoru. - - Etiketa musí být nastavená tak, aby „ukazovala na“ takovýto datový soubor. Abyste nastavili vlastnosti slučování dokumentu, zvolte položku nabídky ObjektyVlastnosti slučování, zobrazí se dialogové okno vlastnosti slučování. Toto dialogové okno slouží k výběru přesného formátu datového souboru a názvu (umístění) souboru se slučovanými daty. - - Nakonec, až je etiketa nastavená pro datový soubor, je zapotřebí vložit klíče polí do textových objektů a použít klíče polí jako zdroje nebo data pro objekty čárových kódů a jako názvy souborů pro obrázkové objekty. Více informací o použití slučovaných dat pro tyto typy objektů viz . - - Nyní, když máte svoji etiketu nastavenou, bude aplikace gLabels tisknout jednotlivé etikety odlišné pro každý záznam ve vašem zdrojovém dokumentu - do klíčů polí se ve všech textech budou dosazovat pole z jednotlivých záznamů. - - Podrobný průvodce funkcí slučování dokumentů viz . - - - - - -
      - - - - - - - - Nastavení - Když chcete v aplikaci gLabels změnit nastavení, zvolte UpravitPředvolby. Dialogové okno Předvolby gLabels obsahuje následující karty: - - - - - - - - - - - - - - Národní prostředí - - - - Jednotky - - Tento skupinový přepínač použijte k určení svých upřednostňovaných jednotek. Vyberte jednu z následujících možností: - - - - Body - Použít body (1 bod = 1/72 palce = 0,352778 mm). - - - - Palce - Použít palce (1 palec = 25,4 mm). - - - - Milimetry - Použít milimetry. - - - Výchozí : Palce. - - - - - Výchozí velikost stránky - - Tento skupinový přepínač použijte k určení své upřednostňované velikosti stránky. Urychlí vám to hledání typu média při vytváření nové etikety nebo vizitky. - - - - US Letter - Většina vašich médií má velikost stránky US Letter (8,5 × 11 palců). - - - - ISO A4 - Většina vašich médií má velikost stránky ISO A4 (210 × 297 mm). - - - Výchozí: US Letter. - - - - - - - - Výchozí hodnoty objektu - - - - Text - - Použijte tyto ovládací prvky k nastavení výchozích vlastností nových textových objektů. Tyto vlastnosti jsou: - - - - Písmo - Tyto ovládací prvky slouží k nastavení rodiny písma a velikosti písma a zda by mělo být písmo tučné nebo kurzívou. - - - - Barva - Tímto ovládacím prvkem se vybírá výchozí barva textu. - - - - Zarovnání - Tyto ovládací prvky slouží k výběru výchozího zarovnání textu (vlevo, na střed nebo vpravo). - - - - - - - Čára - - Použijte tyto ovládací prvky k nastavení výchozích vlastností čar a obrysů nových objektů. Tyto vlastnosti jsou: - - - - Šířka - Tímto ovládacím prvkem se vybírá výchozí šířka čáry. - - - - Barva - Tímto ovládacím prvkem se vybírá výchozí barva čáry. - - - - - - - Výplň - - Použijte tyto ovládací prvky k nastavení výchozích vlastností výplně nových objektů. Tyto vlastnosti jsou: - - - - Barva - Tento ovládací prvek slouží k výběru výchozí barvy výplně. - - - - - - - - - - - - - - Průvodce slučováním dokumentů - - Slučování dokumentů (někdy také nazývané „hromadná korespondence“) je mocná funkce, díky které můžete tisknout odlišné etikety nebo vizitky pro každý záznam v externím zdroji dat. Je však také ze všech funkcí aplikace gLabels nejnáročnější na pochopení. Následující příklady vás provedou dvojicí obvyklých úloh, které používají funkci slučování dokumentů. - - - Příklad 1: Jmenovky s použitím souboru CSV - - V tomto příkladu pořádáme seznamovací párty pro nové členy osádky naší lodi. Máme seznam nováčků v osádce, který jsme vytvořili v aplikaci gnumeric a následně jej vyexportovali do souboru CSV. Mohli bychom jej vytvořit i v textovém editoru, ale žijeme přece v 21. století. - - -jmeno,zarazeni,cislo -"Jiří Kroupa",vedení,"SC937-0176 CEC" -"prof. Hrbolek",vědec,S179-276SP -"MUDr. Kroupová",lékař,unknown -"Viktor Hujer",technik,SE-197-54T - - - V aplikaci gLabels máme vytvořený dokument vycházející ze šablony Avery 5395 „Etikety na jmenovky“. Nyní použijeme položku nabídky ObjektyVlastnosti slučování a zobrazí se nám dialogové okno vlastnosti slučování. Toto dialogové okno použijeme k výběru typu zdroje (v našem případě CSV) a vlastního zdroje (souboru), jak můžete vidět níže. - - -
      - Dialogové okno vlastností slučování - - - - - - -
      - - - Před použitím zdroje slučování zrušíme zaškrtnutí prvního záznamu, protože ten obsahuje pouze záhlaví sloupců z naší původní tabulky v gnumeric a akorát bychom tím zničili první etiketu. Stejným způsobem můžeme zrušit zaškrtnutí kteréhokoliv záznamu, který nechceme vytisknout. - - U každého záznamu si také můžeme prohlédnou všechny údaje po jeho rozbalení kliknutím na malý trojúhelníček. Až jsme s výběrem v dialogovém okně spokojení, klikneme na OK a změny se použijí. - - Nyní můžeme začít s přidáváním objektů do svého dokumentu gLabels, jak je zobrazeno níže. - - -
      - Přidávání objektů - - - - - - -
      - - - V tomto příkladu máme přidané tři textové objekty a čárový kód. První textový objekt obsahuje pouze prostý text („Ahoj, jmenuji se“). Druhý textový objekt obsahuje jedno slučované pole („${1}“), které odpovídá prvnímu poli v záznamu (první sloupec v řádku) a které obsahuje celé jméno nového člena osádky. Třetí textové pole obsahuje jak text („Zařazení: “), tak za ním následuje jedno slučované pole („${2}“), které odpovídá druhému poli se zařazením člena posádky. Objekt s čárovým kódem je nastavený na použití pole (klíče) „3“, které obsahuje identifikační číslo člena posádky. - - Nyní můžeme své jmenovky vytisknout pomocí položky nabídky SouborTisk. Zobrazí se dialogové okno jako na následujícím obrázku. - - -
      - Tisk jmenovek - - - - - - -
      - - - Nyní zkontrolujeme, zda vypadají etikety jak mají. Vybereme možnost Tisk obrysů a klikneme na Náhled tisku. Zobrazí se dialogové okno s náhledem tisku, stejně jako na následujícím obrázku. - - -
      - Náhled jmenovek - - - - - - -
      - - - Vše vypadá v pořádku, takže můžeme do tiskárny vložit správný list s etiketami, vytisknout jmenovky a vzhůru na palubu nalodit naše hosty. - -
      - - - Příklad 2: Adresní štítky s použitím souboru CSV - - V tomto příkladu se chystáme uspořádat večírek a potřebujeme vytisknout adresní štítky na své pozvánky. Máme seznam svých nejbližších přátel, který jsem vytvořili v aplikaci gnumeric a vyexportovali jej jako soubor CSV. Povšimněte si, že ne všichni mají přezdívku nebo dvouřádkovou adresu. - - -PRIJMENI,JMENO,PREZDIVKA,ADR1,ADR2,MESTO,PSC -,,,,,,, -Pacovský,Tomáš,,"U dvou akordů","Křižíkova 506",Praha,"123 00" -Pacovský,František,Ozzák,"Křižíkova 62",,"Praha - Vinohrady","110 00" -Divićová,Marcela,,"Náměstí míru 1",,Praha,"150 00" -Bůček,Alexandr,Lexa,"U Jezevce","Nitranská 7",Praha,"160 13" -Bůčková,Alexandra,,"Korunní 18",,Praha,"100 24" - - - V aplikaci gLabels vytvoříme nový dokument ze šablony Avery L7162 „Poštovní etikety“. Následně použijeme položku nabídky ObjektyVlastnosti slučování a zobrazí se nám dialogové okno vlastností slučování. V tomto dialogovém okně vybereme typ zdroje (v našem případě CSV) a konkrétní zdroj (název souboru) pro slučování, jak můžete vidět na následujícím obrázku. - - -
      - Dialogové okno vlastností slučování - - - - - - -
      - - - Před tím, než zdroj pro slučován použijeme, zrušíme zaškrtnutí prvního záznamu, protože ten obsahuje pouze záhlaví sloupců z původní tabulky v gnumeric a akorát bychom tím znehodnotili první etiketu. Zrušíme zaškrtnutí i druhého záznamu, protože je prázdný (což je pozůstatek z tabulkového kalkulátoru). A stejným způsobem můžeme vyřadit kterýkoliv jiný záznam, který nechceme na etikety vytisknout. - - U každého záznamu si také můžeme prohlédnou všechny údaje po jeho rozbalení kliknutím na malý trojúhelníček. Až jsme s výběrem v dialogovém okně spokojení, klikneme na OK a změny se použijí. - - Nyní můžeme začít s přidáváním objektů do svého dokumentu gLabels, jak je zobrazeno níže. - - -
      - Přidávání objektů - - - - - - -
      - - - V tomto příkladu máme jen jeden textový objekt. Tento textový objekt obsahuje všechna slučovaná pole uspořádaná v několika řádcích představujících poštovní adresu. Všimněte si, že pole ${4} a ${5} (ta odpovídají ADR1 a ADR2) jsou umístěná na samostatných řádcích bez jakéhokoliv dalšího textu. Pokud aplikace gLabels narazí na pole, které je jediným textem na řádku a toto pole je prázdné, řádek nebude ve výsledku zabírat žádné místo. - - Nyní se můžeme pustit do tisku adresních etiket pomocí volby SouborTisk v nabídce. Zobrazí se dialogové okno tisku jako na následujícím obrázku. - - -
      - Tisk etiket s adresami - - - - - - -
      - - - Nyní zkontrolujeme, zda vypadají etikety jak mají. Vybereme možnost Tisk obrysů a klikneme na Náhled tisku. Zobrazí se dialogové okno s náhledem tisku, stejně jako na následujícím obrázku. - - -
      - Náhled etiket s adresami - - - - - - -
      - - - Vše vypadá dobře a tak můžeme vložit do tiskárny správný list s etiketami, vytisknout adresní štítky a začít rozesílat pozvánky na večírek. - -
      - - - Příklad 3: Adresní štítky s použitím adresáře aplikace <application>Evolution</application> - - Náš předchozí večírek měl velký úspěch a my nyní chceme vytisknout adresní štítky pro pozvánky na další takový. Abychom si to zjednodušili, můžeme použít adresář aplikace Evolution, protože adresy všech našich přátel máme uložené v něm. - - - V závislosti na tom, jak byl připravený váš balíček gLabels, nemusí být tato funkčnost dostupná. Podpora pro adresář Evolution je dostupná jen v případě, že byl při překladu aplikace gLabels k dispozici evolution-data-server a k němu vývojářské soubory. Mějte toto na paměti, pokud si aplikaci překládáte sami ze zdrojových kódů. - - Pokud balíček gLabels ve vaší distribuci tuto podporu postrádá, můžete zkusit kontaktovat správce balíčku nebo to zkusit nahlásit jako chybu. - - - V aplikaci glabels vytvoříme nový dokument ze šablony Avery L7162 „Poštovní etikety“. Potom v nabídce zvolíme ObjektyVlastnosti slučování, aby se nám zobrazilo dialogové okno Vlastnosti slučování. V něm vybereme typ zdroje (v našem případě Data z výchozího adresáře Evolution), jak je ukázáno na obrázku. - - -
      - Dialogové okno vlastností slučování - - - - - - -
      - - - Když máme jako zdroj slučování vybráno Data z výchozího adresáře Evolution, obdržíme úplný seznam jeho obsahu. Na začátku jsou zaškrtnuté všechny položky. Předpokládá se, že budeme pořádat opravdu velký večírek a tak bychom mohli ponechat výběr jak je (ale uvědomte si kolik to bude stát). Nyní některé záznamy kliknutím na příslušné zaškrtávací políčko vyřadíme nebo naopak vybereme, případně můžeme použít tlačítka Vybrat vše a Zrušit výběr pro aktivování nebo deaktivování všech záznamů v adresáři. - - U každého záznamu si také můžeme prohlédnou všechny údaje po jeho rozbalení kliknutím na malý trojúhelníček. Až jsme s výběrem v dialogovém okně spokojení, klikneme na OK a změny se použijí. - - Nyní můžeme začít s přidáváním objektů do svého dokumentu glabels, jak bylo ukázáno dříve. - - -
      - Přidávání objektů - - - - - - -
      - - - V tomto příkladu máme opět jen jeden textový objekt. Ten obsahuje všechna slučovaná pole uspořádaná v několika řádcích, představujících poštovní adresy. - - Nyní můžeme své etikety s adresami vytisknout volbou položky nabídky SouborTisk. Zobrazí se dialogové okno tisku, jak jej můžete vidět níže. - - -
      - Tisk etiket s adresami - - - - - - -
      - - - Nyní zkontrolujeme, zda vypadají etikety jak mají. Vybereme možnost Tisk obrysů a klikneme na Náhled tisku. Zobrazí se dialogové okno s náhledem tisku, stejně jako na následujícím obrázku. - - -
      - Náhled etiket s adresami - - - - - - -
      - - - Vše vypadá dobře a tak můžeme vložit do tiskárny správný list s etiketami, vytisknout adresní štítky a začít rozesílat pozvánky na večírek. - -
      - -
      - - - - - - - Ruční vytváření šablon - - Předdefinované šablony jsou definované soubory XML umístěnými v ${prefix}/share/glabels/, kde ${prefix} je obvykle /usr/local nebo /usr, v závislosti na volbě nastavení prefix při překladu programu. Aplikace gLabels použije všechny soubory s názvem v podobě *-templates.xml nebo *.template, které nalezne v ${prefix}/share/glabels/ a ${HOME}/.glabels/. Další šablony si můžete přidat vytvořením dalších souborů *.template v jedné z těchto složek. - - Formát těchto souborů je dán v DTD: glabels-2.2.dtd. (Toto DTD popisuje i ostatní formáty XML používané v aplikaci gLabels.) - - - Předpoklady/upozornění - - - Stránka obsahuje etiketu nebo vizitku pouze jedné velikosti (pokud má stránka obsahovat více než jednu velikost položky, můžete ji rozdělit do více šablon a vytisknout na vícekrát) - - - Rozměry mohou být uváděny v jednotkách pt, in, mm, cm nebo pc. Například: „1.0in“ nebo „2.54cm“. Pokud není žádná jednotka uvedená, budou předpokládány body pt (1 pt = 1/72 in = 0,352778 mm). - - - - - - Soubory šablon - - -<?xml version="1.0"?> -<Glabels-templates> - - …šablony… - -</Glabels-templates> - - - - - - Příklad šablony - - <Template brand="Avery" part="8160" size="US-Letter" _description="Mailing Labels"> - <Label-rectangle id="0" width="189pt" height="72pt" round="5pt"> - <Markup-margin size="5pt"/> - <Layout nx="3" ny="10" x0="11.25pt" y0="36pt" dx="200pt" dy="72pt"/> - </Label-rectangle> - <Alias brand="Avery" part="5160"/> - <Alias brand="Avery" part="6233"/> - </Template> - - - - - Uzel Template - - Uzel Template popisuje jeden pevně daný výrobek. Musí obsahovat jednu instanci libovolného uzlu Label (Label-rectangle, Label-round nebo Label-cd). Tento uzel může být následován žádným nebo více uzly Alias. - - - - - - - - - Vlastnost - - - Popis - - - - - - brand - - Značka nebo výrobce pevně daného výrobku. Např. "S Label" - - - - part - - Produktové číslo nebo název pevně daného výrobku. Např. "8160" - - - - size - - Velikost stránky. Např. "A4", "US-Letter" - - - - description - - Popis pevně daného produktu. Např. "Mailing Labels." - - - - _description - - Popis pevně daného produktu s možností překladu. Např. "Mailing Labels." (Použitelné pouze pro předdefinované šablony) - - - - width - - Šířka stránky. Platné jen v případě, že size="Other" - - - - height - - Výška stránky. Platné jen v případě, že size="Other" - - - - - - - - - - Uzel Label-rectangle - - Uzel Label-rectangle popisuje rozměry jedné etikety nebo vizitky, která má obdélníkový tvar (může mít zaoblené rohy). - - - - - - - - - Vlastnost - - - Popis - - - - - - id - - Rezervované pro pozdější použití. Vždy by mělo být nastavené na 0. - - - - width - Šířka etikety/vizitky - - - height - Výška etikety/vizitky - - - round - - Poloměr rohů. Pro položky s ostrými rohy (např. vizitky) by mělo být nastaveno na 0. - - - - x_waste - - Velikost dovoleného vodorovného odsazení (umožňuje přetisk). To je užitečné kvůli zamezení problémům se zarovnáním v situaci, kdy se nepoužívá bílé pozadí, ale např. obrázkové. - - - - y_waste - - Velikost dovoleného svislého odsazení (umožňuje přetisk). To je užitečné kvůli zamezení problémům se zarovnáním v situaci, kdy se nepoužívá bílé pozadí, ale např. obrázkové. - - - - - - - -
      - Parametry uzlu Label-rectangle - - - - - - -
      - - -
      - - - Uzel Label-round - - Uzel Label-round popisuje rozměry jedné zaoblené etikety (ne CD). - - - - - - - - - Vlastnost - - - Popis - - - - - - id - - Rezervované pro pozdější použití. Vždy by mělo být nastavené na 0. - - - - radius - Poloměr (½ průměru) etikety - - - waste - - Velikost dovoleného odsazení (umožňuje přetisk). To je užitečné kvůli zamezení problémům se zarovnáním v situaci, kdy se nepoužívá bílé pozadí, ale např. obrázkové. - - - - - - - - - - Uzel Label-cd - - Uzel Label-cd popisuje rozměry etiket na CD, DVD nebo vizitkové CD. - - - - - - - - - Vlastnost - - - Popis - - - - - - id - - Rezervované pro pozdější použití. Vždy by mělo být nastavené na 0. - - - - radius - Vnější poloměr etikety - - - hole - Poloměr středové díry - - - width - - Pokud je zadáno, bude etiketa oříznuta na uvedenou šířku. (Vhodné pro „vizitková CD“). - - - - height - - Pokud je zadáno, bude etiketa oříznuta na uvedenou výšku. (Vhodné pro „vizitková CD“). - - - - waste - - Velikost dovoleného odsazení (umožňuje přetisk). To je užitečné kvůli zamezení problémům se zarovnáním v situaci, kdy se nepoužívá bílé pozadí, ale např. obrázkové. - - - - - - - -
      - Parametry etiket na CD - - - - - - -
      - - -
      - - - Uzel Markup-margin - - Uzel Markup-margin popisuje okraj podél všech hran etikety. - - - - - - - - - Vlastnost - - - Popis - - - - - - size - - Velikost okraje. Např. vzdálenost hranice okraje od hrany etikety/vizitky. - - - - - - - - - - Uzel Markup-line - - Uzel Markup-line popisuje značku v podobě čáry. - - - - - - - - - Vlastnost - - - Popis - - - - - - x1 - - x-ová souřadnice počátku úsečky - - - - y1 - - y-ová souřadnice počátku úsečky - - - - x2 - - x-ová souřadnice konce úsečky - - - - y2 - - y-ová souřadnice konce úsečky - - - - - - - - - - Uzel Markup-circle - - Uzel Markup-circle popisuje značku v podobě kruhu. - - - - - - - - - Vlastnost - - - Popis - - - - - - x0 - - x-ová souřadnice středu kruhu - - - - y0 - - y-ová souřadnice středu kruhu - - - - radius - Poloměr kruhu. - - - - - - - - - Uzel Markup-rect - - Uzel Markup-rect popisuje značku v podobě obdélníku. - - - - - - - - - Vlastnost - - - Popis - - - - - - x1 - - x-ová souřadnice levého horního rohu obdélníku. - - - - y1 - - y-ová souřadnice levého horního rohu obdélníku. - - - - w - - Šířka obdélníku. - - - - h - - Výška obdélníku. - - - - r - Poloměr zakulacených rohů obdélníku. - - - - - - - - - Uzel Layout - - Uzel typu Label může obsahovat více potomků Layout. V případě, že jsou etikety rozmístěné do jednoduché pravidelné mřížky, postačuje jeden uzel Layout. Pokud ale jsou etikety rozmístěné ve více mřížkách, např. mají podobu cihlové zdi, musí se použít více značek layout. Poznámka: jedna etiketa může být vždy považována za mřížku s jednou buňkou. - - - - - - - - - Vlastnost - - - Popis - - - - - - nx - - Počet etiket/vizitek v mřížce (vodorovně) - - - - ny - - Počet etiket/vizitek v mřížce (svisle) - - - - x0 - - Vzdálenost od levé hrany stránky k levé hraně levého sloupce etiket/vizitek v rozvržení. - - - - y0 - - Vzdálenost od horní hrany stránky k horní hraně horní řady etiket/vizitek v rozvržení. - - - - dx - Vodorovná rozteč mřížky. - - - dy - Svislá rozteč mřížky. - - - - - - -
      - Parametry uzlu Layout - - - - - - -
      - - -
      - - - Uzel Alias - - Uzel Alias uvádí názvy výrobků se stejnými rozměry a rozvržením, jako má rodičovská šablona. - - - - - - - - - Vlastnost - - - Popis - - - - - - brand - - Značka nebo výrobce odpovídajícího výrobku. - - - - part - - Produktové číslo nebo název odpovídajícího výrobku. - - - - - - - - -
      - - - - - - - - - - - - - - O aplikaci <application>gLabels</application> - Aplikaci gLabels napsal Jim Evins (evins@snaught.com). Pokud chcete o aplikaci gLabels najít více informací, navštivte prosím webovou stránku gLabels. - Pokud chcete oznámit chybu nebo navrhnout vylepšení vztahující se k této aplikaci nebo této příručce, postupujte dle instrukcí na kontaktní stránce gLabels. - - Tento program je šířen podle ustanovení GNU General Public License, vydávané Free Software Foundation; a to buď verze 2 této licence anebo (podle vlastního uvážení) kterékoliv pozdější verze. Kopii této licence naleznete pod tímto odkazem nebo v souboru COPYING přiloženém ke zdrojovým kódům tohoto programu. - - - - - - - -
      diff --git a/help/cs/index.page b/help/cs/index.page new file mode 100644 index 00000000..e80a0b4e --- /dev/null +++ b/help/cs/index.page @@ -0,0 +1,47 @@ + + + + + Návrhář etiket a vizitek gLabels + Návrhář etiket a vizitek gLabels + + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Share Alike 3.0

      +
      +
      + + <media type="image" mime="image/png" src="figures/glabels-logo.png">logo gLabels</media> Příručka aplikace gLabels + +

      Aplikace gLabels je jednoduchý program na vytváření etiket a vizitek pro pracovní prostředí GNOME. Je navržená pro práci s různými samolepicími etiketami a vizitkami rozmístěnými na listech pro laserový/inkoustový tisk, které najdete ve většině obchodů s kancelářskými potřebami.

      + +

      Aplikaci gLabels můžete používat k návrhu adresních štítků, visaček, cenovek, obalů na CD/DVD nebo cokoliv jiného, co je uspořádáno na listu papíru v pravidelném vzoru. Etikety (nebo kartičky) mohou obsahovat text, obrázky, čáry, tvary a čárové kódy. Aplikace gLabels obsahuje také funkci slučování dokumentů, díky které můžete tisknout každou etiketu jinou, podle záznamů v externím zdroji dat, jako jsou soubory CSV nebo adresář kontaktů Evolution.

      + +
      + Hlavní okno <app>gLabels</app> + Hlavní okno gLabels + +

      Hlavní okno gLabels.

      +
      +
      + +
      + Použití +
      + +
      + Slučováním dokumentů +
      + +
      + Pokročilé používání +
      + +
      diff --git a/help/cs/labelprop.page b/help/cs/labelprop.page new file mode 100644 index 00000000..f906e1d2 --- /dev/null +++ b/help/cs/labelprop.page @@ -0,0 +1,25 @@ + + + + + + + Jak změnit vlastnosti etikety nebo vizitky. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Share Alike 3.0

      +
      +
      + + Změna vlastností etikety + +

      Pokud chcete změnit typ média a/nebo orientaci etiket, zvolte SouborVlastnosti a zobrazí se dialogové okno Vlastnosti etikety. Zvolte pro dokument nový typ média a orientaci a klikněte na OK.

      + +
      diff --git a/help/cs/license.page b/help/cs/license.page new file mode 100644 index 00000000..4e9962e8 --- /dev/null +++ b/help/cs/license.page @@ -0,0 +1,35 @@ + + + + + + + Právní informace. + + + Licence +

      Tato práce je šířena pod licencí CreativeCommons Attribution-Share Alike 3.0 Unported Licence.

      +

      Můžete volně:

      + + + <em>Sdílet</em> +

      Kopírovat, šířit a rozesílat dílo.

      +
      + + <em>Měnit</em> +

      Přizpůsobovat dílo.

      +
      +
      +

      Za následujících podmínek:

      + + + <em>Označení</em> +

      Musíte dílo označit v souladu s požadavky autora nebo licence (ale ne žádným způsobem, který předpokládá, že schvalují vás nebo vaše použití díla).

      +
      + + <em>Stejné sdílení</em> +

      Pokud dílo změníte, převedete nebo na něm založíte jiné, můžete výsledek této práce šířit pouze pod stejnou, podobnou nebo kompatibilní licencí.

      +
      +
      +

      Text licence v plném znění najdete na webových stránkách CreativeCommons nebo si přečtěte výtah dokumentu pro neprávníky.

      +
      diff --git a/help/cs/mancreate.page b/help/cs/mancreate.page new file mode 100644 index 00000000..41b43560 --- /dev/null +++ b/help/cs/mancreate.page @@ -0,0 +1,693 @@ + + + + + + + Vytvářejte své šablony ručně. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Share Alike 3.0

      +
      +
      + + Ruční vytváření nových šablon + + + + + + +

      Tato stránka je příručkou k ručnímu vytváření šablon gLabels. Šablony gLabels jsou definovány v jednoduchých souborech XML, které jsou popsány v DTD: glabels-2.3.dtd (toto DTD popisuje i ostatní formáty XML používané v aplikaci gLabels).

      + +

      Soubory s ručně vytvořenými šablonami by měly být umístěny ve složce ${HOME}/.glabels a jejich název by měl mít příponu .template.

      + + +

      Aplikace gLabels hledá šablony na několika další místech, konkrétně na těchto:

      + + + + + + + + + + + + + + + + + + + + + +

      Umístění

      Popis

      ${prefix}/share/libglabels-3.0/templates

      Předdefinované šablony šířené s aplikací gLabels.

      +

      ${prefix} je obvykle /usr nebo /usr/local podle toho, kde je nainstalována vlastní aplikace gLabels.

      ${XDG_CONFIG_HOME}/libglabels/templates

      Uživatelem definované šablony vytvořené pomocí Návrháře šablon gLabels. Neumisťujte do této složky ručně vytvořené šablony.

      +

      Pokud není ${XDG_CONFIG_HOME} definováno, použije se výchozí ${HOME}/.config.

      ${HOME}/.glabels

      Uživatelem definované šablony, které byly vytvořeny ručně, by měly být umístěny v této složce. Do této složky by ukládaly šablony také starší verze Návrháře šablon gLabels (před verzí 3.0).

      +
      + +

      Soubory s hotovými šablonami můžete posílat do poštovní konference o šablonách gLabels a možná budou zařazeny jako součást příští verze gLabels.

      +
      + + + + + + + + +
      + Předpoklady/upozornění + + +

      Stránka obsahuje etiketu nebo vizitku pouze jedné velikosti (pokud má stránka obsahovat více než jednu velikost položky, můžete ji rozdělit do více šablon a vytisknout na vícekrát)

      +
      + +

      Rozměry mohou být uváděny v jednotkách pt, in, mm, cm nebo pc a s tečkou jako desetinným oddělovačem. Například: „1.0in“ nebo „2.54cm“. Pokud není žádná jednotka uvedená, budou předpokládány body pt (1 pt = 1/72 in = 0,352778 mm).

      +
      +
      +
      + + + + + + + + + +
      + Soubory Å¡ablon + +

      Soubor se šablonou obsahuje jeden uzel nejvyšší úrovně Glabels-templates.

      + + +<?xml version="1.0"?> +<Glabels-templates> + + …šablony… + +</Glabels-templates> + + + Příklad šablony + Příklad souboru se šablonou gLabels obsahujícího jeden uzel Template. + +<?xml version="1.0"?> +<Glabels-templates> + + <Template brand="Avery" part="8160" size="US-Letter" description="Mailing Labels"> + <Meta category="label"/> + <Meta category="mail"/> + <Meta product_url="http://www.avery.com/avery/en_us/"/> + <Label-rectangle id="0" width="189pt" height="72pt" round="5pt"> + <Markup-margin size="5pt"/> + <Layout nx="3" ny="10" x0="11.25pt" y0="36pt" dx="200pt" dy="72pt"/> + </Label-rectangle> + </Template> + +</Glabels-templates> + + +
      + + + + + + + + + +
      + Uzel <span translate="no">Template</span> + +

      Uzel Template popisuje jeden pevně daný výrobek. Musí obsahovat jednu instanci libovolného uzlu Label (Label-rectangle, Label-round nebo Label-cd).

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      Vlastnost

      Popis

      brand

      Značka nebo výrobce papírenského produktu. Např. "S&K Label"

      part

      Produktové číslo nebo název papírenského produktu. Např. "8160"

      size

      Velikost stránky. Např. "US-Letter", "A4", …

      description

      Popis papírenského produktu. Např. "Mailing Labels."

      _description

      Popis papírenského produktu s možností překladu. Např. "Mailing Labels." (Použitelné pouze pro předdefinované šablony)

      width

      Šířka stránky. Platné jen v případě, že size="Other"

      height

      Výška stránky. Platné jen v případě, že size="Other"

      equiv

      Ekvivalentní produktové číslo. Pokud je tato vlastnost nastavena, je šablona klonem jiné šablony téže značky. Šablona pak dědí všechny vlastnosti z jiné šablony, vyjma značky a názvu. Tato vlastnost se musí odkazovat na šablonu definovanou dříve – aplikace gLabels v současnosti nepodporuje dopředné odkazy.

      + +
      + + + + + + + + +
      + Uzel <span translate="no">Meta</span> + +

      Uzel Meta obsahuje některé doplňující informace o šabloně. Uzel Template může obsahovat žádný nebo více uzlů Meta.

      + + + + + + + + + + + + + + + + +

      Podřízený uzel

      Popis

      category

      Kategorie pro šablonu. Šablona může patřit do více kategorií jednoduše tak, že přidáte více uzlů Meta do rodičovského uzlu Template. Kategorie šablony využívá aplikace gLabels v dialogovém okně Nová etiketa či vizitka, aby vám mohla vyfiltrovat nalezené šablony.

      + +

      Hodnota kategorie musí odpovídat jednomu z předdefinovaných ID kategorie ze souboru ${prefix}/libglabels-3.0/templates/categories.xml. Aktuálně jsou definovány tato ID kategorií:

      + +

      label (etiketa)

      +

      round-label (etiketa se zaoblenými rohy)

      +

      elliptical-label (eliptická etiketa)

      +

      square-label (čtvercová etiketa)

      +

      rectangle-label (obdélníková etiketa)

      +

      card (karta)

      +

      business-card (vizitka)

      +

      media (médium)

      +

      mail (poštovní)

      +

      foldable (přání)

      +

      photo (fotka)

      +
      + + +

      product_url

      Adresa URL odkazující na webovou stránku výrobce a to tu, pokud existuje, která se týká konkrétního výrobku.

      + +

      Doporučení na další kategorie můžete zasílat do vývojářské poštovní konference aplikace gLabels.

      +

      Použití adresy URL výrobku může být omezené, protože adresa nemusí být trvalá.

      +
      + +
      + + + + + + + + +
      + Uzel <span translate="no">Label-rectangle</span> + +

      Uzel Label-rectangle popisuje rozměry jedné etikety nebo vizitky, která má obdélníkový tvar (může mít zaoblené rohy).

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      Vlastnost

      Popis

      id

      Rezervované pro pozdější použití. Vždy by mělo být nastavené na 0.

      width

      Šířka etikety/vizitky

      height

      Výška etikety/vizitky

      round

      Poloměr rohů. Pro položky s ostrými rohy (např. vizitky) by mělo být nastaveno na 0.

      x_waste

      Velikost dovoleného vodorovného odsazení (umožňuje přetisk). To je užitečné kvůli zamezení problémům se zarovnáním v situaci, kdy se nepoužívá bílé pozadí, ale např. obrázkové.

      y_waste

      Velikost dovoleného svislého odsazení (umožňuje přetisk). To je užitečné kvůli zamezení problémům se zarovnáním v situaci, kdy se nepoužívá bílé pozadí, ale např. obrázkové.

      + + +
      + Parametry uzlu Label-rectangle + +

      Parametry uzlu Label-rectangle

      +
      +
      + + +
      + + + + + + + + +
      + Uzel <span translate="no">Label-ellipse</span> + +

      Uzel Label-ellipse popisuje rozměry jedné etikety nebo vizitky, která má eliptický tvar.

      + + + + + + + + + + + + + + + + + + + + + + + + +

      Vlastnost

      Popis

      id

      Rezervované pro pozdější použití. Vždy by mělo být nastavené na 0.

      width

      Šířka elipsy

      height

      Výška elipsy

      waste

      Velikost dovoleného odsazení (umožňuje přetisk). To je užitečné kvůli zamezení problémům se zarovnáním v situaci, kdy se nepoužívá bílé pozadí, ale např. obrázkové.

      + + +
      + Parametry uzlu Label-ellipse + +

      Parametry uzlu Label-ellipse

      +
      +
      + + +
      + + + + + + + + +
      + Uzel <span translate="no">Label-round</span> + +

      Uzel Label-round popisuje rozměry jedné kulaté etikety (ale ne CD).

      + + + + + + + + + + + + + + + + + + + + +

      Vlastnost

      Popis

      id

      Rezervované pro pozdější použití. Vždy by mělo být nastavené na 0.

      radius

      Poloměr (½ průměru) etikety.

      waste

      Velikost dovoleného odsazení (umožňuje přetisk). To je užitečné kvůli zamezení problémům se zarovnáním v situaci, kdy se nepoužívá bílé pozadí, ale např. obrázkové.

      + + +
      + Parametry uzlu Label-ellipse + +

      Parametry uzlu Label-ellipse

      +
      +
      + + +
      + + + + + + + + +
      + Uzel <span translate="no">Label-cd</span> + +

      Uzel Label-cd popisuje rozměry etiket na CD, DVD nebo vizitkové CD.

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      Vlastnost

      Popis

      id

      Rezervované pro pozdější použití. Vždy by mělo být nastavené na 0.

      radius

      Vnější poloměr etikety.

      hole

      Poloměr středové díry.

      width

      Pokud je zadáno, bude etiketa oříznuta na uvedenou šířku. (Vhodné pro „vizitková CD“).

      height

      Pokud je zadáno, bude etiketa oříznuta na uvedenou výšku. (Vhodné pro „vizitková CD“).

      waste

      Velikost dovoleného odsazení (umožňuje přetisk). To je užitečné kvůli zamezení problémům se zarovnáním v situaci, kdy se nepoužívá bílé pozadí, ale např. obrázkové.

      + + +
      + Parametry uzlu Label-cd + +

      Parametry etiket na CD

      +
      +
      + + +
      + + + + + + + + +
      + Uzly <span translate="no">Markup</span> + +

      Šablona může volitelně obsahovat uzly se značkami. Tyto uzly se používají k popisu jednoduchých sad pomocných čar, které jsou viditelné na kreslící ploše aplikace glabels, ale netisknou se. Tyto čáry mohou představovat například okraje, přehyby, speciální oblasti a další pomůcky užitečné pro uživatele šablony.

      + + + + + +
      + <span translate="no">Markup-margin</span> Node + +

      Uzel Markup-margin popisuje okraj podél všech hran etikety.

      + + + + + + + + + + + + +

      Vlastnost

      Popis

      size

      Velikost okraje. Např. vzdálenost hranice okraje od hrany etikety/vizitky.

      +
      + + + + + + + + +
      + Uzel <span translate="no">Markup-line</span> + +

      Uzel Markup-line popisuje značku v podobě čáry.

      + + + + + + + + + + + + + + + + + + + + + + + + +

      Vlastnost

      Popis

      x1

      x-ová souřadnice 1. koncového bodu úsečky.

      y1

      y-ová souřadnice 1. koncového bodu úsečky.

      x2

      x-ová souřadnice 2. koncového bodu úsečky.

      y2

      y-ová souřadnice 2. koncového bodu úsečky.

      +
      + + + + + + + + +
      + Uzel <span translate="no">Markup-circle</span> + +

      Uzel Markup-circle popisuje značku v podobě kruhu.

      + + + + + + + + + + + + + + + + + + + + +

      Vlastnost

      Popis

      x0

      x-ová souřadnice středu kruhu.

      y0

      y-ová souřadnice středu kruhu.

      radius

      Poloměr kruhu.

      +
      + + + + + + + + +
      + Uzel <span translate="no">Markup-rect</span> + +

      Uzel Markup-rect popisuje značku v podobě obdélníku.

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      Vlastnost

      Popis

      x1

      x-ová souřadnice levého horního rohu obdélníku.

      y1

      y-ová souřadnice levého horního rohu obdélníku.

      w

      Šířka obdélníku.

      h

      Výška obdélníku.

      r

      Poloměr zakulacených rohů obdélníku.

      +
      + + + + + + + + +
      + Uzel <span translate="no">Markup-ellipse</span> + +

      Uzel Markup-ellipse popisuje značku v podobě elipsy.

      + + + + + + + + + + + + + + + + + + + + + + + + +

      Vlastnost

      Popis

      x1

      x-ová souřadnice levého horního rohu elipsy.

      y1

      y-ová souřadnice levého horního rohu elipsy.

      w

      Šířka elipsy.

      h

      Výška elipsy.

      +
      + + + + +
      + + + + + + + + +
      + Uzel <span translate="no">Layout</span> + +

      Uzel typu Label může obsahovat více potomků Layout. V případě, že jsou etikety rozmístěné do jednoduché pravidelné mřížky, postačuje jeden uzel Layout. Pokud jsou ale etikety rozmístěné ve více mřížkách, např. mají podobu cihlové zdi, musí se použít více značek Layout.

      + +

      Jedna etiketa může být vždy považována za mřížku s jednou buňkou.

      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      Vlastnost

      Popis

      nx

      Počet etiket/vizitek v mřížce (vodorovně).

      ny

      Počet etiket/vizitek v mřížce (svisle).

      x0

      Vzdálenost od levé hrany stránky k levé hraně levého sloupce etiket/vizitek v rozvržení.

      y0

      Vzdálenost od horní hrany stránky k horní hraně horní řady etiket/vizitek v rozvržení.

      dx

      Vodorovná rozteč mřížky.

      dy

      Svislá rozteč mřížky.

      + + +
      + Parametry uzlu Layout + +

      Parametry uzlu Layout

      +
      +
      + + +
      + + + + + +
      diff --git a/help/cs/merge-ex1.page b/help/cs/merge-ex1.page new file mode 100644 index 00000000..ccff0052 --- /dev/null +++ b/help/cs/merge-ex1.page @@ -0,0 +1,72 @@ + + + + + + + Vytvoření jmenovek ze souboru CSV. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Share Alike 3.0

      +
      +
      + + Příklad 1: Jmenovky + +

      V tomto příkladu pořádáme seznamovací párty pro nové členy osádky naší lodi. Máme seznam nováčků v osádce, který jsme vytvořili v aplikaci gnumeric a následně jej vyexportovali do souboru CSV. Mohli bychom jej vytvořit i v textovém editoru, ale žijeme přece v 21. století.

      + + +jmeno,zarazeni,cislo +"Jiří Kroupa",vedení,"SC937-0176 CEC" +"prof. Hrbolek",vědec,S179-276SP +"MUDr. Kroupová",lékař,unknown +"Viktor Hujer",technik,SE-197-54T + + +

      V aplikaci gLabels máme vytvořený dokument vycházející ze šablony Avery 5395 „Etikety na jmenovky“. Nyní použijeme položku nabídky ObjektyVlastnosti slučování a zobrazí se nám dialogové okno vlastnosti slučování. Toto dialogové okno použijeme k výběru typu zdroje (v našem případě CSV s klíči na 1. řádku) a vlastního zdroje (souboru), jak můžete vidět níže.

      + + + +

      Dialogové okno vlastností slučování

      +
      + + +

      U každého záznamu si také můžeme prohlédnou všechny údaje po jeho rozbalení kliknutím na malý trojúhelníček. Až jsme s výběrem v dialogovém okně spokojení, klikneme na OK a změny se použijí.

      + +

      Nyní můžeme začít s přidáváním objektů do svého dokumentu glabels, jak je ukázáno níže.

      + + + +

      Přidávání objektů

      +
      + + +

      V tomto příkladu máme přidané tři textové objekty a čárový kód. První textový objekt obsahuje pouze prostý text („Ahoj, jmenuji se“). Druhý textový objekt obsahuje jedno slučované pole („${jmeno}“), které odpovídá prvnímu poli v záznamu (první sloupec v řádku) a které obsahuje celé jméno nového člena osádky. Třetí textové pole obsahuje jak text („Zařazení: “), tak za ním následuje jedno slučované pole („${zarazeni}“), které odpovídá druhému poli se zařazením člena posádky. Objekt s čárovým kódem je nastavený na použití pole (klíče) „cislo“, které obsahuje identifikační číslo člena posádky.

      + +

      Nyní můžeme své jmenovky vytisknout pomocí položky nabídky SouborTisk. Zobrazí se dialogové okno jako na následujícím obrázku.

      + + + +

      Tisk jmenovek

      +
      + + +

      Nyní zkontrolujeme, zda vypadají etikety jak mají. Vybereme možnost Tisk obrysů a klikneme na Náhled tisku. Zobrazí se dialogové okno s náhledem tisku, stejně jako na následujícím obrázku.

      + + + +

      Náhled jmenovek

      +
      + + +

      Vše vypadá v pořádku, takže můžeme do tiskárny vložit správný list s etiketami, vytisknout jmenovky a vzhůru na palubu nalodit naše hosty.

      + + +
      diff --git a/help/cs/merge-ex2.page b/help/cs/merge-ex2.page new file mode 100644 index 00000000..93a7711c --- /dev/null +++ b/help/cs/merge-ex2.page @@ -0,0 +1,75 @@ + + + + + + + Vytvoření adresních štítků ze souboru CSV. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Share Alike 3.0

      +
      +
      + + Příklad 2: Adresní štítky + +

      V tomto příkladu se chystáme uspořádat večírek a potřebujeme vytisknout adresní štítky na své pozvánky. Máme seznam svých nejbližších přátel, který jsem vytvořili v aplikaci gnumeric a vyexportovali jej jako soubor CSV. Povšimněte si, že ne všichni mají přezdívku nebo dvouřádkovou adresu.

      + + +PRIJMENI,JMENO,PREZDIVKA,ADR1,ADR2,MESTO,PSC +,,,,,,, +Pacovský,Tomáš,,"U dvou akordů","Křižíkova 506",Praha,"123 00" +Pacovský,František,Ozzák,"Křižíkova 62",,"Praha - Vinohrady","110 00" +Divičová,Marcela,,"Náměstí míru 1",,Praha,"150 00" +Bůček,Alexandr,Lexa,"U Jezevce","Nitranská 7",Praha,"160 13" +Bůčková,Alexandra,,"Korunní 18",,Praha,"100 24" + + +

      V aplikaci gLabels vytvoříme nový dokument ze šablony Avery L7162 „Poštovní etikety“. Následně použijeme položku nabídky ObjektyVlastnosti slučování a zobrazí se nám dialogové okno vlastností slučování. V tomto dialogovém okně vybereme typ zdroje (v našem případě CSV s klíči na 1. řádku) a konkrétní zdroj (název souboru) pro slučování, jak můžete vidět na následujícím obrázku.

      + + + +

      Dialogové okno vlastností slučování

      +
      + + +

      Před použitím zdroje slučování zrušíme zaškrtnutí prvního záznamu, protože ten obsahuje pouze prázdná pole. To je pozůstatek z naší původní tabulky vytvořené v gnumeric a akorát bychom tím zničili první etiketu. Stejným způsobem můžeme zrušit zaškrtnutí kteréhokoliv záznamu, který nechceme vytisknout.

      + +

      U každého záznamu si také můžeme prohlédnou všechny údaje po jeho rozbalení kliknutím na malý trojúhelníček. Až jsme s výběrem v dialogovém okně spokojení, klikneme na OK a změny se použijí.

      + +

      Nyní můžeme začít s přidáváním objektů do svého dokumentu glabels, jak je ukázáno níže.

      + + + +

      Přidávání objektů

      +
      + + +

      V tomto příkladu máme jen jeden textový objekt. Tento textový objekt obsahuje všechna slučovaná pole uspořádaná v několika řádcích představujících poštovní adresu. Všimněte si, že pole ${ADR1} a ${ADR2} jsou umístěná na samostatných řádcích bez jakéhokoliv dalšího textu. Pokud aplikace gLabels narazí na pole, které je jediným textem na řádku a toto pole je prázdné, řádek nebude ve výsledku zabírat žádné místo.

      + +

      Nyní se můžeme pustit do tisku adresních štítků pomocí volby SouborTisk v nabídce. Zobrazí se dialogové okno tisku jako na následujícím obrázku.

      + + + +

      Tisk etiket s adresami

      +
      + + +

      Nyní zkontrolujeme, zda vypadají etikety jak mají. Vybereme možnost Tisk obrysů a klikneme na Náhled tisku. Zobrazí se dialogové okno s náhledem tisku, stejně jako na následujícím obrázku.

      + + + +

      Náhled etiket s adresami

      +
      + + +

      Vše vypadá dobře a tak můžeme vložit do tiskárny správný list s etiketami, vytisknout adresní štítky a začít rozesílat pozvánky na večírek.

      + +
      diff --git a/help/cs/merge-ex3.page b/help/cs/merge-ex3.page new file mode 100644 index 00000000..8d1a229d --- /dev/null +++ b/help/cs/merge-ex3.page @@ -0,0 +1,72 @@ + + + + + + + Vytvoření adresních štítků ze záznamů adresáře aplikace Evolution. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Share Alike 3.0

      +
      +
      + + Příklad 3: Adresní štítky z adresáře aplikace <app>Evolution</app> + +

      Náš předchozí večírek měl velký úspěch a my nyní chceme vytisknout adresní štítky pro pozvánky na další takový. Abychom si to zjednodušili, můžeme použít adresář aplikace Evolution, protože adresy všech našich přátel máme uložené v něm.

      + + +

      V závislosti na tom, jak byl připravený váš balíček gLabels, nemusí být tato funkčnost dostupná. Podpora pro adresář Evolution je dostupná jen v případě, že byl při překladu aplikace gLabels k dispozici evolution-data-server a k němu vývojářské soubory. Mějte toto na paměti, pokud si aplikaci překládáte sami ze zdrojových kódů.

      + +

      Pokud balíček gLabels ve vaší distribuci tuto podporu postrádá, můžete zkusit kontaktovat správce balíčku nebo to zkusit nahlásit jako požadavek do systému pro hlášení chyb.

      +
      + +

      V aplikaci glabels vytvoříme nový dokument ze šablony Avery L7162 „Poštovní etikety“. Potom v nabídce zvolíme ObjektyVlastnosti slučování, aby se nám zobrazilo dialogové okno Vlastnosti slučování. V něm vybereme typ zdroje (v našem případě Data z výchozího adresáře Evolution), jak je ukázáno na obrázku.

      + + + +

      Dialogové okno vlastností slučování

      +
      + + +

      Když máme jako zdroj slučování vybráno Data z výchozího adresáře Evolution, obdržíme úplný seznam jeho obsahu. Na začátku jsou zaškrtnuté všechny položky. Předpokládá se, že budeme pořádat opravdu velký večírek a tak bychom mohli ponechat výběr jak je (ale uvědomte si kolik to bude stát). Nyní některé záznamy kliknutím na příslušné zaškrtávací políčko vyřadíme nebo naopak vybereme, případně můžeme použít tlačítka Vybrat vše a Zrušit výběr pro aktivování nebo deaktivování všech záznamů v adresáři.

      + +

      U každého záznamu si také můžeme prohlédnou všechny údaje po jeho rozbalení kliknutím na malý trojúhelníček. Až jsme s výběrem v dialogovém okně spokojení, klikneme na OK a změny se použijí.

      + +

      Nyní můžeme začít s přidáváním objektů do svého dokumentu glabels, jak je ukázáno níže.

      + + + +

      Přidávání objektů

      +
      + + +

      V tomto příkladu máme opět jen jeden textový objekt. Ten obsahuje všechna slučovaná pole uspořádaná v několika řádcích, představujících poštovní adresy.

      + +

      Nyní můžeme své etikety s adresami vytisknout volbou položky nabídky SouborTisk. Zobrazí se dialogové okno tisku, jak jej můžete vidět níže.

      + + + +

      Tisk etiket s adresami

      +
      + + +

      Nyní zkontrolujeme, zda vypadají etikety jak mají. Vybereme možnost Tisk obrysů a klikneme na Náhled tisku. Zobrazí se dialogové okno s náhledem tisku, stejně jako na následujícím obrázku.

      + + + +

      Náhled etiket s adresami

      +
      + + +

      Vše vypadá dobře a tak můžeme vložit do tiskárny správný list s etiketami, vytisknout adresní štítky a začít rozesílat pozvánky na večírek.

      + + +
      diff --git a/help/cs/merge-ex4.page b/help/cs/merge-ex4.page new file mode 100644 index 00000000..981ce004 --- /dev/null +++ b/help/cs/merge-ex4.page @@ -0,0 +1,24 @@ + + + + + + + Vytvoření adresních štítků ze souboru VCard. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Share Alike 3.0

      +
      +
      + + Příklad 4: Adresní štítky s použitím souboru VCard + + +
      diff --git a/help/cs/merge.page b/help/cs/merge.page new file mode 100644 index 00000000..777c7fe3 --- /dev/null +++ b/help/cs/merge.page @@ -0,0 +1,28 @@ + + + + + + + Jak slučovat zdroje dat při vytváření více dokumentů. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Share Alike 3.0

      +
      +
      + + Výuka slučování dokumentů + +

      Slučování dokumentů (někdy také nazývané „hromadná korespondence“) je mocná funkce, díky které můžete tisknout odlišné etikety nebo vizitky pro každý záznam v externím zdroji dat. Je však také ze všech funkcí aplikace gLabels nejnáročnější na pochopení. Následující příklady vás provedou několika obvyklými úlohami, které používají funkci slučování dokumentů.

      + +
      +
      + +
      diff --git a/help/cs/mergefeatures.page b/help/cs/mergefeatures.page new file mode 100644 index 00000000..c4f99f08 --- /dev/null +++ b/help/cs/mergefeatures.page @@ -0,0 +1,35 @@ + + + + + + + Co můžete očekávat od slučování dokumentů. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Share Alike 3.0

      +
      +
      + + Provádění slučování dokumentů + +

      Slučování dokumentů (někdy také nazývané „hromadná korespondence“) je mocná funkce, která umožňuje vytisknout na etikety nebo vizitky různé texty podle jednotlivých záznamů v externím zdroji dat.

      + +

      Prvním krokem při slučování dokumentů je příprava zdrojového dokumentu, který má obsahovat slučovaná data. Tato data mohou být poštovní adresy nebo jakákoliv jiná data, pro která si přejete vytvořit jedinečné etikety nebo vizitky. V současnosti jsou zatím jako zdroje podporované pouze textové soubory a datový server Evolution, jiné jsou v plánu. Současně podporovaný formát textových souborů je velmi jednoduchý: co řádek, to záznam; pole jsou oddělená čárkami (CSV), tabulátory nebo dvojtečkami; řádky jsou zakončené pomocí znaku „\n“. Takovýto soubor jde vytvořit v libovolném textovém editoru nebo jiným programem nebo skriptem. Obvyklým způsobem vytváření souborů CSV je jejich export z tabulkového kalkulátoru.

      + +

      Etiketa musí být nastavená tak, aby „ukazovala na“ takovýto datový soubor. Abyste nastavili vlastnosti slučování dokumentu, zvolte položku nabídky ObjektyVlastnosti slučování a zobrazí se dialogové okno vlastnosti slučování. Toto dialogové okno slouží k výběru přesného formátu datového souboru a názvu (umístění) souboru se slučovanými daty.

      + +

      Nakonec, až je etiketa nastavená pro datový soubor, je zapotřebí vložit klíče polí do textových objektů a použít klíče polí jako zdroje nebo data pro objekty čárových kódů a jako názvy souborů pro obrázkové objekty. Více informací o použití slučovaných dat pro tyto typy objektů viz .

      + +

      Nyní, když máte svoji etiketu nastavenou, bude aplikace gLabels tisknout jednotlivé etikety odlišné pro každý záznam ve vašem zdrojovém dokumentu – do klíčů polí se ve všech textech budou dosazovat pole z jednotlivých záznamů.

      + +

      Podrobný výklad funkcí slučování dokumentů viz .

      + +
      diff --git a/help/cs/multifile.page b/help/cs/multifile.page new file mode 100644 index 00000000..7c262d13 --- /dev/null +++ b/help/cs/multifile.page @@ -0,0 +1,29 @@ + + + + + + + Jak otevřít více souborů naráz pomocí příkazového řádku. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Share Alike 3.0

      +
      +
      + + Jak otevřít více souborů z příkazového řádku + +

      Aplikaci gLabels můžete spustit z příkazového řádku a otevřít při tom jeden nebo více souborů. Pokud chcete otevřít z příkazového řádku více souborů, napište následující příkaz a zmáčkněte Enter:

      + +

      glabels soubor1.glabels soubor2.glabels soubor3.glabels

      + +

      Po spuštění aplikace se každý ze zadaných souborů zobrazí v samostatném okně gLabels.

      + +
      diff --git a/help/cs/newlabel.page b/help/cs/newlabel.page new file mode 100644 index 00000000..c69f2a16 --- /dev/null +++ b/help/cs/newlabel.page @@ -0,0 +1,25 @@ + + + + + + + Jak vytvořit novou etiketu nebo vizitku v aplikaci gLabels. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Share Alike 3.0

      +
      +
      + + Vytváření nové etikety nebo vizitky + +

      Když chcete vytvořit novou etiketu nebo vizitku, zvolte SouborNový a zobrazí se dialogové okno Nová etiketa či vizitka. Vyberte pro nový dokument typ média a orientaci a klikněte na OK. Nový dokument se zobrazí v zobrazovací oblasti okna gLabels.

      + +
      diff --git a/help/cs/printfile.page b/help/cs/printfile.page new file mode 100644 index 00000000..19fa38c1 --- /dev/null +++ b/help/cs/printfile.page @@ -0,0 +1,86 @@ + + + + + + + Jak vytisknout etikety nebo vizitky. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Share Alike 3.0

      +
      +
      + + Tisk etiket a vizitek + +

      Když chcete vytisknout etikety nebo vizitky, zvolte SouborTisk a zobrazí se dialogové okno Tisk. Až nastavíte volby tisku, klikněte na Tisk a etikety nebo vizitky se vytisknou. Pokud se chcete jen podívat na náhled, klikněte místo toho na Náhled tisku.

      + +

      V dialogovém okně Tisk můžete nastavit následující volby tisku:

      + +
      + Karta Etikety v dialogovém okně Tisk + +
      + Ovládání tisku (jednoduchý) + +

      Pro jednoduché etikety nebo vizitky (bez slučování dokumentů), obsahuje karta úlohy následující ovládací prvky pro nastavení kopie.

      + + + +

      Ovládací prvky tisku kopií

      +
      + + +

      Počet kopií etikety můžete vybrat zvolením počtu plných listů, které se mají vytisknout, a nebo vybrat jen část etiket na jednom listu.

      + +

      Minináhled můžete také použít ke grafickému výběru části etiket tak, že kliknete na první etiketu v minináhledu a táhnete až na poslední etiketu.

      + +
      + +
      + Ovládání tisku (slučování) + +

      Pro etikety nebo vizitky používající slučování dokumentů (někdy také nazývané „hromadná korespondence“), obsahuje karta úlohy následující ovládací prvky slučování, lišící se od ovládacích prvků jednoduchého tisku.

      + + + +

      Ovládací prvky tisku slučovaných dokumentů

      +
      + + +

      Celkový počet etiket nebo vizitek je dán počtem záznamů ve zdroji slučování a počtem vybraných kopií. Jestliže je vybráno více kopií, mohou být také uspořádané (kopie ze stejného záznamu seskupené spolu) nebo neuspořádané (kopie jednotlivých záznamů za sebou).

      + +

      Tisk může začínat na libovolné etiketě na prvním listu. Tu můžete vybrat pomocí číselníku Začít na etiketě.

      + +

      Minináhled můžete také použít ke grafickému výběru první etikety tak, že na ni v minináhledu kliknete.

      + +
      + +
      + Volby +

      Můžete rovněž vybrat následující volby.

      + + +

      tisk obrysů

      +

      Tisk obrysů etiket. Tato volba je použitelná k tisku nanečisto, k otestování lícování.

      +
      + +

      obrácený tisk

      +

      Tisknout etikety zrcadlově. Tato volba je použitelná pro tisk na čiré etikety, na které se bude dívat z druhé strany (např. na okně auta).

      +
      + +

      tisknout značky pro ořez

      +

      Tisknout ořezové značky podél hran listu. Tato volba je použitelná pro tisk na čisté listy, které se budou po tisku rozřezávat. Tato volba nepracuje úplně správně se všemi šablonami.

      +
      +
      +
      +
      + +
      diff --git a/help/cs/select.page b/help/cs/select.page new file mode 100644 index 00000000..723f5506 --- /dev/null +++ b/help/cs/select.page @@ -0,0 +1,83 @@ + + + + + + + Jak vybrat objekty. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Share Alike 3.0

      +
      +
      + + Výběr objektů + +

      Předpokladem k provádění operací s objekty je výběr jednoho objektu či skupiny více objektů. Aby bylo možné výběr provést, musí být zobrazovací oblast v režimu výběru objektů, což je signalizováno kurzorem v podobě šipky. Režim výběru objektů se zvolí pomocí ObjektyRežim výběru nebo odpovídajícím příkazem na Liště kreslení.

      + +
      + Výběr jednoho objektu +

      Jeden objekt vyberete prostým kliknutím na něj v zobrazovací oblasti. Vybraný objekt bude zvýrazněný pomocí úchytů sloužících ke změně velikosti

      +
      + +
      + Přidávání objektů do výběru +

      Více objektů můžete vybrat tak, že vyberete první dříve uvedeným způsobem a po té budete držet klávesu Ctrl a vybírat další objekty. Jednotlivé objekty lze přidat do stávajícího výběru kdykoliv držením klávesy Ctrl během vybírání požadovaných objektů. Všechny objekty můžete vybrat pomocí položky nabídky UpravitVybrat vše. Všechny objekty ve výběru jsou zvýrazněné.

      +
      + +
      + Výběr oblasti + +

      Více objektů lze rovněž vybrat zmáčknutím tlačítka myši na prázdném místě a tažením obdélníkové oblasti. Po uvolnění tlačítka se všechny objekty obsažené v takovéto oblasti naráz vyberou. Výběr pomocí oblasti lez použít k přidání ke stávajícímu výběru podržením klávesy Ctrl během provádění výběru.

      + +
      + +
      + Zrušení výběru objektů + +

      Jednotlivé objekty lze z výběru odebrat podržením klávesy Ctrl a klikáním na označené objekty. Veškerý výběr můžete zrušit pomocí nabídky UpravitZrušit výběr nebo jednoduchým kliknutím na prázdné místo v zobrazovací oblasti. Jakmile je u objektu zrušen výběr, zmizí i jeho zvýraznění.

      + +
      + +
      + Příkazy pro práci se schránkou + +

      S vybranými objekty lze manipulovat pomocí standardních operací se schránkou Vyjmout, Kopírovat, Vložit a Smazat.

      + +
      + <gui>Vyjmout</gui> (<keyseq><key>Ctrl</key><key>X</key></keyseq>) + +

      Přesune vybrané objekty do schránky. Objekty jsou potom přístupné pro vkládání zpátky do aktuálního dokumentu nebo jiného dokumentu.

      + +
      + +
      + <gui>Kopírovat</gui> (<keyseq><key>Ctrl</key><key>C</key></keyseq>) + +

      Zkopíruje vybrané objekty do schránky, aniž by byly vymazány. Objekty jsou potom přístupné pro vkládání zpátky do aktuálního dokumentu nebo jiného dokumentu.

      + +
      + +
      + <gui>Vložit</gui> (<keyseq><key>Ctrl</key><key>V</key></keyseq>) + +

      Vloží objekty ze schránky do aktuálního dokumentu. Aplikace gLabels umí vkládat pouze objekty z jiného dokumentu gLabels.

      + +
      + +
      + <gui>Smazat</gui> (<key>Del</key>) + +

      Smaže vybrané objekty, aniž by byly umístěny do schránky.

      + +
      +
      + +
      diff --git a/help/cs/skipfields.page b/help/cs/skipfields.page new file mode 100644 index 00000000..8a34c601 --- /dev/null +++ b/help/cs/skipfields.page @@ -0,0 +1,44 @@ + + + + + + + Jak přeskakovat prázdné řádky v adresách při slučování dokumentu. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Share Alike 3.0

      +
      +
      + + Přeskakování prázdných řádků v adresách + +

      Tuto funkci bude nejlepší popsat příkladem. V následujícím souboru CSV obsahuje sloupec 2 (OSOBA) konkrétní osobu v adrese do firmy pro každý záznam. Toto pole je v záznamech 1 a 2 prázdné, ale ve 3. záznamu ne. (Aby tato funkce pracovala, musí být pole úplně prázdné – jakýkoliv text, a to včetně mezer, překazí použití této funkce.)

      + + + FIRMA,OSOBA,ADR,MESTO,PSC + "Stolařství Novák & syn",,"Pod Lesem 4","Ústí nad Orlicí","562 03" + "Dřevolak s.r.o.",,"Barvírenská 78/436",Třešť,"589 01" + "Nábytek holding a.s.","Ing. Jiří Procházka","Vídeňská 95",Brno,"619 00" + + +

      Na následujícím snímku obrazovky byl pro formátování těchto adres vytvořen textový objekt s více řádky. Všimněte si, že ${OSOBA} představující osobu v adres do firmy, je na svém vlastním řádku. (Jakýkoliv další text na stejném řádku, a to včetně mezer, by překazil tuto funkci.)

      + + +

      Adresa na víc řádků

      +
      + +

      Výsledky tisku můžete vidět na následujícím výstupu. Všimněte si, že řádek obsahující pole ${OSOBA} byl u prvních dvou záznamů zcela vynechán, nevytiskl se ani prázdný řádek.

      + + +

      Výstup

      +
      + +
      diff --git a/help/de/about.page b/help/de/about.page new file mode 100644 index 00000000..272ddf90 --- /dev/null +++ b/help/de/about.page @@ -0,0 +1,27 @@ + + + + + + + Informationen über gLabels. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Share Alike 3.0

      +
      +
      + + Info zu <app>gLabels</app> + +

      gLabels wurde von Jim Evins geschrieben. Weitere Informationen zu gLabels finden Sie auf der gLabels-Webseite.

      +

      Um einen Fehler zu melden oder einen Vorschlag zur Anwendung gLabels oder zu diesem Handbuch zu machen, folgen Sie den Anweisungen auf der gLabels-Kontaktseite.

      + +

      Dieses Programm ist freie Software. Sie können es unter den Bedingungen der GNU General Public License, wie von der Free Software Foundation veröffentlicht, weitergeben und/oder modifizieren, entweder gemäß Version 3 der Lizenz oder (nach Ihrer Option) jeder späteren Version. Eine Kopie der GNU General Public License finden Sie unter diesem Link oder in der Datei COPYING, die im Quellcode dieses Programms enthalten ist.

      +
      diff --git a/help/de/basicusage.page b/help/de/basicusage.page new file mode 100644 index 00000000..193089a1 --- /dev/null +++ b/help/de/basicusage.page @@ -0,0 +1,62 @@ + + + + + + + Umgang mit Dateien und Beenden der Anwendung. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Share Alike 3.0

      +
      +
      + + Grundlegende Bedienung + +
      + Öffnen einer Datei + +

      Um eine Datei zu öffnen, wählen Sie DateiÖffnen, um den Dialog Datei öffnen anzuzeigen. Wählen Sie die gewünschte Datei aus und klicken Sie dann auf Öffnen. Die Datei wird im Anzeigebereich des gLabels-Fensters geöffnet.

      + +

      Sie können in gLabels auch mehrere Dateien öffnen. Die Anwendung erzeugt ein separates Fenster für jede geöffnete Datei.

      + +

      Die Anwendung speichert die Pfade und Dateinamen der von Ihnen zuletzt bearbeiteten Dateien. Diese Dateien werden als Einträge im Menü DateiZuletzt benutzt angezeigt.

      +
      + +
      + Schließen einer Datei + +

      Um das aktuelle Dokument zu schließen, wählen Sie DateiSchließen, um das Anwendungsfenster zu schließen. Falls das aktuelle Dokument bearbeitet wurde, wird ein Bestätigungsdialog geöffnet, in welchem Sie das Dokument speichern oder den Vorgang abbrechen können. Falls das zu schließende Fenster das einzige offene Fenster ist, wird gLabels dadurch beendet.

      +
      + +
      + Speichern einer Datei + +

      Sie können Dateien auf folgende Arten speichern:

      + + + +

      Um die Änderungen in der bereits vorhandenen Datei zu speichern, wählen Sie DateiSpeichern.

      + +
      + + +

      Um eine neue Datei oder eine bestehende Datei unter einem neuen Dateinamen zu speichern, wählen Sie DateiSpeichern unter. Geben Sie einen Namen für die Datei im Dialogfeld Speichern unter ein und klicken Sie anschließend auf OK.

      + +
      +
      +
      + +
      + <app>gLabels</app> beenden + +

      Um gLabels zu beenden, wählen Sie DateiBeenden. Dies entspricht dem Schließen aller geöffneten Fenster. Siehe .

      +
      +
      diff --git a/help/de/createnew.page b/help/de/createnew.page new file mode 100644 index 00000000..ca488524 --- /dev/null +++ b/help/de/createnew.page @@ -0,0 +1,57 @@ + + + + + + + Erstellen neuer Objekte in Ihrem Dokument. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Share Alike 3.0

      +
      +
      + + Erstellen neuer Objekte + +

      Objekte können ausgewählt werden, indem Sie das entsprechende Objekt in ObjekteErzeugen auswählen, oder über die Zeichenwerkzeugleiste. Dadurch wird der Anzeigebereich in den Objekterzeugungsmodus versetzt, was am Mauszeiger erkennbar ist. Um zum vorgegebenen Objektauswahlmodus zurückzukehren, ohne ein Objekt zu erzeugen, wählen Sie ObjekteAuswahlmodus. Dadurch wird der Mauszeiger im Anzeigebereich wieder in den vorgegebenen Auswahlzeiger geändert.

      + +

      Nachfolgend wird der Modus zur Erstellung der Objekte für jeden Objekttyp beschrieben:

      + +
      + Text +

      Klicken Sie auf die gewünschte Stelle in der linken oberen Ecke des Textobjekts. Neue Textobjekte erhalten anfänglich den Inhalt »Text«. Wie Sie diesen Text oder andere Eigenschaften ändern können, finden Sie in .

      +
      + +
      + Rechteck +

      Klicken Sie auf die gewünschte Stelle für die linke obere Ecke des Rechteckobjekts und ziehen Sie zur gewünschten rechten unteren Ecke. Wenn Sie einfach auf eine Stelle klicken, wird ein quadratisches Objekt erzeugt. Wie Sie die Eigenschaften des Rechteckobjekts ändern können, finden Sie in .

      +
      + +
      + Linie +

      Klicken Sie auf die gewünschte Stelle für das Ende des Linienobjekts und ziehen Sie zur gewünschten Stelle des anderen Endes. Wenn Sie einfach auf eine Stelle klicken, wird eine diagonale Linie erzeugt. Wie Sie die Eigenschaften des Linienobjekts ändern können, finden Sie in .

      +
      + +
      + Ellipse +

      Klicken Sie auf die gewünschte Stelle für die linke obere Ecke des Ellipsenobjekts und ziehen Sie zur gewünschten rechten unteren Ecke. Wenn Sie einfach auf eine Stelle klicken, wird ein Kreis erzeugt. Wie Sie die Eigenschaften des Ellipsenobjekts ändern können, finden Sie in .

      +
      + +
      + Image +

      Klicken Sie auf die gewünschte Stelle für die linke obere Ecke des Bildobjekts und ziehen Sie zur gewünschten rechten unteren Ecke. Wenn Sie einfach auf eine Stelle klicken, wird ein quadratisches Objekt erzeugt. Neue Bildobjekte erhalten anfänglich ein Schachbrettmuster. Wie Sie dies oder andere Eigenschaften des Bildobjekts ändern können, finden Sie in .

      +
      + +
      + Strichcode +

      Klicken Sie auf die gewünschte Stelle für die linke obere Ecke des Strichcodeobjekts und ziehen Sie zur gewünschten rechten unteren Ecke. Neue Objekte erhalten anfänglich einen POSTNET-Strichcode mit Beispieldaten. Wie Sie die Eigenschaften des Strichcodeobjekts ändern können, finden Sie in .

      +
      + +
      diff --git a/help/de/customize.page b/help/de/customize.page new file mode 100644 index 00000000..d2bf4e6d --- /dev/null +++ b/help/de/customize.page @@ -0,0 +1,114 @@ + + + + + + + Anpassen von gLabels an Ihre Bedürfnisse. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Share Alike 3.0

      +
      +
      + + + + Einstellungen +

      Um gLabels zu konfigurieren, wählen Sie EinstellungenEinstellungen. Der Dialog Einstellungen enthält die folgenden Reiter:

      + +
      + Lokale Einstellungen +
      + Einheiten +

      Verwenden Sie diese Radioknöpfe, um Ihre bevorzugten Maßeinheiten festzulegen. Wählen Sie aus den folgenden Optionen:

      + + +

      Punkte

      +

      Punkte verwenden (1 Punkt = 1/72 Zoll = 0.352778 mm).

      +
      + +

      Zoll

      +

      Zoll verwenden.

      +
      + +

      Millimeter

      +

      Millimeter verwenden.

      +
      +
      +

      Standard: Zoll.

      +
      + +
      + Vorgegebene Seitengröße +

      Verwenden Sie diese Radioknöpfe zur Auswahl Ihrer bevorzugten Papiergröße. Dadurch lassen sich beim Erstellen neuer Etiketten oder Visitenkarten die entsprechenden Papiertypen schneller finden.

      + + +

      US-Letter

      +

      Die meisten Ihrer Medien haben das US-Letter-Format (8.5 x 11 inches).

      +
      + +

      ISO A4

      +

      Die meisten Ihrer Medien haben das ISO-A4-Format (210 x 297 mm).

      +
      +
      +

      Standard: US-Letter.

      +
      +
      + +
      + Objekt-Vorgaben + +
      + Text +

      Verwenden Sie diese Einstellmöglichkeiten, um die Standardeigenschaften neuer Textobjekte festzulegen. Diese Eigenschaften sind:

      + + +

      Schrift

      +

      Verwenden Sie diese Einstellmöglichkeiten, um die Schriftfamilie und -größe festzulegen, sowie um anzugeben, ob die Schrift fett oder kursiv dargestellt werden soll.

      +
      + +

      Farbe

      +

      Diese Einstellung wählt die Standard-Textfarbe aus.

      +
      + +

      Ausrichtung

      +

      Mit diesen Einstellungen wählen Sie die vorgegebene Textausrichtung (links, mittig oder rechts).

      +
      +
      +
      + +
      + Linie +

      Verwenden sie diese Einstellmöglichkeiten, um die Standardeigenschaften von Linien und Begrenzungen neuer Objekte festzulegen. Diese Eigenschaften sind:

      + + +

      Breite

      +

      Diese Einstellung wählt die Standard-Linienbreite aus.

      +
      + +

      Farbe

      +

      Diese Einstellung wählt die Standard-Linienfarbe aus.

      +
      +
      +
      + +
      + Füllen +

      Verwenden Sie diese Einstellmöglichkeiten zum Angeben der Füllungseigenschaften eines neuen Objekts. Diese Eigenschaften sind:

      + + +

      Farbe

      +

      Diese Einstellung wählt die Standard-Füllfarbe aus.

      +
      +
      +
      +
      + +
      diff --git a/help/de/customtemplate.page b/help/de/customtemplate.page new file mode 100644 index 00000000..f2c7b7bd --- /dev/null +++ b/help/de/customtemplate.page @@ -0,0 +1,27 @@ + + + + + + + Erstellen Ihrer eigenen Vorlagen für Ihre Etiketten- und Visitenkartenbögen. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Share Alike 3.0

      +
      +
      + + Erstellen einer benutzerdefinierten Vorlage + +

      Um eine neue benutzerdefinierte Vorlage zu erstellen, wählen Sie DateiVorlagen-Designer …, um den Vorlagen-Designer-Dialog anzuzeigen. Dieser Dialog hilft Ihnen bei der Erstellung einer benutzerdefinierten Vorlage für die meisten Typen von Etiketten oder Visitenkarten, die Ihnen in Schreibwarengeschäften begegnen könnten.

      + +

      Falls Sie dies bevorzugen, können Sie Ihre Vorlagen auch manuell erstellen. Weitere Informationen hierzu finden Sie in

      + +
      diff --git a/help/de/de.po b/help/de/de.po index 12f0f96c..495efe4d 100644 --- a/help/de/de.po +++ b/help/de/de.po @@ -1,11 +1,11 @@ -# German translation of the gLabels2 documentation. -# Mario Blättermann , 2008, 2009. +# German translation of the gLabels3 documentation. +# Mario Blättermann , 2008-2010. # msgid "" msgstr "" -"Project-Id-Version: glabels2\n" -"POT-Creation-Date: 2010-01-09 14:14+0000\n" -"PO-Revision-Date: 2010-01-16 19:18+0100\n" +"Project-Id-Version: glabels master\n" +"POT-Creation-Date: 2010-12-26 22:36+0000\n" +"PO-Revision-Date: 2011-01-02 00:16+0100\n" "Last-Translator: Mario Blättermann \n" "Language-Team: German \n" "MIME-Version: 1.0\n" @@ -16,742 +16,377 @@ msgstr "" #. When image changes, this message will be marked fuzzy or untranslated for you. #. It doesn't matter what you translate it to: it's not used at all. -#: C/glabels.xml:195(None) +#: C/skipfields.page:45(None) msgid "" -"@@image: 'figures/main-window-empty.png'; md5=226b58f05f4171531066358a29cda1a7" -msgstr "translated" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: C/glabels.xml:447(None) -msgid "" -"@@image: 'figures/print-copies.png'; md5=ebb4d08810a67cc9cd7ec6ddd7b52fb0" -msgstr "translated" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: C/glabels.xml:479(None) -msgid "@@image: 'figures/print-merge.png'; md5=ffe6027513a10f7ba940c350c1dc5717" -msgstr "translated" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: C/glabels.xml:790(None) -msgid "" -"@@image: 'figures/object-editor-sidebar.png'; " -"md5=14eace177c1f5bfe36022acbbd6a9f0e" -msgstr "translated" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: C/glabels.xml:1231(None) -msgid "@@image: 'figures/merge-ex1-1.png'; md5=55a97963022047cdad6aa198b5ed698e" -msgstr "translated" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: C/glabels.xml:1256(None) -msgid "@@image: 'figures/merge-ex1-2.png'; md5=d03979f010e20e98532258edb20b1bc0" -msgstr "translated" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: C/glabels.xml:1284(None) -msgid "@@image: 'figures/merge-ex1-3.png'; md5=94e382ccdfbc2fe5d320010d2ef10c61" -msgstr "translated" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: C/glabels.xml:1302(None) -msgid "@@image: 'figures/merge-ex1-4.png'; md5=e72810bc3c191df6c8b2ad0cb1131021" -msgstr "translated" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: C/glabels.xml:1348(None) -msgid "@@image: 'figures/merge-ex2-1.png'; md5=4f062158be21bfadc4adfbdcf5d0206f" -msgstr "translated" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: C/glabels.xml:1374(None) -msgid "@@image: 'figures/merge-ex2-2.png'; md5=f69a7e0ae86f66b0d70d39a7757918fa" -msgstr "translated" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: C/glabels.xml:1399(None) C/glabels.xml:1513(None) -msgid "@@image: 'figures/merge-ex2-3.png'; md5=f5134b9e911ebdd17d4a5b36a5ba56d0" -msgstr "translated" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: C/glabels.xml:1417(None) C/glabels.xml:1531(None) -msgid "@@image: 'figures/merge-ex2-4.png'; md5=29a60e970cb026aecf75543203494b00" -msgstr "translated" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: C/glabels.xml:1464(None) -#| msgid "" -#| "@@image: 'figures/merge-ex2-2.png'; md5=f69a7e0ae86f66b0d70d39a7757918fa" -msgid "@@image: 'figures/merge-ex3-1.png'; md5=b0c387b5fcfd730b2ae75172895ff5b8" -msgstr "translated" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: C/glabels.xml:1492(None) -#| msgid "" -#| "@@image: 'figures/merge-ex1-2.png'; md5=d03979f010e20e98532258edb20b1bc0" -msgid "@@image: 'figures/merge-ex3-2.png'; md5=09f105e133657345e6e478a464e5b49f" -msgstr "translated" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: C/glabels.xml:1767(None) -msgid "" -"@@image: 'figures/glabels-template-label.png'; " -"md5=b7db4090373462b8d45feb22d4cd5646" -msgstr "translated" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: C/glabels.xml:1888(None) -msgid "" -"@@image: 'figures/glabels-template-cd.png'; " -"md5=145b49a5380de63ffa9451d2bbb81934" -msgstr "translated" +"@@image: 'figures/skip-fields-screenshot.png'; " +"md5=eef4a81f48546bd7d3753656a3df9cb7" +msgstr "" #. When image changes, this message will be marked fuzzy or untranslated for you. #. It doesn't matter what you translate it to: it's not used at all. -#: C/glabels.xml:2150(None) -msgid "" -"@@image: 'figures/glabels-template-layout.png'; " -"md5=a8adcff0584be1f0275bc2a169a580df" -msgstr "translated" - -#: C/glabels.xml:31(title) -msgid "gLabels Manual V2.2.6" -msgstr "gLabels-Handbuch V2.2.6" - -#: C/glabels.xml:33(para) +#: C/skipfields.page:53(None) msgid "" -"User manual for the gLabels label and business " -"card creation program" +"@@image: 'figures/skip-fields-output.png'; " +"md5=b64d1a7fdf0d37e9a6d93f0bc2f9fa0d" msgstr "" -"Benutzerhandbuch für gLabels, einem Programm zum " -"Erstellen von Etiketten und Visitenkarten" -#: C/glabels.xml:38(year) -msgid "2003-2009" -msgstr "2003-2009" +#: C/skipfields.page:9(desc) +msgid "How to skip blank address lines when doing a document merge." +msgstr "" +"Überspringen von leeren Adresszeilen bei der Ausführung einer " +"Dokumentmischung." -#: C/glabels.xml:39(holder) C/glabels.xml:42(publishername) -#: C/glabels.xml:93(para) C/glabels.xml:103(para) +#: C/skipfields.page:13(name) C/select.page:13(name) C/printfile.page:13(name) +#: C/newlabel.page:13(name) C/multifile.page:13(name) C/merge.page:13(name) +#: C/mergefeatures.page:13(name) C/merge-ex4.page:13(name) +#: C/merge-ex3.page:13(name) C/merge-ex2.page:13(name) +#: C/merge-ex1.page:13(name) C/mancreate.page:14(name) +#: C/labelprop.page:13(name) C/index.page:11(name) C/editprop.page:13(name) +#: C/customtemplate.page:13(name) C/customize.page:11(name) +#: C/createnew.page:13(name) C/basicusage.page:13(name) C/about.page:13(name) msgid "Jim Evins" msgstr "Jim Evins" -#: C/glabels.xml:2(para) -msgid "" -"Permission is granted to copy, distribute and/or modify this document under " -"the terms of the GNU Free Documentation License (GFDL), Version 1.1 or any " -"later version published by the Free Software Foundation with no Invariant " -"Sections, no Front-Cover Texts, and no Back-Cover Texts. You can find a copy " -"of the GFDL at this link or in " -"the file COPYING-DOCS distributed with this manual." -msgstr "" -"Das vorliegende Dokument kann gemäß den Bedingungen der GNU Free " -"Documentation License (GFDL), Version 1.1 oder jeder späteren, von der Free " -"Software Foundation veröffentlichten Version ohne unveränderbare Abschnitte " -"sowie ohne Texte auf dem vorderen und hinteren Buchdeckel kopiert, verteilt " -"und/oder modifiziert werden. Eine Kopie der GFDL finden Sie unter diesem " -"Link oder in der mit diesem " -"Handbuch gelieferten Datei COPYING-DOCS." - -#: C/glabels.xml:12(para) -msgid "" -"This manual is part of a collection of GNOME manuals distributed under the " -"GFDL. If you want to distribute this manual separately from the collection, " -"you can do so by adding a copy of the license to the manual, as described in " -"section 6 of the license." -msgstr "" -"Dieses Handbuch ist Teil einer Sammlung von GNOME-Handbüchern, die unter der " -"GFDL veröffentlicht werden. Wenn Sie dieses Handbuch getrennt von der " -"Sammlung weiterverbreiten möchten, können Sie das tun, indem Sie eine Kopie " -"der Lizenz zum Handbuch hinzufügen, wie es in Abschnitt 6 der Lizenz " -"beschrieben ist." - -#: C/glabels.xml:19(para) -msgid "" -"Many of the names used by companies to distinguish their products and " -"services are claimed as trademarks. Where those names appear in any GNOME " -"documentation, and the members of the GNOME Documentation Project are made " -"aware of those trademarks, then the names are in capital letters or initial " -"capital letters." -msgstr "" -"Viele der Namen, die von Unternehmen verwendet werden, um ihre Produkte und " -"Dienstleistungen von anderen zu unterscheiden, sind eingetragene " -"Warenzeichen. An den Stellen, an denen diese Namen in einer GNOME-" -"Dokumentation erscheinen, werden die Namen in Großbuchstaben oder mit einem " -"großen Anfangsbuchstaben geschrieben, wenn das GNOME-Dokumentationsprojekt " -"auf diese Warenzeichen hingewiesen wird." - -#: C/glabels.xml:35(para) -msgid "" -"DOCUMENT IS PROVIDED ON AN \"AS IS\" BASIS, WITHOUT WARRANTY OF ANY KIND, " -"EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT " -"THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS FREE OF DEFECTS " -"MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK " -"AS TO THE QUALITY, ACCURACY, AND PERFORMANCE OF THE DOCUMENT OR MODIFIED " -"VERSION OF THE DOCUMENT IS WITH YOU. SHOULD ANY DOCUMENT OR MODIFIED VERSION " -"PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL WRITER, AUTHOR OR ANY " -"CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR " -"CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS " -"LICENSE. NO USE OF ANY DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS " -"AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER; AND" -msgstr "" -"DIESES DOKUMENT WIRD »WIE VORLIEGEND« GELIEFERT, OHNE GARANTIEN IRGENDEINER " -"ART, SOWOHL AUSDRÜCKLICH GENANNTE ALS AUCH ANGEDEUTETE. DIES BEZIEHT SICH " -"AUCH OHNE EINSCHRÄNKUNG AUF GARANTIEN, DASS DIESES DOKUMENT ODER VERÄNDERTE " -"FASSUNGEN DIESES DOKUMENTS FREI VON HANDELSDEFEKTEN, FÜR EINEN BESTIMMTEN " -"ZWECK GEEIGNET IST ODER DASS ES KEINE RECHTE DRITTER VERLETZT. DAS VOLLE " -"RISIKO WAS QUALITÄT, GENAUIGKEIT UND LEISTUNG DES DOKUMENTS ODER VERÄNDERTE " -"FASSUNGEN DES DOKUMENTS LIEGT BEI IHNEN. SOLLTE EIN DOKUMENT ODER EINE " -"VERÄNDERTE FASSUNG DAVON FEHLER IRGENDEINER ART BEINHALTEN, TRAGEN SIE (NICHT " -"DER URSPRUNGSAUTOR, DER AUTOR ODER EIN MITWIRKENDER) DIE KOSTEN FÜR " -"NOTWENDIGE DIENSTLEISTUNGEN, REPARATUREN ODER FEHLERKORREKTUREN. DIESER " -"HAFTUNGSAUSSCHLUSS IST EIN ESSENZIELLER TEIL DIESER LIZENZ. DIE VERWENDUNG " -"EINES DOKUMENTS ODER EINER VERÄNDERTEN VERSION DES DOKUMENTS IST NICHT " -"GESTATTET AUßER UNTER BEACHTUNG DIESES HAFTUNGSAUSSCHLUSSES UND" - -#: C/glabels.xml:55(para) -msgid "" -"UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER IN TORT (INCLUDING " -"NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE AUTHOR, INITIAL WRITER, ANY " -"CONTRIBUTOR, OR ANY DISTRIBUTOR OF THE DOCUMENT OR MODIFIED VERSION OF THE " -"DOCUMENT, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR " -"ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY " -"CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK " -"STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER DAMAGES OR " -"LOSSES ARISING OUT OF OR RELATING TO USE OF THE DOCUMENT AND MODIFIED " -"VERSIONS OF THE DOCUMENT, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE " -"POSSIBILITY OF SUCH DAMAGES." -msgstr "" -"UNTER KEINEN UMSTÄNDEN UND AUF BASIS KEINER RECHTSGRUNDLAGE, EGAL OB DURCH " -"UNERLAUBTEN HANDLUNGEN (EINSCHLIEßLICH FAHRLÄSSIGKEIT), VERTRAG ODER " -"ANDERWEITIG KANN DER AUTOR, URSPRUNGSAUTOR, EIN MITWIRKENDER ODER EIN " -"VERTRIEBSPARTNER DIESES DOKUMENTS ODER EINER VERÄNDERTEN FASSUNG DES " -"DOKUMENTS ODER EIN ZULIEFERER EINER DIESER PARTEIEN, HAFTBAR GEMACHT WERDEN " -"FÜR DIREKTE, INDIREKTE, SPEZIELLE, VERSEHENTLICHE ODER FOLGESCHÄDEN JEGLICHER " -"ART, EINSCHLIEßLICH UND OHNE EINSCHRÄNKUNGEN SCHÄDEN DURCH VERLUST VON " -"KULANZ, ARBEITSAUSFALL, COMPUTERVERSAGEN ODER COMPUTERFEHLFUNKTIONEN ODER " -"ALLE ANDEREN SCHÄDEN ODER VERLUSTE, DIE SICH AUS ODER IN VERBINDUNG MIT DER " -"VERWENDUNG DES DOKUMENTS UND VERÄNDERTER FASSUNGEN DES DOKUMENTS ERGEBEN, " -"AUCH WENN DIE OBEN GENANNTEN PARTEIEN ÜBER DIE MÖGLICHKEIT SOLCHER SCHÄDEN " -"INFORMIERT WAREN." - -#: C/glabels.xml:28(para) -msgid "" -"DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT ARE PROVIDED UNDER THE TERMS " -"OF THE GNU FREE DOCUMENTATION LICENSE WITH THE FURTHER UNDERSTANDING THAT: " -"" -msgstr "" -"DAS DOKUMENT UND VERÄNDERTE FASSUNGEN DES DOKUMENTS WERDEN UNTER DEN " -"BEDINGUNGEN DER GNU FREE DOCUMENTATION LICENSE ZUR VERFÜGUNG GESTELLT MIT DEM " -"WEITERGEHENDEN VERSTÄNDNIS, DASS: " - -#: C/glabels.xml:52(firstname) -msgid "Jim" -msgstr "Jim" - -#: C/glabels.xml:53(surname) -msgid "Evins" -msgstr "Evins" - -#: C/glabels.xml:87(revnumber) -msgid "gLabels Manual V2.2.6" -msgstr "gLabels-Handbuch V2.2.6" - -#: C/glabels.xml:88(date) -msgid "October 2009" -msgstr "October 2009" - -#: C/glabels.xml:90(para) -msgid "Mario Blättermann mariobl@gnome.org" -msgstr "Mario Blättermann mariobl@gnome.org" - -#: C/glabels.xml:97(revnumber) -msgid "gLabels Manual V2.2" -msgstr "gLabels-Handbuch V2.2" - -#: C/glabels.xml:98(date) -msgid "December 2007" -msgstr "Dezember 2007" - -#: C/glabels.xml:100(para) -msgid "Jim Evins evins@snaught.com" -msgstr "Jim Evins evins@snaught.com" - -#: C/glabels.xml:108(releaseinfo) -msgid "" -"This manual describes version 2.2.6 of gLabels." -msgstr "" -"Dieses Handbuch beschreibt Version 2.2.6 von gLabels." - -#: C/glabels.xml:111(title) -msgid "Feedback" -msgstr "Rückmeldungen" - -#: C/glabels.xml:112(para) -msgid "" -"To report a bug or make a suggestion regarding the gLabels application or this manual, follow the directions in the gLabels Contact Page." -msgstr "" -"Um einen Fehler zu melden oder einen Vorschlag zur Anwendung " -"gLabels oder zu diesem Handbuch zu machen, folgen " -"Sie den Anweisungen auf der gLabels-Kontaktseite." - -#: C/glabels.xml:121(primary) -msgid "gLabels" -msgstr "gLabels" - -#: C/glabels.xml:124(primary) -msgid "glabels" -msgstr "glabels" - -#: C/glabels.xml:135(title) -msgid "Introduction" -msgstr "Einführung" - -#: C/glabels.xml:137(para) -msgid "" -"The gLabels application is a lightweight program " -"for creating labels and business cards for the GNOME desktop environment. It is designed to work with various laser/ink-jet " -"peel-off label and business card sheets that you'll find at most office " -"supply stores." -msgstr "" -"Die Anwendung gLabels ist ein ressourcenschonendes " -"Programm zum Erstellen von Etiketten und Visitenkarten für die " -"GNOME-Arbeitsumgebung. Es wurde für die " -"verschiedensten mit Laser- oder Tintenstrahldruckern bedruckbaren (auch " -"selbstklebenden) Etiketten sowie Visitenkarten entworfen, so wie Sie sie in " -"den meisten Schreibwarengeschäften finden." - -#: C/glabels.xml:158(title) -msgid "Getting Started" -msgstr "Erste Schritte" - -#: C/glabels.xml:161(title) -msgid "To Start gLabels" -msgstr "gLabels starten" - -#: C/glabels.xml:162(para) -msgid "You can start gLabels in the following ways:" -msgstr "" -"Sie können gLabels auf folgende Arten starten:" - -#: C/glabels.xml:166(term) -msgid "Applications menu" -msgstr "Menü Anwendungen" - -#: C/glabels.xml:168(para) -msgid "" -"Choose OfficegLabels." -msgstr "" -"Wählen Sie BüroanwendungengLabels." - -#: C/glabels.xml:176(term) -msgid "Command line" -msgstr "Befehlszeile" - -#: C/glabels.xml:178(para) -msgid "Type glabels, then press Return:" -msgstr "" -"Geben Sie glabels ein, und drücken Sie dann die " -"Eingabetaste." - -#: C/glabels.xml:186(title) -msgid "When You Start gLabels" -msgstr "Beim Start von gLabels" - -#: C/glabels.xml:187(para) -msgid "" -"When you start gLabels, the following window is " -"displayed." -msgstr "" -"Nach dem Start von gLabels erscheint folgendes " -"Fenster:" - -#: C/glabels.xml:191(title) -msgid "gLabels Start Up Window" -msgstr "gLabels-Startfenster" - -#. for example, the items on the menubar and on the toolbar. This section is optional. -#: C/glabels.xml:205(para) -msgid "" -"The gLabels window contains the following elements:" -msgstr "" -"Das gLabels-Fenster enthält folgende Elemente:" - -#: C/glabels.xml:209(term) -msgid "Menubar." -msgstr "Menüleiste." - -#: C/glabels.xml:211(para) -msgid "" -"The menus on the menubar contain all of the commands you need to create and " -"edit labels and business cards in gLabels." -msgstr "" -"Die Menüs in der Menüleiste enthalten alle Befehle, die Sie zum Erstellen und " -"Bearbeiten von Etiketten und Visitenkarten in gLabels benötigen." - -#: C/glabels.xml:217(term) -msgid "Main toolbar." -msgstr "Haupt-Werkzeugleiste." - -#: C/glabels.xml:219(para) +#: C/skipfields.page:14(email) C/select.page:14(email) +#: C/printfile.page:14(email) C/newlabel.page:14(email) +#: C/multifile.page:14(email) C/merge.page:14(email) +#: C/mergefeatures.page:14(email) C/merge-ex4.page:14(email) +#: C/merge-ex3.page:14(email) C/merge-ex2.page:14(email) +#: C/merge-ex1.page:14(email) C/mancreate.page:15(email) +#: C/labelprop.page:14(email) C/index.page:12(email) C/editprop.page:14(email) +#: C/customtemplate.page:14(email) C/customize.page:12(email) +#: C/createnew.page:14(email) C/basicusage.page:14(email) +#: C/about.page:14(email) +msgid "evins@snaught.com" +msgstr "evins@snaught.com" + +#: C/skipfields.page:17(name) C/select.page:17(name) C/printfile.page:17(name) +#: C/newlabel.page:17(name) C/multifile.page:17(name) C/merge.page:17(name) +#: C/mergefeatures.page:17(name) C/merge-ex4.page:17(name) +#: C/merge-ex3.page:17(name) C/merge-ex2.page:17(name) +#: C/merge-ex1.page:17(name) C/mancreate.page:18(name) +#: C/labelprop.page:17(name) C/index.page:15(name) C/editprop.page:17(name) +#: C/customtemplate.page:17(name) C/customize.page:15(name) +#: C/createnew.page:17(name) C/basicusage.page:17(name) C/about.page:17(name) +msgid "Mario Blättermann" +msgstr "Mario Blättermann" + +#: C/skipfields.page:18(email) C/select.page:18(email) +#: C/printfile.page:18(email) C/newlabel.page:18(email) +#: C/multifile.page:18(email) C/merge.page:18(email) +#: C/mergefeatures.page:18(email) C/merge-ex4.page:18(email) +#: C/merge-ex3.page:18(email) C/merge-ex2.page:18(email) +#: C/merge-ex1.page:18(email) C/mancreate.page:19(email) +#: C/labelprop.page:18(email) C/index.page:16(email) C/editprop.page:18(email) +#: C/customtemplate.page:18(email) C/customize.page:16(email) +#: C/createnew.page:18(email) C/basicusage.page:18(email) +#: C/about.page:18(email) +msgid "mariobl@gnome.org" +msgstr "mariobl@gnome.org" + +#: C/skipfields.page:21(p) C/select.page:21(p) C/printfile.page:21(p) +#: C/newlabel.page:21(p) C/multifile.page:21(p) C/merge.page:21(p) +#: C/mergefeatures.page:21(p) C/merge-ex4.page:21(p) C/merge-ex3.page:21(p) +#: C/merge-ex2.page:21(p) C/merge-ex1.page:21(p) C/mancreate.page:22(p) +#: C/labelprop.page:21(p) C/index.page:19(p) C/editprop.page:21(p) +#: C/customtemplate.page:21(p) C/customize.page:19(p) C/createnew.page:21(p) +#: C/basicusage.page:21(p) C/about.page:21(p) +msgid "Creative Commons Share Alike 3.0" +msgstr "Creative Commons Share Alike 3.0" + +#: C/skipfields.page:25(title) +msgid "Skipping blank address lines" +msgstr "Überspringen leerer Adresszeilen" + +#: C/skipfields.page:27(p) +msgid "" +"This feature can be best described by a simple example. In the following CSV " +"file, column 5 (ADDR2) contains the second address line for each record. This " +"field is empty in records 1 and 2, but not in record 3. (For this feature to " +"work, the field must be completely empty -- any text, including spaces will " +"defeat this feature.)" +msgstr "" +"Dieses Funktionsmerkmal lässt sich am besten anhand eines einfachen Beispiels " +"beschreiben. In der folgenden CSV-Datei enthält die Spalte 5 (ADDR2) die " +"zweite Adresszeile jedes Datensatzes. Dieses Feld ist in den Datensätzen 1 " +"und 2 leer, nicht jedoch in Datensatz 3. Damit dies auch funktioniert, muss " +"das Feld wirklich vollständig leer sein. Jeglicher Text, selbst wenn es auch " +"nur Leerzeichen sein sollten, wird diese Funktion scheitern lassen." + +#: C/skipfields.page:33(code) +#, no-wrap msgid "" -"The main toolbar contains a subset of common File and Edit commands that you " -"can access from the menubar." +"\n" +" LAST,FIRST,MI,ADDR1,ADDR2,CITY,STATE,ZIP\n" +" Summers,Joyce,,\"1630 Revello Dr\",,Sunnydale,CA,95037\n" +" McGarret,Steve,O,\"404 Piikoi Street\",,Honolulu,HI,96813\n" +" Kramer,Cosmo,,\"Apt 5B\",\"129 W. 81 St.\",\"New York\",NY,10024-7207\n" +" " msgstr "" -"Die Haupt-Werkzeugleiste enthält eine Auswahl der Befehle, die Sie über die " -"Menüleiste in den Menüs »Datei« und »Bearbeiten« erreichen." - -#: C/glabels.xml:224(term) -msgid "Drawing toolbar." -msgstr "Zeichenwerkzeugleiste." +"\n" +" LAST,FIRST,MI,ADDR1,ADDR2,CITY,STATE,ZIP\n" +" Summers,Joyce,,\"1630 Revello Dr\",,Sunnydale,CA,95037\n" +" McGarret,Steve,O,\"404 Piikoi Street\",,Honolulu,HI,96813\n" +" Kramer,Cosmo,,\"Apt 5B\",\"129 W. 81 St.\",\"New York\",NY,10024-7207\n" +" " -#: C/glabels.xml:226(para) +#: C/skipfields.page:40(p) msgid "" -"The drawing toolbar contains a subset of commands for editing the current " -"gLabels document." +"In the following screenshot, a single multiline text object has been created " +"to format these addresses. Notice that ${ADDR2} representing the second " +"address line is on a line by itself. (Any additional text on this line, " +"including spaces would defeat this feature.)" msgstr "" -"Die Zeichenwerkzeugleiste enthält eine Auswahl von Befehlen zum Bearbeiten " -"des aktuellen gLabels-Dokuments." +"Im folgenden Bildschirmfoto wurde ein mehrzeiliges Textobjekt erzeugt, um " +"diese Adressen zu formatieren. Beachten Sie, dass ${ADDR2}, welches die " +"zweite Adresszeile darstellt, in einer eigenen Zeile steht. Jeder zusätzliche " +"Text, auch Leerzeichen, lassen diese Funktion scheitern." -#: C/glabels.xml:231(term) -msgid "Display area." -msgstr "Anzeigebereich." +#: C/skipfields.page:46(p) +msgid "Multi-line address" +msgstr "Mehrzeilige Adressen" -#: C/glabels.xml:233(para) +#: C/skipfields.page:49(p) msgid "" -"The display area is the main drawing interface to gLabels." +"Printing this label results in the following output. Notice that the line " +"containing the ${ADDR2} field is completely skipped for the first two " +"records, without printing a blank line." msgstr "" -"Der Anzeigebereich ist die Zeichenfläche für gLabels." +"Durch Drucken der Etiketten erhalten Sie folgende Ausgabe. Beachten Sie, dass " +"die Zeile, welche das Feld ${ADDR2} enthält, für die ersten zwei Datensätze " +"komplett übersprungen wurde, ohne dass eine leere Zeile gedruckt wird." -#: C/glabels.xml:238(term) -msgid "Object sidebar." -msgstr "Objekt-Seitenleiste." +#: C/skipfields.page:54(p) +msgid "Output" +msgstr "Ausgabe" -#: C/glabels.xml:240(para) -msgid "" -"The object sidebar provides an interface for viewing and editing all " -"properties of an individual object." -msgstr "" -"Die Objekt-Seitenleiste stellt eine Schnittstelle zum Betrachten und " -"Bearbeiten der Eigenschaften eines bestimmten Objekts zur Verfügung." +#: C/select.page:9(desc) +msgid "How to select objects." +msgstr "Objekte auswählen." -#: C/glabels.xml:245(term) -msgid "Properties toolbar." -msgstr "Eingenschaften-Werkzeugleiste." +#: C/select.page:25(title) +msgid "To select objects" +msgstr "Auswählen von Objekten" -#: C/glabels.xml:247(para) +#: C/select.page:27(p) msgid "" -"The properties toolbar contains a set of tools to manipulate the properties " -"of selected objects and set default properties for new objects." +"A prerequisite for performing operations on objects is the selection of " +"individual objects or groups of objects. The display area must be in the " +"object selection mode to create new selections, as indicated by an arrow " +"cursor. The object selection mode is selected by the ObjectsSelect Mode menu item, or the corresponding command " +"on the Drawing Toolbar." msgstr "" -"Die Eigenschaften-Werkzeugleiste enthält eine Reihe von Werkzeugen zum " -"Manipulieren der Eigenschaften ausgewählter Objekte sowie zum Setzen der " -"Standardeigenschaften für neue Objekte." +"Eine Voraussetzung zum Ausführen von Operationen auf Objekten ist die Auswahl " +"individueller Objekte oder Gruppen von Objekten. Der Anzeigebereich muss sich " +"im Objektauswahlmodus befinden, was durch einen pfeilförmigen Mauszeiger " +"angezeigt wird. Der Objektauswahlmodus wird über den Menüeintrag " +"ObjekteAuswahlmodus aktiviert oder " +"über das entsprechende Objekt in der Zeichenwerkzeugleiste." -#: C/glabels.xml:253(term) -msgid "Statusbar." -msgstr "Statusleiste." +#: C/select.page:38(title) +msgid "Selecting a single object" +msgstr "Auswahl eines einzelnen Objekts" -#: C/glabels.xml:255(para) +#: C/select.page:39(p) msgid "" -"The statusbar displays information about current gLabels activity and contextual information about the menu items." +"A single object can be selected simply by clicking on the desired object in " +"the display area. Once selected the object will be highlighted with a set of " +"resizing handles." msgstr "" -"In der Statusleiste werden Informationen über die aktuelle " -"gLabels-Aktivität und Kontextinformationen über " -"die Menüpunkte angezeigt." - -#: C/glabels.xml:271(title) -msgid "Usage" -msgstr "Benutzung" - -#: C/glabels.xml:275(title) -msgid "To Create a New Label or Card" -msgstr "Erstellen eines neuen Etiketts oder einer neuen Karte" +"Ein einzelnes Objekt können Sie auswählen, indem Sie das gewünschte Objekt im " +"Anzeigebereich anklicken. Nach dem Anklicken wird das Objekt durch " +"Anfasspunkte zur Größenänderung hervorgehoben." -#: C/glabels.xml:277(para) -msgid "" -"To create a new label or business card, choose FileNew to display the " -"New Label or Card dialog. Select the media type and " -"orientation for the new document, then click OK. A new " -"document is displayed in the display area of the gLabels window." -msgstr "" -"Um ein neues Etikett oder eine neue Visitenkarte anzulegen, wählen Sie " -"DateiNeu, um den Dialog Neues Etikett oder neue Karte " -"anzuzeigen. Wählen Sie den Medientyp und die Ausrichtung für das neue " -"Dokument aus und klicken Sie anschließend auf OK. Ein " -"neues Dokument erscheint im Anzeigebereich des gLabels-Fensters." +#: C/select.page:46(title) +msgid "Aggregate object selections" +msgstr "Auswahl mehrerer Objekte" -#: C/glabels.xml:286(para) +#: C/select.page:47(p) msgid "" -"If your particular media type is missing from this dialog, see " +"Multiple objects can be selected by first selecting the first object as above " +"and then by holding the Ctrl key while selecting additional " +"objects. Individual objects can be added to an existing selection at any time " +"by holding the Ctrl key while selecting the desired objects. All " +"objects can also be selected by using the EditSelect " +"All menu item. All objects in an aggregate object selection " +"will be highlighted." msgstr "" -"Falls Ihr spezieller Medientyp in diesem Dialog nicht angezeigt wird, siehe " -"." - -#: C/glabels.xml:293(title) -msgid "To Open a File" -msgstr "Öffnen einer Datei" +"Sie können mehrere Objekte auswählen, indem Sie zunächst das erste Objekt " +"auswählen, wie oben beschrieben. Halten Sie dann bei der Auswahl weiterer " +"Objekte die Strg-Taste gedrückt. Zusätzliche Objekte können Sie " +"jederzeit zur Auswahl hinzufügen, wenn Sie wiederum die Strg-Taste " +"gedrückt halten und die gewünschten Objekte auswählen. Alle Objekte lassen " +"sich über den Menüeintrag BearbeitenAlle auswählen auswählen. Alle Objekte in einer zusammenhängenden " +"Objektauswahl werden hervorgehoben dargestellt." + +#: C/select.page:60(title) +msgid "Area selections" +msgstr "Bereichsauswahl" -#: C/glabels.xml:295(para) +#: C/select.page:62(p) msgid "" -"To open a file, choose FileOpen to display the Open File " -"dialog. Select the file that you want to open, then click OK. The file is displayed in the display area of the " -"gLabels window." +"Multiple objects can also be selected by clicking an empty area and dragging " +"to form a rectangular area. When released, all objects contained in the area " +"will form an aggregate selection. An area selection can be used to add to an " +"existing selection by holding the Ctrl key while performing the " +"selection." msgstr "" -"Um eine Datei zu öffnen, wählen Sie DateiÖffnen, um den Dialog " -"Datei öffnen anzuzeigen. Wählen Sie die gewünschte Datei " -"aus und klicken Sie dann auf Öffnen. Die Datei wird im " -"Anzeigebereich des gLabels-Fensters geöffnet." +"Sie können auch mehrere Objekte auswählen, indem Sie in einen leeren Bereich " +"klicken und mit der Maus die Form eines Rechtecks aufziehen. Daraufhin bilden " +"alle Objekte in diesem Bereich eine zusammenhängende Auswahl. Eine " +"Bereichsauswahl kann zum Hinzufügen einer vorhandenen Auswahl benutzt werden, " +"wenn Sie bei der Auswahl die Strg-Taste gedrückt halten." -#: C/glabels.xml:302(para) -msgid "" -"You can also open multiple files in gLabels. The " -"application creates a separate application window for each open file." -msgstr "" -"Sie können in gLabels auch mehrere Dateien öffnen. " -"Die Anwendung erzeugt ein separates Fenster für jede geöffnete Datei." +#: C/select.page:72(title) +msgid "Unselecting objects" +msgstr "Auswahl von Objekten aufheben" -#: C/glabels.xml:306(para) +#: C/select.page:74(p) msgid "" -"The application records the paths and filenames of the most recent files that " -"you have edited and displays the files as menu items on the " -"FileRecent Files menu." +"Individual objects can be removed from an existing selection by holding the " +"Ctrl key while clicking on a previously selected object. An entire " +"selection can be dismissed by using the EditUn-select " +"All menu item or by simply clicking any empty space in the " +"display area. Once an object is unselected its highlight is removed." msgstr "" -"Die Anwendung speichert die Pfade und Dateinamen der von Ihnen zuletzt " -"bearbeiteten Dateien. Diese Dateien werden als Einträge im Menü " -"DateiZuletzt benutzt angezeigt." +"Sie können individuelle Objekte aus einer vorhandenen Auswahl entfernen, wenn " +"Sie beim Klicken auf ein zuvor ausgewähltes Objekt die Strg-Taste " +"gedrückt halten. Die gesamte Auswahl können Sie rückgängig machen, indem Sie " +"im Menü BearbeitenAlle Markierungen löschen wählen. Sobald ein Objekt nicht mehr ausgewählt ist, wird es nicht " +"mehr hervorgehoben dargestellt." -#: C/glabels.xml:316(title) -msgid "To Open Multiple Files from a Command Line" -msgstr "Öffnen mehrerer Dateien aus einer Befehlszeile" +#: C/select.page:86(title) +msgid "Clipboard Commands" +msgstr "Befehle für die Zwischenablage" -#: C/glabels.xml:318(para) +#: C/select.page:88(p) msgid "" -"You can run gLabels from a command line and open a " -"single file or multiple files. To open multiple files from a command line, " -"type the following command, then press Return:" +"Object selections can be manipulated using the standard clipboard operations " +"Cut, Copy, Paste, and Delete." msgstr "" -"Sie können gLabels aus einer Befehlszeile starten " -"und eine Datei oder mehrere Dateien öffnen. Um mehrere Dateien aus einer " -"Befehlszeile zu öffnen, geben Sie den folgenden Befehl ein und drücken dann " -"die Eingabetaste:" - -#: C/glabels.xml:324(replaceable) -msgid "file1.glabels file2.glabels file3.glabels" -msgstr "Datei1.glabels Datei2.glabels Datei3.glabels" +"Objektauswahlen können durch die Standardoperationen der Zwischenablage " +"Ausschneiden, Kopieren, Einfügen und " +"Löschen manipuliert werden." -#: C/glabels.xml:323(command) -msgid "glabels " -msgstr "glabels " +#: C/select.page:94(title) +msgid "Cut (CtrlX)" +msgstr "Ausschneiden (StrgX)" -#: C/glabels.xml:327(para) +#: C/select.page:96(p) msgid "" -"When the application starts, the files that you specify are displayed in " -"separate gLabels windows." +"Moves selected objects to the clipboard. The objects are then available for " +"pasting back into the current document or another document." msgstr "" -"Wenn die Anwendung startet, werden die von Ihnen angegebenen Dateien in " -"separaten gLabels-Fenstern angezeigt." - -#: C/glabels.xml:334(title) -msgid "To Save a File" -msgstr "Speichern einer Datei" - -#: C/glabels.xml:336(para) -msgid "You can save files in the following ways:" -msgstr "Sie können Dateien auf folgende Arten speichern:" +"Verschiebt die ausgewählten Objekte in die Zwischenablage. Diese Objekte sind " +"dann verfügbar, um später in das aktuelle Dokument oder ein anderes Dokument " +"eingefügt zu werden." -#: C/glabels.xml:341(para) -msgid "" -"To save changes to an existing file, choose FileSave." -msgstr "" -"Um die Änderungen in der bereits vorhandenen Datei zu speichern, wählen Sie " -"DateiSpeichern." +#: C/select.page:103(title) +msgid "Copy (CtrlC)" +msgstr "Kopieren (StrgC)" -#: C/glabels.xml:348(para) +#: C/select.page:105(p) msgid "" -"To save a new file or to save an existing file under a new filename, choose " -"FileSave As. Enter a name for the file in the Save As " -"dialog box, then click OK." +"Copies selected objects to the clipboard without deleting them. The objects " +"are then available for pasting back into the current document or another " +"document." msgstr "" -"Um eine neue Datei oder eine bestehende Datei unter einem neuen Dateinamen zu " -"speichern, wählen Sie DateiSpeichern unter. Geben Sie " -"einen Namen für die Datei im Dialogfeld Speichern unter " -"ein und klicken Sie anschließend auf OK. " +"Kopiert die ausgewählten Objekte in die Zwischenablage, ohne sie zu " +"entfernen. Diese Objekte sind dann verfügbar, um später in das aktuelle " +"Dokument oder ein anderes Dokument eingefügt zu werden." -#: C/glabels.xml:361(title) -msgid "To Change Label Properties" -msgstr "Ändern der Eigenschaften eines Etiketts" +#: C/select.page:112(title) +msgid "Paste (CtrlV)" +msgstr "Einfügen (StrgV)" -#: C/glabels.xml:363(para) +#: C/select.page:114(p) msgid "" -"To change the media type and/or orientation of a label, choose " -"FileProperties to display the Label properties dialog. " -"Select the new media type and orientation for the document, then click " -"OK." +"Pastes objects from the clipboard into the current document. gLabels can only paste objects from another gLabels document." msgstr "" -"Um den Medientyp oder die Ausrichtung des Etiketts zu ändern, wählen Sie " -"DateiEigenschaften, um den Dialog Etikett-Eigenschaften " -"anzuzeigen. Wählen Sie den neuen Medientyp für das Dokument aus und klicken " -"Sie anschließend auf OK." - -#: C/glabels.xml:374(title) -msgid "To Create a Custom Template" -msgstr "Erstellen einer benutzerdefinierten Vorlage" +"Fügt Objekte aus der Zwischenablage in das aktuelle Dokument ein. " +"gLabels kann nur Objekte aus anderen gLabels-Dokumenten " +"einfügen." -#: C/glabels.xml:376(para) -msgid "" -"To create a new custom template, choose FileTemplate Designer ... to " -"display the Template Designer dialog. This dialog will " -"assist you in creating a custom template for most types of label or card " -"stationery that you may encounter." -msgstr "" -"Um eine neue benutzerdefinierte Vorlage zu erstellen, wählen Sie " -"DateiVorlagen-Designer …, um den Vorlagen-Designer-" -"Dialog anzuzeigen. Dieser Dialog hilft Ihnen bei der Erstellung einer " -"benutzerdefinierten Vorlage für die meisten Typen von Etiketten oder " -"Visitenkarten, die Ihnen in Schreibwarengeschäften begegnen könnten." +#: C/select.page:121(title) +msgid "Delete (Del)" +msgstr "Löschen (Entf)" -#: C/glabels.xml:383(para) -msgid "" -"If you prefer, you can create your templates manually. For this option see " -"" +#: C/select.page:123(p) +msgid "Deletes selected objects without placing them on the clipboard." msgstr "" -"Falls Sie dies bevorzugen, können Sie Ihre Vorlagen auch manuell erstellen. " -"Weitere Informationen hierzu finden Sie in ." - -#: C/glabels.xml:391(title) -msgid "To Close a File" -msgstr "Schließen einer Datei" +"Entfernt die ausgewählten Objekte, ohne sie in die Zwischenablage zu " +"verschieben." -#: C/glabels.xml:393(para) +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/printfile.page:47(None) +#, fuzzy msgid "" -"To close the current document, choose FileClose to close the " -"application window. If the current document is modified, a confirmation " -"dialog will be presented, allowing you to save the document or cancel the " -"command. If the window being closed is the only open window, " -"gLabels will exit." -msgstr "" -"Um das aktuelle Dokument zu schließen, wählen Sie DateiSchließen, um das " -"Anwendungsfenster zu schließen. Falls das aktuelle Dokument bearbeitet wurde, " -"wird ein Bestätigungsdialog geöffnet, in welchem Sie das Dokument speichern " -"oder den Vorgang abbrechen können. Falls das zu schließende Fenster das " -"einzige offene Fenster ist, wird gLabels dadurch " -"beendet." +"@@image: 'figures/print-copies.png'; md5=1896f693ac50b47ea5abaafb59b5e8cc" +msgstr "translated" -#: C/glabels.xml:405(title) -msgid "To Quit gLabels" -msgstr "gLabels beenden" +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/printfile.page:70(None) +#, fuzzy +msgid "@@image: 'figures/print-merge.png'; md5=65a719b5624f88fdb40e2322454819a6" +msgstr "translated" -#: C/glabels.xml:407(para) -msgid "" -"To quit gLabels, choose FileQuit. This is equivalent to " -"closing all open windows. See ." -msgstr "" -"Um gLabels zu beenden, wählen Sie " -"DateiBeenden. Dadurch werden alle offenen Fenster geschlossen. Siehe ." +#: C/printfile.page:9(desc) +msgid "How to print your labels and cards." +msgstr "Ausdrucke von Ihren Etiketten oder Karten erstellen." -#: C/glabels.xml:417(title) -msgid "To Print Labels or Cards" +#: C/printfile.page:25(title) +msgid "To print labels and cards" msgstr "Drucken von Etiketten oder Karten" -#: C/glabels.xml:419(para) +#: C/printfile.page:27(p) msgid "" -"To print labels or cards, choose FilePrint to display the " -"Print dialog. Once print options have been selected, " -"click Print to print the labels or cards. To simply " -"preview the results, click Print Preview instead." +"To print labels or cards, choose FilePrint to display the Print dialog. Once print options have been " +"selected, click Print to print the labels or cards. To simply " +"preview the results, click Print Preview instead." msgstr "" -"Um Etiketten oder Visitenkarten zu drucken, wählen Sie " -"DateiDrucken, um den Drucken-Dialog anzuzeigen. Nachdem " -"Sie die Druckoptionen ausgewählt haben, klicken Sie auf Drucken, um die Etiketten oder Visitenkarten zu drucken. Um zunächst eine " +"Um Etiketten oder Visitenkarten zu drucken, wählen Sie DateiDrucken, um den Drucken-Dialog anzuzeigen. " +"Nachdem Sie die Druckoptionen ausgewählt haben, klicken Sie auf Drucken, um die Etiketten oder Visitenkarten zu drucken. Um zunächst eine " "Vorschau auf die Druckergebnisse zu erhalten, klicken Sie auf " -"Druckvorschau." +"Druckvorschau." -#: C/glabels.xml:426(para) +#: C/printfile.page:34(p) msgid "" -"The Print dialog allows you to specify the following " -"print options:" +"The Print dialog allows you to specify the following print options:" msgstr "" -"Im Dialog Drucken können Sie die folgenden Optionen zum " -"Drucken festlegen:" +"Im Dialog Drucken können Sie die folgenden Optionen zum Drucken " +"festlegen:" -#: C/glabels.xml:430(title) +#: C/printfile.page:38(title) msgid "The Labels Tab of the Print Dialog" msgstr "Der Reiter »Etiketten« des Druckdialogs" -#: C/glabels.xml:435(guilabel) +#: C/printfile.page:41(title) msgid "Print control (Simple)" msgstr "Drucksteuerung (einfach)" -#: C/glabels.xml:438(para) +#: C/printfile.page:43(p) msgid "" -"For simple labels or cards (no document merge), the labels tabbed section contains the following copy controls." +"For simple labels or cards (no document merge), the job tabbed section " +"contains the following copy controls." msgstr "" "Für einfache Etiketten oder Karten (keine Dokumentmischung) enthält der " "Reiter »Labels« die folgenden Einstellmöglichkeiten." -#: C/glabels.xml:443(title) +#: C/printfile.page:48(p) C/editprop.page:36(p) msgid "Print Copy Controls" msgstr "Angeben der Kopien" #. ==== End of Figure ==== -#: C/glabels.xml:454(para) +#: C/printfile.page:52(p) msgid "" "The number of copies of the label can be selected by choosing the number of " "full sheets to print, or a specific subset of labels on a single sheet." @@ -760,7 +395,7 @@ msgstr "" "zu druckenden Seiten oder eine Teilmenge von Etiketten auf einer einzelnen " "Seite auswählen." -#: C/glabels.xml:458(para) +#: C/printfile.page:56(p) msgid "" "The mini-preview can also be used to graphically select the subset of labels " "by clicking the first label on the mini-preview and dragging to the last " @@ -770,26 +405,26 @@ msgstr "" "Etiketten grafisch auszuwählen, indem Sie auf das erste Etikett klicken und " "es auf das letzte Etikett ziehen." -#: C/glabels.xml:466(guilabel) +#: C/printfile.page:63(title) msgid "Print control (Merge)" msgstr "Drucksteuerung (Mischen)" -#: C/glabels.xml:469(para) +#: C/printfile.page:65(p) msgid "" "For labels or cards using the document merge (also known as \"mail merge\") " -"capability, the labels tabbed section contains the " -"following merge controls instead of copy controls." +"capability, the job tabbed section contains the following merge controls " +"instead of copy controls." msgstr "" "Für Etiketten oder Karten unter Verwendung der Dokumentmischung enthält " "dieser Reiter die folgenden Einstellungen zur Mischung von Dokumenten " "anstelle der Festlegung der Kopien." -#: C/glabels.xml:475(title) +#: C/printfile.page:71(p) msgid "Print Document Merge Controls" msgstr "Steuerung der Einmischung von Dokumenten" #. ==== End of Figure ==== -#: C/glabels.xml:486(para) +#: C/printfile.page:75(p) msgid "" "The total number of labels or cards printed is the product of the number of " "records in the merge source and the number of copies selected. If multiple " @@ -804,16 +439,15 @@ msgstr "" "oder nicht zusammengefasst (eine Kopie jedes Datensatzes wird immer vor der " "nächsten Kopie gedruckt)." -#: C/glabels.xml:493(para) +#: C/printfile.page:82(p) msgid "" "Printing can begin on any label on the first sheet. This can be selected with " -"the Start on label spinbutton." +"the Start on label spinbutton." msgstr "" "Der Druck kann mit jedem beliebigen Etikett der ersten Seite begonnen werden. " -"Dies können Sie im Einstellfeld Start bei Etikett " -"auswählen." +"Dies können Sie im Einstellfeld Start bei Etikett auswählen." -#: C/glabels.xml:497(para) +#: C/printfile.page:86(p) msgid "" "The mini-preview can also be used to graphically select this first label, by " "clicking on the desired label in the mini-preview." @@ -821,19 +455,19 @@ msgstr "" "In der verkleinerten Vorschau können Sie das erste Etikett grafisch " "auswählen, indem Sie das gewünschte Etikett anklicken." -#: C/glabels.xml:504(guilabel) +#: C/printfile.page:93(title) msgid "Options" msgstr "Optionen" -#: C/glabels.xml:506(para) +#: C/printfile.page:94(p) msgid "The following options can also be selected." msgstr "Die folgenden Optionen können ebenfalls gewählt werden." -#: C/glabels.xml:509(guilabel) +#: C/printfile.page:97(gui) msgid "print outlines" msgstr "Begrenzungen drucken" -#: C/glabels.xml:510(para) +#: C/printfile.page:98(p) msgid "" "Print outlines of labels. This option is useful for dry-runs, to test printer " "alignment." @@ -841,11 +475,11 @@ msgstr "" "Begrenzungen der Etiketten drucken. Diese Option ist nützlich, wenn Sie die " "Lage des Papiers im Drucker prüfen wollen." -#: C/glabels.xml:514(guilabel) +#: C/printfile.page:102(gui) msgid "print in reverse" msgstr "Spiegelbildlich drucken" -#: C/glabels.xml:515(para) +#: C/printfile.page:103(p) msgid "" "Prints the labels as mirror images. This option is useful for printing on " "clear labels that will be viewed from the reverse side (e.g. in a car window)." @@ -854,11 +488,11 @@ msgstr "" "Drucken durchsichtiger Aufkleber, die von der Rückseite aus betrachtet werden " "(z.B. hinter Autoscheiben)." -#: C/glabels.xml:520(guilabel) +#: C/printfile.page:108(gui) msgid "print crop marks" msgstr "Schnitt" -#: C/glabels.xml:521(para) +#: C/printfile.page:109(p) msgid "" "Prints crop marks along the edge of the sheet. This option is useful for " "printing on blank stock, to be cut after printing. This option does not work " @@ -868,1965 +502,2712 @@ msgstr "" "Drucken auf Papier, das erst nach dem Druck beschnitten werden soll. Diese " "Option funktioniert eventuell nicht mit allen Vorlagen." -#: C/glabels.xml:536(title) -msgid "To Create New Objects" -msgstr "Erstellen neuer Objekte" - -#: C/glabels.xml:538(para) -msgid "" -"Objects are created by choosing the appropriate selection under the " -"ObjectsCreate Object submenu or the Drawing Toolbar. This will place the display area into object creation mode as " -"indicated by its cursor. To return to the default object selection mode " -"without creating an object, choose ObjectsSelect Mode. This will return " -"the display area's cursor to the default selection arrow." -msgstr "" -"Objekte können ausgewählt werden, indem Sie das entsprechende Objekt in " -"ObjekteErzeugen auswählen oder über die Zeichenwerkzeugleiste. Dadurch wird der Anzeigebereich in den Objekterzeugungsmodus " -"versetzt, was am Mauszeiger erkennbar ist. Um zum vorgegebenen " -"Objektauswahlmodus zurückzukehren, ohne ein Objekt zu erzeugen, wählen Sie " -"ObjekteAuswahlmodus. Dadurch wird der Mauszeiger im Anzeigebereich " -"wieder in den vorgegebenen Auswahlzeiger geändert." - -#: C/glabels.xml:548(para) -msgid "The following describes the object creation mode for each object type:" +#: C/newlabel.page:9(desc) +msgid "Create a new label or card in gLabels." msgstr "" -"Nachfolgend wird der Modus zur Erstellung der Objekte für jeden Objekttyp " -"beschrieben:" +"Erstellen einer neuen Karte oder eines neuen Etiketts in gLabels." -#: C/glabels.xml:554(term) C/glabels.xml:1123(guilabel) -msgid "Text" -msgstr "Text" +#: C/newlabel.page:25(title) +msgid "To create a new label or card" +msgstr "Erstellen eines neuen Etiketts oder einer neuen Karte" -#: C/glabels.xml:556(para) +#: C/newlabel.page:27(p) msgid "" -"Click the desired location of the upper left corner of the text object. New " -"text objects are initialized with the string \"Text.\" To change this text, " -"or other properties, see ." +"To create a new label or business card, choose FileNew to display the New Label or Card " +"dialog. Select the media type and orientation for the new document, then " +"click OK. A new document is displayed in the display area of the " +"gLabels window." msgstr "" -"Klicken Sie auf die gewünschte Stelle in der linken oberen Ecke des " -"Textobjekts. Neue Textobjekte erhalten anfänglich den Inhalt »Text«. Wie Sie " -"diesen Text oder andere Eigenschaften ändern können, finden Sie in ." - -#: C/glabels.xml:564(term) -msgid "Box" -msgstr "Rechteck" +"Um ein neues Etikett oder eine neue Visitenkarte anzulegen, wählen Sie " +"DateiNeu, um den Dialog Neues " +"Etikett oder neue Karte anzuzeigen. Wählen Sie den Medientyp und die " +"Ausrichtung für das neue Dokument aus und klicken Sie anschließend auf " +"OK. Ein neues Dokument erscheint im Anzeigebereich des " +"gLabels-Fensters." + +#: C/multifile.page:9(desc) +msgid "How to open multiple files at once by using the command line." +msgstr "Öffnen mehrerer Dateien aus einer Befehlszeile." + +#: C/multifile.page:25(title) +msgid "To open multiple files from the command line" +msgstr "Öffnen mehrerer Dateien aus einer Befehlszeile" -#: C/glabels.xml:566(para) +#: C/multifile.page:27(p) msgid "" -"Click the desired location of the upper left corner of the box object and " -"drag to the desired location of the lower right corner. If you simply click " -"in a single location, a square box will be created. To change properties of " -"the box object, see ." +"You can run gLabels from a command line and open a single file or " +"multiple files. To open multiple files from a command line, type the " +"following command, then press Return:" msgstr "" -"Klicken Sie auf die gewünschte Stelle für die linke obere Ecke des " -"Rechteckobjekts und ziehen Sie zur gewünschten rechten unteren Ecke. Wenn Sie " -"einfach auf eine Stelle klicken, wird ein quadratisches Objekt erzeugt. Wie " -"Sie die Eigenschaften des Rechteckobjekts ändern können, finden Sie in ." +"Sie können gLabels aus einer Befehlszeile starten und eine Datei " +"oder mehrere Dateien öffnen. Um mehrere Dateien aus einer Befehlszeile zu " +"öffnen, geben Sie den folgenden Befehl ein und drücken dann die " +"Eingabetaste:" -#: C/glabels.xml:575(term) C/glabels.xml:1149(guilabel) -msgid "Line" -msgstr "Linie" +#: C/multifile.page:33(var) +msgid "file1.glabels file2.glabels file3.glabels" +msgstr "Datei1.glabels Datei2.glabels Datei3.glabels" + +#: C/multifile.page:32(cmd) +msgid "glabels " +msgstr "glabels " -#: C/glabels.xml:577(para) +#: C/multifile.page:36(p) msgid "" -"Click the desired location of one end of the line object and drag to the " -"desired location of the other end. If you simply click in a single location, " -"a diagonal line will be created. To change properties of the line object, see " -"." +"When the application starts, the files that you specify are displayed in " +"separate gLabels windows." msgstr "" -"Klicken Sie auf die gewünschte Stelle für das Ende des Linienobjekts und " -"ziehen Sie zur gewünschten Stelle des anderen Endes. Wenn Sie einfach auf " -"eine Stelle klicken, wird eine diagonale Linie erzeugt. Wie Sie die " -"Eigenschaften des Linienobjekts ändern können, finden Sie in ." - -#: C/glabels.xml:586(term) -msgid "Ellipse" -msgstr "Ellipse" +"Wenn die Anwendung startet, werden die von Ihnen angegebenen Dateien in " +"separaten -gLabels-Fenstern angezeigt." -#: C/glabels.xml:588(para) -msgid "" -"Click the desired location of the upper left corner of the ellipse object and " -"drag to the desired location of the lower right corner. If you simply click " -"in a single location, a circle will be created. To change properties of the " -"ellipse object, see ." -msgstr "" -"Klicken Sie auf die gewünschte Stelle für die linke obere Ecke des " -"Ellipsenobjekts und ziehen Sie zur gewünschten rechten unteren Ecke. Wenn Sie " -"einfach auf eine Stelle klicken, wird ein Kreis erzeugt. Wie Sie die " -"Eigenschaften des Ellipsenobjekts ändern können, finden Sie in ." +#: C/merge.page:9(desc) +msgid "Merge a data source to create multiple documents." +msgstr "Einmischen einer Datenquelle zur Erstellung von Seriendokumenten." -#: C/glabels.xml:597(term) -msgid "Image" -msgstr "Image" +#: C/merge.page:25(title) +msgid "Document merge tutorial" +msgstr "Anleitung zur Dokumentmischung" -#: C/glabels.xml:599(para) +#: C/merge.page:27(p) msgid "" -"Click the desired location of the upper left corner of the image object and " -"drag to the desired location of the lower right corner. If you simply click " -"in a single location, a square will be created. New image objects are " -"initialized with a simple checkerboard image. To change this image, or other " -"properties of the image object, see ." +"Document Merge (sometimes called \"Mail Merge\") is a powerful feature that " +"allows a unique label or card to be printed for each record in an external " +"data source. It is however, the most mis-understood feature of glabels. The following examples will step through a couple of common tasks using " +"the document merge feature." msgstr "" -"Klicken Sie auf die gewünschte Stelle für die linke obere Ecke des " -"Bildobjekts und ziehen Sie zur gewünschten rechten unteren Ecke. Wenn Sie " -"einfach auf eine Stelle klicken, wird ein quadratisches Objekt erzeugt. Neue " -"Bildobjekte erhalten anfänglich ein Schachbrettmuster. Wie Sie dies oder " -"andere Eigenschaften des Bildobjekts ändern können, finden Sie in ." - -#: C/glabels.xml:610(term) -msgid "Barcode" -msgstr "Strichcode" +"Dokumentmischung ist ein mächtiges Funktionsmerkmal, das es Ihnen ermöglicht, " +"ein einzelnes Etikett oder eine einzelne Karte für jeden Datensatz aus einer " +"externen Datenquelle zu erstellen. Es ist allerdings die am häufigsten " +"missverstandene Funktion in glabels. Die folgenden Beispiele " +"führen Sie schrittweise durch viele der Aufgaben, die Sie mit der " +"Dokumentmischung ausführen können." -#: C/glabels.xml:612(para) -msgid "" -"Click the desired location of the upper left corner of the barcode object. " -"New barcode objects are initialized to a POSTNET barcode with representative " -"data. To change data and properties of the barcode object, see ." -msgstr "" -"Klicken Sie auf die gewünschte Stelle für die linke obere Ecke des " -"Strichcodeobjekts und ziehen Sie zur gewünschten rechten unteren Ecke. Neue " -"Objekte erhalten anfänglich einen POSTNET-Strichcode mit Beispieldaten. Wie " -"Sie die Eigenschaften des Strichcodeobjekts ändern können, finden Sie in " -"." +#: C/mergefeatures.page:9(desc) +msgid "What you may expect from a document merge." +msgstr "Was Sie von einer Dokumentmischung erwarten können." -#: C/glabels.xml:627(title) -msgid "To Select Objects" -msgstr "Auswählen von Objekten" +#: C/mergefeatures.page:25(title) +msgid "Performing a document merge" +msgstr "Ausführung einer Dokumentmischung" -#: C/glabels.xml:629(para) +#: C/mergefeatures.page:27(p) msgid "" -"A prerequisite for performing operations on objects is the selection of " -"individual objects or groups of objects. The display area must be in the " -"object selection mode to create new selections, as indicated by an arrow " -"cursor. The object selection mode is selected by the " -"ObjectsSelect Mode menu item, or the corresponding command on the Drawing " -"Toolbar." +"Document Merge (sometimes called \"Mail Merge\") is a powerful feature that " +"allows a unique label or card to be printed for each record in an external " +"data source." msgstr "" -"Eine Voraussetzung zum Ausführen von Operationen auf Objekten ist die Auswahl " -"individueller Objekte oder Gruppen von Objekten. Der Anzeigebereich muss sich " -"im Objektauswahlmodus befinden, was durch einen pfeilförmigen Mauszeiger " -"angezeigt wird. Der Objektauswahlmodus wird über den Menüeintrag " -"ObjekteAuswahlmodus aktiviert oder über das entsprechende Objekt in der " -"Zeichenwerkzeugleiste." - -#: C/glabels.xml:642(term) -msgid "Selecting a single object" -msgstr "Auswahl eines einzelnen Objekts" +"Dokumentmischung ist ein mächtiges Funktionsmerkmal, das es Ihnen ermöglicht, " +"ein einzelnes Etikett oder eine einzelne Karte für jeden Datensatz aus einer " +"externen Datenquelle zu erstellen." -#: C/glabels.xml:644(para) +#: C/mergefeatures.page:31(p) msgid "" -"A single object can be selected simply by clicking on the desired object in " -"the display area. Once selected the object will be highlighted with a set of " -"resizing handles." +"The first step to performing a document merge is to prepare a source document " +"that contains your merge data. This data could be mailing addresses or any " +"other data that you wish to create unique labels or cards for. Currently back-" +"ends only exist for text files and the evolution data server -- others are " +"planned. The currently supported text-file format is very simple: each line " +"is a record; fields are delimited by commas (CSV), tabs, or colons; and " +"newlines can be embedded into fields by using the \"\\n\" entity. This file " +"could be created using any text editor or could be created by another program " +"or script. A common way of creating CSV files is to export them from a " +"spreadsheet program." msgstr "" -"Ein einzelnes Objekt können Sie auswählen, indem Sie das gewünschte Objekt im " -"Anzeigebereich anklicken. Nach dem Anklicken wird das Objekt durch " -"Anfasspunkte zur Größenänderung hervorgehoben." - -#: C/glabels.xml:652(term) -msgid "Aggregate object selections" -msgstr "Auswahl mehrerer Objekte" +"Der erste Schritt zur Ausführung einer Dokumentmischung ist die Vorbereitung " +"eines Quelldokuments, welches die Daten zum Mischen enthält. Diese Daten " +"können aus E-Mail-Adressen oder anderen Daten bestehen, aus denen Sie die " +"einzelnen Etiketten oder Karten erstellen wollen. Gegenwärtig können als " +"Datenquellen entweder Textdateien oder die Daten des Evolution-Adressbuchs " +"verwendet werden, andere sind bereits in Planung. Das derzeit unterstützte " +"Textformat ist recht einfach: Jede Zeile stellt einen Datensatz dar, wobei " +"die einzelnen Felder durch Kommata (CSV), Tabulatoren oder Semikola getrennt " +"werden. Neue Zeilen werden durch einen Zeilenumbruch »\\n« erzeugt. Diese " +"Datei kann mit einem Texteditor, einem anderen Programm oder einem Skript " +"erstellt werden. Ein üblicher Weg der Erstellung ist der Export einer CSV-" +"Datei aus einer Tabellenkalkulation." -#: C/glabels.xml:654(para) +#: C/mergefeatures.page:43(p) msgid "" -"Multiple objects can be selected by first selecting the first object as above " -"and then by holding the Ctrl key while selecting additional " -"objects. Individual objects can be added to an existing selection at any time " -"by holding the Ctrl key while selecting the desired objects. " -"All objects can also be selected by using the EditSelect All menu item. All " -"objects in an aggregate object selection will be highlighted." +"A label must then be configured to \"point at\" this data file. To configure " +"the merge properties of a document, choose ObjectsMerge Properties menu item to display the merge " +"properties dialog. This dialog is used to select the exact data file " +"format and file name (location) of the merge data." msgstr "" -"Sie können mehrere Objekte auswählen, indem Sie zunächst das erste Objekt " -"auswählen, wie oben beschrieben. Halten Sie dann bei der Auswahl weiterer " -"Objekte die Strg-Taste gedrückt. Zusätzliche Objekte können " -"Sie jederzeit zur Auswahl hinzufügen, wenn Sie wiederum die Strg-Taste gedrückt halten und die gewünschten Objekte auswählen. Alle " -"Objekte lassen sich über den Menüeintrag BearbeitenAlle auswählen auswählen. " -"Alle Objekte in einer zusammenhängenden Objektauswahl werden hervorgehoben " -"dargestellt." - -#: C/glabels.xml:668(term) -msgid "Area selections" -msgstr "Bereichsauswahl" +"Ein Etikett muss erstellt werden, das auf diese Datenquelle »zeigt«. Um die " +"Mischeigenschaften für ein Dokument festzulegen, wählen Sie " +"ObjekteMischeinstellungen. Der Dialog " +"Mischeigenschaften wird geöffnet. In diesem Dialog wählen Sie das " +"genaue Dateiformat und den Dateinamen (den Ort) der einzumischenden Daten aus." -#: C/glabels.xml:670(para) +#: C/mergefeatures.page:51(p) msgid "" -"Multiple objects can also be selected by clicking an empty area and dragging " -"to form a rectangular area. When released, all objects contained in the area " -"will form an aggregate selection. An area selection can be used to add to an " -"existing selection by holding the Ctrl key while performing " -"the selection." +"Finally, once the label has been configured for a data file, field keys can " +"be inserted into text objects and used as source or data for barcode objects " +"and image filenames for image objects. See for more " +"information on using merge data for these object types." msgstr "" -"Sie können auch mehrere Objekte auswählen, indem Sie in einen leeren Bereich " -"klicken und mit der Maus die Form eines Rechtecks aufziehen. Daraufhin bilden " -"alle Objekte in diesem Bereich eine zusammenhängende Auswahl. Eine " -"Bereichsauswahl kann zum Hinzufügen einer vorhandenen Auswahl benutzt werden, " -"wenn Sie bei der Auswahl die Strg-Taste gedrückt halten." - -#: C/glabels.xml:680(term) -msgid "Unselecting objects" -msgstr "Auswahl von Objekten aufheben" +"Zum Schluss, sobald das Etikett für die Datenquelle eingerichtet wurde, " +"können die Feldschlüssel in Textobjekte eingefügt werden, um sie als " +"Datenquelle für Strichcodeobjekte oder Bilder für Bildobjekte zu verwenden. " +"Weitere Informationen über die Verwendung der Mischdaten für diese " +"Objekttypen finden Sie in ." -#: C/glabels.xml:682(para) +#: C/mergefeatures.page:57(p) msgid "" -"Individual objects can be removed from an existing selection by holding the " -"Ctrl key while clicking on a previously selected object. An " -"entire selection can be dismissed by using the EditUn-select All menu item or by " -"simply clicking any empty space in the display area. Once an object is " -"unselected its highlight is removed." +"Now that your label is configured, gLabels will print a unique " +"label for each record in your source document -- substituting fields from " +"each record for field keys in the all text, barcode, and image objects." msgstr "" -"Sie können individuelle Objekte aus einer vorhandenen Auswahl entfernen, wenn " -"Sie beim Klicken auf ein zuvor ausgewähltes Objekt die Strg-" -"Taste gedrückt halten. Die gesamte Auswahl können Sie rückgängig machen, " -"indem Sie im Menü BearbeitenAlle " -"Markierungen löschen wählen. Sobald ein Objekt " -"nicht mehr ausgewählt ist, wird es nicht mehr hervorgehoben dargestellt." - -#: C/glabels.xml:699(title) -msgid "Clipboard Commands" -msgstr "Befehle für die Zwischenablage" +"Da Ihr Etikett nun konfiguriert ist, druckt gLabels genau ein " +"Etikett für jeden Datensatz des Quelldokuments, wobei alle Text-, Bild- und " +"Strichcode-Objekte durch die Einträge der Felder jedes Datensatzes ersetzt " +"werden." -#: C/glabels.xml:701(para) +#: C/mergefeatures.page:62(p) msgid "" -"Object selections can be manipulated using the standard clipboard operations " -"Cut, Copy, " -"Paste, and Delete." +"See for a detailed tutorial on the document merge " +"feature." msgstr "" -"Objektauswahlen können durch die Standardoperationen der Zwischenablage " -"Ausschneiden, Kopieren, " -"Einfügen und Löschen " -"manipuliert werden." +"In finden Sie eine ausführliche Anleitung für dieses " +"Funktionsmerkmal." -#: C/glabels.xml:712(keycap) C/glabels.xml:728(keycap) -#: C/glabels.xml:744(keycap) -msgid "Ctrl" -msgstr "Strg" +#: C/merge-ex4.page:9(desc) +msgid "Create address labels from a vCard file." +msgstr "Erstellen von Adressetiketten aus einer vCard-Datei." -#: C/glabels.xml:712(keycap) -msgid "X" -msgstr "X" +#: C/merge-ex4.page:25(title) +msgid "Example 4: Address Labels Using a vCard file" +msgstr "Beispiel 4: Adressetiketten unter Nutzung einer vCard-Datei" -#: C/glabels.xml:714(guimenuitem) -msgid "Cut" -msgstr "Ausschneiden" +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/merge-ex3.page:53(None) +#, fuzzy +msgid "@@image: 'figures/merge-ex3-1.png'; md5=fb5bf719857fb0a49517ecb50124384d" +msgstr "translated" -#: C/glabels.xml:718(para) -msgid "" -"Moves selected objects to the clipboard. The objects are then available for " -"pasting back into the current document or another document." -msgstr "" -"Verschiebt die ausgewählten Objekte in die Zwischenablage. Diese Objekte sind " -"dann verfügbar, um später in das aktuelle Dokument oder ein anderes Dokument " -"eingefügt zu werden." +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/merge-ex3.page:74(None) +#, fuzzy +msgid "@@image: 'figures/merge-ex3-2.png'; md5=28a15319cea58be75ff789c766dc0717" +msgstr "translated" -#: C/glabels.xml:728(keycap) -msgid "C" -msgstr "C" +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/merge-ex3.page:88(None) +#, fuzzy +msgid "@@image: 'figures/merge-ex3-3.png'; md5=443d59a44d8ddf5580087a772d4e3eec" +msgstr "translated" -#: C/glabels.xml:730(guimenuitem) -msgid "Copy" -msgstr "Kopieren" +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/merge-ex3.page:99(None) +#, fuzzy +msgid "@@image: 'figures/merge-ex3-4.png'; md5=1995114757cccebda45b686caeb37fa7" +msgstr "translated" -#: C/glabels.xml:734(para) +#: C/merge-ex3.page:9(desc) msgid "" -"Copies selected objects to the clipboard without deleting them. The objects " -"are then available for pasting back into the current document or another " -"document." +"Create address labels from the Evolution address book entries." msgstr "" -"Kopiert die ausgewählten Objekte in die Zwischenablage, ohne sie zu " -"entfernen. Diese Objekte sind dann verfügbar, um später in das aktuelle " -"Dokument oder ein anderes Dokument eingefügt zu werden." - -#: C/glabels.xml:744(keycap) -msgid "V" -msgstr "V" +"Erstellung von Adressetiketten unter Nutzung des Evolution-" +"Adressbuchs." -#: C/glabels.xml:746(guimenuitem) -msgid "Paste" -msgstr "Einfügen" +#: C/merge-ex3.page:25(title) +msgid "Example 3: Address Labels Using the Evolution Addressbook" +msgstr "" +"Beispiel 3: Adressetiketten unter Nutzung des Evolution-Adressbuchs" -#: C/glabels.xml:750(para) +#: C/merge-ex3.page:27(p) msgid "" -"Pastes objects from the clipboard into the current document. " -"gLabels can only paste objects from another " -"gLabels document." +"Our last party was a great success, and now we need to print mailing address " +"labels for the invitations to a new one. To simplify this, we can use the " +"Evolution addressbook, because the address data of all our friends " +"is stored there." msgstr "" -"Fügt Objekte aus der Zwischenablage in das aktuelle Dokument ein. " -"gLabels kann nur Objekte aus anderen " -"gLabels-Dokumenten einfügen." +"Ihre letzte Party war ein voller Erfolg. Nun benötigen Sie wieder " +"Adressetiketten für die Einladungen zu einer neuen Party. Um dies zu " +"vereinfachen, können Sie das Evolution-Adressbuch nutzen, denn die " +"Adressdaten aller Ihrer Freunde sind dort gespeichert." + +#: C/merge-ex3.page:33(p) +msgid "" +"Depending on how your copy of gLabels was packaged, this option " +"could be unavailable. Support for the Evolution addressbook will " +"only be available if the evolution-data-server and its development " +"files were present when gLabels was built. Please keep this in " +"mind if you build gLabels directly from source." +msgstr "" +"Abhängig davon, wie Ihr gLabels-Paket erstellt wurde, könnte diese " +"Option nicht verfügbar sein. Die Unterstützung für das Adressbuch von " +"Evolution ist nur dann vorhanden, wenn evolution-data-server und dessen Entwicklerdateien zum Zeitpunkt der Erstellung von " +"gLabels verfügbar waren. Bitte denken Sie auch daran, wenn Sie " +"gLabels direkt aus den Quellen erstellen." + +#: C/merge-ex3.page:39(p) +msgid "" +"If the gLabels package from your distribution lacks this support, " +"you may wish to contact the package maintainer or file a bug against the " +"package to request it." +msgstr "" +"Falls das gLabels-Paket Ihrer Distribution diese Unterstützung " +"nicht bieten sollte, kontaktieren Sie bitte den Ersteller des Pakets oder " +"senden Sie einen Fehlerbericht, um dies einzufordern." + +#: C/merge-ex3.page:44(p) +msgid "" +"In glabels we have created a new gLabels document using " +"the Avery 5512 \"Address Labels\" template. Next we use the " +"ObjectsMerge Properties menu item to " +"display the Merge properties dialog. We use this dialog to select " +"the source type (in our case Data from default Evolution addressbook) as shown." +msgstr "" +"In glabels haben Sie ein neues Dokument unter Verwendung der " +"Dokumentvorlage »Avery 5512 Adressetiketten« erzeugt. Zunächst öffnen Sie " +"mittels ObjekteMischeinstellungen den " +"Dialog Mischeinstellungen. In diesem Dialog wählen Sie wie gezeigt " +"die Datenquelle aus, in diesem Fall CSV, sowie die Mischquelle (Dateiname)." + +#: C/merge-ex3.page:54(p) C/merge-ex2.page:53(p) C/merge-ex1.page:51(p) +msgid "Merge properties dialog" +msgstr "Mischeinstellungen-Dialog" -#: C/glabels.xml:760(keycap) C/glabels.xml:762(guimenuitem) -msgid "Delete" -msgstr "Löschen" +#. ==== End of Figure ==== +#: C/merge-ex3.page:58(p) +msgid "" +"Once we have chosen Data from default Evolution addressbook as " +"our merge source, we will get a full list of its content. Initially, all " +"entries are checked. Assuming we were planning a really big party, we could " +"leave this selection untouched (but let's keep our budget in mind). We will " +"now select or unselect certain entries by clicking on the appropriate " +"checkboxes, or we could use the Select all and Unselect all buttons to activate or deactivate all entries in the address book." +msgstr "" +"Sobald Sie Daten aus dem vorgegebenen Evolution-Adressbuch als " +"Mischquelle gewählt haben, erhalten Sie eine vollständige Liste mit dessen " +"Inhalt. Anfänglich sind alle Einträge ausgewählt. Angenommen, Sie planen eine " +"wirklich große Party, können Sie die Auswahl unverändert belassen. Behalten " +"Sie jedoch dabei Ihre finanziellen Möglichkeiten im Auge. Sie können " +"bestimmte Einträge auswählen oder wieder abwählen, indem Sie die " +"entsprechenden Ankreuzfelder anklicken. Alternativ können Sie durch Anklicken " +"der Knöpfe Alle markieren oder Markierung aufheben alle " +"Einträge des Adressbuchs aktivieren oder deaktivieren. " -#: C/glabels.xml:766(para) -msgid "Deletes selected objects without placing them on the clipboard." +#: C/merge-ex3.page:66(p) +msgid "" +"We can also view each entry in more detail by clicking on the appropriate " +"expander (the little triangles) as shown. Once we are satisfied with the " +"selections in this dialog, we will click the OK button to accept " +"the changes." msgstr "" -"Entfernt die ausgewählten Objekte, ohne sie in die Zwischenablage zu " -"verschieben." - -#: C/glabels.xml:777(title) -msgid "To Edit Object Properties" -msgstr "Bearbeiten der Objekteigenschaften" +"Sie können jeden Datensatz detailliert betrachten, indem Sie auf die kleinen " +"Dreiecke klicken. Sobald Sie mit der Auswahl zufrieden sind, klicken Sie auf " +"OK, um die Änderungen anzuwenden." -#: C/glabels.xml:779(para) -msgid "" -"Most object properties can be modified through the object editor sidebar, " -"illustrated below. To use the object editor, a single object must first be " -"selected. See ." +#: C/merge-ex3.page:71(p) C/merge-ex2.page:67(p) C/merge-ex1.page:60(p) +msgid "Now we start adding objects to our glabels document as shown." msgstr "" -"Die meisten Objekteigenschaften können Sie über die Objekteditor-Seitenleiste " -"verändern, wie unten illustriert. Um den Objekteditor zu verwenden, muss " -"zunächst ein einzelnes Objekt ausgewählt werden. Siehe ." +"Nun beginnen wir mit dem Hinzufügen von Objekten zu unserem gLabels-Dokument, wie gezeigt." -#: C/glabels.xml:786(title) -msgid "Object Editor Sidebar" -msgstr "Objekteditor-Seitenleiste" +#: C/merge-ex3.page:75(p) C/merge-ex2.page:71(p) C/merge-ex1.page:64(p) +msgid "Adding objects" +msgstr "Hinzufügen von Objekten" #. ==== End of Figure ==== -#: C/glabels.xml:797(para) +#: C/merge-ex3.page:79(p) msgid "" -"The object editor will contain a subset of the following tabbed sections, " -"depending on object type:" +"In this example we have a single text object again. This text object contains " +"all of our merge fields organized on multiple lines as a mailing address." msgstr "" -"Der Objekteditor bietet eine Auswahl der folgenden Reiter, abhängig vom " -"Objekttyp:" - -#: C/glabels.xml:801(title) -msgid "Text Tabbed Section (Text objects)" -msgstr "Text-Reiter (Textobjekte)" +"In diesem Beispiel haben Sie ein einzelnes Textobjekt. Dieses Textobjekt " +"enthält alle Einmischfelder, angeordnet in mehreren Zeilen wie eine " +"Versandadresse." -#: C/glabels.xml:803(para) +#: C/merge-ex3.page:82(p) msgid "" -"This section contains a small editor for changing the content of a text " -"object. It also contains a dropdown menu of available document merge keys, " -"that can be inserted into text." +"Now we can print our address labels by selecting the FilePrint menu item. This will display the print dialog " +"as shown below." msgstr "" -"Dieser Abschnitt bietet einen kleinen Editor zum Bearbeiten des Inhalts eines " -"Textobjekts. Weiterhin ist ein Ausklappmenü mit den verfügbaren Schlüsseln " -"zur Dokumentmischung enthalten, die in den Text eingefügt werden können." +"Nun können Sie Ihre Adressetiketten drucken, indem Sie DateiDrucken wählen. Der unten angezeigte Druckdialog wird " +"geöffnet." -#: C/glabels.xml:810(title) -msgid "Image Tabbed Section (Image objecs)" -msgstr "Bild-Reiter (Bild-Objekte)" +#: C/merge-ex3.page:89(p) C/merge-ex2.page:89(p) +msgid "Printing address labels" +msgstr "Adressetiketten drucken" -#: C/glabels.xml:812(para) +#. ==== End of Figure ==== +#: C/merge-ex3.page:93(p) C/merge-ex2.page:93(p) C/merge-ex1.page:89(p) msgid "" -"This section contains a file entry with preview to select image files. The " -"browse button can be used to easily locate image files. Alternatively, a " -"document merge key can be used instead to provide a filename at print time." +"Just to make sure our labels are going to look okay, we select the Print " +"outlines option and click Print Preview. This will display a " +"print preview dialog as shown below." msgstr "" -"Dieser Abschnitt enthält einen Dateiwähler mit Vorschau zur Auswahl von " -"Bilddateien. Der »Durchsuchen«-Knopf kann zum Suchen von Bilddateien benutzt " -"werden. Alternativ können Sie einen Schlüssel zur Dokumenteinmischung " -"anstelle eines Dateinamens angeben, der bei der Ausgabe des Dokuments ersetzt " -"wird." +"Um sicher zu stellen, dass Ihre Etiketten gut aussehen, wählen Sie die Option " +"Begrenzungen drucken und klicken auf Druckvorschau. Der " +"Druckvorschaudialog wird geöffnet, wie unten angezeigt." -#: C/glabels.xml:820(title) -msgid "Data Tabbed Section (Barcode objecs)" -msgstr "Daten-Reiter (Strichcode-Objekte)" +#: C/merge-ex3.page:100(p) +msgid "Addess labels preview" +msgstr "Adressetiketten-Vorschau" -#: C/glabels.xml:822(para) +#. ==== End of Figure ==== +#: C/merge-ex3.page:104(p) C/merge-ex2.page:104(p) msgid "" -"This section contains a text entry to enter literal barcode data. " -"Alternatively, a document merge key can be used to provide this data at print " -"time." +"Everything looks good, so we can now load up our printer with the appropriate " +"label stock, print our address labels and start mailing our party invitations." msgstr "" -"Dieser Abschnitt enthält ein Textfeld zur Eingabe von Strichcode-Daten. " -"Alternativ kann hier ein Schlüssel zur Dokumentmischung eingetragen werden, " -"der beim Druck für die Bereitstellung der richtigen Daten sorgt." +"Alles sieht gut aus, also können wir jetzt den Drucker mit den entsprechenden " +"Etiketten bestücken, die Adressetiketten drucken und die Einladungen zur " +"Party versenden." -#: C/glabels.xml:829(title) -msgid "Style Tabbed Section (Text objects)" -msgstr "Stil-Reiter (Text-Objekte)" +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/merge-ex2.page:52(None) +#, fuzzy +msgid "@@image: 'figures/merge-ex2-1.png'; md5=c9db139c5b7188e101470dc74684a118" +msgstr "translated" -#: C/glabels.xml:831(para) -msgid "" -"This section contains controls to select text properties, including font " -"family, font size, font weight, color, and text justification." -msgstr "" -"Dieser Abschnitt enthält Einstellmöglichkeiten für die Texteigenschaften, wie " -"Schriftfamilie, Schriftgröße, Schriftstärke, Schriftfarbe und Ausrichtung des " -"Texts." +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/merge-ex2.page:70(None) +#, fuzzy +msgid "@@image: 'figures/merge-ex2-2.png'; md5=240b4e4ebaa270e0e8bf84c5bfd7233e" +msgstr "translated" -#: C/glabels.xml:838(title) -msgid "Style Tabbed Section (Barcode objecs)" -msgstr "Stil-Reiter (Strichcode-Objekte)" +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/merge-ex2.page:88(None) +#, fuzzy +msgid "@@image: 'figures/merge-ex2-3.png'; md5=c347460091d8eef9f4ec89557fa9f1e2" +msgstr "translated" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/merge-ex2.page:99(None) +#, fuzzy +msgid "@@image: 'figures/merge-ex2-4.png'; md5=30d12e946a79e27211b835e38742671c" +msgstr "translated" -#: C/glabels.xml:840(para) +#: C/merge-ex2.page:9(desc) +msgid "Create address labels from a CSV file." +msgstr "Erstellen von Adressetiketten aus den Daten einer CSV-Datei." + +#: C/merge-ex2.page:25(title) +msgid "Example 2: Address labels" +msgstr "Beispiel 2: Adressetiketten" + +#: C/merge-ex2.page:27(p) msgid "" -"This section contains controls to select barcode properties, including " -"barcode style, color, whether to print text, and whether to include a " -"checksum digit." +"In this example we are going to throw a party and need to print mailing " +"address labels for our invitations. We have a list of our closest friends " +"that we created in gnumeric and exported as the following CSV " +"file. It should be noted that not everyone has a middle initial or a two line " +"address." msgstr "" -"Dieser Abschnitt enthält Einstellmöglichkeiten für die Eigenschaften des " -"Strichcodes, wie Stil, Farbe, Drucken von Text oder Beinhalten einer " -"Prüfsumme." +"In diesem Beispiel planen Sie eine Party. Dafür benötigen Sie Adressetiketten " +"für die Einladungen. Sie haben eine Liste Ihrer besten Freunde in " +"gnumeric erstellt, die Sie in die folgende CSV-Datei exportiert " +"haben. Es ist zu beachten, dass nicht jeder einen zweiten Vornamen oder eine " +"zweizeilige Adresse hat." -#: C/glabels.xml:847(title) -msgid "Line Tabbed Section" -msgstr "Linie-Reiter" +#: C/merge-ex2.page:33(code) +#, no-wrap +msgid "" +"\n" +"LAST,FIRST,MI,ADDR1,ADDR2,CITY,STATE,ZIP\n" +",,,,,,,\n" +"Critter,Ess,S,\"123 Faux St.\",,Alexandria,VA,22310\n" +"Doe,John,,\"Apt 1X\",\"451 Mystery St.\",Trenton,NJ,08601\n" +"Summers,Joyce,,\"1630 Revello Dr\",,Sunnydale,CA,95037\n" +"McGarret,Steve,O,\"404 Piikoi Street\",,Honolulu,HI,96813\n" +"Kramer,Cosmo,,\"Apt 5B\",\"129 W. 81 St.\",\"New York\",NY,10024-7207\n" +" " +msgstr "" +"\n" +"LAST,FIRST,MI,ADDR1,ADDR2,CITY,STATE,ZIP\n" +",,,,,,,\n" +"Critter,Ess,S,\"123 Faux St.\",,Alexandria,VA,22310\n" +"Doe,John,,\"Apt 1X\",\"451 Mystery St.\",Trenton,NJ,08601\n" +"Summers,Joyce,,\"1630 Revello Dr\",,Sunnydale,CA,95037\n" +"McGarret,Steve,O,\"404 Piikoi Street\",,Honolulu,HI,96813\n" +"Kramer,Cosmo,,\"Apt 5B\",\"129 W. 81 St.\",\"New York\",NY,10024-7207\n" +" " -#: C/glabels.xml:849(para) +#: C/merge-ex2.page:43(p) msgid "" -"This section contains controls to select properties of lines and outlines. " -"These properties include line width and color." +"In glabels we have created a new glabels document using " +"the Avery 5512 \"Address Labels\" template. Next we use the " +"ObjectsMerge Properties menu item to " +"display the merge properties dialog. We use this dialog to select " +"the source type (in our case CSV with keys on line 1) and the merge source " +"(filename) as shown." msgstr "" -"Dieser Abschnitt enthält Einstellmöglichkeiten für die Auswahl von " -"Eigenschaften von Linien und Begrenzungen, wie Linienbreite und -farbe." +"In glabels haben Sie ein neues Dokument unter Verwendung der " +"Dokumentvorlage »Avery 5512 Adressetiketten« erzeugt. Zunächst öffnen Sie " +"mittels ObjekteMischeinstellungen den " +"Dialog Mischeinstellungen. In diesem Dialog wählen Sie wie gezeigt " +"die Datenquelle aus, in diesem Fall »CSV mit Schlüsseln in Zeile 1«, sowie " +"die Mischquelle (Dateiname)." -#: C/glabels.xml:855(title) -msgid "Fill Tabbed Section" -msgstr "Füllung-Reiter" +#. ==== End of Figure ==== +#: C/merge-ex2.page:57(p) +msgid "" +"Before applying the merge source, we uncheck the first record since it only " +"contains empty fields. It is an artifact of our original gnumeric " +"spreadsheet and would simply waste our first label. We could also unselect " +"any other records that we didn't want to print a label for." +msgstr "" +"Bevor Sie eine neue Einmischquelle anwenden, sollten Sie den ersten Datensatz " +"deaktivieren, weil dieser nur Spaltenköpfe aus der originalen gnumeric-Tabelle enthält. Dadurch würde nur das erste Etikett verschwendet. " +"Weiterhin können Sie alle anderen Datensätze entfernen, die Sie nicht für ein " +"Etikett verwenden wollen." -#: C/glabels.xml:857(para) +#. ==== End of Figure ==== +#: C/merge-ex2.page:62(p) C/merge-ex1.page:55(p) msgid "" -"This section contains controls to select fill properties of box and ellipse " -"objects. Currently the only fill property is fill color." +"We can also view each record in more detail by clicking on the appropriate " +"expander (the little triangles) as shown. Once we are satisfied with the " +"selections in this dialog we click OK to accept the changes." msgstr "" -"Dieser Abschnitt enthält Einstellmöglichkeiten für die Auswahl der " -"Füllungseigenschaften von Rechteck- und Ellipsenobjekten. Derzeit ist nur die " -"Einstellung der Füllungsfarbe möglich." +"Sie können jeden Datensatz detailliert betrachten, indem Sie auf die kleinen " +"Dreiecke klicken. Sobald Sie mit der Auswahl zufrieden sind, klicken Sie auf " +"OK, um die Änderungen anzuwenden." -#: C/glabels.xml:864(title) -msgid "Size Tabbed Section (All except line objects)" -msgstr "Reiter »Größe« (alle außer Linienobjekte)" +#. ==== End of Figure ==== +#: C/merge-ex2.page:75(p) +msgid "" +"In this example we have a single text object. This text object contains all " +"of our merge fields organized on multiple lines as a mailing address. Notice " +"that fields ${ADDR1} and ${ADDR2} are each located with no other text on " +"their own lines. When glabels encounters a field as the only text " +"on a line, it will not expand the line if the field is empty." +msgstr "" +"In diesem Beispiel haben Sie ein einzelnes Textobjekt. Dieses Textobjekt " +"enthält alle Einmischfelder, angeordnet in mehreren Zeilen wie eine " +"Versandadresse. Beachten Sie, dass die Felder ${ADDR1} und ${ADDR2} jeweils " +"keinen weiteren Text in deren Zeilen enthalten. Wenn glabels ein " +"solches Feld als »nur Text« in einer Zeile erkennt, wird die Zeile nicht " +"expandiert, falls das Feld leer ist." -#: C/glabels.xml:866(para) +#: C/merge-ex2.page:82(p) msgid "" -"This section contains controls to select the width and height of an object. A " -"checkbox is provided, so that the current aspect ratio can be locked while " -"manipulating the width and height controls. Image objects also provide a " -"button to reset the size to the image's natural size (Assumes 72DPI)." +"Now we can print our address labels by selecting the FilePrint menu item. This will display print dialog as " +"shown below." msgstr "" -"Dieser Abschnitt enthält Einstellmöglichkeiten für die Höhe und die Breite " -"eines Objekts. Mit einem Ankreuzfeld können Sie die Werte aneinander koppeln, " -"so dass das Seitenverhältnis beim Ändern der Höhe oder Breite erhalten " -"bleibt. Für Bildobjekte gibt es außerdem einen Knopf zum Zurücksetzen des " -"Bildes auf Originalgröße, wobei eine Auflösung von 72 dpi angenommen wird." +"Nun können Sie Ihre Adressetiketten drucken, indem Sie DateiDrucken wählen. Der unten angezeigte Druckdialog wird " +"geöffnet." + +#: C/merge-ex2.page:100(p) +msgid "Address labels preview" +msgstr "Adressetiketten-Vorschau" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/merge-ex1.page:50(None) +#, fuzzy +msgid "@@image: 'figures/merge-ex1-1.png'; md5=6e1cda54b797f875f379b657370d87c8" +msgstr "translated" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/merge-ex1.page:63(None) +#, fuzzy +msgid "@@image: 'figures/merge-ex1-2.png'; md5=2ccad04ae5830f5f4a6a601d9fabed6a" +msgstr "translated" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/merge-ex1.page:84(None) +#, fuzzy +msgid "@@image: 'figures/merge-ex1-3.png'; md5=858855ab1a392db74b70cdb2bdb27ddd" +msgstr "translated" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/merge-ex1.page:95(None) +#, fuzzy +msgid "@@image: 'figures/merge-ex1-4.png'; md5=8648ff55dd2e531a1a82b797f0430279" +msgstr "translated" + +#: C/merge-ex1.page:9(desc) +msgid "Create name tags from a CSV file." +msgstr "Namensschilder unter Nutzung einer CSV-Datei." + +#: C/merge-ex1.page:25(title) +msgid "Example 1: Name Tags" +msgstr "Beispiel 1: Namensschilder" + +#: C/merge-ex1.page:27(p) +msgid "" +"In this example we are organizing an orientation party for the new crew " +"members of our ship. We have a list of freshman crew members that we created " +"in gnumeric and exported as the following CSV file. We could have " +"created this file by using a text editor, but heck it is the 23rd century." +msgstr "" +"In diesem Beispiel organisieren Sie eine Orientierungsparty für die neuen " +"Mannschaftsmitglieder Ihres Schiffes. Eine Liste der neuen Mitglieder haben " +"Sie in gnumeric erstellt und in die folgende CSV-Datei exportiert. " +"Sie könnten diese Datei auch in einem Texteditor erstellen, aber schließlich " +"leben wir im 23. Jahrhundert..." + +#: C/merge-ex1.page:33(code) +#, no-wrap +msgid "" +"\n" +"Name,Department,SN\n" +"\"Jim Kirk\",Management,\"SC937-0176 CEC\"\n" +"\"Mr. Spock\",Sciences,S179-276SP\n" +"\"Leonard McCoy\",Medicine,unknown\n" +"\"Montgomery Scott\",Engineering,SE-197-54T\n" +" " +msgstr "" +"\n" +"Name,Department,SN\n" +"\"Jim Kirk\",Management,\"SC937-0176 CEC\"\n" +"\"Mr. Spock\",Sciences,S179-276SP\n" +"\"Leonard McCoy\",Medicine,unknown\n" +"\"Montgomery Scott\",Engineering,SE-197-54T\n" +" " + +#: C/merge-ex1.page:41(p) +msgid "" +"In gLabels we have created a new glabels document using " +"the Avery 5395 \"Name Badge Labels\" template. Next we use the " +"ObjectsMerge Properties menu item to " +"display the merge properties dialog. We use this dialog to select " +"the source type (in our case CSV with keys on line 1) and the merge source " +"(filename) as shown." +msgstr "" +"In glabels haben Sie ein neues Dokument unter Verwendung der " +"Dokumentvorlage »Avery 5395 Namensschild-Etiketten« erzeugt. Zunächst öffnen " +"Sie mittels ObjekteMischeinstellungen " +"den Dialog Mischeinstellungen. In diesem Dialog wählen Sie wie " +"gezeigt die Datenquelle aus, in diesem Fall »CSV mit Schlüsseln in Zeile 1«, " +"sowie die Mischquelle (Dateiname)." + +#. ==== End of Figure ==== +#: C/merge-ex1.page:68(p) +msgid "" +"In this example we have added three text objects and a barcode object. The " +"first text object contains only simple literal text (\"Hello, my name is\"). " +"The second text object contains a single merge field (\"${Name}\") " +"corresponding to the first field of a record (first column of a line) which " +"contains the new crew member's full name. The third text field contains both " +"literal text (\"Department: \") followed by a single merge field " +"(\"${Department}\") corresponding to the second field or the crew member's " +"department. The barcode object is configured to use field (or key) \"SN\" " +"which contains our crew member's starfleet serial number." +msgstr "" +"In diesem Beispiel haben Sie drei Textobjekte und ein Strichcodeobjekt " +"hinzugefügt. Das erste Textobjekt enthält nur einfachen Text (»Hello, my name " +"is«). Das zweite Textobjekt enthält ein einfaches Mischfeld (»${Name}«), " +"welches zum ersten Feld eines Datensatzes (erste Spalte einer Zeile) " +"korrespondiert, die den vollen Namen eines Mannschaftsmitglieds enthält. Das " +"dritte Feld enthält sowohl einfachen Text (»Department:«) als auch ein " +"einzelnes Mischfeld (»${Department:}«), welches zum zweiten Feld oder zum " +"Arbeitsgebiet eines Mannschaftsmitglieds korrespondiert. Das Strichcodefeld " +"ist so eingestellt, das Feld (oder den Schlüssel) »SN« zu verwenden, das die " +"Sternenflotten-Seriennummer des Mannschaftsmitglieds enthält." + +#: C/merge-ex1.page:78(p) +msgid "" +"Now we can print our name tags by selecting the FilePrint menu item. This will display print dialog as " +"shown below." +msgstr "" +"Nun können Sie Ihre Namensschilder drucken, indem Sie DateiDrucken wählen. Der unten angezeigte Druckdialog wird " +"geöffnet." + +#: C/merge-ex1.page:85(p) +msgid "Printing name tags" +msgstr "Drucken der Namensschilder" + +#: C/merge-ex1.page:96(p) +msgid "Name tags preview" +msgstr "Vorschau der Namensschilder" + +#. ==== End of Figure ==== +#: C/merge-ex1.page:100(p) +msgid "" +"Everything looks good, so we can now load up our printer with the appropriate " +"label stock, print our name tags and start beaming our guests aboard." +msgstr "" +"Alles sieht gut aus, also können wir jetzt den Drucker mit den entsprechenden " +"Etiketten bestücken, die Namensschilder drucken und die Gäste an Bord beamen." + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/mancreate.page:340(None) +msgid "" +"@@image: 'figures/glabels-template-rect-label.png'; " +"md5=9c7ae1c1a888e1c9eefd19655d093971" +msgstr "translated" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/mancreate.page:392(None) +msgid "" +"@@image: 'figures/glabels-template-ellipse-label.png'; " +"md5=ba612c86b5fb8fcd2b5384ecc1c331d2" +msgstr "translated" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/mancreate.page:439(None) +msgid "" +"@@image: 'figures/glabels-template-circle-label.png'; " +"md5=841e36a1f92aeed01e8fbaacc67758f1" +msgstr "translated" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/mancreate.page:500(None) +msgid "" +"@@image: 'figures/glabels-template-cd-label.png'; " +"md5=c7952ac1b26ecbfa53facfbbf6486841" +msgstr "translated" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/mancreate.page:762(None) +msgid "" +"@@image: 'figures/glabels-template-layout.png'; " +"md5=fe1c9652d5448b2e0ece086777d3a287" +msgstr "translated" + +#: C/mancreate.page:10(desc) +msgid "Create your templates manually." +msgstr "Erstellen Sie Ihre Vorlagen manuell." + +#: C/mancreate.page:26(title) +msgid "Manually creating new templates" +msgstr "Manuelles Erstellen neuer Vorlagen" + +#. ****************** +#: C/mancreate.page:33(p) +msgid "" +"This page is a reference guide to manually creating gLabels " +"templates. gLabels templates are defined in simple XML files as " +"described in the DTD: glabels-2.3.dtd (this DTD also describes other XML files " +"used by gLabels)." +msgstr "" +"Diese Seite ist eine Referenzanleitung für die manuelle Erstellung von " +"gLabels-Vorlagen. gLabels-Vorlagen sind einfache XML-" +"Dateien, deren Struktur in der folgenden DTD beschrieben ist: glabels-2.3.dtd. " +"Diese DTD beschreibt außerdem weitere von gLabels benutzte XML-" +"Formate." + +#: C/mancreate.page:38(p) +msgid "" +"Manually created template files should be placed in the ${HOME}/." +"glabels and be named with a .template extension." +msgstr "" +"Manuell erstellte Vorlagen sollten in ${HOME}/.glabels " +"gespeichert und mit der Erweiterung .template versehen werden." + +#: C/mancreate.page:42(p) +msgid "" +"gLabels searches for templates in several other locations as " +"defined here:" +msgstr "" +"gLabels sucht an verschiedenen anderen Orten nach Vorlagen, die " +"folgendermaßen definiert werden:" + +#: C/mancreate.page:45(p) +msgid "Location" +msgstr "Ort" + +#: C/mancreate.page:46(p) C/mancreate.page:173(p) C/mancreate.page:237(p) +#: C/mancreate.page:301(p) C/mancreate.page:364(p) C/mancreate.page:415(p) +#: C/mancreate.page:462(p) C/mancreate.page:535(p) C/mancreate.page:562(p) +#: C/mancreate.page:600(p) C/mancreate.page:634(p) C/mancreate.page:676(p) +#: C/mancreate.page:726(p) +msgid "Description" +msgstr "Beschreibung" + +#: C/mancreate.page:53(file) +msgid "${prefix}/share/libglabels-3.0/templates" +msgstr "${prefix}/share/libglabels-3.0/templates" + +#: C/mancreate.page:54(p) +msgid "Predefined templates distributed with gLabels." +msgstr "In gLabels mitgelieferte vordefinierte Vorlagen." + +#: C/mancreate.page:55(p) +msgid "" +"${prefix} is usually /usr or /usr/local, depending on where gLabels was installed." +msgstr "" +"${prefix} ist üblicherweise /usr oder /usr/" +"local, abhängig davon, wo gLabels installiert wurde." + +#: C/mancreate.page:59(file) +msgid "${XDG_CONFIG_HOME}/libglabels/templates" +msgstr "${XDG_CONFIG_HOME}/libglabels/templates" + +#: C/mancreate.page:60(p) +msgid "" +"User defined templates created with the gLabelsTemplate " +"Designer. Do not put manually created templates in this directory." +msgstr "" +"Mit dem Vorlagen-Designer von gLabels erstellte " +"Vorlagen. Legen Sie hier bitte keine manuell erstellten Vorlagen ab." + +#: C/mancreate.page:62(p) +msgid "" +"If ${XDG_CONFIG_HOME} is not defined, it defaults to " +"${HOME}/.config." +msgstr "" +"Falls ${XDG_CONFIG_HOME} nicht definiert ist, wird als Vorgabe " +"${HOME}/.config verwendet." + +#: C/mancreate.page:66(file) +msgid "${HOME}/.glabels" +msgstr "${HOME}/.glabels" + +#: C/mancreate.page:67(p) +msgid "" +"User defined templates that have been created manually should be placed in " +"this directory. Older versions of the gLabelsTemplate " +"Designer (prior to 3.0) would also put templates in this directory." +msgstr "" +"Manuell erstellte benutzerdefinierte Vorlagen sollten hier abgelegt werden. " +"Ältere Versionen des Vorlagen-Designers von gLabels " +"(vor 3.0) speichern hier ebenfalls ihre Vorlagen." + +#: C/mancreate.page:75(p) +msgid "" +"Completed template files can be sent to the gLabels template mailing list " +"for possible inclusion in future versions of gLabels." +msgstr "" +"Vollständige Vorlagendateien können Sie an die Vorlagen-Mailingliste von " +"gLabels senden, damit diese in zukünftigen Versionen von " +"gLabels mitgeliefert werden können." + +#: C/mancreate.page:89(title) +msgid "Assumptions/caveats" +msgstr "Voraussetzungen" + +#: C/mancreate.page:92(p) +msgid "" +"A sheet contains only one size of label or card (if a sheet contains more " +"than one size of item, it can be split into multiple templates for multiple " +"pass printing)" +msgstr "" +"Eine Seite enthält nur eine Etiketten- oder Kartengröße. Falls eine Seite " +"mehrere Größen enthält, kann sie für das Drucken in mehreren Durchläufen über " +"mehrere Vorlagen verteilt werden." + +#: C/mancreate.page:97(p) +msgid "" +"Distances can be expressed in units of pt, " +"in, mm, cm, or pc. For example: " +"\"1.0in\" or \"2.54cm\". If no units are specified, computer points (pt) will be assumed (1 pt = 1/72 in = 0.352778 " +"mm)." +msgstr "" +"Abstände können in den Einheiten pt, in, mm, cm oder pc ausgedrückt werden. " +"Beispiel: »1.0in« oder »2.54cm«. Falls keine Einheiten angegeben werden, nimmt der Rechner " +"Punkt an. Ein Punkt (pt) entspricht = 1/72 " +"in = 0.352778 mm." + +#: C/mancreate.page:118(title) +msgid "Template Files" +msgstr "Vorlagedateien" + +#: C/mancreate.page:120(p) +msgid "" +"A template file contains a single Glabels-templates top-level node." +msgstr "" +"Eine Vorlagendatei enthält in der obersten Ebene einen einzelnen Glabels-templates-Knoten." + +#: C/mancreate.page:123(code) +#, no-wrap +msgid "" +"\n" +"<?xml version=\"1.0\"?>\n" +"<Glabels-templates>\n" +"\n" +" ...templates...\n" +"\n" +"</Glabels-templates>" +msgstr "" +"\n" +"<?xml version=\"1.0\"?>\n" +"<Glabels-templates>\n" +"\n" +" ...Vorlagen...\n" +"\n" +"</Glabels-templates>" + +#: C/mancreate.page:132(title) +msgid "Example Template" +msgstr "Beispielvorlage" + +#: C/mancreate.page:133(desc) +msgid "" +"Example gLabels template file containing a single Template node." +msgstr "" +"Beispiel-Vorlagendatei von gLabels, die einen einzelnen Template-Knoten enthält." + +#: C/mancreate.page:135(code) +#, no-wrap +msgid "" +"\n" +"<?xml version=\"1.0\"?>\n" +"<Glabels-templates>\n" +"\n" +" <Template brand=\"Avery\" part=\"8160\" size=\"US-Letter\" description=\"Mailing Labels\">\n" +" <Meta category=\"label\"/>\n" +" <Meta category=\"mail\"/>\n" +" <Meta product_url=\"http://www.avery.com/avery/en_us/\"/>\n" +" <Label-rectangle id=\"0\" width=\"189pt\" height=\"72pt\" round=\"5pt\">\n" +" <Markup-margin size=\"5pt\"/>\n" +" <Layout nx=\"3\" ny=\"10\" x0=\"11.25pt\" y0=\"36pt\" dx=\"200pt\" dy=\"72pt\"/>\n" +" </Label-rectangle>\n" +" </Template>\n" +"\n" +"</Glabels-templates>" +msgstr "" +"\n" +"<?xml version=\"1.0\"?>\n" +"<Glabels-templates>\n" +"\n" +" <Template brand=\"Avery\" part=\"8160\" size=\"US-Letter\" description=\"Mailing Labels\">\n" +" <Meta category=\"label\"/>\n" +" <Meta category=\"mail\"/>\n" +" <Meta product_url=\"http://www.avery.com/avery/en_us/\"/>\n" +" <Label-rectangle id=\"0\" width=\"189pt\" height=\"72pt\" round=\"5pt\">\n" +" <Markup-margin size=\"5pt\"/>\n" +" <Layout nx=\"3\" ny=\"10\" x0=\"11.25pt\" y0=\"36pt\" dx=\"200pt\" dy=\"72pt\"/>\n" +" </Label-rectangle>\n" +" </Template>\n" +"\n" +"</Glabels-templates>" + +#: C/mancreate.page:163(title) +msgid "Template Node" +msgstr "Template-Knoten" + +#: C/mancreate.page:165(p) +msgid "" +"A Template node describes a single stationery " +"product. It must contain one instance of any type of Label node (Label-rectangle, Label-round, or Label-cd)." +msgstr "" +"Ein Template-Knoten beschreibt ein " +"einzelnes Produkt. Es muss eine Instanz eines der anderen Label-Knoten (Label-rectangle, Label-round oder Label-cd) enthalten." + +#: C/mancreate.page:173(p) C/mancreate.page:301(p) C/mancreate.page:364(p) +#: C/mancreate.page:415(p) C/mancreate.page:462(p) C/mancreate.page:535(p) +#: C/mancreate.page:562(p) C/mancreate.page:600(p) C/mancreate.page:634(p) +#: C/mancreate.page:676(p) C/mancreate.page:726(p) +msgid "Property" +msgstr "Eigenschaft" + +#: C/mancreate.page:179(code) +#, no-wrap +msgid "brand" +msgstr "brand" + +#: C/mancreate.page:180(p) +msgid "Brand or manufacturer of stationery product. E.g. \"Avery\"" +msgstr "Marke oder Hersteller des Produkts, z.B. »Avery«" + +#: C/mancreate.page:183(code) +#, no-wrap +msgid "part" +msgstr "part" + +#: C/mancreate.page:184(p) +msgid "Part number or name of stationery product. E.g. \"8160\"" +msgstr "Bestellnummer oder Name des Produkts, z.B. »8160«" + +#: C/mancreate.page:187(code) C/mancreate.page:541(code) +#, no-wrap +msgid "size" +msgstr "size" + +#: C/mancreate.page:188(p) +msgid "" +"Size of sheet. E.g., \"US-Letter\", \"A4\", ..." +msgstr "" +"Größe des Papiers, z.B. »US-Letter«, »A4«, …" + +#: C/mancreate.page:193(code) +#, no-wrap +msgid "description" +msgstr "description" + +#: C/mancreate.page:194(p) +msgid "Description of stationery product. E.g, \"Mailing Labels.\"" +msgstr "Beschreibung des Produkts, z.B. »Mailing Labels«." + +#: C/mancreate.page:197(code) +#, no-wrap +msgid "_description" +msgstr "_description" + +#: C/mancreate.page:198(p) +msgid "" +"Translatable description of stationery product. E.g, \"Mailing Labels." +"\" (Only useful for predefined templates)" +msgstr "" +"Übersetzbare Beschreibung des Produkts, z.B. »Mailing Labels« (nur sinnvoll " +"für vordefinierte Vorlagen)" + +#: C/mancreate.page:202(code) C/mancreate.page:311(code) +#: C/mancreate.page:374(code) C/mancreate.page:480(code) +#, no-wrap +msgid "width" +msgstr "width" + +#: C/mancreate.page:203(p) +msgid "Page width. Only valid if size=\"Other\"" +msgstr "Seitenbreite. Nur gültig, wenn als Größe »Other« festgelegt ist." + +#: C/mancreate.page:206(code) C/mancreate.page:315(code) +#: C/mancreate.page:378(code) C/mancreate.page:485(code) +#, no-wrap +msgid "height" +msgstr "height" + +#: C/mancreate.page:207(p) +msgid "Page height. Only valid if size=\"Other\"" +msgstr "Seitenhöhe. Nur gültig, wenn als Größe »Other« festgelegt ist." + +#: C/mancreate.page:210(code) +#, no-wrap +msgid "equiv" +msgstr "equiv" + +#: C/mancreate.page:211(p) +msgid "" +"Equivalent part number. If this property is present, the template is a clone " +"of another template of the same brand. The template will inherit all " +"properties, except brand and name from the other template. This equiv " +"property must refer to a previously defined template - gLabels " +"does not currently support forward references." +msgstr "" +"Äquivalente Bestellnummer. Falls diese Eigenschaft vorhanden ist, handelt es " +"sich bei dieser Vorlage um eine Kopie einer anderen Vorlage der gleichen " +"Marke. Die Vorlage erbt alle Eigenschaften der anderen Vorlage, ausgenommen " +"die Marke und die Bezeichnung. Die »equiv«-Eigenschaft muss sich auf eine " +"bereits definierte Vorlage beziehen, denn derzeit unterstützt libglabels " +"keine Vorwärtsreferenzen." + +#: C/mancreate.page:229(title) +msgid "Meta Node" +msgstr "Meta-Knoten" + +#: C/mancreate.page:231(p) +msgid "" +"A Meta node contains some additional " +"information about the template. A Template node " +"may contain zero or more Meta nodes." +msgstr "" +"Ein Meta-Knoten enthält eine Reihe zusätzlicher " +"Eigenschaften des jeweiligen Produkts. Ein Template-Knoten kann keinen, einen oder auch mehrere Meta-Knoten enthalten." + +#: C/mancreate.page:237(p) +msgid "Subnode" +msgstr "Unterknoten" + +#: C/mancreate.page:243(code) +#, no-wrap +msgid "category" +msgstr "category" + +#: C/mancreate.page:244(p) +msgid "" +"A category for the template. A template can belong to multiple categories by " +"simply adding multiple Meta nodes to the parent " +"Template node. Template categories are used by " +"the gLabelsNew Label Dialog to filter the results of " +"template searches." +msgstr "" +"Die Kategorie, der dieses Produkt zugeordnet ist. Eine Vorlage kann mehreren " +"Kategorien zugeordnet werden, indem einfach mehrere Meta-Knoten zum übergeordneten Template-Knoten hinzugegügt werden. Die Werte dieser Kategorien werden von der " +"Vorlagenauswahl in gLabels verwendet, um die Ansicht " +"beispielsweise auf die Darstellung von Etiketten zu beschränken oder anders " +"ausgedrückt, Etiketten allgemein anzuzeigen und die Anzeige anderer Produkte " +"zu unterdrücken, an denen der Benutzer im jeweiligen Fall nicht interessiert " +"ist." + +#: C/mancreate.page:251(p) +msgid "" +"The value of this category must match a predefined category ID defined in the " +"file ${prefix}/libglabels-3.0/templates/categories.xml. " +"Currently defined category IDs include:" +msgstr "" +"Der Wert dieser Kategorie muss einem der in der Datei ${prefix}/" +"libglabels-3.0/templates/categories.xml vordefinierten Werte " +"entsprechen. Derzeit stehen folgende Kategorien zur Verfügung:" + +#: C/mancreate.page:255(code) +#, no-wrap +msgid "label" +msgstr "label" + +#: C/mancreate.page:256(code) +#, no-wrap +msgid "round-label" +msgstr "round-label" + +#: C/mancreate.page:257(code) +#, no-wrap +msgid "elliptical-label" +msgstr "elliptical-label" + +#: C/mancreate.page:258(code) +#, no-wrap +msgid "square-label" +msgstr "square-label" + +#: C/mancreate.page:259(code) +#, no-wrap +msgid "rectangle-label" +msgstr "rectangle-label" + +#: C/mancreate.page:260(code) +#, no-wrap +msgid "card" +msgstr "card" + +#: C/mancreate.page:261(code) +#, no-wrap +msgid "business-card" +msgstr "business-card" + +#: C/mancreate.page:262(code) +#, no-wrap +msgid "media" +msgstr "media" + +#: C/mancreate.page:263(code) +#, no-wrap +msgid "mail" +msgstr "mail" + +#: C/mancreate.page:264(code) +#, no-wrap +msgid "foldable" +msgstr "foldable" + +#: C/mancreate.page:265(code) +#, no-wrap +msgid "photo" +msgstr "photo" + +#: C/mancreate.page:272(code) +#, no-wrap +msgid "product_url" +msgstr "product_url" + +#: C/mancreate.page:273(p) +msgid "" +"A URL pointing to the vendor's webpage for the specific product, if available." +msgstr "" +"Diese Adresse leitet auf die Webseite des Anbieters weiter. Idealerweise ist " +"dies die Adresse genau dieses Produkts, falls diese verfügbar ist." + +#: C/mancreate.page:277(p) +msgid "" +"Suggestions for additional categories can be sent to the gLabels " +"developer's mailing " +"list." +msgstr "" +"Falls Sie Ideen für neue Kategorien haben, senden Sie Ihre Vorschläge bitte " +"an die Mailingliste der gLabels-Entwickler." + +#: C/mancreate.page:280(p) +msgid "Product URLs may be of limited use, because they may not be permanent." +msgstr "" +"Produktadressen sind oft nur begrenzt gültig, das sich diese auch ändern " +"können." + +#: C/mancreate.page:293(title) +msgid "Label-rectangle Node" +msgstr "Label-rectangle-Knoten" + +#: C/mancreate.page:295(p) +msgid "" +"A Label-rectangle node describes the dimensions " +"of a single label or business card that is rectangular in shape (may have " +"rounded edges)." +msgstr "" +"Ein Label-rectangle-Knoten beschreibt die " +"Abmessungen eines einzelnen Etiketts oder einer einzelnen Karte in " +"rechteckiger Form, wobei abgerundete Ecken möglich sind." + +#: C/mancreate.page:307(code) C/mancreate.page:370(code) +#: C/mancreate.page:421(code) C/mancreate.page:468(code) +#, no-wrap +msgid "id" +msgstr "id" + +#: C/mancreate.page:308(p) C/mancreate.page:371(p) C/mancreate.page:422(p) +#: C/mancreate.page:469(p) +msgid "Reserved for future use. Should always be 0." +msgstr "Für zukünftige Verwendung reserviert. Sollte immer 0 sein." + +#: C/mancreate.page:312(p) +msgid "Width of label/card" +msgstr "Breite des Etiketts oder der Karte" + +#: C/mancreate.page:316(p) +msgid "Heigth of label/card" +msgstr "Höhe des Etiketts oder der Karte" + +#: C/mancreate.page:319(code) +#, no-wrap +msgid "round" +msgstr "round" + +#: C/mancreate.page:320(p) +msgid "" +"Radius of corners. For items with square edges (business cards), the radius " +"should be 0." +msgstr "" +"Radius der Ecken. Für Objekte mit nicht abgerundeten Ecken (Visitenkarten) " +"sollte der Radius 0 sein." -#: C/glabels.xml:875(title) -msgid "Size Tabbed Section (Line objects)" -msgstr "Reiter »Größe« (Linienobjekte)" +#: C/mancreate.page:324(code) +#, no-wrap +msgid "x_waste" +msgstr "x_waste" -#: C/glabels.xml:877(para) +#: C/mancreate.page:325(p) msgid "" -"This section contains controls to select the length and angle of a line " -"object." +"Amount of horizontal waste (over-print) to allow. This is useful for " +"minimizing alignment problems when using non-white backgrounds (e.g. images)." msgstr "" -"Dieser Abschnitt enthält Einstellmöglichkeiten für die Länge und den Winkel " -"eines Linienobjekts." +"Erlaubte Breite des horizontalen Überdruckens. Dies minimiert " +"Ausrichtungsprobleme auf anderen als weißen Hintergründen (z.B. Bilder)." -#: C/glabels.xml:883(title) -msgid "Position Tabbed Section" -msgstr "Reiter »Position«" +#: C/mancreate.page:330(code) +#, no-wrap +msgid "y_waste" +msgstr "y_waste" -#: C/glabels.xml:885(para) -msgid "This section contains controls to change the position of an object." +#: C/mancreate.page:331(p) +msgid "" +"Amount of vertical waste (over-print) to allow. This is useful for minimizing " +"alignment problems when using non-white backgrounds (e.g. images)." msgstr "" -"Dieser Abschnitt beschreibt die Möglichkeiten zur Positionierung eines " -"Objekts." +"Erlaubte Breite des vertikalen Überdruckens. Dies minimiert " +"Ausrichtungsprobleme auf anderen als weißen Hintergründen (z.B. Bilder)." -#: C/glabels.xml:892(title) -msgid "Shadow Tabbed Section (All except image and barcode objects)" -msgstr "Reiter »Schattierung« (alle außer Bild- und Strichcodeobjekten)" +#: C/mancreate.page:339(desc) C/mancreate.page:341(p) +msgid "Label-rectangle parameters" +msgstr "Parameter zu Label-rectangle" -#: C/glabels.xml:894(para) -msgid "This section contains controls to add a shadow to an object." +#: C/mancreate.page:356(title) +msgid "Label-ellipse Node" +msgstr "Label-ellipse-Knoten" + +#: C/mancreate.page:358(p) +msgid "" +"A Label-ellipse node describes the dimensions " +"of a single label or business card that is elliptic in shape." msgstr "" -"Dieser Abschnitt enthält Einstellmöglichkeiten für die Schattierung eines " -"Objekts." +"Ein Label-ellipse-Knoten beschreibt die " +"Abmessungen eines einzelnen Etiketts oder einer einzelnen Karte in " +"elliptischer Form." -#: C/glabels.xml:903(title) -msgid "Other Manipulations of Objects" -msgstr "Andere Manipulationen von Objekten" +#: C/mancreate.page:375(p) +msgid "Width of the ellipse" +msgstr "Breite der Ellipse" -#: C/glabels.xml:905(para) -msgid "Objects can also be manipulated in the following ways." -msgstr "Objekte können auf die folgenden Arten manipuliert werden." +#: C/mancreate.page:379(p) +msgid "Heigth of the ellipse" +msgstr "Höhe der Ellipse" -#: C/glabels.xml:908(title) -msgid "Moving and Resizing Objects" -msgstr "Verschieben und Größenänderung von Objekten" +#: C/mancreate.page:382(code) C/mancreate.page:429(code) +#: C/mancreate.page:490(code) +#, no-wrap +msgid "waste" +msgstr "waste" -#: C/glabels.xml:910(para) +#: C/mancreate.page:383(p) C/mancreate.page:430(p) C/mancreate.page:491(p) msgid "" -"Objects can be moved by simply clicking on a selected object and dragging the " -"object to its new location. If the object is part of an aggregate selection, " -"all objects in the selection will move with the object being dragged, " -"maintaining their relative positions to one another. If no object is " -"selected, clicking on an object will create a new selection containing that " -"object. See ." +"Amount of waste (over-print) to allow. This is useful for minimizing " +"alignment problems when using non-white backgrounds (e.g. images)." msgstr "" -"Objekte können Sie durch einfaches Anklicken und Ziehen des ausgewählten " -"Objekts zur neuen Position verschieben. Falls dieses Objekt Teil einer " -"Mehrfachauswahl ist, werden durch Ziehen dieses Objektes alle Objekte " -"verschoben, wobei deren Abstände untereinander erhalten bleiben. Falls kein " -"Objekt ausgewählt ist, wird durch Anklicken eines Objekts eine neue Auswahl " -"erzeugt, die dieses Objekt enthält. Siehe ." +"Erlaubte Breite des Überdruckens. Dies minimiert Ausrichtungsprobleme auf " +"anderen als weißen Hintergründen (z.B. Bilder)." -#: C/glabels.xml:918(para) -msgid "" -"A selected object can be resized by clicking one of its resize handle and " -"dragging it to obtain the new size." -msgstr "" -"Die Größe eines ausgewählten Objekts kann geändert werden, indem Sie auf " -"einen der Größenänderungs-Anfasspunkte klicken und diesen ziehen, um die " -"gewünschte Größe zu erreichen." +#: C/mancreate.page:391(desc) C/mancreate.page:393(p) +#: C/mancreate.page:438(desc) C/mancreate.page:440(p) +msgid "Label-ellipse parameters" +msgstr "Parameter zu Label-ellipse" -#: C/glabels.xml:924(title) -msgid "Changing Stacking Order" -msgstr "Ändern der Reihenfolge der Ebenen" +#: C/mancreate.page:408(title) +msgid "Label-round Node" +msgstr "Label-round-Knoten" -#: C/glabels.xml:926(para) +#: C/mancreate.page:410(p) msgid "" -"Stacking order refers to relative position in the z-axis of objects. That is " -"when objects overlap, which object will appear on top of the other. By " -"default, newer objects will appear above older objects. To change this order, " -"select one or more objects and choose ObjectsOrderBring to Front to raise the selection to the top of the stacking " -"order, or choose ObjectsOrderSend to Back to lower the " -"selection to the bottom of the stacking order. These menuitems are also " -"available by right-clicking the display area when there is a non-empty " -"selection." +"A Label-round node describes the dimensions of " +"a simple round label (not a CD)." msgstr "" -"Die Stapelreihenfolge bezieht sich auf die relative Position in der Z-Achse " -"von Objekten. Das beschreibt beim Überlappen von Objekten, welches der " -"Objekte über den anderen erscheint. Per Vorgabe werden neue Objekte immer " -"oberhalb von bereits vorhandenen Objekten platziert. Um diese Anordnung zu " -"ändern, wählen Sie ObjekteAnordnungGanz nach vorn, um die Auswahl im Stapel nach oben zu verschieben, " -"oder ObjekteAnordnungGanz nach hinten, um die " -"Auswahl im Stapel nach unten zu verschieben. Diese Menüeinträge sind auch " -"durch einen Klick mit der rechten Maustaste auf den Ansichtsbereich " -"verfügbar, falls sich dort eine nicht leere Auswahl befindet." - -#: C/glabels.xml:944(title) -msgid "Rotating and Flipping Objects" -msgstr "Drehen und Spiegeln von Objekten" +"Ein Label-round-Knoten beschreibt die " +"Abmessungen eines einfachen Rundetiketts (nicht einer CD)." -#: C/glabels.xml:946(para) -msgid "" -"Objects can be rotated 90 degrees in either direction, or flipped " -"horizontally or vertically, by choosing the appropriate menuitem in the " -"ObjectsRotate/Flip sub-menu. These menuitems are also available by right-clicking " -"the display area when there is a non-empty selection." -msgstr "" -"Objekte können um 90 Grad in jeder Richtung gedreht oder horizontal oder " -"vertikal gespiegelt werden. Wählen Sie hierzu den entsprechenden Eintrag im " -"Menü ObjekteDrehen/Spiegeln. Diese Menüeinträge sind auch verfügbar, wenn Sie " -"mit der rechten Maustaste in eine nicht leere Auswahl im Ansichtsbereich " -"klicken." +#: C/mancreate.page:425(code) C/mancreate.page:472(code) +#: C/mancreate.page:614(code) +#, no-wrap +msgid "radius" +msgstr "radius" -#: C/glabels.xml:956(title) -msgid "Aligning Objects" -msgstr "Ausrichten von Objekten" +#: C/mancreate.page:426(p) +msgid "Radius (1/2 diameter) of label" +msgstr "Radius (halber Durchmesser) des Etiketts" + +#: C/mancreate.page:455(title) +msgid "Label-cd Node" +msgstr "Label-cd-Knoten" -#: C/glabels.xml:958(para) +#: C/mancreate.page:457(p) msgid "" -"Objects can be aligned horizontally or vertically, relative to one another, " -"or relative to the center line of the label, by choosing the appropriate " -"menuitem from the ObjectsAlign " -"Horizontal or ObjectsAlign Horizontal sub-menus. " -"These menuitems are also available by right-clicking the display area when " -"there is a non-empty selection." +"A Label-cd node describes the dimensions of a " +"CD, DVD, or business card CD." msgstr "" -"Objekte können horizontal oder vertikal zu einem anderen Objekt oder relativ " -"zu einer Mittellinie des Etiketts angeordnet werden, indem Sie " -"ObjekteHorizontal oder ObjekteVertikal wählen. Diese Menüeinträge sind auch verfügbar, " -"wenn Sie mit der rechten Maustaste in eine nicht leere Auswahl im " -"Ansichtsbereich klicken." +"Ein Label-cd-Knoten beschreibt die Abmessungen " +"einer CD, DVD oder Visitenkarten-CD." -#: C/glabels.xml:971(title) -msgid "Using the Property Bar" -msgstr "Verwendung der Eigenschaftsleiste" +#: C/mancreate.page:473(p) +msgid "Outer radius of label" +msgstr "Äußerer Radius des Etiketts" -#: C/glabels.xml:973(para) -msgid "" -"The property bar can be used to change some common properties of objects en-" -"masse. These properties include font family, font size, font weight, text " -"alignment, text color, fill color, line or outline color, and line width. The " -"property bar also controls the defaults for these properties for any newly " -"created objects." -msgstr "" -"Mit der Eigenschaftsleiste können Sie einige Eigenschaften von Objekten in " -"einem Arbeitsgang ändern. Diese Eigenschaften umfassen Schriftfamilie, " -"Schriftgröße, Schriftstärke, Textausrichtung, Textfarbe, Füllfarbe, Farbe von " -"Linien oder Begrenzungen sowie Linienbreiten. Die Eigenschaftsleiste regelt " -"auch die Vorgaben für diese Eigenschaften, wenn neue Objekte erzeugt werden." +#: C/mancreate.page:476(code) +#, no-wrap +msgid "hole" +msgstr "hole" -#: C/glabels.xml:988(title) -msgid "Performing a Document Merge" -msgstr "Ausführung einer Dokumentmischung" +#: C/mancreate.page:477(p) +msgid "Radius of concentric hole" +msgstr "Radius des Mittellochs" -#: C/glabels.xml:990(para) +#: C/mancreate.page:481(p) msgid "" -"Document Merge (sometimes called \"Mail Merge\") is a powerful feature that " -"allows a unique label or card to be printed for each record in an external " -"data source." +"If present, the label is clipped to the given width. (Useful for \"business " +"card CDs\")." msgstr "" -"Dokumentmischung ist ein mächtiges Funktionsmerkmal, das es Ihnen ermöglicht, " -"ein einzelnes Etikett oder eine einzelne Karte für jeden Datensatz aus einer " -"externen Datenquelle zu erstellen." +"Falls vorhanden, wird das Etikett auf die angegebene Größe begrenzt (nützlich " +"für »Visitenkarten-CDs«)" -#: C/glabels.xml:994(para) +#: C/mancreate.page:486(p) msgid "" -"The first step to performing a document merge is to prepare a source document " -"that contains your merge data. This data could be mailing addresses or any " -"other data that you wish to create unique labels or cards for. Currently back-" -"ends only exist for text files and the evolution data server -- others are " -"planned. The currently supported text-file format is very simple: each line " -"is a record; fields are delimited by commas (CSV), tabs, or colons; and " -"newlines can be embedded into fields by using the \"\\n\" entity. This file " -"could be created using any text editor or could be created by another program " -"or script. A common way of creating CSV files is to export them from a " -"spreadsheet program." +"If present, the label is clipped to the given height. (Useful for \"business " +"card CDs\")." msgstr "" -"Der erste Schritt zur Ausführung einer Dokumentmischung ist die Vorbereitung " -"eines Quelldokuments, welches die Daten zum Mischen enthält. Diese Daten " -"können aus E-Mail-Adressen oder anderen Daten bestehen, aus denen Sie die " -"einzelnen Etiketten oder Karten erstellen wollen. Gegenwärtig können als " -"Datenquellen entweder Textdateien oder die Daten des Evolution-Adressbuchs " -"verwendet werden, andere sind bereits in Planung. Das derzeit unterstützte " -"Textformat ist recht einfach: Jede Zeile stellt einen Datensatz dar, wobei " -"die einzelnen Felder durch Kommata (CSV), Tabulatoren oder Semikola getrennt " -"werden. Neue Zeilen werden durch einen Zeilenumbruch »\\n« erzeugt. Diese " -"Datei kann mit einem Texteditor, einem anderen Programm oder einem Skript " -"erstellt werden. Ein üblicher Weg der Erstellung ist der Export einer CSV-" -"Datei aus einer Tabellenkalkulation." +"Falls vorhanden, wird das Etikett auf die angegebene Höhe begrenzt (nützlich " +"für »Visitenkarten-CDs«)" -#: C/glabels.xml:1006(para) -msgid "" -"A label must then be configured to \"point at\" this data file. To configure " -"the merge properties of a document, choose ObjectsMerge Properties menu item to " -"display the merge properties dialog. This dialog is used " -"to select the exact data file format and file name (location) of the merge " -"data." -msgstr "" -"Ein Etikett muss erstellt werden, das auf diese Datenquelle »zeigt«. Um die " -"Mischeigenschaften für ein Dokument festzulegen, wählen Sie " -"ObjekteMischeinstellungen. Der Dialog Mischeinstellungen " -"wird geöffnet. In diesem Dialog wählen Sie das genaue Dateiformat und den " -"Dateinamen (den Ort) der einzumischenden Daten aus." +#: C/mancreate.page:499(desc) +msgid "Label-cd parameters" +msgstr "Label-cd-Parameter" + +#: C/mancreate.page:501(p) +msgid "CD label parameters" +msgstr "CD-Label-Parameter" + +#: C/mancreate.page:516(title) +msgid "Markup Nodes" +msgstr "Markup-Knoten" -#: C/glabels.xml:1014(para) +#: C/mancreate.page:518(p) msgid "" -"Finally, once the label has been configured for a data file, field keys can " -"be inserted into text objects and used as source or data for barcode objects " -"and image filenames for image objects. See for more information on using merge data for these object " -"types." +"Templates may contain optional markup nodes. These nodes are used to describe " +"a simple set of markup lines that are visible in the glabels " +"drawing canvas, but not visible when printed. These lines can represent " +"margins, fold lines, center lines, special areas, or other helpful hints to " +"the user of a template." msgstr "" -"Zum Schluss, sobald das Etikett für die Datenquelle eingerichtet wurde, " -"können die Feldschlüssel in Textobjekte eingefügt werden, um sie als " -"Datenquelle für Strichcodeobjekte oder Bilder für Bildobjekte zu verwenden. " -"Weitere Informationen über die Verwendung der Mischdaten für diese " -"Objekttypen finden Sie in ." +"Vorlagen können optional auch Markierungs-Knoten enthalten. Diese Knoten " +"beschreiben eine Reihe von Markierungslinien, die zwar im Zeichenbereich von " +"gLabels angezeigt werden, jedoch im späteren Ausdruck nicht " +"sichtbar sind. Diese Linien können Ränder, Falzlinien, Mittellinien oder " +"spezielle Bereiche darstellen sowie dem Benutzer einer Vorlage weitere " +"hilfreiche Hinweise geben." -#: C/glabels.xml:1020(para) +#: C/mancreate.page:528(title) +msgid "Markup-margin Node" +msgstr "Markup-margin-Knoten" + +#: C/mancreate.page:530(p) msgid "" -"Now that your label is configured, gLabels will " -"print a unique label for each record in your source document -- substituting " -"fields from each record for field keys in the all text, barcode, and image " -"objects." +"A Markup-margin describes a margin along all " +"edges of a label." msgstr "" -"Da Ihr Etikett nun konfiguriert ist, druckt gLabels genau ein Etikett für jeden Datensatz des Quelldokuments, wobei " -"alle Text-, Bild- und Strichcode-Objekte durch die Einträge der Felder jedes " -"Datensatzes ersetzt werden." +"Ein Markup-margin-Knoten beschreibt die Ränder " +"entlang der Seiten eines Etiketts." -#: C/glabels.xml:1025(para) +#: C/mancreate.page:542(p) msgid "" -"See for a detailed tutorial on the " -"document merge feature." +"Size of the margin. I.e. the distance of the margin line from the edge of the " +"card/label." msgstr "" -"In finden Sie eine ausführliche " -"Anleitung für dieses Funktionsmerkmal." +"Randbreite. Die Breite des Bereichs zwischen der Randlinie und dem Rand des " +"Etiketts/der Karte." -#: C/glabels.xml:1040(title) -msgid "Settings" -msgstr "Einstellungen" +#: C/mancreate.page:556(title) +msgid "Markup-line Node" +msgstr "Markup-line-Knoten" -#: C/glabels.xml:1041(para) +#: C/mancreate.page:558(p) msgid "" -"To configure gLabels, choose " -"SettingsPreferences. The Preferences dialog " -"contains the following tabbed sections:" +"A Markup-line node describes a markup line." msgstr "" -"Um gLabels zu konfigurieren, wählen Sie " -"EinstellungenEinstellungen. Der Dialog Einstellungen " -"enthält die folgenden Reiter:" +"Ein Markup-line-Knoten beschreibt eine " +"Markierungslinie." -#: C/glabels.xml:1062(title) -msgid "Locale" -msgstr "Lokale Einstellungen" +#: C/mancreate.page:568(code) C/mancreate.page:640(code) +#: C/mancreate.page:682(code) +#, no-wrap +msgid "x1" +msgstr "x1" -#: C/glabels.xml:1066(guilabel) -msgid "Units" -msgstr "Einheiten" +#: C/mancreate.page:569(p) +msgid "x coordinate of 1st endpoint of the line segment." +msgstr "x-Koordinate des Anfangspunkts des Linienabschnitts." -#: C/glabels.xml:1068(para) -msgid "" -"Use this radio button group to specify your preferred units. Select one of " -"the following options:" -msgstr "" -"Verwenden Sie diese Radioknöpfe, um Ihre bevorzugten Maßeinheiten " -"festzulegen. Wählen Sie aus den folgenden Optionen:" +#: C/mancreate.page:572(code) C/mancreate.page:644(code) +#: C/mancreate.page:686(code) +#, no-wrap +msgid "y1" +msgstr "y1" -#: C/glabels.xml:1073(guilabel) -msgid "Points" -msgstr "Punkte" +#: C/mancreate.page:573(p) +msgid "y coordinate of 1st endpoint of the line segment." +msgstr "y-Koordinate des Anfangspunkts des Linienabschnitts." -#: C/glabels.xml:1074(para) -msgid "Use points (1 point = 1/72 in = 0.352778 mm)." -msgstr "Punkte verwenden (1 Punkt = 1/72 Zoll = 0.352778 mm)." +#: C/mancreate.page:576(code) +#, no-wrap +msgid "x2" +msgstr "x2" -#: C/glabels.xml:1078(guilabel) -msgid "Inches" -msgstr "Zoll" +#: C/mancreate.page:577(p) +msgid "x coordinate of 2st endpoint of the line segment." +msgstr "x-Koordinate des zweiten Endpunkts des Linienabschnitts." -#: C/glabels.xml:1079(para) -msgid "Use inches." -msgstr "Zoll verwenden." +#: C/mancreate.page:580(code) +#, no-wrap +msgid "y2" +msgstr "y2" -#: C/glabels.xml:1083(guilabel) -msgid "Millimeters" -msgstr "Millimeter" +#: C/mancreate.page:581(p) +msgid "y coordinate of 2st endpoint of the line segment." +msgstr "y-Koordinate des zweiten Endpunkts des Linienabschnitts." -#: C/glabels.xml:1084(para) -msgid "Use millimeters." -msgstr "Millimeter verwenden." +#: C/mancreate.page:594(title) +msgid "Markup-circle Node" +msgstr "Markup-circle-Knoten" -#: C/glabels.xml:1087(para) -msgid "Default: Inches." -msgstr "Standard: Zoll." +#: C/mancreate.page:596(p) +msgid "A Markup-circle describes a markup circle." +msgstr "" +"Ein Markup-circle-Knoten beschreibt einen " +"Markierungskreis." -#: C/glabels.xml:1093(guilabel) -msgid "Default page size" -msgstr "Vorgegebene Seitengröße" +#: C/mancreate.page:606(code) C/mancreate.page:740(code) +#, no-wrap +msgid "x0" +msgstr "x0" + +#: C/mancreate.page:607(p) +msgid "x coordinate of circle origin (center)." +msgstr "x-Koordinate des Kreismittelpunkts." + +#: C/mancreate.page:610(code) C/mancreate.page:745(code) +#, no-wrap +msgid "y0" +msgstr "y0" + +#: C/mancreate.page:611(p) +msgid "y coordinate of circle origin (center)." +msgstr "y-Koordinate des Kreismittelpunkts." + +#: C/mancreate.page:615(p) +msgid "Radius of circle." +msgstr "Radius des Kreises." -#: C/glabels.xml:1095(para) +#: C/mancreate.page:628(title) +msgid "Markup-rect Node" +msgstr "Markup-rect-Knoten" + +#: C/mancreate.page:630(p) msgid "" -"Use this radio button group to specify your preferred page size. This will " -"make it quicker for you to locate media types when creating a new label or " -"card." +"A Markup-rect describes a markup rectangle." msgstr "" -"Verwenden Sie diese Radioknöpfe zur Auswahl Ihrer bevorzugten Papiergröße. " -"Dadurch lassen sich beim Erstellen neuer Etiketten oder Visitenkarten die " -"entsprechenden Papiertypen schneller finden." +"Ein Markup-rect-Knoten beschreibt ein " +"Markierungsrechteck." -#: C/glabels.xml:1101(guilabel) -msgid "US Letter" -msgstr "US-Letter" +#: C/mancreate.page:641(p) +msgid "x coordinate of upper left corner of rectangle." +msgstr "x-Koordinate der oberen linken Ecke des Rechtecks." -#: C/glabels.xml:1102(para) -msgid "Most of your media will be of the US Letter page size (8.5 x 11 inches)." -msgstr "Die meisten Ihrer Medien haben das US-Letter-Format (8.5 x 11 inches)." +#: C/mancreate.page:645(p) +msgid "y coordinate of upper left corner of rectangle." +msgstr "y-Koordinate der oberen linken Ecke des Rechtecks." -#: C/glabels.xml:1106(guilabel) -msgid "ISO A4" -msgstr "ISO A4" +#: C/mancreate.page:648(code) C/mancreate.page:690(code) +#, no-wrap +msgid "w" +msgstr "w" + +#: C/mancreate.page:649(p) +msgid "Width of rectangle." +msgstr "Breite des Rechtecks." + +#: C/mancreate.page:652(code) C/mancreate.page:694(code) +#, no-wrap +msgid "h" +msgstr "h" + +#: C/mancreate.page:653(p) +msgid "Height of rectangle." +msgstr "Höhe des Rechtecks." -#: C/glabels.xml:1107(para) -msgid "Most of your media will be of the ISO A4 page size (210 x 297 mm)." -msgstr "Die meisten Ihrer Medien haben das ISO-A4-Format (210 x 297 mm)." +#: C/mancreate.page:656(code) +#, no-wrap +msgid "r" +msgstr "r" -#: C/glabels.xml:1110(para) -msgid "Default: US Letter." -msgstr "Standard: US-Letter." +#: C/mancreate.page:657(p) +msgid "Radius of rounded corners of rectangle." +msgstr "Radius der abgerundeten Ecken des Rechtecks." -#: C/glabels.xml:1119(title) -msgid "Object defaults" -msgstr "Objekt-Voreinstellungen" +#: C/mancreate.page:670(title) +msgid "Markup-ellipse Node" +msgstr "Markup-ellipse-Knoten" -#: C/glabels.xml:1125(para) +#: C/mancreate.page:672(p) msgid "" -"Use these controls to set the default properties of new text objects. These " -"properties are" +"A Markup-ellipse describes a markup ellipse." msgstr "" -"Verwenden Sie diese Einstellmöglichkeiten, um die Standardeigenschaften neuer " -"Textobjekte festzulegen. Diese Eigenschaften sind" +"Ein Markup-ellipse-Knoten beschreibt eine " +"Markierungsellipse." -#: C/glabels.xml:1130(guilabel) -msgid "Font" -msgstr "Schrift" +#: C/mancreate.page:683(p) +msgid "x coordinate of upper left corner of ellipse." +msgstr "" +"x-Koordinate der oberen linken Ecke des die Ellipse umschließenden Rechtecks." -#: C/glabels.xml:1131(para) -msgid "" -"These controls are used to select font family and font size, and whether the " -"font should bold or in italics." +#: C/mancreate.page:687(p) +msgid "y coordinate of upper left corner of ellipse." msgstr "" -"Verwenden Sie diese Einstellmöglichkeiten, um die Schriftfamilie und -größe " -"festzulegen, sowie um anzugeben, ob die Schrift fett oder kursiv dargestellt " -"werden soll." +"x-Koordinate der oberen linken Ecke des die Ellipse umschließenden Rechtecks." -#: C/glabels.xml:1136(guilabel) C/glabels.xml:1161(guilabel) -#: C/glabels.xml:1176(guilabel) -msgid "Color" -msgstr "Farbe" +#: C/mancreate.page:691(p) +msgid "Width of ellipse." +msgstr "Die Breite der Ellipse." -#: C/glabels.xml:1137(para) -msgid "This control selects the default text color." -msgstr "Diese Einstellung wählt die Standard-Textfarbe aus." +#: C/mancreate.page:695(p) +msgid "Height of ellipse." +msgstr "Die Höhe der Ellipse." -#: C/glabels.xml:1141(guilabel) -msgid "Alignment" -msgstr "Ausrichtung" +#: C/mancreate.page:713(title) +msgid "Layout Node" +msgstr "Layout-Knoten" -#: C/glabels.xml:1142(para) +#: C/mancreate.page:715(p) msgid "" -"These controls are used to select the default text alignment (left, center or " -"right)." +"A label node may contain multiple Layout " +"children. If labels are arranged in a simple grid pattern, only one layout is " +"needed. However, if labels are arranged in multiple grids, such as a running " +"bond pattern, multiple Layout tags can be used." msgstr "" -"Mit diesen Einstellungen wählen Sie die vorgegebene Textausrichtung (links, " -"mittig oder rechts)." +"Ein Label-Knoten kann mehrere Layout-" +"Unterknoten enthalten. Wenn die Etiketten in einem einfachen rechteckigen " +"Raster angeordnet sind, dann wird nur ein Layout benötigt. Falls die " +"Etiketten jedoch in komplizierteren Rasteranordnungen vorliegen, können " +"mehrere Layout-Unterknoten verwendet " +"werden." -#: C/glabels.xml:1151(para) -msgid "" -"Use these controls to set the default properties of lines and outlines of new " -"objects. These properties are" +#: C/mancreate.page:721(p) +msgid "A single label can always be treated as a grid of one." msgstr "" -"Verwenden sie diese Einstellmöglichkeiten, um die Standardeigenschaften von " -"Begrenzungen und neuen Objekten festzulegen. Diese Eigenschaften sind" +"Beachten Sie, dass ein einzelnes Etikett immer auch als ein Raster aus " +"Etiketten betrachtet werden kann." -#: C/glabels.xml:1156(guilabel) -msgid "Width" -msgstr "Breite" +#: C/mancreate.page:732(code) +#, no-wrap +msgid "nx" +msgstr "nx" -#: C/glabels.xml:1157(para) -msgid "This control selects the default line width." -msgstr "Diese Einstellung wählt die Standard-Linienbreite aus." +#: C/mancreate.page:733(p) +msgid "Number of labels/cards across in the grid (horizontal)" +msgstr "Anzahl der Etiketten/Karten im Raster in horizontaler Richtung" -#: C/glabels.xml:1162(para) -msgid "This control selects the default line color." -msgstr "Diese Einstellung wählt die Standard-Linienfarbe aus." +#: C/mancreate.page:736(code) +#, no-wrap +msgid "ny" +msgstr "ny" -#: C/glabels.xml:1169(guilabel) -msgid "Fill" -msgstr "Füllen" +#: C/mancreate.page:737(p) +msgid "Number of labels/cards across in the grid (vertical)" +msgstr "Anzahl der Etiketten/Karten im Raster in vertikaler Richtung" -#: C/glabels.xml:1171(para) +#: C/mancreate.page:741(p) msgid "" -"Use these controls to set the default fill properties of new objects. These " -"properties are" +"Distance from left edge of sheet to the left edge of the left column of cards/" +"labels in the layout." msgstr "" -"Verwenden Sie diese Einstellmöglichkeiten zum Angeben der " -"Füllungseigenschaften eines neuen Objekts. Diese Eigenschaften sind" - -#: C/glabels.xml:1177(para) -msgid "This control selects the default fill color." -msgstr "Diese Einstellung wählt die Standard-Füllfarbe aus." - -#: C/glabels.xml:1191(title) -msgid "Document Merge Tutorial" -msgstr "Anleitung zur Dokumentmischung" +"Abstand von linken Rand des Papiers zum linken Rand der linken Reihe der " +"Karten/Etiketten im Layout." -#: C/glabels.xml:1193(para) +#: C/mancreate.page:746(p) msgid "" -"Document Merge (sometimes called \"Mail Merge\") is a powerful feature that " -"allows a unique label or card to be printed for each record in an external " -"data source. It is however, the most mis-understood feature of " -"gLabels. The following examples will step through " -"a couple of common tasks using the document merge feature." +"Distance from the top edge of sheet to the top edge of the top row of labels/" +"cards in the layout." msgstr "" -"Dokumentmischung ist ein mächtiges Funktionsmerkmal, das es Ihnen ermöglicht, " -"ein einzelnes Etikett oder eine einzelne Karte für jeden Datensatz aus einer " -"externen Datenquelle zu erstellen. Es ist allerdings die am häufigsten " -"missverstandene Funktion in gLabels. Die folgenden " -"Beispiele führen Sie schrittweise durch viele der Aufgaben, die Sie mit der " -"Dokumentmischung ausführen können." +"Abstand von oberen Rand des Papiers zum oberen Rand der oberen Reihe der " +"Karten/Etiketten im Layout." -#: C/glabels.xml:1201(title) -msgid "Example 1: Name Tags Using a CSV File" -msgstr "Beispiel 1: Namensschilder unter Nutzung einer CSV-Datei" +#: C/mancreate.page:750(code) +#, no-wrap +msgid "dx" +msgstr "dx" -#: C/glabels.xml:1203(para) -msgid "" -"In this example we are organizing an orientation party for the new crew " -"members of our ship. We have a list of freshman crew members that we created " -"in gnumeric and exported as the following CSV " -"file. We could have created this file by using a text editor, but heck it is " -"the 23rd century." -msgstr "" -"In diesem Beispiel organisieren Sie eine Orientierungsparty für die neuen " -"Mannschaftsmitglieder Ihres Schiffes. Eine Liste der neuen Mitglieder haben " -"Sie in gnumeric erstellt und in die folgende CSV-" -"Datei exportiert. Sie könnten diese Datei auch in einem Texteditor erstellen, " -"aber schließlich leben wir im 23. Jahrhundert..." +#: C/mancreate.page:751(p) +msgid "Horizontal pitch of grid." +msgstr "Horizontaler Rasterabstand des Zeichengitters." -#: C/glabels.xml:1209(programlisting) +#: C/mancreate.page:754(code) #, no-wrap -msgid "" -"\n" -"Name,Department,SN\n" -"\"Jim Kirk\",Management,\"SC937-0176 CEC\"\n" -"\"Mr. Spock\",Sciences,S179-276SP\n" -"\"Leonard McCoy\",Medicine,unknown\n" -"\"Montgomery Scott\",Engineering,SE-197-54T\n" -" " -msgstr "" -"\n" -"Name,Department,SN\n" -"\"Jim Kirk\",Management,\"SC937-0176 CEC\"\n" -"\"Mr. Spock\",Sciences,S179-276SP\n" -"\"Leonard McCoy\",Medicine,unknown\n" -"\"Montgomery Scott\",Engineering,SE-197-54T\n" -" " +msgid "dy" +msgstr "dy" -#: C/glabels.xml:1217(para) -msgid "" -"In gLabels we have created a new " -"gLabels document using the Avery 5395 \"Name Badge " -"Labels\" template. Next we use the ObjectsMerge Properties menu item to " -"display the merge properties dialog. We use this dialog " -"to select the source type (in our case CSV) and the merge source (filename) " -"as shown." -msgstr "" -"In glabels haben Sie ein neues Dokument unter " -"Verwendung der Dokumentvorlage »Avery 5395 Namensschild-Etiketten« erzeugt. " -"Zunächst öffnen Sie mittels ObjekteMischeinstellungen den Dialog " -"Mischeinstellungen. In diesem Dialog wählen Sie wie " -"gezeigt die Datenquelle aus, in diesem Fall CSV, sowie die Mischquelle " -"(Dateiname)." - -#: C/glabels.xml:1227(title) C/glabels.xml:1344(title) -#: C/glabels.xml:1460(title) -msgid "Merge properties dialog" -msgstr "Mischeinstellungen-Dialog" +#: C/mancreate.page:755(p) +msgid "Vertical pitch of grid." +msgstr "Vertikaler Rasterabstand des Zeichengitters." -#. ==== End of Figure ==== -#: C/glabels.xml:1238(para) -msgid "" -"Before applying the merge source, we uncheck the first record since it is " -"only column headers from our original gnumeric " -"spreadsheet and would simply waste our first label. We could also unselect " -"any other records that we didn't want to print a label for." -msgstr "" -"Bevor Sie eine neue Einmischquelle anwenden, sollten Sie den ersten Datensatz " -"deaktivieren, weil dieser nur Spaltenköpfe aus der originalen " -"gnumeric-Tabelle enthält. Dadurch würde nur das " -"erste Etikett verschwendet. Weiterhin können Sie alle anderen Datensätze " -"entfernen, die Sie nicht für ein Etikett verwenden wollen." +#: C/mancreate.page:761(desc) +msgid "Layout parameters" +msgstr "Layout-Parameter" -#: C/glabels.xml:1243(para) C/glabels.xml:1361(para) -msgid "" -"We can also view each record in more detail by clicking on the appropriate " -"expander (the little triangles) as shown. Once we are satisfied with the " -"selections in this dialog we click OK to accept the " -"changes." -msgstr "" -"Sie können jeden Datensatz detailliert betrachten, indem Sie auf die kleinen " -"Dreiecke klicken. Sobald Sie mit der Auswahl zufrieden sind, klicken Sie auf " -"OK, um die Änderungen anzuwenden." +#: C/mancreate.page:763(p) +msgid "Layout Parameters" +msgstr "Layout-Parameter" -#: C/glabels.xml:1248(para) C/glabels.xml:1366(para) -msgid "" -"Now we start adding objects to our gLabels " -"document as shown." -msgstr "" -"Nun beginnen wir mit dem Hinzufügen von Objekten zu unserem " -"gLabels-Dokument, wie gezeigt." +#: C/license.page:8(desc) +msgid "Legal information." +msgstr "Rechtliche Hinweise." -#: C/glabels.xml:1252(title) C/glabels.xml:1370(title) -#: C/glabels.xml:1488(title) -msgid "Adding objects" -msgstr "Hinzufügen von Objekten" +#: C/license.page:11(title) +msgid "License" +msgstr "Lizenz" -#. ==== End of Figure ==== -#: C/glabels.xml:1263(para) +#: C/license.page:12(p) msgid "" -"In this example we have added three text objects and a barcode object. The " -"first text object contains only simple literal text (\"Hello, my name is\"). " -"The second text object contains a single merge field (\"${1}\") corresponding " -"to the first field of a record (first column of a line) which contains the " -"new crew member's full name. The third text field contains both literal text " -"(\"Department: \") followed by a single merge field (\"${2}\") corresponding " -"to the second field or the crew member's department. The barcode object is " -"configured to use field (or key) \"3\" which contains our crew member's " -"starfleet serial number." +"This work is distributed under a CreativeCommons Attribution-Share Alike 3.0 " +"Unported license." msgstr "" -"In diesem Beispiel haben Sie drei Textobjekte und ein Strichcodeobjekt " -"hinzugefügt. Das erste Textobjekt enthält nur einfachen Text (»Hello, my name " -"is«). Das zweite Textobjekt enthält ein einfaches Mischfeld (»${1}«), welches " -"zum ersten Feld eines Datensatzes (erste Spalte einer Zeile) korrespondiert, " -"die den vollen Namen eines Mannschaftsmitglieds enthält. Das dritte Feld " -"enthält sowohl einfachen Text (»Department:«) als auch ein einzelnes Mischfeld " -"(»${2}«), welches zum zweiten Feld oder zum Arbeitsgebiet eines " -"Mannschaftsmitglieds korrespondiert. Das Strichcodefeld ist so eingestellt, " -"das Feld (oder den Schlüssel) »3« zu verwenden, das die Sternenflotten-" -"Seriennummer des Mannschaftsmitglieds enthält." - -#: C/glabels.xml:1273(para) -msgid "" -"Now we can print our name tags by selecting the FilePrint menu item. This will " -"display print dialog as shown below." -msgstr "" -"Nun können Sie Ihre Namensschilder drucken, indem Sie " -"DateiDrucken wählen. Der unten angezeigte Druckdialog wird geöffnet." - -#: C/glabels.xml:1280(title) -msgid "Printing name tags" -msgstr "Drucken der Namensschilder" +"Dieses Werk wird unter einer »CreativeCommons Attribution-Share Alike 3.0 " +"Unported license« verbreitet." -#. ==== End of Figure ==== -#: C/glabels.xml:1291(para) C/glabels.xml:1406(para) C/glabels.xml:1520(para) -msgid "" -"Just to make sure our labels are going to look okay, we select the " -"Print outlines option and click Print " -"Preview. This will display a print preview dialog as shown below." +#: C/license.page:20(p) +msgid "You are free:" +msgstr "Es ist Ihnen gestattet:" + +#: C/license.page:25(em) +msgid "To share" +msgstr "Freizugeben" + +#: C/license.page:26(p) +msgid "To copy, distribute and transmit the work." msgstr "" -"Um sicher zu stellen, dass Ihre Etiketten gut aussehen, wählen Sie die Option " -"Begrenzungen drucken und klicken auf " -"Druckvorschau. Der Druckvorschaudialog wird geöffnet, " -"wie unten angezeigt." +"Das Werk bzw. den Inhalt vervielfältigen, verbreiten und öffentlich " +"zugänglich machen." -#: C/glabels.xml:1298(title) -msgid "Name tags preview" -msgstr "Vorschau der Namensschilder" +#: C/license.page:29(em) +msgid "To remix" +msgstr "Änderungen vorzunehmen" -#. ==== End of Figure ==== -#: C/glabels.xml:1309(para) +#: C/license.page:30(p) +msgid "To adapt the work." +msgstr "Abwandlungen und Bearbeitungen des Werkes bzw. Inhaltes anzufertigen." + +#: C/license.page:33(p) +msgid "Under the following conditions:" +msgstr "Unter den folgenden Bedingungen:" + +#: C/license.page:38(em) +msgid "Attribution" +msgstr "Weitergabe" + +#: C/license.page:39(p) msgid "" -"Everything looks good, so we can now load up our printer with the appropriate " -"label stock, print our name tags and start beaming our guests aboard." +"You must attribute the work in the manner specified by the author or licensor " +"(but not in any way that suggests that they endorse you or your use of the " +"work)." msgstr "" -"Alles sieht gut aus, also können wir jetzt den Drucker mit den entsprechenden " -"Etiketten bestücken, die Namensschilder drucken und die Gäste an Bord beamen." +"Sie dürfen das Werk nur unter gleichen Bedingungen weitergeben, wie Sie vom " +"Autor oder Lizenzgeber festgelegt wurden (aber nicht so, dass es wie Ihr Werk " +"aussieht)." -#: C/glabels.xml:1316(title) -msgid "Example 2: Address Labels Using a CSV File" -msgstr "Beispiel 2: Adressetiketten unter Nutzung einer CSV-Datei" +#: C/license.page:46(em) +msgid "Share Alike" +msgstr "Share Alike" -#: C/glabels.xml:1318(para) +#: C/license.page:47(p) msgid "" -"In this example we are going to throw a party and need to print mailing " -"address labels for our invitations. We have a list of our closest friends " -"that we created in gnumeric and exported as the " -"following CSV file. It should be noted that not everyone has a middle initial " -"or a two line address." +"If you alter, transform, or build upon this work, you may distribute the " +"resulting work only under the same, similar or a compatible license." msgstr "" -"In diesem Beispiel planen Sie eine Party. Dafür benötigen Sie Adressetiketten " -"für die Einladungen. Sie haben eine Liste Ihrer besten Freunde in " -"gnumeric erstellt, die Sie in die folgende CSV-" -"Datei exportiert haben. Es ist zu beachten, dass nicht jeder einen zweiten " -"Vornamen oder eine zweizeilige Adresse hat." +"Wenn Sie das lizenzierte Werk bzw. den lizenzierten Inhalt bearbeiten, " +"abwandeln oder in anderer Weise erkennbar als Grundlage für eigenes Schaffen " +"verwenden, dürfen Sie die daraufhin neu entstandenen Werke bzw. Inhalte nur " +"unter Verwendung von Lizenzbedingungen weitergeben, die mit denen dieses " +"Lizenzvertrages identisch, vergleichbar oder kompatibel sind." -#: C/glabels.xml:1324(programlisting) -#, no-wrap +#: C/license.page:53(p) msgid "" -"\n" -"LAST,FIRST,MI,ADDR1,ADDR2,CITY,STATE,ZIP\n" -",,,,,,,\n" -"Critter,Ess,S,\"123 Faux St.\",,Alexandria,VA,22310\n" -"Doe,John,,\"Apt 1X\",\"451 Mystery St.\",Trenton,NJ,08601\n" -"Summers,Joyce,,\"1630 Revello Dr\",,Sunnydale,CA,95037\n" -"McGarret,Steve,O,\"404 Piikoi Street\",,Honolulu,HI,96813\n" -"Kramer,Cosmo,,\"Apt 5B\",\"129 W. 81 St.\",\"New York\",NY,10024-7207\n" -" " +"For the full text of the license, see the CreativeCommons website, or read " +"the full Commons Deed." msgstr "" -"\n" -"LAST,FIRST,MI,ADDR1,ADDR2,CITY,STATE,ZIP\n" -",,,,,,,\n" -"Critter,Ess,S,\"123 Faux St.\",,Alexandria,VA,22310\n" -"Doe,John,,\"Apt 1X\",\"451 Mystery St.\",Trenton,NJ,08601\n" -"Summers,Joyce,,\"1630 Revello Dr\",,Sunnydale,CA,95037\n" -"McGarret,Steve,O,\"404 Piikoi Street\",,Honolulu,HI,96813\n" -"Kramer,Cosmo,,\"Apt 5B\",\"129 W. 81 St.\",\"New York\",NY,10024-7207\n" -" " +"Den vollständigen Text der Lizenz finden sie auf der CreativeCommons-Webseite. Oder Sie können den vollständigen Commons Deed lesen." -#: C/glabels.xml:1334(para) +#: C/labelprop.page:9(desc) +msgid "How to change the properties of a label or business card." +msgstr "Ändern der Eigenschaften eines Etiketts oder einer Visitenkarte." + +#: C/labelprop.page:25(title) +msgid "To change label properties" +msgstr "Ändern der Eigenschaften eines Etiketts" + +#: C/labelprop.page:27(p) msgid "" -"In gLabels we have created a new " -"gLabels document using the Avery 5512 \"Address " -"Labels\" template. Next we use the ObjectsMerge Properties menu item to " -"display the merge properties dialog. We use this dialog " -"to select the source type (in our case CSV) and the merge source (filename) " -"as shown." +"To change the media type and/or orientation of a label, choose " +"FileProperties to display the " +"Label properties dialog. Select the new media type and orientation " +"for the document, then click OK." msgstr "" -"In glabels haben Sie ein neues Dokument unter " -"Verwendung der Dokumentvorlage »Avery 5512 Adressetiketten« erzeugt. Zunächst " -"öffnen Sie mittels ObjekteMischeinstellungen den Dialog " -"Mischeinstellungen. In diesem Dialog wählen Sie wie " -"gezeigt die Datenquelle aus, in diesem Fall CSV, sowie die Mischquelle " -"(Dateiname)." +"Um den Medientyp oder die Ausrichtung des Etiketts zu ändern, wählen Sie " +"DateiEigenschaften, um den Dialog " +"Etikett-Eigenschaften anzuzeigen. Wählen Sie den neuen Medientyp " +"für das Dokument aus und klicken Sie anschließend auf OK." -#. ==== End of Figure ==== -#: C/glabels.xml:1355(para) +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/index.page:24(None) msgid "" -"Before applying the merge source, we uncheck the first record since it is " -"only column headers from our original gnumeric " -"spreadsheet and would simply waste our first label. We also unselect the " -"second record which is empty (an artifact of our original spreadsheet). We " -"could also unselect any other records that we didn't want to print a label " -"for." -msgstr "" -"Bevor Sie eine neue Einmischquelle anwenden, sollten Sie den ersten Datensatz " -"deaktivieren, weil dieser nur Spaltenköpfe aus der originalen " -"gnumeric-Tabelle enthält. Dadurch würde nur das " -"erste Etikett verschwendet. Weiterhin können Sie alle anderen Datensätze " -"entfernen, die Sie nicht für ein Etikett verwenden wollen." +"@@image: 'figures/glabels-logo.png'; md5=0c1e32afcbae0d2fc6976020c24a0a43" +msgstr "translated" -#. ==== End of Figure ==== -#: C/glabels.xml:1381(para) +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/index.page:47(None) +#, fuzzy msgid "" -"In this example we have a single text object. This text object contains all " -"of our merge fields organized on multiple lines as a mailing address. Notice " -"that fields ${4} and ${5} (corresponding to ADDR1 and ADDR2) are each located " -"with no other text on their own lines. When gLabels encounters a field as the only text on a line, it will not " -"expand the line if the field is empty." -msgstr "" -"In diesem Beispiel haben Sie ein einzelnes Textobjekt. Dieses Textobjekt " -"enthält alle Einmischfelder, angeordnet in mehreren Zeilen wie eine " -"Versandadresse. Beachten Sie, dass die Felder ${4} und ${5} (korrespondierend " -"zu ADDR1 und ADDR2) jeweils keinen weiteren Text in deren Zeilen enthalten. " -"Wenn glabels ein solches Feld als »nur Text« in " -"einer Zeile erkennt, wird die Zeile nicht expandiert, falls das Feld leer ist." +"@@image: 'figures/introduction-glabels-main-window.png'; " +"md5=fceca242699bb062a5ac243a5f962f3b" +msgstr "translated" -#: C/glabels.xml:1388(para) +#: C/index.page:7(title) C/index.page:8(title) +msgid "gLabels label and business card designer" +msgstr "gLabels Etiketten- und Visitenkarten-Designer" + +#: C/index.page:23(title) +msgid "" +"gLabels logo gLabels Manual" +msgstr "" +"gLabels logo gLabels-Handbuch" + +#: C/index.page:28(p) +msgid "" +"The gLabels application is a lightweight program for creating " +"labels and business cards for the GNOME desktop environment. It is designed " +"to work with various laser/ink-jet peel-off label and business card sheets " +"that you'll find at most office supply stores." +msgstr "" +"Die Anwendung gLabels ist ein ressourcenschonendes Programm zum " +"Erstellen von Etiketten und Visitenkarten für die GNOME-Arbeitsumgebung. Es " +"wurde für die verschiedensten mit Laser- oder Tintenstrahldruckern " +"bedruckbaren (auch selbstklebenden) Etiketten sowie Visitenkarten entworfen, " +"so wie Sie sie in den meisten Schreibwarengeschäften finden." + +#: C/index.page:35(p) +msgid "" +"gLabels can be used to design address labels, name tags, price " +"tags, cd/dvd labels, or just about anything else that is organized in a " +"regular pattern on a sheet of paper. Labels (or cards) can contain text, " +"images, lines, shapes, and barcodes. gLabels also includes a " +"document-merge feature which lets you print a unique label for each record " +"from an external data source, such as a CSV file or an Evolution " +"address book." +msgstr "" +"gLabels kann zum Enwerfen von Adressaufklebern, Namens- und " +"Preisschildern, Etiketten für CDs und DVDs oder für alles Andere verwendet " +"werden, was mit dem Bedrucken von Papieren zu tun hat, die Etiketten oder " +"Karten in einer regulären Anordnung enthalten. Die Etiketten oder Karten " +"können Text, Bilder, Linien, Formen oder Strichcodes enthalten. gLabels verfügt auch über ein Funktionsmerkmal zur Dokumentmischung. Das " +"bedeutet, dass Sie eine externe Datenquelle dazu verwenden können, ein " +"Etikett für jeden Datensatz zu drucken. Als Datenquelle kann dabei " +"beispielsweise eine CSV-Datei oder das Adressbuch von Evolution " +"genutzt werden." + +#: C/index.page:45(title) C/index.page:46(desc) +msgid "gLabels main window" +msgstr "gLabels-Hauptfenster" + +#: C/index.page:48(p) +msgid "gLabels main window." +msgstr "gLabels-Hauptfenster" + +#: C/index.page:53(title) +msgid "Usage" +msgstr "Benutzung" + +#: C/index.page:57(title) +msgid "Document Merging" +msgstr "Dokumentmischung" + +#: C/index.page:61(title) +msgid "Advanced usage" +msgstr "Fortgeschrittene Verwendung" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/editprop.page:35(None) +#, fuzzy msgid "" -"Now we can print our address labels by selecting the " -"FilePrint menu item. This will display print dialog as shown below." -msgstr "" -"Nun können Sie Ihre Adressetiketten drucken, indem Sie " -"DateiDrucken wählen. Der unten angezeigte Druckdialog wird geöffnet." +"@@image: 'figures/object-editor-sidebar.png'; " +"md5=828ffc05f69e1914595cc1e3d7401e2f" +msgstr "translated" -#: C/glabels.xml:1395(title) C/glabels.xml:1509(title) -msgid "Printing address labels" -msgstr "Adressetiketten drucken" +#: C/editprop.page:9(desc) +msgid "Change the properties of objects." +msgstr "Ändern der Eigenschaften von Objekten." -#: C/glabels.xml:1413(title) C/glabels.xml:1527(title) -msgid "Address labels preview" -msgstr "Adressetiketten-Vorschau" +#: C/editprop.page:25(title) +msgid "To edit object properties" +msgstr "Bearbeiten der Objekteigenschaften" -#. ==== End of Figure ==== -#: C/glabels.xml:1424(para) C/glabels.xml:1538(para) +#: C/editprop.page:29(p) msgid "" -"Everything looks good, so we can now load up our printer with the appropriate " -"label stock, print our address labels and start mailing our party invitations." +"Most object properties can be modified through the object editor sidebar, " +"illustrated below. To use the object editor, a single object must first be " +"selected. See ." msgstr "" -"Alles sieht gut aus, also können wir jetzt den Drucker mit den entsprechenden " -"Etiketten bestücken, die Adressetiketten drucken und die Einladungen zur " -"Party versenden." +"Die meisten Objekteigenschaften können Sie über die Objekteditor-Seitenleiste " +"verändern, wie unten illustriert. Um den Objekteditor zu verwenden, muss " +"zunächst ein einzelnes Objekt ausgewählt werden. Siehe ." -#: C/glabels.xml:1431(title) +#. ==== End of Figure ==== +#: C/editprop.page:40(p) msgid "" -"Example 3: Address Labels Using the Evolution " -"Addressbook" +"The object editor will contain a subset of the following tabbed sections, " +"depending on object type:" msgstr "" -"Beispiel 3: Adressetiketten unter Nutzung des Evolution-Adressbuchs" +"Der Objekteditor bietet eine Auswahl der folgenden Reiter, abhängig vom " +"Objekttyp:" + +#: C/editprop.page:44(title) +msgid "Text Tabbed Section (Text objects)" +msgstr "Text-Reiter (Textobjekte)" -#: C/glabels.xml:1433(para) +#: C/editprop.page:46(p) msgid "" -"Our last party was a great success, and now we need to print mailing address " -"labels for the invitations to a new one. To simplify this, we can use the " -"Evolution addressbook, because the address data of " -"all our friends is stored there." +"This section contains a small editor for changing the content of a text " +"object. It also contains a dropdown menu of available document merge keys, " +"that can be inserted into text." msgstr "" -"Ihre letzte Party war ein voller Erfolg. Nun benötigen Sie wieder " -"Adressetiketten für die Einladung zu einer neuen Party. Um dies zu " -"vereinfachen, können Sie das Evolution-Adressbuch " -"nutzen, denn die Adressdaten aller Ihrer Freunde sind dort gespeichert." - -#: C/glabels.xml:1439(para) -msgid "" -"Depending on how your copy of gLabels was " -"packaged, this option could be unavailable. Support for the " -"Evolution addressbook will only be available if " -"the evolution-data-server and its development " -"files were present when gLabels was built. Please " -"keep this in mind if you build gLabels directly " -"from source." -msgstr "" -"Abhängig davon, wie das von Ihnen genutzte gLabels-" -"Paket erstellt wurde, könnte diese Option nicht verfügbar sein. Die " -"Unterstützung für das Evolution-Adressbuch ist nur " -"vorhanden, wenn bei der Erstellung von gLabels das " -"Paket evolution-data-server sowie dessen " -"Entwicklerdateien verfügbar waren. Bitte berücksichtigen dies auch dann, wenn " -"Sie gLabels direkt aus den Quellen erstellen." - -#: C/glabels.xml:1445(para) -msgid "" -"If the gLabels package from your distribution " -"lacks this support, you may wish to contact the package maintainer or file a " -"bug against the package to request it." -msgstr "" -"Falls das gLabels-Paket Ihrer Distribution diese " -"Unterstützung nicht bieten sollte, kontaktieren Sie bitte den Ersteller des " -"Pakets oder senden Sie einen Fehlerbericht, um dies einzufordern." - -#: C/glabels.xml:1450(para) -msgid "" -"In glabels we have created a new " -"gLabels document using the Avery 5512 \"Address " -"Labels\" template. Next we use the ObjectsMerge Properties menu item to " -"display the Merge properties dialog. We use this dialog " -"to select the source type (in our case Data from default Evolution " -"addressbook) as shown." -msgstr "" -"In glabels haben Sie ein neues Dokument unter " -"Verwendung der Dokumentvorlage »Avery 5512 Adressetiketten« erzeugt. Zunächst " -"öffnen Sie mittels ObjekteMischeinstellungen den Dialog " -"Mischeinstellungen. In diesem Dialog wählen Sie wie " -"gezeigt die Datenquelle aus, in diesem Fall Daten aus dem " -"vorgegebenen Evolution-Adressbuch, wie gezeigt." +"Dieser Abschnitt bietet einen kleinen Editor zum Bearbeiten des Inhalts eines " +"Textobjekts. Weiterhin ist ein Ausklappmenü mit den verfügbaren Schlüsseln " +"zur Dokumentmischung enthalten, die in den Text eingefügt werden können." -#. ==== End of Figure ==== -#: C/glabels.xml:1471(para) -msgid "" -"Once we have chosen Data from default Evolution addressbook as our merge source, we will get a full list of its content. " -"Initially, all entries are checked. Assuming we were planning a really big " -"party, we could leave this selection untouched (but let's keep our budget in " -"mind). We will now select or unselect certain entries by clicking on the " -"appropriate checkboxes, or we could use the Select all " -"and Unselect all buttons to activate or deactivate " -"all entries in the address book." -msgstr "" -"Sobald Sie Daten aus dem vorgegebenem Evolution-Adressbuch als Mischquelle gewählt haben, wird eine vollständige Liste des " -"Inhalts angezeigt. Anfänglich sind alle Einträge ausgewählt. Angenommen, Sie " -"planen eine wirklich große Party, können Sie die Auswahl unverändert " -"belassen. Behalten Sie jedoch dabei Ihre finanziellen Möglichkeiten im Auge. " -"Sie können bestimmte Einträge auswählen oder wieder abwählen, indem Sie die " -"entsprechenden Ankreuzfelder anklicken. Alternativ können Sie durch Anklicken " -"der Knöpfe Alle markieren oder Markierung " -"aufheben alle Einträge des Adressbuchs aktivieren oder " -"deaktivieren. " +#: C/editprop.page:53(title) +msgid "Image Tabbed Section (Image objects)" +msgstr "Bild-Reiter (Bild-Objekte)" -#: C/glabels.xml:1479(para) +#: C/editprop.page:55(p) msgid "" -"We can also view each entry in more detail by clicking on the appropriate " -"expander (the little triangles) as shown. Once we are satisfied with the " -"selections in this dialog, we will click the OK button " -"to accept the changes." +"This section contains a file entry with preview to select image files. The " +"browse button can be used to easily locate image files. Alternatively, a " +"document merge key can be used instead to provide a filename at print time." msgstr "" -"Sie können jeden Datensatz detailliert betrachten, indem Sie auf die kleinen " -"Dreiecke klicken. Sobald Sie mit der Auswahl zufrieden sind, klicken Sie auf " -"OK, um die Änderungen anzuwenden." +"Dieser Abschnitt enthält einen Dateiwähler mit Vorschau zur Auswahl von " +"Bilddateien. Der »Durchsuchen«-Knopf kann zum Suchen von Bilddateien benutzt " +"werden. Alternativ können Sie einen Schlüssel zur Dokumenteinmischung " +"anstelle eines Dateinamens angeben, der bei der Ausgabe des Dokuments ersetzt " +"wird." -#: C/glabels.xml:1484(para) -msgid "Now we start adding objects to our glabels document as shown." -msgstr "" -"Nun beginnen wir mit dem Hinzufügen von Objekten zu unserem " -"gLabels-Dokument, wie gezeigt." +#: C/editprop.page:63(title) +msgid "Data Tabbed Section (Barcode objects)" +msgstr "Daten-Reiter (Strichcode-Objekte)" -#. ==== End of Figure ==== -#: C/glabels.xml:1499(para) +#: C/editprop.page:65(p) msgid "" -"In this example we have a single text object again. This text object contains " -"all of our merge fields organized on multiple lines as a mailing address." +"This section contains a text entry to enter literal barcode data. " +"Alternatively, a document merge key can be used to provide this data at print " +"time." msgstr "" -"In diesem Beispiel haben Sie ein einzelnes Textobjekt. Dieses Textobjekt " -"enthält alle Einmischfelder, angeordnet in mehreren Zeilen wie eine " -"Versandadresse." +"Dieser Abschnitt enthält ein Textfeld zur Eingabe von Strichcode-Daten. " +"Alternativ kann hier ein Schlüssel zur Dokumentmischung eingetragen werden, " +"der beim Druck für die Bereitstellung der richtigen Daten sorgt." + +#: C/editprop.page:72(title) +msgid "Style Tabbed Section (Text objects)" +msgstr "Stil-Reiter (Text-Objekte)" -#: C/glabels.xml:1502(para) +#: C/editprop.page:74(p) msgid "" -"Now we can print our address labels by selecting the " -"FilePrint menu item. This will display the print dialog as shown below." +"This section contains controls to select text properties, including font " +"family, font size, font weight, color, and text justification." msgstr "" -"Nun können Sie Ihre Adressetiketten drucken, indem Sie " -"DateiDrucken wählen. Der unten angezeigte Druckdialog wird geöffnet." - -#: C/glabels.xml:1551(title) -msgid "Manually Creating New Templates" -msgstr "Manuelles Erstellen neuer Vorlagen" - -#: C/glabels.xml:1553(para) -msgid "" -"Predefined templates are defined by XML files located in ${prefix}/" -"share/glabels/, where ${prefix} is usually " -"something like /usr/local or /usr " -"depending on the configuration option prefix. " -"gLabels will use all files of the form *-" -"templates.xml or *.template, that it finds in " -"${prefix}/share/glabels/ and ${HOME}/.glabels/" -". Additional templates can be added by creating additional " -"*.template files in either of these directories." -msgstr "" -"Vordefinierte Vorlagen sind als XML-Dateien verfügbar, die in " -"${prefix}/share/glabels/ gespeichert sind, wobei " -"${prefix} üblicherweise /usr/local oder " -"/usr ist, abhängig von der Konfigurationsoption " -"prefix. gLabels verwendet " -"alle Dateien der Form *-templates.xml oder *." -"template, die es in ${prefix}/share/glabels/ " -"und ${HOME}/.glabels/ findet. Zusätzliche Vorlagen " -"können unter Verwendung der Dateiendung *.template in " -"einem dieser Ordner gespeichert werden." - -#: C/glabels.xml:1566(para) -msgid "" -"The format for these files is defined in the DTD: glabels-2.2.dtd. (This DTD also describes other XML formats used by " -"gLabels.)" -msgstr "" -"Das Format dieser Dateien ist in einer DTD definiert: glabels-2.2." -"dtd. Diese DTD beschreibt außerdem weitere von gLabels benutzte XML-" -"Formate." +"Dieser Abschnitt enthält Einstellmöglichkeiten für die Texteigenschaften, wie " +"Schriftfamilie, Schriftgröße, Schriftstärke, Schriftfarbe und Ausrichtung des " +"Texts." -#: C/glabels.xml:1572(title) -msgid "Assumptions/caveats" -msgstr "Voraussetzungen" +#: C/editprop.page:81(title) +msgid "Style Tabbed Section (Barcode objects)" +msgstr "Stil-Reiter (Strichcode-Objekte)" -#: C/glabels.xml:1575(para) +#: C/editprop.page:83(p) msgid "" -"A sheet contains only one size of label or card (if a sheet contains more " -"than one size of item, it can be split into multiple templates for multiple " -"pass printing)" +"This section contains controls to select barcode properties, including " +"barcode style, color, whether to print text, and whether to include a " +"checksum digit." msgstr "" -"Eine Seite enthält nur eine Etiketten- oder Kartengröße. Falls eine Seite " -"mehrere Größen enthält, kann sie für das Drucken in mehreren Durchläufen über " -"mehrere Vorlagen verteilt werden." +"Dieser Abschnitt enthält Einstellmöglichkeiten für die Eigenschaften des " +"Strichcodes, wie Stil, Farbe, Drucken von Text oder Beinhalten einer " +"Prüfsumme." + +#: C/editprop.page:90(title) +msgid "Line Tabbed Section" +msgstr "Linie-Reiter" -#: C/glabels.xml:1580(para) +#: C/editprop.page:92(p) msgid "" -"Distances can be expressed in units of pt, in, mm, cm, or pc. For example: \"1.0in\" or \"2.54cm\". If no units are specified, computer points (pt) will be assumed (1 pt = 1/72 in = 0.352778 mm)." +"This section contains controls to select properties of lines and outlines. " +"These properties include line width and color." msgstr "" -"Abstände können in den Einheiten pt, in, mm, cm oder " -"pc ausgedrückt werden. Beispiel: »1.0in« oder »2.54cm«. Falls keine Einheiten angegeben " -"werden, nimmt der Rechner Punkt an. ein Punkt (pt) " -"entspricht = 1/72 in = 0.352778 mm." +"Dieser Abschnitt enthält Einstellmöglichkeiten für die Auswahl von " +"Eigenschaften von Linien und Begrenzungen, wie Linienbreite und -farbe." -#: C/glabels.xml:1593(title) -msgid "Template Files" -msgstr "Vorlagedateien" +#: C/editprop.page:98(title) +msgid "Fill Tabbed Section" +msgstr "Füllung-Reiter" -#: C/glabels.xml:1595(programlisting) -#, no-wrap +#: C/editprop.page:100(p) msgid "" -"\n" -"<?xml version=\"1.0\"?>\n" -"<Glabels-templates>\n" -"\n" -" ...templates...\n" -"\n" -"</Glabels-templates>\n" -" " +"This section contains controls to select fill properties of box and ellipse " +"objects. Currently the only fill property is fill color." msgstr "" -"\n" -"<?xml version=\"1.0\"?>\n" -"<Glabels-templates>\n" -"\n" -" ...Vorlagen...\n" -"\n" -"</Glabels-templates>\n" -" " +"Dieser Abschnitt enthält Einstellmöglichkeiten für die Auswahl der " +"Füllungseigenschaften von Rechteck- und Ellipsenobjekten. Derzeit ist nur die " +"Einstellung der Füllungsfarbe möglich." -#: C/glabels.xml:1607(title) -msgid "Example Template" -msgstr "Beispielvorlage" +#: C/editprop.page:107(title) +msgid "Size Tabbed Section (All except line objects)" +msgstr "Reiter »Größe« (alle außer Linienobjekte)" -#: C/glabels.xml:1608(programlisting) -#, no-wrap +#: C/editprop.page:109(p) msgid "" -"\n" -" <Template brand=\"Avery\" part=\"8160\" size=\"US-Letter\" description=\"Mailing Labels\">\n" -" <Label-rectangle id=\"0\" width=\"189pt\" height=\"72pt\" round=\"5pt\">\n" -" <Markup-margin size=\"5pt\"/>\n" -" <Layout nx=\"3\" ny=\"10\" x0=\"11.25pt\" y0=\"36pt\" dx=\"200pt\" dy=\"72pt\"/>\n" -" </Label-rectangle>\n" -" <Alias brand=\"Avery\" part=\"5160\"/>\n" -" <Alias brand=\"Avery\" part=\"6233\"/>\n" -" </Template>\n" -" " +"This section contains controls to select the width and height of an object. A " +"checkbox is provided, so that the current aspect ratio can be locked while " +"manipulating the width and height controls. Image objects also provide a " +"button to reset the size to the image's natural size (Assumes 72DPI)." msgstr "" -"\n" -" <Template brand=\"Avery\" part=\"8160\" size=\"US-Letter\" description=\"Mailing Labels\">\n" -" <Label-rectangle id=\"0\" width=\"189pt\" height=\"72pt\" round=\"5pt\">\n" -" <Markup-margin size=\"5pt\"/>\n" -" <Layout nx=\"3\" ny=\"10\" x0=\"11.25pt\" y0=\"36pt\" dx=\"200pt\" dy=\"72pt\"/>\n" -" </Label-rectangle>\n" -" <Alias brand=\"Avery\" part=\"5160\"/>\n" -" <Alias brand=\"Avery\" part=\"6233\"/>\n" -" </Template>\n" -" " +"Dieser Abschnitt enthält Einstellmöglichkeiten für die Höhe und die Breite " +"eines Objekts. Mit einem Ankreuzfeld können Sie die Werte aneinander koppeln, " +"so dass das Seitenverhältnis beim Ändern der Höhe oder Breite erhalten " +"bleibt. Für Bildobjekte gibt es außerdem einen Knopf zum Zurücksetzen des " +"Bildes auf Originalgröße, wobei eine Auflösung von 72 dpi angenommen wird." -#: C/glabels.xml:1621(title) -msgid "Template Node" -msgstr "Knoten »Template«" +#: C/editprop.page:118(title) +msgid "Size Tabbed Section (Line objects)" +msgstr "Reiter »Größe« (Linienobjekte)" -#: C/glabels.xml:1623(para) +#: C/editprop.page:120(p) msgid "" -"A Template node describes a single stationary product. " -"It must contain one instance of any type of Label node (Label-" -"rectangle, Label-round, or Label-" -"cd). This node can be followed by zero or more Alias nodes." +"This section contains controls to select the length and angle of a line " +"object." msgstr "" -"Ein Template-Knoten beschreibt ein einzelnes Produkt. Es " -"muss eine Instanz eines der anderen Label-Knoten (Label-rectangle, Label-round, or Label-cd) enthalten. Auf diesen Knoten können einer, mehrere oder kein " -"Alias-Knoten folgen." - -#: C/glabels.xml:1637(para) C/glabels.xml:1712(para) C/glabels.xml:1789(para) -#: C/glabels.xml:1834(para) C/glabels.xml:1910(para) C/glabels.xml:1943(para) -#: C/glabels.xml:1994(para) C/glabels.xml:2037(para) C/glabels.xml:2096(para) -#: C/glabels.xml:2173(para) -msgid "Property" -msgstr "Eigenschaft" - -#: C/glabels.xml:1640(para) C/glabels.xml:1715(para) C/glabels.xml:1792(para) -#: C/glabels.xml:1837(para) C/glabels.xml:1913(para) C/glabels.xml:1946(para) -#: C/glabels.xml:1997(para) C/glabels.xml:2040(para) C/glabels.xml:2099(para) -#: C/glabels.xml:2176(para) -msgid "Description" -msgstr "Beschreibung" - -#: C/glabels.xml:1646(para) C/glabels.xml:2182(para) -msgid "brand" -msgstr "brand" +"Dieser Abschnitt enthält Einstellmöglichkeiten für die Länge und den Winkel " +"eines Linienobjekts." -#: C/glabels.xml:1648(para) -msgid "Brand or manufacturer of stationary product. E.g. \"Avery\"" -msgstr "Marke oder Hersteller des Produkts, z.B. »Avery«" +#: C/editprop.page:126(title) +msgid "Position Tabbed Section" +msgstr "Reiter »Position«" -#: C/glabels.xml:1653(para) C/glabels.xml:2188(para) -msgid "part" -msgstr "part" +#: C/editprop.page:128(p) +msgid "This section contains controls to change the position of an object." +msgstr "" +"Dieser Abschnitt beschreibt die Möglichkeiten zur Positionierung eines " +"Objekts." -#: C/glabels.xml:1655(para) -msgid "Part number or name of stationary product. E.g. \"8160\"" -msgstr "Bestellnummer oder Name des Produkts, z.B. »8160«" +#: C/editprop.page:135(title) +msgid "Shadow Tabbed Section (All except barcode objects)" +msgstr "Reiter »Schattierung« (alle außer Strichcodeobjekten)" -#: C/glabels.xml:1660(para) C/glabels.xml:1919(para) -msgid "size" -msgstr "size" +#: C/editprop.page:137(p) +msgid "This section contains controls to add a shadow to an object." +msgstr "" +"Dieser Abschnitt enthält Einstellmöglichkeiten für die Schattierung eines " +"Objekts." -#: C/glabels.xml:1662(para) -msgid "Size of sheet. E.g., \"US-Letter,\" \"A4\", ..." -msgstr "Größe des Papiers, z.B. »US-Letter«, »A4«, …" +#: C/editprop.page:146(title) +msgid "Other Manipulations of Objects" +msgstr "Andere Manipulationen von Objekten" -#: C/glabels.xml:1666(para) -msgid "description" -msgstr "description" +#: C/editprop.page:148(p) +msgid "Objects can also be manipulated in the following ways." +msgstr "Objekte können auf die folgenden Arten manipuliert werden." -#: C/glabels.xml:1668(para) -msgid "Description of stationary product. E.g, \"Mailing Labels.\"" -msgstr "Beschreibung des Produkts, z.B. »Mailing Labels«." +#: C/editprop.page:151(title) +msgid "Moving and Resizing Objects" +msgstr "Verschieben und Größenänderung von Objekten" -#: C/glabels.xml:1673(para) -msgid "_description" -msgstr "_description" +#: C/editprop.page:153(p) +msgid "" +"Objects can be moved by simply clicking on a selected object and dragging the " +"object to its new location. If the object is part of an aggregate selection, " +"all objects in the selection will move with the object being dragged, " +"maintaining their relative positions to one another. If no object is " +"selected, clicking on an object will create a new selection containing that " +"object. See ." +msgstr "" +"Objekte können Sie durch einfaches Anklicken und Ziehen des ausgewählten " +"Objekts zur neuen Position verschieben. Falls dieses Objekt Teil einer " +"Mehrfachauswahl ist, werden durch Ziehen dieses Objektes alle Objekte " +"verschoben, wobei deren Abstände untereinander erhalten bleiben. Falls kein " +"Objekt ausgewählt ist, wird durch Anklicken eines Objekts eine neue Auswahl " +"erzeugt, die dieses Objekt enthält. Siehe ." -#: C/glabels.xml:1675(para) +#: C/editprop.page:161(p) msgid "" -"Translatable description of stationary product. E.g, \"Mailing Labels." -"\" (Only useful for predefined templates)" +"A selected object can be resized by clicking one of its resize handle and " +"dragging it to obtain the new size." msgstr "" -"Übersetzbare Beschreibung des Produkts, z.B. »Mailing Labels« (nur sinnvoll " -"für vordefinierte Vorlagen)" +"Die Größe eines ausgewählten Objekts kann geändert werden, indem Sie auf " +"einen der Größenänderungs-Anfasspunkte klicken und diesen ziehen, um die " +"gewünschte Größe zu erreichen." -#: C/glabels.xml:1681(para) C/glabels.xml:1727(para) C/glabels.xml:1857(para) -msgid "width" -msgstr "width" +#: C/editprop.page:167(title) +msgid "Changing Stacking Order" +msgstr "Ändern der Reihenfolge der Ebenen" -#: C/glabels.xml:1683(para) -msgid "Page width. Only valid if size=\"Other\"" -msgstr "Seitenbreite. Nur gültig, wenn als Größe »Other« festgelegt ist." +#: C/editprop.page:169(p) +msgid "" +"Stacking order refers to relative position in the z-axis of objects. That is " +"when objects overlap, which object will appear on top of the other. By " +"default, newer objects will appear above older objects. To change this order, " +"select one or more objects and choose ObjectsOrderBring to Front to raise the selection to the top of " +"the stacking order, or choose ObjectsOrderSend to Back to lower the selection to the bottom of " +"the stacking order. These menuitems are also available by right-clicking the " +"display area when there is a non-empty selection." +msgstr "" +"Die Stapelreihenfolge bezieht sich auf die relative Position in der Z-Achse " +"von Objekten. Das beschreibt beim Überlappen von Objekten, welches der " +"Objekte über den anderen erscheint. Per Vorgabe werden neue Objekte immer " +"oberhalb von bereits vorhandenen Objekten platziert. Um diese Anordnung zu " +"ändern, wählen Sie ObjekteAnordnungGanz " +"nach vorn, um die Auswahl im Stapel nach oben zu verschieben, " +"oder ObjekteAnordnungGanz nach hinten, um die Auswahl im Stapel nach unten zu verschieben. Diese " +"Menüeinträge sind auch durch einen Klick mit der rechten Maustaste auf den " +"Ansichtsbereich verfügbar, falls sich dort eine nicht leere Auswahl befindet." + +#: C/editprop.page:187(title) +msgid "Rotating and Flipping Objects" +msgstr "Drehen und Spiegeln von Objekten" -#: C/glabels.xml:1687(para) C/glabels.xml:1731(para) C/glabels.xml:1864(para) -msgid "height" -msgstr "height" +#: C/editprop.page:189(p) +msgid "" +"Objects can be rotated 90 degrees in either direction, or flipped " +"horizontally or vertically, by choosing the appropriate menuitem in the " +"ObjectsRotate/Flip sub-menu. These " +"menuitems are also available by right-clicking the display area when there is " +"a non-empty selection." +msgstr "" +"Objekte können um 90 Grad in jeder Richtung gedreht oder horizontal oder " +"vertikal gespiegelt werden. Wählen Sie hierzu den entsprechenden Eintrag im " +"Menü ObjekteDrehen/Spiegeln. Diese " +"Menüeinträge sind auch verfügbar, wenn Sie mit der rechten Maustaste in eine " +"nicht leere Auswahl im Ansichtsbereich klicken." -#: C/glabels.xml:1689(para) -msgid "Page height. Only valid if size=\"Other\"" -msgstr "Seitenhöhe. Nur gültig, wenn als Größe »Other« festgelegt ist." +#: C/editprop.page:197(p) +msgid "" +"This feature could be useful when you are designing CD box inlays. For the " +"spine caption, you need vertical aligned text. After you have created a basic " +"text box, choose ObjectsRotate/Flip to " +"rotate the text box according to your needs." +msgstr "" +"Dieses Funktionsmerkmal kann nützlich sein, wenn Sie Einleger für CD-Boxen " +"entwerfen. Für die Beschriftung der Schmalseite benötigen sie vertikal " +"laufenden Text. Nachdem Sie das Textobjekt erstellt haben, wählen Sie " +"ObjekteDrehen/Spiegeln, um das " +"Textobjekt Ihren Erfordernissen entsprechend auszurichten." -#: C/glabels.xml:1699(title) -msgid "Label-rectangle Node" -msgstr "Knoten »Label-rectangle«" +#: C/editprop.page:208(title) +msgid "Aligning Objects" +msgstr "Ausrichten von Objekten" -#: C/glabels.xml:1701(para) +#: C/editprop.page:210(p) msgid "" -"A Label-rectangle node describes the dimensions of a " -"single label or business card that is rectangular in shape (may have rounded " -"edges)." +"Objects can be aligned horizontally or vertically, relative to one another, " +"or relative to the center line of the label, by choosing the appropriate " +"menuitem from the ObjectsAlign Horizontal or ObjectsAlign Vertical sub-" +"menus. These menuitems are also available by right-clicking the display area " +"when there is a non-empty selection." msgstr "" -"Ein Label-rectangle-Knoten beschreibt die Abmessungen " -"eines einzelnen Etiketts oder einer einzelnen Karte in rechteckiger Form, " -"wobei abgerundete Ecken möglich sind." - -#: C/glabels.xml:1721(para) C/glabels.xml:1798(para) C/glabels.xml:1843(para) -msgid "id" -msgstr "id" +"Objekte können horizontal oder vertikal zu einem anderen Objekt oder relativ " +"zu einer Mittellinie des Etiketts angeordnet werden, indem Sie " +"ObjekteHorizontal ausrichten oder " +"ObjekteVertikal ausrichten wählen. " +"Diese Menüeinträge sind auch verfügbar, wenn Sie mit der rechten Maustaste in " +"eine nicht leere Auswahl im Ansichtsbereich klicken." -#: C/glabels.xml:1723(para) C/glabels.xml:1800(para) C/glabels.xml:1845(para) -msgid "Reserved for future use. Should always be 0." -msgstr "Für zukünftige Verwendung reserviert. Sollte immer 0 sein." +#: C/editprop.page:223(title) +msgid "Using the Property Bar" +msgstr "Verwendung der Eigenschaftsleiste" -#: C/glabels.xml:1728(para) -msgid "Width of label/card" -msgstr "Breite des Etiketts oder der Karte" +#: C/editprop.page:225(p) +msgid "" +"The property bar can be used to change some common properties of objects en-" +"masse. These properties include font family, font size, font weight, text " +"alignment, text color, fill color, line or outline color, and line width. The " +"property bar also controls the defaults for these properties for any newly " +"created objects." +msgstr "" +"Mit der Eigenschaftsleiste können Sie einige Eigenschaften von Objekten in " +"einem Arbeitsgang ändern. Diese Eigenschaften umfassen Schriftfamilie, " +"Schriftgröße, Schriftstärke, Textausrichtung, Textfarbe, Füllfarbe, Farbe von " +"Linien oder Begrenzungen sowie Linienbreiten. Die Eigenschaftsleiste regelt " +"auch die Vorgaben für diese Eigenschaften, wenn neue Objekte erzeugt werden." -#: C/glabels.xml:1732(para) -msgid "Height of label/card" -msgstr "Höhe des Etiketts oder der Karte" +#: C/customtemplate.page:9(desc) +msgid "Create your own templates for stationery products." +msgstr "" +"Erstellen Ihrer eigenen Vorlagen für Ihre Etiketten- und Visitenkartenbögen." -#: C/glabels.xml:1735(para) -msgid "round" -msgstr "round" +#: C/customtemplate.page:25(title) +msgid "To create a custom template" +msgstr "Erstellen einer benutzerdefinierten Vorlage" -#: C/glabels.xml:1737(para) +#: C/customtemplate.page:27(p) msgid "" -"Radius of corners. For items with square edges (business cards), the radius " -"should be 0." +"To create a new custom template, choose FileTemplate " +"Designer ... to display the Template Designer " +"dialog. This dialog will assist you in creating a custom template for most " +"types of label or card stationery that you may encounter." msgstr "" -"Radius der Ecken. Für Objekte mit nicht abgerundeten Ecken (Visitenkarten) " -"sollte der Radius 0 sein." - -#: C/glabels.xml:1742(para) -msgid "x_waste" -msgstr "x_waste" +"Um eine neue benutzerdefinierte Vorlage zu erstellen, wählen Sie " +"DateiVorlagen-Designer …, um den " +"Vorlagen-Designer-Dialog anzuzeigen. Dieser Dialog hilft Ihnen bei " +"der Erstellung einer benutzerdefinierten Vorlage für die meisten Typen von " +"Etiketten oder Visitenkarten, die Ihnen in Schreibwarengeschäften begegnen " +"könnten." -#: C/glabels.xml:1744(para) +#: C/customtemplate.page:34(p) msgid "" -"Amount of horizontal waste (over-print) to allow. This is useful for " -"minimizing alignment problems when using non-white backgrounds (e.g. images)." +"If you prefer, you can create your templates manually. For this option see " +"" msgstr "" -"Erlaubte Breite des horizontalen Überdruckens. Dies minimiert " -"Ausrichtungsprobleme auf anderen als weißen Hintergründen (z.B. Bilder)." +"Falls Sie dies bevorzugen, können Sie Ihre Vorlagen auch manuell erstellen. " +"Weitere Informationen hierzu finden Sie in " -#: C/glabels.xml:1750(para) -msgid "y_waste" -msgstr "y_waste" +#: C/customize.page:9(desc) +msgid "Customize gLabels to match your needs." +msgstr "Anpassen von gLabels an Ihre Bedürfnisse." -#: C/glabels.xml:1752(para) +#. Use this section to describe how to customize the application. +#: C/customize.page:25(title) +msgid "Settings" +msgstr "Einstellungen" + +#: C/customize.page:26(p) msgid "" -"Amount of vertical waste (over-print) to allow. This is useful for minimizing " -"alignment problems when using non-white backgrounds (e.g. images)." +"To configure gLabels, choose SettingsPreferences. The Preferences dialog " +"contains the following tabbed sections:" msgstr "" -"Erlaubte Breite des vertikalen Überdruckens. Dies minimiert " -"Ausrichtungsprobleme auf anderen als weißen Hintergründen (z.B. Bilder)." +"Um gLabels zu konfigurieren, wählen Sie " +"EinstellungenEinstellungen. Der Dialog " +"Einstellungen enthält die folgenden Reiter:" -#: C/glabels.xml:1763(title) -msgid "Label-rectangle Parameters" -msgstr "Parameter zu Label-rectangle " +#: C/customize.page:35(title) +msgid "Locale" +msgstr "Lokale Einstellungen" -#: C/glabels.xml:1777(title) -msgid "Label-round Node" -msgstr "Knoten »Label-round«" +#: C/customize.page:37(title) +msgid "Units" +msgstr "Einheiten" -#: C/glabels.xml:1779(para) +#: C/customize.page:38(p) msgid "" -"A Label-round node describes the dimensions of a simple " -"round label (not a CD)." +"Use this radio button group to specify your preferred units. Select one of " +"the following options:" msgstr "" -"Ein Label-round-Knoten beschreibt die Abmessungen eines " -"einfachen Rundetiketts (nicht einer CD)." +"Verwenden Sie diese Radioknöpfe, um Ihre bevorzugten Maßeinheiten " +"festzulegen. Wählen Sie aus den folgenden Optionen:" -#: C/glabels.xml:1804(para) C/glabels.xml:1849(para) C/glabels.xml:2015(para) -msgid "radius" -msgstr "radius" +#: C/customize.page:42(gui) +msgid "Points" +msgstr "Punkte" + +#: C/customize.page:43(p) +msgid "Use points (1 point = 1/72 in = 0.352778 mm)." +msgstr "Punkte verwenden (1 Punkt = 1/72 Zoll = 0.352778 mm)." + +#: C/customize.page:46(gui) +msgid "Inches" +msgstr "Zoll" + +#: C/customize.page:47(p) +msgid "Use Inches." +msgstr "Zoll verwenden." + +#: C/customize.page:50(gui) +msgid "Millimeters" +msgstr "Millimeter" + +#: C/customize.page:51(p) +msgid "Use Millimeters." +msgstr "Millimeter verwenden." -#: C/glabels.xml:1805(para) -msgid "Radius (1/2 diameter) of label" -msgstr "Radius (halber Durchmesser) des Etiketts" +#: C/customize.page:54(p) +msgid "Default: Inches." +msgstr "Standard: Zoll." -#: C/glabels.xml:1808(para) C/glabels.xml:1871(para) -msgid "waste" -msgstr "waste" +#: C/customize.page:58(title) +msgid "Default page size" +msgstr "Vorgegebene Seitengröße" -#: C/glabels.xml:1810(para) C/glabels.xml:1873(para) +#: C/customize.page:59(p) msgid "" -"Amount of waste (over-print) to allow. This is useful for minimizing " -"alignment problems when using non-white backgrounds (e.g. images)." +"Use this radio button group to specify your prefered page size. This will " +"make it quicker for you to locate media types when creating a new label or " +"card." msgstr "" -"Erlaubte Breite des Überdruckens. Dies minimiert Ausrichtungsprobleme auf " -"anderen als weißen Hintergründen (z.B. Bilder)." +"Verwenden Sie diese Radioknöpfe zur Auswahl Ihrer bevorzugten Papiergröße. " +"Dadurch lassen sich beim Erstellen neuer Etiketten oder Visitenkarten die " +"entsprechenden Papiertypen schneller finden." -#: C/glabels.xml:1822(title) -msgid "Label-cd Node" -msgstr "Knoten »Label-cd«" +#: C/customize.page:64(gui) +msgid "US Letter" +msgstr "US-Letter" -#: C/glabels.xml:1824(para) -msgid "" -"A Label-cd node describes the dimensions of a CD, DVD, " -"or business card CD." -msgstr "" -"Ein Label-cd-Knoten beschreibt die Abmessungen einer CD, " -"DVD oder Visitenkarten-CD." +#: C/customize.page:65(p) +msgid "Most of your media will be of the US Letter page size (8.5 x 11 inches)." +msgstr "Die meisten Ihrer Medien haben das US-Letter-Format (8.5 x 11 inches)." -#: C/glabels.xml:1850(para) -msgid "Outer radius of label" -msgstr "Äußerer Radius des Etiketts" +#: C/customize.page:68(gui) +msgid "ISO A4" +msgstr "ISO A4" -#: C/glabels.xml:1853(para) -msgid "hole" -msgstr "hole" +#: C/customize.page:69(p) +msgid "Most of your media will be of the ISO A4 page size (210 x 297 mm)." +msgstr "Die meisten Ihrer Medien haben das ISO-A4-Format (210 x 297 mm)." -#: C/glabels.xml:1854(para) -msgid "Radius of concentric hole" -msgstr "Radius des Mittellochs" +#: C/customize.page:72(p) +msgid "Default: US Letter." +msgstr "Standard: US-Letter." -#: C/glabels.xml:1859(para) +#: C/customize.page:77(title) +msgid "Object Defaults" +msgstr "Objekt-Vorgaben" + +#: C/customize.page:80(title) C/createnew.page:39(title) +msgid "Text" +msgstr "Text" + +#: C/customize.page:81(p) msgid "" -"If present, the label is clipped to the given width. (Useful for \"business " -"card CDs\")." +"Use these controls to set the default properties of new text objects. These " +"properties are:" msgstr "" -"Falls vorhanden, wird das Etikett auf die angegebene Größe begrenzt (nützlich " -"für »Visitenkarten-CDs«)" +"Verwenden Sie diese Einstellmöglichkeiten, um die Standardeigenschaften neuer " +"Textobjekte festzulegen. Diese Eigenschaften sind:" + +#: C/customize.page:85(gui) +msgid "Font" +msgstr "Schrift" -#: C/glabels.xml:1866(para) +#: C/customize.page:86(p) msgid "" -"If present, the label is clipped to the given height. (Useful for \"business " -"card CDs\")." +"These controls are used to select font family and font size, and whether the " +"font should bold or in italics." msgstr "" -"Falls vorhanden, wird das Etikett auf die angegebene Höhe begrenzt (nützlich " -"für »Visitenkarten-CDs«)" +"Verwenden Sie diese Einstellmöglichkeiten, um die Schriftfamilie und -größe " +"festzulegen, sowie um anzugeben, ob die Schrift fett oder kursiv dargestellt " +"werden soll." -#: C/glabels.xml:1884(title) -msgid "CD Label Parameters" -msgstr "CD-Label-Parameter" +#: C/customize.page:90(gui) C/customize.page:110(gui) C/customize.page:122(gui) +msgid "Color" +msgstr "Farbe" -#: C/glabels.xml:1898(title) -msgid "Markup-margin Node" -msgstr "Knoten »Markup-margin«" +#: C/customize.page:91(p) +msgid "This control selects the default text color." +msgstr "Diese Einstellung wählt die Standard-Textfarbe aus." -#: C/glabels.xml:1900(para) -msgid "" -"A Markup-margin describes a margin along all edges of a " -"label." -msgstr "" -"Ein Markup-margin-Knoten beschreibt die Ränder entlang " -"der Seiten eines Etiketts." +#: C/customize.page:94(gui) +msgid "Alignment" +msgstr "Ausrichtung" -#: C/glabels.xml:1921(para) +#: C/customize.page:95(p) msgid "" -"Size of the margin. I.e. the distance of the margin line from the edge of the " -"card/label." +"These controls are used to select the default text alignment (left, center or " +"right)." msgstr "" -"Randbreite. Die Breite des Bereichs zwischen der Randlinie und dem Rand des " -"Etiketts/der Karte." +"Mit diesen Einstellungen wählen Sie die vorgegebene Textausrichtung (links, " +"mittig oder rechts)." -#: C/glabels.xml:1932(title) -msgid "Markup-line Node" -msgstr "Knoten »Markup-line«" +#: C/customize.page:101(title) C/createnew.page:56(title) +msgid "Line" +msgstr "Linie" -#: C/glabels.xml:1934(para) -msgid "A Markup-line describes a markup line." +#: C/customize.page:102(p) +msgid "" +"Use these controls to set the default properties of lines and outlines of new " +"objects. These properties are:" msgstr "" -"Ein Markup-line-Knoten beschreibt eine Markierungslinie." - -#: C/glabels.xml:1952(para) C/glabels.xml:2046(para) -msgid "x1" -msgstr "x1" +"Verwenden sie diese Einstellmöglichkeiten, um die Standardeigenschaften von " +"Linien und Begrenzungen neuer Objekte festzulegen. Diese Eigenschaften sind:" -#: C/glabels.xml:1954(para) -msgid "x coordinate of 1st endpoint of the line segment." -msgstr "x-Koordinate des Anfangspunkts des Linienabschnitts." +#: C/customize.page:106(gui) +msgid "Width" +msgstr "Breite" -#: C/glabels.xml:1958(para) C/glabels.xml:2052(para) -msgid "y1" -msgstr "y1" +#: C/customize.page:107(p) +msgid "This control selects the default line width." +msgstr "Diese Einstellung wählt die Standard-Linienbreite aus." -#: C/glabels.xml:1960(para) -msgid "y coordinate of 1st endpoint of the line segment." -msgstr "y-Koordinate des Anfangspunkts des Linienabschnitts." +#: C/customize.page:111(p) +msgid "This control selects the default line color." +msgstr "Diese Einstellung wählt die Standard-Linienfarbe aus." -#: C/glabels.xml:1964(para) -msgid "x2" -msgstr "x2" +#: C/customize.page:117(title) +msgid "Fill" +msgstr "Füllen" -#: C/glabels.xml:1966(para) -msgid "x coordinate of 2nd endpoint of the line segment." -msgstr "x-Koordinate des Endpunkts des Linienabschnitts." +#: C/customize.page:118(p) +msgid "" +"Use this control to set the default fill property of new objects. This " +"property is:" +msgstr "" +"Verwenden Sie diese Einstellmöglichkeiten zum Angeben der " +"Füllungseigenschaften eines neuen Objekts. Diese Eigenschaften sind:" -#: C/glabels.xml:1970(para) -msgid "y2" -msgstr "y2" +#: C/customize.page:123(p) +msgid "This control selects the default fill color." +msgstr "Diese Einstellung wählt die Standard-Füllfarbe aus." -#: C/glabels.xml:1972(para) -msgid "y coordinate of 2nd endpoint of the line segment." -msgstr "y-Koordinate des Endpunkts des Linienabschnitts." +#: C/createnew.page:9(desc) +msgid "Create new objects within your document." +msgstr "Erstellen neuer Objekte in Ihrem Dokument." -#: C/glabels.xml:1982(title) -msgid "Markup-circle Node" -msgstr "Knoten »Markup-circle«" +#: C/createnew.page:25(title) +msgid "To create new objects" +msgstr "Erstellen neuer Objekte" -#: C/glabels.xml:1984(para) -msgid "A Markup-circle describes a markup circle." +#: C/createnew.page:27(p) +msgid "" +"Objects are created by choosing the appropriate selection under the " +"ObjectsCreate Object submenu or the " +"Drawing Toolbar. This will place the display area into object " +"creation mode as indicated by its cursor. To return to the default object " +"selection mode without creating an object, choose ObjectsSelect Mode. This will return the display area's " +"cursor to the default selection arrow." msgstr "" -"Ein Markup-circle-Knoten beschreibt einen " -"Markierungskreis." - -#: C/glabels.xml:2003(para) C/glabels.xml:2119(para) -msgid "x0" -msgstr "x0" +"Objekte können ausgewählt werden, indem Sie das entsprechende Objekt in " +"ObjekteErzeugen auswählen, oder über " +"die Zeichenwerkzeugleiste. Dadurch wird der Anzeigebereich in den " +"Objekterzeugungsmodus versetzt, was am Mauszeiger erkennbar ist. Um zum " +"vorgegebenen Objektauswahlmodus zurückzukehren, ohne ein Objekt zu erzeugen, " +"wählen Sie ObjekteAuswahlmodus. " +"Dadurch wird der Mauszeiger im Anzeigebereich wieder in den vorgegebenen " +"Auswahlzeiger geändert." + +#: C/createnew.page:35(p) +msgid "The following describes the object creation mode for each object type:" +msgstr "" +"Nachfolgend wird der Modus zur Erstellung der Objekte für jeden Objekttyp " +"beschrieben:" -#: C/glabels.xml:2005(para) -msgid "x coordinate of circle origin (center)." -msgstr "x-Koordinate des Kreismittelpunkts." +#: C/createnew.page:40(p) +msgid "" +"Click the desired location of the upper left corner of the text object. New " +"text objects are initialized with the string \"Text.\" To change this text, " +"or other properties, see ." +msgstr "" +"Klicken Sie auf die gewünschte Stelle in der linken oberen Ecke des " +"Textobjekts. Neue Textobjekte erhalten anfänglich den Inhalt »Text«. Wie Sie " +"diesen Text oder andere Eigenschaften ändern können, finden Sie in ." -#: C/glabels.xml:2009(para) C/glabels.xml:2126(para) -msgid "y0" -msgstr "y0" +#: C/createnew.page:47(title) +msgid "Box" +msgstr "Rechteck" -#: C/glabels.xml:2011(para) -msgid "y coordinate of circle origin (center)." -msgstr "y-Koordinate des Kreismittelpunkts." +#: C/createnew.page:48(p) +msgid "" +"Click the desired location of the upper left corner of the box object and " +"drag to the desired location of the lower right corner. If you simply click " +"in a single location, a square box will be created. To change properties of " +"the box object, see ." +msgstr "" +"Klicken Sie auf die gewünschte Stelle für die linke obere Ecke des " +"Rechteckobjekts und ziehen Sie zur gewünschten rechten unteren Ecke. Wenn Sie " +"einfach auf eine Stelle klicken, wird ein quadratisches Objekt erzeugt. Wie " +"Sie die Eigenschaften des Rechteckobjekts ändern können, finden Sie in ." -#: C/glabels.xml:2016(para) -msgid "Radius of circle." -msgstr "Radius des Kreises." +#: C/createnew.page:57(p) +msgid "" +"Click the desired location of one end of the line object and drag to the " +"desired location of the other end. If you simply click in a single location, " +"a diagonal line will be created. To change properties of the line object, see " +"." +msgstr "" +"Klicken Sie auf die gewünschte Stelle für das Ende des Linienobjekts und " +"ziehen Sie zur gewünschten Stelle des anderen Endes. Wenn Sie einfach auf " +"eine Stelle klicken, wird eine diagonale Linie erzeugt. Wie Sie die " +"Eigenschaften des Linienobjekts ändern können, finden Sie in ." -#: C/glabels.xml:2025(title) -msgid "Markup-rect Node" -msgstr "Knoten »Markup-rect«" +#: C/createnew.page:65(title) +msgid "Ellipse" +msgstr "Ellipse" -#: C/glabels.xml:2027(para) -msgid "A Markup-rect describes a markup rectangle." +#: C/createnew.page:66(p) +msgid "" +"Click the desired location of the upper left corner of the ellipse object and " +"drag to the desired location of the lower right corner. If you simply click " +"in a single location, a circle will be created. To change properties of the " +"ellipse object, see ." msgstr "" -"Ein Markup-rect-Knoten beschreibt ein " -"Markierungsrechteck." +"Klicken Sie auf die gewünschte Stelle für die linke obere Ecke des " +"Ellipsenobjekts und ziehen Sie zur gewünschten rechten unteren Ecke. Wenn Sie " +"einfach auf eine Stelle klicken, wird ein Kreis erzeugt. Wie Sie die " +"Eigenschaften des Ellipsenobjekts ändern können, finden Sie in ." -#: C/glabels.xml:2048(para) -msgid "x coordinate of upper left corner of rectangle." -msgstr "x-Koordinate der oberen linken Ecke des Rechtecks." +#: C/createnew.page:74(title) +msgid "Image" +msgstr "Image" -#: C/glabels.xml:2054(para) -msgid "y coordinate of upper left corner of rectangle." -msgstr "y-Koordinate der oberen linken Ecke des Rechtecks." +#: C/createnew.page:75(p) +msgid "" +"Click the desired location of the upper left corner of the image object and " +"drag to the desired location of the lower right corner. If you simply click " +"in a single location, a square will be created. New image objects are " +"initialized with a simple checkerboard image. To change this image, or other " +"properties of the image object, see ." +msgstr "" +"Klicken Sie auf die gewünschte Stelle für die linke obere Ecke des " +"Bildobjekts und ziehen Sie zur gewünschten rechten unteren Ecke. Wenn Sie " +"einfach auf eine Stelle klicken, wird ein quadratisches Objekt erzeugt. Neue " +"Bildobjekte erhalten anfänglich ein Schachbrettmuster. Wie Sie dies oder " +"andere Eigenschaften des Bildobjekts ändern können, finden Sie in ." -#: C/glabels.xml:2058(para) -msgid "w" -msgstr "w" +#: C/createnew.page:85(title) +msgid "Barcode" +msgstr "Strichcode" -#: C/glabels.xml:2060(para) -msgid "Width of rectangle." -msgstr "Breite des Rechtecks." +#: C/createnew.page:86(p) +msgid "" +"Click the desired location of the upper left corner of the barcode object. " +"New barcode objects are initialized to a POSTNET barcode with representative " +"data. To change data and properties of the barcode object, see ." +msgstr "" +"Klicken Sie auf die gewünschte Stelle für die linke obere Ecke des " +"Strichcodeobjekts und ziehen Sie zur gewünschten rechten unteren Ecke. Neue " +"Objekte erhalten anfänglich einen POSTNET-Strichcode mit Beispieldaten. Wie " +"Sie die Eigenschaften des Strichcodeobjekts ändern können, finden Sie in " +"." -#: C/glabels.xml:2064(para) -msgid "h" -msgstr "h" +#: C/basicusage.page:9(desc) +msgid "Handling files and quit the application." +msgstr "Umgang mit Dateien und Beenden der Anwendung." -#: C/glabels.xml:2066(para) -msgid "Height of rectangle." -msgstr "Höhe des Rechtecks." +#: C/basicusage.page:25(title) +msgid "Basic usage" +msgstr "Grundlegende Bedienung" -#: C/glabels.xml:2070(para) -msgid "r" -msgstr "r" +#: C/basicusage.page:28(title) +msgid "To open a file" +msgstr "Öffnen einer Datei" -#: C/glabels.xml:2071(para) -msgid "Radius of rounded corners of rectangle." -msgstr "Radius der abgerundeten Ecken des Rechtecks." +#: C/basicusage.page:30(p) +msgid "" +"To open a file, choose FileOpen to " +"display the Open File dialog. Select the file that you want to " +"open, then click OK. The file is displayed in the display area of " +"the gLabels window." +msgstr "" +"Um eine Datei zu öffnen, wählen Sie DateiÖffnen, um den Dialog Datei öffnen anzuzeigen. Wählen Sie " +"die gewünschte Datei aus und klicken Sie dann auf Öffnen. Die " +"Datei wird im Anzeigebereich des gLabels-Fensters geöffnet." -#: C/glabels.xml:2080(title) -msgid "Layout Node" -msgstr "Knoten »Layout«" +#: C/basicusage.page:37(p) +msgid "" +"You can also open multiple files in gLabels. The application " +"creates a separate application window for each open file." +msgstr "" +"Sie können in gLabels auch mehrere Dateien öffnen. Die Anwendung " +"erzeugt ein separates Fenster für jede geöffnete Datei." -#: C/glabels.xml:2082(para) +#: C/basicusage.page:41(p) msgid "" -"A label node may contain multiple Layout children. If " -"labels are arranged in a simple grid pattern, only one layout is needed. " -"However, if labels are arranged in multiple grids, such as a running bond " -"pattern, multiple layout tags can be used. Note: a " -"single label can always be treated as a grid of one." +"The application records the paths and filenames of the most recent files that " +"you have edited and displays the files as menu items on the " +"FileRecent Files menu." msgstr "" -"Ein Label-Knoten kann mehrere Layout-Unterknoten " -"enthalten. Wenn die Etiketten in einem einfachen rechteckigen Raster " -"angeordnet sind, dann wird nur ein Layout benötigt. Falls die Etiketten " -"jedoch in komplizierteren Rasteranordnungen vorliegen, können mehrere " -"Layout-Unterknoten verwendet werden. Beachten Sie, dass " -"ein einzelnes Etikett immer auch als ein Raster aus Etiketten betrachtet " -"werden kann." +"Die Anwendung speichert die Pfade und Dateinamen der von Ihnen zuletzt " +"bearbeiteten Dateien. Diese Dateien werden als Einträge im Menü " +"DateiZuletzt benutzt " +"angezeigt." -#: C/glabels.xml:2105(para) -msgid "nx" -msgstr "nx" +#: C/basicusage.page:48(title) +msgid "To close a file" +msgstr "Schließen einer Datei" -#: C/glabels.xml:2107(para) -msgid "Number of labels/cards across in the grid (horizontal)" -msgstr "Anzahl der Etiketten/Karten im Raster in horizontaler Richtung" +#: C/basicusage.page:50(p) +msgid "" +"To close the current document, choose FileClose to close the application window. If the current document is " +"modified, a confirmation dialog will be presented, allowing you to save the " +"document or cancel the command. If the window being closed is the only open " +"window, gLabels will exit." +msgstr "" +"Um das aktuelle Dokument zu schließen, wählen Sie DateiSchließen, um das Anwendungsfenster zu schließen. " +"Falls das aktuelle Dokument bearbeitet wurde, wird ein Bestätigungsdialog " +"geöffnet, in welchem Sie das Dokument speichern oder den Vorgang abbrechen " +"können. Falls das zu schließende Fenster das einzige offene Fenster ist, wird " +"gLabels dadurch beendet." -#: C/glabels.xml:2112(para) -msgid "ny" -msgstr "ny" +#: C/basicusage.page:60(title) +msgid "To save a file" +msgstr "Speichern einer Datei" -#: C/glabels.xml:2114(para) -msgid "Number of labels/cards up and down in the grid (vertical)" -msgstr "Anzahl der Etiketten/Karten im Raster in vertikaler Richtung" +#: C/basicusage.page:62(p) +msgid "You can save files in the following ways:" +msgstr "Sie können Dateien auf folgende Arten speichern:" -#: C/glabels.xml:2121(para) +#: C/basicusage.page:66(p) msgid "" -"Distance from left edge of sheet to the left edge of the left column of cards/" -"labels in the layout." +"To save changes to an existing file, choose FileSave." msgstr "" -"Abstand von linken Rand des Papiers zum linken Rand der linken Reihe der " -"Karten/Etiketten im Layout." +"Um die Änderungen in der bereits vorhandenen Datei zu speichern, wählen Sie " +"DateiSpeichern." -#: C/glabels.xml:2128(para) +#: C/basicusage.page:73(p) msgid "" -"Distance from the top edge of sheet to the top edge of the top row of labels/" -"cards in the layout." +"To save a new file or to save an existing file under a new filename, choose " +"FileSave As. Enter a name for the file " +"in the Save As dialog box, then click OK." msgstr "" -"Abstand von oberen Rand des Papiers zum oberen Rand der oberen Reihe der " -"Karten/Etiketten im Layout." - -#: C/glabels.xml:2133(para) -msgid "dx" -msgstr "dx" - -#: C/glabels.xml:2134(para) -msgid "Horizontal pitch of grid." -msgstr "Horizontaler Rasterabstand des Zeichengitters." - -#: C/glabels.xml:2137(para) -msgid "dy" -msgstr "dy" - -#: C/glabels.xml:2138(para) -msgid "Vertical pitch of grid." -msgstr "Vertikaler Rasterabstand des Zeichengitters." - -#: C/glabels.xml:2146(title) -msgid "Layout Parameters" -msgstr "Layout-Parameter" +"Um eine neue Datei oder eine bestehende Datei unter einem neuen Dateinamen zu " +"speichern, wählen Sie DateiSpeichern unter. Geben Sie einen Namen für die Datei im Dialogfeld Speichern " +"unter ein und klicken Sie anschließend auf OK. " -#: C/glabels.xml:2160(title) -msgid "Alias Node" -msgstr "Knoten »Alias«" +#: C/basicusage.page:84(title) +msgid "To quit gLabels" +msgstr "gLabels beenden" -#: C/glabels.xml:2162(para) +#: C/basicusage.page:86(p) msgid "" -"An Alias node provides the name of a product with the " -"same size and layout characteristics as the parent template." +"To quit gLabels, choose FileQuit. This is equivalent to closing all open windows. See ." msgstr "" -"Ein Alias-Knoten beschreibt den Namen eines Produkts mit " -"der gleichen Größe und dem gleichen Layout einer anderen Vorlage." - -#: C/glabels.xml:2184(para) -msgid "The brand or manufacturer of the equivalent product." -msgstr "Die Marke oder der Hersteller des entsprechenden Produkts." +"Um gLabels zu beenden, wählen Sie DateiBeenden. Dies entspricht dem Schließen aller " +"geöffneten Fenster. Siehe ." -#: C/glabels.xml:2190(para) -msgid "The part number or name of the equivalent product." -msgstr "Die Bestellnummer oder der Name des entsprechenden Produkts." +#: C/about.page:9(desc) +msgid "Information about gLabels." +msgstr "Informationen über gLabels." -#: C/glabels.xml:2226(title) -msgid "About gLabels" -msgstr "Info zu gLabels" +#: C/about.page:25(title) +msgid "About gLabels" +msgstr "Info zu gLabels" -#: C/glabels.xml:2227(para) +#: C/about.page:27(p) msgid "" -"gLabels was written by Jim Evins " -"(evins@snaught.com). To find more information about " -"gLabels, please visit the gLabels Web page." +"gLabels was written by Jim " +"Evins. To find more information about gLabels, please visit " +"the gLabels Web " +"page." msgstr "" -"gLabels wurde von Jim Evins (evins@snaught." -"com) geschrieben. Weitere Informationen zu gLabels finden Sie auf der gLabels-Webseite." +"gLabels wurde von Jim " +"Evins geschrieben. Weitere Informationen zu gLabels finden " +"Sie auf der gLabels-Webseite." -#: C/glabels.xml:2232(para) +#: C/about.page:31(p) msgid "" "To report a bug or make a suggestion regarding this application or this " -"manual, follow the directions at the gLabels Contact Page." +"manual, follow the directions at the gLabels Contact Page." msgstr "" -"Um einen Fehler zu melden oder einen Vorschlag zu dieser Anwendung oder zu " -"diesem Handbuch zu machen, folgen Sie den Anweisungen auf der gLabels-Kontaktseite." +"Um einen Fehler zu melden oder einen Vorschlag zur Anwendung gLabels oder zu diesem Handbuch zu machen, folgen Sie den Anweisungen auf der " +"gLabels-" +"Kontaktseite." -#: C/glabels.xml:2238(para) +#: C/about.page:37(p) msgid "" "This program is distributed under the terms of the GNU General Public license " -"as published by the Free Software Foundation; either version 2 of the " +"as published by the Free Software Foundation; either version 3 of the " "License, or (at your option) any later version. A copy of this license can be " -"found at this link, or in the " +"found at this link, or in the " "file COPYING included with the source code of this program." msgstr "" "Dieses Programm ist freie Software. Sie können es unter den Bedingungen der " -"GNU General Public License, wie von der Free Software " -"Foundation veröffentlicht, weitergeben und/oder modifizieren, entweder gemäß " -"Version 2 der Lizenz oder (nach Ihrer Option) jeder späteren Version. Eine " -"Kopie der GNU General Public License finden Sie unter " -"diesem Link, oder in der Datei " -"COPYING, die im Quellcode dieses Programms enthalten ist." +"GNU General Public License, wie von der Free Software Foundation " +"veröffentlicht, weitergeben und/oder modifizieren, entweder gemäß Version 3 " +"der Lizenz oder (nach Ihrer Option) jeder späteren Version. Eine Kopie der " +"GNU General Public License finden Sie unter diesem Link oder in der Datei COPYING, die im Quellcode dieses " +"Programms enthalten ist." #. Put one translator per line, in the form of NAME , YEAR1, YEAR2 -#: C/glabels.xml:0(None) +#: C/index.page:0(None) msgid "translator-credits" -msgstr "Mario Blättermann , 2008, 2009" +msgstr "Mario Blättermann , 2008, 2009, 2010" + +#~ msgid "@@image: 'figures/merge-ex3-1.png'; md5=THIS FILE DOESN'T EXIST" +#~ msgstr "a" + +#~ msgid "@@image: 'figures/merge-ex3-2.png'; md5=THIS FILE DOESN'T EXIST" +#~ msgstr "a" + +#~ msgid "@@image: 'figures/merge-ex3-4.png'; md5=THIS FILE DOESN'T EXIST" +#~ msgstr "a" #~ msgid "" -#~ "@@image: 'figures/merge-ex3-1.png'; md5=32fa57781b819430f19cd3cac6807622" +#~ "@@image: 'figures/merge-ex2-4.png'; md5=67391b05421901a36d276736c1f664dd" #~ msgstr "translated" #~ msgid "" -#~ "@@image: 'figures/merge-ex3-2.png'; md5=1d49763e4006ea07792d7d1b805002ce" -#~ msgstr "translated" +#~ "Before applying the merge source, we uncheck the first record since it is " +#~ "only column headers from our original gnumeric spreadsheet and " +#~ "would simply waste our first label. We also unselect the second record " +#~ "which is empty (an artifact of our original spreadsheet). We could also " +#~ "unselect any other records that we didn't want to print a label for." +#~ msgstr "" +#~ "Bevor Sie eine neue Einmischquelle anwenden, sollten Sie den ersten " +#~ "Datensatz deaktivieren, weil dieser nur Spaltenköpfe aus der originalen " +#~ "gnumeric-Tabelle enthält. Dadurch würde nur das erste Etikett " +#~ "verschwendet. Weiterhin können Sie alle anderen Datensätze entfernen, die " +#~ "Sie nicht für ein Etikett verwenden wollen." #~ msgid "" -#~ "@@image: 'figures/merge-ex2-1.png'; md5=d48a99d65408584eae2603a0c07610da" +#~ "@@image: 'figures/merge-ex1-1.png'; md5=731c7bcd2ff66d18300e87f1c3d9ec0e" #~ msgstr "translated" #~ msgid "" -#~ "@@image: 'figures/merge-ex2-3.png'; md5=59a1dc5ff94656877a6220f73fe25b3c" +#~ "@@image: 'figures/merge-ex1-2.png'; md5=27ed61afe77cda96c208fcda51990c89" #~ msgstr "translated" #~ msgid "" -#~ "@@image: 'figures/merge-ex2-4.png'; md5=67391b05421901a36d276736c1f664dd" +#~ "@@image: 'figures/merge-ex1-4.png'; md5=9cec0c679929cc904f81f435cd3bd060" #~ msgstr "translated" + +#~ msgid "" +#~ "Predefined templates are defined by XML files located in either /usr/" +#~ "share/libglabels-3.0/templates/ or /usr/local/share/" +#~ "libglabels-3.0/templates/, depending on where glabels " +#~ "was installed. Glabels will also search for user defined " +#~ "templates in the directory ${HOME}/.config/libglabels/templates/. User defined template files should be named with a *." +#~ "template extension." +#~ msgstr "" +#~ "Vordefinierte Vorlagen stehen in Form von XML-Dateien entweder in /" +#~ "usr/share/libglabels-3.0/templates/ oder /usr/local/share/" +#~ "libglabels-3.0/templates/ bereit. Der genaue Ort ist davon " +#~ "abhängig, wo gLabels installiert wurde. Außerdem sucht " +#~ "gLabels im Ordner ${HOME}/.config/libglabels/templates/ nach eigenen Vorlagen. Solche Vorlagendateien sollten die Endung " +#~ "*.template haben." + +#~ msgid "" +#~ "A Meta node contains some " +#~ "additional properties of that product. This node may appear more than " +#~ "once, with a subnode each." +#~ msgstr "" +#~ "Ein Meta-Knoten enthält eine Reihe " +#~ "zusätzlicher Eigenschaften des jeweiligen Produkts. Dieser Knoten kann " +#~ "mehrfach erscheinen, jeweils mit einem Unterknoten." + +#~ msgid "" +#~ "The category which this product is assigned to. The value of this category " +#~ "is used by the gLabels' template chooser to filter the view to " +#~ "display only mailing labels, or labels in common and suppress any other " +#~ "products which the user don't want to find." +#~ msgstr "" +#~ "Die Kategorie, der dieses Produkt zugeordnet ist. Der Wert dieser " +#~ "Kategorie wird von der Vorlagenauswahl in gLabels verwendet, um " +#~ "die Ansicht beispielsweise auf die Darstellung von Etiketten zu " +#~ "beschränken oder anders ausgedrückt, Etiketten allgemein anzuzeigen und " +#~ "die Anzeige anderer Produkte zu unterdrücken, an denen der Benutzer im " +#~ "jeweiligen Fall nicht interessiert ist." + +#~ msgid "" +#~ "One product can be assigned to several categories. You may choose from the " +#~ "following categories:" +#~ msgstr "" +#~ " Dabei kann ein Produkt mehreren Kategorien angehören. Sie können aus " +#~ "folgenden Kategorien wählen:" diff --git a/help/de/editprop.page b/help/de/editprop.page new file mode 100644 index 00000000..5e5e9784 --- /dev/null +++ b/help/de/editprop.page @@ -0,0 +1,167 @@ + + + + + + + Ändern der Eigenschaften von Objekten. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Share Alike 3.0

      +
      +
      + + Bearbeiten der Objekteigenschaften + +
      + +

      Die meisten Objekteigenschaften können Sie über die Objekteditor-Seitenleiste verändern, wie unten illustriert. Um den Objekteditor zu verwenden, muss zunächst ein einzelnes Objekt ausgewählt werden. Siehe .

      + + + +

      Angeben der Kopien

      +
      + + +

      Der Objekteditor bietet eine Auswahl der folgenden Reiter, abhängig vom Objekttyp:

      + +
      + Text-Reiter (Textobjekte) + +

      Dieser Abschnitt bietet einen kleinen Editor zum Bearbeiten des Inhalts eines Textobjekts. Weiterhin ist ein Ausklappmenü mit den verfügbaren Schlüsseln zur Dokumentmischung enthalten, die in den Text eingefügt werden können.

      + +
      + +
      + Bild-Reiter (Bild-Objekte) + +

      Dieser Abschnitt enthält einen Dateiwähler mit Vorschau zur Auswahl von Bilddateien. Der »Durchsuchen«-Knopf kann zum Suchen von Bilddateien benutzt werden. Alternativ können Sie einen Schlüssel zur Dokumenteinmischung anstelle eines Dateinamens angeben, der bei der Ausgabe des Dokuments ersetzt wird.

      + +
      + +
      + Daten-Reiter (Strichcode-Objekte) + +

      Dieser Abschnitt enthält ein Textfeld zur Eingabe von Strichcode-Daten. Alternativ kann hier ein Schlüssel zur Dokumentmischung eingetragen werden, der beim Druck für die Bereitstellung der richtigen Daten sorgt.

      + +
      + +
      + Stil-Reiter (Text-Objekte) + +

      Dieser Abschnitt enthält Einstellmöglichkeiten für die Texteigenschaften, wie Schriftfamilie, Schriftgröße, Schriftstärke, Schriftfarbe und Ausrichtung des Texts.

      + +
      + +
      + Stil-Reiter (Strichcode-Objekte) + +

      Dieser Abschnitt enthält Einstellmöglichkeiten für die Eigenschaften des Strichcodes, wie Stil, Farbe, Drucken von Text oder Beinhalten einer Prüfsumme.

      + +
      + +
      + Linie-Reiter + +

      Dieser Abschnitt enthält Einstellmöglichkeiten für die Auswahl von Eigenschaften von Linien und Begrenzungen, wie Linienbreite und -farbe.

      + +
      + +
      + Füllung-Reiter + +

      Dieser Abschnitt enthält Einstellmöglichkeiten für die Auswahl der Füllungseigenschaften von Rechteck- und Ellipsenobjekten. Derzeit ist nur die Einstellung der Füllungsfarbe möglich.

      + +
      + +
      + Reiter »Größe« (alle außer Linienobjekte) + +

      Dieser Abschnitt enthält Einstellmöglichkeiten für die Höhe und die Breite eines Objekts. Mit einem Ankreuzfeld können Sie die Werte aneinander koppeln, so dass das Seitenverhältnis beim Ändern der Höhe oder Breite erhalten bleibt. Für Bildobjekte gibt es außerdem einen Knopf zum Zurücksetzen des Bildes auf Originalgröße, wobei eine Auflösung von 72 dpi angenommen wird.

      + +
      + +
      + Reiter »Größe« (Linienobjekte) + +

      Dieser Abschnitt enthält Einstellmöglichkeiten für die Länge und den Winkel eines Linienobjekts.

      + +
      + +
      + Reiter »Position« + +

      Dieser Abschnitt beschreibt die Möglichkeiten zur Positionierung eines Objekts.

      + +
      + + +
      + Reiter »Schattierung« (alle außer Strichcodeobjekten) + +

      Dieser Abschnitt enthält Einstellmöglichkeiten für die Schattierung eines Objekts.

      + +
      + + +
      + + +
      + Andere Manipulationen von Objekten + +

      Objekte können auf die folgenden Arten manipuliert werden.

      + +
      + Verschieben und Größenänderung von Objekten + +

      Objekte können Sie durch einfaches Anklicken und Ziehen des ausgewählten Objekts zur neuen Position verschieben. Falls dieses Objekt Teil einer Mehrfachauswahl ist, werden durch Ziehen dieses Objektes alle Objekte verschoben, wobei deren Abstände untereinander erhalten bleiben. Falls kein Objekt ausgewählt ist, wird durch Anklicken eines Objekts eine neue Auswahl erzeugt, die dieses Objekt enthält. Siehe .

      + +

      Die Größe eines ausgewählten Objekts kann geändert werden, indem Sie auf einen der Größenänderungs-Anfasspunkte klicken und diesen ziehen, um die gewünschte Größe zu erreichen.

      + +
      + +
      + Ändern der Reihenfolge der Ebenen + +

      Die Stapelreihenfolge bezieht sich auf die relative Position in der Z-Achse von Objekten. Das beschreibt beim Überlappen von Objekten, welches der Objekte über den anderen erscheint. Per Vorgabe werden neue Objekte immer oberhalb von bereits vorhandenen Objekten platziert. Um diese Anordnung zu ändern, wählen Sie ObjekteAnordnungGanz nach vorn, um die Auswahl im Stapel nach oben zu verschieben, oder ObjekteAnordnungGanz nach hinten, um die Auswahl im Stapel nach unten zu verschieben. Diese Menüeinträge sind auch durch einen Klick mit der rechten Maustaste auf den Ansichtsbereich verfügbar, falls sich dort eine nicht leere Auswahl befindet.

      + +
      + +
      + Drehen und Spiegeln von Objekten + +

      Objekte können um 90 Grad in jeder Richtung gedreht oder horizontal oder vertikal gespiegelt werden. Wählen Sie hierzu den entsprechenden Eintrag im Menü ObjekteDrehen/Spiegeln. Diese Menüeinträge sind auch verfügbar, wenn Sie mit der rechten Maustaste in eine nicht leere Auswahl im Ansichtsbereich klicken.

      + + +

      Dieses Funktionsmerkmal kann nützlich sein, wenn Sie Einleger für CD-Boxen entwerfen. Für die Beschriftung der Schmalseite benötigen sie vertikal laufenden Text. Nachdem Sie das Textobjekt erstellt haben, wählen Sie ObjekteDrehen/Spiegeln, um das Textobjekt Ihren Erfordernissen entsprechend auszurichten.

      +
      + +
      + +
      + Ausrichten von Objekten + +

      Objekte können horizontal oder vertikal zu einem anderen Objekt oder relativ zu einer Mittellinie des Etiketts angeordnet werden, indem Sie ObjekteHorizontal ausrichten oder ObjekteVertikal ausrichten wählen. Diese Menüeinträge sind auch verfügbar, wenn Sie mit der rechten Maustaste in eine nicht leere Auswahl im Ansichtsbereich klicken.

      + +
      + +
      + Verwendung der Eigenschaftsleiste + +

      Mit der Eigenschaftsleiste können Sie einige Eigenschaften von Objekten in einem Arbeitsgang ändern. Diese Eigenschaften umfassen Schriftfamilie, Schriftgröße, Schriftstärke, Textausrichtung, Textfarbe, Füllfarbe, Farbe von Linien oder Begrenzungen sowie Linienbreiten. Die Eigenschaftsleiste regelt auch die Vorgaben für diese Eigenschaften, wenn neue Objekte erzeugt werden.

      + +
      + + + +
      + +
      diff --git a/help/de/figures/merge-ex3-1.png b/help/de/figures/merge-ex3-1.png deleted file mode 100644 index c391048e7fe6847589f4f33a4dcc3f7b658f17fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53771 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
      GsBI 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 diff --git a/help/de/figures/merge-ex3-2.png b/help/de/figures/merge-ex3-2.png deleted file mode 100644 index a539cfff85371d968521bad3edc1d3428c52e710..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 67256 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 z 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 HJbnIulPd9) diff --git a/help/de/glabels.xml b/help/de/glabels.xml deleted file mode 100644 index b38c3dd6..00000000 --- a/help/de/glabels.xml +++ /dev/null @@ -1,1776 +0,0 @@ - - - - - -gLabels"> -]> - - -
      - - - - <application>gLabels</application>-Handbuch V2.2.6 - - Benutzerhandbuch für gLabels, einem Programm zum Erstellen von Etiketten und Visitenkarten - - - 2003-2009 - Jim Evins - 2008, 2009Mario Blättermann (mariobl@gnome.org) - - Jim Evins - - - - Das vorliegende Dokument kann gemäß den Bedingungen der GNU Free Documentation License (GFDL), Version 1.1 oder jeder späteren, von der Free Software Foundation veröffentlichten Version ohne unveränderbare Abschnitte sowie ohne Texte auf dem vorderen und hinteren Buchdeckel kopiert, verteilt und/oder modifiziert werden. Eine Kopie der GFDL finden Sie unter diesem Link oder in der mit diesem Handbuch gelieferten Datei COPYING-DOCS. - Dieses Handbuch ist Teil einer Sammlung von GNOME-Handbüchern, die unter der GFDL veröffentlicht werden. Wenn Sie dieses Handbuch getrennt von der Sammlung weiterverbreiten möchten, können Sie das tun, indem Sie eine Kopie der Lizenz zum Handbuch hinzufügen, wie es in Abschnitt 6 der Lizenz beschrieben ist. - - Viele der Namen, die von Unternehmen verwendet werden, um ihre Produkte und Dienstleistungen von anderen zu unterscheiden, sind eingetragene Warenzeichen. An den Stellen, an denen diese Namen in einer GNOME-Dokumentation erscheinen, werden die Namen in Großbuchstaben oder mit einem großen Anfangsbuchstaben geschrieben, wenn das GNOME-Dokumentationsprojekt auf diese Warenzeichen hingewiesen wird. - - DAS DOKUMENT UND VERÄNDERTE FASSUNGEN DES DOKUMENTS WERDEN UNTER DEN BEDINGUNGEN DER GNU FREE DOCUMENTATION LICENSE ZUR VERFÜGUNG GESTELLT MIT DEM WEITERGEHENDEN VERSTÄNDNIS, DASS: - - DIESES DOKUMENT WIRD »WIE VORLIEGEND« GELIEFERT, OHNE GARANTIEN IRGENDEINER ART, SOWOHL AUSDRÜCKLICH GENANNTE ALS AUCH ANGEDEUTETE. DIES BEZIEHT SICH AUCH OHNE EINSCHRÄNKUNG AUF GARANTIEN, DASS DIESES DOKUMENT ODER VERÄNDERTE FASSUNGEN DIESES DOKUMENTS FREI VON HANDELSDEFEKTEN, FÜR EINEN BESTIMMTEN ZWECK GEEIGNET IST ODER DASS ES KEINE RECHTE DRITTER VERLETZT. DAS VOLLE RISIKO WAS QUALITÄT, GENAUIGKEIT UND LEISTUNG DES DOKUMENTS ODER VERÄNDERTE FASSUNGEN DES DOKUMENTS LIEGT BEI IHNEN. SOLLTE EIN DOKUMENT ODER EINE VERÄNDERTE FASSUNG DAVON FEHLER IRGENDEINER ART BEINHALTEN, TRAGEN SIE (NICHT DER URSPRUNGSAUTOR, DER AUTOR ODER EIN MITWIRKENDER) DIE KOSTEN FÜR NOTWENDIGE DIENSTLEISTUNGEN, REPARATUREN ODER FEHLERKORREKTUREN. DIESER HAFTUNGSAUSSCHLUSS IST EIN ESSENZIELLER TEIL DIESER LIZENZ. DIE VERWENDUNG EINES DOKUMENTS ODER EINER VERÄNDERTEN VERSION DES DOKUMENTS IST NICHT GESTATTET AUßER UNTER BEACHTUNG DIESES HAFTUNGSAUSSCHLUSSES UND - - - UNTER KEINEN UMSTÄNDEN UND AUF BASIS KEINER RECHTSGRUNDLAGE, EGAL OB DURCH UNERLAUBTEN HANDLUNGEN (EINSCHLIEßLICH FAHRLÄSSIGKEIT), VERTRAG ODER ANDERWEITIG KANN DER AUTOR, URSPRUNGSAUTOR, EIN MITWIRKENDER ODER EIN VERTRIEBSPARTNER DIESES DOKUMENTS ODER EINER VERÄNDERTEN FASSUNG DES DOKUMENTS ODER EIN ZULIEFERER EINER DIESER PARTEIEN, HAFTBAR GEMACHT WERDEN FÜR DIREKTE, INDIREKTE, SPEZIELLE, VERSEHENTLICHE ODER FOLGESCHÄDEN JEGLICHER ART, EINSCHLIEßLICH UND OHNE EINSCHRÄNKUNGEN SCHÄDEN DURCH VERLUST VON KULANZ, ARBEITSAUSFALL, COMPUTERVERSAGEN ODER COMPUTERFEHLFUNKTIONEN ODER ALLE ANDEREN SCHÄDEN ODER VERLUSTE, DIE SICH AUS ODER IN VERBINDUNG MIT DER VERWENDUNG DES DOKUMENTS UND VERÄNDERTER FASSUNGEN DES DOKUMENTS ERGEBEN, AUCH WENN DIE OBEN GENANNTEN PARTEIEN ÜBER DIE MÖGLICHKEIT SOLCHER SCHÄDEN INFORMIERT WAREN. - - - - - - - - - - Jim - Evins - - - - - - - - - - - - - - - - - - - - - gLabels-Handbuch V2.2.6 - October 2009 - - Mario Blättermann mariobl@gnome.org - Jim Evins - - - - gLabels-Handbuch V2.2 - Dezember 2007 - - Jim Evins evins@snaught.com - Jim Evins - - - - - Dieses Handbuch beschreibt Version 2.2.6 von gLabels. - - Rückmeldungen - Um einen Fehler zu melden oder einen Vorschlag zur Anwendung gLabels oder zu diesem Handbuch zu machen, folgen Sie den Anweisungen auf der gLabels-Kontaktseite. - - - - - - gLabels - - - glabels - - - - - - - - - - Einführung - - Die Anwendung gLabels ist ein ressourcenschonendes Programm zum Erstellen von Etiketten und Visitenkarten für die GNOME-Arbeitsumgebung. Es wurde für die verschiedensten mit Laser- oder Tintenstrahldruckern bedruckbaren (auch selbstklebenden) Etiketten sowie Visitenkarten entworfen, so wie Sie sie in den meisten Schreibwarengeschäften finden. - - - - - - - - - - - Erste Schritte - - - <application>gLabels</application> starten - Sie können gLabels auf folgende Arten starten: - - - Menü Anwendungen - - Wählen Sie BüroanwendungengLabels. - - - - Befehlszeile - - Geben Sie glabels ein, und drücken Sie dann die Eingabetaste. - - - - - - - Beim Start von <application>gLabels</application> - Nach dem Start von gLabels erscheint folgendes Fenster: - - -
      - <application>gLabels</application>-Startfenster - - - - - - -
      - - - - - - Das gLabels-Fenster enthält folgende Elemente: - - - Menüleiste. - - Die Menüs in der Menüleiste enthalten alle Befehle, die Sie zum Erstellen und Bearbeiten von Etiketten und Visitenkarten in gLabels benötigen. - - - - Haupt-Werkzeugleiste. - - Die Haupt-Werkzeugleiste enthält eine Auswahl der Befehle, die Sie über die Menüleiste in den Menüs »Datei« und »Bearbeiten« erreichen. - - - - Zeichenwerkzeugleiste. - - Die Zeichenwerkzeugleiste enthält eine Auswahl von Befehlen zum Bearbeiten des aktuellen gLabels-Dokuments. - - - - Anzeigebereich. - - Der Anzeigebereich ist die Zeichenfläche für gLabels. - - - - Objekt-Seitenleiste. - - Die Objekt-Seitenleiste stellt eine Schnittstelle zum Betrachten und Bearbeiten der Eigenschaften eines bestimmten Objekts zur Verfügung. - - - - Eingenschaften-Werkzeugleiste. - - Die Eigenschaften-Werkzeugleiste enthält eine Reihe von Werkzeugen zum Manipulieren der Eigenschaften ausgewählter Objekte sowie zum Setzen der Standardeigenschaften für neue Objekte. - - - - Statusleiste. - - In der Statusleiste werden Informationen über die aktuelle gLabels-Aktivität und Kontextinformationen über die Menüpunkte angezeigt. - - - -
      -
      - - - - - - - - Benutzung - - - - Erstellen eines neuen Etiketts oder einer neuen Karte - - Um ein neues Etikett oder eine neue Visitenkarte anzulegen, wählen Sie DateiNeu, um den Dialog Neues Etikett oder neue Karte anzuzeigen. Wählen Sie den Medientyp und die Ausrichtung für das neue Dokument aus und klicken Sie anschließend auf OK. Ein neues Dokument erscheint im Anzeigebereich des gLabels-Fensters. - - Falls Ihr spezieller Medientyp in diesem Dialog nicht angezeigt wird, siehe . - - - - - - Öffnen einer Datei - - Um eine Datei zu öffnen, wählen Sie DateiÖffnen, um den Dialog Datei öffnen anzuzeigen. Wählen Sie die gewünschte Datei aus und klicken Sie dann auf Öffnen. Die Datei wird im Anzeigebereich des gLabels-Fensters geöffnet. - - Sie können in gLabels auch mehrere Dateien öffnen. Die Anwendung erzeugt ein separates Fenster für jede geöffnete Datei. - - Die Anwendung speichert die Pfade und Dateinamen der von Ihnen zuletzt bearbeiteten Dateien. Diese Dateien werden als Einträge im Menü DateiZuletzt benutzt angezeigt. - - - - - - Öffnen mehrerer Dateien aus einer Befehlszeile - - Sie können gLabels aus einer Befehlszeile starten und eine Datei oder mehrere Dateien öffnen. Um mehrere Dateien aus einer Befehlszeile zu öffnen, geben Sie den folgenden Befehl ein und drücken dann die Eingabetaste: - - glabels Datei1.glabels Datei2.glabels Datei3.glabels - - Wenn die Anwendung startet, werden die von Ihnen angegebenen Dateien in separaten gLabels-Fenstern angezeigt. - - - - - - Speichern einer Datei - - Sie können Dateien auf folgende Arten speichern: - - - - - Um die Änderungen in der bereits vorhandenen Datei zu speichern, wählen Sie DateiSpeichern. - - - - - Um eine neue Datei oder eine bestehende Datei unter einem neuen Dateinamen zu speichern, wählen Sie DateiSpeichern unter. Geben Sie einen Namen für die Datei im Dialogfeld Speichern unter ein und klicken Sie anschließend auf OK. - - - - - - - - - Ändern der Eigenschaften eines Etiketts - - Um den Medientyp oder die Ausrichtung des Etiketts zu ändern, wählen Sie DateiEigenschaften, um den Dialog Etikett-Eigenschaften anzuzeigen. Wählen Sie den neuen Medientyp für das Dokument aus und klicken Sie anschließend auf OK. - - - - - - Erstellen einer benutzerdefinierten Vorlage - - Um eine neue benutzerdefinierte Vorlage zu erstellen, wählen Sie DateiVorlagen-Designer …, um den Vorlagen-Designer-Dialog anzuzeigen. Dieser Dialog hilft Ihnen bei der Erstellung einer benutzerdefinierten Vorlage für die meisten Typen von Etiketten oder Visitenkarten, die Ihnen in Schreibwarengeschäften begegnen könnten. - - Falls Sie dies bevorzugen, können Sie Ihre Vorlagen auch manuell erstellen. Weitere Informationen hierzu finden Sie in . - - - - - - Schließen einer Datei - - Um das aktuelle Dokument zu schließen, wählen Sie DateiSchließen, um das Anwendungsfenster zu schließen. Falls das aktuelle Dokument bearbeitet wurde, wird ein Bestätigungsdialog geöffnet, in welchem Sie das Dokument speichern oder den Vorgang abbrechen können. Falls das zu schließende Fenster das einzige offene Fenster ist, wird gLabels dadurch beendet. - - - - - - <application>gLabels</application> beenden - - Um gLabels zu beenden, wählen Sie DateiBeenden. Dadurch werden alle offenen Fenster geschlossen. Siehe . - - - - - - Drucken von Etiketten oder Karten - - Um Etiketten oder Visitenkarten zu drucken, wählen Sie DateiDrucken, um den Drucken-Dialog anzuzeigen. Nachdem Sie die Druckoptionen ausgewählt haben, klicken Sie auf Drucken, um die Etiketten oder Visitenkarten zu drucken. Um zunächst eine Vorschau auf die Druckergebnisse zu erhalten, klicken Sie auf Druckvorschau. - - Im Dialog Drucken können Sie die folgenden Optionen zum Drucken festlegen: - - - Der Reiter »Etiketten« des Druckdialogs - - - - - Drucksteuerung (einfach) - - - Für einfache Etiketten oder Karten (keine Dokumentmischung) enthält der Reiter »Labels« die folgenden Einstellmöglichkeiten. - - - - - - Die Anzahl der Kopien können Sie wählen, indem Sie die Anzahl der vollständig zu druckenden Seiten oder eine Teilmenge von Etiketten auf einer einzelnen Seite auswählen. - - Die verkleinerte Vorschau können Sie auch dazu verwenden, einen Teil der Etiketten grafisch auszuwählen, indem Sie auf das erste Etikett klicken und es auf das letzte Etikett ziehen. - - - - - - Drucksteuerung (Mischen) - - - Für Etiketten oder Karten unter Verwendung der Dokumentmischung enthält dieser Reiter die folgenden Einstellungen zur Mischung von Dokumenten anstelle der Festlegung der Kopien. - - - - - - Die Gesamtzahl der gedruckten Etiketten oder Karten ergibt sich als Produkt aus der Anzahl der Datensätze in der Einmischquelle und der Anzahl der gewählten Kopien. Falls mehrere Kopien gewählt wurden, können diese entweder zusammengefasst werden (durch Gruppieren der Kopien des gleichen Datensatzes) oder nicht zusammengefasst (eine Kopie jedes Datensatzes wird immer vor der nächsten Kopie gedruckt). - - Der Druck kann mit jedem beliebigen Etikett der ersten Seite begonnen werden. Dies können Sie im Einstellfeld Start bei Etikett auswählen. - - In der verkleinerten Vorschau können Sie das erste Etikett grafisch auswählen, indem Sie das gewünschte Etikett anklicken. - - - - - Optionen - - Die folgenden Optionen können ebenfalls gewählt werden. - - - Begrenzungen drucken - Begrenzungen der Etiketten drucken. Diese Option ist nützlich, wenn Sie die Lage des Papiers im Drucker prüfen wollen. - - - Spiegelbildlich drucken - Druckt die Etiketten spiegelbildlich. Diese Option ist nützlich für das Drucken durchsichtiger Aufkleber, die von der Rückseite aus betrachtet werden (z.B. hinter Autoscheiben). - - - Schnitt - Druckt Schnittmarken entlang der Papierränder. Diese Option ist nützlich zum Drucken auf Papier, das erst nach dem Druck beschnitten werden soll. Diese Option funktioniert eventuell nicht mit allen Vorlagen. - - - - - - - - - - - - Erstellen neuer Objekte - - Objekte können ausgewählt werden, indem Sie das entsprechende Objekt in ObjekteErzeugen auswählen oder über die Zeichenwerkzeugleiste. Dadurch wird der Anzeigebereich in den Objekterzeugungsmodus versetzt, was am Mauszeiger erkennbar ist. Um zum vorgegebenen Objektauswahlmodus zurückzukehren, ohne ein Objekt zu erzeugen, wählen Sie ObjekteAuswahlmodus. Dadurch wird der Mauszeiger im Anzeigebereich wieder in den vorgegebenen Auswahlzeiger geändert. - - Nachfolgend wird der Modus zur Erstellung der Objekte für jeden Objekttyp beschrieben: - - - - - Text - - Klicken Sie auf die gewünschte Stelle in der linken oberen Ecke des Textobjekts. Neue Textobjekte erhalten anfänglich den Inhalt »Text«. Wie Sie diesen Text oder andere Eigenschaften ändern können, finden Sie in . - - - - - Rechteck - - Klicken Sie auf die gewünschte Stelle für die linke obere Ecke des Rechteckobjekts und ziehen Sie zur gewünschten rechten unteren Ecke. Wenn Sie einfach auf eine Stelle klicken, wird ein quadratisches Objekt erzeugt. Wie Sie die Eigenschaften des Rechteckobjekts ändern können, finden Sie in . - - - - - Linie - - Klicken Sie auf die gewünschte Stelle für das Ende des Linienobjekts und ziehen Sie zur gewünschten Stelle des anderen Endes. Wenn Sie einfach auf eine Stelle klicken, wird eine diagonale Linie erzeugt. Wie Sie die Eigenschaften des Linienobjekts ändern können, finden Sie in . - - - - - Ellipse - - Klicken Sie auf die gewünschte Stelle für die linke obere Ecke des Ellipsenobjekts und ziehen Sie zur gewünschten rechten unteren Ecke. Wenn Sie einfach auf eine Stelle klicken, wird ein Kreis erzeugt. Wie Sie die Eigenschaften des Ellipsenobjekts ändern können, finden Sie in . - - - - - Image - - Klicken Sie auf die gewünschte Stelle für die linke obere Ecke des Bildobjekts und ziehen Sie zur gewünschten rechten unteren Ecke. Wenn Sie einfach auf eine Stelle klicken, wird ein quadratisches Objekt erzeugt. Neue Bildobjekte erhalten anfänglich ein Schachbrettmuster. Wie Sie dies oder andere Eigenschaften des Bildobjekts ändern können, finden Sie in . - - - - - Strichcode - - Klicken Sie auf die gewünschte Stelle für die linke obere Ecke des Strichcodeobjekts und ziehen Sie zur gewünschten rechten unteren Ecke. Neue Objekte erhalten anfänglich einen POSTNET-Strichcode mit Beispieldaten. Wie Sie die Eigenschaften des Strichcodeobjekts ändern können, finden Sie in . - - - - - - - - - - - Auswählen von Objekten - - Eine Voraussetzung zum Ausführen von Operationen auf Objekten ist die Auswahl individueller Objekte oder Gruppen von Objekten. Der Anzeigebereich muss sich im Objektauswahlmodus befinden, was durch einen pfeilförmigen Mauszeiger angezeigt wird. Der Objektauswahlmodus wird über den Menüeintrag ObjekteAuswahlmodus aktiviert oder über das entsprechende Objekt in der Zeichenwerkzeugleiste. - - - - - Auswahl eines einzelnen Objekts - - Ein einzelnes Objekt können Sie auswählen, indem Sie das gewünschte Objekt im Anzeigebereich anklicken. Nach dem Anklicken wird das Objekt durch Anfasspunkte zur Größenänderung hervorgehoben. - - - - - Auswahl mehrerer Objekte - - Sie können mehrere Objekte auswählen, indem Sie zunächst das erste Objekt auswählen, wie oben beschrieben. Halten Sie dann bei der Auswahl weiterer Objekte die Strg-Taste gedrückt. Zusätzliche Objekte können Sie jederzeit zur Auswahl hinzufügen, wenn Sie wiederum die Strg-Taste gedrückt halten und die gewünschten Objekte auswählen. Alle Objekte lassen sich über den Menüeintrag BearbeitenAlle auswählen auswählen. Alle Objekte in einer zusammenhängenden Objektauswahl werden hervorgehoben dargestellt. - - - - - Bereichsauswahl - - Sie können auch mehrere Objekte auswählen, indem Sie in einen leeren Bereich klicken und mit der Maus die Form eines Rechtecks aufziehen. Daraufhin bilden alle Objekte in diesem Bereich eine zusammenhängende Auswahl. Eine Bereichsauswahl kann zum Hinzufügen einer vorhandenen Auswahl benutzt werden, wenn Sie bei der Auswahl die Strg-Taste gedrückt halten. - - - - - Auswahl von Objekten aufheben - - Sie können individuelle Objekte aus einer vorhandenen Auswahl entfernen, wenn Sie beim Klicken auf ein zuvor ausgewähltes Objekt die Strg-Taste gedrückt halten. Die gesamte Auswahl können Sie rückgängig machen, indem Sie im Menü BearbeitenAlle Markierungen löschen wählen. Sobald ein Objekt nicht mehr ausgewählt ist, wird es nicht mehr hervorgehoben dargestellt. - - - - - - - - - - Befehle für die Zwischenablage - - Objektauswahlen können durch die Standardoperationen der Zwischenablage Ausschneiden, Kopieren, Einfügen und Löschen manipuliert werden. - - - - - - - - StrgX - - Ausschneiden - - - - Verschiebt die ausgewählten Objekte in die Zwischenablage. Diese Objekte sind dann verfügbar, um später in das aktuelle Dokument oder ein anderes Dokument eingefügt zu werden. - - - - - - - - StrgC - - Kopieren - - - - Kopiert die ausgewählten Objekte in die Zwischenablage, ohne sie zu entfernen. Diese Objekte sind dann verfügbar, um später in das aktuelle Dokument oder ein anderes Dokument eingefügt zu werden. - - - - - - - - StrgV - - Einfügen - - - - Fügt Objekte aus der Zwischenablage in das aktuelle Dokument ein. gLabels kann nur Objekte aus anderen gLabels-Dokumenten einfügen. - - - - - - - - Löschen - - Löschen - - - - Entfernt die ausgewählten Objekte, ohne sie in die Zwischenablage zu verschieben. - - - - - - - - - - Bearbeiten der Objekteigenschaften - - Die meisten Objekteigenschaften können Sie über die Objekteditor-Seitenleiste verändern, wie unten illustriert. Um den Objekteditor zu verwenden, muss zunächst ein einzelnes Objekt ausgewählt werden. Siehe . - - -
      - Objekteditor-Seitenleiste - - - - - - -
      - - - Der Objekteditor bietet eine Auswahl der folgenden Reiter, abhängig vom Objekttyp: - - - Text-Reiter (Textobjekte) - - Dieser Abschnitt bietet einen kleinen Editor zum Bearbeiten des Inhalts eines Textobjekts. Weiterhin ist ein Ausklappmenü mit den verfügbaren Schlüsseln zur Dokumentmischung enthalten, die in den Text eingefügt werden können. - - - - - Bild-Reiter (Bild-Objekte) - - Dieser Abschnitt enthält einen Dateiwähler mit Vorschau zur Auswahl von Bilddateien. Der »Durchsuchen«-Knopf kann zum Suchen von Bilddateien benutzt werden. Alternativ können Sie einen Schlüssel zur Dokumenteinmischung anstelle eines Dateinamens angeben, der bei der Ausgabe des Dokuments ersetzt wird. - - - - - Daten-Reiter (Strichcode-Objekte) - - Dieser Abschnitt enthält ein Textfeld zur Eingabe von Strichcode-Daten. Alternativ kann hier ein Schlüssel zur Dokumentmischung eingetragen werden, der beim Druck für die Bereitstellung der richtigen Daten sorgt. - - - - - Stil-Reiter (Text-Objekte) - - Dieser Abschnitt enthält Einstellmöglichkeiten für die Texteigenschaften, wie Schriftfamilie, Schriftgröße, Schriftstärke, Schriftfarbe und Ausrichtung des Texts. - - - - - Stil-Reiter (Strichcode-Objekte) - - Dieser Abschnitt enthält Einstellmöglichkeiten für die Eigenschaften des Strichcodes, wie Stil, Farbe, Drucken von Text oder Beinhalten einer Prüfsumme. - - - - - Linie-Reiter - - Dieser Abschnitt enthält Einstellmöglichkeiten für die Auswahl von Eigenschaften von Linien und Begrenzungen, wie Linienbreite und -farbe. - - - - - Füllung-Reiter - - Dieser Abschnitt enthält Einstellmöglichkeiten für die Auswahl der Füllungseigenschaften von Rechteck- und Ellipsenobjekten. Derzeit ist nur die Einstellung der Füllungsfarbe möglich. - - - - - Reiter »Größe« (alle außer Linienobjekte) - - Dieser Abschnitt enthält Einstellmöglichkeiten für die Höhe und die Breite eines Objekts. Mit einem Ankreuzfeld können Sie die Werte aneinander koppeln, so dass das Seitenverhältnis beim Ändern der Höhe oder Breite erhalten bleibt. Für Bildobjekte gibt es außerdem einen Knopf zum Zurücksetzen des Bildes auf Originalgröße, wobei eine Auflösung von 72 dpi angenommen wird. - - - - - Reiter »Größe« (Linienobjekte) - - Dieser Abschnitt enthält Einstellmöglichkeiten für die Länge und den Winkel eines Linienobjekts. - - - - - Reiter »Position« - - Dieser Abschnitt beschreibt die Möglichkeiten zur Positionierung eines Objekts. - - - - - - Reiter »Schattierung« (alle außer Bild- und Strichcodeobjekten) - - Dieser Abschnitt enthält Einstellmöglichkeiten für die Schattierung eines Objekts. - - - - -
      - - - - Andere Manipulationen von Objekten - - Objekte können auf die folgenden Arten manipuliert werden. - - - Verschieben und Größenänderung von Objekten - - Objekte können Sie durch einfaches Anklicken und Ziehen des ausgewählten Objekts zur neuen Position verschieben. Falls dieses Objekt Teil einer Mehrfachauswahl ist, werden durch Ziehen dieses Objektes alle Objekte verschoben, wobei deren Abstände untereinander erhalten bleiben. Falls kein Objekt ausgewählt ist, wird durch Anklicken eines Objekts eine neue Auswahl erzeugt, die dieses Objekt enthält. Siehe . - - Die Größe eines ausgewählten Objekts kann geändert werden, indem Sie auf einen der Größenänderungs-Anfasspunkte klicken und diesen ziehen, um die gewünschte Größe zu erreichen. - - - - - Ändern der Reihenfolge der Ebenen - - Die Stapelreihenfolge bezieht sich auf die relative Position in der Z-Achse von Objekten. Das beschreibt beim Überlappen von Objekten, welches der Objekte über den anderen erscheint. Per Vorgabe werden neue Objekte immer oberhalb von bereits vorhandenen Objekten platziert. Um diese Anordnung zu ändern, wählen Sie ObjekteAnordnungGanz nach vorn, um die Auswahl im Stapel nach oben zu verschieben, oder ObjekteAnordnungGanz nach hinten, um die Auswahl im Stapel nach unten zu verschieben. Diese Menüeinträge sind auch durch einen Klick mit der rechten Maustaste auf den Ansichtsbereich verfügbar, falls sich dort eine nicht leere Auswahl befindet. - - - - - Drehen und Spiegeln von Objekten - - Objekte können um 90 Grad in jeder Richtung gedreht oder horizontal oder vertikal gespiegelt werden. Wählen Sie hierzu den entsprechenden Eintrag im Menü ObjekteDrehen/Spiegeln. Diese Menüeinträge sind auch verfügbar, wenn Sie mit der rechten Maustaste in eine nicht leere Auswahl im Ansichtsbereich klicken. - - - - - Ausrichten von Objekten - - Objekte können horizontal oder vertikal zu einem anderen Objekt oder relativ zu einer Mittellinie des Etiketts angeordnet werden, indem Sie ObjekteHorizontal oder ObjekteVertikal wählen. Diese Menüeinträge sind auch verfügbar, wenn Sie mit der rechten Maustaste in eine nicht leere Auswahl im Ansichtsbereich klicken. - - - - - Verwendung der Eigenschaftsleiste - - Mit der Eigenschaftsleiste können Sie einige Eigenschaften von Objekten in einem Arbeitsgang ändern. Diese Eigenschaften umfassen Schriftfamilie, Schriftgröße, Schriftstärke, Textausrichtung, Textfarbe, Füllfarbe, Farbe von Linien oder Begrenzungen sowie Linienbreiten. Die Eigenschaftsleiste regelt auch die Vorgaben für diese Eigenschaften, wenn neue Objekte erzeugt werden. - - - - - - - - - - Ausführung einer Dokumentmischung - - Dokumentmischung ist ein mächtiges Funktionsmerkmal, das es Ihnen ermöglicht, ein einzelnes Etikett oder eine einzelne Karte für jeden Datensatz aus einer externen Datenquelle zu erstellen. - - Der erste Schritt zur Ausführung einer Dokumentmischung ist die Vorbereitung eines Quelldokuments, welches die Daten zum Mischen enthält. Diese Daten können aus E-Mail-Adressen oder anderen Daten bestehen, aus denen Sie die einzelnen Etiketten oder Karten erstellen wollen. Gegenwärtig können als Datenquellen entweder Textdateien oder die Daten des Evolution-Adressbuchs verwendet werden, andere sind bereits in Planung. Das derzeit unterstützte Textformat ist recht einfach: Jede Zeile stellt einen Datensatz dar, wobei die einzelnen Felder durch Kommata (CSV), Tabulatoren oder Semikola getrennt werden. Neue Zeilen werden durch einen Zeilenumbruch »\n« erzeugt. Diese Datei kann mit einem Texteditor, einem anderen Programm oder einem Skript erstellt werden. Ein üblicher Weg der Erstellung ist der Export einer CSV-Datei aus einer Tabellenkalkulation. - - Ein Etikett muss erstellt werden, das auf diese Datenquelle »zeigt«. Um die Mischeigenschaften für ein Dokument festzulegen, wählen Sie ObjekteMischeinstellungen. Der Dialog Mischeinstellungen wird geöffnet. In diesem Dialog wählen Sie das genaue Dateiformat und den Dateinamen (den Ort) der einzumischenden Daten aus. - - Zum Schluss, sobald das Etikett für die Datenquelle eingerichtet wurde, können die Feldschlüssel in Textobjekte eingefügt werden, um sie als Datenquelle für Strichcodeobjekte oder Bilder für Bildobjekte zu verwenden. Weitere Informationen über die Verwendung der Mischdaten für diese Objekttypen finden Sie in . - - Da Ihr Etikett nun konfiguriert ist, druckt gLabels genau ein Etikett für jeden Datensatz des Quelldokuments, wobei alle Text-, Bild- und Strichcode-Objekte durch die Einträge der Felder jedes Datensatzes ersetzt werden. - - In finden Sie eine ausführliche Anleitung für dieses Funktionsmerkmal. - - - - - -
      - - - - - - - - Einstellungen - Um gLabels zu konfigurieren, wählen Sie EinstellungenEinstellungen. Der Dialog Einstellungen enthält die folgenden Reiter: - - - - - - - - - - - - - - Lokale Einstellungen - - - - Einheiten - - Verwenden Sie diese Radioknöpfe, um Ihre bevorzugten Maßeinheiten festzulegen. Wählen Sie aus den folgenden Optionen: - - - - Punkte - Punkte verwenden (1 Punkt = 1/72 Zoll = 0.352778 mm). - - - - Zoll - Zoll verwenden. - - - - Millimeter - Millimeter verwenden. - - - Standard: Zoll. - - - - - Vorgegebene Seitengröße - - Verwenden Sie diese Radioknöpfe zur Auswahl Ihrer bevorzugten Papiergröße. Dadurch lassen sich beim Erstellen neuer Etiketten oder Visitenkarten die entsprechenden Papiertypen schneller finden. - - - - US-Letter - Die meisten Ihrer Medien haben das US-Letter-Format (8.5 x 11 inches). - - - - ISO A4 - Die meisten Ihrer Medien haben das ISO-A4-Format (210 x 297 mm). - - - Standard: US-Letter. - - - - - - - - Objekt-Voreinstellungen - - - - Text - - Verwenden Sie diese Einstellmöglichkeiten, um die Standardeigenschaften neuer Textobjekte festzulegen. Diese Eigenschaften sind - - - - Schrift - Verwenden Sie diese Einstellmöglichkeiten, um die Schriftfamilie und -größe festzulegen, sowie um anzugeben, ob die Schrift fett oder kursiv dargestellt werden soll. - - - - Farbe - Diese Einstellung wählt die Standard-Textfarbe aus. - - - - Ausrichtung - Mit diesen Einstellungen wählen Sie die vorgegebene Textausrichtung (links, mittig oder rechts). - - - - - - - Linie - - Verwenden sie diese Einstellmöglichkeiten, um die Standardeigenschaften von Begrenzungen und neuen Objekten festzulegen. Diese Eigenschaften sind - - - - Breite - Diese Einstellung wählt die Standard-Linienbreite aus. - - - - Farbe - Diese Einstellung wählt die Standard-Linienfarbe aus. - - - - - - - Füllen - - Verwenden Sie diese Einstellmöglichkeiten zum Angeben der Füllungseigenschaften eines neuen Objekts. Diese Eigenschaften sind - - - - Farbe - Diese Einstellung wählt die Standard-Füllfarbe aus. - - - - - - - - - - - - - - Anleitung zur Dokumentmischung - - Dokumentmischung ist ein mächtiges Funktionsmerkmal, das es Ihnen ermöglicht, ein einzelnes Etikett oder eine einzelne Karte für jeden Datensatz aus einer externen Datenquelle zu erstellen. Es ist allerdings die am häufigsten missverstandene Funktion in gLabels. Die folgenden Beispiele führen Sie schrittweise durch viele der Aufgaben, die Sie mit der Dokumentmischung ausführen können. - - - Beispiel 1: Namensschilder unter Nutzung einer CSV-Datei - - In diesem Beispiel organisieren Sie eine Orientierungsparty für die neuen Mannschaftsmitglieder Ihres Schiffes. Eine Liste der neuen Mitglieder haben Sie in gnumeric erstellt und in die folgende CSV-Datei exportiert. Sie könnten diese Datei auch in einem Texteditor erstellen, aber schließlich leben wir im 23. Jahrhundert... - - -Name,Department,SN -"Jim Kirk",Management,"SC937-0176 CEC" -"Mr. Spock",Sciences,S179-276SP -"Leonard McCoy",Medicine,unknown -"Montgomery Scott",Engineering,SE-197-54T - - - In glabels haben Sie ein neues Dokument unter Verwendung der Dokumentvorlage »Avery 5395 Namensschild-Etiketten« erzeugt. Zunächst öffnen Sie mittels ObjekteMischeinstellungen den Dialog Mischeinstellungen. In diesem Dialog wählen Sie wie gezeigt die Datenquelle aus, in diesem Fall CSV, sowie die Mischquelle (Dateiname). - - -
      - Mischeinstellungen-Dialog - - - - - - -
      - - - Bevor Sie eine neue Einmischquelle anwenden, sollten Sie den ersten Datensatz deaktivieren, weil dieser nur Spaltenköpfe aus der originalen gnumeric-Tabelle enthält. Dadurch würde nur das erste Etikett verschwendet. Weiterhin können Sie alle anderen Datensätze entfernen, die Sie nicht für ein Etikett verwenden wollen. - - Sie können jeden Datensatz detailliert betrachten, indem Sie auf die kleinen Dreiecke klicken. Sobald Sie mit der Auswahl zufrieden sind, klicken Sie auf OK, um die Änderungen anzuwenden. - - Nun beginnen wir mit dem Hinzufügen von Objekten zu unserem gLabels-Dokument, wie gezeigt. - - -
      - Hinzufügen von Objekten - - - - - - -
      - - - In diesem Beispiel haben Sie drei Textobjekte und ein Strichcodeobjekt hinzugefügt. Das erste Textobjekt enthält nur einfachen Text (»Hello, my name is«). Das zweite Textobjekt enthält ein einfaches Mischfeld (»${1}«), welches zum ersten Feld eines Datensatzes (erste Spalte einer Zeile) korrespondiert, die den vollen Namen eines Mannschaftsmitglieds enthält. Das dritte Feld enthält sowohl einfachen Text (»Department:«) als auch ein einzelnes Mischfeld (»${2}«), welches zum zweiten Feld oder zum Arbeitsgebiet eines Mannschaftsmitglieds korrespondiert. Das Strichcodefeld ist so eingestellt, das Feld (oder den Schlüssel) »3« zu verwenden, das die Sternenflotten-Seriennummer des Mannschaftsmitglieds enthält. - - Nun können Sie Ihre Namensschilder drucken, indem Sie DateiDrucken wählen. Der unten angezeigte Druckdialog wird geöffnet. - - -
      - Drucken der Namensschilder - - - - - - -
      - - - Um sicher zu stellen, dass Ihre Etiketten gut aussehen, wählen Sie die Option Begrenzungen drucken und klicken auf Druckvorschau. Der Druckvorschaudialog wird geöffnet, wie unten angezeigt. - - -
      - Vorschau der Namensschilder - - - - - - -
      - - - Alles sieht gut aus, also können wir jetzt den Drucker mit den entsprechenden Etiketten bestücken, die Namensschilder drucken und die Gäste an Bord beamen. - -
      - - - Beispiel 2: Adressetiketten unter Nutzung einer CSV-Datei - - In diesem Beispiel planen Sie eine Party. Dafür benötigen Sie Adressetiketten für die Einladungen. Sie haben eine Liste Ihrer besten Freunde in gnumeric erstellt, die Sie in die folgende CSV-Datei exportiert haben. Es ist zu beachten, dass nicht jeder einen zweiten Vornamen oder eine zweizeilige Adresse hat. - - -LAST,FIRST,MI,ADDR1,ADDR2,CITY,STATE,ZIP -,,,,,,, -Critter,Ess,S,"123 Faux St.",,Alexandria,VA,22310 -Doe,John,,"Apt 1X","451 Mystery St.",Trenton,NJ,08601 -Summers,Joyce,,"1630 Revello Dr",,Sunnydale,CA,95037 -McGarret,Steve,O,"404 Piikoi Street",,Honolulu,HI,96813 -Kramer,Cosmo,,"Apt 5B","129 W. 81 St.","New York",NY,10024-7207 - - - In glabels haben Sie ein neues Dokument unter Verwendung der Dokumentvorlage »Avery 5512 Adressetiketten« erzeugt. Zunächst öffnen Sie mittels ObjekteMischeinstellungen den Dialog Mischeinstellungen. In diesem Dialog wählen Sie wie gezeigt die Datenquelle aus, in diesem Fall CSV, sowie die Mischquelle (Dateiname). - - -
      - Mischeinstellungen-Dialog - - - - - - -
      - - - Bevor Sie eine neue Einmischquelle anwenden, sollten Sie den ersten Datensatz deaktivieren, weil dieser nur Spaltenköpfe aus der originalen gnumeric-Tabelle enthält. Dadurch würde nur das erste Etikett verschwendet. Weiterhin können Sie alle anderen Datensätze entfernen, die Sie nicht für ein Etikett verwenden wollen. - - Sie können jeden Datensatz detailliert betrachten, indem Sie auf die kleinen Dreiecke klicken. Sobald Sie mit der Auswahl zufrieden sind, klicken Sie auf OK, um die Änderungen anzuwenden. - - Nun beginnen wir mit dem Hinzufügen von Objekten zu unserem gLabels-Dokument, wie gezeigt. - - -
      - Hinzufügen von Objekten - - - - - - -
      - - - In diesem Beispiel haben Sie ein einzelnes Textobjekt. Dieses Textobjekt enthält alle Einmischfelder, angeordnet in mehreren Zeilen wie eine Versandadresse. Beachten Sie, dass die Felder ${4} und ${5} (korrespondierend zu ADDR1 und ADDR2) jeweils keinen weiteren Text in deren Zeilen enthalten. Wenn glabels ein solches Feld als »nur Text« in einer Zeile erkennt, wird die Zeile nicht expandiert, falls das Feld leer ist. - - Nun können Sie Ihre Adressetiketten drucken, indem Sie DateiDrucken wählen. Der unten angezeigte Druckdialog wird geöffnet. - - -
      - Adressetiketten drucken - - - - - - -
      - - - Um sicher zu stellen, dass Ihre Etiketten gut aussehen, wählen Sie die Option Begrenzungen drucken und klicken auf Druckvorschau. Der Druckvorschaudialog wird geöffnet, wie unten angezeigt. - - -
      - Adressetiketten-Vorschau - - - - - - -
      - - - Alles sieht gut aus, also können wir jetzt den Drucker mit den entsprechenden Etiketten bestücken, die Adressetiketten drucken und die Einladungen zur Party versenden. - -
      - - - Beispiel 3: Adressetiketten unter Nutzung des <application>Evolution</application>-Adressbuchs - - Ihre letzte Party war ein voller Erfolg. Nun benötigen Sie wieder Adressetiketten für die Einladung zu einer neuen Party. Um dies zu vereinfachen, können Sie das Evolution-Adressbuch nutzen, denn die Adressdaten aller Ihrer Freunde sind dort gespeichert. - - - Abhängig davon, wie das von Ihnen genutzte gLabels-Paket erstellt wurde, könnte diese Option nicht verfügbar sein. Die Unterstützung für das Evolution-Adressbuch ist nur vorhanden, wenn bei der Erstellung von gLabels das Paket evolution-data-server sowie dessen Entwicklerdateien verfügbar waren. Bitte berücksichtigen dies auch dann, wenn Sie gLabels direkt aus den Quellen erstellen. - - Falls das gLabels-Paket Ihrer Distribution diese Unterstützung nicht bieten sollte, kontaktieren Sie bitte den Ersteller des Pakets oder senden Sie einen Fehlerbericht, um dies einzufordern. - - - In glabels haben Sie ein neues Dokument unter Verwendung der Dokumentvorlage »Avery 5512 Adressetiketten« erzeugt. Zunächst öffnen Sie mittels ObjekteMischeinstellungen den Dialog Mischeinstellungen. In diesem Dialog wählen Sie wie gezeigt die Datenquelle aus, in diesem Fall Daten aus dem vorgegebenen Evolution-Adressbuch, wie gezeigt. - - -
      - Mischeinstellungen-Dialog - - - - - - -
      - - - Sobald Sie Daten aus dem vorgegebenem Evolution-Adressbuch als Mischquelle gewählt haben, wird eine vollständige Liste des Inhalts angezeigt. Anfänglich sind alle Einträge ausgewählt. Angenommen, Sie planen eine wirklich große Party, können Sie die Auswahl unverändert belassen. Behalten Sie jedoch dabei Ihre finanziellen Möglichkeiten im Auge. Sie können bestimmte Einträge auswählen oder wieder abwählen, indem Sie die entsprechenden Ankreuzfelder anklicken. Alternativ können Sie durch Anklicken der Knöpfe Alle markieren oder Markierung aufheben alle Einträge des Adressbuchs aktivieren oder deaktivieren. - - Sie können jeden Datensatz detailliert betrachten, indem Sie auf die kleinen Dreiecke klicken. Sobald Sie mit der Auswahl zufrieden sind, klicken Sie auf OK, um die Änderungen anzuwenden. - - Nun beginnen wir mit dem Hinzufügen von Objekten zu unserem gLabels-Dokument, wie gezeigt. - - -
      - Hinzufügen von Objekten - - - - - - -
      - - - In diesem Beispiel haben Sie ein einzelnes Textobjekt. Dieses Textobjekt enthält alle Einmischfelder, angeordnet in mehreren Zeilen wie eine Versandadresse. - - Nun können Sie Ihre Adressetiketten drucken, indem Sie DateiDrucken wählen. Der unten angezeigte Druckdialog wird geöffnet. - - -
      - Adressetiketten drucken - - - - - - -
      - - - Um sicher zu stellen, dass Ihre Etiketten gut aussehen, wählen Sie die Option Begrenzungen drucken und klicken auf Druckvorschau. Der Druckvorschaudialog wird geöffnet, wie unten angezeigt. - - -
      - Adressetiketten-Vorschau - - - - - - -
      - - - Alles sieht gut aus, also können wir jetzt den Drucker mit den entsprechenden Etiketten bestücken, die Adressetiketten drucken und die Einladungen zur Party versenden. - -
      - -
      - - - - - - - Manuelles Erstellen neuer Vorlagen - - Vordefinierte Vorlagen sind als XML-Dateien verfügbar, die in ${prefix}/share/glabels/ gespeichert sind, wobei ${prefix} üblicherweise /usr/local oder /usr ist, abhängig von der Konfigurationsoption prefix. gLabels verwendet alle Dateien der Form *-templates.xml oder *.template, die es in ${prefix}/share/glabels/ und ${HOME}/.glabels/ findet. Zusätzliche Vorlagen können unter Verwendung der Dateiendung *.template in einem dieser Ordner gespeichert werden. - - Das Format dieser Dateien ist in einer DTD definiert: glabels-2.2.dtd. Diese DTD beschreibt außerdem weitere von gLabels benutzte XML-Formate. - - - Voraussetzungen - - - Eine Seite enthält nur eine Etiketten- oder Kartengröße. Falls eine Seite mehrere Größen enthält, kann sie für das Drucken in mehreren Durchläufen über mehrere Vorlagen verteilt werden. - - - Abstände können in den Einheiten pt, in, mm, cm oder pc ausgedrückt werden. Beispiel: »1.0in« oder »2.54cm«. Falls keine Einheiten angegeben werden, nimmt der Rechner Punkt an. ein Punkt (pt) entspricht = 1/72 in = 0.352778 mm. - - - - - - Vorlagedateien - - -<?xml version="1.0"?> -<Glabels-templates> - - ...Vorlagen... - -</Glabels-templates> - - - - - - Beispielvorlage - - <Template brand="Avery" part="8160" size="US-Letter" description="Mailing Labels"> - <Label-rectangle id="0" width="189pt" height="72pt" round="5pt"> - <Markup-margin size="5pt"/> - <Layout nx="3" ny="10" x0="11.25pt" y0="36pt" dx="200pt" dy="72pt"/> - </Label-rectangle> - <Alias brand="Avery" part="5160"/> - <Alias brand="Avery" part="6233"/> - </Template> - - - - - Knoten »Template« - - Ein Template-Knoten beschreibt ein einzelnes Produkt. Es muss eine Instanz eines der anderen Label-Knoten (Label-rectangle, Label-round, or Label-cd) enthalten. Auf diesen Knoten können einer, mehrere oder kein Alias-Knoten folgen. - - - - - - - - - Eigenschaft - - - Beschreibung - - - - - - brand - - Marke oder Hersteller des Produkts, z.B. »Avery« - - - - part - - Bestellnummer oder Name des Produkts, z.B. »8160« - - - - size - - Größe des Papiers, z.B. »US-Letter«, »A4«, … - - - - description - - Beschreibung des Produkts, z.B. »Mailing Labels«. - - - - _description - - Übersetzbare Beschreibung des Produkts, z.B. »Mailing Labels« (nur sinnvoll für vordefinierte Vorlagen) - - - - width - - Seitenbreite. Nur gültig, wenn als Größe »Other« festgelegt ist. - - - - height - - Seitenhöhe. Nur gültig, wenn als Größe »Other« festgelegt ist. - - - - - - - - - - Knoten »Label-rectangle« - - Ein Label-rectangle-Knoten beschreibt die Abmessungen eines einzelnen Etiketts oder einer einzelnen Karte in rechteckiger Form, wobei abgerundete Ecken möglich sind. - - - - - - - - - Eigenschaft - - - Beschreibung - - - - - - id - - Für zukünftige Verwendung reserviert. Sollte immer 0 sein. - - - - width - Breite des Etiketts oder der Karte - - - height - Höhe des Etiketts oder der Karte - - - round - - Radius der Ecken. Für Objekte mit nicht abgerundeten Ecken (Visitenkarten) sollte der Radius 0 sein. - - - - x_waste - - Erlaubte Breite des horizontalen Überdruckens. Dies minimiert Ausrichtungsprobleme auf anderen als weißen Hintergründen (z.B. Bilder). - - - - y_waste - - Erlaubte Breite des vertikalen Überdruckens. Dies minimiert Ausrichtungsprobleme auf anderen als weißen Hintergründen (z.B. Bilder). - - - - - - - -
      - Parameter zu Label-rectangle - - - - - - -
      - - -
      - - - Knoten »Label-round« - - Ein Label-round-Knoten beschreibt die Abmessungen eines einfachen Rundetiketts (nicht einer CD). - - - - - - - - - Eigenschaft - - - Beschreibung - - - - - - id - - Für zukünftige Verwendung reserviert. Sollte immer 0 sein. - - - - radius - Radius (halber Durchmesser) des Etiketts - - - waste - - Erlaubte Breite des Überdruckens. Dies minimiert Ausrichtungsprobleme auf anderen als weißen Hintergründen (z.B. Bilder). - - - - - - - - - - Knoten »Label-cd« - - Ein Label-cd-Knoten beschreibt die Abmessungen einer CD, DVD oder Visitenkarten-CD. - - - - - - - - - Eigenschaft - - - Beschreibung - - - - - - id - - Für zukünftige Verwendung reserviert. Sollte immer 0 sein. - - - - radius - Äußerer Radius des Etiketts - - - hole - Radius des Mittellochs - - - width - - Falls vorhanden, wird das Etikett auf die angegebene Größe begrenzt (nützlich für »Visitenkarten-CDs«) - - - - height - - Falls vorhanden, wird das Etikett auf die angegebene Höhe begrenzt (nützlich für »Visitenkarten-CDs«) - - - - waste - - Erlaubte Breite des Überdruckens. Dies minimiert Ausrichtungsprobleme auf anderen als weißen Hintergründen (z.B. Bilder). - - - - - - - -
      - CD-Label-Parameter - - - - - - -
      - - -
      - - - Knoten »Markup-margin« - - Ein Markup-margin-Knoten beschreibt die Ränder entlang der Seiten eines Etiketts. - - - - - - - - - Eigenschaft - - - Beschreibung - - - - - - size - - Randbreite. Die Breite des Bereichs zwischen der Randlinie und dem Rand des Etiketts/der Karte. - - - - - - - - - - Knoten »Markup-line« - - Ein Markup-line-Knoten beschreibt eine Markierungslinie. - - - - - - - - - Eigenschaft - - - Beschreibung - - - - - - x1 - - x-Koordinate des Anfangspunkts des Linienabschnitts. - - - - y1 - - y-Koordinate des Anfangspunkts des Linienabschnitts. - - - - x2 - - x-Koordinate des Endpunkts des Linienabschnitts. - - - - y2 - - y-Koordinate des Endpunkts des Linienabschnitts. - - - - - - - - - - Knoten »Markup-circle« - - Ein Markup-circle-Knoten beschreibt einen Markierungskreis. - - - - - - - - - Eigenschaft - - - Beschreibung - - - - - - x0 - - x-Koordinate des Kreismittelpunkts. - - - - y0 - - y-Koordinate des Kreismittelpunkts. - - - - radius - Radius des Kreises. - - - - - - - - - Knoten »Markup-rect« - - Ein Markup-rect-Knoten beschreibt ein Markierungsrechteck. - - - - - - - - - Eigenschaft - - - Beschreibung - - - - - - x1 - - x-Koordinate der oberen linken Ecke des Rechtecks. - - - - y1 - - y-Koordinate der oberen linken Ecke des Rechtecks. - - - - w - - Breite des Rechtecks. - - - - h - - Höhe des Rechtecks. - - - - r - Radius der abgerundeten Ecken des Rechtecks. - - - - - - - - - Knoten »Layout« - - Ein Label-Knoten kann mehrere Layout-Unterknoten enthalten. Wenn die Etiketten in einem einfachen rechteckigen Raster angeordnet sind, dann wird nur ein Layout benötigt. Falls die Etiketten jedoch in komplizierteren Rasteranordnungen vorliegen, können mehrere Layout-Unterknoten verwendet werden. Beachten Sie, dass ein einzelnes Etikett immer auch als ein Raster aus Etiketten betrachtet werden kann. - - - - - - - - - Eigenschaft - - - Beschreibung - - - - - - nx - - Anzahl der Etiketten/Karten im Raster in horizontaler Richtung - - - - ny - - Anzahl der Etiketten/Karten im Raster in vertikaler Richtung - - - - x0 - - Abstand von linken Rand des Papiers zum linken Rand der linken Reihe der Karten/Etiketten im Layout. - - - - y0 - - Abstand von oberen Rand des Papiers zum oberen Rand der oberen Reihe der Karten/Etiketten im Layout. - - - - dx - Horizontaler Rasterabstand des Zeichengitters. - - - dy - Vertikaler Rasterabstand des Zeichengitters. - - - - - - -
      - Layout-Parameter - - - - - - -
      - - -
      - - - Knoten »Alias« - - Ein Alias-Knoten beschreibt den Namen eines Produkts mit der gleichen Größe und dem gleichen Layout einer anderen Vorlage. - - - - - - - - - Eigenschaft - - - Beschreibung - - - - - - brand - - Die Marke oder der Hersteller des entsprechenden Produkts. - - - - part - - Die Bestellnummer oder der Name des entsprechenden Produkts. - - - - - - - - -
      - - - - - - - - - - - - - - Info zu <application>gLabels</application> - gLabels wurde von Jim Evins (evins@snaught.com) geschrieben. Weitere Informationen zu gLabels finden Sie auf der gLabels-Webseite. - Um einen Fehler zu melden oder einen Vorschlag zu dieser Anwendung oder zu diesem Handbuch zu machen, folgen Sie den Anweisungen auf der gLabels-Kontaktseite. - - Dieses Programm ist freie Software. Sie können es unter den Bedingungen der GNU General Public License, wie von der Free Software Foundation veröffentlicht, weitergeben und/oder modifizieren, entweder gemäß Version 2 der Lizenz oder (nach Ihrer Option) jeder späteren Version. Eine Kopie der GNU General Public License finden Sie unter diesem Link, oder in der Datei COPYING, die im Quellcode dieses Programms enthalten ist. - - - - - - - -
      diff --git a/help/de/index.page b/help/de/index.page new file mode 100644 index 00000000..53aaa974 --- /dev/null +++ b/help/de/index.page @@ -0,0 +1,47 @@ + + + + + gLabels Etiketten- und Visitenkarten-Designer + gLabels Etiketten- und Visitenkarten-Designer + + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Share Alike 3.0

      +
      +
      + + <media type="image" mime="image/png" src="figures/glabels-logo.png">gLabels logo</media> gLabels-Handbuch + +

      Die Anwendung gLabels ist ein ressourcenschonendes Programm zum Erstellen von Etiketten und Visitenkarten für die GNOME-Arbeitsumgebung. Es wurde für die verschiedensten mit Laser- oder Tintenstrahldruckern bedruckbaren (auch selbstklebenden) Etiketten sowie Visitenkarten entworfen, so wie Sie sie in den meisten Schreibwarengeschäften finden.

      + +

      gLabels kann zum Enwerfen von Adressaufklebern, Namens- und Preisschildern, Etiketten für CDs und DVDs oder für alles Andere verwendet werden, was mit dem Bedrucken von Papieren zu tun hat, die Etiketten oder Karten in einer regulären Anordnung enthalten. Die Etiketten oder Karten können Text, Bilder, Linien, Formen oder Strichcodes enthalten. gLabels verfügt auch über ein Funktionsmerkmal zur Dokumentmischung. Das bedeutet, dass Sie eine externe Datenquelle dazu verwenden können, ein Etikett für jeden Datensatz zu drucken. Als Datenquelle kann dabei beispielsweise eine CSV-Datei oder das Adressbuch von Evolution genutzt werden.

      + +
      + <app>gLabels</app>-Hauptfenster + gLabels-Hauptfenster + +

      gLabels-Hauptfenster

      +
      +
      + +
      + Benutzung +
      + +
      + Dokumentmischung +
      + +
      + Fortgeschrittene Verwendung +
      + +
      diff --git a/help/de/labelprop.page b/help/de/labelprop.page new file mode 100644 index 00000000..5ea49498 --- /dev/null +++ b/help/de/labelprop.page @@ -0,0 +1,25 @@ + + + + + + + Ändern der Eigenschaften eines Etiketts oder einer Visitenkarte. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Share Alike 3.0

      +
      +
      + + Ändern der Eigenschaften eines Etiketts + +

      Um den Medientyp oder die Ausrichtung des Etiketts zu ändern, wählen Sie DateiEigenschaften, um den Dialog Etikett-Eigenschaften anzuzeigen. Wählen Sie den neuen Medientyp für das Dokument aus und klicken Sie anschließend auf OK.

      + +
      diff --git a/help/de/license.page b/help/de/license.page new file mode 100644 index 00000000..513d604b --- /dev/null +++ b/help/de/license.page @@ -0,0 +1,35 @@ + + + + + + + Rechtliche Hinweise. + + + Lizenz +

      Dieses Werk wird unter einer »CreativeCommons Attribution-Share Alike 3.0 Unported license« verbreitet.

      +

      Es ist Ihnen gestattet:

      + + + <em>Freizugeben</em> +

      Das Werk bzw. den Inhalt vervielfältigen, verbreiten und öffentlich zugänglich machen.

      +
      + + <em>Änderungen vorzunehmen</em> +

      Abwandlungen und Bearbeitungen des Werkes bzw. Inhaltes anzufertigen.

      +
      +
      +

      Unter den folgenden Bedingungen:

      + + + <em>Weitergabe</em> +

      Sie dürfen das Werk nur unter gleichen Bedingungen weitergeben, wie Sie vom Autor oder Lizenzgeber festgelegt wurden (aber nicht so, dass es wie Ihr Werk aussieht).

      +
      + + <em>Share Alike</em> +

      Wenn Sie das lizenzierte Werk bzw. den lizenzierten Inhalt bearbeiten, abwandeln oder in anderer Weise erkennbar als Grundlage für eigenes Schaffen verwenden, dürfen Sie die daraufhin neu entstandenen Werke bzw. Inhalte nur unter Verwendung von Lizenzbedingungen weitergeben, die mit denen dieses Lizenzvertrages identisch, vergleichbar oder kompatibel sind.

      +
      +
      +

      Den vollständigen Text der Lizenz finden sie auf der CreativeCommons-Webseite. Oder Sie können den vollständigen Commons Deed lesen.

      +
      diff --git a/help/de/mancreate.page b/help/de/mancreate.page new file mode 100644 index 00000000..e556de43 --- /dev/null +++ b/help/de/mancreate.page @@ -0,0 +1,693 @@ + + + + + + + Erstellen Sie Ihre Vorlagen manuell. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Share Alike 3.0

      +
      +
      + + Manuelles Erstellen neuer Vorlagen + + + + + + +

      Diese Seite ist eine Referenzanleitung für die manuelle Erstellung von gLabels-Vorlagen. gLabels-Vorlagen sind einfache XML-Dateien, deren Struktur in der folgenden DTD beschrieben ist: glabels-2.3.dtd. Diese DTD beschreibt außerdem weitere von gLabels benutzte XML-Formate.

      + +

      Manuell erstellte Vorlagen sollten in ${HOME}/.glabels gespeichert und mit der Erweiterung .template versehen werden.

      + + +

      gLabels sucht an verschiedenen anderen Orten nach Vorlagen, die folgendermaßen definiert werden:

      + + + + + + + + + + + + + + + + + + + + + +

      Ort

      Beschreibung

      ${prefix}/share/libglabels-3.0/templates

      In gLabels mitgelieferte vordefinierte Vorlagen.

      +

      ${prefix} ist üblicherweise /usr oder /usr/local, abhängig davon, wo gLabels installiert wurde.

      ${XDG_CONFIG_HOME}/libglabels/templates

      Mit dem Vorlagen-Designer von gLabels erstellte Vorlagen. Legen Sie hier bitte keine manuell erstellten Vorlagen ab.

      +

      Falls ${XDG_CONFIG_HOME} nicht definiert ist, wird als Vorgabe ${HOME}/.config verwendet.

      ${HOME}/.glabels

      Manuell erstellte benutzerdefinierte Vorlagen sollten hier abgelegt werden. Ältere Versionen des Vorlagen-Designers von gLabels (vor 3.0) speichern hier ebenfalls ihre Vorlagen.

      +
      + +

      Vollständige Vorlagendateien können Sie an die Vorlagen-Mailingliste von gLabels senden, damit diese in zukünftigen Versionen von gLabels mitgeliefert werden können.

      +
      + + + + + + + + +
      + Voraussetzungen + + +

      Eine Seite enthält nur eine Etiketten- oder Kartengröße. Falls eine Seite mehrere Größen enthält, kann sie für das Drucken in mehreren Durchläufen über mehrere Vorlagen verteilt werden.

      +
      + +

      Abstände können in den Einheiten pt, in, mm, cm oder pc ausgedrückt werden. Beispiel: »1.0in« oder »2.54cm«. Falls keine Einheiten angegeben werden, nimmt der Rechner Punkt an. Ein Punkt (pt) entspricht = 1/72 in = 0.352778 mm.

      +
      +
      +
      + + + + + + + + + +
      + Vorlagedateien + +

      Eine Vorlagendatei enthält in der obersten Ebene einen einzelnen Glabels-templates-Knoten.

      + + +<?xml version="1.0"?> +<Glabels-templates> + + ...Vorlagen... + +</Glabels-templates> + + + Beispielvorlage + Beispiel-Vorlagendatei von gLabels, die einen einzelnen Template-Knoten enthält. + +<?xml version="1.0"?> +<Glabels-templates> + + <Template brand="Avery" part="8160" size="US-Letter" description="Mailing Labels"> + <Meta category="label"/> + <Meta category="mail"/> + <Meta product_url="http://www.avery.com/avery/en_us/"/> + <Label-rectangle id="0" width="189pt" height="72pt" round="5pt"> + <Markup-margin size="5pt"/> + <Layout nx="3" ny="10" x0="11.25pt" y0="36pt" dx="200pt" dy="72pt"/> + </Label-rectangle> + </Template> + +</Glabels-templates> + + +
      + + + + + + + + + +
      + <span translate="no">Template</span>-Knoten + +

      Ein Template-Knoten beschreibt ein einzelnes Produkt. Es muss eine Instanz eines der anderen Label-Knoten (Label-rectangle, Label-round oder Label-cd) enthalten.

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      Eigenschaft

      Beschreibung

      brand

      Marke oder Hersteller des Produkts, z.B. »Avery«

      part

      Bestellnummer oder Name des Produkts, z.B. »8160«

      size

      Größe des Papiers, z.B. »US-Letter«, »A4«, …

      description

      Beschreibung des Produkts, z.B. »Mailing Labels«.

      _description

      Übersetzbare Beschreibung des Produkts, z.B. »Mailing Labels« (nur sinnvoll für vordefinierte Vorlagen)

      width

      Seitenbreite. Nur gültig, wenn als Größe »Other« festgelegt ist.

      height

      Seitenhöhe. Nur gültig, wenn als Größe »Other« festgelegt ist.

      equiv

      Äquivalente Bestellnummer. Falls diese Eigenschaft vorhanden ist, handelt es sich bei dieser Vorlage um eine Kopie einer anderen Vorlage der gleichen Marke. Die Vorlage erbt alle Eigenschaften der anderen Vorlage, ausgenommen die Marke und die Bezeichnung. Die »equiv«-Eigenschaft muss sich auf eine bereits definierte Vorlage beziehen, denn derzeit unterstützt libglabels keine Vorwärtsreferenzen.

      + +
      + + + + + + + + +
      + <span translate="no">Meta</span>-Knoten + +

      Ein Meta-Knoten enthält eine Reihe zusätzlicher Eigenschaften des jeweiligen Produkts. Ein Template-Knoten kann keinen, einen oder auch mehrere Meta-Knoten enthalten.

      + + + + + + + + + + + + + + + + +

      Unterknoten

      Beschreibung

      category

      Die Kategorie, der dieses Produkt zugeordnet ist. Eine Vorlage kann mehreren Kategorien zugeordnet werden, indem einfach mehrere Meta-Knoten zum übergeordneten Template-Knoten hinzugegügt werden. Die Werte dieser Kategorien werden von der Vorlagenauswahl in gLabels verwendet, um die Ansicht beispielsweise auf die Darstellung von Etiketten zu beschränken oder anders ausgedrückt, Etiketten allgemein anzuzeigen und die Anzeige anderer Produkte zu unterdrücken, an denen der Benutzer im jeweiligen Fall nicht interessiert ist.

      + +

      Der Wert dieser Kategorie muss einem der in der Datei ${prefix}/libglabels-3.0/templates/categories.xml vordefinierten Werte entsprechen. Derzeit stehen folgende Kategorien zur Verfügung:

      + +

      label

      +

      round-label

      +

      elliptical-label

      +

      square-label

      +

      rectangle-label

      +

      card

      +

      business-card

      +

      media

      +

      mail

      +

      foldable

      +

      photo

      +
      + + +

      product_url

      Diese Adresse leitet auf die Webseite des Anbieters weiter. Idealerweise ist dies die Adresse genau dieses Produkts, falls diese verfügbar ist.

      + +

      Falls Sie Ideen für neue Kategorien haben, senden Sie Ihre Vorschläge bitte an die Mailingliste der gLabels-Entwickler.

      +

      Produktadressen sind oft nur begrenzt gültig, das sich diese auch ändern können.

      +
      + +
      + + + + + + + + +
      + <span translate="no">Label-rectangle</span>-Knoten + +

      Ein Label-rectangle-Knoten beschreibt die Abmessungen eines einzelnen Etiketts oder einer einzelnen Karte in rechteckiger Form, wobei abgerundete Ecken möglich sind.

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      Eigenschaft

      Beschreibung

      id

      Für zukünftige Verwendung reserviert. Sollte immer 0 sein.

      width

      Breite des Etiketts oder der Karte

      height

      Höhe des Etiketts oder der Karte

      round

      Radius der Ecken. Für Objekte mit nicht abgerundeten Ecken (Visitenkarten) sollte der Radius 0 sein.

      x_waste

      Erlaubte Breite des horizontalen Überdruckens. Dies minimiert Ausrichtungsprobleme auf anderen als weißen Hintergründen (z.B. Bilder).

      y_waste

      Erlaubte Breite des vertikalen Überdruckens. Dies minimiert Ausrichtungsprobleme auf anderen als weißen Hintergründen (z.B. Bilder).

      + + +
      + Parameter zu Label-rectangle + +

      Parameter zu Label-rectangle

      +
      +
      + + +
      + + + + + + + + +
      + <span translate="no">Label-ellipse</span>-Knoten + +

      Ein Label-ellipse-Knoten beschreibt die Abmessungen eines einzelnen Etiketts oder einer einzelnen Karte in elliptischer Form.

      + + + + + + + + + + + + + + + + + + + + + + + + +

      Eigenschaft

      Beschreibung

      id

      Für zukünftige Verwendung reserviert. Sollte immer 0 sein.

      width

      Breite der Ellipse

      height

      Höhe der Ellipse

      waste

      Erlaubte Breite des Überdruckens. Dies minimiert Ausrichtungsprobleme auf anderen als weißen Hintergründen (z.B. Bilder).

      + + +
      + Parameter zu Label-ellipse + +

      Parameter zu Label-ellipse

      +
      +
      + + +
      + + + + + + + + +
      + <span translate="no">Label-round</span>-Knoten + +

      Ein Label-round-Knoten beschreibt die Abmessungen eines einfachen Rundetiketts (nicht einer CD).

      + + + + + + + + + + + + + + + + + + + + +

      Eigenschaft

      Beschreibung

      id

      Für zukünftige Verwendung reserviert. Sollte immer 0 sein.

      radius

      Radius (halber Durchmesser) des Etiketts

      waste

      Erlaubte Breite des Überdruckens. Dies minimiert Ausrichtungsprobleme auf anderen als weißen Hintergründen (z.B. Bilder).

      + + +
      + Parameter zu Label-ellipse + +

      Parameter zu Label-ellipse

      +
      +
      + + +
      + + + + + + + + +
      + <span translate="no">Label-cd</span>-Knoten + +

      Ein Label-cd-Knoten beschreibt die Abmessungen einer CD, DVD oder Visitenkarten-CD.

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      Eigenschaft

      Beschreibung

      id

      Für zukünftige Verwendung reserviert. Sollte immer 0 sein.

      radius

      Äußerer Radius des Etiketts

      hole

      Radius des Mittellochs

      width

      Falls vorhanden, wird das Etikett auf die angegebene Größe begrenzt (nützlich für »Visitenkarten-CDs«)

      height

      Falls vorhanden, wird das Etikett auf die angegebene Höhe begrenzt (nützlich für »Visitenkarten-CDs«)

      waste

      Erlaubte Breite des Überdruckens. Dies minimiert Ausrichtungsprobleme auf anderen als weißen Hintergründen (z.B. Bilder).

      + + +
      + Label-cd-Parameter + +

      CD-Label-Parameter

      +
      +
      + + +
      + + + + + + + + +
      + <span translate="no">Markup</span>-Knoten + +

      Vorlagen können optional auch Markierungs-Knoten enthalten. Diese Knoten beschreiben eine Reihe von Markierungslinien, die zwar im Zeichenbereich von gLabels angezeigt werden, jedoch im späteren Ausdruck nicht sichtbar sind. Diese Linien können Ränder, Falzlinien, Mittellinien oder spezielle Bereiche darstellen sowie dem Benutzer einer Vorlage weitere hilfreiche Hinweise geben.

      + + + + + +
      + <span translate="no">Markup-margin</span>-Knoten + +

      Ein Markup-margin-Knoten beschreibt die Ränder entlang der Seiten eines Etiketts.

      + + + + + + + + + + + + +

      Eigenschaft

      Beschreibung

      size

      Randbreite. Die Breite des Bereichs zwischen der Randlinie und dem Rand des Etiketts/der Karte.

      +
      + + + + + + + + +
      + <span translate="no">Markup-line</span>-Knoten + +

      Ein Markup-line-Knoten beschreibt eine Markierungslinie.

      + + + + + + + + + + + + + + + + + + + + + + + + +

      Eigenschaft

      Beschreibung

      x1

      x-Koordinate des Anfangspunkts des Linienabschnitts.

      y1

      y-Koordinate des Anfangspunkts des Linienabschnitts.

      x2

      x-Koordinate des zweiten Endpunkts des Linienabschnitts.

      y2

      y-Koordinate des zweiten Endpunkts des Linienabschnitts.

      +
      + + + + + + + + +
      + <span translate="no">Markup-circle</span>-Knoten + +

      Ein Markup-circle-Knoten beschreibt einen Markierungskreis.

      + + + + + + + + + + + + + + + + + + + + +

      Eigenschaft

      Beschreibung

      x0

      x-Koordinate des Kreismittelpunkts.

      y0

      y-Koordinate des Kreismittelpunkts.

      radius

      Radius des Kreises.

      +
      + + + + + + + + +
      + <span translate="no">Markup-rect</span>-Knoten + +

      Ein Markup-rect-Knoten beschreibt ein Markierungsrechteck.

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      Eigenschaft

      Beschreibung

      x1

      x-Koordinate der oberen linken Ecke des Rechtecks.

      y1

      y-Koordinate der oberen linken Ecke des Rechtecks.

      w

      Breite des Rechtecks.

      h

      Höhe des Rechtecks.

      r

      Radius der abgerundeten Ecken des Rechtecks.

      +
      + + + + + + + + +
      + <span translate="no">Markup-ellipse</span>-Knoten + +

      Ein Markup-ellipse-Knoten beschreibt eine Markierungsellipse.

      + + + + + + + + + + + + + + + + + + + + + + + + +

      Eigenschaft

      Beschreibung

      x1

      x-Koordinate der oberen linken Ecke des die Ellipse umschließenden Rechtecks.

      y1

      x-Koordinate der oberen linken Ecke des die Ellipse umschließenden Rechtecks.

      w

      Die Breite der Ellipse.

      h

      Die Höhe der Ellipse.

      +
      + + + + +
      + + + + + + + + +
      + <span translate="no">Layout</span>-Knoten + +

      Ein Label-Knoten kann mehrere Layout-Unterknoten enthalten. Wenn die Etiketten in einem einfachen rechteckigen Raster angeordnet sind, dann wird nur ein Layout benötigt. Falls die Etiketten jedoch in komplizierteren Rasteranordnungen vorliegen, können mehrere Layout

      + +

      Beachten Sie, dass ein einzelnes Etikett immer auch als ein Raster aus Etiketten betrachtet werden kann.

      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      Eigenschaft

      Beschreibung

      nx

      Anzahl der Etiketten/Karten im Raster in horizontaler Richtung

      ny

      Anzahl der Etiketten/Karten im Raster in vertikaler Richtung

      x0

      Abstand von linken Rand des Papiers zum linken Rand der linken Reihe der Karten/Etiketten im Layout.

      y0

      Abstand von oberen Rand des Papiers zum oberen Rand der oberen Reihe der Karten/Etiketten im Layout.

      dx

      Horizontaler Rasterabstand des Zeichengitters.

      dy

      Vertikaler Rasterabstand des Zeichengitters.

      + + +
      + Layout-Parameter + +

      Layout-Parameter

      +
      +
      + + +
      + + + + + +
      diff --git a/help/de/merge-ex1.page b/help/de/merge-ex1.page new file mode 100644 index 00000000..3070c3cb --- /dev/null +++ b/help/de/merge-ex1.page @@ -0,0 +1,72 @@ + + + + + + + Namensschilder unter Nutzung einer CSV-Datei. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Share Alike 3.0

      +
      +
      + + Beispiel 1: Namensschilder + +

      In diesem Beispiel organisieren Sie eine Orientierungsparty für die neuen Mannschaftsmitglieder Ihres Schiffes. Eine Liste der neuen Mitglieder haben Sie in gnumeric erstellt und in die folgende CSV-Datei exportiert. Sie könnten diese Datei auch in einem Texteditor erstellen, aber schließlich leben wir im 23. Jahrhundert...

      + + +Name,Department,SN +"Jim Kirk",Management,"SC937-0176 CEC" +"Mr. Spock",Sciences,S179-276SP +"Leonard McCoy",Medicine,unknown +"Montgomery Scott",Engineering,SE-197-54T + + +

      In glabels haben Sie ein neues Dokument unter Verwendung der Dokumentvorlage »Avery 5395 Namensschild-Etiketten« erzeugt. Zunächst öffnen Sie mittels ObjekteMischeinstellungen den Dialog Mischeinstellungen. In diesem Dialog wählen Sie wie gezeigt die Datenquelle aus, in diesem Fall »CSV mit Schlüsseln in Zeile 1«, sowie die Mischquelle (Dateiname).

      + + + +

      Mischeinstellungen-Dialog

      +
      + + +

      Sie können jeden Datensatz detailliert betrachten, indem Sie auf die kleinen Dreiecke klicken. Sobald Sie mit der Auswahl zufrieden sind, klicken Sie auf OK, um die Änderungen anzuwenden.

      + +

      Nun beginnen wir mit dem Hinzufügen von Objekten zu unserem gLabels-Dokument, wie gezeigt.

      + + + +

      Hinzufügen von Objekten

      +
      + + +

      In diesem Beispiel haben Sie drei Textobjekte und ein Strichcodeobjekt hinzugefügt. Das erste Textobjekt enthält nur einfachen Text (»Hello, my name is«). Das zweite Textobjekt enthält ein einfaches Mischfeld (»${Name}«), welches zum ersten Feld eines Datensatzes (erste Spalte einer Zeile) korrespondiert, die den vollen Namen eines Mannschaftsmitglieds enthält. Das dritte Feld enthält sowohl einfachen Text (»Department:«) als auch ein einzelnes Mischfeld (»${Department:}«), welches zum zweiten Feld oder zum Arbeitsgebiet eines Mannschaftsmitglieds korrespondiert. Das Strichcodefeld ist so eingestellt, das Feld (oder den Schlüssel) »SN« zu verwenden, das die Sternenflotten-Seriennummer des Mannschaftsmitglieds enthält.

      + +

      Nun können Sie Ihre Namensschilder drucken, indem Sie DateiDrucken wählen. Der unten angezeigte Druckdialog wird geöffnet.

      + + + +

      Drucken der Namensschilder

      +
      + + +

      Um sicher zu stellen, dass Ihre Etiketten gut aussehen, wählen Sie die Option Begrenzungen drucken und klicken auf Druckvorschau. Der Druckvorschaudialog wird geöffnet, wie unten angezeigt.

      + + + +

      Vorschau der Namensschilder

      +
      + + +

      Alles sieht gut aus, also können wir jetzt den Drucker mit den entsprechenden Etiketten bestücken, die Namensschilder drucken und die Gäste an Bord beamen.

      + + +
      diff --git a/help/de/merge-ex2.page b/help/de/merge-ex2.page new file mode 100644 index 00000000..f0001c96 --- /dev/null +++ b/help/de/merge-ex2.page @@ -0,0 +1,75 @@ + + + + + + + Erstellen von Adressetiketten aus den Daten einer CSV-Datei. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Share Alike 3.0

      +
      +
      + + Beispiel 2: Adressetiketten + +

      In diesem Beispiel planen Sie eine Party. Dafür benötigen Sie Adressetiketten für die Einladungen. Sie haben eine Liste Ihrer besten Freunde in gnumeric erstellt, die Sie in die folgende CSV-Datei exportiert haben. Es ist zu beachten, dass nicht jeder einen zweiten Vornamen oder eine zweizeilige Adresse hat.

      + + +LAST,FIRST,MI,ADDR1,ADDR2,CITY,STATE,ZIP +,,,,,,, +Critter,Ess,S,"123 Faux St.",,Alexandria,VA,22310 +Doe,John,,"Apt 1X","451 Mystery St.",Trenton,NJ,08601 +Summers,Joyce,,"1630 Revello Dr",,Sunnydale,CA,95037 +McGarret,Steve,O,"404 Piikoi Street",,Honolulu,HI,96813 +Kramer,Cosmo,,"Apt 5B","129 W. 81 St.","New York",NY,10024-7207 + + +

      In glabels haben Sie ein neues Dokument unter Verwendung der Dokumentvorlage »Avery 5512 Adressetiketten« erzeugt. Zunächst öffnen Sie mittels ObjekteMischeinstellungen den Dialog Mischeinstellungen. In diesem Dialog wählen Sie wie gezeigt die Datenquelle aus, in diesem Fall »CSV mit Schlüsseln in Zeile 1«, sowie die Mischquelle (Dateiname).

      + + + +

      Mischeinstellungen-Dialog

      +
      + + +

      Bevor Sie eine neue Einmischquelle anwenden, sollten Sie den ersten Datensatz deaktivieren, weil dieser nur Spaltenköpfe aus der originalen gnumeric-Tabelle enthält. Dadurch würde nur das erste Etikett verschwendet. Weiterhin können Sie alle anderen Datensätze entfernen, die Sie nicht für ein Etikett verwenden wollen.

      + +

      Sie können jeden Datensatz detailliert betrachten, indem Sie auf die kleinen Dreiecke klicken. Sobald Sie mit der Auswahl zufrieden sind, klicken Sie auf OK, um die Änderungen anzuwenden.

      + +

      Nun beginnen wir mit dem Hinzufügen von Objekten zu unserem gLabels-Dokument, wie gezeigt.

      + + + +

      Hinzufügen von Objekten

      +
      + + +

      In diesem Beispiel haben Sie ein einzelnes Textobjekt. Dieses Textobjekt enthält alle Einmischfelder, angeordnet in mehreren Zeilen wie eine Versandadresse. Beachten Sie, dass die Felder ${ADDR1} und ${ADDR2} jeweils keinen weiteren Text in deren Zeilen enthalten. Wenn glabels ein solches Feld als »nur Text« in einer Zeile erkennt, wird die Zeile nicht expandiert, falls das Feld leer ist.

      + +

      Nun können Sie Ihre Adressetiketten drucken, indem Sie DateiDrucken wählen. Der unten angezeigte Druckdialog wird geöffnet.

      + + + +

      Adressetiketten drucken

      +
      + + +

      Um sicher zu stellen, dass Ihre Etiketten gut aussehen, wählen Sie die Option Begrenzungen drucken und klicken auf Druckvorschau. Der Druckvorschaudialog wird geöffnet, wie unten angezeigt.

      + + + +

      Adressetiketten-Vorschau

      +
      + + +

      Alles sieht gut aus, also können wir jetzt den Drucker mit den entsprechenden Etiketten bestücken, die Adressetiketten drucken und die Einladungen zur Party versenden.

      + +
      diff --git a/help/de/merge-ex3.page b/help/de/merge-ex3.page new file mode 100644 index 00000000..833a60a7 --- /dev/null +++ b/help/de/merge-ex3.page @@ -0,0 +1,72 @@ + + + + + + + Erstellung von Adressetiketten unter Nutzung des Evolution-Adressbuchs. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Share Alike 3.0

      +
      +
      + + Beispiel 3: Adressetiketten unter Nutzung des <app>Evolution</app>-Adressbuchs + +

      Ihre letzte Party war ein voller Erfolg. Nun benötigen Sie wieder Adressetiketten für die Einladungen zu einer neuen Party. Um dies zu vereinfachen, können Sie das Evolution-Adressbuch nutzen, denn die Adressdaten aller Ihrer Freunde sind dort gespeichert.

      + + +

      Abhängig davon, wie Ihr gLabels-Paket erstellt wurde, könnte diese Option nicht verfügbar sein. Die Unterstützung für das Adressbuch von Evolution ist nur dann vorhanden, wenn evolution-data-server und dessen Entwicklerdateien zum Zeitpunkt der Erstellung von gLabels verfügbar waren. Bitte denken Sie auch daran, wenn Sie gLabels direkt aus den Quellen erstellen.

      + +

      Falls das gLabels-Paket Ihrer Distribution diese Unterstützung nicht bieten sollte, kontaktieren Sie bitte den Ersteller des Pakets oder senden Sie einen Fehlerbericht, um dies einzufordern.

      +
      + +

      In glabels haben Sie ein neues Dokument unter Verwendung der Dokumentvorlage »Avery 5512 Adressetiketten« erzeugt. Zunächst öffnen Sie mittels ObjekteMischeinstellungen den Dialog Mischeinstellungen. In diesem Dialog wählen Sie wie gezeigt die Datenquelle aus, in diesem Fall CSV, sowie die Mischquelle (Dateiname).

      + + + +

      Mischeinstellungen-Dialog

      +
      + + +

      Sobald Sie Daten aus dem vorgegebenen Evolution-Adressbuch als Mischquelle gewählt haben, erhalten Sie eine vollständige Liste mit dessen Inhalt. Anfänglich sind alle Einträge ausgewählt. Angenommen, Sie planen eine wirklich große Party, können Sie die Auswahl unverändert belassen. Behalten Sie jedoch dabei Ihre finanziellen Möglichkeiten im Auge. Sie können bestimmte Einträge auswählen oder wieder abwählen, indem Sie die entsprechenden Ankreuzfelder anklicken. Alternativ können Sie durch Anklicken der Knöpfe Alle markieren oder Markierung aufheben alle Einträge des Adressbuchs aktivieren oder deaktivieren.

      + +

      Sie können jeden Datensatz detailliert betrachten, indem Sie auf die kleinen Dreiecke klicken. Sobald Sie mit der Auswahl zufrieden sind, klicken Sie auf OK, um die Änderungen anzuwenden.

      + +

      Nun beginnen wir mit dem Hinzufügen von Objekten zu unserem gLabels-Dokument, wie gezeigt.

      + + + +

      Hinzufügen von Objekten

      +
      + + +

      In diesem Beispiel haben Sie ein einzelnes Textobjekt. Dieses Textobjekt enthält alle Einmischfelder, angeordnet in mehreren Zeilen wie eine Versandadresse.

      + +

      Nun können Sie Ihre Adressetiketten drucken, indem Sie DateiDrucken wählen. Der unten angezeigte Druckdialog wird geöffnet.

      + + + +

      Adressetiketten drucken

      +
      + + +

      Um sicher zu stellen, dass Ihre Etiketten gut aussehen, wählen Sie die Option Begrenzungen drucken und klicken auf Druckvorschau. Der Druckvorschaudialog wird geöffnet, wie unten angezeigt.

      + + + +

      Adressetiketten-Vorschau

      +
      + + +

      Alles sieht gut aus, also können wir jetzt den Drucker mit den entsprechenden Etiketten bestücken, die Adressetiketten drucken und die Einladungen zur Party versenden.

      + + +
      diff --git a/help/de/merge-ex4.page b/help/de/merge-ex4.page new file mode 100644 index 00000000..8d30687a --- /dev/null +++ b/help/de/merge-ex4.page @@ -0,0 +1,24 @@ + + + + + + + Erstellen von Adressetiketten aus einer vCard-Datei. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Share Alike 3.0

      +
      +
      + + Beispiel 4: Adressetiketten unter Nutzung einer vCard-Datei + + +
      diff --git a/help/de/merge.page b/help/de/merge.page new file mode 100644 index 00000000..356347fc --- /dev/null +++ b/help/de/merge.page @@ -0,0 +1,28 @@ + + + + + + + Einmischen einer Datenquelle zur Erstellung von Seriendokumenten. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Share Alike 3.0

      +
      +
      + + Anleitung zur Dokumentmischung + +

      Dokumentmischung ist ein mächtiges Funktionsmerkmal, das es Ihnen ermöglicht, ein einzelnes Etikett oder eine einzelne Karte für jeden Datensatz aus einer externen Datenquelle zu erstellen. Es ist allerdings die am häufigsten missverstandene Funktion in glabels. Die folgenden Beispiele führen Sie schrittweise durch viele der Aufgaben, die Sie mit der Dokumentmischung ausführen können.

      + +
      +
      + +
      diff --git a/help/de/mergefeatures.page b/help/de/mergefeatures.page new file mode 100644 index 00000000..2278003b --- /dev/null +++ b/help/de/mergefeatures.page @@ -0,0 +1,35 @@ + + + + + + + Was Sie von einer Dokumentmischung erwarten können. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Share Alike 3.0

      +
      +
      + + Ausführung einer Dokumentmischung + +

      Dokumentmischung ist ein mächtiges Funktionsmerkmal, das es Ihnen ermöglicht, ein einzelnes Etikett oder eine einzelne Karte für jeden Datensatz aus einer externen Datenquelle zu erstellen.

      + +

      Der erste Schritt zur Ausführung einer Dokumentmischung ist die Vorbereitung eines Quelldokuments, welches die Daten zum Mischen enthält. Diese Daten können aus E-Mail-Adressen oder anderen Daten bestehen, aus denen Sie die einzelnen Etiketten oder Karten erstellen wollen. Gegenwärtig können als Datenquellen entweder Textdateien oder die Daten des Evolution-Adressbuchs verwendet werden, andere sind bereits in Planung. Das derzeit unterstützte Textformat ist recht einfach: Jede Zeile stellt einen Datensatz dar, wobei die einzelnen Felder durch Kommata (CSV), Tabulatoren oder Semikola getrennt werden. Neue Zeilen werden durch einen Zeilenumbruch »\n« erzeugt. Diese Datei kann mit einem Texteditor, einem anderen Programm oder einem Skript erstellt werden. Ein üblicher Weg der Erstellung ist der Export einer CSV-Datei aus einer Tabellenkalkulation.

      + +

      Ein Etikett muss erstellt werden, das auf diese Datenquelle »zeigt«. Um die Mischeigenschaften für ein Dokument festzulegen, wählen Sie ObjekteMischeinstellungen. Der Dialog Mischeigenschaften wird geöffnet. In diesem Dialog wählen Sie das genaue Dateiformat und den Dateinamen (den Ort) der einzumischenden Daten aus.

      + +

      Zum Schluss, sobald das Etikett für die Datenquelle eingerichtet wurde, können die Feldschlüssel in Textobjekte eingefügt werden, um sie als Datenquelle für Strichcodeobjekte oder Bilder für Bildobjekte zu verwenden. Weitere Informationen über die Verwendung der Mischdaten für diese Objekttypen finden Sie in .

      + +

      Da Ihr Etikett nun konfiguriert ist, druckt gLabels genau ein Etikett für jeden Datensatz des Quelldokuments, wobei alle Text-, Bild- und Strichcode-Objekte durch die Einträge der Felder jedes Datensatzes ersetzt werden.

      + +

      In finden Sie eine ausführliche Anleitung für dieses Funktionsmerkmal.

      + +
      diff --git a/help/de/multifile.page b/help/de/multifile.page new file mode 100644 index 00000000..cd04dc8d --- /dev/null +++ b/help/de/multifile.page @@ -0,0 +1,29 @@ + + + + + + + Öffnen mehrerer Dateien aus einer Befehlszeile. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Share Alike 3.0

      +
      +
      + + Öffnen mehrerer Dateien aus einer Befehlszeile + +

      Sie können gLabels aus einer Befehlszeile starten und eine Datei oder mehrere Dateien öffnen. Um mehrere Dateien aus einer Befehlszeile zu öffnen, geben Sie den folgenden Befehl ein und drücken dann die Eingabetaste:

      + +

      glabels Datei1.glabels Datei2.glabels Datei3.glabels

      + +

      Wenn die Anwendung startet, werden die von Ihnen angegebenen Dateien in separaten -gLabels-Fenstern angezeigt.

      + +
      diff --git a/help/de/newlabel.page b/help/de/newlabel.page new file mode 100644 index 00000000..4680c3b5 --- /dev/null +++ b/help/de/newlabel.page @@ -0,0 +1,25 @@ + + + + + + + Erstellen einer neuen Karte oder eines neuen Etiketts in gLabels. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Share Alike 3.0

      +
      +
      + + Erstellen eines neuen Etiketts oder einer neuen Karte + +

      Um ein neues Etikett oder eine neue Visitenkarte anzulegen, wählen Sie DateiNeu, um den Dialog Neues Etikett oder neue Karte anzuzeigen. Wählen Sie den Medientyp und die Ausrichtung für das neue Dokument aus und klicken Sie anschließend auf OK. Ein neues Dokument erscheint im Anzeigebereich des gLabels-Fensters.

      + +
      diff --git a/help/de/printfile.page b/help/de/printfile.page new file mode 100644 index 00000000..17440064 --- /dev/null +++ b/help/de/printfile.page @@ -0,0 +1,86 @@ + + + + + + + Ausdrucke von Ihren Etiketten oder Karten erstellen. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Share Alike 3.0

      +
      +
      + + Drucken von Etiketten oder Karten + +

      Um Etiketten oder Visitenkarten zu drucken, wählen Sie DateiDrucken, um den Drucken-Dialog anzuzeigen. Nachdem Sie die Druckoptionen ausgewählt haben, klicken Sie auf Drucken, um die Etiketten oder Visitenkarten zu drucken. Um zunächst eine Vorschau auf die Druckergebnisse zu erhalten, klicken Sie auf Druckvorschau.

      + +

      Im Dialog Drucken können Sie die folgenden Optionen zum Drucken festlegen:

      + +
      + Der Reiter »Etiketten« des Druckdialogs + +
      + Drucksteuerung (einfach) + +

      Für einfache Etiketten oder Karten (keine Dokumentmischung) enthält der Reiter »Labels« die folgenden Einstellmöglichkeiten.

      + + + +

      Angeben der Kopien

      +
      + + +

      Die Anzahl der Kopien können Sie wählen, indem Sie die Anzahl der vollständig zu druckenden Seiten oder eine Teilmenge von Etiketten auf einer einzelnen Seite auswählen.

      + +

      Die verkleinerte Vorschau können Sie auch dazu verwenden, einen Teil der Etiketten grafisch auszuwählen, indem Sie auf das erste Etikett klicken und es auf das letzte Etikett ziehen.

      + +
      + +
      + Drucksteuerung (Mischen) + +

      Für Etiketten oder Karten unter Verwendung der Dokumentmischung enthält dieser Reiter die folgenden Einstellungen zur Mischung von Dokumenten anstelle der Festlegung der Kopien.

      + + + +

      Steuerung der Einmischung von Dokumenten

      +
      + + +

      Die Gesamtzahl der gedruckten Etiketten oder Karten ergibt sich als Produkt aus der Anzahl der Datensätze in der Einmischquelle und der Anzahl der gewählten Kopien. Falls mehrere Kopien gewählt wurden, können diese entweder zusammengefasst werden (durch Gruppieren der Kopien des gleichen Datensatzes) oder nicht zusammengefasst (eine Kopie jedes Datensatzes wird immer vor der nächsten Kopie gedruckt).

      + +

      Der Druck kann mit jedem beliebigen Etikett der ersten Seite begonnen werden. Dies können Sie im Einstellfeld Start bei Etikett auswählen.

      + +

      In der verkleinerten Vorschau können Sie das erste Etikett grafisch auswählen, indem Sie das gewünschte Etikett anklicken.

      + +
      + +
      + Optionen +

      Die folgenden Optionen können ebenfalls gewählt werden.

      + + +

      Begrenzungen drucken

      +

      Begrenzungen der Etiketten drucken. Diese Option ist nützlich, wenn Sie die Lage des Papiers im Drucker prüfen wollen.

      +
      + +

      Spiegelbildlich drucken

      +

      Druckt die Etiketten spiegelbildlich. Diese Option ist nützlich für das Drucken durchsichtiger Aufkleber, die von der Rückseite aus betrachtet werden (z.B. hinter Autoscheiben).

      +
      + +

      Schnitt

      +

      Druckt Schnittmarken entlang der Papierränder. Diese Option ist nützlich zum Drucken auf Papier, das erst nach dem Druck beschnitten werden soll. Diese Option funktioniert eventuell nicht mit allen Vorlagen.

      +
      +
      +
      +
      + +
      diff --git a/help/de/select.page b/help/de/select.page new file mode 100644 index 00000000..1e1c9432 --- /dev/null +++ b/help/de/select.page @@ -0,0 +1,83 @@ + + + + + + + Objekte auswählen. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Share Alike 3.0

      +
      +
      + + Auswählen von Objekten + +

      Eine Voraussetzung zum Ausführen von Operationen auf Objekten ist die Auswahl individueller Objekte oder Gruppen von Objekten. Der Anzeigebereich muss sich im Objektauswahlmodus befinden, was durch einen pfeilförmigen Mauszeiger angezeigt wird. Der Objektauswahlmodus wird über den Menüeintrag ObjekteAuswahlmodus aktiviert oder über das entsprechende Objekt in der Zeichenwerkzeugleiste.

      + +
      + Auswahl eines einzelnen Objekts +

      Ein einzelnes Objekt können Sie auswählen, indem Sie das gewünschte Objekt im Anzeigebereich anklicken. Nach dem Anklicken wird das Objekt durch Anfasspunkte zur Größenänderung hervorgehoben.

      +
      + +
      + Auswahl mehrerer Objekte +

      Sie können mehrere Objekte auswählen, indem Sie zunächst das erste Objekt auswählen, wie oben beschrieben. Halten Sie dann bei der Auswahl weiterer Objekte die Strg-Taste gedrückt. Zusätzliche Objekte können Sie jederzeit zur Auswahl hinzufügen, wenn Sie wiederum die Strg-Taste gedrückt halten und die gewünschten Objekte auswählen. Alle Objekte lassen sich über den Menüeintrag BearbeitenAlle auswählen auswählen. Alle Objekte in einer zusammenhängenden Objektauswahl werden hervorgehoben dargestellt.

      +
      + +
      + Bereichsauswahl + +

      Sie können auch mehrere Objekte auswählen, indem Sie in einen leeren Bereich klicken und mit der Maus die Form eines Rechtecks aufziehen. Daraufhin bilden alle Objekte in diesem Bereich eine zusammenhängende Auswahl. Eine Bereichsauswahl kann zum Hinzufügen einer vorhandenen Auswahl benutzt werden, wenn Sie bei der Auswahl die Strg-Taste gedrückt halten.

      + +
      + +
      + Auswahl von Objekten aufheben + +

      Sie können individuelle Objekte aus einer vorhandenen Auswahl entfernen, wenn Sie beim Klicken auf ein zuvor ausgewähltes Objekt die Strg-Taste gedrückt halten. Die gesamte Auswahl können Sie rückgängig machen, indem Sie im Menü BearbeitenAlle Markierungen löschen wählen. Sobald ein Objekt nicht mehr ausgewählt ist, wird es nicht mehr hervorgehoben dargestellt.

      + +
      + +
      + Befehle für die Zwischenablage + +

      Objektauswahlen können durch die Standardoperationen der Zwischenablage Ausschneiden, Kopieren, Einfügen und Löschen manipuliert werden.

      + +
      + <gui>Ausschneiden</gui> (<keyseq><key>Strg</key><key>X</key></keyseq>) + +

      Verschiebt die ausgewählten Objekte in die Zwischenablage. Diese Objekte sind dann verfügbar, um später in das aktuelle Dokument oder ein anderes Dokument eingefügt zu werden.

      + +
      + +
      + <gui>Kopieren</gui> (<keyseq><key>Strg</key><key>C</key></keyseq>) + +

      Kopiert die ausgewählten Objekte in die Zwischenablage, ohne sie zu entfernen. Diese Objekte sind dann verfügbar, um später in das aktuelle Dokument oder ein anderes Dokument eingefügt zu werden.

      + +
      + +
      + <gui>Einfügen</gui> (<keyseq><key>Strg</key><key>V</key></keyseq>) + +

      Fügt Objekte aus der Zwischenablage in das aktuelle Dokument ein. gLabels kann nur Objekte aus anderen gLabels-Dokumenten einfügen.

      + +
      + +
      + <gui>Löschen</gui> (<key>Entf</key>) + +

      Entfernt die ausgewählten Objekte, ohne sie in die Zwischenablage zu verschieben.

      + +
      +
      + +
      diff --git a/help/de/skipfields.page b/help/de/skipfields.page new file mode 100644 index 00000000..f3f05d31 --- /dev/null +++ b/help/de/skipfields.page @@ -0,0 +1,44 @@ + + + + + + + Überspringen von leeren Adresszeilen bei der Ausführung einer Dokumentmischung. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Share Alike 3.0

      +
      +
      + + Überspringen leerer Adresszeilen + +

      Dieses Funktionsmerkmal lässt sich am besten anhand eines einfachen Beispiels beschreiben. In der folgenden CSV-Datei enthält die Spalte 5 (ADDR2) die zweite Adresszeile jedes Datensatzes. Dieses Feld ist in den Datensätzen 1 und 2 leer, nicht jedoch in Datensatz 3. Damit dies auch funktioniert, muss das Feld wirklich vollständig leer sein. Jeglicher Text, selbst wenn es auch nur Leerzeichen sein sollten, wird diese Funktion scheitern lassen.

      + + + LAST,FIRST,MI,ADDR1,ADDR2,CITY,STATE,ZIP + Summers,Joyce,,"1630 Revello Dr",,Sunnydale,CA,95037 + McGarret,Steve,O,"404 Piikoi Street",,Honolulu,HI,96813 + Kramer,Cosmo,,"Apt 5B","129 W. 81 St.","New York",NY,10024-7207 + + +

      Im folgenden Bildschirmfoto wurde ein mehrzeiliges Textobjekt erzeugt, um diese Adressen zu formatieren. Beachten Sie, dass ${ADDR2}, welches die zweite Adresszeile darstellt, in einer eigenen Zeile steht. Jeder zusätzliche Text, auch Leerzeichen, lassen diese Funktion scheitern.

      + + +

      Mehrzeilige Adressen

      +
      + +

      Durch Drucken der Etiketten erhalten Sie folgende Ausgabe. Beachten Sie, dass die Zeile, welche das Feld ${ADDR2} enthält, für die ersten zwei Datensätze komplett übersprungen wurde, ohne dass eine leere Zeile gedruckt wird.

      + + +

      Ausgabe

      +
      + +
      diff --git a/help/es/about.page b/help/es/about.page new file mode 100644 index 00000000..4e5f5f60 --- /dev/null +++ b/help/es/about.page @@ -0,0 +1,27 @@ + + + + + + + Información acerca de gLabels. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Compartir Igual 3.0

      +
      +
      + + Acerca de <app>gLabels</app> + +

      Jim Evins escribió gLabels. Para obtener más información acerca de gLabels, visite la página web degLabels.

      +

      Para informar de un error o hacer una sugerencia acerca de esta aplicación o este manual, siga las indicaciones en la página de contacto de gLabels.

      + +

      Este programa se distribuye bajo los términos de la Licencia Pública General GNU tal como la publica la Free Software Foundation; tanto en la versión 3 de la Licencia, o (a su elección) cualquier otra versión posterior. Puede encontrarse una copia de esta licencia en este enlace, o en el archivo COPYING incluido con el código fuente de este programa.

      +
      diff --git a/help/es/basicusage.page b/help/es/basicusage.page new file mode 100644 index 00000000..151203da --- /dev/null +++ b/help/es/basicusage.page @@ -0,0 +1,62 @@ + + + + + + + Manejar archivos y salir de la aplicación. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Compartir Igual 3.0

      +
      +
      + + Uso básico + +
      + Abrir un archivo + +

      Para abrir un archivo, elija ArchivoAbrir para mostrar el diálogo de Abrir archivo. Seleccione el archivo que quiere abrir y pulse Aceptar. El archivo se muestra en el área de visualización de la ventana de gLabels.

      + +

      Puede abrir múltiples archivos en gLabels. La aplicación crea una ventana de aplicación separada para cada archivo abierto.

      + +

      La aplicación guarda las rutas y los nombres de archivo de los archivos más recientes que haya editado, y muestra los archivos como elementos del menú ArchivoArchivos recientes.

      +
      + +
      + Cerrar un archivo + +

      Para cerrar el documento actual, elija ArchivoCerrar para cerrar la ventana de la aplicación. Si el documento actual se ha modificado, se mostrará un diálogo de confirmación, permitiéndole guardar el documento o cancelar el comando. Si la ventana que va a cerrar es la única que está abierta, gLabels se cerrará.

      +
      + +
      + Guardar un archivo + +

      Puede guardar archivos de cualquiera de estas maneras:

      + + + +

      Para guardar los cambios a un archivo existente, elija ArchivoGuardar.

      + +
      + + +

      Para guardar un archivo nuevo o para guardar un archivo existente con un nombre de archivo nuevo, elija ArchivoGuardar como. Introduzca un nombre para el archivo en el cuadro de diálogo Guardar como y pulse Aceptar.

      + +
      +
      +
      + +
      + Salir de <application>gLabels</application> + +

      Para salir de gLabels, elija ArchivoQuitar. Esto es equivalente a cerrar todas las ventanas abiertas. Consulte la .

      +
      +
      diff --git a/help/es/createnew.page b/help/es/createnew.page new file mode 100644 index 00000000..87f05b9c --- /dev/null +++ b/help/es/createnew.page @@ -0,0 +1,57 @@ + + + + + + + Crear objetos nuevos dentro de su documento. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Compartir Igual 3.0

      +
      +
      + + Crear objetos nuevos + +

      Los objetos se crean eligiendo la selección adecuada en el submenú ObjetosCrear Objeto o la Barra de dibujo. Esto situará el área de visualización en el modo de creación de objetos como indica su cursor. Para volver al modo de selección de objetos predeterminado sin crear un objeto, seleccioneObjetosSeleccionar modo. Esto devolverá el cursor del área de visualización a la flecha de selección predeterminada.

      + +

      A continuación se describe el modo de creación de un objeto para cada tipo de objeto:

      + +
      + Texto +

      Pulse en la ubicación que quiera en la esquina superior izquierda del objeto de texto y arrástrelo. Los objetos de texto nuevos se inicializan con la cadena «Texto». Para cambiar este texto u otras propiedades, consulte la .

      +
      + +
      + Caja +

      Pulse en la ubicación que quiera en la esquina superior izquierda del objeto de caja y arrástrelo a la ubicación que quiere en la esquina inferior derecha. Si simplemente pulsa en una única ubicación, se creará una caja cuadrada. Para cambiar las propiedades del objeto de caja, consulte la .

      +
      + +
      + Línea +

      Pulse en la ubicación que quiera en uno de los extremos del objeto de línea y arrástrelo a la ubicación que quiere en el otro extremo. Si simplemente pulsa en una única ubicación, se creará una línea. Para cambiar las propiedades del objeto de línea, consulte la .

      +
      + +
      + Elipse +

      Pulse en la ubicación que quiera en la esquina superior izquierda del objeto de elipse y arrástrelo a la ubicación que quiere en la esquina inferior derecha. Si simplemente pulsa en una única ubicación, se creará un círculo. Para cambiar las propiedades del objeto de elipse, consulte la .

      +
      + +
      + Imagen +

      Pulse en la ubicación que quiera en la esquina superior izquierda del objeto de imagen y arrástrelo a la ubicación que quiere en la esquina inferior derecha. Si simplemente pulsa en una única ubicación, se creará un cuadrado. Los objetos de imagen nuevos se inicializan con una imagen cuadriculada. Para cambiar esta imagen, u otras propiedades del objeto de imagen, consulte la .

      +
      + +
      + Código de barras +

      Pulse en la ubicación que quiera en la esquina superior izquierda del objeto de código de barras. Los objetos de código de barras nuevos se inicializan con un código de barras POSTNET con datos representativos. Para cambiar los datos y las propiedades del objeto de código de barras, consulte la .

      +
      + +
      diff --git a/help/es/customize.page b/help/es/customize.page new file mode 100644 index 00000000..0bdc8612 --- /dev/null +++ b/help/es/customize.page @@ -0,0 +1,114 @@ + + + + + + + Personalizar gLabels para ajustarlo a sus necesidades. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Compartir Igual 3.0

      +
      +
      + + + + Configuración +

      Para configurar gLabels, elija ConfiguraciónPreferencias. El diálogo Preferencias contiene las siguientes secciones en pestañas:

      + +
      + Región +
      + Unidades +

      Use este grupo de botones de radio para especificar sus unidades favoritas. Seleccione una de las siguientes opciones:

      + + +

      Puntos

      +

      Usar puntos (1 punto = 1/72 pulgadas = 0.352778 mm).

      +
      + +

      Pulgadas

      +

      Usar pulgadas.

      +
      + +

      Milímetros

      +

      Usar milímetros.

      +
      +
      +

      Predeterminado: pulgadas.

      +
      + +
      + Tamaño de página predeterminado +

      Use este grupo de botones de radio para especificar su tamaño de página favorito. Esto hará que localice más rápidamente los tipos de medios cuando crea una etiqueta o una tarjeta nuevas.

      + + +

      Carta

      +

      La mayoría de sus medios serán tendrán un tamaño de página «Carta» (8.5 x 11 pulgadas).

      +
      + +

      ISO A4

      +

      La mayoría de sus medios serán del tamaño de página ISO A4 (210 x 297 mm).

      +
      +
      +

      Predeterminado: Carta.

      +
      +
      + +
      + Opciones predeterminadas para el objeto + +
      + Texto +

      Use estos controles para configurar las propiedades predeterminadas de los objetos de texto nuevos. Estas propiedades son:

      + + +

      Tipografía

      +

      Estos controles se usan para seleccionar la familia tipográfica y su tamaño, y si la tipografía debe ser negrita o cursiva.

      +
      + +

      Color

      +

      Este control selecciona el color predeterminado del texto.

      +
      + +

      Alineación

      +

      Estos controles se usan para seleccionar la alineación predeterminada del texto (izquierda, centrado o derecha).

      +
      +
      +
      + +
      + Línea +

      Use estos controles para establecer las propiedades predeterminadas de las líneas y los márgenes de los objetos nuevos. Estas propiedades son:

      + + +

      Anchura

      +

      Este control selecciona la anchura predeterminada de la línea.

      +
      + +

      Color

      +

      Este control selecciona el color predeterminado de la línea.

      +
      +
      +
      + +
      + Relleno +

      Use este control para establecer la propiedad predeterminada de relleno de los objetos nuevos. Esta propiedad es:

      + + +

      Color

      +

      Este control selecciona el color predeterminado de relleno.

      +
      +
      +
      +
      + +
      diff --git a/help/es/customtemplate.page b/help/es/customtemplate.page new file mode 100644 index 00000000..14ab81fe --- /dev/null +++ b/help/es/customtemplate.page @@ -0,0 +1,27 @@ + + + + + + + Crear sus propias plantillas para productos de papelería. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Compartir Igual 3.0

      +
      +
      + + Crear una plantilla personalizada + +

      Para crear una plantilla nueva personalizada, elija ArchivoDiseñador de plantillas... para mostrar el diálogo Diseñador de plantillas. Este diálogo le asistirá en la creación de una plantilla personalizada para la mayoría de tipos de etiquetas o tarjetas de papelería que pueda encontrar.

      + +

      Si lo prefiere, puede crear sus plantillas manualmente. Para esta opción consulte la

      + +
      diff --git a/help/es/editprop.page b/help/es/editprop.page new file mode 100644 index 00000000..a82d7c5f --- /dev/null +++ b/help/es/editprop.page @@ -0,0 +1,167 @@ + + + + + + + Cambiar las propiedades de objetos. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Compartir Igual 3.0

      +
      +
      + + Editar las propiedades del objeto + +
      + +

      La mayoría de las propiedades de un objeto se pueden modificar a través de la barra lateral del editor de objetos. Para usar el editor de objetos, se debe seleccionar primero un objeto. Consulte la .

      + + + +

      Controles de impresión de copia

      +
      + + +

      El editor de objetos contendrá un subconjunto de las siguientes secciones en pestañas, dependiendo del tipo de objeto:

      + +
      + Sección de texto en pestañas (objetos de texto) + +

      Esta sección contiene un pequeño editor para cambiar el contenido de un objeto de texto. También contiene un menú desplegable con las claves combinadas del documento disponibles, que se pueden insertar en el texto.

      + +
      + +
      + Sección de imagen en pestañas (objetos de imagen) + +

      Esta sección contiene una entrada de archivo con vista previa para seleccionar los archivos de imagen. El botón de exploración se puede usar fácilmente para encontrar archivos de imágenes. Alternativamente, se puede usar la clave de combinación de un documento para proporcionar un nombre de archivo a la hora de imprimir.

      + +
      + +
      + Sección de datos en pestañas (objetos de código de barras) + +

      Esta sección contiene una entrada de texto para introducir datos de un código de barras literalmente. Alternativamente, se puede usar la clave de combinación de un documento para proporcionar este dato a la hora de imprimir.

      + +
      + +
      + Sección de estilo en pestañas (objetos de texto) + +

      Esta sección contiene controles para seleccionar las propiedades del texto, incluyendo la familia tipográfica, tamaño, peso, color y justificación del texto.

      + +
      + +
      + Sección de estilo en pestañas (objetos de código de barras) + +

      Esta sección contiene controles para seleccionar las propiedades del código de barras, incluyendo su estilo, color, si se debe imprimir texto y si se debe incluir un dígito de control.

      + +
      + +
      + Sección de línea en pestañas + +

      Esta sección contiene controles para seleccionar las propiedades de las líneas y de los márgenes. Estas propiedades incluyen el ancho de línea y el color.

      + +
      + +
      + Sección de relleno en pestañas + +

      Esta sección contiene controles para seleccionar las propiedades de relleno de objetos de caja y de elipse. Actualmente, la única propiedad del relleno es el color.

      + +
      + +
      + Sección de tamaño en pestañas (todos excepto los objetos de línea) + +

      Esta sección contiene controles para seleccionar la anchura y la altura de un objeto. Se proporciona una casilla, por lo que la relación de aspecto actual se puede bloquear mientras se manipulan los controles de anchura y altura. Los objetos de imagen también proporcionan un botón para reiniciar el tamaño al original de la imagen (se asumen 72DPI)

      + +
      + +
      + Sección de tamaño en pestañas (objetos de línea) + +

      Esta sección contiene controles para seleccionar la longitud y el ángulo de un objeto de línea.

      + +
      + +
      + Sección de posición en pestañas + +

      Esta sección contiene controles para cambiar la posición de un objeto.

      + +
      + + +
      + Sección de sombra en pestañas (todos excepto los objetos de código de barras) + +

      Esta sección contiene controles para añadir sombre a un objeto.

      + +
      + + +
      + + +
      + Otras manipulaciones de objetos + +

      Los objetos se pueden manipular de las siguientes maneras.

      + +
      + Mover y redimensionar objetos + +

      Los objetos se pueden mover simplemente pulsando en un objeto seleccionado y arrastrando el objeto a su nueva ubicación. Si el objeto es parte de una selección agregada, todos los objetos en la selección se moverán junto al objeto que se arrastra, manteniendo su posición relativa respecto a los otros. Si no se selecciona ningún objeto, al pulsar sobre un objeto se creará una selección nueva que contenga a ese objeto. Consulte la .

      + +

      Un objeto seleccionado se puede redimensionar pulsando una vez sobre su controlador de tamaño y arrastrándolo para obtener el nuevo tamaño.

      + +
      + +
      + Cambiar el orden de apilamiento + +

      El orden de apilamiento se refiere a la posición relativa en el eje z de los objetos. Esto es cuando los objetos se solapan, qué objeto aparecerá encima de otro. De manera predeterminada, los objetos nuevos aparecerán encima de los objetos más antiguos. Para cambiar este orden, seleccione uno o más objetos y elija ObjetosOrdenTraer al frente para subir la selección hasta la parte superior del orden de apilamiento, o elija ObjetosOrdenEnviar al fondo para bajar la selección hasta la parte inferior del orden de apilamiento. Estos elementos de menú también están disponibles pulsando con el botón derecho en el área de visualización cuando no hay una selección vacía.

      + +
      + +
      + Rotar y voltear objetos + +

      Los objetos se pueden rotar 90 grados en cualquier dirección o voltearse horizontal o verticalmente eligiendo el elemento de menú adecuado en el submenú ObjetosRotar/Voltear. Estos elementos de menú también están disponibles pulsando con el botón derecho en el área de visualización cuando no hay una selección vacía.

      + + +

      Esta característica puede ser útil cuando diseñe carátulas interiores de CD. Para el texto circular necesita texto alineado verticalmente. Después de que haya creado la caja de texto básica, elija ObjetosRotar/Voltear para rotar la caja de texto de acuerdo a sus necesidades.

      +
      + +
      + +
      + Alinear objetos + +

      Los objetos se pueden alinear horizontal o verticalmente, relativo a otro o relativo a la línea central de la etiqueta, eligiendo el elemento de menú apropiado de los submenús ObjetosAlineación horizontal o ObjetosAlineación vertical. Estos elementos de menú también están disponibles pulsando con el botón derecho en el área de visualización cuando no hay una selección vacía.

      + +
      + +
      + Usar la barra de propiedades + +

      La barra de propiedades se puede usar para cambiar en masa algunas propiedades de los archivos. Estas propiedades incluyen la familia tipográfica, el tamaño de la tipografía, su peso, la alineación del texto, el color de relleno, de la línea o del contorno y el ancho de la línea. La barra de propiedades también controla los valores predeterminados de estas propiedades para cualquier objeto nuevo creado.

      + +
      + + + +
      + +
      diff --git a/help/es/es.po b/help/es/es.po index 5b32a8bf..5fdaf609 100644 --- a/help/es/es.po +++ b/help/es/es.po @@ -2,2267 +2,3210 @@ # Spanish translation for glabels. # Copyright (C) 2010 glabels's COPYRIGHT HOLDER # This file is distributed under the same license as the glabels package. -# Jorge González , 2010. +# Jorge González , 2010, 2011. +# Daniel Mustieles , 2010, 2011. +# msgid "" msgstr "" "Project-Id-Version: glabels.help.glabels_2_2\n" -"POT-Creation-Date: 2010-02-18 17:31+0000\n" -"PO-Revision-Date: 2010-02-19 12:52+0100\n" -"Last-Translator: Jorge González \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-02-27 13:42+0000\n" +"PO-Revision-Date: 2011-04-03 16:37+0200\n" +"Last-Translator: Daniel Mustieles \n" "Language-Team: Español \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: KBabel 1.11.4\n" #. When image changes, this message will be marked fuzzy or untranslated for you. #. It doesn't matter what you translate it to: it's not used at all. -#: C/glabels.xml:195(None) +#: C/skipfields.page:45(None) msgid "" -"@@image: 'figures/main-window-empty.png'; " -"md5=226b58f05f4171531066358a29cda1a7" +"@@image: 'figures/skip-fields-screenshot.png'; " +"md5=eef4a81f48546bd7d3753656a3df9cb7" msgstr "" -"@@image: 'figures/main-window-empty.png'; " -"md5=226b58f05f4171531066358a29cda1a7" +"@@image: 'figures/skip-fields-screenshot.png'; " +"md5=eef4a81f48546bd7d3753656a3df9cb7" #. When image changes, this message will be marked fuzzy or untranslated for you. #. It doesn't matter what you translate it to: it's not used at all. -#: C/glabels.xml:447(None) -msgid "" -"@@image: 'figures/print-copies.png'; md5=ebb4d08810a67cc9cd7ec6ddd7b52fb0" -msgstr "" -"@@image: 'figures/print-copies.png'; md5=ebb4d08810a67cc9cd7ec6ddd7b52fb0" +#: C/skipfields.page:53(None) +msgid "" +"@@image: 'figures/skip-fields-output.png'; " +"md5=b64d1a7fdf0d37e9a6d93f0bc2f9fa0d" +msgstr "" +"@@image: 'figures/skip-fields-output.png'; " +"md5=b64d1a7fdf0d37e9a6d93f0bc2f9fa0d" + +#: C/skipfields.page:9(desc) +msgid "How to skip blank address lines when doing a document merge." +msgstr "Cómo omitir líneas de dirección en blanco al fusionar un documento." + +#: C/skipfields.page:13(name) C/select.page:13(name) C/printfile.page:13(name) +#: C/newlabel.page:13(name) C/multifile.page:13(name) C/merge.page:13(name) +#: C/mergefeatures.page:13(name) C/merge-ex4.page:13(name) +#: C/merge-ex3.page:13(name) C/merge-ex2.page:13(name) +#: C/merge-ex1.page:13(name) C/mancreate.page:14(name) +#: C/labelprop.page:13(name) C/index.page:11(name) C/editprop.page:13(name) +#: C/customtemplate.page:13(name) C/customize.page:11(name) +#: C/createnew.page:13(name) C/basicusage.page:13(name) C/about.page:13(name) +msgid "Jim Evins" +msgstr "Jim Evins" -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: C/glabels.xml:479(None) +#: C/skipfields.page:14(email) C/select.page:14(email) +#: C/printfile.page:14(email) C/newlabel.page:14(email) +#: C/multifile.page:14(email) C/merge.page:14(email) +#: C/mergefeatures.page:14(email) C/merge-ex4.page:14(email) +#: C/merge-ex3.page:14(email) C/merge-ex2.page:14(email) +#: C/merge-ex1.page:14(email) C/mancreate.page:15(email) +#: C/labelprop.page:14(email) C/index.page:12(email) C/editprop.page:14(email) +#: C/customtemplate.page:14(email) C/customize.page:12(email) +#: C/createnew.page:14(email) C/basicusage.page:14(email) +#: C/about.page:14(email) +msgid "evins@snaught.com" +msgstr "evins@snaught.com" + +#: C/skipfields.page:17(name) C/select.page:17(name) C/printfile.page:17(name) +#: C/newlabel.page:17(name) C/multifile.page:17(name) C/merge.page:17(name) +#: C/mergefeatures.page:17(name) C/merge-ex4.page:17(name) +#: C/merge-ex3.page:17(name) C/merge-ex2.page:17(name) +#: C/merge-ex1.page:17(name) C/mancreate.page:18(name) +#: C/labelprop.page:17(name) C/index.page:15(name) C/editprop.page:17(name) +#: C/customtemplate.page:17(name) C/customize.page:15(name) +#: C/createnew.page:17(name) C/basicusage.page:17(name) C/about.page:17(name) +msgid "Mario Blättermann" +msgstr "Mario Blättermann" + +#: C/skipfields.page:18(email) C/select.page:18(email) +#: C/printfile.page:18(email) C/newlabel.page:18(email) +#: C/multifile.page:18(email) C/merge.page:18(email) +#: C/mergefeatures.page:18(email) C/merge-ex4.page:18(email) +#: C/merge-ex3.page:18(email) C/merge-ex2.page:18(email) +#: C/merge-ex1.page:18(email) C/mancreate.page:19(email) +#: C/labelprop.page:18(email) C/index.page:16(email) C/editprop.page:18(email) +#: C/customtemplate.page:18(email) C/customize.page:16(email) +#: C/createnew.page:18(email) C/basicusage.page:18(email) +#: C/about.page:18(email) +msgid "mariobl@gnome.org" +msgstr "mariobl@gnome.org" + +#: C/skipfields.page:21(p) C/select.page:21(p) C/printfile.page:21(p) +#: C/newlabel.page:21(p) C/multifile.page:21(p) C/merge.page:21(p) +#: C/mergefeatures.page:21(p) C/merge-ex4.page:21(p) C/merge-ex3.page:21(p) +#: C/merge-ex2.page:21(p) C/merge-ex1.page:21(p) C/mancreate.page:22(p) +#: C/labelprop.page:21(p) C/index.page:19(p) C/editprop.page:21(p) +#: C/customtemplate.page:21(p) C/customize.page:19(p) C/createnew.page:21(p) +#: C/basicusage.page:21(p) C/about.page:21(p) +msgid "Creative Commons Share Alike 3.0" +msgstr "Creative Commons Compartir Igual 3.0" + +#: C/skipfields.page:25(title) +msgid "Skipping blank address lines" +msgstr "Omitir líneas de dirección vacías" + +#: C/skipfields.page:27(p) +msgid "" +"This feature can be best described by a simple example. In the following CSV " +"file, column 5 (ADDR2) contains the second address line for each record. " +"This field is empty in records 1 and 2, but not in record 3. (For this " +"feature to work, the field must be completely empty -- any text, including " +"spaces will defeat this feature.)" +msgstr "" +"Esta característica se describe mejor con un ejemplo. En el siguiente " +"archivo CSV, la columna 5 (ADDR2) contiene la segunda línea de dirección " +"para cada registro. Este campo está vacío en los registros 1 y 2, pero no en " +"el 3. (Para que esta característica funcione, el campo no debe contener " +"ningún texto, ni siquiera espacios.)" + +#: C/skipfields.page:33(code) +#, no-wrap msgid "" -"@@image: 'figures/print-merge.png'; md5=ffe6027513a10f7ba940c350c1dc5717" +"\n" +" LAST,FIRST,MI,ADDR1,ADDR2,CITY,STATE,ZIP\n" +" Summers,Joyce,,\"1630 Revello Dr\",,Sunnydale,CA,95037\n" +" McGarret,Steve,O,\"404 Piikoi Street\",,Honolulu,HI,96813\n" +" Kramer,Cosmo,,\"Apt 5B\",\"129 W. 81 St.\",\"New York\",NY,10024-7207\n" +" " msgstr "" -"@@image: 'figures/print-merge.png'; md5=ffe6027513a10f7ba940c350c1dc5717" +"\n" +" LAST,FIRST,MI,ADDR1,ADDR2,CITY,STATE,ZIP\n" +" Summers,Joyce,,\"1630 Revello Dr\",,Sunnydale,CA,95037\n" +" McGarret,Steve,O,\"404 Piikoi Street\",,Honolulu,HI,96813\n" +" Kramer,Cosmo,,\"Apt 5B\",\"129 W. 81 St.\",\"New York\",NY,10024-7207\n" +" " -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: C/glabels.xml:790(None) +#: C/skipfields.page:40(p) msgid "" -"@@image: 'figures/object-editor-sidebar.png'; " -"md5=14eace177c1f5bfe36022acbbd6a9f0e" +"In the following screenshot, a single multiline text object has been created " +"to format these addresses. Notice that ${ADDR2} representing the second " +"address line is on a line by itself. (Any additional text on this line, " +"including spaces would defeat this feature.)" msgstr "" -"@@image: 'figures/object-editor-sidebar.png'; " -"md5=14eace177c1f5bfe36022acbbd6a9f0e" +"En la siguiente captura de pantalla, se ha creado un único objeto de texto " +"multilínea para formatear estas direcciones. Tenga en cuenta que ${ADDR2} " +"representa por sí misma la segunda línea de la dirección. (Cualquier texto " +"adicional en esta línea, incluyendo los espacios, anularía esta " +"característica.)" -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: C/glabels.xml:1231(None) -msgid "" -"@@image: 'figures/merge-ex1-1.png'; md5=55a97963022047cdad6aa198b5ed698e" -msgstr "" -"@@image: 'figures/merge-ex1-1.png'; md5=55a97963022047cdad6aa198b5ed698e" +#: C/skipfields.page:46(p) +msgid "Multi-line address" +msgstr "Dirección multilínea" -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: C/glabels.xml:1256(None) +#: C/skipfields.page:49(p) msgid "" -"@@image: 'figures/merge-ex1-2.png'; md5=d03979f010e20e98532258edb20b1bc0" +"Printing this label results in the following output. Notice that the line " +"containing the ${ADDR2} field is completely skipped for the first two " +"records, without printing a blank line." msgstr "" -"@@image: 'figures/merge-ex1-2.png'; md5=d03979f010e20e98532258edb20b1bc0" +"Al imprimir esta etiqueta se obtiene el siguiente resultado. Tenga en cuenta " +"que la línea que contiene el campo ${ADDR2} se omite completamente para los " +"dos primeros registros, sin imprimir una línea en blanco." -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: C/glabels.xml:1284(None) -msgid "" -"@@image: 'figures/merge-ex1-3.png'; md5=94e382ccdfbc2fe5d320010d2ef10c61" -msgstr "" -"@@image: 'figures/merge-ex1-3.png'; md5=94e382ccdfbc2fe5d320010d2ef10c61" +#: C/skipfields.page:54(p) +msgid "Output" +msgstr "Salida" -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: C/glabels.xml:1302(None) -msgid "" -"@@image: 'figures/merge-ex1-4.png'; md5=e72810bc3c191df6c8b2ad0cb1131021" -msgstr "" -"@@image: 'figures/merge-ex1-4.png'; md5=e72810bc3c191df6c8b2ad0cb1131021" +#: C/select.page:9(desc) +msgid "How to select objects." +msgstr "Cómo seleccionar objetos." -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: C/glabels.xml:1348(None) -msgid "" -"@@image: 'figures/merge-ex2-1.png'; md5=4f062158be21bfadc4adfbdcf5d0206f" -msgstr "" -"@@image: 'figures/merge-ex2-1.png'; md5=4f062158be21bfadc4adfbdcf5d0206f" +#: C/select.page:25(title) +msgid "To select objects" +msgstr "Seleccionar objetos" -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: C/glabels.xml:1374(None) +#: C/select.page:27(p) msgid "" -"@@image: 'figures/merge-ex2-2.png'; md5=f69a7e0ae86f66b0d70d39a7757918fa" -msgstr "" -"@@image: 'figures/merge-ex2-2.png'; md5=f69a7e0ae86f66b0d70d39a7757918fa" +"A prerequisite for performing operations on objects is the selection of " +"individual objects or groups of objects. The display area must be in the " +"object selection mode to create new selections, as indicated by an arrow " +"cursor. The object selection mode is selected by the ObjectsSelect Mode menu item, or the corresponding command " +"on the Drawing Toolbar." +msgstr "" +"Un requisito previo para realizar operaciones en objetos es la selección " +"individual o en grupo de objetos. El área de visualización debe estar en el " +"modo de selección de objetos para crear selecciones nuevas, indicado por el " +"cursor de flecha. El modo de selección de objetos se elije con el elemento " +"de menú ObjetosSeleccionar modo, o " +"con el comando correspondiente de la Barra de dibujo." + +#: C/select.page:38(title) +msgid "Selecting a single object" +msgstr "Seleccionar un sólo objeto" -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: C/glabels.xml:1399(None) C/glabels.xml:1513(None) +#: C/select.page:39(p) msgid "" -"@@image: 'figures/merge-ex2-3.png'; md5=f5134b9e911ebdd17d4a5b36a5ba56d0" +"A single object can be selected simply by clicking on the desired object in " +"the display area. Once selected the object will be highlighted with a set of " +"resizing handles." msgstr "" -"@@image: 'figures/merge-ex2-3.png'; md5=f5134b9e911ebdd17d4a5b36a5ba56d0" +"Se puede seleccionar un único objeto de texto simplemente pulsando sobre el " +"objeto que quiere en el área de visualización. Una vez seleccionado, el " +"objeto se resaltará con un conjunto de manejadores para redimensionarlo." -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: C/glabels.xml:1417(None) C/glabels.xml:1531(None) -msgid "" -"@@image: 'figures/merge-ex2-4.png'; md5=29a60e970cb026aecf75543203494b00" -msgstr "" -"@@image: 'figures/merge-ex2-4.png'; md5=29a60e970cb026aecf75543203494b00" +#: C/select.page:46(title) +msgid "Aggregate object selections" +msgstr "Agregar selecciones de objetos" -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: C/glabels.xml:1464(None) +#: C/select.page:47(p) msgid "" -"@@image: 'figures/merge-ex3-1.png'; md5=b0c387b5fcfd730b2ae75172895ff5b8" -msgstr "" -"@@image: 'figures/merge-ex3-1.png'; md5=b0c387b5fcfd730b2ae75172895ff5b8" +"Multiple objects can be selected by first selecting the first object as " +"above and then by holding the Ctrl key while selecting additional " +"objects. Individual objects can be added to an existing selection at any " +"time by holding the Ctrl key while selecting the desired objects. " +"All objects can also be selected by using the EditSelect All menu item. All objects in an aggregate " +"object selection will be highlighted." +msgstr "" +"Se pueden seleccionar varios objetos seleccionando el primero de ellos y " +"manteniendo pulsada la tecla Ctrl mientras selecciona los objetos " +"adicionales. Se puede añadir objetos individuales a la selección existente " +"en cualquier momento manteniendo pulsada la tecla Ctrl mientras " +"selecciona los objetos que quiere. También puede seleccionar todos los " +"objetos usando el elemento de menú EditarSeleccionar " +"todo. Todos los objetos de una selección agregada de objetos " +"se resaltarán." + +#: C/select.page:60(title) +msgid "Area selections" +msgstr "Selecciones de área" -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: C/glabels.xml:1492(None) +#: C/select.page:62(p) msgid "" -"@@image: 'figures/merge-ex3-2.png'; md5=09f105e133657345e6e478a464e5b49f" +"Multiple objects can also be selected by clicking an empty area and dragging " +"to form a rectangular area. When released, all objects contained in the area " +"will form an aggregate selection. An area selection can be used to add to an " +"existing selection by holding the Ctrl key while performing the " +"selection." msgstr "" -"@@image: 'figures/merge-ex3-2.png'; md5=09f105e133657345e6e478a464e5b49f" +"Se puede seleccionar varios objetos pulsando en un área vacía y arrastrando " +"hasta formar un área rectangular. Cuando se suelta, todos los objetos " +"contenidos en el área formarán una selección agregada. Una selección de área " +"se puede usar para añadirla a una selección existente manteniendo pulsada la " +"tecla Ctrl mientras se hace la selección." -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: C/glabels.xml:1767(None) -msgid "" -"@@image: 'figures/glabels-template-label.png'; " -"md5=b7db4090373462b8d45feb22d4cd5646" -msgstr "" -"@@image: 'figures/glabels-template-label.png'; " -"md5=b7db4090373462b8d45feb22d4cd5646" +#: C/select.page:72(title) +msgid "Unselecting objects" +msgstr "Deseleccionar objetos" -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: C/glabels.xml:1888(None) +#: C/select.page:74(p) msgid "" -"@@image: 'figures/glabels-template-cd.png'; " -"md5=145b49a5380de63ffa9451d2bbb81934" -msgstr "" -"@@image: 'figures/glabels-template-cd.png'; " -"md5=145b49a5380de63ffa9451d2bbb81934" +"Individual objects can be removed from an existing selection by holding the " +"Ctrl key while clicking on a previously selected object. An " +"entire selection can be dismissed by using the EditUn-select All menu item or by simply clicking any " +"empty space in the display area. Once an object is unselected its highlight " +"is removed." +msgstr "" +"Se puede quitar objetos individuales de una selección manteniendo pulsada la " +"tecla Ctrl mientras se pulsa sobre un objeto seleccionado " +"anteriormente. Se puede descartar una selección entera usando el elemento de " +"menú EditarDeseleccionar todo, o " +"simplemente pulsando en un espacio vacío en el área de visualización. Una " +"vez que un objeto no está seleccionado, se quita el resaltado." + +#: C/select.page:86(title) +msgid "Clipboard Commands" +msgstr "Comandos del portapapeles" -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: C/glabels.xml:2150(None) +#: C/select.page:88(p) msgid "" -"@@image: 'figures/glabels-template-layout.png'; " -"md5=a8adcff0584be1f0275bc2a169a580df" +"Object selections can be manipulated using the standard clipboard operations " +"Cut, Copy, Paste, and Delete." msgstr "" -"@@image: 'figures/glabels-template-layout.png'; " -"md5=a8adcff0584be1f0275bc2a169a580df" +"Los objetos se pueden manipular usando las operaciones estándar del " +"portapapeles Cortar, Copiar, Pegar, y " +"Eliminar." -#: C/glabels.xml:31(title) -msgid "gLabels Manual V2.2.6" -msgstr "Manual de gLabels V2.2.6" +#: C/select.page:94(title) +msgid "Cut (CtrlX)" +msgstr "Cortar (CtrlX)" -#: C/glabels.xml:33(para) +#: C/select.page:96(p) msgid "" -"User manual for the gLabels label and business " -"card creation program" +"Moves selected objects to the clipboard. The objects are then available for " +"pasting back into the current document or another document." msgstr "" -"Manual de usuario para el programa de creación de etiquetas y tarjetas de " -"visita gLabels" - -#: C/glabels.xml:38(year) -msgid "2003-2009" -msgstr "2003-2009" - -#: C/glabels.xml:39(holder) C/glabels.xml:42(publishername) -#: C/glabels.xml:93(para) C/glabels.xml:103(para) -msgid "Jim Evins" -msgstr "Jim Evins" +"Mueve objetos al portapapeles. Los objetos están disponibles para pegarlos " +"de nuevo en el documento actual o en otro documento." -#: C/glabels.xml:2(para) -msgid "" -"Permission is granted to copy, distribute and/or modify this document under " -"the terms of the GNU Free Documentation License (GFDL), Version 1.1 or any " -"later version published by the Free Software Foundation with no Invariant " -"Sections, no Front-Cover Texts, and no Back-Cover Texts. You can find a copy " -"of the GFDL at this link or " -"in the file COPYING-DOCS distributed with this manual." -msgstr "" -"Se otorga permiso para copiar, distribuir y/o modificar este documento bajo " -"los términos de la Licencia de Documentación Libre de GNU, Versión 1.1 o " -"cualquier otra versión posterior publicada por la Free Software Foundation; " -"sin Secciones Invariantes ni Textos de Cubierta Delantera ni Textos de " -"Cubierta Trasera. Puede encontrar una copia de la licencia GFDL en este " -"enlace o en el archivo " -"COPYING-DOCS distribuido con este manual." - -#: C/glabels.xml:12(para) -msgid "" -"This manual is part of a collection of GNOME manuals distributed under the " -"GFDL. If you want to distribute this manual separately from the collection, " -"you can do so by adding a copy of the license to the manual, as described in " -"section 6 of the license." -msgstr "" -"Este manual es parte de una colección de manuales de GNOME distribuido bajo " -"la GFDL. Si quiere distribuir este manual por separado de la colección, " -"puede hacerlo añadiendo una copia de la licencia al manual, tal como se " -"describe en la sección 6 de la licencia." - -#: C/glabels.xml:19(para) -msgid "" -"Many of the names used by companies to distinguish their products and " -"services are claimed as trademarks. Where those names appear in any GNOME " -"documentation, and the members of the GNOME Documentation Project are made " -"aware of those trademarks, then the names are in capital letters or initial " -"capital letters." -msgstr "" -"Muchos de los nombres utilizados por las empresas para distinguir sus " -"productos y servicios se consideran marcas comerciales. Cuando estos nombres " -"aparezcan en la documentación de GNOME, y siempre que se haya informado a " -"los miembros del Proyecto de documentación de GNOME de dichas marcas " -"comerciales, los nombres aparecerán en mayúsculas o con las iniciales en " -"mayúsculas." - -#: C/glabels.xml:35(para) -msgid "" -"DOCUMENT IS PROVIDED ON AN \"AS IS\" BASIS, WITHOUT WARRANTY OF ANY KIND, " -"EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT " -"THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS FREE OF DEFECTS " -"MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE " -"RISK AS TO THE QUALITY, ACCURACY, AND PERFORMANCE OF THE DOCUMENT OR " -"MODIFIED VERSION OF THE DOCUMENT IS WITH YOU. SHOULD ANY DOCUMENT OR " -"MODIFIED VERSION PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL " -"WRITER, AUTHOR OR ANY CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY " -"SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN " -"ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY DOCUMENT OR MODIFIED VERSION " -"OF THE DOCUMENT IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER; AND" -msgstr "" -"EL DOCUMENTO SE OFRECE «TAL CUAL», SIN GARANTÍA DE NINGÚN TIPO, EXPRESA O " -"IMPLÍCITA, INCLUYENDO, PERO SIN LIMITARSE A ELLA, LA GARANTÍA DE QUE EL " -"DOCUMENTO O LA VERSIÓN MODIFICADA DEL MISMO ESTÉ LIBRE DE DEFECTOS, GARANTÍA " -"DE COMERCIALIZACIÓN, APTITUD PARA UN USO EN PARTICULAR O INCUMPLIMIENTO. " -"TODOS LOS RIESGOS RELATIVOS A LA CALIDAD, EXACTITUD O RENDIMIENTO DEL " -"DOCUMENTO O LA VERSIÓN MODIFICADA DEL MISMO SON ASUMIDOS POR VD. EN CASO DE " -"QUE EL DOCUMENTO O LA VERSIÓN MODIFICADA SEAN DEFECTUOSOS, VD. (NO EL " -"ESCRITOR ORIGINAL NI EL AUTOR NI NINGUNO DE LOS COLABORADORES) ASUMIRÁ EL " -"COSTE DE CUALQUIER MANTENIMIENTO, REPARACIÓN O CORRECCIÓN QUE SEAN " -"NECESARIOS. ESTA RENUNCIA DE GARANTÍA CONSTITUYE UNA PARTE ESENCIAL DE ESTA " -"LICENCIA NO SE AUTORIZA EL USO DE NINGÚN DOCUMENTO NI VERSIÓN MODIFICADA DEL " -"MISMO, SALVO EN LAS CONDICIONES ESPECIFICADAS EN ESTA RENUNCIA; Y " - -#: C/glabels.xml:55(para) -msgid "" -"UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER IN TORT (INCLUDING " -"NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE AUTHOR, INITIAL WRITER, ANY " -"CONTRIBUTOR, OR ANY DISTRIBUTOR OF THE DOCUMENT OR MODIFIED VERSION OF THE " -"DOCUMENT, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON " -"FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF " -"ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, " -"WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER DAMAGES " -"OR LOSSES ARISING OUT OF OR RELATING TO USE OF THE DOCUMENT AND MODIFIED " -"VERSIONS OF THE DOCUMENT, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE " -"POSSIBILITY OF SUCH DAMAGES." -msgstr "" -"EN NINGUNA CIRCUNSTANCIA NI SEGÚN NINGÚN ARGUMENTO LEGAL, SEA POR MOTIVOS " -"CULPOSOS (INCLUIDA LA NEGLIGENCIA), CONTRACTUALES O DE OTRO TIPO, NI EL " -"AUTOR, NI EL REDACTOR INICIAL, NI CUALQUIER COLABORADOR, NI CUALQUIER " -"DISTRIBUIDOR DEL DOCUMENTO O VERSIÓN MODIFICADA DEL MISMO, NI CUALQUIER " -"PROVEEDOR DE CUALQUIERA DE DICHAS PARTES, SERÁN RESPONSABLES, ANTE NINGÚN " -"TERCERO, DE NINGÚN DAÑO O PERJUICIO DIRECTO, INDIRECTO, ESPECIAL, INCIDENTAL " -"O CONSIGUIENTE DE NINGÚN TIPO, INCLUIDOS, SIN LIMITACIÓN, LOS DAÑOS POR " -"PÉRDIDA DE FONDO DE COMERCIO, INTERRUPCIÓN DEL TRABAJO, FALLO O MAL " -"FUNCIONAMIENTO INFORMÁTICO, NI CUALQUIER OTRO DAÑO O PÉRDIDA DERIVADOS DEL " -"USO DEL DOCUMENTO Y LAS VERSIONES MODIFICADAS DEL MISMO, O RELACIONADO CON " -"ELLO, INCLUSO SI SE HABÍA COMUNICADO A AQUELLA PARTE LA POSIBILIDAD DE TALES " -"DAÑOS." - -#: C/glabels.xml:28(para) -msgid "" -"DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT ARE PROVIDED UNDER THE TERMS " -"OF THE GNU FREE DOCUMENTATION LICENSE WITH THE FURTHER UNDERSTANDING THAT: " -"" -msgstr "" -"ESTE DOCUMENTO Y LAS VERSIONES MODIFICADAS DEL MISMO SE PROPORCIONAN SEGÚN " -"LAS CONDICIONES ESTABLECIDAS EN LA LICENCIA DE DOCUMENTACIÓN LIBRE DE GNU " -"(GFDL) Y TENIENDO EN CUENTA QUE: " - -#: C/glabels.xml:52(firstname) -msgid "Jim" -msgstr "Jim" - -#: C/glabels.xml:53(surname) -msgid "Evins" -msgstr "Evins" +#: C/select.page:103(title) +msgid "Copy (CtrlC)" +msgstr "Copiar (CtrlC)" -#: C/glabels.xml:87(revnumber) -msgid "gLabels Manual V2.2.6" -msgstr "Manual de gLabels V2.2.6" - -#: C/glabels.xml:88(date) -msgid "October 2009" -msgstr "Octubre de 2009" - -#: C/glabels.xml:90(para) -msgid "Mario Blättermann mariobl@gnome.org" -msgstr "Mario Blättermann mariobl@gnome.org" - -#: C/glabels.xml:97(revnumber) -msgid "gLabels Manual V2.2" -msgstr "Manual de gLabels V2.2" - -#: C/glabels.xml:98(date) -msgid "December 2007" -msgstr "Diciembre de 2007" - -#: C/glabels.xml:100(para) -msgid "Jim Evins evins@snaught.com" -msgstr "Jim Evins evins@snaught.com" - -#: C/glabels.xml:108(releaseinfo) +#: C/select.page:105(p) msgid "" -"This manual describes version 2.2.6 of gLabels." +"Copies selected objects to the clipboard without deleting them. The objects " +"are then available for pasting back into the current document or another " +"document." msgstr "" -"Este manual describe la versión 2.2.6 de gLabels." +"Copia los objetos seleccionados al portapapeles sin borrarlos. Los objetos " +"están disponibles para pegarlos en el documento actual o en otro documento." -#: C/glabels.xml:111(title) -msgid "Feedback" -msgstr "Comentarios" +#: C/select.page:112(title) +msgid "Paste (CtrlV)" +msgstr "Pegar (CtrlV)" -#: C/glabels.xml:112(para) +#: C/select.page:114(p) msgid "" -"To report a bug or make a suggestion regarding the gLabels application or this manual, follow the directions in the gLabels Contact Page." +"Pastes objects from the clipboard into the current document. gLabels can only paste objects from another gLabels document." msgstr "" +"Pega objetos del portapapeles en el documento actual. gLabels " +"sólo puede pegar objetos de otro documento de gLabels." -#: C/glabels.xml:121(primary) -msgid "gLabels" -msgstr "gLabels" - -#: C/glabels.xml:124(primary) -msgid "glabels" -msgstr "glabels" +#: C/select.page:121(title) +msgid "Delete (Del)" +msgstr "Eliminar (Supr)" -#: C/glabels.xml:135(title) -msgid "Introduction" -msgstr "Introducción" +#: C/select.page:123(p) +msgid "Deletes selected objects without placing them on the clipboard." +msgstr "Elimina los objetos seleccionados sin ponerlos en el portapapeles." -#: C/glabels.xml:137(para) +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/printfile.page:47(None) msgid "" -"The gLabels application is a lightweight program " -"for creating labels and business cards for the GNOME desktop environment. It is designed to work with various laser/ink-jet " -"peel-off label and business card sheets that you'll find at most office " -"supply stores." -msgstr "" - -#: C/glabels.xml:158(title) -msgid "Getting Started" -msgstr "Inicio" - -#: C/glabels.xml:161(title) -msgid "To Start gLabels" -msgstr "Para iniciar gLabels" - -#: C/glabels.xml:162(para) -msgid "You can start gLabels in the following ways:" +"@@image: 'figures/print-copies.png'; md5=1896f693ac50b47ea5abaafb59b5e8cc" msgstr "" +"@@image: 'figures/print-copies.png'; md5=1896f693ac50b47ea5abaafb59b5e8cc" -#: C/glabels.xml:166(term) -msgid "Applications menu" -msgstr "Menú Aplicaciones" - -#: C/glabels.xml:168(para) +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/printfile.page:70(None) msgid "" -"Choose OfficegLabels." +"@@image: 'figures/print-merge.png'; md5=65a719b5624f88fdb40e2322454819a6" msgstr "" +"@@image: 'figures/print-merge.png'; md5=65a719b5624f88fdb40e2322454819a6" -#: C/glabels.xml:176(term) -msgid "Command line" -msgstr "Línea de comandos" +#: C/printfile.page:9(desc) +msgid "How to print your labels and cards." +msgstr "Cómo imprimir sus etiquetas y sus tarjetas." -#: C/glabels.xml:178(para) -msgid "Type glabels, then press Return:" -msgstr "" +#: C/printfile.page:25(title) +msgid "To print labels and cards" +msgstr "Imprimir etiquetas y tarjetas" -#: C/glabels.xml:186(title) -msgid "When You Start gLabels" +#: C/printfile.page:27(p) +msgid "" +"To print labels or cards, choose FilePrint to display the Print dialog. Once print options have been " +"selected, click Print to print the labels or cards. To simply " +"preview the results, click Print Preview instead." msgstr "" +"Para imprimir etiquetas o tarjetas, elija ArchivoImprimir para mostrar el diálogo Imprimir. Una vez que haya seleccionado las opciones de impresión, pulse en " +"Imprimir para imprimir las etiquetas o las tarjetas. Para sólo " +"previsualizar el resultado, pulse en Previsualizar la impresión " +"en su lugar." -#: C/glabels.xml:187(para) +#: C/printfile.page:34(p) msgid "" -"When you start gLabels, the following window is " -"displayed." +"The Print dialog allows you to specify the following print " +"options:" msgstr "" +"El diálogo Imprimir le permite especificar las siguientes " +"opciones de impresión:" + +#: C/printfile.page:38(title) +msgid "The Labels Tab of the Print Dialog" +msgstr "La pestaña «etiquetas» del diálogo de impresión" -#: C/glabels.xml:191(title) -msgid "gLabels Start Up Window" -msgstr "Ventana de inicio de gLabels" +#: C/printfile.page:41(title) +msgid "Print control (Simple)" +msgstr "Control de impresión (simple)" -#. for example, the items on the menubar and on the toolbar. This section is optional. -#: C/glabels.xml:205(para) +#: C/printfile.page:43(p) msgid "" -"The gLabels window contains the following " -"elements:" +"For simple labels or cards (no document merge), the job tabbed section " +"contains the following copy controls." msgstr "" +"Para etiquetas o tarjetas simples (no para documentos combinados) la sección " +"de trabajos en pestañas contiene los siguientes controles de copia." -#: C/glabels.xml:209(term) -msgid "Menubar." -msgstr "Barra de menú." +#: C/printfile.page:48(p) C/editprop.page:36(p) +msgid "Print Copy Controls" +msgstr "Controles de impresión de copia" -#: C/glabels.xml:211(para) +#. ==== End of Figure ==== +#: C/printfile.page:52(p) msgid "" -"The menus on the menubar contain all of the commands you need to create and " -"edit labels and business cards in gLabels." +"The number of copies of the label can be selected by choosing the number of " +"full sheets to print, or a specific subset of labels on a single sheet." msgstr "" +"El número de copias de la etiqueta se puede seleccionar eligiendo el número " +"de hojas completas que imprimir, o un subconjunto específico de etiquetas de " +"una sola hoja." -#: C/glabels.xml:217(term) -msgid "Main toolbar." -msgstr "Barra de herramientas principal." - -#: C/glabels.xml:219(para) +#: C/printfile.page:56(p) msgid "" -"The main toolbar contains a subset of common File and Edit commands that you " -"can access from the menubar." +"The mini-preview can also be used to graphically select the subset of labels " +"by clicking the first label on the mini-preview and dragging to the last " +"label." msgstr "" +"La mini vista previa también se puede usar para seleccionar gráficamente el " +"subconjunto de etiquetas, pulsando en la primera etiqueta de la mini vista " +"previa y arrastrando hasta la última etiqueta." -#: C/glabels.xml:224(term) -msgid "Drawing toolbar." -msgstr "" +#: C/printfile.page:63(title) +msgid "Print control (Merge)" +msgstr "Control de impresión (fusión)" -#: C/glabels.xml:226(para) +#: C/printfile.page:65(p) msgid "" -"The drawing toolbar contains a subset of commands for editing the current " -"gLabels document." +"For labels or cards using the document merge (also known as \"mail merge\") " +"capability, the job tabbed section contains the following merge controls " +"instead of copy controls." msgstr "" +"Para etiquetas o tarjetas que usan la capacidad de combinación de documentos " +"(también llamada «combinación de correo»), la sección de trabajos en " +"pestañas contiene los siguientes controles de combinación en vez de los " +"controles de copia." -#: C/glabels.xml:231(term) -msgid "Display area." -msgstr "Área de visualización." +#: C/printfile.page:71(p) +msgid "Print Document Merge Controls" +msgstr "Controles de impresión de fusión de documentos" -#: C/glabels.xml:233(para) +#. ==== End of Figure ==== +#: C/printfile.page:75(p) msgid "" -"The display area is the main drawing interface to gLabels." +"The total number of labels or cards printed is the product of the number of " +"records in the merge source and the number of copies selected. If multiple " +"copies are selected, these can be either collated (copies of the same record " +"grouped together) or un-collated (one copy each record is printed before " +"next copy)." msgstr "" +"El número total de etiquetas o tarjetas imprimidas es el producto del número " +"de registros en el origen de la combinación y del número de copias " +"seleccionadas. Si se seleccionan varias copias, éstas pueden ser cotejadas " +"(copias de un mismo registro agrupados) o sin cotejar (una copia de cada " +"registro se imprime antes del siguiente copia)." -#: C/glabels.xml:238(term) -msgid "Object sidebar." +#: C/printfile.page:82(p) +msgid "" +"Printing can begin on any label on the first sheet. This can be selected " +"with the Start on label spinbutton." msgstr "" +"La impresión puede empezar en cualquier etiqueta de la primera hoja. Ésta se " +"puede seleccionar con el botón incremental Comenzar con la etiqueta." -#: C/glabels.xml:240(para) +#: C/printfile.page:86(p) msgid "" -"The object sidebar provides an interface for viewing and editing all " -"properties of an individual object." +"The mini-preview can also be used to graphically select this first label, by " +"clicking on the desired label in the mini-preview." msgstr "" +"La mini vista previa también se puede usar para seleccionar gráficamente la " +"primera etiqueta, pulsando en la etiqueta que quiere en la mini vista previa." -#: C/glabels.xml:245(term) -msgid "Properties toolbar." -msgstr "Barra de herramientas de propiedades." +#: C/printfile.page:93(title) +msgid "Options" +msgstr "Opciones" -#: C/glabels.xml:247(para) -msgid "" -"The properties toolbar contains a set of tools to manipulate the properties " -"of selected objects and set default properties for new objects." -msgstr "" +#: C/printfile.page:94(p) +msgid "The following options can also be selected." +msgstr "Se pueden seleccionar las siguientes opciones." -#: C/glabels.xml:253(term) -msgid "Statusbar." -msgstr "Barra de estado." +#: C/printfile.page:97(gui) +msgid "print outlines" +msgstr "imprimir márgenes" -#: C/glabels.xml:255(para) +#: C/printfile.page:98(p) msgid "" -"The statusbar displays information about current gLabels activity and contextual information about the menu items." +"Print outlines of labels. This option is useful for dry-runs, to test " +"printer alignment." msgstr "" +"Imprimir los contornos de las etiquetas. Esta opción es útil para " +"ejecuciones en seco, para verificar la alineación de la impresora." -#: C/glabels.xml:271(title) -msgid "Usage" -msgstr "Uso" - -#: C/glabels.xml:275(title) -msgid "To Create a New Label or Card" -msgstr "" +#: C/printfile.page:102(gui) +msgid "print in reverse" +msgstr "imprimir en el reverso" -#: C/glabels.xml:277(para) +#: C/printfile.page:103(p) msgid "" -"To create a new label or business card, choose FileNew to display the " -"New Label or Card dialog. Select the media type and " -"orientation for the new document, then click OK. A " -"new document is displayed in the display area of the gLabels window." +"Prints the labels as mirror images. This option is useful for printing on " +"clear labels that will be viewed from the reverse side (e.g. in a car " +"window)." msgstr "" +"Imprime las etiquetas como imágenes espejo. Esta opción es útil para " +"imprimir en etiquetas que se verán por el reverso (ej. en la ventanilla de " +"un coche)." + +#: C/printfile.page:108(gui) +msgid "print crop marks" +msgstr "imprimir marcas de corte" -#: C/glabels.xml:286(para) +#: C/printfile.page:109(p) msgid "" -"If your particular media type is missing from this dialog, see " +"Prints crop marks along the edge of the sheet. This option is useful for " +"printing on blank stock, to be cut after printing. This option does not work " +"well with all templates." msgstr "" +"Imprime marcas de corte a lo largo del borde de la hoja. Esta opción es útil " +"para imprimir en páginas en blanco, y recortarlas después de imprimir. Esta " +"opción no funciona bien con todas las plantillas." -#: C/glabels.xml:293(title) -msgid "To Open a File" -msgstr "Abrir un archivo" +#: C/newlabel.page:9(desc) +msgid "Create a new label or card in gLabels." +msgstr "Crear una etiqueta o tarjeta nuevas en gLabels." -#: C/glabels.xml:295(para) -msgid "" -"To open a file, choose FileOpen to display the Open File " -"dialog. Select the file that you want to open, then click OK. The file is displayed in the display area of the " -"gLabels window." -msgstr "" +#: C/newlabel.page:25(title) +msgid "To create a new label or card" +msgstr "Crear una etiqueta nueva o una tarjeta" -#: C/glabels.xml:302(para) +#: C/newlabel.page:27(p) msgid "" -"You can also open multiple files in gLabels. The " -"application creates a separate application window for each open file." +"To create a new label or business card, choose FileNew to display the New Label or Card " +"dialog. Select the media type and orientation for the new document, then " +"click OK. A new document is displayed in the display area of the " +"gLabels window." msgstr "" +"Para crear una etiqueta nueva o una tarjeta de visita, " +"elijaArchivoNuevo para mostrar el " +"diálogo Nueva etiqueta o tarjeta. Seleccione el tipo de medio y " +"la orientación para el documento nuevo y pulse Aceptar. Se " +"mostrará un documento nuevo en el área de visualización de la ventana " +"ventana de gLabels." -#: C/glabels.xml:306(para) -msgid "" -"The application records the paths and filenames of the most recent files " -"that you have edited and displays the files as menu items on the " -"FileRecent Files menu." -msgstr "" +#: C/multifile.page:9(desc) +msgid "How to open multiple files at once by using the command line." +msgstr "Cómo abrir varios archivos a la vez usando la línea de comandos." -#: C/glabels.xml:316(title) -msgid "To Open Multiple Files from a Command Line" -msgstr "" +#: C/multifile.page:25(title) +msgid "To open multiple files from the command line" +msgstr "Abrir varios archivos desde la línea de comandos" -#: C/glabels.xml:318(para) +#: C/multifile.page:27(p) msgid "" -"You can run gLabels from a command line and open " -"a single file or multiple files. To open multiple files from a command line, " -"type the following command, then press Return:" +"You can run gLabels from a command line and open a single file or " +"multiple files. To open multiple files from a command line, type the " +"following command, then press Return:" msgstr "" +"Puede ejecutar gLabels desde una línea de comandos y abrir uno o " +"varios archivos. Para abrir varios archivos desde una línea de comandos, " +"escriba el siguiente comando y pulse Intro:" -#: C/glabels.xml:324(replaceable) +#: C/multifile.page:33(var) msgid "file1.glabels file2.glabels file3.glabels" -msgstr "" +msgstr "archivo1.glabels archivo2.glabels archivo3.glabels" -#: C/glabels.xml:323(command) +#: C/multifile.page:32(cmd) msgid "glabels " -msgstr "" +msgstr "glabels " -#: C/glabels.xml:327(para) +#: C/multifile.page:36(p) msgid "" "When the application starts, the files that you specify are displayed in " -"separate gLabels windows." +"separate gLabels windows." msgstr "" +"Cuando se inicia la aplicación, se muestran los archivos que especifique en " +"ventanas de gLabels separadas." -#: C/glabels.xml:334(title) -msgid "To Save a File" -msgstr "Guardar un archivo" +#: C/merge.page:9(desc) +msgid "Merge a data source to create multiple documents." +msgstr "Combinar un origen de datos para crear múltiples documentos." -#: C/glabels.xml:336(para) -msgid "You can save files in the following ways:" -msgstr "Puede guardar archivos de cualquiera de estas maneras:" +#: C/merge.page:25(title) +msgid "Document merge tutorial" +msgstr "Tutorial para fusionar documentos" -#: C/glabels.xml:341(para) +#: C/merge.page:27(p) msgid "" -"To save changes to an existing file, choose FileSave." +"Document Merge (sometimes called \"Mail Merge\") is a powerful feature that " +"allows a unique label or card to be printed for each record in an external " +"data source. It is however, the most mis-understood feature of glabels. The following examples will step through a couple of common tasks " +"using the document merge feature." msgstr "" -"Para guardar los cambios a un archivo existente, elija " -"ArchivoGuardar." +"La combinación de documentos (llamada algunas veces «combinación de correo») " +"es una potente característica que permite que una única tarjeta o etiqueta " +"se impriman por cada registro de una fuente de datos externa. Esto es, sin " +"embargo, la característica menos comprendida de glabels. Los " +"siguientes ejemplos le guiarán paso a paso a través de un par de de tareas " +"comunes usando la característica de combinación de documentos." -#: C/glabels.xml:348(para) -msgid "" -"To save a new file or to save an existing file under a new filename, choose " -"FileSave As. Enter a name for the file in the Save As " -"dialog box, then click OK." -msgstr "" +#: C/mergefeatures.page:9(desc) +msgid "What you may expect from a document merge." +msgstr "Que puede esperar de la fusión de un documento." -#: C/glabels.xml:361(title) -msgid "To Change Label Properties" -msgstr "Cambiar las propiedades de una etiqueta" +#: C/mergefeatures.page:25(title) +msgid "Performing a document merge" +msgstr "Fusionar un documento" -#: C/glabels.xml:363(para) +#: C/mergefeatures.page:27(p) msgid "" -"To change the media type and/or orientation of a label, choose " -"FileProperties to display the Label properties dialog. " -"Select the new media type and orientation for the document, then click " -"OK." +"Document Merge (sometimes called \"Mail Merge\") is a powerful feature that " +"allows a unique label or card to be printed for each record in an external " +"data source." msgstr "" +"La combinación de documentos (llamada algunas veces «combinación de correo») " +"es una potente característica que permite que una única tarjeta o etiqueta " +"se impriman por cada registro de una fuente de datos externa." -#: C/glabels.xml:374(title) -msgid "To Create a Custom Template" +#: C/mergefeatures.page:31(p) +msgid "" +"The first step to performing a document merge is to prepare a source " +"document that contains your merge data. This data could be mailing addresses " +"or any other data that you wish to create unique labels or cards for. " +"Currently back-ends only exist for text files and the evolution data server " +"-- others are planned. The currently supported text-file format is very " +"simple: each line is a record; fields are delimited by commas (CSV), tabs, " +"or colons; and newlines can be embedded into fields by using the \"\\n\" " +"entity. This file could be created using any text editor or could be created " +"by another program or script. A common way of creating CSV files is to " +"export them from a spreadsheet program." msgstr "" +"El primer paso para combinar un documento es preparar un documento fuente " +"que contenga su datos combinados. Estos datos pueden ser direcciones de " +"correo o cualquier otro dato que quiera para crear etiquetas o tarjetas " +"únicas. Los «back-end» actuales sólo existen para archivos de texto y el " +"servidor de datos de Evolution (hay otros planificados). El formato de texto " +"soportado actualmente es muy sencillo: cada línea es un registro; lo campos " +"se delimitan por comas (CSV), tabuladores o dos puntos; y las líneas nuevas " +"se pueden incrustar usando la entidad «\\n». Este archivo se puede crear " +"usando cualquier editor de texto u otro programa o script. Una manera " +"habitual de crear archivos CSV es exportarlos desde un programa de hojas de " +"cálculo." -#: C/glabels.xml:376(para) +#: C/mergefeatures.page:43(p) msgid "" -"To create a new custom template, choose FileTemplate Designer ... to " -"display the Template Designer dialog. This dialog will " -"assist you in creating a custom template for most types of label or card " -"stationery that you may encounter." +"A label must then be configured to \"point at\" this data file. To configure " +"the merge properties of a document, choose ObjectsMerge Properties menu item to display the merge " +"properties dialog. This dialog is used to select the exact data file " +"format and file name (location) of the merge data." msgstr "" +"Una etiqueta debe estar configurada para «apuntar a» este archivo de datos. " +"Para configurar las propiedades de combinación de un documento, elija el " +"elemento de menú ObjetosMezclar propiedades para mostrar el diálogo Propiedades de combinación de datos. Este diálogo se utiliza para seleccionar el formato de datos exacto " +"del archivo y nombre de archivo (ubicación) de la combinación de datos." -#: C/glabels.xml:383(para) +#: C/mergefeatures.page:51(p) msgid "" -"If you prefer, you can create your templates manually. For this option see " -"" +"Finally, once the label has been configured for a data file, field keys can " +"be inserted into text objects and used as source or data for barcode objects " +"and image filenames for image objects. See for " +"more information on using merge data for these object types." msgstr "" +"Finalmente, una vez que se ha configurado la etiqueta para un archivo de " +"datos, se pueden insertar los campos clave en objetos de texto y usarlos " +"como fuentes o datos para códigos de barras y nombres de archivos de " +"imágenes para objetos de imagen. Consulte la para " +"obtener más información sobre cómo combinar datos para este tipo de objetos." -#: C/glabels.xml:391(title) -msgid "To Close a File" -msgstr "Cerrar un archivo" - -#: C/glabels.xml:393(para) +#: C/mergefeatures.page:57(p) msgid "" -"To close the current document, choose FileClose to close the " -"application window. If the current document is modified, a confirmation " -"dialog will be presented, allowing you to save the document or cancel the " -"command. If the window being closed is the only open window, " -"gLabels will exit." +"Now that your label is configured, gLabels will print a unique " +"label for each record in your source document -- substituting fields from " +"each record for field keys in the all text, barcode, and image objects." msgstr "" +"Ahora que su etiqueta está configurada, gLabels imprimirá una " +"única etiqueta por cada registro de su documento fuente, sustituyendo los " +"campos de cada registro por los campos clave en todo el texto, código de " +"barras y objetos de imagen." -#: C/glabels.xml:405(title) -msgid "To Quit gLabels" +#: C/mergefeatures.page:62(p) +msgid "" +"See for a detailed tutorial on the document merge " +"feature." msgstr "" +"Consulte en un tutorial detallado sobre la " +"característica de fusión de documentos." -#: C/glabels.xml:407(para) +#: C/merge-ex4.page:9(desc) +msgid "Create address labels from a vCard file." +msgstr "Crear etiquetas de dirección desde un archivo vCard." + +#: C/merge-ex4.page:25(title) +msgid "Example 4: Address Labels Using a vCard file" +msgstr "Ejemplo 4: etiquetas de dirección usando un archivo vCard" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/merge-ex3.page:53(None) msgid "" -"To quit gLabels, choose " -"FileQuit. This is equivalent to closing all open windows. See ." +"@@image: 'figures/merge-ex3-1.png'; md5=fb5bf719857fb0a49517ecb50124384d" msgstr "" +"@@image: 'figures/merge-ex3-1.png'; md5=fb5bf719857fb0a49517ecb50124384d" -#: C/glabels.xml:417(title) -msgid "To Print Labels or Cards" +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/merge-ex3.page:74(None) +msgid "" +"@@image: 'figures/merge-ex3-2.png'; md5=28a15319cea58be75ff789c766dc0717" msgstr "" +"@@image: 'figures/merge-ex3-2.png'; md5=28a15319cea58be75ff789c766dc0717" -#: C/glabels.xml:419(para) +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/merge-ex3.page:88(None) msgid "" -"To print labels or cards, choose FilePrint to display the " -"Print dialog. Once print options have been selected, " -"click Print to print the labels or cards. To simply " -"preview the results, click Print Preview instead." +"@@image: 'figures/merge-ex3-3.png'; md5=443d59a44d8ddf5580087a772d4e3eec" msgstr "" +"@@image: 'figures/merge-ex3-3.png'; md5=443d59a44d8ddf5580087a772d4e3eec" -#: C/glabels.xml:426(para) +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/merge-ex3.page:99(None) msgid "" -"The Print dialog allows you to specify the following " -"print options:" +"@@image: 'figures/merge-ex3-4.png'; md5=1995114757cccebda45b686caeb37fa7" msgstr "" +"@@image: 'figures/merge-ex3-4.png'; md5=1995114757cccebda45b686caeb37fa7" -#: C/glabels.xml:430(title) -msgid "The Labels Tab of the Print Dialog" +#: C/merge-ex3.page:9(desc) +msgid "" +"Create address labels from the Evolution address book entries." msgstr "" +"Crear etiquetas de direcciones desde las entradas de la libreta de " +"direcciones de Evolution." -#: C/glabels.xml:435(guilabel) -msgid "Print control (Simple)" +#: C/merge-ex3.page:25(title) +msgid "Example 3: Address Labels Using the Evolution Addressbook" msgstr "" +"Ejemplo 3: Etiquetas de dirección usando la libreta de direcciones de " +"Evolution" + +#: C/merge-ex3.page:27(p) +msgid "" +"Our last party was a great success, and now we need to print mailing address " +"labels for the invitations to a new one. To simplify this, we can use the " +"Evolution addressbook, because the address data of all our " +"friends is stored there." +msgstr "" +"La última fiesta fue un éxito, y se necesitan imprimir etiquetas de " +"dirección para las invitaciones a una nueva fiesta. Para simplificarlo, se " +"puede usar la libreta de direcciones de Evolution, ya que las " +"direcciones de sus amigos están guardadas ahí." + +#: C/merge-ex3.page:33(p) +msgid "" +"Depending on how your copy of gLabels was packaged, this option " +"could be unavailable. Support for the Evolution addressbook will " +"only be available if the evolution-data-server and its " +"development files were present when gLabels was built. Please " +"keep this in mind if you build gLabels directly from source." +msgstr "" +"Dependiendo de cómo se haya empaquetado su copia de gLabels, " +"puede que esta opción no esté disponible. El soporte para la libreta de " +"direcciones de Evolution sólo está disponible si evolution-" +"data-server y sus archivos de desarrollo estaban presentes cuando se " +"compiló gLabels. Tenga esto en cuenta si construye gLabels directamente desde las fuentes." + +#: C/merge-ex3.page:39(p) +msgid "" +"If the gLabels package from your distribution lacks this support, " +"you may wish to contact the package maintainer or file a bug against the " +"package to request it." +msgstr "" +"Si el paquete gLabels de su distribución carece de este soporte, " +"puede contactar con el mantenedor del paquete o informar de un error en este " +"paquete para solicitarlo." + +#: C/merge-ex3.page:44(p) +msgid "" +"In glabels we have created a new gLabels document " +"using the Avery 5512 \"Address Labels\" template. Next we use the " +"ObjectsMerge Properties menu item to " +"display the Merge properties dialog. We use this dialog to select " +"the source type (in our case Data from default Evolution addressbook) as shown." +msgstr "" +"Se ha creado en glabels un documento de gLabels nuevo " +"usando la plantilla Avery 5512 «Etiquetas de dirección». Ahora se usa el " +"elemento de menú ObjetosMezclar propiedades para mostrar el diálogo Mezclar propiedades. Use este " +"diálogo para seleccionar el tipo de origen (en este caso, Datos de la " +"libreta de direcciones predeterminada de Evolution) como se muestra." + +#: C/merge-ex3.page:54(p) C/merge-ex2.page:53(p) C/merge-ex1.page:51(p) +msgid "Merge properties dialog" +msgstr "Diálogo de propiedades de fusión" -#: C/glabels.xml:438(para) +#. ==== End of Figure ==== +#: C/merge-ex3.page:58(p) +msgid "" +"Once we have chosen Data from default Evolution addressbook as " +"our merge source, we will get a full list of its content. Initially, all " +"entries are checked. Assuming we were planning a really big party, we could " +"leave this selection untouched (but let's keep our budget in mind). We will " +"now select or unselect certain entries by clicking on the appropriate " +"checkboxes, or we could use the Select all and Unselect all " +" buttons to activate or deactivate all entries in the address book." +msgstr "" +"Una vez que se han elegido Datos de la libreta predeterminada de " +"Evolution como origen de la mezcla, obtendrá una lista completa de su " +"contenido. Inicialmente, se comprueban todas las entradas. Asumiendo que se " +"está planificando una gran fiesta, se puede dejar esta selección sin tocar " +"(pero se va a mantener en mente el presupuesto). Ahora se seleccionan o " +"deseleccionan ciertas entradas pulsando en las casillas adecuadas, o se " +"pueden usar los botones Seleccionar todo y Deseleccionar " +"todo para activar o desactivar todas las entradas en la libreta de " +"direcciones." + +#: C/merge-ex3.page:66(p) msgid "" -"For simple labels or cards (no document merge), the labels tabbed section contains the following copy controls." +"We can also view each entry in more detail by clicking on the appropriate " +"expander (the little triangles) as shown. Once we are satisfied with the " +"selections in this dialog, we will click the OK button to accept " +"the changes." msgstr "" +"También se puede ver cada entrada con más detalle pulsando en el desplegable " +"adecuado (los triángulos pequeños), como se muestra. Una vez satisfechos con " +"las selecciones en este diálogo, pulse el botón Aceptar para " +"aceptar los cambios." -#: C/glabels.xml:443(title) -msgid "Print Copy Controls" +#: C/merge-ex3.page:71(p) C/merge-ex2.page:67(p) C/merge-ex1.page:60(p) +msgid "" +"Now we start adding objects to our glabels document as shown." msgstr "" +"Ahora puede añadir a añadir objetos al documento degLabels como se muestra." + +#: C/merge-ex3.page:75(p) C/merge-ex2.page:71(p) C/merge-ex1.page:64(p) +msgid "Adding objects" +msgstr "Añadir objetos" #. ==== End of Figure ==== -#: C/glabels.xml:454(para) +#: C/merge-ex3.page:79(p) msgid "" -"The number of copies of the label can be selected by choosing the number of " -"full sheets to print, or a specific subset of labels on a single sheet." +"In this example we have a single text object again. This text object " +"contains all of our merge fields organized on multiple lines as a mailing " +"address." msgstr "" +"En este ejemplo existe un único objeto de texto otra vez. Este objeto de " +"texto contiene todos los campos mezclados organizados en varias líneas como " +"direcciones de correo." -#: C/glabels.xml:458(para) +#: C/merge-ex3.page:82(p) msgid "" -"The mini-preview can also be used to graphically select the subset of labels " -"by clicking the first label on the mini-preview and dragging to the last " -"label." +"Now we can print our address labels by selecting the FilePrint menu item. This will display the print dialog " +"as shown below." msgstr "" +"Ahora se pueden imprimir las etiquetas de dirección seleccionando el " +"elemento de menú ArchivoImprimir. " +"Esto mostrará el diálogo de impresión como se muestra a continuación." -#: C/glabels.xml:466(guilabel) -msgid "Print control (Merge)" -msgstr "" +#: C/merge-ex3.page:89(p) C/merge-ex2.page:89(p) +msgid "Printing address labels" +msgstr "Imprimir etiquetas de dirección" -#: C/glabels.xml:469(para) +#. ==== End of Figure ==== +#: C/merge-ex3.page:93(p) C/merge-ex2.page:93(p) C/merge-ex1.page:89(p) msgid "" -"For labels or cards using the document merge (also known as \"mail merge\") " -"capability, the labels tabbed section contains the " -"following merge controls instead of copy controls." +"Just to make sure our labels are going to look okay, we select the " +"Print outlines option and click Print Preview. This " +"will display a print preview dialog as shown below." msgstr "" +"Sólo para asegurarse de que las etiquetas se van a ver bien, seleccione la " +"opción Imprimir contornos y pulse en Previsualizar la " +"impresión. Esto mostrará un diálogo de vista previa, como se muestra a " +"continuación." -#: C/glabels.xml:475(title) -msgid "Print Document Merge Controls" -msgstr "" +#: C/merge-ex3.page:100(p) +msgid "Addess labels preview" +msgstr "Vista previa de las etiquetas de dirección" #. ==== End of Figure ==== -#: C/glabels.xml:486(para) +#: C/merge-ex3.page:104(p) C/merge-ex2.page:104(p) msgid "" -"The total number of labels or cards printed is the product of the number of " -"records in the merge source and the number of copies selected. If multiple " -"copies are selected, these can be either collated (copies of the same record " -"grouped together) or un-collated (one copy each record is printed before " -"next copy)." +"Everything looks good, so we can now load up our printer with the " +"appropriate label stock, print our address labels and start mailing our " +"party invitations." msgstr "" +"Todo parece correcto, así que ahora podemos cargar nuestra impresora con las " +"etiquetas apropiadas, imprimir nuestras etiquetas de dirección y enviar por " +"correo nuestras invitaciones a la fiesta." -#: C/glabels.xml:493(para) +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/merge-ex2.page:52(None) msgid "" -"Printing can begin on any label on the first sheet. This can be selected " -"with the Start on label spinbutton." +"@@image: 'figures/merge-ex2-1.png'; md5=c9db139c5b7188e101470dc74684a118" msgstr "" +"@@image: 'figures/merge-ex2-1.png'; md5=c9db139c5b7188e101470dc74684a118" -#: C/glabels.xml:497(para) +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/merge-ex2.page:70(None) msgid "" -"The mini-preview can also be used to graphically select this first label, by " -"clicking on the desired label in the mini-preview." +"@@image: 'figures/merge-ex2-2.png'; md5=240b4e4ebaa270e0e8bf84c5bfd7233e" msgstr "" +"@@image: 'figures/merge-ex2-2.png'; md5=240b4e4ebaa270e0e8bf84c5bfd7233e" -#: C/glabels.xml:504(guilabel) -msgid "Options" -msgstr "Opciones" - -#: C/glabels.xml:506(para) -msgid "The following options can also be selected." +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/merge-ex2.page:88(None) +msgid "" +"@@image: 'figures/merge-ex2-3.png'; md5=c347460091d8eef9f4ec89557fa9f1e2" msgstr "" +"@@image: 'figures/merge-ex2-3.png'; md5=c347460091d8eef9f4ec89557fa9f1e2" -#: C/glabels.xml:509(guilabel) -msgid "print outlines" +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/merge-ex2.page:99(None) +msgid "" +"@@image: 'figures/merge-ex2-4.png'; md5=30d12e946a79e27211b835e38742671c" msgstr "" +"@@image: 'figures/merge-ex2-4.png'; md5=30d12e946a79e27211b835e38742671c" -#: C/glabels.xml:510(para) -msgid "" -"Print outlines of labels. This option is useful for dry-runs, to test " -"printer alignment." -msgstr "" +#: C/merge-ex2.page:9(desc) +msgid "Create address labels from a CSV file." +msgstr "Crear etiquetas de dirección desde un archivo CSV." -#: C/glabels.xml:514(guilabel) -msgid "print in reverse" -msgstr "" +#: C/merge-ex2.page:25(title) +msgid "Example 2: Address labels" +msgstr "Ejemplo 2: etiquetas de dirección" -#: C/glabels.xml:515(para) +#: C/merge-ex2.page:27(p) msgid "" -"Prints the labels as mirror images. This option is useful for printing on " -"clear labels that will be viewed from the reverse side (e.g. in a car " -"window)." +"In this example we are going to throw a party and need to print mailing " +"address labels for our invitations. We have a list of our closest friends " +"that we created in gnumeric and exported as the following CSV " +"file. It should be noted that not everyone has a middle initial or a two " +"line address." msgstr "" +"En este ejemplo se va a celebrar una fiesta y se necesitan imprimir " +"etiquetas de dirección para nuestras invitaciones. Existe una lista con los " +"amigos más cercamos que se ha creado en gnumeric y la se ha " +"exportado como el siguiente archivo CSV. Debe tener en cuenta que no todo el " +"mundo tiene una inicial intermedia o una dirección de dos líneas." -#: C/glabels.xml:520(guilabel) -msgid "print crop marks" +#: C/merge-ex2.page:33(code) +#, no-wrap +msgid "" +"\n" +"LAST,FIRST,MI,ADDR1,ADDR2,CITY,STATE,ZIP\n" +",,,,,,,\n" +"Critter,Ess,S,\"123 Faux St.\",,Alexandria,VA,22310\n" +"Doe,John,,\"Apt 1X\",\"451 Mystery St.\",Trenton,NJ,08601\n" +"Summers,Joyce,,\"1630 Revello Dr\",,Sunnydale,CA,95037\n" +"McGarret,Steve,O,\"404 Piikoi Street\",,Honolulu,HI,96813\n" +"Kramer,Cosmo,,\"Apt 5B\",\"129 W. 81 St.\",\"New York\",NY,10024-7207\n" +" " msgstr "" +"\n" +"LAST,FIRST,MI,ADDR1,ADDR2,CITY,STATE,ZIP\n" +",,,,,,,\n" +"Critter,Ess,S,\"123 Faux St.\",,Alexandria,VA,22310\n" +"Doe,John,,\"Apt 1X\",\"451 Mystery St.\",Trenton,NJ,08601\n" +"Summers,Joyce,,\"1630 Revello Dr\",,Sunnydale,CA,95037\n" +"McGarret,Steve,O,\"404 Piikoi Street\",,Honolulu,HI,96813\n" +"Kramer,Cosmo,,\"Apt 5B\",\"129 W. 81 St.\",\"New York\",NY,10024-7207\n" +" " -#: C/glabels.xml:521(para) +#: C/merge-ex2.page:43(p) msgid "" -"Prints crop marks along the edge of the sheet. This option is useful for " -"printing on blank stock, to be cut after printing. This option does not work " -"well with all templates." +"In glabels we have created a new glabels document " +"using the Avery 5512 \"Address Labels\" template. Next we use the " +"ObjectsMerge Properties menu item to " +"display the merge properties dialog. We use this dialog to select " +"the source type (in our case CSV with keys on line 1) and the merge source " +"(filename) as shown." msgstr "" +"En glabels se ha creado un documento de glabels nuevo " +"usando la plantilla «Etiquetas de dirección» Avery 5512.Ahora se usa el " +"elemento de menú ObjetosMezclar propiedades para mostrar el diálogo propiedades de combinación de datos. Se usa este diálogo para seleccionar el tipo de fuente (en este caso, " +"CSV con claves en la línea 1) y la fuente de combinación (nombre de archivo) " +"como se muestra." -#: C/glabels.xml:536(title) -msgid "To Create New Objects" +#. ==== End of Figure ==== +#: C/merge-ex2.page:57(p) +msgid "" +"Before applying the merge source, we uncheck the first record since it only " +"contains empty fields. It is an artifact of our original gnumeric " +"spreadsheet and would simply waste our first label. We could also unselect " +"any other records that we didn't want to print a label for." msgstr "" +"Antes de aplicar la combinación de fuentes se ha desmarcado el primer " +"registro , ya que sólo contiene campos vacíos. Esto es un artefacto de la " +"hoja de cálculo de gnumeric original, y sólo desperdiciaríamos " +"nuestra primera etiqueta. También se pueden deseleccionar cualquier otro " +"registro para el que no se quiera imprimir una etiqueta." -#: C/glabels.xml:538(para) +#. ==== End of Figure ==== +#: C/merge-ex2.page:62(p) C/merge-ex1.page:55(p) msgid "" -"Objects are created by choosing the appropriate selection under the " -"ObjectsCreate Object submenu or the Drawing Toolbar. This will place the display area into object creation mode as " -"indicated by its cursor. To return to the default object selection mode " -"without creating an object, choose ObjectsSelect Mode. This will " -"return the display area's cursor to the default selection arrow." +"We can also view each record in more detail by clicking on the appropriate " +"expander (the little triangles) as shown. Once we are satisfied with the " +"selections in this dialog we click OK to accept the changes." msgstr "" +"También se puede ver cada registro con más detalle pulsando en el expansor " +"adecuado (los triángulos pequeños), como se muestra. Una vez satisfecho con " +"las selecciones, pulse Aceptar en este diálogo para aceptar los " +"cambios." -#: C/glabels.xml:548(para) -msgid "The following describes the object creation mode for each object type:" +#. ==== End of Figure ==== +#: C/merge-ex2.page:75(p) +msgid "" +"In this example we have a single text object. This text object contains all " +"of our merge fields organized on multiple lines as a mailing address. Notice " +"that fields ${ADDR1} and ${ADDR2} are each located with no other text on " +"their own lines. When glabels encounters a field as the only text " +"on a line, it will not expand the line if the field is empty." msgstr "" +"En este ejemplo se tiene un único objeto de texto. El objeto de texto " +"contiene todo sobre los campos combinados en múltiples línea como " +"direcciones de correo. Tenga en cuenta que los campos ${ADDR1} y ${ADDR2} no " +"están situados en otro texto en sus propias líneas. Cuando glabels encuentra un campo como el único texto de una línea, no expandirá la " +"línea si el campo está vacío." -#: C/glabels.xml:554(term) C/glabels.xml:1123(guilabel) -msgid "Text" -msgstr "Texto" - -#: C/glabels.xml:556(para) +#: C/merge-ex2.page:82(p) msgid "" -"Click the desired location of the upper left corner of the text object. New " -"text objects are initialized with the string \"Text.\" To change this text, " -"or other properties, see ." +"Now we can print our address labels by selecting the FilePrint menu item. This will display print dialog as " +"shown below." msgstr "" +"Ahora se pueden imprimir las etiquetas de dirección seleccionando el " +"elemento de menú ArchivoImprimir. " +"Esto mostrará el diálogo de impresión como se muestra a continuación." -#: C/glabels.xml:564(term) -msgid "Box" -msgstr "Caja" +#: C/merge-ex2.page:100(p) +msgid "Address labels preview" +msgstr "Vista previa de las etiquetas de dirección" -#: C/glabels.xml:566(para) +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/merge-ex1.page:50(None) msgid "" -"Click the desired location of the upper left corner of the box object and " -"drag to the desired location of the lower right corner. If you simply click " -"in a single location, a square box will be created. To change properties of " -"the box object, see ." +"@@image: 'figures/merge-ex1-1.png'; md5=6e1cda54b797f875f379b657370d87c8" msgstr "" +"@@image: 'figures/merge-ex1-1.png'; md5=6e1cda54b797f875f379b657370d87c8" -#: C/glabels.xml:575(term) C/glabels.xml:1149(guilabel) -msgid "Line" -msgstr "Línea" - -#: C/glabels.xml:577(para) +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/merge-ex1.page:63(None) msgid "" -"Click the desired location of one end of the line object and drag to the " -"desired location of the other end. If you simply click in a single location, " -"a diagonal line will be created. To change properties of the line object, " -"see ." +"@@image: 'figures/merge-ex1-2.png'; md5=2ccad04ae5830f5f4a6a601d9fabed6a" msgstr "" +"@@image: 'figures/merge-ex1-2.png'; md5=2ccad04ae5830f5f4a6a601d9fabed6a" -#: C/glabels.xml:586(term) -msgid "Ellipse" -msgstr "Elipse" - -#: C/glabels.xml:588(para) +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/merge-ex1.page:84(None) msgid "" -"Click the desired location of the upper left corner of the ellipse object " -"and drag to the desired location of the lower right corner. If you simply " -"click in a single location, a circle will be created. To change properties " -"of the ellipse object, see ." +"@@image: 'figures/merge-ex1-3.png'; md5=858855ab1a392db74b70cdb2bdb27ddd" msgstr "" +"@@image: 'figures/merge-ex1-3.png'; md5=858855ab1a392db74b70cdb2bdb27ddd" -#: C/glabels.xml:597(term) -msgid "Image" -msgstr "Imagen" - -#: C/glabels.xml:599(para) +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/merge-ex1.page:95(None) msgid "" -"Click the desired location of the upper left corner of the image object and " -"drag to the desired location of the lower right corner. If you simply click " -"in a single location, a square will be created. New image objects are " -"initialized with a simple checkerboard image. To change this image, or other " -"properties of the image object, see ." +"@@image: 'figures/merge-ex1-4.png'; md5=8648ff55dd2e531a1a82b797f0430279" msgstr "" +"@@image: 'figures/merge-ex1-4.png'; md5=8648ff55dd2e531a1a82b797f0430279" -#: C/glabels.xml:610(term) -msgid "Barcode" -msgstr "" +#: C/merge-ex1.page:9(desc) +msgid "Create name tags from a CSV file." +msgstr "Crear etiquetas de nombre desde un archivo CSV." -#: C/glabels.xml:612(para) +#: C/merge-ex1.page:25(title) +msgid "Example 1: Name Tags" +msgstr "Ejemplo 1: etiquetas de nombre" + +#: C/merge-ex1.page:27(p) msgid "" -"Click the desired location of the upper left corner of the barcode object. " -"New barcode objects are initialized to a POSTNET barcode with representative " -"data. To change data and properties of the barcode object, see ." +"In this example we are organizing an orientation party for the new crew " +"members of our ship. We have a list of freshman crew members that we created " +"in gnumeric and exported as the following CSV file. We could have " +"created this file by using a text editor, but heck it is the 23rd century." msgstr "" +"En este ejemplo se está organizando una fiesta de orientación para los " +"nuevos miembros de la tripulación. Existe una lista de los miembros novatos " +"de la tripulación que se ha creado en gnumeric y exportado en el " +"siguiente archivo CSV. Se podría haber creado este archivo utilizando un " +"editor de texto, pero diablos, es el siglo XXIII." -#: C/glabels.xml:627(title) -msgid "To Select Objects" +#: C/merge-ex1.page:33(code) +#, no-wrap +msgid "" +"\n" +"Name,Department,SN\n" +"\"Jim Kirk\",Management,\"SC937-0176 CEC\"\n" +"\"Mr. Spock\",Sciences,S179-276SP\n" +"\"Leonard McCoy\",Medicine,unknown\n" +"\"Montgomery Scott\",Engineering,SE-197-54T\n" +" " msgstr "" +"\n" +"Name,Department,SN\n" +"\"Jim Kirk\",Management,\"SC937-0176 CEC\"\n" +"\"Mr. Spock\",Sciences,S179-276SP\n" +"\"Leonard McCoy\",Medicine,unknown\n" +"\"Montgomery Scott\",Engineering,SE-197-54T\n" +" " -#: C/glabels.xml:629(para) +#: C/merge-ex1.page:41(p) msgid "" -"A prerequisite for performing operations on objects is the selection of " -"individual objects or groups of objects. The display area must be in the " -"object selection mode to create new selections, as indicated by an arrow " -"cursor. The object selection mode is selected by the " -"ObjectsSelect Mode menu item, or the corresponding command on the " -"Drawing Toolbar." +"In gLabels we have created a new glabels document " +"using the Avery 5395 \"Name Badge Labels\" template. Next we use the " +"ObjectsMerge Properties menu item to " +"display the merge properties dialog. We use this dialog to select " +"the source type (in our case CSV with keys on line 1) and the merge source " +"(filename) as shown." msgstr "" +"En glabels se ha creado un documento de glabels nuevo " +"usando la plantilla «Etiquetas de nombre de placa» Avery 5395. Ahora se usa " +"el elemento de menú ObjetosMezclar propiedades para mostrar el diálogo propiedades de combinación de " +"datos. Use este diálogo para seleccionar el tipo de fuente (en este " +"caso, CSV con claves en la línea 1) y la fuente de combinación (nombre de " +"archivo) como se muestra." -#: C/glabels.xml:642(term) -msgid "Selecting a single object" -msgstr "" +#. ==== End of Figure ==== +#: C/merge-ex1.page:68(p) +msgid "" +"In this example we have added three text objects and a barcode object. The " +"first text object contains only simple literal text (\"Hello, my name is\"). " +"The second text object contains a single merge field (\"${Name}\") " +"corresponding to the first field of a record (first column of a line) which " +"contains the new crew member's full name. The third text field contains both " +"literal text (\"Department: \") followed by a single merge field " +"(\"${Department}\") corresponding to the second field or the crew member's " +"department. The barcode object is configured to use field (or key) \"SN\" " +"which contains our crew member's starfleet serial number." +msgstr "" +"En este ejemplo se han añadido tres objetos de texto y un objeto de código " +"de barras. El primer objeto de texto contiene sólo un texto literal («Hola, " +"mi nombre es»). El segundo objeto de texto contiene un único campo combinado " +"(\"${Nombre}\") correspondiente al primer campo de un registro (primera " +"columna de una línea) que contiene el nombre completo de los nuevos miembros " +"de la tripulación. El tercer campo de texto contiene un texto literal " +"(«Departamento») seguido de un único campo combinado (\"${Departmento}\") " +"correspondiente al segundo campo del departamento de los nuevos miembros de " +"la tripulación. El objeto de código de barras está configurado para usar el " +"campo (o la clave) «SN», que contiene los números de serie de la flota " +"estelar de los miembros de la tripulación." + +#: C/merge-ex1.page:78(p) +msgid "" +"Now we can print our name tags by selecting the FilePrint menu item. This will display print dialog as " +"shown below." +msgstr "" +"Ahora se pueden imprimir las etiquetas de nombre seleccionando el elemento " +"de menú ArchivoImprimir. Esto " +"mostrará el diálogo de impresión como se muestra a continuación." + +#: C/merge-ex1.page:85(p) +msgid "Printing name tags" +msgstr "Imprimir etiquetas de nombre" -#: C/glabels.xml:644(para) +#: C/merge-ex1.page:96(p) +msgid "Name tags preview" +msgstr "Vista previa de las etiquetas de nombre" + +#. ==== End of Figure ==== +#: C/merge-ex1.page:100(p) msgid "" -"A single object can be selected simply by clicking on the desired object in " -"the display area. Once selected the object will be highlighted with a set of " -"resizing handles." +"Everything looks good, so we can now load up our printer with the " +"appropriate label stock, print our name tags and start beaming our guests " +"aboard." msgstr "" +"Todo parece correcto, así que ahora puede cargar su impresora con las " +"etiquetas apropiadas, imprimir sus etiquetas de nombre e invitar a sus " +"invitados a bordo." -#: C/glabels.xml:652(term) -msgid "Aggregate object selections" +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/mancreate.page:340(None) +msgid "" +"@@image: 'figures/glabels-template-rect-label.png'; " +"md5=9c7ae1c1a888e1c9eefd19655d093971" msgstr "" +"@@image: 'figures/glabels-template-rect-label.png'; " +"md5=9c7ae1c1a888e1c9eefd19655d093971" -#: C/glabels.xml:654(para) +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/mancreate.page:392(None) msgid "" -"Multiple objects can be selected by first selecting the first object as " -"above and then by holding the Ctrl key while selecting " -"additional objects. Individual objects can be added to an existing selection " -"at any time by holding the Ctrl key while selecting the " -"desired objects. All objects can also be selected by using the " -"EditSelect All menu item. All objects in an aggregate object selection will be " -"highlighted." +"@@image: 'figures/glabels-template-ellipse-label.png'; " +"md5=ba612c86b5fb8fcd2b5384ecc1c331d2" msgstr "" +"@@image: 'figures/glabels-template-ellipse-label.png'; " +"md5=ba612c86b5fb8fcd2b5384ecc1c331d2" -#: C/glabels.xml:668(term) -msgid "Area selections" +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/mancreate.page:439(None) +msgid "" +"@@image: 'figures/glabels-template-circle-label.png'; " +"md5=841e36a1f92aeed01e8fbaacc67758f1" msgstr "" +"@@image: 'figures/glabels-template-circle-label.png'; " +"md5=841e36a1f92aeed01e8fbaacc67758f1" -#: C/glabels.xml:670(para) +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/mancreate.page:500(None) msgid "" -"Multiple objects can also be selected by clicking an empty area and dragging " -"to form a rectangular area. When released, all objects contained in the area " -"will form an aggregate selection. An area selection can be used to add to an " -"existing selection by holding the Ctrl key while performing " -"the selection." +"@@image: 'figures/glabels-template-cd-label.png'; " +"md5=c7952ac1b26ecbfa53facfbbf6486841" msgstr "" +"@@image: 'figures/glabels-template-cd-label.png'; " +"md5=c7952ac1b26ecbfa53facfbbf6486841" -#: C/glabels.xml:680(term) -msgid "Unselecting objects" +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/mancreate.page:762(None) +msgid "" +"@@image: 'figures/glabels-template-layout.png'; " +"md5=fe1c9652d5448b2e0ece086777d3a287" msgstr "" +"@@image: 'figures/glabels-template-layout.png'; " +"md5=fe1c9652d5448b2e0ece086777d3a287" -#: C/glabels.xml:682(para) +#: C/mancreate.page:10(desc) +msgid "Create your templates manually." +msgstr "Crear sus plantillas manualmente." + +#: C/mancreate.page:26(title) +msgid "Manually creating new templates" +msgstr "Crear plantillas nuevas manualmente" + +#. ****************** +#: C/mancreate.page:33(p) msgid "" -"Individual objects can be removed from an existing selection by holding the " -"Ctrl key while clicking on a previously selected object. An " -"entire selection can be dismissed by using the EditUn-select All menu item or " -"by simply clicking any empty space in the display area. Once an object is " -"unselected its highlight is removed." +"This page is a reference guide to manually creating gLabels " +"templates. gLabels templates are defined in simple XML files as " +"described in the DTD: glabels-2.3.dtd (this DTD also describes other XML files " +"used by gLabels)." msgstr "" +"Esta página es una guía de referencia para la creación manual de plantillas " +"de gLabels. Las plantillas de gLabels se definen en un " +"archivo XML, tal como se describe en la DTD: glabels-2.3.dtd (Este DTD también " +"describe otros formatos XML usados por glabels)." -#: C/glabels.xml:699(title) -msgid "Clipboard Commands" +#: C/mancreate.page:38(p) +msgid "" +"Manually created template files should be placed in the ${HOME}/." +"glabels and be named with a .template extension." msgstr "" +"Las plantillas creadas manualmente se guardarán en ${HOME}/.glabels y se nombrarán con extensión .template." -#: C/glabels.xml:701(para) +#: C/mancreate.page:42(p) msgid "" -"Object selections can be manipulated using the standard clipboard operations " -"Cut, Copy, " -"Paste, and Delete." +"gLabels searches for templates in several other locations as " +"defined here:" msgstr "" +"gLabels busca plantillas en varias ubicaciones, como se define " +"aquí:" -#: C/glabels.xml:712(keycap) C/glabels.xml:728(keycap) -#: C/glabels.xml:744(keycap) -msgid "Ctrl" -msgstr "Ctrl" +#: C/mancreate.page:45(p) +msgid "Location" +msgstr "Ubicación" + +#: C/mancreate.page:46(p) C/mancreate.page:173(p) C/mancreate.page:237(p) +#: C/mancreate.page:301(p) C/mancreate.page:364(p) C/mancreate.page:415(p) +#: C/mancreate.page:462(p) C/mancreate.page:535(p) C/mancreate.page:562(p) +#: C/mancreate.page:600(p) C/mancreate.page:634(p) C/mancreate.page:676(p) +#: C/mancreate.page:726(p) +msgid "Description" +msgstr "Descripción" -#: C/glabels.xml:712(keycap) -msgid "X" -msgstr "X" +#: C/mancreate.page:53(file) +msgid "${prefix}/share/libglabels-3.0/templates" +msgstr "${prefix}/share/libglabels-3.0/templates" -#: C/glabels.xml:714(guimenuitem) -msgid "Cut" -msgstr "Cortar" +#: C/mancreate.page:54(p) +msgid "Predefined templates distributed with gLabels." +msgstr "Plantillas predefinidas distribuidas con gLabels." -#: C/glabels.xml:718(para) +#: C/mancreate.page:55(p) msgid "" -"Moves selected objects to the clipboard. The objects are then available for " -"pasting back into the current document or another document." +"${prefix} is usually /usr or /usr/local, depending on where gLabels was installed." msgstr "" +"${prefix} normalmente es /usr o /usr/local, dependiendo de dónde se haya instalado gLabels." -#: C/glabels.xml:728(keycap) -msgid "C" -msgstr "C" - -#: C/glabels.xml:730(guimenuitem) -msgid "Copy" -msgstr "Copiar" +#: C/mancreate.page:59(file) +msgid "${XDG_CONFIG_HOME}/libglabels/templates" +msgstr "${XDG_CONFIG_HOME}/libglabels/templates" -#: C/glabels.xml:734(para) +#: C/mancreate.page:60(p) msgid "" -"Copies selected objects to the clipboard without deleting them. The objects " -"are then available for pasting back into the current document or another " -"document." +"User defined templates created with the gLabelsTemplate " +"Designer. Do not put manually created templates in this directory." +"" msgstr "" +"Plantillas definidas por el usuario creadas con el Diseñador de " +"plantillas de gLabels. No ponga plantillas creadas " +"manualmente en esta carpeta." -#: C/glabels.xml:744(keycap) -msgid "V" -msgstr "V" - -#: C/glabels.xml:746(guimenuitem) -msgid "Paste" -msgstr "Pegar" - -#: C/glabels.xml:750(para) +#: C/mancreate.page:62(p) msgid "" -"Pastes objects from the clipboard into the current document. " -"gLabels can only paste objects from another " -"gLabels document." +"If ${XDG_CONFIG_HOME} is not defined, it defaults to " +"${HOME}/.config." msgstr "" +"Si ${XDG_CONFIG_HOME} no está definido, su valor predeterminado " +"es ${HOME}/.config." -#: C/glabels.xml:760(keycap) C/glabels.xml:762(guimenuitem) -msgid "Delete" -msgstr "Borrar" - -#: C/glabels.xml:766(para) -msgid "Deletes selected objects without placing them on the clipboard." -msgstr "" +#: C/mancreate.page:66(file) +msgid "${HOME}/.glabels" +msgstr "${HOME}/.glabels" -#: C/glabels.xml:777(title) -msgid "To Edit Object Properties" +#: C/mancreate.page:67(p) +msgid "" +"User defined templates that have been created manually should be placed in " +"this directory. Older versions of the gLabelsTemplate " +"Designer (prior to 3.0) would also put templates in this directory." msgstr "" +"Las plantillas definidas por el usuario creadas manualmente se deben poner " +"en esta carpeta. Las versiones del Diseñador de plantillas de " +"gLabels (anteriores a 3.0) también pondrían plantillas en esta " +"carpeta." -#: C/glabels.xml:779(para) +#: C/mancreate.page:75(p) msgid "" -"Most object properties can be modified through the object editor sidebar, " -"illustrated below. To use the object editor, a single object must first be " -"selected. See ." +"Completed template files can be sent to the gLabels template " +"mailing list for possible inclusion in future versions of gLabels." msgstr "" +"Los archivos de plantillas completadas se pueden enviar a la lista de correo de " +"plantillas de gLabels, para incluirlas posiblemente en versiones " +"futuras de gLabels." -#: C/glabels.xml:786(title) -msgid "Object Editor Sidebar" -msgstr "" +#: C/mancreate.page:89(title) +msgid "Assumptions/caveats" +msgstr "Supuestos/advertencias" -#. ==== End of Figure ==== -#: C/glabels.xml:797(para) +#: C/mancreate.page:92(p) msgid "" -"The object editor will contain a subset of the following tabbed sections, " -"depending on object type:" +"A sheet contains only one size of label or card (if a sheet contains more " +"than one size of item, it can be split into multiple templates for multiple " +"pass printing)" msgstr "" +"Una hoja contiene etiquetas o tarjetas de un sólo tamaño (si una hoja " +"contiene más de un tamaño por elemento, se puede dividir el varias " +"plantillas para imprimir en múltiples pasadas)" + +#: C/mancreate.page:97(p) +msgid "" +"Distances can be expressed in units of pt, " +"in, mm, cm, or pc. For " +"example: \"1.0in\" or \"2.54cm\". If no units are specified, computer points (pt) will be assumed (1 pt = 1/72 in = 0.352778 mm)." +msgstr "" +"Las distancias se pueden expresar en las unidades pt, in, mm, " +"cm, o pc. Por " +"ejemplo: «1.0in» o «2.54cm». Si no se especifican la unidade, se asumirá que es puntos " +"informáticos (pt), donde 1 pt = 1/72 " +"in = 0.352778 mm." + +#: C/mancreate.page:118(title) +msgid "Template Files" +msgstr "Archivos de plantillas" -#: C/glabels.xml:801(title) -msgid "Text Tabbed Section (Text objects)" +#: C/mancreate.page:120(p) +msgid "" +"A template file contains a single Glabels-templates top-level node." msgstr "" +"Un archivo de plantilla contiene un único nodo Glabels-templates de nivel superior." -#: C/glabels.xml:803(para) +#: C/mancreate.page:123(code) +#, no-wrap msgid "" -"This section contains a small editor for changing the content of a text " -"object. It also contains a dropdown menu of available document merge keys, " -"that can be inserted into text." +"\n" +"<?xml version=\"1.0\"?>\n" +"<Glabels-templates>\n" +"\n" +" ...templates...\n" +"\n" +"</Glabels-templates>" msgstr "" +"\n" +"<?xml version=\"1.0\"?>\n" +"<Glabels-templates>\n" +"\n" +" ...plantillas...\n" +"\n" +"</Glabels-templates>" -#: C/glabels.xml:810(title) -msgid "Image Tabbed Section (Image objecs)" -msgstr "" +#: C/mancreate.page:132(title) +msgid "Example Template" +msgstr "Plantilla de ejemplo" -#: C/glabels.xml:812(para) +#: C/mancreate.page:133(desc) msgid "" -"This section contains a file entry with preview to select image files. The " -"browse button can be used to easily locate image files. Alternatively, a " -"document merge key can be used instead to provide a filename at print time." -msgstr "" - -#: C/glabels.xml:820(title) -msgid "Data Tabbed Section (Barcode objecs)" +"Example gLabels template file containing a single Template node." msgstr "" +"Ejemplo de archivo de plantilla de gLabels con un nodo Template." -#: C/glabels.xml:822(para) +#: C/mancreate.page:135(code) +#, no-wrap msgid "" -"This section contains a text entry to enter literal barcode data. " -"Alternatively, a document merge key can be used to provide this data at " -"print time." +"\n" +"<?xml version=\"1.0\"?>\n" +"<Glabels-templates>\n" +"\n" +" <Template brand=\"Avery\" part=\"8160\" size=\"US-Letter\" description=\"Mailing Labels\">\n" +" <Meta category=\"label\"/>\n" +" <Meta category=\"mail\"/>\n" +" <Meta product_url=\"http://www.avery.com/avery/en_us/\"/>\n" +" <Label-rectangle id=\"0\" width=\"189pt\" height=\"72pt\" round=\"5pt\">\n" +" <Markup-margin size=\"5pt\"/>\n" +" <Layout nx=\"3\" ny=\"10\" x0=\"11.25pt\" y0=\"36pt\" dx=\"200pt\" dy=\"72pt\"/>\n" +" </Label-rectangle>\n" +" </Template>\n" +"\n" +"</Glabels-templates>" msgstr "" +"\n" +"<?xml version=\"1.0\"?>\n" +"<Glabels-templates>\n" +"\n" +" <Template brand=\"Avery\" part=\"8160\" size=\"US-Letter\" description=\"Mailing Labels\">\n" +" <Meta category=\"label\"/>\n" +" <Meta category=\"mail\"/>\n" +" <Meta product_url=\"http://www.avery.com/avery/en_us/\"/>\n" +" <Label-rectangle id=\"0\" width=\"189pt\" height=\"72pt\" round=\"5pt\">\n" +" <Markup-margin size=\"5pt\"/>\n" +" <Layout nx=\"3\" ny=\"10\" x0=\"11.25pt\" y0=\"36pt\" dx=\"200pt\" dy=\"72pt\"/>\n" +" </Label-rectangle>\n" +" </Template>\n" +"\n" +"</Glabels-templates>" -#: C/glabels.xml:829(title) -msgid "Style Tabbed Section (Text objects)" -msgstr "" +#: C/mancreate.page:163(title) +msgid "Template Node" +msgstr "Nodo Template" -#: C/glabels.xml:831(para) +#: C/mancreate.page:165(p) msgid "" -"This section contains controls to select text properties, including font " -"family, font size, font weight, color, and text justification." +"A Template node describes a single stationery " +"product. It must contain one instance of any type of Label node (Label-rectangle, Label-round, or Label-cd)." msgstr "" +"Un nodo Template describe un único producto de " +"papelería. Debe contener una instancia de cada tipo de nodo " +"«Etiqueta» (Label-rectangle, Label-round, o Label-cd)." -#: C/glabels.xml:838(title) -msgid "Style Tabbed Section (Barcode objecs)" -msgstr "" +#: C/mancreate.page:173(p) C/mancreate.page:301(p) C/mancreate.page:364(p) +#: C/mancreate.page:415(p) C/mancreate.page:462(p) C/mancreate.page:535(p) +#: C/mancreate.page:562(p) C/mancreate.page:600(p) C/mancreate.page:634(p) +#: C/mancreate.page:676(p) C/mancreate.page:726(p) +msgid "Property" +msgstr "Propiedad" + +#: C/mancreate.page:179(code) +#, no-wrap +msgid "brand" +msgstr "brand" + +#: C/mancreate.page:180(p) +msgid "Brand or manufacturer of stationery product. E.g. \"Avery\"" +msgstr "Marca o fabricante de productos de papelería. Por ejemplo «Avery»." + +#: C/mancreate.page:183(code) +#, no-wrap +msgid "part" +msgstr "part" + +#: C/mancreate.page:184(p) +msgid "Part number or name of stationery product. E.g. \"8160\"" +msgstr "Número de pieza o nombre de un producto de papelería. Ej «8160»" -#: C/glabels.xml:840(para) +#: C/mancreate.page:187(code) C/mancreate.page:541(code) +#, no-wrap +msgid "size" +msgstr "size" + +#: C/mancreate.page:188(p) msgid "" -"This section contains controls to select barcode properties, including " -"barcode style, color, whether to print text, and whether to include a " -"checksum digit." +"Size of sheet. E.g., \"US-Letter\", \"A4\", ..." msgstr "" +"Tamaño de la hoja. Ej. \"Carta\", \"A4\", ...." -#: C/glabels.xml:847(title) -msgid "Line Tabbed Section" +#: C/mancreate.page:193(code) +#, no-wrap +msgid "description" +msgstr "description" + +#: C/mancreate.page:194(p) +msgid "Description of stationery product. E.g, \"Mailing Labels.\"" msgstr "" +"Descripción de un producto de papelería. Por ejemplo, «Etiquetas de " +"dirección»." + +#: C/mancreate.page:197(code) +#, no-wrap +msgid "_description" +msgstr "_description" -#: C/glabels.xml:849(para) +#: C/mancreate.page:198(p) msgid "" -"This section contains controls to select properties of lines and outlines. " -"These properties include line width and color." +"Translatable description of stationery product. E.g, \"Mailing Labels." +"\" (Only useful for predefined templates)" msgstr "" +"Descripción traducible para un producto de papelería. Por ejemplo, " +"«Etiquetas de correo». (Útil sólo para plantillas predefinidas.)" -#: C/glabels.xml:855(title) -msgid "Fill Tabbed Section" -msgstr "" +#: C/mancreate.page:202(code) C/mancreate.page:311(code) +#: C/mancreate.page:374(code) C/mancreate.page:480(code) +#, no-wrap +msgid "width" +msgstr "width" + +#: C/mancreate.page:203(p) +msgid "Page width. Only valid if size=\"Other\"" +msgstr "Ancho de la página. Sólo es válido si tamaño=«Otro»" + +#: C/mancreate.page:206(code) C/mancreate.page:315(code) +#: C/mancreate.page:378(code) C/mancreate.page:485(code) +#, no-wrap +msgid "height" +msgstr "height" + +#: C/mancreate.page:207(p) +msgid "Page height. Only valid if size=\"Other\"" +msgstr "Altura de la página. Sólo es válido si tamaño=«Otro»" + +#: C/mancreate.page:210(code) +#, no-wrap +msgid "equiv" +msgstr "equiv" -#: C/glabels.xml:857(para) +#: C/mancreate.page:211(p) msgid "" -"This section contains controls to select fill properties of box and ellipse " -"objects. Currently the only fill property is fill color." +"Equivalent part number. If this property is present, the template is a clone " +"of another template of the same brand. The template will inherit all " +"properties, except brand and name from the other template. This equiv " +"property must refer to a previously defined template - gLabels " +"does not currently support forward references." msgstr "" +"Parte numérica equivalente. Si esta propiedad está presente, la plantilla es " +"un clon de otra plantilla de la misma marca. La plantilla heredará todas las " +"propiedades, excepto la marca y el nombre de la otra plantilla. Esta " +"propiedad debe referirse a una plantilla definida anteriormente: actualmente " +"gLabels no soporta hacia adelante." -#: C/glabels.xml:864(title) -msgid "Size Tabbed Section (All except line objects)" -msgstr "" +#: C/mancreate.page:229(title) +msgid "Meta Node" +msgstr "Nodo Meta" -#: C/glabels.xml:866(para) +#: C/mancreate.page:231(p) msgid "" -"This section contains controls to select the width and height of an object. " -"A checkbox is provided, so that the current aspect ratio can be locked while " -"manipulating the width and height controls. Image objects also provide a " -"button to reset the size to the image's natural size (Assumes 72DPI)." +"A Meta node contains some additional " +"information about the template. A Template " +"node may contain zero or more Meta nodes." msgstr "" +"un nodo Meta contiene información adicional " +"sobre la plantilla. Un nodo Template puede " +"contener cero o más nodos Meta." -#: C/glabels.xml:875(title) -msgid "Size Tabbed Section (Line objects)" -msgstr "" +#: C/mancreate.page:237(p) +msgid "Subnode" +msgstr "Subnodo" + +#: C/mancreate.page:243(code) +#, no-wrap +msgid "category" +msgstr "category" -#: C/glabels.xml:877(para) +#: C/mancreate.page:244(p) msgid "" -"This section contains controls to select the length and angle of a line " -"object." +"A category for the template. A template can belong to multiple categories by " +"simply adding multiple Meta nodes to the " +"parent Template node. Template categories are " +"used by the gLabelsNew Label Dialog to filter the " +"results of template searches." msgstr "" +"Una categoría para la plantilla. Una plantilla puede pertenecer a varias " +"categorías simplemente añadiendo múltiples nodos Meta al nodo Template padre. El " +"Diálogo de tarjeta nueva de gLabels usa las categorías " +"de las plantillas para filtrar los resultados de búsquedas de plantillas." -#: C/glabels.xml:883(title) -msgid "Position Tabbed Section" +#: C/mancreate.page:251(p) +msgid "" +"The value of this category must match a predefined category ID defined in " +"the file ${prefix}/libglabels-3.0/templates/categories.xml. " +"Currently defined category IDs include:" msgstr "" +"El valor de esta categoría debe coincidir con un ID de categoría predefinido " +"en el archivo ${prefix}/libglabels-3.0/templates/categories.xml. Los ID de categoría definidos actualmente incluyen:" -#: C/glabels.xml:885(para) -msgid "This section contains controls to change the position of an object." -msgstr "" +#: C/mancreate.page:255(code) +#, no-wrap +msgid "label" +msgstr "label" -#: C/glabels.xml:892(title) -msgid "Shadow Tabbed Section (All except image and barcode objects)" -msgstr "" +#: C/mancreate.page:256(code) +#, no-wrap +msgid "round-label" +msgstr "round-label" -#: C/glabels.xml:894(para) -msgid "This section contains controls to add a shadow to an object." -msgstr "" +#: C/mancreate.page:257(code) +#, no-wrap +msgid "elliptical-label" +msgstr "elliptical-label" -#: C/glabels.xml:903(title) -msgid "Other Manipulations of Objects" -msgstr "" +#: C/mancreate.page:258(code) +#, no-wrap +msgid "square-label" +msgstr "square-label" -#: C/glabels.xml:905(para) -msgid "Objects can also be manipulated in the following ways." -msgstr "" +#: C/mancreate.page:259(code) +#, no-wrap +msgid "rectangle-label" +msgstr "rectangle-label" -#: C/glabels.xml:908(title) -msgid "Moving and Resizing Objects" -msgstr "" +#: C/mancreate.page:260(code) +#, no-wrap +msgid "card" +msgstr "card" + +#: C/mancreate.page:261(code) +#, no-wrap +msgid "business-card" +msgstr "business-card" + +#: C/mancreate.page:262(code) +#, no-wrap +msgid "media" +msgstr "media" + +#: C/mancreate.page:263(code) +#, no-wrap +msgid "mail" +msgstr "mail" + +#: C/mancreate.page:264(code) +#, no-wrap +msgid "foldable" +msgstr "foldable" + +#: C/mancreate.page:265(code) +#, no-wrap +msgid "photo" +msgstr "photo" + +#: C/mancreate.page:272(code) +#, no-wrap +msgid "product_url" +msgstr "product_url" -#: C/glabels.xml:910(para) +#: C/mancreate.page:273(p) msgid "" -"Objects can be moved by simply clicking on a selected object and dragging " -"the object to its new location. If the object is part of an aggregate " -"selection, all objects in the selection will move with the object being " -"dragged, maintaining their relative positions to one another. If no object " -"is selected, clicking on an object will create a new selection containing " -"that object. See ." +"A URL pointing to the vendor's webpage for the specific product, if " +"available." msgstr "" +"Un URL que apunta a la página web del fabricante para un producto " +"determinado, si está disponible." -#: C/glabels.xml:918(para) +#: C/mancreate.page:277(p) msgid "" -"A selected object can be resized by clicking one of its resize handle and " -"dragging it to obtain the new size." +"Suggestions for additional categories can be sent to the gLabels " +"developer's mailing list." msgstr "" +"La sugerencias sobre categorías adicionales se pueden enviar a la lista de correo de los " +"desarrolladores de gLabels." -#: C/glabels.xml:924(title) -msgid "Changing Stacking Order" +#: C/mancreate.page:280(p) +msgid "Product URLs may be of limited use, because they may not be permanent." msgstr "" +"Los URL de productos deben ser de uso limitado, ya que pueden no ser " +"permanentes." + +#: C/mancreate.page:293(title) +msgid "Label-rectangle Node" +msgstr "Nodo Label-rectangle" -#: C/glabels.xml:926(para) +#: C/mancreate.page:295(p) msgid "" -"Stacking order refers to relative position in the z-axis of objects. That is " -"when objects overlap, which object will appear on top of the other. By " -"default, newer objects will appear above older objects. To change this " -"order, select one or more objects and choose ObjectsOrderBring to Front to raise the selection to the top of the stacking " -"order, or choose ObjectsOrderSend to Back to lower " -"the selection to the bottom of the stacking order. These menuitems are also " -"available by right-clicking the display area when there is a non-empty " -"selection." +"A Label-rectangle node describes the " +"dimensions of a single label or business card that is rectangular in shape " +"(may have rounded edges)." msgstr "" +"Un nodoLabel-rectangle describe las " +"dimensiones de una única etiqueta o tarjeta de visita de forma rectangular " +"(Puede tener los bordes redondeados." -#: C/glabels.xml:944(title) -msgid "Rotating and Flipping Objects" -msgstr "" +#: C/mancreate.page:307(code) C/mancreate.page:370(code) +#: C/mancreate.page:421(code) C/mancreate.page:468(code) +#, no-wrap +msgid "id" +msgstr "id" + +#: C/mancreate.page:308(p) C/mancreate.page:371(p) C/mancreate.page:422(p) +#: C/mancreate.page:469(p) +msgid "Reserved for future use. Should always be 0." +msgstr "Reservado para el futuro. Debería ser siempre 0." -#: C/glabels.xml:946(para) +#: C/mancreate.page:312(p) +msgid "Width of label/card" +msgstr "Ancho de la etiqueta/tarjeta" + +#: C/mancreate.page:316(p) +msgid "Heigth of label/card" +msgstr "Altura de la etiqueta/tarjeta" + +#: C/mancreate.page:319(code) +#, no-wrap +msgid "round" +msgstr "round" + +#: C/mancreate.page:320(p) msgid "" -"Objects can be rotated 90 degrees in either direction, or flipped " -"horizontally or vertically, by choosing the appropriate menuitem in the " -"ObjectsRotate/Flip sub-menu. These menuitems are also available by " -"right-clicking the display area when there is a non-empty selection." +"Radius of corners. For items with square edges (business cards), the radius " +"should be 0." msgstr "" +"Radio de la esquina. Para elementos con bordes cuadrados (tarjetas de " +"visita), el radio debe ser 0." -#: C/glabels.xml:956(title) -msgid "Aligning Objects" -msgstr "" +#: C/mancreate.page:324(code) +#, no-wrap +msgid "x_waste" +msgstr "x_waste" -#: C/glabels.xml:958(para) +#: C/mancreate.page:325(p) msgid "" -"Objects can be aligned horizontally or vertically, relative to one another, " -"or relative to the center line of the label, by choosing the appropriate " -"menuitem from the ObjectsAlign " -"Horizontal or ObjectsAlign Horizontal sub-menus. " -"These menuitems are also available by right-clicking the display area when " -"there is a non-empty selection." +"Amount of horizontal waste (over-print) to allow. This is useful for " +"minimizing alignment problems when using non-white backgrounds (e.g. images)." msgstr "" +"Cantidad de residuos horizontales (sobreimpresión) que permitir. Esto es " +"útil para minimizar problemas de alineación al usar fondos no blancos (ej. " +"imágenes)." -#: C/glabels.xml:971(title) -msgid "Using the Property Bar" -msgstr "" +#: C/mancreate.page:330(code) +#, no-wrap +msgid "y_waste" +msgstr "y_waste" -#: C/glabels.xml:973(para) +#: C/mancreate.page:331(p) msgid "" -"The property bar can be used to change some common properties of objects en-" -"masse. These properties include font family, font size, font weight, text " -"alignment, text color, fill color, line or outline color, and line width. " -"The property bar also controls the defaults for these properties for any " -"newly created objects." +"Amount of vertical waste (over-print) to allow. This is useful for " +"minimizing alignment problems when using non-white backgrounds (e.g. images)." msgstr "" +"Cantidad de residuos verticales (sobreimpresión) que permitir. Esto es útil " +"para minimizar problemas de alineación al usar fondos no blancos (ej. " +"imágenes)." -#: C/glabels.xml:988(title) -msgid "Performing a Document Merge" -msgstr "" +#: C/mancreate.page:339(desc) C/mancreate.page:341(p) +msgid "Label-rectangle parameters" +msgstr "Parámetros de Label-rectangle" + +#: C/mancreate.page:356(title) +msgid "Label-ellipse Node" +msgstr "Nodo Label-ellipse" -#: C/glabels.xml:990(para) +#: C/mancreate.page:358(p) msgid "" -"Document Merge (sometimes called \"Mail Merge\") is a powerful feature that " -"allows a unique label or card to be printed for each record in an external " -"data source." +"A Label-ellipse node describes the dimensions " +"of a single label or business card that is elliptic in shape." msgstr "" +"Un nodo Label-ellipse describe las dimensiones " +"de una única etiqueta o tarjeta de visita de forma elíptica." + +#: C/mancreate.page:375(p) +msgid "Width of the ellipse" +msgstr "Anchura de la elipse" + +#: C/mancreate.page:379(p) +msgid "Heigth of the ellipse" +msgstr "Altura de la elipse" + +#: C/mancreate.page:382(code) C/mancreate.page:429(code) +#: C/mancreate.page:490(code) +#, no-wrap +msgid "waste" +msgstr "waste" -#: C/glabels.xml:994(para) +#: C/mancreate.page:383(p) C/mancreate.page:430(p) C/mancreate.page:491(p) msgid "" -"The first step to performing a document merge is to prepare a source " -"document that contains your merge data. This data could be mailing addresses " -"or any other data that you wish to create unique labels or cards for. " -"Currently back-ends only exist for text files and the evolution data server " -"-- others are planned. The currently supported text-file format is very " -"simple: each line is a record; fields are delimited by commas (CSV), tabs, " -"or colons; and newlines can be embedded into fields by using the \"\\n\" " -"entity. This file could be created using any text editor or could be created " -"by another program or script. A common way of creating CSV files is to " -"export them from a spreadsheet program." +"Amount of waste (over-print) to allow. This is useful for minimizing " +"alignment problems when using non-white backgrounds (e.g. images)." msgstr "" +"Cantidad de residuos (sobreimpresión) que permitir. Esto es útil para " +"minimizar problemas de alineación al usar fondos no blancos (ej. imágenes)." -#: C/glabels.xml:1006(para) +#: C/mancreate.page:391(desc) C/mancreate.page:393(p) +#: C/mancreate.page:438(desc) C/mancreate.page:440(p) +msgid "Label-ellipse parameters" +msgstr "Parámetros de Label-ellipse" + +#: C/mancreate.page:408(title) +msgid "Label-round Node" +msgstr "Nodo Label-round" + +#: C/mancreate.page:410(p) msgid "" -"A label must then be configured to \"point at\" this data file. To configure " -"the merge properties of a document, choose ObjectsMerge Properties menu item " -"to display the merge properties dialog. This dialog is " -"used to select the exact data file format and file name (location) of the " -"merge data." +"A Label-round node describes the dimensions of " +"a simple round label (not a CD)." msgstr "" +"Un nodo Label-round describe las dimensiones " +"de una sola etiqueta circular (no un CD)." + +#: C/mancreate.page:425(code) C/mancreate.page:472(code) +#: C/mancreate.page:614(code) +#, no-wrap +msgid "radius" +msgstr "radius" + +#: C/mancreate.page:426(p) +msgid "Radius (1/2 diameter) of label" +msgstr "Radio (1/2 del diámetro) de la etiqueta" -#: C/glabels.xml:1014(para) +#: C/mancreate.page:455(title) +msgid "Label-cd Node" +msgstr "Nodo Label-cd" + +#: C/mancreate.page:457(p) msgid "" -"Finally, once the label has been configured for a data file, field keys can " -"be inserted into text objects and used as source or data for barcode objects " -"and image filenames for image objects. See for more information on using merge data for these object " -"types." +"A Label-cd node describes the dimensions of a " +"CD, DVD, or business card CD." msgstr "" +"Un nodo Label-cd describe las dimensiones de " +"un CD, DVD o un CD de tarjeta de visita." -#: C/glabels.xml:1020(para) +#: C/mancreate.page:473(p) +msgid "Outer radius of label" +msgstr "Radio exterior de la etiqueta" + +#: C/mancreate.page:476(code) +#, no-wrap +msgid "hole" +msgstr "hole" + +#: C/mancreate.page:477(p) +msgid "Radius of concentric hole" +msgstr "Radio del agujero concéntrico" + +#: C/mancreate.page:481(p) msgid "" -"Now that your label is configured, gLabels will " -"print a unique label for each record in your source document -- substituting " -"fields from each record for field keys in the all text, barcode, and image " -"objects." +"If present, the label is clipped to the given width. (Useful for \"business " +"card CDs\")." msgstr "" +"Si está presente, la etiqueta se recorta a la anchura dada. (Útil para " +"«tarjetas de visita en CD»)." -#: C/glabels.xml:1025(para) +#: C/mancreate.page:486(p) msgid "" -"See for a detailed tutorial on " -"the document merge feature." +"If present, the label is clipped to the given height. (Useful for \"business " +"card CDs\")." msgstr "" +"Si está presente, la etiqueta se recorta a la altura dada. (Útil para " +"«tarjetas de visita en CD»)." -#: C/glabels.xml:1040(title) -msgid "Settings" -msgstr "Configuración" +#: C/mancreate.page:499(desc) +msgid "Label-cd parameters" +msgstr "Parámetros de Label-cd" -#: C/glabels.xml:1041(para) +#: C/mancreate.page:501(p) +msgid "CD label parameters" +msgstr "Parámetros de etiqueta de CD" + +#: C/mancreate.page:516(title) +msgid "Markup Nodes" +msgstr "Nodos Markup" + +#: C/mancreate.page:518(p) msgid "" -"To configure gLabels, choose " -"SettingsPreferences. The Preferences dialog " -"contains the following tabbed sections:" +"Templates may contain optional markup nodes. These nodes are used to " +"describe a simple set of markup lines that are visible in the glabels drawing canvas, but not visible when printed. These lines can represent " +"margins, fold lines, center lines, special areas, or other helpful hints to " +"the user of a template." msgstr "" +"Las plantillas pueden contener nodos de marcado opcionales. Estos nodos se " +"usan para describir un conjunto de líneas de marcado que son visibles en la " +"ventana de dibujo de glabels, pero no son visibles cuando se " +"imprime. Estas líneas pueden representar márgenes, líneas de plegado o de " +"centrado, áreas especiales u otros indicios útiles para el usuario de una " +"plantilla." -#: C/glabels.xml:1062(title) -msgid "Locale" -msgstr "Región" +#: C/mancreate.page:528(title) +msgid "Markup-margin Node" +msgstr "Nodo Markup-margin" -#: C/glabels.xml:1066(guilabel) -msgid "Units" -msgstr "Unidades" +#: C/mancreate.page:530(p) +msgid "" +"A Markup-margin describes a margin along all " +"edges of a label." +msgstr "" +"Un Markup-margin describe un margen a lo largo " +"de los bordes de una etiqueta." -#: C/glabels.xml:1068(para) +#: C/mancreate.page:542(p) msgid "" -"Use this radio button group to specify your preferred units. Select one of " -"the following options:" +"Size of the margin. I.e. the distance of the margin line from the edge of " +"the card/label." msgstr "" +"Tamaño del margen. Ej. la distancia de la línea del margen desde el borde de " +"la tarjeta/etiqueta." -#: C/glabels.xml:1073(guilabel) -msgid "Points" -msgstr "Puntos" +#: C/mancreate.page:556(title) +msgid "Markup-line Node" +msgstr "Nodo Markup-line" -#: C/glabels.xml:1074(para) -msgid "Use points (1 point = 1/72 in = 0.352778 mm)." +#: C/mancreate.page:558(p) +msgid "" +"A Markup-line node describes a markup line." msgstr "" +"Un nodo Markup-line describe una línea de " +"marcado." -#: C/glabels.xml:1078(guilabel) -msgid "Inches" -msgstr "Pulgadas" +#: C/mancreate.page:568(code) C/mancreate.page:640(code) +#: C/mancreate.page:682(code) +#, no-wrap +msgid "x1" +msgstr "x1" -#: C/glabels.xml:1079(para) -msgid "Use inches." -msgstr "" +#: C/mancreate.page:569(p) +msgid "x coordinate of 1st endpoint of the line segment." +msgstr "coordenada X del primero punto final del segmento de línea." -#: C/glabels.xml:1083(guilabel) -msgid "Millimeters" -msgstr "Milímetros" +#: C/mancreate.page:572(code) C/mancreate.page:644(code) +#: C/mancreate.page:686(code) +#, no-wrap +msgid "y1" +msgstr "y1" -#: C/glabels.xml:1084(para) -msgid "Use millimeters." -msgstr "" +#: C/mancreate.page:573(p) +msgid "y coordinate of 1st endpoint of the line segment." +msgstr "coordenada Y del primero punto final del segmento de línea." -#: C/glabels.xml:1087(para) -msgid "Default: Inches." -msgstr "" +#: C/mancreate.page:576(code) +#, no-wrap +msgid "x2" +msgstr "x2" -#: C/glabels.xml:1093(guilabel) -msgid "Default page size" -msgstr "" +#: C/mancreate.page:577(p) +msgid "x coordinate of 2st endpoint of the line segment." +msgstr "coordenada X del segundo punto final del segmento de línea." -#: C/glabels.xml:1095(para) -msgid "" -"Use this radio button group to specify your preferred page size. This will " -"make it quicker for you to locate media types when creating a new label or " -"card." -msgstr "" +#: C/mancreate.page:580(code) +#, no-wrap +msgid "y2" +msgstr "y2" -#: C/glabels.xml:1101(guilabel) -msgid "US Letter" -msgstr "US Letter" +#: C/mancreate.page:581(p) +msgid "y coordinate of 2st endpoint of the line segment." +msgstr "coordenada Y del segundo punto final del segmento de línea." + +#: C/mancreate.page:594(title) +msgid "Markup-circle Node" +msgstr "Nodo Markup-circle" -#: C/glabels.xml:1102(para) +#: C/mancreate.page:596(p) msgid "" -"Most of your media will be of the US Letter page size (8.5 x 11 inches)." +"A Markup-circle describes a markup circle." msgstr "" +"Un Markup-circle describe un círculo de " +"marcado." -#: C/glabels.xml:1106(guilabel) -msgid "ISO A4" -msgstr "" +#: C/mancreate.page:606(code) C/mancreate.page:740(code) +#, no-wrap +msgid "x0" +msgstr "x0" -#: C/glabels.xml:1107(para) -msgid "Most of your media will be of the ISO A4 page size (210 x 297 mm)." -msgstr "" +#: C/mancreate.page:607(p) +msgid "x coordinate of circle origin (center)." +msgstr "coordenada X del círculo origen (centro)." -#: C/glabels.xml:1110(para) -msgid "Default: US Letter." -msgstr "" +#: C/mancreate.page:610(code) C/mancreate.page:745(code) +#, no-wrap +msgid "y0" +msgstr "y0" -#: C/glabels.xml:1119(title) -msgid "Object defaults" -msgstr "Opciones predeterminadas para el objeto" +#: C/mancreate.page:611(p) +msgid "y coordinate of circle origin (center)." +msgstr "coordenada Y del círculo origen (centro)." -#: C/glabels.xml:1125(para) -msgid "" -"Use these controls to set the default properties of new text objects. These " -"properties are" -msgstr "" +#: C/mancreate.page:615(p) +msgid "Radius of circle." +msgstr "Radio del círculo." -#: C/glabels.xml:1130(guilabel) -msgid "Font" -msgstr "Tipografía" +#: C/mancreate.page:628(title) +msgid "Markup-rect Node" +msgstr "Nodo Markup-rect" -#: C/glabels.xml:1131(para) +#: C/mancreate.page:630(p) msgid "" -"These controls are used to select font family and font size, and whether the " -"font should bold or in italics." +"A Markup-rect describes a markup rectangle." msgstr "" +"Un Markup-rect describe un rectángulo de " +"marcado." + +#: C/mancreate.page:641(p) +msgid "x coordinate of upper left corner of rectangle." +msgstr "coordenada X de la esquina superior izquierda del rectángulo" + +#: C/mancreate.page:645(p) +msgid "y coordinate of upper left corner of rectangle." +msgstr "coordenada Y de la esquina superior izquierda del rectángulo" + +#: C/mancreate.page:648(code) C/mancreate.page:690(code) +#, no-wrap +msgid "w" +msgstr "w" + +#: C/mancreate.page:649(p) +msgid "Width of rectangle." +msgstr "Anchura del rectángulo." + +#: C/mancreate.page:652(code) C/mancreate.page:694(code) +#, no-wrap +msgid "h" +msgstr "h" -#: C/glabels.xml:1136(guilabel) C/glabels.xml:1161(guilabel) -#: C/glabels.xml:1176(guilabel) -msgid "Color" -msgstr "Color" +#: C/mancreate.page:653(p) +msgid "Height of rectangle." +msgstr "Altura del rectángulo." -#: C/glabels.xml:1137(para) -msgid "This control selects the default text color." -msgstr "" +#: C/mancreate.page:656(code) +#, no-wrap +msgid "r" +msgstr "r" -#: C/glabels.xml:1141(guilabel) -msgid "Alignment" -msgstr "Alineación" +#: C/mancreate.page:657(p) +msgid "Radius of rounded corners of rectangle." +msgstr "Radio de las esquinas redondeadas del rectángulo." -#: C/glabels.xml:1142(para) -msgid "" -"These controls are used to select the default text alignment (left, center " -"or right)." -msgstr "" +#: C/mancreate.page:670(title) +msgid "Markup-ellipse Node" +msgstr "Nodo Markup-ellipse" -#: C/glabels.xml:1151(para) +#: C/mancreate.page:672(p) msgid "" -"Use these controls to set the default properties of lines and outlines of " -"new objects. These properties are" +"A Markup-ellipse describes a markup ellipse." msgstr "" +"Un Markup-ellipse describe una elipse de " +"marcado." -#: C/glabels.xml:1156(guilabel) -msgid "Width" -msgstr "Anchura" +#: C/mancreate.page:683(p) +msgid "x coordinate of upper left corner of ellipse." +msgstr "coordenada «x» de la esquina superior izquierda de la elipse." -#: C/glabels.xml:1157(para) -msgid "This control selects the default line width." -msgstr "" +#: C/mancreate.page:687(p) +msgid "y coordinate of upper left corner of ellipse." +msgstr "coordenada «y» de la esquina superior izquierda de la elipse." -#: C/glabels.xml:1162(para) -msgid "This control selects the default line color." -msgstr "" +#: C/mancreate.page:691(p) +msgid "Width of ellipse." +msgstr "Anchura de la elipse." -#: C/glabels.xml:1169(guilabel) -msgid "Fill" -msgstr "Relleno" +#: C/mancreate.page:695(p) +msgid "Height of ellipse." +msgstr "Altura de la elipse." + +#: C/mancreate.page:713(title) +msgid "Layout Node" +msgstr "Nodo Layout" -#: C/glabels.xml:1171(para) +#: C/mancreate.page:715(p) msgid "" -"Use these controls to set the default fill properties of new objects. These " -"properties are" +"A label node may contain multiple Layout " +"children. If labels are arranged in a simple grid pattern, only one layout " +"is needed. However, if labels are arranged in multiple grids, such as a " +"running bond pattern, multiple Layout tags can " +"be used." msgstr "" +"Un nodo de etiqueta puede contener varios hijos Layout. Si las etiquetas se colocan en un patrón de rejilla, sólo " +"se necesita un diseño. sin embargo, si las etiquetas se colocan en varias " +"rejillas, como un patrón de unión, se pueden usar múltiples etiquetas Layout." -#: C/glabels.xml:1177(para) -msgid "This control selects the default fill color." -msgstr "" +#: C/mancreate.page:721(p) +msgid "A single label can always be treated as a grid of one." +msgstr "Una única etiqueta se puede tratar con una rejilla de una." -#: C/glabels.xml:1191(title) -msgid "Document Merge Tutorial" -msgstr "" +#: C/mancreate.page:732(code) +#, no-wrap +msgid "nx" +msgstr "nx" -#: C/glabels.xml:1193(para) -msgid "" -"Document Merge (sometimes called \"Mail Merge\") is a powerful feature that " -"allows a unique label or card to be printed for each record in an external " -"data source. It is however, the most mis-understood feature of " -"gLabels. The following examples will step through " -"a couple of common tasks using the document merge feature." -msgstr "" +#: C/mancreate.page:733(p) +msgid "Number of labels/cards across in the grid (horizontal)" +msgstr "Número de etiquetas/tarjetas en la rejilla (horizontal)" -#: C/glabels.xml:1201(title) -msgid "Example 1: Name Tags Using a CSV File" -msgstr "" +#: C/mancreate.page:736(code) +#, no-wrap +msgid "ny" +msgstr "ny" -#: C/glabels.xml:1203(para) -msgid "" -"In this example we are organizing an orientation party for the new crew " -"members of our ship. We have a list of freshman crew members that we created " -"in gnumeric and exported as the following CSV " -"file. We could have created this file by using a text editor, but heck it is " -"the 23rd century." -msgstr "" +#: C/mancreate.page:737(p) +msgid "Number of labels/cards across in the grid (vertical)" +msgstr "Número de etiquetas/tarjetas en la rejilla (vertical)" -#: C/glabels.xml:1209(programlisting) -#, no-wrap +#: C/mancreate.page:741(p) msgid "" -"\n" -"Name,Department,SN\n" -"\"Jim Kirk\",Management,\"SC937-0176 CEC\"\n" -"\"Mr. Spock\",Sciences,S179-276SP\n" -"\"Leonard McCoy\",Medicine,unknown\n" -"\"Montgomery Scott\",Engineering,SE-197-54T\n" -" " +"Distance from left edge of sheet to the left edge of the left column of " +"cards/labels in the layout." msgstr "" +"Distancia desde el borde izquierdo de la hoja hasta el borde izquierdo de la " +"columna de la izquierda de las tarjetas/etiquetas en la disposición." -#: C/glabels.xml:1217(para) +#: C/mancreate.page:746(p) msgid "" -"In gLabels we have created a new " -"gLabels document using the Avery 5395 \"Name " -"Badge Labels\" template. Next we use the ObjectsMerge Properties menu item " -"to display the merge properties dialog. We use this " -"dialog to select the source type (in our case CSV) and the merge source " -"(filename) as shown." +"Distance from the top edge of sheet to the top edge of the top row of labels/" +"cards in the layout." msgstr "" +"Distancia desde el borde superior de la hoja hasta el borde superior de la " +"fila de arriba de las tarjetas/etiquetas en la disposición." -#: C/glabels.xml:1227(title) C/glabels.xml:1344(title) -#: C/glabels.xml:1460(title) -msgid "Merge properties dialog" -msgstr "" +#: C/mancreate.page:750(code) +#, no-wrap +msgid "dx" +msgstr "dx" -#. ==== End of Figure ==== -#: C/glabels.xml:1238(para) -msgid "" -"Before applying the merge source, we uncheck the first record since it is " -"only column headers from our original gnumeric " -"spreadsheet and would simply waste our first label. We could also unselect " -"any other records that we didn't want to print a label for." -msgstr "" +#: C/mancreate.page:751(p) +msgid "Horizontal pitch of grid." +msgstr "Inclinación horizontal de la rejilla." -#: C/glabels.xml:1243(para) C/glabels.xml:1361(para) -msgid "" -"We can also view each record in more detail by clicking on the appropriate " -"expander (the little triangles) as shown. Once we are satisfied with the " -"selections in this dialog we click OK to accept the " -"changes." -msgstr "" +#: C/mancreate.page:754(code) +#, no-wrap +msgid "dy" +msgstr "dy" -#: C/glabels.xml:1248(para) C/glabels.xml:1366(para) -msgid "" -"Now we start adding objects to our gLabels " -"document as shown." -msgstr "" +#: C/mancreate.page:755(p) +msgid "Vertical pitch of grid." +msgstr "Inclinación vertical de la rejilla." -#: C/glabels.xml:1252(title) C/glabels.xml:1370(title) -#: C/glabels.xml:1488(title) -msgid "Adding objects" -msgstr "" +#: C/mancreate.page:761(desc) +msgid "Layout parameters" +msgstr "Parámetros de Layout" -#. ==== End of Figure ==== -#: C/glabels.xml:1263(para) -msgid "" -"In this example we have added three text objects and a barcode object. The " -"first text object contains only simple literal text (\"Hello, my name is\"). " -"The second text object contains a single merge field (\"${1}\") " -"corresponding to the first field of a record (first column of a line) which " -"contains the new crew member's full name. The third text field contains both " -"literal text (\"Department: \") followed by a single merge field (\"${2}\") " -"corresponding to the second field or the crew member's department. The " -"barcode object is configured to use field (or key) \"3\" which contains our " -"crew member's starfleet serial number." -msgstr "" +#: C/mancreate.page:763(p) +msgid "Layout Parameters" +msgstr "Parámetros de Layout" -#: C/glabels.xml:1273(para) -msgid "" -"Now we can print our name tags by selecting the FilePrint menu item. This will " -"display print dialog as shown below." -msgstr "" +#: C/license.page:8(desc) +msgid "Legal information." +msgstr "Información legal." -#: C/glabels.xml:1280(title) -msgid "Printing name tags" -msgstr "" +#: C/license.page:11(title) +msgid "License" +msgstr "Licencia" -#. ==== End of Figure ==== -#: C/glabels.xml:1291(para) C/glabels.xml:1406(para) C/glabels.xml:1520(para) +#: C/license.page:12(p) msgid "" -"Just to make sure our labels are going to look okay, we select the " -"Print outlines option and click Print " -"Preview. This will display a print preview dialog as shown below." +"This work is distributed under a CreativeCommons Attribution-Share Alike 3.0 " +"Unported license." msgstr "" +"Este trabajo está distribuido bajo una licencia sin soporte CreativeCommons " +"Compartir-Igual 3.0." -#: C/glabels.xml:1298(title) -msgid "Name tags preview" -msgstr "" +#: C/license.page:20(p) +msgid "You are free:" +msgstr "Es libre de:" -#. ==== End of Figure ==== -#: C/glabels.xml:1309(para) -msgid "" -"Everything looks good, so we can now load up our printer with the " -"appropriate label stock, print our name tags and start beaming our guests " -"aboard." -msgstr "" +#: C/license.page:25(em) +msgid "To share" +msgstr "Compartir" -#: C/glabels.xml:1316(title) -msgid "Example 2: Address Labels Using a CSV File" -msgstr "" +#: C/license.page:26(p) +msgid "To copy, distribute and transmit the work." +msgstr "Copiar, distribuir y transmitir el trabajo." -#: C/glabels.xml:1318(para) -msgid "" -"In this example we are going to throw a party and need to print mailing " -"address labels for our invitations. We have a list of our closest friends " -"that we created in gnumeric and exported as the " -"following CSV file. It should be noted that not everyone has a middle " -"initial or a two line address." -msgstr "" +#: C/license.page:29(em) +msgid "To remix" +msgstr "Hacer obras derivadas" -#: C/glabels.xml:1324(programlisting) -#, no-wrap -msgid "" -"\n" -"LAST,FIRST,MI,ADDR1,ADDR2,CITY,STATE,ZIP\n" -",,,,,,,\n" -"Critter,Ess,S,\"123 Faux St.\",,Alexandria,VA,22310\n" -"Doe,John,,\"Apt 1X\",\"451 Mystery St.\",Trenton,NJ,08601\n" -"Summers,Joyce,,\"1630 Revello Dr\",,Sunnydale,CA,95037\n" -"McGarret,Steve,O,\"404 Piikoi Street\",,Honolulu,HI,96813\n" -"Kramer,Cosmo,,\"Apt 5B\",\"129 W. 81 St.\",\"New York\",NY,10024-7207\n" -" " -msgstr "" +#: C/license.page:30(p) +msgid "To adapt the work." +msgstr "Adaptar el trabajo." -#: C/glabels.xml:1334(para) -msgid "" -"In gLabels we have created a new " -"gLabels document using the Avery 5512 \"Address " -"Labels\" template. Next we use the ObjectsMerge Properties menu item " -"to display the merge properties dialog. We use this " -"dialog to select the source type (in our case CSV) and the merge source " -"(filename) as shown." -msgstr "" +#: C/license.page:33(p) +msgid "Under the following conditions:" +msgstr "Bajo las siguientes condiciones:" -#. ==== End of Figure ==== -#: C/glabels.xml:1355(para) +#: C/license.page:38(em) +msgid "Attribution" +msgstr "Atribución" + +#: C/license.page:39(p) msgid "" -"Before applying the merge source, we uncheck the first record since it is " -"only column headers from our original gnumeric " -"spreadsheet and would simply waste our first label. We also unselect the " -"second record which is empty (an artifact of our original spreadsheet). We " -"could also unselect any other records that we didn't want to print a label " -"for." +"You must attribute the work in the manner specified by the author or " +"licensor (but not in any way that suggests that they endorse you or your use " +"of the work)." msgstr "" +"Debe reconocer los créditos de la obra de la manera especificada por el " +"autor o el licenciador (pero no de una manera que sugiera que tiene su apoyo " +"o apoyan el uso que hace de su obra)." -#. ==== End of Figure ==== -#: C/glabels.xml:1381(para) +#: C/license.page:46(em) +msgid "Share Alike" +msgstr "Compartir igual" + +#: C/license.page:47(p) msgid "" -"In this example we have a single text object. This text object contains all " -"of our merge fields organized on multiple lines as a mailing address. Notice " -"that fields ${4} and ${5} (corresponding to ADDR1 and ADDR2) are each " -"located with no other text on their own lines. When gLabels encounters a field as the only text on a line, it will not " -"expand the line if the field is empty." +"If you alter, transform, or build upon this work, you may distribute the " +"resulting work only under the same, similar or a compatible license." msgstr "" +"Si altera, transforma o amplía esta obra para crear una obra derivada, sólo " +"puede distribuir la obra resultante bajo la misma licencia, una similar o " +"una compatible." -#: C/glabels.xml:1388(para) +#: C/license.page:53(p) msgid "" -"Now we can print our address labels by selecting the " -"FilePrint menu item. This will display print dialog as shown below." +"For the full text of the license, see the CreativeCommons website, or read the full Commons Deed." msgstr "" +"Para ver el texto completo de la licencia consulte la página web de Creative " +"Commons o lea elEscrito de Commons." -#: C/glabels.xml:1395(title) C/glabels.xml:1509(title) -msgid "Printing address labels" +#: C/labelprop.page:9(desc) +msgid "How to change the properties of a label or business card." msgstr "" +"Cómo cambiar las propiedades de una etiqueta o de una tarjeta de visita." -#: C/glabels.xml:1413(title) C/glabels.xml:1527(title) -msgid "Address labels preview" -msgstr "" +#: C/labelprop.page:25(title) +msgid "To change label properties" +msgstr "Cambiar las propiedades de la etiqueta" -#. ==== End of Figure ==== -#: C/glabels.xml:1424(para) C/glabels.xml:1538(para) +#: C/labelprop.page:27(p) msgid "" -"Everything looks good, so we can now load up our printer with the " -"appropriate label stock, print our address labels and start mailing our " -"party invitations." +"To change the media type and/or orientation of a label, choose " +"FileProperties to display the " +"Label properties dialog. Select the new media type and " +"orientation for the document, then click OK." msgstr "" +"Para cambiar el tipo de medio y/o la orientación de una etiqueta, seleccione " +"ArchivoPropiedades para mostrar el " +"diálogo Propiedades de la etiqueta. Seleccione el tipo de medio y " +"la orientación nuevas y pulse Aceptar." -#: C/glabels.xml:1431(title) +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/index.page:24(None) msgid "" -"Example 3: Address Labels Using the Evolution " -"Addressbook" +"@@image: 'figures/glabels-logo.png'; md5=0c1e32afcbae0d2fc6976020c24a0a43" msgstr "" +"@@image: 'figures/glabels-logo.png'; md5=0c1e32afcbae0d2fc6976020c24a0a43" -#: C/glabels.xml:1433(para) +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/index.page:47(None) msgid "" -"Our last party was a great success, and now we need to print mailing address " -"labels for the invitations to a new one. To simplify this, we can use the " -"Evolution addressbook, because the address data " -"of all our friends is stored there." +"@@image: 'figures/introduction-glabels-main-window.png'; " +"md5=fceca242699bb062a5ac243a5f962f3b" msgstr "" +"@@image: 'figures/introduction-glabels-main-window.png'; " +"md5=fceca242699bb062a5ac243a5f962f3b" -#: C/glabels.xml:1439(para) -msgid "" -"Depending on how your copy of gLabels was " -"packaged, this option could be unavailable. Support for the " -"Evolution addressbook will only be available if " -"the evolution-data-server and its development " -"files were present when gLabels was built. Please " -"keep this in mind if you build gLabels directly " -"from source." -msgstr "" +#: C/index.page:7(title) C/index.page:8(title) +msgid "gLabels label and business card designer" +msgstr "Diseñador de etiquetas y de tarjetas de visita gLabels." -#: C/glabels.xml:1445(para) +#: C/index.page:23(title) msgid "" -"If the gLabels package from your distribution " -"lacks this support, you may wish to contact the package maintainer or file a " -"bug against the package to request it." +"gLabels logo gLabels Manual" msgstr "" +"logo de gLabels Manual de gLabels" -#: C/glabels.xml:1450(para) +#: C/index.page:28(p) msgid "" -"In glabels we have created a new " -"gLabels document using the Avery 5512 \"Address " -"Labels\" template. Next we use the ObjectsMerge Properties menu item " -"to display the Merge properties dialog. We use this " -"dialog to select the source type (in our case Data from default " -"Evolution addressbook) as shown." +"The gLabels application is a lightweight program for creating " +"labels and business cards for the GNOME desktop environment. It is designed " +"to work with various laser/ink-jet peel-off label and business card sheets " +"that you'll find at most office supply stores." msgstr "" +"La aplicación gLabels es un programa ligero para crear etiquetas " +"y tarjetas de visita para el entorno de escritorio GNOME. Está diseñado para " +"trabajar con varias hojas de etiquetas láser/chorro de tinta que encontrará " +"en la mayoría de las tiendas de suministros de oficina." -#. ==== End of Figure ==== -#: C/glabels.xml:1471(para) +#: C/index.page:35(p) msgid "" -"Once we have chosen Data from default Evolution addressbook as our merge source, we will get a full list of its content. " -"Initially, all entries are checked. Assuming we were planning a really big " -"party, we could leave this selection untouched (but let's keep our budget in " -"mind). We will now select or unselect certain entries by clicking on the " -"appropriate checkboxes, or we could use the Select all and Unselect all buttons to activate or " -"deactivate all entries in the address book." +"gLabels can be used to design address labels, name tags, price " +"tags, cd/dvd labels, or just about anything else that is organized in a " +"regular pattern on a sheet of paper. Labels (or cards) can contain text, " +"images, lines, shapes, and barcodes. gLabels also includes a " +"document-merge feature which lets you print a unique label for each record " +"from an external data source, such as a CSV file or an Evolution " +"address book." msgstr "" +"gLabels se puede usar para diseñar etiquetas de dirección, de " +"nombre, de precio, de CD/DVD o para cualquier otra cosa organizada según un " +"patrón regular en una hoja de papel. Las etiquetas (o las tarjetas) pueden " +"contener texto, imágenes, líneas, formas y códigos de barras. gLabels también incluye la característica de combinar documentos, que le " +"permite imprimir una etiqueta única por cada registro de una fuente de datos " +"externa, tal como un archivo CSV o una libreta de direcciones de " +"Evolution." -#: C/glabels.xml:1479(para) -msgid "" -"We can also view each entry in more detail by clicking on the appropriate " -"expander (the little triangles) as shown. Once we are satisfied with the " -"selections in this dialog, we will click the OK " -"button to accept the changes." -msgstr "" +#: C/index.page:45(title) C/index.page:46(desc) +msgid "gLabels main window" +msgstr "Ventana principal de gLabels" -#: C/glabels.xml:1484(para) -msgid "Now we start adding objects to our glabels document as shown." -msgstr "" +#: C/index.page:48(p) +msgid "gLabels main window." +msgstr "Ventana principal de gLabels." -#. ==== End of Figure ==== -#: C/glabels.xml:1499(para) -msgid "" -"In this example we have a single text object again. This text object " -"contains all of our merge fields organized on multiple lines as a mailing " -"address." -msgstr "" +#: C/index.page:53(title) +msgid "Usage" +msgstr "Uso" -#: C/glabels.xml:1502(para) -msgid "" -"Now we can print our address labels by selecting the " -"FilePrint menu item. This will display the print dialog as shown below." -msgstr "" +#: C/index.page:57(title) +msgid "Document Merging" +msgstr "Fusión de documentos" -#: C/glabels.xml:1551(title) -msgid "Manually Creating New Templates" -msgstr "" +#: C/index.page:61(title) +msgid "Advanced usage" +msgstr "Uso avanzado" -#: C/glabels.xml:1553(para) +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/editprop.page:35(None) msgid "" -"Predefined templates are defined by XML files located in ${prefix}/" -"share/glabels/, where ${prefix} is usually " -"something like /usr/local or /usr " -"depending on the configuration option prefix. " -"gLabels will use all files of the form " -"*-templates.xml or *.template, " -"that it finds in ${prefix}/share/glabels/ and " -"${HOME}/.glabels/. Additional templates can be added by creating " -"additional *.template files in either of these " -"directories." +"@@image: 'figures/object-editor-sidebar.png'; " +"md5=828ffc05f69e1914595cc1e3d7401e2f" msgstr "" +"@@image: 'figures/object-editor-sidebar.png'; " +"md5=828ffc05f69e1914595cc1e3d7401e2f" -#: C/glabels.xml:1566(para) -msgid "" -"The format for these files is defined in the DTD: glabels-2.2." -"dtd. (This DTD also describes other XML formats used by " -"gLabels.)" -msgstr "" +#: C/editprop.page:9(desc) +msgid "Change the properties of objects." +msgstr "Cambiar las propiedades de objetos." -#: C/glabels.xml:1572(title) -msgid "Assumptions/caveats" -msgstr "" +#: C/editprop.page:25(title) +msgid "To edit object properties" +msgstr "Editar las propiedades del objeto" -#: C/glabels.xml:1575(para) +#: C/editprop.page:29(p) msgid "" -"A sheet contains only one size of label or card (if a sheet contains more " -"than one size of item, it can be split into multiple templates for multiple " -"pass printing)" +"Most object properties can be modified through the object editor sidebar, " +"illustrated below. To use the object editor, a single object must first be " +"selected. See ." msgstr "" +"La mayoría de las propiedades de un objeto se pueden modificar a través de " +"la barra lateral del editor de objetos. Para usar el editor de objetos, se " +"debe seleccionar primero un objeto. Consulte la ." -#: C/glabels.xml:1580(para) +#. ==== End of Figure ==== +#: C/editprop.page:40(p) msgid "" -"Distances can be expressed in units of pt, " -"in, mm, cm, " -"or pc. For example: \"1.0in\" or " -"\"2.54cm\". If no units are specified, computer points " -"(pt) will be assumed (1 pt = 1/72 " -"in = 0.352778 mm)." +"The object editor will contain a subset of the following tabbed sections, " +"depending on object type:" msgstr "" +"El editor de objetos contendrá un subconjunto de las siguientes secciones en " +"pestañas, dependiendo del tipo de objeto:" -#: C/glabels.xml:1593(title) -msgid "Template Files" -msgstr "" +#: C/editprop.page:44(title) +msgid "Text Tabbed Section (Text objects)" +msgstr "Sección de texto en pestañas (objetos de texto)" -#: C/glabels.xml:1595(programlisting) -#, no-wrap +#: C/editprop.page:46(p) msgid "" -"\n" -"<?xml version=\"1.0\"?>\n" -"<Glabels-templates>\n" -"\n" -" ...templates...\n" -"\n" -"</Glabels-templates>\n" -" " +"This section contains a small editor for changing the content of a text " +"object. It also contains a dropdown menu of available document merge keys, " +"that can be inserted into text." msgstr "" +"Esta sección contiene un pequeño editor para cambiar el contenido de un " +"objeto de texto. También contiene un menú desplegable con las claves " +"combinadas del documento disponibles, que se pueden insertar en el texto." -#: C/glabels.xml:1607(title) -msgid "Example Template" -msgstr "" +#: C/editprop.page:53(title) +msgid "Image Tabbed Section (Image objects)" +msgstr "Sección de imagen en pestañas (objetos de imagen)" -#: C/glabels.xml:1608(programlisting) -#, no-wrap +#: C/editprop.page:55(p) msgid "" -"\n" -" <Template brand=\"Avery\" part=\"8160\" size=\"US-Letter\" description=\"Mailing Labels\">\n" -" <Label-rectangle id=\"0\" width=\"189pt\" height=\"72pt\" round=\"5pt\">\n" -" <Markup-margin size=\"5pt\"/>\n" -" <Layout nx=\"3\" ny=\"10\" x0=\"11.25pt\" y0=\"36pt\" dx=\"200pt\" dy=\"72pt\"/>\n" -" </Label-rectangle>\n" -" <Alias brand=\"Avery\" part=\"5160\"/>\n" -" <Alias brand=\"Avery\" part=\"6233\"/>\n" -" </Template>\n" -" " +"This section contains a file entry with preview to select image files. The " +"browse button can be used to easily locate image files. Alternatively, a " +"document merge key can be used instead to provide a filename at print time." msgstr "" +"Esta sección contiene una entrada de archivo con vista previa para " +"seleccionar los archivos de imagen. El botón de exploración se puede usar " +"fácilmente para encontrar archivos de imágenes. Alternativamente, se puede " +"usar la clave de combinación de un documento para proporcionar un nombre de " +"archivo a la hora de imprimir." -#: C/glabels.xml:1621(title) -msgid "Template Node" -msgstr "" +#: C/editprop.page:63(title) +msgid "Data Tabbed Section (Barcode objects)" +msgstr "Sección de datos en pestañas (objetos de código de barras)" -#: C/glabels.xml:1623(para) +#: C/editprop.page:65(p) msgid "" -"A Template node describes a single stationary product. " -"It must contain one instance of any type of Label node (Label-" -"rectangle, Label-round, or Label-" -"cd). This node can be followed by zero or more Alias nodes." -msgstr "" - -#: C/glabels.xml:1637(para) C/glabels.xml:1712(para) C/glabels.xml:1789(para) -#: C/glabels.xml:1834(para) C/glabels.xml:1910(para) C/glabels.xml:1943(para) -#: C/glabels.xml:1994(para) C/glabels.xml:2037(para) C/glabels.xml:2096(para) -#: C/glabels.xml:2173(para) -msgid "Property" -msgstr "Propiedad" - -#: C/glabels.xml:1640(para) C/glabels.xml:1715(para) C/glabels.xml:1792(para) -#: C/glabels.xml:1837(para) C/glabels.xml:1913(para) C/glabels.xml:1946(para) -#: C/glabels.xml:1997(para) C/glabels.xml:2040(para) C/glabels.xml:2099(para) -#: C/glabels.xml:2176(para) -msgid "Description" -msgstr "Descripción" - -#: C/glabels.xml:1646(para) C/glabels.xml:2182(para) -msgid "brand" -msgstr "" - -#: C/glabels.xml:1648(para) -msgid "Brand or manufacturer of stationary product. E.g. \"Avery\"" -msgstr "" - -#: C/glabels.xml:1653(para) C/glabels.xml:2188(para) -msgid "part" -msgstr "part" - -#: C/glabels.xml:1655(para) -msgid "Part number or name of stationary product. E.g. \"8160\"" +"This section contains a text entry to enter literal barcode data. " +"Alternatively, a document merge key can be used to provide this data at " +"print time." msgstr "" +"Esta sección contiene una entrada de texto para introducir datos de un " +"código de barras literalmente. Alternativamente, se puede usar la clave de " +"combinación de un documento para proporcionar este dato a la hora de " +"imprimir." -#: C/glabels.xml:1660(para) C/glabels.xml:1919(para) -msgid "size" -msgstr "tamaño" +#: C/editprop.page:72(title) +msgid "Style Tabbed Section (Text objects)" +msgstr "Sección de estilo en pestañas (objetos de texto)" -#: C/glabels.xml:1662(para) -msgid "Size of sheet. E.g., \"US-Letter,\" \"A4\", ..." +#: C/editprop.page:74(p) +msgid "" +"This section contains controls to select text properties, including font " +"family, font size, font weight, color, and text justification." msgstr "" +"Esta sección contiene controles para seleccionar las propiedades del texto, " +"incluyendo la familia tipográfica, tamaño, peso, color y justificación del " +"texto." -#: C/glabels.xml:1666(para) -msgid "description" -msgstr "descripción" +#: C/editprop.page:81(title) +msgid "Style Tabbed Section (Barcode objects)" +msgstr "Sección de estilo en pestañas (objetos de código de barras)" -#: C/glabels.xml:1668(para) -msgid "Description of stationary product. E.g, \"Mailing Labels.\"" +#: C/editprop.page:83(p) +msgid "" +"This section contains controls to select barcode properties, including " +"barcode style, color, whether to print text, and whether to include a " +"checksum digit." msgstr "" +"Esta sección contiene controles para seleccionar las propiedades del código " +"de barras, incluyendo su estilo, color, si se debe imprimir texto y si se " +"debe incluir un dígito de control." -#: C/glabels.xml:1673(para) -msgid "_description" -msgstr "" +#: C/editprop.page:90(title) +msgid "Line Tabbed Section" +msgstr "Sección de línea en pestañas" -#: C/glabels.xml:1675(para) +#: C/editprop.page:92(p) msgid "" -"Translatable description of stationary product. E.g, \"Mailing Labels." -"\" (Only useful for predefined templates)" +"This section contains controls to select properties of lines and outlines. " +"These properties include line width and color." msgstr "" +"Esta sección contiene controles para seleccionar las propiedades de las " +"líneas y de los márgenes. Estas propiedades incluyen el ancho de línea y el " +"color." -#: C/glabels.xml:1681(para) C/glabels.xml:1727(para) C/glabels.xml:1857(para) -msgid "width" -msgstr "anchura" +#: C/editprop.page:98(title) +msgid "Fill Tabbed Section" +msgstr "Sección de relleno en pestañas" -#: C/glabels.xml:1683(para) -msgid "Page width. Only valid if size=\"Other\"" +#: C/editprop.page:100(p) +msgid "" +"This section contains controls to select fill properties of box and ellipse " +"objects. Currently the only fill property is fill color." msgstr "" +"Esta sección contiene controles para seleccionar las propiedades de relleno " +"de objetos de caja y de elipse. Actualmente, la única propiedad del relleno " +"es el color." -#: C/glabels.xml:1687(para) C/glabels.xml:1731(para) C/glabels.xml:1864(para) -msgid "height" -msgstr "altura" +#: C/editprop.page:107(title) +msgid "Size Tabbed Section (All except line objects)" +msgstr "Sección de tamaño en pestañas (todos excepto los objetos de línea)" -#: C/glabels.xml:1689(para) -msgid "Page height. Only valid if size=\"Other\"" +#: C/editprop.page:109(p) +msgid "" +"This section contains controls to select the width and height of an object. " +"A checkbox is provided, so that the current aspect ratio can be locked while " +"manipulating the width and height controls. Image objects also provide a " +"button to reset the size to the image's natural size (Assumes 72DPI)." msgstr "" +"Esta sección contiene controles para seleccionar la anchura y la altura de " +"un objeto. Se proporciona una casilla, por lo que la relación de aspecto " +"actual se puede bloquear mientras se manipulan los controles de anchura y " +"altura. Los objetos de imagen también proporcionan un botón para reiniciar " +"el tamaño al original de la imagen (se asumen 72DPI)" -#: C/glabels.xml:1699(title) -msgid "Label-rectangle Node" -msgstr "" +#: C/editprop.page:118(title) +msgid "Size Tabbed Section (Line objects)" +msgstr "Sección de tamaño en pestañas (objetos de línea)" -#: C/glabels.xml:1701(para) +#: C/editprop.page:120(p) msgid "" -"A Label-rectangle node describes the dimensions of a " -"single label or business card that is rectangular in shape (may have rounded " -"edges)." +"This section contains controls to select the length and angle of a line " +"object." msgstr "" +"Esta sección contiene controles para seleccionar la longitud y el ángulo de " +"un objeto de línea." + +#: C/editprop.page:126(title) +msgid "Position Tabbed Section" +msgstr "Sección de posición en pestañas" -#: C/glabels.xml:1721(para) C/glabels.xml:1798(para) C/glabels.xml:1843(para) -msgid "id" -msgstr "id" +#: C/editprop.page:128(p) +msgid "This section contains controls to change the position of an object." +msgstr "Esta sección contiene controles para cambiar la posición de un objeto." -#: C/glabels.xml:1723(para) C/glabels.xml:1800(para) C/glabels.xml:1845(para) -msgid "Reserved for future use. Should always be 0." +#: C/editprop.page:135(title) +msgid "Shadow Tabbed Section (All except barcode objects)" msgstr "" +"Sección de sombra en pestañas (todos excepto los objetos de código de barras)" -#: C/glabels.xml:1728(para) -msgid "Width of label/card" -msgstr "" +#: C/editprop.page:137(p) +msgid "This section contains controls to add a shadow to an object." +msgstr "Esta sección contiene controles para añadir sombre a un objeto." -#: C/glabels.xml:1732(para) -msgid "Height of label/card" -msgstr "" +#: C/editprop.page:146(title) +msgid "Other Manipulations of Objects" +msgstr "Otras manipulaciones de objetos" -#: C/glabels.xml:1735(para) -msgid "round" -msgstr "redondo" +#: C/editprop.page:148(p) +msgid "Objects can also be manipulated in the following ways." +msgstr "Los objetos se pueden manipular de las siguientes maneras." + +#: C/editprop.page:151(title) +msgid "Moving and Resizing Objects" +msgstr "Mover y redimensionar objetos" -#: C/glabels.xml:1737(para) +#: C/editprop.page:153(p) msgid "" -"Radius of corners. For items with square edges (business cards), the radius " -"should be 0." +"Objects can be moved by simply clicking on a selected object and dragging " +"the object to its new location. If the object is part of an aggregate " +"selection, all objects in the selection will move with the object being " +"dragged, maintaining their relative positions to one another. If no object " +"is selected, clicking on an object will create a new selection containing " +"that object. See ." msgstr "" +"Los objetos se pueden mover simplemente pulsando en un objeto seleccionado y " +"arrastrando el objeto a su nueva ubicación. Si el objeto es parte de una " +"selección agregada, todos los objetos en la selección se moverán junto al " +"objeto que se arrastra, manteniendo su posición relativa respecto a los " +"otros. Si no se selecciona ningún objeto, al pulsar sobre un objeto se " +"creará una selección nueva que contenga a ese objeto. Consulte la ." -#: C/glabels.xml:1742(para) -msgid "x_waste" +#: C/editprop.page:161(p) +msgid "" +"A selected object can be resized by clicking one of its resize handle and " +"dragging it to obtain the new size." msgstr "" +"Un objeto seleccionado se puede redimensionar pulsando una vez sobre su " +"controlador de tamaño y arrastrándolo para obtener el nuevo tamaño." -#: C/glabels.xml:1744(para) +#: C/editprop.page:167(title) +msgid "Changing Stacking Order" +msgstr "Cambiar el orden de apilamiento" + +#: C/editprop.page:169(p) msgid "" -"Amount of horizontal waste (over-print) to allow. This is useful for " -"minimizing alignment problems when using non-white backgrounds (e.g. images)." +"Stacking order refers to relative position in the z-axis of objects. That is " +"when objects overlap, which object will appear on top of the other. By " +"default, newer objects will appear above older objects. To change this " +"order, select one or more objects and choose ObjectsOrderBring to Front to raise the " +"selection to the top of the stacking order, or choose ObjectsOrderSend to Back to lower the selection " +"to the bottom of the stacking order. These menuitems are also available by " +"right-clicking the display area when there is a non-empty selection." msgstr "" +"El orden de apilamiento se refiere a la posición relativa en el eje z de los " +"objetos. Esto es cuando los objetos se solapan, qué objeto aparecerá encima " +"de otro. De manera predeterminada, los objetos nuevos aparecerán encima de " +"los objetos más antiguos. Para cambiar este orden, seleccione uno o más " +"objetos y elija ObjetosOrdenTraer al " +"frente para subir la selección hasta la parte superior del " +"orden de apilamiento, o elija ObjetosOrdenEnviar al fondo para bajar la selección hasta la " +"parte inferior del orden de apilamiento. Estos elementos de menú también " +"están disponibles pulsando con el botón derecho en el área de visualización " +"cuando no hay una selección vacía." + +#: C/editprop.page:187(title) +msgid "Rotating and Flipping Objects" +msgstr "Rotar y voltear objetos" -#: C/glabels.xml:1750(para) -msgid "y_waste" -msgstr "" +#: C/editprop.page:189(p) +msgid "" +"Objects can be rotated 90 degrees in either direction, or flipped " +"horizontally or vertically, by choosing the appropriate menuitem in the " +"ObjectsRotate/Flip sub-menu. These " +"menuitems are also available by right-clicking the display area when there " +"is a non-empty selection." +msgstr "" +"Los objetos se pueden rotar 90 grados en cualquier dirección o voltearse " +"horizontal o verticalmente eligiendo el elemento de menú adecuado en el " +"submenú ObjetosRotar/Voltear. Estos " +"elementos de menú también están disponibles pulsando con el botón derecho en " +"el área de visualización cuando no hay una selección vacía." + +#: C/editprop.page:197(p) +msgid "" +"This feature could be useful when you are designing CD box inlays. For the " +"spine caption, you need vertical aligned text. After you have created a " +"basic text box, choose ObjectsRotate/Flip to rotate the text box according to your needs." +msgstr "" +"Esta característica puede ser útil cuando diseñe carátulas interiores de CD. " +"Para el texto circular necesita texto alineado verticalmente. Después de que " +"haya creado la caja de texto básica, elija ObjetosRotar/Voltear para rotar la caja de texto de acuerdo " +"a sus necesidades." + +#: C/editprop.page:208(title) +msgid "Aligning Objects" +msgstr "Alinear objetos" -#: C/glabels.xml:1752(para) +#: C/editprop.page:210(p) msgid "" -"Amount of vertical waste (over-print) to allow. This is useful for " -"minimizing alignment problems when using non-white backgrounds (e.g. images)." -msgstr "" +"Objects can be aligned horizontally or vertically, relative to one another, " +"or relative to the center line of the label, by choosing the appropriate " +"menuitem from the ObjectsAlign Horizontal or ObjectsAlign Vertical sub-" +"menus. These menuitems are also available by right-clicking the display area " +"when there is a non-empty selection." +msgstr "" +"Los objetos se pueden alinear horizontal o verticalmente, relativo a otro o " +"relativo a la línea central de la etiqueta, eligiendo el elemento de menú " +"apropiado de los submenús ObjetosAlineación " +"horizontal o ObjetosAlineación " +"vertical. Estos elementos de menú también están disponibles " +"pulsando con el botón derecho en el área de visualización cuando no hay una " +"selección vacía." + +#: C/editprop.page:223(title) +msgid "Using the Property Bar" +msgstr "Usar la barra de propiedades" -#: C/glabels.xml:1763(title) -msgid "Label-rectangle Parameters" +#: C/editprop.page:225(p) +msgid "" +"The property bar can be used to change some common properties of objects en-" +"masse. These properties include font family, font size, font weight, text " +"alignment, text color, fill color, line or outline color, and line width. " +"The property bar also controls the defaults for these properties for any " +"newly created objects." msgstr "" +"La barra de propiedades se puede usar para cambiar en masa algunas " +"propiedades de los archivos. Estas propiedades incluyen la familia " +"tipográfica, el tamaño de la tipografía, su peso, la alineación del texto, " +"el color de relleno, de la línea o del contorno y el ancho de la línea. La " +"barra de propiedades también controla los valores predeterminados de estas " +"propiedades para cualquier objeto nuevo creado." -#: C/glabels.xml:1777(title) -msgid "Label-round Node" -msgstr "" +#: C/customtemplate.page:9(desc) +msgid "Create your own templates for stationery products." +msgstr "Crear sus propias plantillas para productos de papelería." -#: C/glabels.xml:1779(para) +#: C/customtemplate.page:25(title) +msgid "To create a custom template" +msgstr "Crear una plantilla personalizada" + +#: C/customtemplate.page:27(p) msgid "" -"A Label-round node describes the dimensions of a simple " -"round label (not a CD)." +"To create a new custom template, choose FileTemplate " +"Designer ... to display the Template Designer " +"dialog. This dialog will assist you in creating a custom template for most " +"types of label or card stationery that you may encounter." msgstr "" +"Para crear una plantilla nueva personalizada, elija ArchivoDiseñador de plantillas... para mostrar el diálogo " +"Diseñador de plantillas. Este diálogo le asistirá en la creación " +"de una plantilla personalizada para la mayoría de tipos de etiquetas o " +"tarjetas de papelería que pueda encontrar." -#: C/glabels.xml:1804(para) C/glabels.xml:1849(para) C/glabels.xml:2015(para) -msgid "radius" +#: C/customtemplate.page:34(p) +msgid "" +"If you prefer, you can create your templates manually. For this option see " +"" msgstr "" +"Si lo prefiere, puede crear sus plantillas manualmente. Para esta opción " +"consulte la " -#: C/glabels.xml:1805(para) -msgid "Radius (1/2 diameter) of label" -msgstr "" +#: C/customize.page:9(desc) +msgid "Customize gLabels to match your needs." +msgstr "Personalizar gLabels para ajustarlo a sus necesidades." -#: C/glabels.xml:1808(para) C/glabels.xml:1871(para) -msgid "waste" -msgstr "basura" +#. Use this section to describe how to customize the application. +#: C/customize.page:25(title) +msgid "Settings" +msgstr "Configuración" -#: C/glabels.xml:1810(para) C/glabels.xml:1873(para) +#: C/customize.page:26(p) msgid "" -"Amount of waste (over-print) to allow. This is useful for minimizing " -"alignment problems when using non-white backgrounds (e.g. images)." +"To configure gLabels, choose SettingsPreferences. The Preferences dialog " +"contains the following tabbed sections:" msgstr "" +"Para configurar gLabels, elija ConfiguraciónPreferencias. El diálogo Preferencias " +"contiene las siguientes secciones en pestañas:" -#: C/glabels.xml:1822(title) -msgid "Label-cd Node" -msgstr "" +#: C/customize.page:35(title) +msgid "Locale" +msgstr "Región" + +#: C/customize.page:37(title) +msgid "Units" +msgstr "Unidades" -#: C/glabels.xml:1824(para) +#: C/customize.page:38(p) msgid "" -"A Label-cd node describes the dimensions of a CD, DVD, " -"or business card CD." +"Use this radio button group to specify your preferred units. Select one of " +"the following options:" msgstr "" +"Use este grupo de botones de radio para especificar sus unidades favoritas. " +"Seleccione una de las siguientes opciones:" -#: C/glabels.xml:1850(para) -msgid "Outer radius of label" -msgstr "" +#: C/customize.page:42(gui) +msgid "Points" +msgstr "Puntos" -#: C/glabels.xml:1853(para) -msgid "hole" -msgstr "" +#: C/customize.page:43(p) +msgid "Use points (1 point = 1/72 in = 0.352778 mm)." +msgstr "Usar puntos (1 punto = 1/72 pulgadas = 0.352778 mm)." -#: C/glabels.xml:1854(para) -msgid "Radius of concentric hole" -msgstr "" +#: C/customize.page:46(gui) +msgid "Inches" +msgstr "Pulgadas" -#: C/glabels.xml:1859(para) -msgid "" -"If present, the label is clipped to the given width. (Useful for \"business " -"card CDs\")." -msgstr "" +#: C/customize.page:47(p) +msgid "Use Inches." +msgstr "Usar pulgadas." -#: C/glabels.xml:1866(para) -msgid "" -"If present, the label is clipped to the given height. (Useful for \"business " -"card CDs\")." -msgstr "" +#: C/customize.page:50(gui) +msgid "Millimeters" +msgstr "Milímetros" -#: C/glabels.xml:1884(title) -msgid "CD Label Parameters" -msgstr "" +#: C/customize.page:51(p) +msgid "Use Millimeters." +msgstr "Usar milímetros." -#: C/glabels.xml:1898(title) -msgid "Markup-margin Node" -msgstr "" +#: C/customize.page:54(p) +msgid "Default: Inches." +msgstr "Predeterminado: pulgadas." + +#: C/customize.page:58(title) +msgid "Default page size" +msgstr "Tamaño de página predeterminado" -#: C/glabels.xml:1900(para) +#: C/customize.page:59(p) msgid "" -"A Markup-margin describes a margin along all edges of a " -"label." +"Use this radio button group to specify your prefered page size. This will " +"make it quicker for you to locate media types when creating a new label or " +"card." msgstr "" +"Use este grupo de botones de radio para especificar su tamaño de página " +"favorito. Esto hará que localice más rápidamente los tipos de medios cuando " +"crea una etiqueta o una tarjeta nuevas." -#: C/glabels.xml:1921(para) +#: C/customize.page:64(gui) +msgid "US Letter" +msgstr "Carta" + +#: C/customize.page:65(p) msgid "" -"Size of the margin. I.e. the distance of the margin line from the edge of " -"the card/label." +"Most of your media will be of the US Letter page size (8.5 x 11 inches)." msgstr "" +"La mayoría de sus medios serán tendrán un tamaño de página «Carta» (8.5 x 11 " +"pulgadas)." -#: C/glabels.xml:1932(title) -msgid "Markup-line Node" -msgstr "" +#: C/customize.page:68(gui) +msgid "ISO A4" +msgstr "ISO A4" -#: C/glabels.xml:1934(para) -msgid "A Markup-line describes a markup line." +#: C/customize.page:69(p) +msgid "Most of your media will be of the ISO A4 page size (210 x 297 mm)." msgstr "" +"La mayoría de sus medios serán del tamaño de página ISO A4 (210 x 297 mm)." -#: C/glabels.xml:1952(para) C/glabels.xml:2046(para) -msgid "x1" -msgstr "x1" +#: C/customize.page:72(p) +msgid "Default: US Letter." +msgstr "Predeterminado: Carta." -#: C/glabels.xml:1954(para) -msgid "x coordinate of 1st endpoint of the line segment." -msgstr "" +#: C/customize.page:77(title) +msgid "Object Defaults" +msgstr "Opciones predeterminadas para el objeto" -#: C/glabels.xml:1958(para) C/glabels.xml:2052(para) -msgid "y1" -msgstr "y1" +#: C/customize.page:80(title) C/createnew.page:39(title) +msgid "Text" +msgstr "Texto" -#: C/glabels.xml:1960(para) -msgid "y coordinate of 1st endpoint of the line segment." +#: C/customize.page:81(p) +msgid "" +"Use these controls to set the default properties of new text objects. These " +"properties are:" msgstr "" +"Use estos controles para configurar las propiedades predeterminadas de los " +"objetos de texto nuevos. Estas propiedades son:" -#: C/glabels.xml:1964(para) -msgid "x2" -msgstr "x2" +#: C/customize.page:85(gui) +msgid "Font" +msgstr "Tipografía" -#: C/glabels.xml:1966(para) -msgid "x coordinate of 2nd endpoint of the line segment." +#: C/customize.page:86(p) +msgid "" +"These controls are used to select font family and font size, and whether the " +"font should bold or in italics." msgstr "" +"Estos controles se usan para seleccionar la familia tipográfica y su tamaño, " +"y si la tipografía debe ser negrita o cursiva." -#: C/glabels.xml:1970(para) -msgid "y2" -msgstr "" +#: C/customize.page:90(gui) C/customize.page:110(gui) +#: C/customize.page:122(gui) +msgid "Color" +msgstr "Color" -#: C/glabels.xml:1972(para) -msgid "y coordinate of 2nd endpoint of the line segment." -msgstr "" +#: C/customize.page:91(p) +msgid "This control selects the default text color." +msgstr "Este control selecciona el color predeterminado del texto." -#: C/glabels.xml:1982(title) -msgid "Markup-circle Node" -msgstr "" +#: C/customize.page:94(gui) +msgid "Alignment" +msgstr "Alineación" -#: C/glabels.xml:1984(para) -msgid "A Markup-circle describes a markup circle." +#: C/customize.page:95(p) +msgid "" +"These controls are used to select the default text alignment (left, center " +"or right)." msgstr "" +"Estos controles se usan para seleccionar la alineación predeterminada del " +"texto (izquierda, centrado o derecha)." -#: C/glabels.xml:2003(para) C/glabels.xml:2119(para) -msgid "x0" -msgstr "x0" +#: C/customize.page:101(title) C/createnew.page:56(title) +msgid "Line" +msgstr "Línea" -#: C/glabels.xml:2005(para) -msgid "x coordinate of circle origin (center)." +#: C/customize.page:102(p) +msgid "" +"Use these controls to set the default properties of lines and outlines of " +"new objects. These properties are:" msgstr "" +"Use estos controles para establecer las propiedades predeterminadas de las " +"líneas y los márgenes de los objetos nuevos. Estas propiedades son:" -#: C/glabels.xml:2009(para) C/glabels.xml:2126(para) -msgid "y0" -msgstr "y0" +#: C/customize.page:106(gui) +msgid "Width" +msgstr "Anchura" -#: C/glabels.xml:2011(para) -msgid "y coordinate of circle origin (center)." -msgstr "" +#: C/customize.page:107(p) +msgid "This control selects the default line width." +msgstr "Este control selecciona la anchura predeterminada de la línea." -#: C/glabels.xml:2016(para) -msgid "Radius of circle." -msgstr "" +#: C/customize.page:111(p) +msgid "This control selects the default line color." +msgstr "Este control selecciona el color predeterminado de la línea." -#: C/glabels.xml:2025(title) -msgid "Markup-rect Node" -msgstr "" +#: C/customize.page:117(title) +msgid "Fill" +msgstr "Relleno" -#: C/glabels.xml:2027(para) -msgid "A Markup-rect describes a markup rectangle." +#: C/customize.page:118(p) +msgid "" +"Use this control to set the default fill property of new objects. This " +"property is:" msgstr "" +"Use este control para establecer la propiedad predeterminada de relleno de " +"los objetos nuevos. Esta propiedad es:" -#: C/glabels.xml:2048(para) -msgid "x coordinate of upper left corner of rectangle." -msgstr "" +#: C/customize.page:123(p) +msgid "This control selects the default fill color." +msgstr "Este control selecciona el color predeterminado de relleno." -#: C/glabels.xml:2054(para) -msgid "y coordinate of upper left corner of rectangle." -msgstr "" +#: C/createnew.page:9(desc) +msgid "Create new objects within your document." +msgstr "Crear objetos nuevos dentro de su documento." -#: C/glabels.xml:2058(para) -msgid "w" -msgstr "w" +#: C/createnew.page:25(title) +msgid "To create new objects" +msgstr "Crear objetos nuevos" -#: C/glabels.xml:2060(para) -msgid "Width of rectangle." +#: C/createnew.page:27(p) +msgid "" +"Objects are created by choosing the appropriate selection under the " +"ObjectsCreate Object submenu or the " +"Drawing Toolbar. This will place the display area into object " +"creation mode as indicated by its cursor. To return to the default object " +"selection mode without creating an object, choose ObjectsSelect Mode. This will return the display area's " +"cursor to the default selection arrow." +msgstr "" +"Los objetos se crean eligiendo la selección adecuada en el submenú " +"ObjetosCrear Objeto o la Barra " +"de dibujo. Esto situará el área de visualización en el modo de " +"creación de objetos como indica su cursor. Para volver al modo de selección " +"de objetos predeterminado sin crear un objeto, " +"seleccioneObjetosSeleccionar modo. " +"Esto devolverá el cursor del área de visualización a la flecha de selección " +"predeterminada." + +#: C/createnew.page:35(p) +msgid "The following describes the object creation mode for each object type:" msgstr "" +"A continuación se describe el modo de creación de un objeto para cada tipo " +"de objeto:" -#: C/glabels.xml:2064(para) -msgid "h" -msgstr "h" - -#: C/glabels.xml:2066(para) -msgid "Height of rectangle." +#: C/createnew.page:40(p) +msgid "" +"Click the desired location of the upper left corner of the text object. New " +"text objects are initialized with the string \"Text.\" To change this text, " +"or other properties, see ." msgstr "" +"Pulse en la ubicación que quiera en la esquina superior izquierda del objeto " +"de texto y arrástrelo. Los objetos de texto nuevos se inicializan con la " +"cadena «Texto». Para cambiar este texto u otras propiedades, consulte la " +"." -#: C/glabels.xml:2070(para) -msgid "r" -msgstr "r" +#: C/createnew.page:47(title) +msgid "Box" +msgstr "Caja" -#: C/glabels.xml:2071(para) -msgid "Radius of rounded corners of rectangle." +#: C/createnew.page:48(p) +msgid "" +"Click the desired location of the upper left corner of the box object and " +"drag to the desired location of the lower right corner. If you simply click " +"in a single location, a square box will be created. To change properties of " +"the box object, see ." msgstr "" +"Pulse en la ubicación que quiera en la esquina superior izquierda del objeto " +"de caja y arrástrelo a la ubicación que quiere en la esquina inferior " +"derecha. Si simplemente pulsa en una única ubicación, se creará una caja " +"cuadrada. Para cambiar las propiedades del objeto de caja, consulte la ." -#: C/glabels.xml:2080(title) -msgid "Layout Node" +#: C/createnew.page:57(p) +msgid "" +"Click the desired location of one end of the line object and drag to the " +"desired location of the other end. If you simply click in a single location, " +"a diagonal line will be created. To change properties of the line object, " +"see ." msgstr "" +"Pulse en la ubicación que quiera en uno de los extremos del objeto de línea " +"y arrástrelo a la ubicación que quiere en el otro extremo. Si simplemente " +"pulsa en una única ubicación, se creará una línea. Para cambiar las " +"propiedades del objeto de línea, consulte la ." + +#: C/createnew.page:65(title) +msgid "Ellipse" +msgstr "Elipse" -#: C/glabels.xml:2082(para) +#: C/createnew.page:66(p) msgid "" -"A label node may contain multiple Layout children. If " -"labels are arranged in a simple grid pattern, only one layout is needed. " -"However, if labels are arranged in multiple grids, such as a running bond " -"pattern, multiple layout tags can be used. Note: a " -"single label can always be treated as a grid of one." +"Click the desired location of the upper left corner of the ellipse object " +"and drag to the desired location of the lower right corner. If you simply " +"click in a single location, a circle will be created. To change properties " +"of the ellipse object, see ." msgstr "" +"Pulse en la ubicación que quiera en la esquina superior izquierda del objeto " +"de elipse y arrástrelo a la ubicación que quiere en la esquina inferior " +"derecha. Si simplemente pulsa en una única ubicación, se creará un círculo. " +"Para cambiar las propiedades del objeto de elipse, consulte la ." -#: C/glabels.xml:2105(para) -msgid "nx" -msgstr "" +#: C/createnew.page:74(title) +msgid "Image" +msgstr "Imagen" -#: C/glabels.xml:2107(para) -msgid "Number of labels/cards across in the grid (horizontal)" +#: C/createnew.page:75(p) +msgid "" +"Click the desired location of the upper left corner of the image object and " +"drag to the desired location of the lower right corner. If you simply click " +"in a single location, a square will be created. New image objects are " +"initialized with a simple checkerboard image. To change this image, or other " +"properties of the image object, see ." msgstr "" +"Pulse en la ubicación que quiera en la esquina superior izquierda del objeto " +"de imagen y arrástrelo a la ubicación que quiere en la esquina inferior " +"derecha. Si simplemente pulsa en una única ubicación, se creará un cuadrado. " +"Los objetos de imagen nuevos se inicializan con una imagen cuadriculada. " +"Para cambiar esta imagen, u otras propiedades del objeto de imagen, consulte " +"la ." -#: C/glabels.xml:2112(para) -msgid "ny" -msgstr "" +#: C/createnew.page:85(title) +msgid "Barcode" +msgstr "Código de barras" -#: C/glabels.xml:2114(para) -msgid "Number of labels/cards up and down in the grid (vertical)" +#: C/createnew.page:86(p) +msgid "" +"Click the desired location of the upper left corner of the barcode object. " +"New barcode objects are initialized to a POSTNET barcode with representative " +"data. To change data and properties of the barcode object, see ." msgstr "" +"Pulse en la ubicación que quiera en la esquina superior izquierda del objeto " +"de código de barras. Los objetos de código de barras nuevos se inicializan " +"con un código de barras POSTNET con datos representativos. Para cambiar los " +"datos y las propiedades del objeto de código de barras, consulte la ." + +#: C/basicusage.page:9(desc) +msgid "Handling files and quit the application." +msgstr "Manejar archivos y salir de la aplicación." + +#: C/basicusage.page:25(title) +msgid "Basic usage" +msgstr "Uso básico" + +#: C/basicusage.page:28(title) +msgid "To open a file" +msgstr "Abrir un archivo" -#: C/glabels.xml:2121(para) +#: C/basicusage.page:30(p) msgid "" -"Distance from left edge of sheet to the left edge of the left column of " -"cards/labels in the layout." +"To open a file, choose FileOpen to " +"display the Open File dialog. Select the file that you want to " +"open, then click OK. The file is displayed in the display area of " +"the gLabels window." msgstr "" +"Para abrir un archivo, elija ArchivoAbrir para mostrar el diálogo de Abrir archivo. Seleccione el " +"archivo que quiere abrir y pulse Aceptar. El archivo se muestra " +"en el área de visualización de la ventana de gLabels." -#: C/glabels.xml:2128(para) +#: C/basicusage.page:37(p) msgid "" -"Distance from the top edge of sheet to the top edge of the top row of labels/" -"cards in the layout." +"You can also open multiple files in gLabels. The application " +"creates a separate application window for each open file." msgstr "" +"Puede abrir múltiples archivos en gLabels. La aplicación crea una " +"ventana de aplicación separada para cada archivo abierto." -#: C/glabels.xml:2133(para) -msgid "dx" +#: C/basicusage.page:41(p) +msgid "" +"The application records the paths and filenames of the most recent files " +"that you have edited and displays the files as menu items on the " +"FileRecent Files menu." msgstr "" +"La aplicación guarda las rutas y los nombres de archivo de los archivos más " +"recientes que haya editado, y muestra los archivos como elementos del menú " +"ArchivoArchivos recientes." -#: C/glabels.xml:2134(para) -msgid "Horizontal pitch of grid." -msgstr "" +#: C/basicusage.page:48(title) +msgid "To close a file" +msgstr "Cerrar un archivo" -#: C/glabels.xml:2137(para) -msgid "dy" +#: C/basicusage.page:50(p) +msgid "" +"To close the current document, choose FileClose to close the application window. If the current document is " +"modified, a confirmation dialog will be presented, allowing you to save the " +"document or cancel the command. If the window being closed is the only open " +"window, gLabels will exit." msgstr "" +"Para cerrar el documento actual, elija ArchivoCerrar para cerrar la ventana de la aplicación. Si " +"el documento actual se ha modificado, se mostrará un diálogo de " +"confirmación, permitiéndole guardar el documento o cancelar el comando. Si " +"la ventana que va a cerrar es la única que está abierta, gLabels " +"se cerrará." -#: C/glabels.xml:2138(para) -msgid "Vertical pitch of grid." -msgstr "" +#: C/basicusage.page:60(title) +msgid "To save a file" +msgstr "Guardar un archivo" -#: C/glabels.xml:2146(title) -msgid "Layout Parameters" -msgstr "" +#: C/basicusage.page:62(p) +msgid "You can save files in the following ways:" +msgstr "Puede guardar archivos de cualquiera de estas maneras:" -#: C/glabels.xml:2160(title) -msgid "Alias Node" +#: C/basicusage.page:66(p) +msgid "" +"To save changes to an existing file, choose FileSave." msgstr "" +"Para guardar los cambios a un archivo existente, elija ArchivoGuardar." -#: C/glabels.xml:2162(para) +#: C/basicusage.page:73(p) msgid "" -"An Alias node provides the name of a product with the " -"same size and layout characteristics as the parent template." +"To save a new file or to save an existing file under a new filename, choose " +"FileSave As. Enter a name for the " +"file in the Save As dialog box, then click OK." msgstr "" +"Para guardar un archivo nuevo o para guardar un archivo existente con un " +"nombre de archivo nuevo, elija ArchivoGuardar como. Introduzca un nombre para el archivo en el cuadro de diálogo " +"Guardar como y pulse Aceptar." -#: C/glabels.xml:2184(para) -msgid "The brand or manufacturer of the equivalent product." -msgstr "" +#: C/basicusage.page:84(title) +msgid "To quit gLabels" +msgstr "Salir de gLabels" -#: C/glabels.xml:2190(para) -msgid "The part number or name of the equivalent product." +#: C/basicusage.page:86(p) +msgid "" +"To quit gLabels, choose FileQuit. This is equivalent to closing all open windows. See ." msgstr "" +"Para salir de gLabels, elija ArchivoQuitar. Esto es equivalente a cerrar todas las " +"ventanas abiertas. Consulte la ." -#: C/glabels.xml:2226(title) -msgid "About gLabels" -msgstr "" +#: C/about.page:9(desc) +msgid "Information about gLabels." +msgstr "Información acerca de gLabels." + +#: C/about.page:25(title) +msgid "About gLabels" +msgstr "Acerca de gLabels" -#: C/glabels.xml:2227(para) +#: C/about.page:27(p) msgid "" -"gLabels was written by Jim Evins " -"(evins@snaught.com). To find more information about " -"gLabels, please visit the gLabels Web page." +"gLabels was written by Jim Evins. To find more information about gLabels, " +"please visit the gLabels Web page." msgstr "" +"Jim Evins escribió " +"gLabels. Para obtener más información acerca de gLabels, visite la página web " +"degLabels." -#: C/glabels.xml:2232(para) +#: C/about.page:31(p) msgid "" "To report a bug or make a suggestion regarding this application or this " -"manual, follow the directions at the gLabels Contact " -"Page." +"manual, follow the directions at the gLabels Contact Page." msgstr "" +"Para informar de un error o hacer una sugerencia acerca de esta aplicación o " +"este manual, siga las indicaciones en la página de contacto de gLabels." -#: C/glabels.xml:2238(para) +#: C/about.page:37(p) msgid "" "This program is distributed under the terms of the GNU General Public " -"license as published by the Free Software Foundation; either version 2 of " +"license as published by the Free Software Foundation; either version 3 of " "the License, or (at your option) any later version. A copy of this license " -"can be found at this link, or " +"can be found at this link, or " "in the file COPYING included with the source code of this program." msgstr "" -"Este programa se distribuye bajo los términos de la Licencia Pública General " -"GNU tal como la publica la Free Software Foundation; en cualquiera de las " -"versiones 2 de la Licencia o (a su elección) cualquier versión posterior. " -"Puede encontrar una copia de esta licencia en este enlace, o en el archivo COPYING incluido con el código " +"Este programa se distribuye bajo los términos de la Licencia Pública General " +"GNU tal como la publica la Free Software Foundation; tanto en la versión 3 " +"de la Licencia, o (a su elección) cualquier otra versión posterior. Puede " +"encontrarse una copia de esta licencia en este enlace, o en el archivo COPYING incluido con el código " "fuente de este programa." #. Put one translator per line, in the form of NAME , YEAR1, YEAR2 -#: C/glabels.xml:0(None) +#: C/index.page:0(None) msgid "translator-credits" -msgstr "Jorge González , 2010" +msgstr "" +"Daniel Mustieles , 2010\n" +"Jorge González , 2010" + +#~ msgid "@@image: 'figures/merge-ex3-1.png'; md5=THIS FILE DOESN'T EXIST" +#~ msgstr "@@image: 'figures/merge-ex3-1.png'; md5=THIS FILE DOESN'T EXIST" + +#~ msgid "@@image: 'figures/merge-ex3-2.png'; md5=THIS FILE DOESN'T EXIST" +#~ msgstr "@@image: 'figures/merge-ex3-2.png'; md5=THIS FILE DOESN'T EXIST" + +#~ msgid "@@image: 'figures/merge-ex3-4.png'; md5=THIS FILE DOESN'T EXIST" +#~ msgstr "@@image: 'figures/merge-ex3-4.png'; md5=THIS FILE DOESN'T EXIST" + +#~ msgid "" +#~ "@@image: 'figures/merge-ex2-4.png'; md5=67391b05421901a36d276736c1f664dd" +#~ msgstr "" +#~ "@@image: 'figures/merge-ex2-4.png'; md5=67391b05421901a36d276736c1f664dd" + +#~ msgid "" +#~ "@@image: 'figures/merge-ex1-1.png'; md5=731c7bcd2ff66d18300e87f1c3d9ec0e" +#~ msgstr "" +#~ "@@image: 'figures/merge-ex1-1.png'; md5=731c7bcd2ff66d18300e87f1c3d9ec0e" + +#~ msgid "" +#~ "@@image: 'figures/merge-ex1-2.png'; md5=27ed61afe77cda96c208fcda51990c89" +#~ msgstr "" +#~ "@@image: 'figures/merge-ex1-2.png'; md5=27ed61afe77cda96c208fcda51990c89" + +#~ msgid "" +#~ "@@image: 'figures/merge-ex1-4.png'; md5=9cec0c679929cc904f81f435cd3bd060" +#~ msgstr "" +#~ "@@image: 'figures/merge-ex1-4.png'; md5=9cec0c679929cc904f81f435cd3bd060" + +#~ msgid "Template Node" +#~ msgstr "Nodo plantilla" + +#~ msgid "Meta Node" +#~ msgstr "Metanodo" + +#~ msgid "Layout parameters" +#~ msgstr "Parámetros de la apariencia" + +#~ msgid "Layout Parameters" +#~ msgstr "Parámetros de la apariencia" + +#~ msgid "heigth" +#~ msgstr "altura" + +#~ msgid "These controls are selects the default fill color." +#~ msgstr "Estos controles seleccionan el color de relleno predeterminado." diff --git a/help/es/glabels.xml b/help/es/glabels.xml deleted file mode 100644 index 50b0c282..00000000 --- a/help/es/glabels.xml +++ /dev/null @@ -1,2227 +0,0 @@ - - - - - -gLabels"> -]> - - -
      - - - - Manual de <application>gLabels</application> V2.2.6 - - Manual de usuario para el programa de creación de etiquetas y tarjetas de visita gLabels - - - 2003-2009 - Jim Evins - 2010Jorge González (jorgegonz@svn.gnome.org) - - Jim Evins - - - - Se otorga permiso para copiar, distribuir y/o modificar este documento bajo los términos de la Licencia de Documentación Libre de GNU, Versión 1.1 o cualquier otra versión posterior publicada por la Free Software Foundation; sin Secciones Invariantes ni Textos de Cubierta Delantera ni Textos de Cubierta Trasera. Puede encontrar una copia de la licencia GFDL en este enlace o en el archivo COPYING-DOCS distribuido con este manual. - Este manual es parte de una colección de manuales de GNOME distribuido bajo la GFDL. Si quiere distribuir este manual por separado de la colección, puede hacerlo añadiendo una copia de la licencia al manual, tal como se describe en la sección 6 de la licencia. - - Muchos de los nombres utilizados por las empresas para distinguir sus productos y servicios se consideran marcas comerciales. Cuando estos nombres aparezcan en la documentación de GNOME, y siempre que se haya informado a los miembros del Proyecto de documentación de GNOME de dichas marcas comerciales, los nombres aparecerán en mayúsculas o con las iniciales en mayúsculas. - - ESTE DOCUMENTO Y LAS VERSIONES MODIFICADAS DEL MISMO SE PROPORCIONAN SEGÚN LAS CONDICIONES ESTABLECIDAS EN LA LICENCIA DE DOCUMENTACIÓN LIBRE DE GNU (GFDL) Y TENIENDO EN CUENTA QUE: - - EL DOCUMENTO SE OFRECE «TAL CUAL», SIN GARANTÍA DE NINGÚN TIPO, EXPRESA O IMPLÍCITA, INCLUYENDO, PERO SIN LIMITARSE A ELLA, LA GARANTÍA DE QUE EL DOCUMENTO O LA VERSIÓN MODIFICADA DEL MISMO ESTÉ LIBRE DE DEFECTOS, GARANTÍA DE COMERCIALIZACIÓN, APTITUD PARA UN USO EN PARTICULAR O INCUMPLIMIENTO. TODOS LOS RIESGOS RELATIVOS A LA CALIDAD, EXACTITUD O RENDIMIENTO DEL DOCUMENTO O LA VERSIÓN MODIFICADA DEL MISMO SON ASUMIDOS POR VD. EN CASO DE QUE EL DOCUMENTO O LA VERSIÓN MODIFICADA SEAN DEFECTUOSOS, VD. (NO EL ESCRITOR ORIGINAL NI EL AUTOR NI NINGUNO DE LOS COLABORADORES) ASUMIRÁ EL COSTE DE CUALQUIER MANTENIMIENTO, REPARACIÓN O CORRECCIÓN QUE SEAN NECESARIOS. ESTA RENUNCIA DE GARANTÍA CONSTITUYE UNA PARTE ESENCIAL DE ESTA LICENCIA NO SE AUTORIZA EL USO DE NINGÚN DOCUMENTO NI VERSIÓN MODIFICADA DEL MISMO, SALVO EN LAS CONDICIONES ESPECIFICADAS EN ESTA RENUNCIA; Y - - - EN NINGUNA CIRCUNSTANCIA NI SEGÚN NINGÚN ARGUMENTO LEGAL, SEA POR MOTIVOS CULPOSOS (INCLUIDA LA NEGLIGENCIA), CONTRACTUALES O DE OTRO TIPO, NI EL AUTOR, NI EL REDACTOR INICIAL, NI CUALQUIER COLABORADOR, NI CUALQUIER DISTRIBUIDOR DEL DOCUMENTO O VERSIÓN MODIFICADA DEL MISMO, NI CUALQUIER PROVEEDOR DE CUALQUIERA DE DICHAS PARTES, SERÁN RESPONSABLES, ANTE NINGÚN TERCERO, DE NINGÚN DAÑO O PERJUICIO DIRECTO, INDIRECTO, ESPECIAL, INCIDENTAL O CONSIGUIENTE DE NINGÚN TIPO, INCLUIDOS, SIN LIMITACIÓN, LOS DAÑOS POR PÉRDIDA DE FONDO DE COMERCIO, INTERRUPCIÓN DEL TRABAJO, FALLO O MAL FUNCIONAMIENTO INFORMÁTICO, NI CUALQUIER OTRO DAÑO O PÉRDIDA DERIVADOS DEL USO DEL DOCUMENTO Y LAS VERSIONES MODIFICADAS DEL MISMO, O RELACIONADO CON ELLO, INCLUSO SI SE HABÍA COMUNICADO A AQUELLA PARTE LA POSIBILIDAD DE TALES DAÑOS. - - - - - - - - - - Jim - Evins - - - - - - - - - - - - - - - - - - - - - Manual de gLabels V2.2.6 - Octubre de 2009 - - Mario Blättermann mariobl@gnome.org - Jim Evins - - - - Manual de gLabels V2.2 - Diciembre de 2007 - - Jim Evins evins@snaught.com - Jim Evins - - - - - Este manual describe la versión 2.2.6 de gLabels. - - Comentarios - To report a bug or make a suggestion regarding the gLabels application or - this manual, follow the directions in the gLabels Contact Page. - - - - - - - gLabels - - - glabels - - - - - - - - - - Introducción - - The gLabels application is a lightweight program for creating labels - and business cards for the GNOME desktop - environment. It is designed to work with various laser/ink-jet - peel-off label and business card sheets that you'll find at most - office supply stores. - - - - - - - - - - - Inicio - - - Para iniciar <application>gLabels</application> - You can start gLabels in the following ways: - - - - Menú Aplicaciones - - Choose - - Office - gLabels - . - - - - Línea de comandos - - Type glabels, - then press Return: - - - - - - - When You Start <application>gLabels</application> - When you start gLabels, the following window is displayed. - - -
      - Ventana de inicio de <application>gLabels</application> - - - - - - -
      - - - - - - The gLabels window contains the following elements: - - - - Barra de menú. - - The menus on the menubar contain all of the commands you - need to create and edit labels and business cards in - gLabels. - - - - Barra de herramientas principal. - - The main toolbar contains a subset of common File and Edit - commands that you can access from the menubar. - - - - Drawing toolbar. - - The drawing toolbar contains a subset of commands for - editing the current gLabels document. - - - - Área de visualización. - - The display area is the main drawing interface to - gLabels. - - - - Object sidebar. - - The object sidebar provides an interface for viewing and - editing all properties of an individual object. - - - - Barra de herramientas de propiedades. - - The properties toolbar contains a set of tools to - manipulate the properties of selected objects and set default - properties for new objects. - - - - Barra de estado. - - The statusbar displays information about current - gLabels activity and contextual - information about the menu items. - - - -
      -
      - - - - - - - - Uso - - - - To Create a New Label or Card - - To create a new label or business card, choose - File New - - to display the New Label or Card dialog. Select - the media type and orientation for the new document, - then click OK. A new document is - displayed in the display area of the gLabels - window. - - If your particular media type is missing from this dialog, - see - - - - - - Abrir un archivo - - To open a file, choose - File Open - to display the Open File dialog. - Select the file that you want to open, then click - OK. The file is displayed in the display area - of the gLabels window. - - You can also open multiple files in - gLabels. The application creates a separate - application window for each open file. - - The application records the paths and filenames of the - most recent files that you have edited and displays the files as menu - items on the - FileRecent Files - menu. - - - - - - To Open Multiple Files from a Command Line - - You can run gLabels from a command line - and open a single file or multiple files. To open multiple files from - a command line, type the following command, then press - Return: - - glabels - file1.glabels file2.glabels file3.glabels - - - When the application starts, the files that you specify are - displayed in separate gLabels windows. - - - - - - Guardar un archivo - - Puede guardar archivos de cualquiera de estas maneras: - - - - - Para guardar los cambios a un archivo existente, elija ArchivoGuardar. - - - - - To save a new file or to save an existing file under a new - filename, choose File - Save As . Enter a name - for the file in the Save As dialog box, - then click OK. - - - - - - - - - Cambiar las propiedades de una etiqueta - - To change the media type and/or orientation of a label, choose - File - Properties to display the - Label properties dialog. Select the - new media type and orientation for the document, then click - OK. - - - - - - To Create a Custom Template - - To create a new custom template, choose - File - Template Designer ... - to display the Template Designer dialog. - This dialog will assist you in creating a custom template for - most types of label or card stationery that you may encounter. - - If you prefer, you can create your templates manually. - For this option see - - - - - - - Cerrar un archivo - - To close the current document, choose - File - Close to close the application - window. If the current document is modified, a confirmation dialog - will be presented, allowing you to save the document or cancel - the command. If the window being closed is the only open window, - gLabels will exit. - - - - - - To Quit <application>gLabels</application> - - To quit gLabels, choose - File - Quit . This is equivalent - to closing all open windows. See - . - - - - - - To Print Labels or Cards - - To print labels or cards, choose - File Print - to display the Print dialog. - Once print options have been selected, click Print - to print the labels or cards. To simply preview the results, - click Print Preview instead. - - The Print dialog allows you to specify the - following print options: - - - The Labels Tab of the Print Dialog - - - - - Print control (Simple) - - - For simple labels or cards (no document merge), the labels - tabbed section contains the following copy controls. - - - - - - The number of copies of the label can be selected by - choosing the number of full sheets to print, or a specific - subset of labels on a single sheet. - - The mini-preview can also be used to graphically select - the subset of labels by clicking the first label on the - mini-preview and dragging to the last label. - - - - - - Print control (Merge) - - - For labels or cards using the document merge (also known - as "mail merge") capability, the labels tabbed section contains - the following merge controls instead of copy controls. - - - - - - The total number of labels or cards printed is the - product of the number of records in the merge source and - the number of copies selected. If multiple copies are - selected, these can be either collated (copies of the - same record grouped together) or un-collated (one copy - each record is printed before next copy). - - Printing can begin on any label on the first sheet. - This can be selected with the Start on - label spinbutton. - - The mini-preview can also be used to graphically select - this first label, by clicking on the desired label in the - mini-preview. - - - - - Opciones - - The following options can also be selected. - - - print outlines - Print outlines of labels. This option is useful for - dry-runs, to test printer alignment. - - - print in reverse - Prints the labels as mirror images. This option is - useful for printing on clear labels that will be viewed - from the reverse side (e.g. in a car window). - - - print crop marks - Prints crop marks along the edge of the sheet. - This option is useful for printing on blank stock, to - be cut after printing. This option does not work well - with all templates. - - - - - - - - - - - - To Create New Objects - - Objects are created by choosing the appropriate selection under - the Objects - Create Object submenu or - the Drawing Toolbar. This will place the - display area into object creation mode as indicated by its cursor. - To return to the default object selection mode without creating - an object, choose Objects - Select Mode . This will - return the display area's cursor to the default selection arrow. - - The following describes the object creation mode for each object - type: - - - - - Texto - - Click the desired location of the upper left corner of the - text object. New text objects are initialized with the - string "Text." To change this text, or other properties, see - . - - - - - Caja - - Click the desired location of the upper left corner of the - box object and drag to the desired location of the lower right - corner. If you simply click in a single location, a square - box will be created. To change properties of the box object, see - . - - - - - Línea - - Click the desired location of one end of the - line object and drag to the desired location of the other end. - If you simply click in a single location, a diagonal line - will be created. To change properties of the line object, see - . - - - - - Elipse - - Click the desired location of the upper left corner of the - ellipse object and drag to the desired location of the lower - right corner. If you simply click in a single location, a circle - will be created. To change properties of the ellipse object, see - . - - - - - Imagen - - Click the desired location of the upper left corner of the - image object and drag to the desired location of the lower - right corner. If you simply click in a single location, a square - will be created. New image objects are initialized with a - simple checkerboard image. To change this image, or other - properties of the image object, see - . - - - - - Barcode - - Click the desired location of the upper left corner of the - barcode object. New barcode objects are initialized to a - POSTNET barcode with representative data. To change data - and properties of the barcode object, see - . - - - - - - - - - - - To Select Objects - - A prerequisite for performing operations on objects is the - selection of individual objects or groups of objects. The - display area must be in the object selection mode to create new - selections, as indicated by an arrow cursor. The object - selection mode is selected by the - Objects - Select Mode menu item, - or the corresponding command on the Drawing - Toolbar. - - - - - Selecting a single object - - A single object can be selected simply by clicking - on the desired object in the display area. - Once selected the object will be highlighted with a set of - resizing handles. - - - - - Aggregate object selections - - Multiple objects can be selected by first selecting the first - object as above and then by holding the Ctrl - key while selecting additional objects. - Individual objects can be added to an existing selection - at any time by holding the Ctrl key while - selecting the desired objects. All objects can also be - selected by using the Edit - Select All - menu item. All objects in an aggregate object selection will be - highlighted. - - - - - Area selections - - Multiple objects can also be selected by clicking an empty - area and dragging to form a rectangular area. When released, - all objects contained in the area will form an aggregate - selection. An area selection can be used to add to an existing - selection by holding the Ctrl key while - performing the selection. - - - - - Unselecting objects - - Individual objects can be removed from an existing - selection by holding the Ctrl key while - clicking on a previously selected object. An entire selection - can be dismissed by using the - Edit Un-select All - menu item - or by simply clicking any empty space in the display area. - Once an object is unselected its highlight is removed. - - - - - - - - - - Clipboard Commands - - Object selections can be manipulated using the standard clipboard - operations Cut, - Copy, Paste, - and Delete. - - - - - - - - CtrlX - - Cortar - - - - Moves selected objects to the clipboard. The objects are - then available for pasting back into the current document or - another document. - - - - - - - - CtrlC - - Copiar - - - - Copies selected objects to the clipboard without deleting - them. The objects are then available for pasting back into - the current document or another document. - - - - - - - - CtrlV - - Pegar - - - - Pastes objects from the clipboard into the current document. - gLabels can only paste objects from - another gLabels document. - - - - - - - - Borrar - - Borrar - - - - Deletes selected objects without placing them on the - clipboard. - - - - - - - - - - To Edit Object Properties - - Most object properties can be modified through the object - editor sidebar, illustrated below. To use the object editor, - a single object must first be selected. See - . - - -
      - Object Editor Sidebar - - - - - - -
      - - - The object editor will contain a subset of the following - tabbed sections, depending on object type: - - - Text Tabbed Section (Text objects) - - This section contains a small editor for changing the content - of a text object. It also contains a dropdown menu of available - document merge keys, that can be inserted into text. - - - - - Image Tabbed Section (Image objecs) - - This section contains a file entry with preview to select - image files. The browse button can be used to easily locate - image files. Alternatively, a document merge key can be used - instead to provide a filename at print time. - - - - - Data Tabbed Section (Barcode objecs) - - This section contains a text entry to enter literal barcode - data. Alternatively, a document merge key can be used to - provide this data at print time. - - - - - Style Tabbed Section (Text objects) - - This section contains controls to select text properties, - including font family, font size, font weight, color, and - text justification. - - - - - Style Tabbed Section (Barcode objecs) - - This section contains controls to select barcode properties, - including barcode style, color, whether to print text, and whether - to include a checksum digit. - - - - - Line Tabbed Section - - This section contains controls to select properties of lines - and outlines. These properties include line width and color. - - - - - Fill Tabbed Section - - This section contains controls to select fill properties of box - and ellipse objects. Currently the only fill property is fill - color. - - - - - Size Tabbed Section (All except line objects) - - This section contains controls to select the width and height - of an object. A checkbox is provided, so that the current aspect - ratio can be locked while manipulating the width and height controls. - Image objects also provide a button to reset the size to the - image's natural size (Assumes 72DPI). - - - - - Size Tabbed Section (Line objects) - - This section contains controls to select the length and angle - of a line object. - - - - - Position Tabbed Section - - This section contains controls to change the position of an - object. - - - - - - Shadow Tabbed Section (All except image and barcode objects) - - This section contains controls to add a shadow to an object. - - - - -
      - - - - Other Manipulations of Objects - - Objects can also be manipulated in the following ways. - - - Moving and Resizing Objects - - Objects can be moved by simply clicking on a selected - object and dragging the object to its new location. If the object - is part of an aggregate selection, all objects in the selection - will move with the object being dragged, maintaining their relative - positions to one another. If no object is selected, clicking on - an object will create a new selection containing that object. - See . - - A selected object can be resized by clicking one of its resize - handle and dragging it to obtain the new size. - - - - - Changing Stacking Order - - Stacking order refers to relative position in the z-axis of - objects. That is when objects overlap, which object will appear - on top of the other. By default, newer objects will appear above - older objects. To change this order, select one or more objects - and choose Objects - Order - Bring to Front - to raise the selection to the top of the stacking - order, or choose Objects - Order - Send to Back - to lower the selection to the bottom of the - stacking order. These menuitems are also available by right-clicking - the display area when there is a non-empty selection. - - - - - Rotating and Flipping Objects - - Objects can be rotated 90 degrees in either direction, or flipped - horizontally or vertically, by choosing the appropriate menuitem - in the Objects - Rotate/Flip sub-menu. These - menuitems are also available by right-clicking - the display area when there is a non-empty selection. - - - - - Aligning Objects - - Objects can be aligned horizontally or vertically, relative to - one another, or relative to the center line of the label, by - choosing the appropriate menuitem from the - Objects - Align Horizontal - or Objects - Align Horizontal sub-menus. - These menuitems are also available by right-clicking - the display area when there is a non-empty selection. - - - - - Using the Property Bar - - The property bar can be used to change some common properties - of objects en-masse. These properties include font family, font - size, font weight, text alignment, text color, fill color, line - or outline color, and line width. The property bar also controls - the defaults for these properties for any newly created objects. - - - - - - - - - - - Performing a Document Merge - - Document Merge (sometimes called "Mail Merge") is a powerful - feature that allows a unique label or card to be printed for each - record in an external data source. - - The first step to performing a document merge is to prepare - a source document that contains your merge data. This data could - be mailing addresses or any other data that you wish to create - unique labels or cards for. Currently back-ends only exist for - text files and the evolution data server -- others are planned. The currently - supported text-file format is very simple: each line is a record; - fields are delimited by commas (CSV), tabs, or colons; and newlines - can be embedded into fields by using the "\n" entity. This file - could be created using any text editor or could be created by - another program or script. A common way of creating CSV files is - to export them from a spreadsheet program. - - A label must then be configured to "point at" this data file. - To configure the merge properties of a document, choose - Objects - Merge Properties menu item - to display the merge properties dialog. This - dialog is used to select the exact data file format and file - name (location) of the merge data. - - Finally, once the label has been configured for a data file, - field keys can be inserted into text objects and used as source - or data for barcode objects and image filenames for image objects. - See for more information - on using merge data for these object types. - - Now that your label is configured, gLabels will print a unique - label for each record in your source document -- substituting fields - from each record for field keys in the all text, barcode, and - image objects. - - See for a detailed - tutorial on the document merge feature. - - - - - -
      - - - - - - - - Configuración - To configure gLabels, choose - - Settings - Preferences - . The - Preferences dialog contains the following tabbed - sections: - - - - - - - - - - - - - - Región - - - - Unidades - - Use this radio button group to specify your preferred units. - Select one of the following options: - - - - Puntos - Use points (1 point = 1/72 in = 0.352778 mm). - - - - Pulgadas - Use inches. - - - - Milímetros - Use millimeters. - - - Default: - Inches. - - - - - Default page size - - Use this radio button group to specify your preferred page size. - This will make it quicker for you to locate media types when creating a new - label or card. - - - - US Letter - Most of your media will be of the US Letter page size (8.5 x 11 inches). - - - - ISO A4 - Most of your media will be of the ISO A4 page size (210 x 297 mm). - - - Default: - US Letter. - - - - - - - - Opciones predeterminadas para el objeto - - - - Texto - - Use these controls to set the default properties of new text objects. - These properties are - - - - Tipografía - These controls are used to select font family and font size, and - whether the font should bold or in italics. - - - - Color - This control selects the default text color. - - - - Alineación - These controls are used to select the default text alignment (left, center or right). - - - - - - - Línea - - Use these controls to set the default properties of lines and outlines of - new objects. These properties are - - - - Anchura - This control selects the default line width. - - - - Color - This control selects the default line color. - - - - - - - Relleno - - Use these controls to set the default fill properties of - new objects. These properties are - - - - Color - This control selects the default fill color. - - - - - - - - - - - - - - Document Merge Tutorial - - Document Merge (sometimes called "Mail Merge") is a powerful - feature that allows a unique label or card to be printed for each - record in an external data source. It is however, the most mis-understood - feature of gLabels. The following examples - will step through a couple of common tasks using the document merge - feature. - - - Example 1: Name Tags Using a CSV File - - In this example we are organizing an orientation party for the new - crew members of our ship. We have a list of freshman crew members that we - created in gnumeric and exported as the following - CSV file. We could have created this file by using a text editor, but heck it - is the 23rd century. - - -Name,Department,SN -"Jim Kirk",Management,"SC937-0176 CEC" -"Mr. Spock",Sciences,S179-276SP -"Leonard McCoy",Medicine,unknown -"Montgomery Scott",Engineering,SE-197-54T - - - In gLabels we have created a new gLabels - document using the Avery 5395 "Name Badge Labels" template. Next we use the - Objects - Merge Properties menu item to display - the merge properties dialog. We use this dialog to - select the source type (in our case CSV) and the merge source (filename) as - shown. - - -
      - Merge properties dialog - - - - - - -
      - - - Before applying the merge source, we uncheck the first record since it is only - column headers from our original gnumeric spreadsheet - and would simply waste our first label. We could also unselect any other records - that we didn't want to print a label for. - - We can also view each record in more detail by clicking on the appropriate - expander (the little triangles) as shown. Once we are satisfied with the - selections in this dialog we click OK to accept the - changes. - - Now we start adding objects to our gLabels document as shown. - - -
      - Adding objects - - - - - - -
      - - - In this example we have added three text objects and a barcode object. The - first text object contains only simple literal text ("Hello, my name is"). The - second text object contains a single merge field ("${1}") corresponding to the - first field of a record (first column of a line) which contains the new crew - member's full name. The third text field contains both literal text - ("Department: ") followed by a single merge field ("${2}") corresponding to - the second field or the crew member's department. The barcode object is - configured to use field (or key) "3" which contains our crew member's - starfleet serial number. - - Now we can print our name tags by selecting the - File - Print menu item. This will display - print dialog as shown below. - - -
      - Printing name tags - - - - - - -
      - - - Just to make sure our labels are going to look okay, we select the - Print outlines option and click - Print Preview. This will display a print preview dialog - as shown below. - - -
      - Name tags preview - - - - - - -
      - - - Everything looks good, so we can now load up our printer with - the appropriate label stock, print our name tags and start beaming our guests - aboard. - -
      - - - Example 2: Address Labels Using a CSV File - - In this example we are going to throw a party and need to print mailing - address labels for our invitations. We have a list of our closest friends - that we created in gnumeric and exported as the - following CSV file. It should be noted that not everyone has a middle initial or - a two line address. - - -LAST,FIRST,MI,ADDR1,ADDR2,CITY,STATE,ZIP -,,,,,,, -Critter,Ess,S,"123 Faux St.",,Alexandria,VA,22310 -Doe,John,,"Apt 1X","451 Mystery St.",Trenton,NJ,08601 -Summers,Joyce,,"1630 Revello Dr",,Sunnydale,CA,95037 -McGarret,Steve,O,"404 Piikoi Street",,Honolulu,HI,96813 -Kramer,Cosmo,,"Apt 5B","129 W. 81 St.","New York",NY,10024-7207 - - - In gLabels we have created a new gLabels - document using the Avery 5512 "Address Labels" template. Next we use the - Objects - Merge Properties menu item to display - the merge properties dialog. We use this dialog to - select the source type (in our case CSV) and the merge source (filename) as - shown. - - -
      - Merge properties dialog - - - - - - -
      - - - Before applying the merge source, we uncheck the first record since it is only - column headers from our original gnumeric spreadsheet - and would simply waste our first label. We also unselect the second record - which is empty (an artifact of our original spreadsheet). We could also unselect - any other records that we didn't want to print a label for. - - We can also view each record in more detail by clicking on the appropriate - expander (the little triangles) as shown. Once we are satisfied with the - selections in this dialog we click OK to accept the - changes. - - Now we start adding objects to our gLabels document as shown. - - -
      - Adding objects - - - - - - -
      - - - In this example we have a single text object. This text object contains - all of our merge fields organized on multiple lines as a mailing address. - Notice that fields ${4} and ${5} (corresponding to ADDR1 and ADDR2) are each - located with no other text on their own lines. When - gLabels encounters a field as the only text on - a line, it will not expand the line if the field is empty. - - Now we can print our address labels by selecting the - File - Print menu item. This will display - print dialog as shown below. - - -
      - Printing address labels - - - - - - -
      - - - Just to make sure our labels are going to look okay, we select the - Print outlines option and click - Print Preview. This will display a print preview dialog - as shown below. - - -
      - Address labels preview - - - - - - -
      - - - Everything looks good, so we can now load up our printer with - the appropriate label stock, print our address labels and start mailing - our party invitations. - -
      - - - Example 3: Address Labels Using the <application>Evolution</application> Addressbook - - Our last party was a great success, and now we need to print mailing - address labels for the invitations to a new one. To simplify this, we can use - the Evolution addressbook, because the address - data of all our friends is stored there. - - - Depending on how your copy of gLabels was packaged, this option could be unavailable. - Support for the Evolution addressbook will only be available - if the evolution-data-server and its development files - were present when gLabels was built. Please keep this in mind if you build gLabels - directly from source. - - If the gLabels package from your distribution lacks this support, - you may wish to contact the package maintainer or file a bug against the package - to request it. - - - In glabels we have created a new gLabels - document using the Avery 5512 "Address Labels" template. Next we use the - Objects - Merge Properties menu item to display - the Merge properties dialog. We use this dialog to - select the source type (in our case Data from default Evolution - addressbook) as shown. - - -
      - Merge properties dialog - - - - - - -
      - - - Once we have chosen Data from default Evolution addressbook - as our merge source, we will get a full list of its content. Initially, - all entries are checked. Assuming we were planning a really big party, we could - leave this selection untouched (but let's keep our budget in mind). We will now select or - unselect certain entries by clicking on the appropriate checkboxes, or we could use - the Select all and Unselect all - buttons to activate or deactivate all entries in the address book. - - We can also view each entry in more detail by clicking on the appropriate - expander (the little triangles) as shown. Once we are satisfied with the - selections in this dialog, we will click the OK button to - accept the changes. - - Now we start adding objects to our glabels document as shown. - - -
      - Adding objects - - - - - - -
      - - - In this example we have a single text object again. This text object contains - all of our merge fields organized on multiple lines as a mailing address. - - Now we can print our address labels by selecting the - File - Print menu item. This will display - the print dialog as shown below. - - -
      - Printing address labels - - - - - - -
      - - - Just to make sure our labels are going to look okay, we select the - Print outlines option and click - Print Preview. This will display a print preview dialog - as shown below. - - -
      - Address labels preview - - - - - - -
      - - - Everything looks good, so we can now load up our printer with - the appropriate label stock, print our address labels and start mailing - our party invitations. - -
      - -
      - - - - - - - Manually Creating New Templates - - Predefined templates are defined by XML files located in - ${prefix}/share/glabels/, - where ${prefix} is usually something like - /usr/local or /usr depending - on the configuration option prefix. gLabels will - use all files of the form *-templates.xml - or *.template, that it finds in - ${prefix}/share/glabels/ and - ${HOME}/.glabels/. - Additional templates can be added by creating additional - *.template files in either of these directories. - - - The format for these files is defined in the DTD: - glabels-2.2.dtd. (This DTD also describes other - XML formats used by gLabels.) - - - Assumptions/caveats - - - A sheet contains only one size of label or card (if a sheet - contains more than one size of item, it can be split into - multiple templates for multiple pass printing) - - - Distances can be expressed in units of pt, - in, mm, - cm, or pc. For example: - "1.0in" or "2.54cm". If no - units are specified, computer points (pt) will - be assumed (1 pt = - 1/72 in = 0.352778 mm). - - - - - - - Template Files - - -<?xml version="1.0"?> -<Glabels-templates> - - ...templates... - -</Glabels-templates> - - - - - - Example Template - - <Template brand="Avery" part="8160" size="US-Letter" description="Mailing Labels"> - <Label-rectangle id="0" width="189pt" height="72pt" round="5pt"> - <Markup-margin size="5pt"/> - <Layout nx="3" ny="10" x0="11.25pt" y0="36pt" dx="200pt" dy="72pt"/> - </Label-rectangle> - <Alias brand="Avery" part="5160"/> - <Alias brand="Avery" part="6233"/> - </Template> - - - - - Template Node - - A Template node describes a single stationary - product. It must contain one instance of any type of Label node - (Label-rectangle, - Label-round, or Label-cd). - This node can be followed by zero or more - Alias nodes. - - - - - - - - - Propiedad - - - Descripción - - - - - - brand - - Brand or manufacturer of stationary product. - E.g. "Avery" - - - - part - - Part number or name of stationary product. - E.g. "8160" - - - - tamaño - - Size of sheet. E.g., "US-Letter," "A4", ... - - - - descripción - - Description of stationary product. E.g, - "Mailing Labels." - - - - _description - - Translatable description of stationary product. - E.g, "Mailing Labels." (Only useful for predefined - templates) - - - - anchura - - Page width. Only valid if size="Other" - - - - altura - - Page height. Only valid if size="Other" - - - - - - - - - - Label-rectangle Node - - A Label-rectangle node describes the - dimensions of a single label or business card that is rectangular - in shape (may have rounded edges). - - - - - - - - - Propiedad - - - Descripción - - - - - - id - - Reserved for future use. Should always be 0. - - - - anchura - Width of label/card - - - altura - Height of label/card - - - redondo - - Radius of corners. For items with square edges - (business cards), the radius should be 0. - - - - x_waste - - Amount of horizontal waste (over-print) to allow. This is useful - for minimizing alignment problems when using non-white - backgrounds (e.g. images). - - - - y_waste - - Amount of vertical waste (over-print) to allow. This is useful - for minimizing alignment problems when using non-white - backgrounds (e.g. images). - - - - - - - -
      - Label-rectangle Parameters - - - - - - -
      - - -
      - - - Label-round Node - - A Label-round node describes the dimensions - of a simple round label (not a CD). - - - - - - - - - Propiedad - - - Descripción - - - - - - id - - Reserved for future use. Should always be 0. - - - - radius - Radius (1/2 diameter) of label - - - basura - - Amount of waste (over-print) to allow. This is useful - for minimizing alignment problems when using non-white - backgrounds (e.g. images). - - - - - - - - - - Label-cd Node - - A Label-cd node describes the dimensions - of a CD, DVD, or business card CD. - - - - - - - - - Propiedad - - - Descripción - - - - - - id - - Reserved for future use. Should always be 0. - - - - radius - Outer radius of label - - - hole - Radius of concentric hole - - - anchura - - If present, the label is clipped to the given width. - (Useful for "business card CDs"). - - - - altura - - If present, the label is clipped to the given height. - (Useful for "business card CDs"). - - - - basura - - Amount of waste (over-print) to allow. This is useful - for minimizing alignment problems when using non-white - backgrounds (e.g. images). - - - - - - - -
      - CD Label Parameters - - - - - - -
      - - -
      - - - Markup-margin Node - - A Markup-margin describes a margin along - all edges of a label. - - - - - - - - - Propiedad - - - Descripción - - - - - - tamaño - - Size of the margin. I.e. the distance of the margin - line from the edge of the card/label. - - - - - - - - - - Markup-line Node - - A Markup-line describes a markup line. - - - - - - - - - Propiedad - - - Descripción - - - - - - x1 - - x coordinate of 1st endpoint of the line segment. - - - - y1 - - y coordinate of 1st endpoint of the line segment. - - - - x2 - - x coordinate of 2nd endpoint of the line segment. - - - - y2 - - y coordinate of 2nd endpoint of the line segment. - - - - - - - - - - Markup-circle Node - - A Markup-circle describes a markup circle. - - - - - - - - - - Propiedad - - - Descripción - - - - - - x0 - - x coordinate of circle origin (center). - - - - y0 - - y coordinate of circle origin (center). - - - - radius - Radius of circle. - - - - - - - - - Markup-rect Node - - A Markup-rect describes a markup rectangle. - - - - - - - - - - Propiedad - - - Descripción - - - - - - x1 - - x coordinate of upper left corner of rectangle. - - - - y1 - - y coordinate of upper left corner of rectangle. - - - - w - - Width of rectangle. - - - - h - - Height of rectangle. - - - - r - Radius of rounded corners of rectangle. - - - - - - - - - Layout Node - - A label node may contain multiple Layout - children. If labels are arranged in a simple grid pattern, only - one layout is needed. However, if labels are arranged in multiple - grids, such as a running bond pattern, multiple - layout tags can be used. Note: a single label - can always be treated as a grid of one. - - - - - - - - - Propiedad - - - Descripción - - - - - - nx - - Number of labels/cards across in the grid - (horizontal) - - - - ny - - Number of labels/cards up and down in the grid - (vertical) - - - - x0 - - Distance from left edge of sheet to the left edge of - the left column of cards/labels in the layout. - - - - y0 - - Distance from the top edge of sheet to the top edge of - the top row of labels/cards in the layout. - - - - dx - Horizontal pitch of grid. - - - dy - Vertical pitch of grid. - - - - - - -
      - Layout Parameters - - - - - - -
      - - -
      - - - Alias Node - - An Alias node provides the name of a - product with the same size and layout characteristics as the - parent template. - - - - - - - - - Propiedad - - - Descripción - - - - - - brand - - The brand or manufacturer of the equivalent product. - - - - part - - The part number or name of the equivalent product. - - - - - - - - -
      - - - - - - - - - - - - - - About <application>gLabels</application> - gLabels was written by Jim Evins - (evins@snaught.com). To find more information about - gLabels, please visit the - gLabels Web - page. - - To report a bug or make a suggestion regarding this application or - this manual, follow the directions at the - gLabels Contact Page. - - - Este programa se distribuye bajo los términos de la Licencia Pública General GNU tal como la publica la Free Software Foundation; en cualquiera de las versiones 2 de la Licencia o (a su elección) cualquier versión posterior. Puede encontrar una copia de esta licencia en este enlace, o en el archivo COPYING incluido con el código fuente de este programa. - - - - - - - -
      diff --git a/help/es/index.page b/help/es/index.page new file mode 100644 index 00000000..2a5313f1 --- /dev/null +++ b/help/es/index.page @@ -0,0 +1,47 @@ + + + + + Diseñador de etiquetas y de tarjetas de visita gLabels. + Diseñador de etiquetas y de tarjetas de visita gLabels. + + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Compartir Igual 3.0

      +
      +
      + + <media type="image" mime="image/png" src="figures/glabels-logo.png">logo de gLabels</media> Manual de gLabels + +

      La aplicación gLabels es un programa ligero para crear etiquetas y tarjetas de visita para el entorno de escritorio GNOME. Está diseñado para trabajar con varias hojas de etiquetas láser/chorro de tinta que encontrará en la mayoría de las tiendas de suministros de oficina.

      + +

      gLabels se puede usar para diseñar etiquetas de dirección, de nombre, de precio, de CD/DVD o para cualquier otra cosa organizada según un patrón regular en una hoja de papel. Las etiquetas (o las tarjetas) pueden contener texto, imágenes, líneas, formas y códigos de barras. gLabels también incluye la característica de combinar documentos, que le permite imprimir una etiqueta única por cada registro de una fuente de datos externa, tal como un archivo CSV o una libreta de direcciones de Evolution.

      + +
      + Ventana principal de <app>gLabels</app> + Ventana principal de gLabels + +

      Ventana principal de gLabels.

      +
      +
      + +
      + Uso +
      + +
      + Fusión de documentos +
      + +
      + Uso avanzado +
      + +
      diff --git a/help/es/labelprop.page b/help/es/labelprop.page new file mode 100644 index 00000000..45a7e84d --- /dev/null +++ b/help/es/labelprop.page @@ -0,0 +1,25 @@ + + + + + + + Cómo cambiar las propiedades de una etiqueta o de una tarjeta de visita. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Compartir Igual 3.0

      +
      +
      + + Cambiar las propiedades de la etiqueta + +

      Para cambiar el tipo de medio y/o la orientación de una etiqueta, seleccione ArchivoPropiedades para mostrar el diálogo Propiedades de la etiqueta. Seleccione el tipo de medio y la orientación nuevas y pulse Aceptar.

      + +
      diff --git a/help/es/license.page b/help/es/license.page new file mode 100644 index 00000000..fa230dfc --- /dev/null +++ b/help/es/license.page @@ -0,0 +1,35 @@ + + + + + + + Información legal. + + + Licencia +

      Este trabajo está distribuido bajo una licencia sin soporte CreativeCommons Compartir-Igual 3.0.

      +

      Es libre de:

      + + + <em>Compartir</em> +

      Copiar, distribuir y transmitir el trabajo.

      +
      + + <em>Hacer obras derivadas</em> +

      Adaptar el trabajo.

      +
      +
      +

      Bajo las siguientes condiciones:

      + + + <em>Atribución</em> +

      Debe reconocer los créditos de la obra de la manera especificada por el autor o el licenciador (pero no de una manera que sugiera que tiene su apoyo o apoyan el uso que hace de su obra).

      +
      + + <em>Compartir igual</em> +

      Si altera, transforma o amplía esta obra para crear una obra derivada, sólo puede distribuir la obra resultante bajo la misma licencia, una similar o una compatible.

      +
      +
      +

      Para ver el texto completo de la licencia consulte la página web de Creative Commons o lea elEscrito de Commons.

      +
      diff --git a/help/es/mancreate.page b/help/es/mancreate.page new file mode 100644 index 00000000..5c8c1789 --- /dev/null +++ b/help/es/mancreate.page @@ -0,0 +1,693 @@ + + + + + + + Crear sus plantillas manualmente. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Compartir Igual 3.0

      +
      +
      + + Crear plantillas nuevas manualmente + + + + + + +

      Esta página es una guía de referencia para la creación manual de plantillas de gLabels. Las plantillas de gLabels se definen en un archivo XML, tal como se describe en la DTD: glabels-2.3.dtd (Este DTD también describe otros formatos XML usados por glabels).

      + +

      Las plantillas creadas manualmente se guardarán en ${HOME}/.glabels y se nombrarán con extensión .template.

      + + +

      gLabels busca plantillas en varias ubicaciones, como se define aquí:

      + + + + + + + + + + + + + + + + + + + + + +

      Ubicación

      Descripción

      ${prefix}/share/libglabels-3.0/templates

      Plantillas predefinidas distribuidas con gLabels.

      +

      ${prefix} normalmente es /usr o /usr/local, dependiendo de dónde se haya instalado gLabels.

      ${XDG_CONFIG_HOME}/libglabels/templates

      Plantillas definidas por el usuario creadas con el Diseñador de plantillas de gLabels. No ponga plantillas creadas manualmente en esta carpeta.

      +

      Si ${XDG_CONFIG_HOME} no está definido, su valor predeterminado es ${HOME}/.config.

      ${HOME}/.glabels

      Las plantillas definidas por el usuario creadas manualmente se deben poner en esta carpeta. Las versiones del Diseñador de plantillas de gLabels (anteriores a 3.0) también pondrían plantillas en esta carpeta.

      +
      + +

      Los archivos de plantillas completadas se pueden enviar a la lista de correo de plantillas de gLabels, para incluirlas posiblemente en versiones futuras de gLabels.

      +
      + + + + + + + + +
      + Supuestos/advertencias + + +

      Una hoja contiene etiquetas o tarjetas de un sólo tamaño (si una hoja contiene más de un tamaño por elemento, se puede dividir el varias plantillas para imprimir en múltiples pasadas)

      +
      + +

      Las distancias se pueden expresar en las unidades pt, in, mm, cm, o pc. Por ejemplo: «1.0in» o «2.54cm». Si no se especifican la unidade, se asumirá que es puntos informáticos (pt), donde 1 pt = 1/72 in = 0.352778 mm.

      +
      +
      +
      + + + + + + + + + +
      + Archivos de plantillas + +

      Un archivo de plantilla contiene un único nodo Glabels-templates de nivel superior.

      + + +<?xml version="1.0"?> +<Glabels-templates> + + ...plantillas... + +</Glabels-templates> + + + Plantilla de ejemplo + Ejemplo de archivo de plantilla de gLabels con un nodo Template. + +<?xml version="1.0"?> +<Glabels-templates> + + <Template brand="Avery" part="8160" size="US-Letter" description="Mailing Labels"> + <Meta category="label"/> + <Meta category="mail"/> + <Meta product_url="http://www.avery.com/avery/en_us/"/> + <Label-rectangle id="0" width="189pt" height="72pt" round="5pt"> + <Markup-margin size="5pt"/> + <Layout nx="3" ny="10" x0="11.25pt" y0="36pt" dx="200pt" dy="72pt"/> + </Label-rectangle> + </Template> + +</Glabels-templates> + + +
      + + + + + + + + + +
      + Nodo <span translate="no">Template</span> + +

      Un nodo Template describe un único producto de papelería. Debe contener una instancia de cada tipo de nodo «Etiqueta» (Label-rectangle, Label-round, o Label-cd).

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      Propiedad

      Descripción

      brand

      Marca o fabricante de productos de papelería. Por ejemplo «Avery».

      part

      Número de pieza o nombre de un producto de papelería. Ej «8160»

      size

      Tamaño de la hoja. Ej. "Carta", "A4", ....

      description

      Descripción de un producto de papelería. Por ejemplo, «Etiquetas de dirección».

      _description

      Descripción traducible para un producto de papelería. Por ejemplo, «Etiquetas de correo». (Útil sólo para plantillas predefinidas.)

      width

      Ancho de la página. Sólo es válido si tamaño=«Otro»

      height

      Altura de la página. Sólo es válido si tamaño=«Otro»

      equiv

      Parte numérica equivalente. Si esta propiedad está presente, la plantilla es un clon de otra plantilla de la misma marca. La plantilla heredará todas las propiedades, excepto la marca y el nombre de la otra plantilla. Esta propiedad debe referirse a una plantilla definida anteriormente: actualmente gLabels no soporta hacia adelante.

      + +
      + + + + + + + + +
      + Nodo <span translate="no">Meta</span> + +

      un nodo Meta contiene información adicional sobre la plantilla. Un nodo Template puede contener cero o más nodos Meta.

      + + + + + + + + + + + + + + + + +

      Subnodo

      Descripción

      category

      Una categoría para la plantilla. Una plantilla puede pertenecer a varias categorías simplemente añadiendo múltiples nodos Meta al nodo Template padre. El Diálogo de tarjeta nueva de gLabels usa las categorías de las plantillas para filtrar los resultados de búsquedas de plantillas.

      + +

      El valor de esta categoría debe coincidir con un ID de categoría predefinido en el archivo ${prefix}/libglabels-3.0/templates/categories.xml. Los ID de categoría definidos actualmente incluyen:

      + +

      label

      +

      round-label

      +

      elliptical-label

      +

      square-label

      +

      rectangle-label

      +

      card

      +

      business-card

      +

      media

      +

      mail

      +

      foldable

      +

      photo

      +
      + + +

      product_url

      Un URL que apunta a la página web del fabricante para un producto determinado, si está disponible.

      + +

      La sugerencias sobre categorías adicionales se pueden enviar a la lista de correo de los desarrolladores de gLabels.

      +

      Los URL de productos deben ser de uso limitado, ya que pueden no ser permanentes.

      +
      + +
      + + + + + + + + +
      + Nodo <span translate="no">Label-rectangle</span> + +

      Un nodoLabel-rectangle describe las dimensiones de una única etiqueta o tarjeta de visita de forma rectangular (Puede tener los bordes redondeados.

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      Propiedad

      Descripción

      id

      Reservado para el futuro. Debería ser siempre 0.

      width

      Ancho de la etiqueta/tarjeta

      height

      Altura de la etiqueta/tarjeta

      round

      Radio de la esquina. Para elementos con bordes cuadrados (tarjetas de visita), el radio debe ser 0.

      x_waste

      Cantidad de residuos horizontales (sobreimpresión) que permitir. Esto es útil para minimizar problemas de alineación al usar fondos no blancos (ej. imágenes).

      y_waste

      Cantidad de residuos verticales (sobreimpresión) que permitir. Esto es útil para minimizar problemas de alineación al usar fondos no blancos (ej. imágenes).

      + + +
      + Parámetros de Label-rectangle + +

      Parámetros de Label-rectangle

      +
      +
      + + +
      + + + + + + + + +
      + Nodo <span translate="no">Label-ellipse</span> + +

      Un nodo Label-ellipse describe las dimensiones de una única etiqueta o tarjeta de visita de forma elíptica.

      + + + + + + + + + + + + + + + + + + + + + + + + +

      Propiedad

      Descripción

      id

      Reservado para el futuro. Debería ser siempre 0.

      width

      Anchura de la elipse

      height

      Altura de la elipse

      waste

      Cantidad de residuos (sobreimpresión) que permitir. Esto es útil para minimizar problemas de alineación al usar fondos no blancos (ej. imágenes).

      + + +
      + Parámetros de Label-ellipse + +

      Parámetros de Label-ellipse

      +
      +
      + + +
      + + + + + + + + +
      + Nodo <span translate="no">Label-round</span> + +

      Un nodo Label-round describe las dimensiones de una sola etiqueta circular (no un CD).

      + + + + + + + + + + + + + + + + + + + + +

      Propiedad

      Descripción

      id

      Reservado para el futuro. Debería ser siempre 0.

      radius

      Radio (1/2 del diámetro) de la etiqueta

      waste

      Cantidad de residuos (sobreimpresión) que permitir. Esto es útil para minimizar problemas de alineación al usar fondos no blancos (ej. imágenes).

      + + +
      + Parámetros de Label-ellipse + +

      Parámetros de Label-ellipse

      +
      +
      + + +
      + + + + + + + + +
      + Nodo <span translate="no">Label-cd</span> + +

      Un nodo Label-cd describe las dimensiones de un CD, DVD o un CD de tarjeta de visita.

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      Propiedad

      Descripción

      id

      Reservado para el futuro. Debería ser siempre 0.

      radius

      Radio exterior de la etiqueta

      hole

      Radio del agujero concéntrico

      width

      Si está presente, la etiqueta se recorta a la anchura dada. (Útil para «tarjetas de visita en CD»).

      height

      Si está presente, la etiqueta se recorta a la altura dada. (Útil para «tarjetas de visita en CD»).

      waste

      Cantidad de residuos (sobreimpresión) que permitir. Esto es útil para minimizar problemas de alineación al usar fondos no blancos (ej. imágenes).

      + + +
      + Parámetros de Label-cd + +

      Parámetros de etiqueta de CD

      +
      +
      + + +
      + + + + + + + + +
      + Nodos <span translate="no">Markup</span> + +

      Las plantillas pueden contener nodos de marcado opcionales. Estos nodos se usan para describir un conjunto de líneas de marcado que son visibles en la ventana de dibujo de glabels, pero no son visibles cuando se imprime. Estas líneas pueden representar márgenes, líneas de plegado o de centrado, áreas especiales u otros indicios útiles para el usuario de una plantilla.

      + + + + + +
      + Nodo <span translate="no">Markup-margin</span> + +

      Un Markup-margin describe un margen a lo largo de los bordes de una etiqueta.

      + + + + + + + + + + + + +

      Propiedad

      Descripción

      size

      Tamaño del margen. Ej. la distancia de la línea del margen desde el borde de la tarjeta/etiqueta.

      +
      + + + + + + + + +
      + Nodo <span translate="no">Markup-line</span> + +

      Un nodo Markup-line describe una línea de marcado.

      + + + + + + + + + + + + + + + + + + + + + + + + +

      Propiedad

      Descripción

      x1

      coordenada X del primero punto final del segmento de línea.

      y1

      coordenada Y del primero punto final del segmento de línea.

      x2

      coordenada X del segundo punto final del segmento de línea.

      y2

      coordenada Y del segundo punto final del segmento de línea.

      +
      + + + + + + + + +
      + Nodo <span translate="no">Markup-circle</span> + +

      Un Markup-circle describe un círculo de marcado.

      + + + + + + + + + + + + + + + + + + + + +

      Propiedad

      Descripción

      x0

      coordenada X del círculo origen (centro).

      y0

      coordenada Y del círculo origen (centro).

      radius

      Radio del círculo.

      +
      + + + + + + + + +
      + Nodo <span translate="no">Markup-rect</span> + +

      Un Markup-rect describe un rectángulo de marcado.

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      Propiedad

      Descripción

      x1

      coordenada X de la esquina superior izquierda del rectángulo

      y1

      coordenada Y de la esquina superior izquierda del rectángulo

      w

      Anchura del rectángulo.

      h

      Altura del rectángulo.

      r

      Radio de las esquinas redondeadas del rectángulo.

      +
      + + + + + + + + +
      + Nodo <span translate="no">Markup-ellipse</span> + +

      Un Markup-ellipse describe una elipse de marcado.

      + + + + + + + + + + + + + + + + + + + + + + + + +

      Propiedad

      Descripción

      x1

      coordenada «x» de la esquina superior izquierda de la elipse.

      y1

      coordenada «y» de la esquina superior izquierda de la elipse.

      w

      Anchura de la elipse.

      h

      Altura de la elipse.

      +
      + + + + +
      + + + + + + + + +
      + Nodo <span translate="no">Layout</span> + +

      Un nodo de etiqueta puede contener varios hijos Layout. Si las etiquetas se colocan en un patrón de rejilla, sólo se necesita un diseño. sin embargo, si las etiquetas se colocan en varias rejillas, como un patrón de unión, se pueden usar múltiples etiquetas Layout.

      + +

      Una única etiqueta se puede tratar con una rejilla de una.

      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      Propiedad

      Descripción

      nx

      Número de etiquetas/tarjetas en la rejilla (horizontal)

      ny

      Número de etiquetas/tarjetas en la rejilla (vertical)

      x0

      Distancia desde el borde izquierdo de la hoja hasta el borde izquierdo de la columna de la izquierda de las tarjetas/etiquetas en la disposición.

      y0

      Distancia desde el borde superior de la hoja hasta el borde superior de la fila de arriba de las tarjetas/etiquetas en la disposición.

      dx

      Inclinación horizontal de la rejilla.

      dy

      Inclinación vertical de la rejilla.

      + + +
      + Parámetros de Layout + +

      Parámetros de Layout

      +
      +
      + + +
      + + + + + +
      diff --git a/help/es/merge-ex1.page b/help/es/merge-ex1.page new file mode 100644 index 00000000..3064d5bc --- /dev/null +++ b/help/es/merge-ex1.page @@ -0,0 +1,72 @@ + + + + + + + Crear etiquetas de nombre desde un archivo CSV. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Compartir Igual 3.0

      +
      +
      + + Ejemplo 1: etiquetas de nombre + +

      En este ejemplo se está organizando una fiesta de orientación para los nuevos miembros de la tripulación. Existe una lista de los miembros novatos de la tripulación que se ha creado en gnumeric y exportado en el siguiente archivo CSV. Se podría haber creado este archivo utilizando un editor de texto, pero diablos, es el siglo XXIII.

      + + +Name,Department,SN +"Jim Kirk",Management,"SC937-0176 CEC" +"Mr. Spock",Sciences,S179-276SP +"Leonard McCoy",Medicine,unknown +"Montgomery Scott",Engineering,SE-197-54T + + +

      En glabels se ha creado un documento de glabels nuevo usando la plantilla «Etiquetas de nombre de placa» Avery 5395. Ahora se usa el elemento de menú ObjetosMezclar propiedades para mostrar el diálogo propiedades de combinación de datos. Use este diálogo para seleccionar el tipo de fuente (en este caso, CSV con claves en la línea 1) y la fuente de combinación (nombre de archivo) como se muestra.

      + + + +

      Diálogo de propiedades de fusión

      +
      + + +

      También se puede ver cada registro con más detalle pulsando en el expansor adecuado (los triángulos pequeños), como se muestra. Una vez satisfecho con las selecciones, pulse Aceptar en este diálogo para aceptar los cambios.

      + +

      Ahora puede añadir a añadir objetos al documento degLabels como se muestra.

      + + + +

      Añadir objetos

      +
      + + +

      En este ejemplo se han añadido tres objetos de texto y un objeto de código de barras. El primer objeto de texto contiene sólo un texto literal («Hola, mi nombre es»). El segundo objeto de texto contiene un único campo combinado ("${Nombre}") correspondiente al primer campo de un registro (primera columna de una línea) que contiene el nombre completo de los nuevos miembros de la tripulación. El tercer campo de texto contiene un texto literal («Departamento») seguido de un único campo combinado ("${Departmento}") correspondiente al segundo campo del departamento de los nuevos miembros de la tripulación. El objeto de código de barras está configurado para usar el campo (o la clave) «SN», que contiene los números de serie de la flota estelar de los miembros de la tripulación.

      + +

      Ahora se pueden imprimir las etiquetas de nombre seleccionando el elemento de menú ArchivoImprimir. Esto mostrará el diálogo de impresión como se muestra a continuación.

      + + + +

      Imprimir etiquetas de nombre

      +
      + + +

      Sólo para asegurarse de que las etiquetas se van a ver bien, seleccione la opción Imprimir contornos y pulse en Previsualizar la impresión. Esto mostrará un diálogo de vista previa, como se muestra a continuación.

      + + + +

      Vista previa de las etiquetas de nombre

      +
      + + +

      Todo parece correcto, así que ahora puede cargar su impresora con las etiquetas apropiadas, imprimir sus etiquetas de nombre e invitar a sus invitados a bordo.

      + + +
      diff --git a/help/es/merge-ex2.page b/help/es/merge-ex2.page new file mode 100644 index 00000000..1b7fbd52 --- /dev/null +++ b/help/es/merge-ex2.page @@ -0,0 +1,75 @@ + + + + + + + Crear etiquetas de dirección desde un archivo CSV. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Compartir Igual 3.0

      +
      +
      + + Ejemplo 2: etiquetas de dirección + +

      En este ejemplo se va a celebrar una fiesta y se necesitan imprimir etiquetas de dirección para nuestras invitaciones. Existe una lista con los amigos más cercamos que se ha creado en gnumeric y la se ha exportado como el siguiente archivo CSV. Debe tener en cuenta que no todo el mundo tiene una inicial intermedia o una dirección de dos líneas.

      + + +LAST,FIRST,MI,ADDR1,ADDR2,CITY,STATE,ZIP +,,,,,,, +Critter,Ess,S,"123 Faux St.",,Alexandria,VA,22310 +Doe,John,,"Apt 1X","451 Mystery St.",Trenton,NJ,08601 +Summers,Joyce,,"1630 Revello Dr",,Sunnydale,CA,95037 +McGarret,Steve,O,"404 Piikoi Street",,Honolulu,HI,96813 +Kramer,Cosmo,,"Apt 5B","129 W. 81 St.","New York",NY,10024-7207 + + +

      En glabels se ha creado un documento de glabels nuevo usando la plantilla «Etiquetas de dirección» Avery 5512.Ahora se usa el elemento de menú ObjetosMezclar propiedades para mostrar el diálogo propiedades de combinación de datos. Se usa este diálogo para seleccionar el tipo de fuente (en este caso, CSV con claves en la línea 1) y la fuente de combinación (nombre de archivo) como se muestra.

      + + + +

      Diálogo de propiedades de fusión

      +
      + + +

      Antes de aplicar la combinación de fuentes se ha desmarcado el primer registro , ya que sólo contiene campos vacíos. Esto es un artefacto de la hoja de cálculo de gnumeric original, y sólo desperdiciaríamos nuestra primera etiqueta. También se pueden deseleccionar cualquier otro registro para el que no se quiera imprimir una etiqueta.

      + +

      También se puede ver cada registro con más detalle pulsando en el expansor adecuado (los triángulos pequeños), como se muestra. Una vez satisfecho con las selecciones, pulse Aceptar en este diálogo para aceptar los cambios.

      + +

      Ahora puede añadir a añadir objetos al documento degLabels como se muestra.

      + + + +

      Añadir objetos

      +
      + + +

      En este ejemplo se tiene un único objeto de texto. El objeto de texto contiene todo sobre los campos combinados en múltiples línea como direcciones de correo. Tenga en cuenta que los campos ${ADDR1} y ${ADDR2} no están situados en otro texto en sus propias líneas. Cuando glabels encuentra un campo como el único texto de una línea, no expandirá la línea si el campo está vacío.

      + +

      Ahora se pueden imprimir las etiquetas de dirección seleccionando el elemento de menú ArchivoImprimir. Esto mostrará el diálogo de impresión como se muestra a continuación.

      + + + +

      Imprimir etiquetas de dirección

      +
      + + +

      Sólo para asegurarse de que las etiquetas se van a ver bien, seleccione la opción Imprimir contornos y pulse en Previsualizar la impresión. Esto mostrará un diálogo de vista previa, como se muestra a continuación.

      + + + +

      Vista previa de las etiquetas de dirección

      +
      + + +

      Todo parece correcto, así que ahora podemos cargar nuestra impresora con las etiquetas apropiadas, imprimir nuestras etiquetas de dirección y enviar por correo nuestras invitaciones a la fiesta.

      + +
      diff --git a/help/es/merge-ex3.page b/help/es/merge-ex3.page new file mode 100644 index 00000000..d37418cc --- /dev/null +++ b/help/es/merge-ex3.page @@ -0,0 +1,72 @@ + + + + + + + Crear etiquetas de direcciones desde las entradas de la libreta de direcciones de Evolution. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Compartir Igual 3.0

      +
      +
      + + Ejemplo 3: Etiquetas de dirección usando la libreta de direcciones de <app>Evolution</app> + +

      La última fiesta fue un éxito, y se necesitan imprimir etiquetas de dirección para las invitaciones a una nueva fiesta. Para simplificarlo, se puede usar la libreta de direcciones de Evolution, ya que las direcciones de sus amigos están guardadas ahí.

      + + +

      Dependiendo de cómo se haya empaquetado su copia de gLabels, puede que esta opción no esté disponible. El soporte para la libreta de direcciones de Evolution sólo está disponible si evolution-data-server y sus archivos de desarrollo estaban presentes cuando se compiló gLabels. Tenga esto en cuenta si construye gLabels directamente desde las fuentes.

      + +

      Si el paquete gLabels de su distribución carece de este soporte, puede contactar con el mantenedor del paquete o informar de un error en este paquete para solicitarlo.

      +
      + +

      Se ha creado en glabels un documento de gLabels nuevo usando la plantilla Avery 5512 «Etiquetas de dirección». Ahora se usa el elemento de menú ObjetosMezclar propiedades para mostrar el diálogo Mezclar propiedades. Use este diálogo para seleccionar el tipo de origen (en este caso, Datos de la libreta de direcciones predeterminada de Evolution) como se muestra.

      + + + +

      Diálogo de propiedades de fusión

      +
      + + +

      Una vez que se han elegido Datos de la libreta predeterminada de Evolution como origen de la mezcla, obtendrá una lista completa de su contenido. Inicialmente, se comprueban todas las entradas. Asumiendo que se está planificando una gran fiesta, se puede dejar esta selección sin tocar (pero se va a mantener en mente el presupuesto). Ahora se seleccionan o deseleccionan ciertas entradas pulsando en las casillas adecuadas, o se pueden usar los botones Seleccionar todo y Deseleccionar todo para activar o desactivar todas las entradas en la libreta de direcciones.

      + +

      También se puede ver cada entrada con más detalle pulsando en el desplegable adecuado (los triángulos pequeños), como se muestra. Una vez satisfechos con las selecciones en este diálogo, pulse el botón Aceptar para aceptar los cambios.

      + +

      Ahora puede añadir a añadir objetos al documento degLabels como se muestra.

      + + + +

      Añadir objetos

      +
      + + +

      En este ejemplo existe un único objeto de texto otra vez. Este objeto de texto contiene todos los campos mezclados organizados en varias líneas como direcciones de correo.

      + +

      Ahora se pueden imprimir las etiquetas de dirección seleccionando el elemento de menú ArchivoImprimir. Esto mostrará el diálogo de impresión como se muestra a continuación.

      + + + +

      Imprimir etiquetas de dirección

      +
      + + +

      Sólo para asegurarse de que las etiquetas se van a ver bien, seleccione la opción Imprimir contornos y pulse en Previsualizar la impresión. Esto mostrará un diálogo de vista previa, como se muestra a continuación.

      + + + +

      Vista previa de las etiquetas de dirección

      +
      + + +

      Todo parece correcto, así que ahora podemos cargar nuestra impresora con las etiquetas apropiadas, imprimir nuestras etiquetas de dirección y enviar por correo nuestras invitaciones a la fiesta.

      + + +
      diff --git a/help/es/merge-ex4.page b/help/es/merge-ex4.page new file mode 100644 index 00000000..e27660e0 --- /dev/null +++ b/help/es/merge-ex4.page @@ -0,0 +1,24 @@ + + + + + + + Crear etiquetas de dirección desde un archivo vCard. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Compartir Igual 3.0

      +
      +
      + + Ejemplo 4: etiquetas de dirección usando un archivo vCard + + +
      diff --git a/help/es/merge.page b/help/es/merge.page new file mode 100644 index 00000000..acd66157 --- /dev/null +++ b/help/es/merge.page @@ -0,0 +1,28 @@ + + + + + + + Combinar un origen de datos para crear múltiples documentos. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Compartir Igual 3.0

      +
      +
      + + Tutorial para fusionar documentos + +

      La combinación de documentos (llamada algunas veces «combinación de correo») es una potente característica que permite que una única tarjeta o etiqueta se impriman por cada registro de una fuente de datos externa. Esto es, sin embargo, la característica menos comprendida de glabels. Los siguientes ejemplos le guiarán paso a paso a través de un par de de tareas comunes usando la característica de combinación de documentos.

      + +
      +
      + +
      diff --git a/help/es/mergefeatures.page b/help/es/mergefeatures.page new file mode 100644 index 00000000..d0df3633 --- /dev/null +++ b/help/es/mergefeatures.page @@ -0,0 +1,35 @@ + + + + + + + Que puede esperar de la fusión de un documento. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Compartir Igual 3.0

      +
      +
      + + Fusionar un documento + +

      La combinación de documentos (llamada algunas veces «combinación de correo») es una potente característica que permite que una única tarjeta o etiqueta se impriman por cada registro de una fuente de datos externa.

      + +

      El primer paso para combinar un documento es preparar un documento fuente que contenga su datos combinados. Estos datos pueden ser direcciones de correo o cualquier otro dato que quiera para crear etiquetas o tarjetas únicas. Los «back-end» actuales sólo existen para archivos de texto y el servidor de datos de Evolution (hay otros planificados). El formato de texto soportado actualmente es muy sencillo: cada línea es un registro; lo campos se delimitan por comas (CSV), tabuladores o dos puntos; y las líneas nuevas se pueden incrustar usando la entidad «\n». Este archivo se puede crear usando cualquier editor de texto u otro programa o script. Una manera habitual de crear archivos CSV es exportarlos desde un programa de hojas de cálculo.

      + +

      Una etiqueta debe estar configurada para «apuntar a» este archivo de datos. Para configurar las propiedades de combinación de un documento, elija el elemento de menú ObjetosMezclar propiedades para mostrar el diálogo Propiedades de combinación de datos. Este diálogo se utiliza para seleccionar el formato de datos exacto del archivo y nombre de archivo (ubicación) de la combinación de datos.

      + +

      Finalmente, una vez que se ha configurado la etiqueta para un archivo de datos, se pueden insertar los campos clave en objetos de texto y usarlos como fuentes o datos para códigos de barras y nombres de archivos de imágenes para objetos de imagen. Consulte la para obtener más información sobre cómo combinar datos para este tipo de objetos.

      + +

      Ahora que su etiqueta está configurada, gLabels imprimirá una única etiqueta por cada registro de su documento fuente, sustituyendo los campos de cada registro por los campos clave en todo el texto, código de barras y objetos de imagen.

      + +

      Consulte en un tutorial detallado sobre la característica de fusión de documentos.

      + +
      diff --git a/help/es/multifile.page b/help/es/multifile.page new file mode 100644 index 00000000..ce8528f4 --- /dev/null +++ b/help/es/multifile.page @@ -0,0 +1,29 @@ + + + + + + + Cómo abrir varios archivos a la vez usando la línea de comandos. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Compartir Igual 3.0

      +
      +
      + + Abrir varios archivos desde la línea de comandos + +

      Puede ejecutar gLabels desde una línea de comandos y abrir uno o varios archivos. Para abrir varios archivos desde una línea de comandos, escriba el siguiente comando y pulse Intro:

      + +

      glabels archivo1.glabels archivo2.glabels archivo3.glabels

      + +

      Cuando se inicia la aplicación, se muestran los archivos que especifique en ventanas de gLabels separadas.

      + +
      diff --git a/help/es/newlabel.page b/help/es/newlabel.page new file mode 100644 index 00000000..c5bdb23e --- /dev/null +++ b/help/es/newlabel.page @@ -0,0 +1,25 @@ + + + + + + + Crear una etiqueta o tarjeta nuevas en gLabels. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Compartir Igual 3.0

      +
      +
      + + Crear una etiqueta nueva o una tarjeta + +

      Para crear una etiqueta nueva o una tarjeta de visita, elijaArchivoNuevo para mostrar el diálogo Nueva etiqueta o tarjeta. Seleccione el tipo de medio y la orientación para el documento nuevo y pulse Aceptar. Se mostrará un documento nuevo en el área de visualización de la ventana ventana de gLabels.

      + +
      diff --git a/help/es/printfile.page b/help/es/printfile.page new file mode 100644 index 00000000..dc693d49 --- /dev/null +++ b/help/es/printfile.page @@ -0,0 +1,86 @@ + + + + + + + Cómo imprimir sus etiquetas y sus tarjetas. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Compartir Igual 3.0

      +
      +
      + + Imprimir etiquetas y tarjetas + +

      Para imprimir etiquetas o tarjetas, elija ArchivoImprimir para mostrar el diálogo Imprimir. Una vez que haya seleccionado las opciones de impresión, pulse en Imprimir para imprimir las etiquetas o las tarjetas. Para sólo previsualizar el resultado, pulse en Previsualizar la impresión en su lugar.

      + +

      El diálogo Imprimir le permite especificar las siguientes opciones de impresión:

      + +
      + La pestaña «etiquetas» del diálogo de impresión + +
      + Control de impresión (simple) + +

      Para etiquetas o tarjetas simples (no para documentos combinados) la sección de trabajos en pestañas contiene los siguientes controles de copia.

      + + + +

      Controles de impresión de copia

      +
      + + +

      El número de copias de la etiqueta se puede seleccionar eligiendo el número de hojas completas que imprimir, o un subconjunto específico de etiquetas de una sola hoja.

      + +

      La mini vista previa también se puede usar para seleccionar gráficamente el subconjunto de etiquetas, pulsando en la primera etiqueta de la mini vista previa y arrastrando hasta la última etiqueta.

      + +
      + +
      + Control de impresión (fusión) + +

      Para etiquetas o tarjetas que usan la capacidad de combinación de documentos (también llamada «combinación de correo»), la sección de trabajos en pestañas contiene los siguientes controles de combinación en vez de los controles de copia.

      + + + +

      Controles de impresión de fusión de documentos

      +
      + + +

      El número total de etiquetas o tarjetas imprimidas es el producto del número de registros en el origen de la combinación y del número de copias seleccionadas. Si se seleccionan varias copias, éstas pueden ser cotejadas (copias de un mismo registro agrupados) o sin cotejar (una copia de cada registro se imprime antes del siguiente copia).

      + +

      La impresión puede empezar en cualquier etiqueta de la primera hoja. Ésta se puede seleccionar con el botón incremental Comenzar con la etiqueta.

      + +

      La mini vista previa también se puede usar para seleccionar gráficamente la primera etiqueta, pulsando en la etiqueta que quiere en la mini vista previa.

      + +
      + +
      + Opciones +

      Se pueden seleccionar las siguientes opciones.

      + + +

      imprimir márgenes

      +

      Imprimir los contornos de las etiquetas. Esta opción es útil para ejecuciones en seco, para verificar la alineación de la impresora.

      +
      + +

      imprimir en el reverso

      +

      Imprime las etiquetas como imágenes espejo. Esta opción es útil para imprimir en etiquetas que se verán por el reverso (ej. en la ventanilla de un coche).

      +
      + +

      imprimir marcas de corte

      +

      Imprime marcas de corte a lo largo del borde de la hoja. Esta opción es útil para imprimir en páginas en blanco, y recortarlas después de imprimir. Esta opción no funciona bien con todas las plantillas.

      +
      +
      +
      +
      + +
      diff --git a/help/es/select.page b/help/es/select.page new file mode 100644 index 00000000..5a2a05d3 --- /dev/null +++ b/help/es/select.page @@ -0,0 +1,83 @@ + + + + + + + Cómo seleccionar objetos. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Compartir Igual 3.0

      +
      +
      + + Seleccionar objetos + +

      Un requisito previo para realizar operaciones en objetos es la selección individual o en grupo de objetos. El área de visualización debe estar en el modo de selección de objetos para crear selecciones nuevas, indicado por el cursor de flecha. El modo de selección de objetos se elije con el elemento de menú ObjetosSeleccionar modo, o con el comando correspondiente de la Barra de dibujo.

      + +
      + Seleccionar un sólo objeto +

      Se puede seleccionar un único objeto de texto simplemente pulsando sobre el objeto que quiere en el área de visualización. Una vez seleccionado, el objeto se resaltará con un conjunto de manejadores para redimensionarlo.

      +
      + +
      + Agregar selecciones de objetos +

      Se pueden seleccionar varios objetos seleccionando el primero de ellos y manteniendo pulsada la tecla Ctrl mientras selecciona los objetos adicionales. Se puede añadir objetos individuales a la selección existente en cualquier momento manteniendo pulsada la tecla Ctrl mientras selecciona los objetos que quiere. También puede seleccionar todos los objetos usando el elemento de menú EditarSeleccionar todo. Todos los objetos de una selección agregada de objetos se resaltarán.

      +
      + +
      + Selecciones de área + +

      Se puede seleccionar varios objetos pulsando en un área vacía y arrastrando hasta formar un área rectangular. Cuando se suelta, todos los objetos contenidos en el área formarán una selección agregada. Una selección de área se puede usar para añadirla a una selección existente manteniendo pulsada la tecla Ctrl mientras se hace la selección.

      + +
      + +
      + Deseleccionar objetos + +

      Se puede quitar objetos individuales de una selección manteniendo pulsada la tecla Ctrl mientras se pulsa sobre un objeto seleccionado anteriormente. Se puede descartar una selección entera usando el elemento de menú EditarDeseleccionar todo, o simplemente pulsando en un espacio vacío en el área de visualización. Una vez que un objeto no está seleccionado, se quita el resaltado.

      + +
      + +
      + Comandos del portapapeles + +

      Los objetos se pueden manipular usando las operaciones estándar del portapapeles Cortar, Copiar, Pegar, y Eliminar.

      + +
      + <gui>Cortar</gui> (<keyseq><key>Ctrl</key><key>X</key></keyseq>) + +

      Mueve objetos al portapapeles. Los objetos están disponibles para pegarlos de nuevo en el documento actual o en otro documento.

      + +
      + +
      + <gui>Copiar</gui> (<keyseq><key>Ctrl</key><key>C</key></keyseq>) + +

      Copia los objetos seleccionados al portapapeles sin borrarlos. Los objetos están disponibles para pegarlos en el documento actual o en otro documento.

      + +
      + +
      + <gui>Pegar</gui> (<keyseq><key>Ctrl</key><key>V</key></keyseq>) + +

      Pega objetos del portapapeles en el documento actual. gLabels sólo puede pegar objetos de otro documento de gLabels.

      + +
      + +
      + <gui>Eliminar</gui> (<key>Supr</key>) + +

      Elimina los objetos seleccionados sin ponerlos en el portapapeles.

      + +
      +
      + +
      diff --git a/help/es/skipfields.page b/help/es/skipfields.page new file mode 100644 index 00000000..934da4fc --- /dev/null +++ b/help/es/skipfields.page @@ -0,0 +1,44 @@ + + + + + + + Cómo omitir líneas de dirección en blanco al fusionar un documento. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Compartir Igual 3.0

      +
      +
      + + Omitir líneas de dirección vacías + +

      Esta característica se describe mejor con un ejemplo. En el siguiente archivo CSV, la columna 5 (ADDR2) contiene la segunda línea de dirección para cada registro. Este campo está vacío en los registros 1 y 2, pero no en el 3. (Para que esta característica funcione, el campo no debe contener ningún texto, ni siquiera espacios.)

      + + + LAST,FIRST,MI,ADDR1,ADDR2,CITY,STATE,ZIP + Summers,Joyce,,"1630 Revello Dr",,Sunnydale,CA,95037 + McGarret,Steve,O,"404 Piikoi Street",,Honolulu,HI,96813 + Kramer,Cosmo,,"Apt 5B","129 W. 81 St.","New York",NY,10024-7207 + + +

      En la siguiente captura de pantalla, se ha creado un único objeto de texto multilínea para formatear estas direcciones. Tenga en cuenta que ${ADDR2} representa por sí misma la segunda línea de la dirección. (Cualquier texto adicional en esta línea, incluyendo los espacios, anularía esta característica.)

      + + +

      Dirección multilínea

      +
      + +

      Al imprimir esta etiqueta se obtiene el siguiente resultado. Tenga en cuenta que la línea que contiene el campo ${ADDR2} se omite completamente para los dos primeros registros, sin imprimir una línea en blanco.

      + + +

      Salida

      +
      + +
      diff --git a/help/fr/about.page b/help/fr/about.page new file mode 100644 index 00000000..8c937fad --- /dev/null +++ b/help/fr/about.page @@ -0,0 +1,27 @@ + + + + + + + Informations à propos de gLabels. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Paternité-Partage des Conditions Initiales à l'Identique 3.0

      +
      +
      + + À propos de <app>gLabels</app> + +

      gLabels a été écrit par Jim Evins. Pour obtenir de plus amples informations à propos de gLabels, visitez le site Web de gLabels.

      +

      Pour signaler une anomalie ou émettre une suggestion à propos de cette application ou ce manuel, consultez les indications de la page de contact de gLabels.

      + +

      Ce logiciel est distribué selon les termes de la Licence Publique Générale GNU telle que publiée par la Free Software Foundation ; soit la version 3 de cette licence, soit (à votre convenance) une quelconque version ultérieure. Une copie de cette licence est disponible en suivant ce lien ou dans le fichier COPYING inclus dans le code source de ce logiciel.

      +
      diff --git a/help/fr/basicusage.page b/help/fr/basicusage.page new file mode 100644 index 00000000..b157327b --- /dev/null +++ b/help/fr/basicusage.page @@ -0,0 +1,62 @@ + + + + + + + Comment gérer les fichiers et quitter l'application. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Paternité-Partage des Conditions Initiales à l'Identique 3.0

      +
      +
      + + Utilisation élémentaire + +
      + Ouverture d'un fichier + +

      Pour ouvrir un fichier, choisissez FichierOuvrir pour afficher la boîte de dialogue Ouvrir un fichier. Choisissez le fichier à ouvrir, puis cliquez sur Valider. Le fichier apparaît dans la zone d'affichage de la fenêtre de gLabels.

      + +

      Vous pouvez aussi ouvrir plusieurs fichiers avec gLabels. L'application crée une fenêtre séparée pour chaque fichier ouvert.

      + +

      L'application enregistre les chemins et les noms des fichiers récemment modifiés et les affiche en tant qu'éléments de menu dans FichierFichiers récents.

      +
      + +
      + Fermeture d'un fichier + +

      Pour fermer le document en cours, choisissez FichierFermer. Si le document a été modifié, vous devez confirmer dans une boîte de dialogue si vous souhaitez enregistrer les modifications avant de quitter ou si vous souhaitez annuler la commande. S'il n'y a qu'une seule fenêtre active, gLabels se ferme.

      +
      + +
      + Enregistrement d'un fichier + +

      Vous pouvez enregistrer vos fichiers de différentes façons :

      + + + +

      Pour enregistrer les modifications d'un fichier existant, choisissez FichierEnregistrer.

      + +
      + + +

      Pour enregistrer un nouveau fichier ou changer le nom d'un fichier existant, choisissez FichierEnregistrer sous.... Saisissez un nom de fichier dans la boîte de dialogue Enregistrer sous et cliquez sur Valider.

      + +
      +
      +
      + +
      + Arrêt de <app>gLabels</app> + +

      Pour quitter gLabels, choisissez FichierQuitter. Cette commande équivaut à fermer toutes les fenêtres ouvertes. Consultez la section .

      +
      +
      diff --git a/help/fr/createnew.page b/help/fr/createnew.page new file mode 100644 index 00000000..63ca8144 --- /dev/null +++ b/help/fr/createnew.page @@ -0,0 +1,57 @@ + + + + + + + Comment créer de nouveaux objets dans un document. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Paternité-Partage des Conditions Initiales à l'Identique 3.0

      +
      +
      + + Création de nouveaux objets + +

      Vous pouvez créer des objets en choisissant la fonction appropriée dans le sous-menu ObjetsCréer un objet ou en cliquant sur l'icône correspondante de la barre d'outils Dessin. La zone d'affichage est alors mise en mode « création d'objet », mode indiqué par le changement d'aspect du pointeur de souris. Pour revenir au mode « sélection » par défaut sans création d'objet, choisissez ObjetsMode sélection. Le pointeur de souris reprend alors sa forme standard (flèche de sélection) dans la fenêtre active.

      + +

      Voici la description du mode création d'objet pour chaque type d'objet :

      + +
      + Texte +

      Cliquez à l'emplacement souhaité pour le coin supérieur gauche de l'objet texte. Les nouveaux objets texte sont initialisés avec la chaîne « Texte ». Pour modifier cet intitulé ou ses autres propriétés, consultez la section .

      +
      + +
      + Boîte +

      Cliquez à l'emplacement souhaité pour le coin supérieur gauche de l'objet boîte, et faites glisser le pointeur jusqu'à l'emplacement désiré pour le coin inférieur droit. Un simple clic quelque part fait apparaître une boîte carrée. Pour modifier les propriétés d'un objet boîte, consultez la section .

      +
      + +
      + Ligne +

      Cliquez à l'emplacement souhaité pour l'origine de la ligne et faites glisser le pointeur jusqu'à l'emplacement souhaité pour l'extrémité. Un simple clic quelque part génère une ligne diagonale. Pour modifier les propriétés d'une ligne, consultez la section .

      +
      + +
      + Ellipse +

      Cliquez à l'emplacement souhaité pour le coin supérieur gauche du rectangle exinscrit de l'objet ellipse et faites glisser le pointeur de souris jusqu'à l'emplacement désiré pour le coin inférieur droit. Un simple clic quelque part génère un cercle. Pour modifier les propriétés d'une ellipse, consultez la section .

      +
      + +
      + Image +

      Cliquez à l'emplacement souhaité pour le coin supérieur gauche de l'objet image et faites glisser le pointeur jusqu'à l'emplacement désiré pour le coin inférieur droit. Un simple clic quelque part génère un emplacement carré. Les nouveaux objets image sont initialisés d'une simple image de damier. Pour modifier cette image ou ses propriétés, consultez la section .

      +
      + +
      + Code-barre +

      Cliquez à l'emplacement souhaité pour le coin supérieur gauche de l'objet code-barre. Les nouveaux objets code-barre sont initialisés avec des données valides de style POSTNET. Pour modifier ces données et leurs propriétés, consultez la section .

      +
      + +
      diff --git a/help/fr/customize.page b/help/fr/customize.page new file mode 100644 index 00000000..0f86730f --- /dev/null +++ b/help/fr/customize.page @@ -0,0 +1,114 @@ + + + + + + + Comment personnaliser gLabels pour l'adapter à vos besoins. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Paternité-Partage des Conditions Initiales à l'Identique 3.0

      +
      +
      + + + + Paramétrage +

      Pour configurer gLabels, allez dans le menu ÉditionPréférences. La boîte de dialogue Préférences contient les onglets suivants :

      + +
      + Localisation +
      + Unités +

      Ce groupe de boutons radio permet d'indiquer les unités de mesure que vous préférez. Cochez l'une des options suivantes :

      + + +

      Points

      +

      Utilisation du point (1 point = 1/72e de pouce = 0,352778 mm).

      +
      + +

      Pouces

      +

      Utilisation du pouce.

      +
      + +

      Millimètres

      +

      Utilisation du millimètre.

      +
      +
      +

      Unité par défaut : le pouce.

      +
      + +
      + Taille de page par défaut +

      Ce groupe de boutons radio permet d'indiquer le format de page que vous préférez. Ceci vous aide à trouver plus rapidement des types de support lors de la création d'une nouvelle étiquette ou carte.

      + + +

      Lettre US

      +

      Si la plupart de vos supports sont au format de lettre US (8.5 x 11 pouces).

      +
      + +

      ISO A4

      +

      Si la plupart de vos supports sont au format ISO A4 (210 x 297 mm).

      +
      +
      +

      Support par défaut : Lettre US.

      +
      +
      + +
      + Paramètres par défaut pour les objets + +
      + Texte +

      Utilisez ces contrôles pour définir les paramètres par défaut des nouveaux objets texte. Ces propriétés sont :

      + + +

      Police

      +

      Permet de sélectionner la famille de police et sa taille, et si elle doit être en gras ou en italique.

      +
      + +

      Couleur

      +

      Définit la couleur par défaut du texte.

      +
      + +

      Alignement

      +

      Définit l'alignement par défaut du texte : à gauche, centré ou à droite.

      +
      +
      +
      + +
      + Ligne +

      Utilisez ces contrôles pour définir les propriétés par défaut des lignes et bordures de nouveaux objets. Ces propriétés sont :

      + + +

      Épaisseur

      +

      Définit l'épaisseur par défaut des lignes.

      +
      + +

      Couleur

      +

      Définit la couleur par défaut des lignes.

      +
      +
      +
      + +
      + Remplissage +

      Utilisez ce contrôle pour définir la couleur de remplissage par défaut des nouveaux objets. Cette propriété est :

      + + +

      Couleur

      +

      Définit la couleur par défaut des remplissages.

      +
      +
      +
      +
      + +
      diff --git a/help/fr/customtemplate.page b/help/fr/customtemplate.page new file mode 100644 index 00000000..5c1ab80a --- /dev/null +++ b/help/fr/customtemplate.page @@ -0,0 +1,27 @@ + + + + + + + Comment créer vos propres modèles à partir de produits industrialisés. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Paternité-Partage des Conditions Initiales à l'Identique 3.0

      +
      +
      + + Création de modèles personnalisés. + +

      Pour créer un nouveau modèle personnalisé, choisissez FichierCréateur de modèles... pour afficher l'assistant Créateur de modèles. Il vous aide à créer un modèle personnalisé compatible avec la plupart des modèles de support du commerce.

      + +

      Si vous préférez créer votre propre modèle manuellement, reportez-vous à la section

      + +
      diff --git a/help/fr/editprop.page b/help/fr/editprop.page new file mode 100644 index 00000000..0f79b682 --- /dev/null +++ b/help/fr/editprop.page @@ -0,0 +1,167 @@ + + + + + + + Comment modifier les propriétés des objets. + + Jim Evins + evins@snaught.com + + + Mario Blättermann + mariobl@gnome.org + + +

      Creative Commons Paternité-Partage des Conditions Initiales à l'Identique 3.0

      +
      +
      + + Modification des propriétés d'un objet + +
      + +

      Les propriétés de la plupart des objets peuvent être modifiées avec l'éditeur d'objet présent dans le panneau latéral comme illustré ci-dessous. Pour que l'éditeur d'objet soit actif, il faut d'abord sélectionner un objet. Consultez la section .

      + + + +

      Contrôles d'impression

      +
      + + +

      L'éditeur d'objet propose, selon leur type, le jeu d'onglets suivants :

      + +
      + Onglet Texte (objets Texte) + +

      Cet onglet contient un petit éditeur permettant de modifier le contenu d'un objet texte. Il contient aussi un menu déroulant indiquant les champs de fusion disponibles pouvant être insérés dans le texte.

      + +
      + +
      + Onglet Image (objets Image) + +

      Cette partie contient une zone de sélection de fichier avec aperçu permettant de choisir des fichiers image. Le bouton de navigation s'utilise pour explorer aisément les fichiers image. On peut aussi indiquer un champ de fusion utilisable à la place du nom de fichier au moment de l'impression.

      + +
      + +
      + Onglet Code-barre (objets Code-barre) + +

      Cet onglet contient une zone de saisie de texte pour saisir la chaîne alphanumérique d'un code-barre. On peut aussi indiquer un champ de fusion qui fournit l'information au moment de l'impression.

      + +
      + +
      + Onglet Style (objets Texte) + +

      Cet onglet contient des éléments à renseigner pour choisir les propriétés du texte : famille, taille et style de la police, couleur, alignement et espacement.

      + +
      + +
      + Onglet Style (objets Code-barre) + +

      Cet onglet contient des éléments à renseigner pour choisir les propriétés du code-barre : le style, la couleur, et s'il faut y inclure ou non une somme de contrôle.

      + +
      + +
      + Onglet Ligne + +

      Cet onglet contient deux éléments permettant de choisir les propriétés des lignes et des bordures : épaisseur et couleur.

      + +
      + +
      + Onglet Remplissage + +

      Cet onglet contient des éléments pour renseigner les propriétés de remplissage des objets boîte et ellipse. Pour l'instant, la couleur est la seule option de remplissage disponible.

      + +
      + +
      + Onglet Taille (tous objets, sauf Ligne) + +

      Cet onglet contient deux éléments pour choisir la largeur et la hauteur d'un objet. Il y a aussi une case à cocher pour figer le rapport largeur/hauteur pendant le redimensionnement de l'objet. Pour les objets Image, il y a en plus un bouton permettant de revenir aux dimensions d'origine (en supposant une résolution de 72 ppp).

      + +
      + +
      + Onglet Taille (objets Ligne) + +

      Cet onglet contient deux éléments pour choisir la longueur et l'angle d'inclinaison d'un objet ligne.

      + +
      + +
      + Onglet Position + +

      Cet onglet contient des éléments permettant de modifier la position d'un objet.

      + +
      + + +
      + Onglet Ombrage (tous objets, sauf code-barre) + +

      Cet onglet contient les paramètres pour ajouter une ombre à un objet.

      + +
      + + +
      + + +
      + Autres possibilités de manipulation d'objets + +

      Les objets peuvent aussi être manipulés des façons suivantes.

      + +
      + Déplacement et redimensionnement des objets + +

      Un objet peut être déplacé en cliquant dessus et en le faisant glisser à sa nouvelle place. Si cet objet fait partie d'une sélection groupée, tous les objets sélectionnés sont déplacés en même temps tout en gardant leurs positions relatives les uns par rapport aux autres. Si aucun objet n'est sélectionné, un clic sur un objet crée une nouvelle sélection contenant cet objet. Consultez la section .

      + +

      Un objet sélectionné peut être redimensionné en cliquant sur une de ses poignées et en la faisant glisser jusqu'à obtenir les dimensions souhaitées.

      + +
      + +
      + Modification de l'ordre d'empilage + +

      L'ordre d'empilage se rapporte à la position relative des objets sur l'axe Z. Lorsque des objets se recouvrent, il indique quel objet apparaît au-dessus de l'autre. Par défaut, les plus récents sont affichés par-dessus les plus anciens. Pour modifier cet ordre, sélectionnez un ou plusieurs objets à déplacer et choisissez ObjetsOrdreAvancer au premier plan pour placer la sélection au-dessus de la pile, ou ObjetsOrdreReculer à l'arrière-plan pour placer la sélection au bas de la pile. Ces commandes sont aussi accessibles par le menu contextuel (clic droit dans la zone d'affichage lorsqu'un élément au moins est sélectionné).

      + +
      + +
      + Rotation ou retournement des objets + +

      L'élément de menu ObjetsRotation/Retournement donne accès à un sous-menu permettant de faire pivoter un objet de 90° dans n'importe quel sens ou de le retourner horizontalement ou verticalement. Ces commandes sont aussi accessibles avec le menu contextuel (clic droit dans la zone d'affichage lorsqu'un élément au moins est sélectionné).

      + + +

      Cette fonctionnalité peut se révéler utile quand vous concevez des pochettes pour des boitiers CD. Pour le titre sur la tranche, vous aurez besoin de faire pivoter le texte verticalement. Après avoir créé une boîte texte normale, sélectionnez ObjetsRotation/Retournement pour faire tourner la boîte texte selon vos besoins.

      +
      + +
      + +
      + Alignement d'objets + +

      Des objets peuvent être alignés horizontalement ou verticalement les uns par rapport aux autres ou centrés sur les médianes de l'étiquette. Pour cela, choisissez l'option adéquate dans les sous-menus de ObjetsAligner horizontalement ou ObjetsAligner verticalement. Ces commandes sont aussi accessibles par le menu contextuel (clic droit dans la zone d'affichage lorsqu'un élément au moins est sélectionné).

      + +
      + +
      + Utilisation de la barre des propriétés + +

      La barre des propriétés sert à modifier certaines options communes à un ensemble d'objets : famille, taille, gras ou italique de la police, alignement ou couleur du texte, couleur de remplissage, couleur de ligne ou de bordure et épaisseur de ligne. La barre des propriétés est aussi utilisée pour définir les options appliquées par défaut à tout nouvel objet créé.

      + +
      + + + +
      + +
      diff --git a/help/fr/figures/main-window-empty.png b/help/fr/figures/main-window-empty.png deleted file mode 100644 index 7b97362a09ee54bde28304b519a1dc4aada8a1b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32829 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 diff --git a/help/fr/figures/merge-ex1-1.png b/help/fr/figures/merge-ex1-1.png deleted file mode 100644 index 0eb7db8ca1ce9e21b0b452b672faa8cf0bf19024..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33042 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 diff --git a/help/fr/figures/merge-ex1-2.png b/help/fr/figures/merge-ex1-2.png deleted file mode 100644 index 42145f6e1e1281f1cb14697cac9185918e05c921..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 59141 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ℜ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

      {A_P$cW!8K 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 diff --git a/help/fr/figures/merge-ex2-2.png b/help/fr/figures/merge-ex2-2.png deleted file mode 100644 index 699168d43a0cc7d69dc739a6f5b73e8b2fb172ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56997 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 bilxeLQxY*WxNir4(x^O8zn`t}?A5;kt5bvP diff --git a/help/fr/figures/merge-ex1-4.png b/help/fr/figures/merge-ex1-4.png deleted file mode 100644 index 49a0aaee23ff1eb6957662ad4ea5067a61370f93..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40671 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 O2s~Z=T-G@yGywnvR`o0Z diff --git a/help/fr/figures/merge-ex2-1.png b/help/fr/figures/merge-ex2-1.png deleted file mode 100644 index 06225c7b2368ec42abb6b9fdc40831871b6334e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34309 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

    4U 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 literal 0 HcmV?d00001 diff --git a/help/C/figures/main-window-empty.png b/help/C/figures/main-window-empty.png deleted file mode 100644 index 94a2ab4e32e748b98623d3909ce161b5e8e4a9b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34238 zcmXtf1yGw!*EU*$Q=mX0IK{QNdvPgHq(FhfAexJUiY(e9CJHj( zBQho31OfsTf`W{smdDaju4j&+Z0cQ?>#6VUakbIu>Y@%lfI5&)LP7#)_V)9lmipW0 z*b#vfC?Af{uR?AiP*Ge|RNOElGzf#{@fQFQNpGmrb?WhA?a=RW_270;-)m?t_ax-k z^|KGVO6#e{m!==H<<6?Pv?ROA8)Tav(<8+xjD#4WQU&TjOesKJ`5HsOE%G6P%)Qzx zyUVj_nbAG9*u|Q=@nW0}+ka0ns!H)t5BP%kKLt9{fKugs!g|uX?tS@IZ{HOk`n}yA zM0G4JC4+R`Ds@4Jb-s0jZu&wniq-%7jjcYalHz**2q`h|27<_eEuPu1a8!WW)MR=e zGf|wEeLFbrLAU0CW$=1$?|rw^QBhiLL1&)TKQlL_oOSU#0e7DZQjvKziv6-U__-V&>3i|0N>NQx9wULXuz+Rm#_3nV8P4Z0Z! z5eVMcuXiVTvdx6yINR$Ef(`k8c;tEX@&uKt_WWE}PcH0orYsw?E~fX`vz!aV{~=);Z9c+W5XBUm?ie9gKVM)KFql2=|ETZqU01JnpHC!uqCuL-dNb)=MyXndZ|D}M%k{1EejQPs(R%3GM2wq(rDh=a zOz1ni4VNWP4`ZQA+iRw`&Pl=6d_PuuONc?m>J4!oAkd-RT3v3FQEkTQT3al)nmFqG zC60GzDLS9sV!tp*x6d&C$ZYd3YBQ)pC|=4bWVW+(esY~Z%Z9F-=^iZ3yZQUWpBYQ>SqE&B5(kwPj>8<;&W-h2Cct@42_EJdE_ zT!gq<#KY&Y%)c8Xj;t~-d2IEW@sl-aak9CIEgOu3=Wa3>$C6L}LY6GQV6&Nm>g@fS zcWecRtsZ$O)Dy1chAdTttjkP>(3H-*DPF3QaA+%)PUq$Km$OXo zTFBR+jEN>DCm=DCBtI5#ke&o!tc(6~%U!*h<$sS&T=h*%(e^VN|F3;gL_>x|<=Tsx z_bU&*3<9%x(Xc=WBesX>i2VbWkoOy1*CnizyHz1N{1NboJz~}bXH5C@93vrzs|eGu z_|DtV`zduT4Vn~I;u0q`2`_xLzelB1r!6P#pVxI5jW6aPFJZEny9jk&_OfJK3JQ}y zbtjIXlt$iMO|RQbL}S^qhTU6al&v|qzEJ9M{n}zWk}uWdrOb{Vc`|^&gc3;tx;FRI z9w#78B4=>0G)gd{jm_4I&shJ{Rg*srnJ9Me#1{^A#y=Hqv7N`l0=FIWXX$Mx1%7Kk z!AA?du^jomqKA(ycQZm})R1HjGpkJD;K1iLtGvnXt$h=W7NkQrm+v!>;>&I^kpCjk zudy?KBz-24e6+69aB9J7YBF=HeVQ!t!T4}o^=1is)CTY!Gk6Va<*be*{z_0L_<_-0 z%6x)ESRK7!a<(>~o0xwZZ^Fatnc|z_yf&4TfF zFo8&)i3Ak+Z$u(ttyfnrMTbIQdoBS1c^bq;yEtCkxrFy5#+PBotX+Fw8(U z4m-onTiW=zG8COAqdY6c8uP-NcAH=7P|f^bd2p+(Vctz$S$_j@UZ!@=U-*r>AtzoT z&vSMnkUlmGbhYf*Wx)^_uC|WQajxh#rmV=k>C4LEm*c1jmp8a}J4r0;yIa;cx7GU_ zud7c#zaqbJfBHerefV|w>$^ypr##c!EY;cslg$S0pZi!Zx@@PNeiW}S$*_rGa1rH7 zdxT{xszaBX*!t^zzK6>gmAlUibLEX{-kzh!X*T;tdY4CvifTD943v0ux&wXnK)20b zl&pTcv69O6bQE}uGAcA%OBi*rg@7XeN2({02bjVO%!5($bUd)Nfx7rwk-m_*h|kdwa(HQT0}Kc3WxHt13MjT*8D= z7;$KBdN1Q1#>=X+2Y34%V%@52#yhG{%!dA z7O7}NcW0KTrqvM_f8Oa(he+D>+eme*{|@_dsdSs`x&#C}jGMMmP`%9xG#4g3P7;@4 z*V*{}W_l?>gbq;RTW^VD#-_^UJmG{^Ar2i|VaNSS8|V3VB;toQCztgM(nn z_r}vrjibP7h>lwB$-TPjv%al1THKQaMF7V$4B2jE$*Q~E6Pssd31H&QSif=XKHYgKI!7Op~X)OqcC_2B~0yAe1zS3`>? zHde?7x-61w<+9Avc=j{guf0n_ovpG1A8XA6lu+FZpCatgZbVGS-nX07oT#09K{>p9xQ0bS#H&DZ1>qJ>-R&rRbgQaNg9C& z`eW<#)6F^Y!X(u3CThp$+|u9Vhf>NwSnD6bPsB*xeT@h-2GfiVZBXhk)*>7KsySr} zbB_EafogT22)+D}1lI`vnj4?d>n?Kff#vyVJ;Z75q9mhqXqOoL{o$E4N1S-RR&ZkO z)5l~ve&w$gqs8U)A@<86U48_xybdH40+BX1(dp90iK&@?>VNW|k2`enr3yHwOULN< zz|$_ni|tIUskcu||E$?w&{O6M%i5yzI(hP7CUYEHC-J%Cu}xyiwzh0-H%AqIM;eN% zh7AeE-NmM_Vh1NAywysc9Dmj{054eYhPx)EA_VrA%5kR1=PCxX2~00ZobrmXo`IUa~?nblgHhQk<+<(H7!?4 z)mPquf&Fq_`MM#Bulo8!!bmEBB;@C(4bAyflsL%BIbLKC-=_^YpcrIz(G_$f-?Lm= z5e(tQ?VYIjirHZoRrybhJp z2r=0}sJ~uKEUc7Vj5X9=-@tA5kVzK@Ui3=nfLGJAo$2KId_cX88n$n)*RjRio+}qp zH24@bzL%FSu1DhE-y6acr+3jm8M$;|L$lZF zH)9(<^*)NWZrn0l!{^ip)DIwISF7^OiXqk(d;dRZn{%Zxh%)|;nP^ZyVqmmW$hsCKu!%wyG+-J6j%Ck4MI4bhcaZ>30ooS&Pc3HklW35YA!6=}NIE2+psK8@$% zdiy<#K2d(VS<$O?Q+i&p{Kam0AQ^wqY47;he5t{@m!qH4V>?lh%)KqEG}2rz znY|43DA76_k(hNNy+K}=>nle2dV2>oaM=u@L|d@PEckR=&;60h@X5zgV(Ck93~MCjafpM?yp{S-o$L`Z=+% zdW{F;$VJZk2%vs3rDQ%wuCEeer&`WmuB!c`SR7iTTRp6R`o8pmDS-Li?0hd=%iNYA z7LY%&a2Vau`m>G)(+~dAaNRShld39?Pr9U(}MdOr6q4Xz-Sg5;uv(WKxNYj~pMWCus1ByS3ThUwod!W}s)VSM4cBY3&tv zyPimcUqa$fQ}C+2;aw4SPOTZmx6W)8;V4#dQ}#>{@tzxW)ZV`Extk)Z4ASd9v+x0* z7H_kS((8k_MQ1LXu>WY>pkLpJnsDkPUllDo%2%$jFj#)D1onuU5kOr9RI*=l8LC28 z&&R#XT3jNAAw`?N_x*9r4Oq@)zgBMNZNhCk59*KOsqwK8MY}mFW=ZU!w6@sadJjz% zAWNtE@D^KcgR}AB%ahI z&^Ai{Z&z`uHh*Vm;Rt=&u1?X|!ptymyMKogRFYb?dwF?Byw>~J^^+s->~8#+(pW9t z_3klNfW%~=Tx7(VH3U-p42nOSJQa&Nw79$0d3mogy;$Q!OUC!3&lLz9>~{jTJBi3C zrrUC~#Kpfp&qv51qexNvU0k{vhi9BO1H#sn@cBb>M`Cu~XUp#R*Kzqf16!B?n zCyf||>MVB~@_!qTHF|YOpm=o}VVecm$%&zed6PH2cINtf&CeD;5Gd=r60G0rBHL1U z5C(2nygoBNqehqcpMQASL~FD99qn|#ql4#QwcVrEk*enZ%4GoAV#$A`L$*e1au9ZS zdQ_WCtsP>(srljlMsi3Q+RQ%mg4p@cn@?+)ZJ6DL7v$6tJ^VIK=68AIXH89Mfg@?J zB&nYP+3OE)A28TCo;F$9Vcu>0V>W#K8Zwi+6K?bo4rk}FzQV^|hp_u|4 z*QaZ8f;mU6x_)*;4~)Ogp0|%(Lc=Hp-o7hWxsP`zrfT>jC39*{K%D-=B&mvb#++2k{r`;*Gi6K6LS$0|0^_IyhH#M#!>}xKE;htktvbq4I(w_7n zlX3A^pRlkn`Rm(6a$tx=3?_T7A>UXGgXisG^^WN#71ci+SI5KoZ%WHA;lKUw zZFc!*90y`gcW7ZNfP6bL*W*X=bDY9`or|rZ5!4Ho6KApJ{WcsXg`7_ul!#mrl#%@g?27 zz8S?u7~V@=ScwLGBz?vN-b4ybif0%@@=uzB@DuPixN2lT6p6R-mHT zY&o_6wcmORRfw$qDo3zSB-da&gwC@(E9vc(P%@%Dv7j}$MogvN`AOqpA5o~}mblts z103I(J*Mw|vBu$_+~)saG)reJNASuzvUMna|GrwtmPrG%W;f8ihW2zzP>)2>=~oeQ zli}H+kstXoa~zTOpHpca{mOUn0_o(DJiG~`MwgEYMe6_lcF?H;Cl++Lbx`GV_%Qo) z)j2k*-yA_YEyo49bBLwOBr%4K=a!hdqk&oO&*eCF4NqU+kdrSrUve9Lnr^6bq>3aF zvR!W7KRPNF7$405t>nXt~ z0$u8P@?FWAUj4{lpK9xyAEG>;rb{SIU+TyPR{t$Zg$Rp#Gc~Q;I2@hY!ERsgzjZb{ zP*k@cup*p1ReLWqxQmNFj54(B(TXE6=-_{e5%f81eYbLXN3qKx5Snncx#YNZk?8}4 z8trBpqAk?lGf^yx^a+lAeu3Q|yOh;oVY}8^=p=cTu@1n97-p!8uWF)*`oAYi706H4 zCFb>y>Q$F|Pyev77`N;>dLwje1>kC3?RvOwvtF(bw9FR_c&jc3{IA_0DKP$B6+7Yz zsip8=n+}MKlvNeq>ceCSl zW=3gzPh74@ts4O!y`_O8Q+)@{$>a1T3Q^7w3lZQdwJE610nLc_Pz*2Oj)fZx5Se3xhGUlfrsES1*>X7FbjJ{g}f5C7|v_&3|J^ z#hz9C7HPMkZ+5-}-sbp^kYcO!@~F&-Jz_bupR33b3t)sIUG8#F;Q_S#Z^2Egqh&u@ z%oQ=NPK};u)}K#qaUPy|b&ST+yPhaDOVe)Ozlj}VD?0dGZp5BVovKKl{)S&AS&5@9 zhfN<0ylRpvkod?YA(l_cd#)b|({HTc7W8Q_dYAG^RJH3 zSbk+@gq;6M_)9AaPS?88JAoK!6_M~PyEx+h?@q(0(Y;Q^UO+XpK?8R8nIS(qn88nb zg}t9@mD4*iBYHh`tf01&B_;x?{}RLb{2*hXG{9-$9h^A%U+?H4Xm`O!jk0Q(YxdE4 zR`Gw`H6y(&9lrTZP74|)P(zU@AB>U@(W?6Yn$LHQ1+Xl8wy5q#KoXlD&7#hK)Be|A z^y_+VZA|QHY$*&OtDQ*XD8B#;2|w4<+toe9ECR0C|M#57kfWoO^TyEiqpm{~uS$_i}=QA0acPG3?Iw+1ATV@p{~rg&lxX883=VyPGqqX1oyT z0^$-o(@7p|NhSk$VnHZOxyaP546|yO0nhfwO?_u3TjxE^gsFK}v{{8VVbq(FqQ&0Z(FpZCDf?}3h1 zQ4DrWlRQ;~YkpB^-qa|W260w&K`BWy8|v0UnFruhe3kig17hmFl!kby0Erl7s8paj zr-04Y98YYIR@A`2r=)U1Y;0_X_AawJy`UbvFcaX#X`1r`^7s??)$Dq{Rb>tyGCGGa3)o#QsZolBSx(bE%M1Lz~`HkXcqy)x838o!Wq8ZvF8Q$00M|)mc)cQTw zlZ4?WjOMllsN;#fKqx7AyU~rU7<OQe zSruNrS}oPQcfk0vmj%*sH&E#p6=iZVOqURlYVFE*q|=znlOHk`Qqgqg?ysX){)>Lf zQTJp*78W?sV6!+-%ACMa7byh@JoJQbT&7)|D;ZzRgTAjlaHI||>!z@wNUA^}5NU9s zrO>8}Bs{G5vVCfMQvr`c3TI=0U5+SUrf*GFwxw!6)&mL1N3$&mn3CuCSUZ_&YB-5& zRPXM9*7ZEr5iWWOhO7u3(K-cv*>3Tnm_98ls6|``E0iYn?xfc>=$FyQncPM67h+-2 zIodteFkhPz5zz~x+hh$)OsHSGyEdL57@1B2%C-Ld>4_ZpUNU=6sN7kC94z>MUI0x! z+~I3RqUeP<6-`sx)z#GoFnCJr9#24O)3Mwr z1+{B3e=^#%;SBBRKi-d8GOe*3U+=o=Pl};pIne1{R2L17y+*n60l|c$*3lfk-VO3B z-lq_|bvaJcQ-p>;jvt%7-+N6ndE`laSKSayRnP%m8Z(vjIT`S%80*Q-ReB!$Lg7x7 zZ)mr+vR|)El?ZR`vn2T%;0U zi&_RW>y%VL z43l@!bol65Sy_$-={{m=rqaF9Q%20sUkM6X6NWc$)qjMqt*!k5O9LcLO=%IQMJ7X8 zvu#8Tn1*&R1wj0Y%A>o{d!NeHWQsn+IiE&al>(3bKLT-;n@t zz48Y=;~0vR&9F7u)@y(3n=24N1#mQitRM7hjC*=m zIJ+qKJ!cUgWGdXqo3@Kd_^`Ilh46<^;M&6%9bz>vtg9Oho#g;}6peW&Q3u5l!Ax&- zV`Jk0c&2C1w`9!isf!B#cAQ0@cZiRLB2S0^-;o&BQ&%<-{WLW*BctQak9~bDQ~0@6 zNZ8uu$H1isJS%Lf|8C%QtDJB~I=}ZJ5i=@ROF=D(vMw(v36&Qxn6;xzQh4%vMW63W zd8n3=#sh>|*;|*N$iH8-2{Wnj9mF}XvHhF}#OOCF=>ANaGYoc6qZzQ)cq_G~P;J9K zhX=3-K9aHZ5e^nkqoNTEsSfb|h4UISpRCMZ_^3lInv8z@Awla))nHJm^}3`i*9ANH5plO#ld1a3})3kyJutGE5V$ha^?_*NBnTy#!xFjTunKKbaXCxbXs@259RWVBGyigfCdWbf3{(J?`tQ`gl?baN-Q z?!kZ94PzI=4%1X=&*n=>{!QoY1Wg%nm@dso%izO_H*1L=O-ez(qxl zfK;k4F$X;hjg33Nt(cYSYti14a#Ao`-yw03BLj~@8Z%X#!g1c1xzpoR@wA`_1ez#E zx!dLc(^5fN^CtFpM)(svs==!+?yo_oevfT^&~t*1X9{qYGYkfI4}^oPXXa+6)?5*$ zEt5F5Ywfc=D!1vr3JyBuNQ2H8I^VoY?o=yKry{B-P-orXjwyObTZjuj6o3ctl(h66 z1FhpfT3eC0eP2MJxt;(xw$vK9(3Ri%;DwKjeE00P#ml?xEQr*zA-UT^K=UijeI&*n z7Dd}+zldPaE!Tcaw^vBZ$`z@yKqNv z>7a3hLmYA$;JzyYS^!Pne1HXefp~5F(i>RF7lV0M@ae*+pd|;avD%Xt1pCZ*bs2x^ ziJ4~D$Gp^>7k${e0G6&*r^Amu&t4bN{aBmR{Uz;61UPSQ<(S|o5VXmiA#5v_yLt?# z+pgx`FMwn1m(94}Z=DN(?RChHzg?;BdcNaDPP5l}=HGr>?ZhSOf4?+jO;hUi5n}%F zXt^FO-vrLcF52M?lm6BcQlU@%dnr;JqM4rO_jg@V00>v0v~t*{wboMk2e`EMx#8rxDh|E?b8iPMPu!|FbwBE;K#yqx9X&Dj3%s1u7Cg5VjW_0$VNV~d!|=%Kb2Tu4^w*JB7KR?Cq2SCr{oDE3_uYwR zlQHkG&~}L{&3&tJ1a{dRr+Kl%*i;VB98=O>6sGk1ipWmk-y? zASG#OWa&th7Ui_*bdI79dvW>r@3oFn4?`YV5^zFdptkrvY7jb$ZIyh&LXd(a3h8yV zLnxdiO`vG;L8L|zGnAX=DNd20Nldb~>br3-K>6=H3^l7T5 z>FHX*T7u#b2My51So;uPfb{)H!!2jNk#cYM=!@m#`g-t{qGW`~e6O2blq^~G(`nK` zFHQ0|ZOA9~{IUU2DmpqOeeL-|20-lnpKpessS)eKHR} zKV^Gg{x%)g`>O77a$!y%vE9+USQ8SGFu#R0Zqr@mrKKfDyX>^Iw4qs(qsC-AT&52_ zjsQce%KOWFI9w-W!-V%EwdIjg?2rLi-r&{a*}Zb%`JF;CavzKv{q8wp_y-Hqq+HrD zN;)@wmB}rLTwZTDb!tk8KxO)ORTWFMS{T7bBynvHM(Fp0-TGdP{|pmKpv{umR{?v9 zeknx%=Ct*dOBNroB4#rz4xXKeTIqzbcM&r@Ch5HeYAEy9io1Dl(H92Xb4OzN+cQsn zU%Mt;6Y_wKD)Dbsi%JZ=f-Lh^hxONga{Eo^oL$mCCb5pdO_V9kKgvbG_Hdg^|M%L1 zQGpD_R1^YgM?-fFdK4z5zXtscE~5lWbV1fxS2s5_C4F^OMN!>S0E_XQNWmd6yUN$z zQ=dB39MIvEh&}1!?NJXW798`t#>QrpDjZ(zA1yXk9B3VIBZtr?5-jWBOuzAc_6@IU zyQ1qc-UvybKE37k9v1-)_P84UYytZEj+>x|t@ zwQ8FfL zoYM+kmcD+*KMF)9bL-_QlG;&nh$}GL(9f)dg?c1DV{H|I;4)#J@-&?QfC4~4g8J?{Q8{8b0F~lQExo zVO4<{tIHZ>4;zB9Nzjr;CsHVW%n|V&-iejgmQjqH!2Vl+7sd`h6$b3#3~DD|G|azL zAAaIR$b_|)ETC|FZ;8LLLocCn$of6k>ze!LRcVJp7;L|j(qBg5wk5uXG-Ni$EtTTt z1w3ArXR4^>Q0?=c9&S^U*lI0VRbmKsHfK_933CWZu7S09Kx4kLmh_$7JF2P+!_gG6 zLa)<=u`gjqD3hDhL3_IM`Rr>CvH0a1m+EA0B30OauJy{*1~nb3q@b*sAYydok4K<` zwmg^i1qoNJnVZ-U@96`An#1ANXf$YZdHorKyEi;jK8yo6mjkp35*lYQqeiJq_G%>)t0WY@oE9<(05goEk;7H63QOFrW?&c>iZ}#$2f!8@1xLs-Xj7 zdC^Vj2Pvuc;sx1L=DTZTc2@!Q!FGlGTp=fzT#qTTqjuIJR%A86$1z|DrOFroxpu#k zuG9BEVwAroh5Wh7Mr}j|AY;^dr-n3uM$d?+_hs=k(Q}iqo}YQ~wdO1qVIDinVk1p{4+#EEc5l?yy%|p1H<4Ff zm#feFlGSQ?zHNxV-l~m?TxzUchhYxESby%bpR_|6wqw4oU7uu^W52n3$raySa)w=u zwNVy$PPVLE4d`q-$D7J%?bmu<((hJw#-O?)ehfyp+wXN{4SNvUQ!>YE&42G~Vd~|1 z<6fL8T=srG_`69&WrZdsb}~8eS6dsUs8;Wa9-GHWAH!F@#nO-Lnjw94QSCR_{4}i5 zS4qn`RsYI`VH)-pUYz1H^oUfh8kmRGa+FauiU}?Y4mFp1$SIP&Cc|}`O>?uu) zkML?s?EvpS`P?cKcIuf`bLE7JQI?r6!2Dg={&!0RAcxS1t`LSfK`z6G`+KF2T{1xxmwHa@|uvl~3 zDK~g7Xp5A4e%i7W-^~@bhY~dT<(+{jf4)*S#d*zXQ352X@GR!%?2i_`1A^F`a_crq z(DcARdCSHsp!cq#DALqRw|4YokwK-&3vHnTOBQDAV*|uD^&b5;7W3O4Kinw{g~RG% zjxeDj^NE}pq`#_#l^6}e3()yaj*6X5@Kue#F}{yC8tV&vfzRHH$vAaSE0_SnwtrYV z);WUNdi560<1H1LM7XIB>t@R?M^Emfr?RxE2gYj$seKJ1LwyLIXi^~Qfx7cl_Zh3K z@y-tK3@!&mKu>1H_-2eJHz#jtshH{TwqEYU!rv=WNg6H*p=^e2ToVP!$2k~)Z_IL5 z(2~2sn^xajart-C@k;bJ@qBY7;yQaZ;#N@d(J9T_I2xYZt2I}vucC;C*)ExHwN_g% z`)SI}f(%q?Ny{atk&7Pdt>$+`g4xeZ|VgY^WQZX@$K% zut2&ZBz`c6GTk=&#UH4L3zeP;Bz1FX6SHh5#t(b4fSPkk!`B8^$+-8Bc-#Xx#A{Pi zmFV344zuZsl-{pA6CZrPT&QJN5PL)+ZohmzU$N}^3-z~xZ9zIH7#zs2J*9ALO=JX- zOqehV!VFi`oG18)4Yn|QenAr<@9z8k{ZUqf;#XZMm;F73u|&HayzS>iA6WeE|Izb3 zA87M%D+?vVVC!C#t(qG_*OIEomoE@dYXR`jw zV_4SI79Ch%H*{#3bS$WC>OOj#xZ&x!RVvA6tMdrli5cF)D{TKom|R-j6duGn@BFg1W?hz$ByT|&wiGW!eIQwSU3@@$Y}s`S{l>Z*We9Y#;8%hl{s8<7MZlW1pV|H3*8z%hT4t z$CdhBp-4n|{6M49uIgy=XQr$&*@ZecY;@r$2t~$>_ZPSp?z9zG^ysK%H=QT)=f173 zti($0{>E2)1=RD z?edVL_4IC6HP=FGG%0cmTuN)Y+>>_4_sCZT?@>)GUam-y#!Ssjq_Nd3IB1L>N%J30 zUJ1do+W44*w{RHjVlMlK1!txd5^vntuasu6$erF`Z@9G0%na|_YKM}>7Wu($1nfrc z#ZFg#mhr9tk3LAJXqyB{h-H3cqnqfezUW^z%Pm3-tG~ueG1{t`Ye6YN=9X17*+a^O zE6|F1Xmh23C;NRTd-23SdIA77XMhVxH`Y;5qhr@=#~X9qs_j+lVdNjv*(M%EPqz#B zgmk;m)6Y&02Ns;Tff1;tcy?i)x=~|0l`?1EaQh}qFnqh4y`g2tGUeh;N{+T`Y=JV9 zL9-_7uR}?mf=vaIQN3OvWzmSw;^_}#@pZoGGTCkvCVFO$%)3g&jQiy*@`NvWgA`$(G@#@=;A-=XRd_D5=n9 z{B|J*q#ZcWpkX`xEe1@(#z)h0Mn4sEXMg=^NfsAzHWuHWyexLc1rj*b5*gVEiZ&WK z5_HYcB!=0GFaISlir~KWwLDuoorO*ha|sUcrvH-;GmPiwxjgwm-hN%w2Ijk-ku7H4$YX)es`Fdp48-DP zHqZkZK7gTAPM&*#ujaEQ{OT2l+nQ<@GupZ7`EB@yHy6Q_t0UPjFNPT)(evY;siOJ{ z?7_K-P`cS3Spg?oK%9>SF3LII!ynD!~hduZ7k}>kj7a}l;?(Sk@zFeLz+N}KjI#x&Fz$4cm1#R zbzL4y))H{=hw$!xb}oNkfknTZ*Ktd_9NeP1n9-t+;>lV>pCrs+Pqol zg(fLtzpbu9W^%HNb`g@c_Z6iYDhp>^!jZatiyl7dip`KuYunNX`r6)^S>D+_LwA$2)0kJ>_g47WUBt z-{%FdHX>ikrY2?k4{&F~3HVg1Ae2i(SS3rm(IWU06%Z~B*iVqhd0Sl}2VF>-Y+;xA z{@JG#SH()8ADC%Jp(fQpAGgo_59j7>6mJ4>Pfk%m#U45AB!PrPCMDSvwTKr*nIKS( zUNi!#ERyzVh(nSreFG*yI&Il7u{;|{_;q%411`=CZ_cw-$SWPXz{ykn+Z!q$$t~WuJZ;_G>RDFpk$=_2)gFJtxHW|+m$;62SZs3~La`^2!9jhB`6Y3cTY0>Y5$6)=baeQ*md?9DJq|oBAnyUuGibXVO05cXN(v(3Dq2Mt>r!FN; zXN{MacXk!E6{J&?_{p>vX6+RrZ{AkL`MaV5x*(m8?qZmvf*b3lP{>MNsu_83it+4g z^_7Wh&A5&dZ&rXLi=MFBWMYzulSfN}ijzmdUrmR%>iMm=xnN&& zMiTC)-bPF;`immJGE4;_UiGT7R0TNqL!C>LFLrZ78Bc^kod8l1$|PB}3<{$4fej{B28 z=)_Sb@b^;gY0b?}JGYHgXLz%+HsJl4^U|NL-tG^)0$TXrOPhVr8hbM8zC6SUgdlLW z{wS)}+$9X%s+QOwiR)5-@cbBtoBmG03duZLmS%AEUb8?zZ!+Xp!bmLsCzbpm^`F0r zxfln(!40@k<>WpMv;d&_U&&+_ki39#TCij;3iIes@KB+->E7kH2oN~Z{Z&2y zf1V*GSeaQvQJd|@4z8^mcSR$P^t@VJ5(Xoo{nS2iWS4)V{9We%ObZNbOP`zi6(b=N z&09I1#m;jIytRi}`B|vfil~+UGc_p1{OP8afg^l-To^Wbrej@+YF(7<_1ynFz5+w% z_gKo){{LNgkonGQH|M?W)%Iin%QWA5G^5RxFsq~){A_Hqn9w|Hp|5TQ7LV>_Q`CMoHeuqw+ zB;%{f#(C#!L7r3lssAV>p^osxAQlbIprHPYL4y7g0B)h!3gAZ~X6cujyu-8!A5DSO zAQ?{o5#&k0pTGR%iLLhg5}_2rzj-LagFQUY zDAJNorJfVvE_T&&>J6+H_afT05g;;@AVjI2jg;BtOOd)AA*v5A5&>{NT~Sd$))lVS z5niAI2L~*(P=Y0q{9gN(z@8cai9$E<>;){rHf)qb36jz+hgq^lVxxWjCpy zN7C(NMUo~_N-xZQBfJZiuSV-zk)60I033tTHB^d8p+-5RjCyma6}wJQqc$URa+Sc)%v(RJr`s1vh!u z`P~1+>Xpbo=yQQHs~1RUQ04s&hjlT7LGw+f*Zhvhmn3K_G#z&VN(@ zyg+$6M2*0@V)ylHFW59nA&Y|7Jj zTPZ+BU2!g6Z+v~1YaC7;1y|lV-j0)tc-`U2;ZREc5uIIXwT%rh-`qP-Rv*@{C1=Kc z&{U*N#WFQ12T(uB^^5y?P{!HQl3@MNl}ru`gkLc&EGj~-udm-bI+78}{iLHqytKT` z#U&V7Qt|-{3(MHWg-}{rx`uVc=;qDg+L50&b81b>5LKdl_a$LeC_c{MG^Xm^UR&Tch{I0kMNZ*$SxdJHTK;_6o zsxc|y>?{z{-8&e+!5k{;?Z&_AY*@|k?Qv<0RT3kx_WVWmb^8Cj08a2bg{FgXP@|Wf z{DQ`TvV6ZN2DQA6#XZI__hUF4&Q`5it0hIBF5MjYttJJ(2$E-Vn4nKc=6h|wlAUi`-UN##e` zu$RYhFwAo#HDCzc?(i^NgS2Cn3xHsl`&L=m{Lhzqi}i485)#iFEO-P#@+9RW6D=WB z*vRKHNYnc~aEUd+&bBwXOl>kv@m?CGbn%RPUggA63c$+BPLn79D*^7p!zxUG(B^Yc zy^Zh1(5+Eo4@v}-PFuUUxq%z<(WyC;RcT2gyWI>>STV!?UwdyE)m9X)>*AznkOGAu zp)FpZ6f539fl{ovOQE<^+}(<_I212X+?`;7riEgqxJz&d?s8Z69_OBY&mDLFI=}8X z3J9)S%e30o53{$^_8 z&mN*y5(=DEsjgsCJ+R*6%mL`!3OFu_yl#u%<&xRmjxjiiJU&OPuhCvSEiJ95a+%)A zkW_taEG;8jRz*ccT_roEOyco;uATs&NVJON?eqP`&iGO40{JIj#-mO6(nGb|hBep2 zz@z6?JwYz37i)))tx%dim#yR3GN^aQ&)OTc2tu&2QQ3*5jf(Ciq2g^G2);p^;Ud%} zn;yc|0OB9OC|2c+ot~YJ7}(%h5{Z*kc~2;jCdCve>ao9q8c4mkn0skeSSs!@|ND## ztI1&@cvV=~?T7{|C3K>ccDEjnOMM0Y7~gsIhq%Gb5%W;i_4mueo1=}wWW4&Wo*S`X z%&1!*kJX`h{HYEzRu+~Q@+`qW&FR^uep=9jl8~PD3l}d++QT;j8v9Q%h=F`J%InUS z^M2nA3#)P!=5=>IviZWXs0WGzfCgM+z%(brMj2|F=46NOb569nj9>-&WFRG0IDc+( z@Q&~^@ud+rL$*RwS{9s}mx65gLd3**wtxkfKR?t($`%Z2KM0lTfMmpkF*7go zuCG&%%#NWVvZh~3WwJet0q_{MwWGVQpQ%zEY45JJ`w_<*!=p_V)RjB=ZFShB3}QVC z@HSI>{N@p#)!8{&0qHadW@lh}#2&1>3HRY20ml5s12z ztdzYSqhVx3c6CV+y1L+yN73-5b1^StghzNVC;nPGDWPb-7=H*6yC8uegDffE{a#B@ z9_~)E*qMD(e&q^BS2Q(Sq!@2lhJt^tyF~tYubSPnqK0>Azz}2t?jHj(gz96~y=KqZ z3c*pbrlKT@V|E=^ORbSIkJ(ZbP%pvO0e>FfFH(y&|Ad;7)$0WE-KsBo~NOK zd%`0yW-!R)y$b;XA(|_Oi*&}Q$V)n6^;swUKICt0dOrvpQ?_7}0O$GD4Q^{&YyYsx zQR@8ISS&I=Cm#+6)@|TEHS2jVs;WN>^-aaqKIhyZ=)iSl;D>Y!nFe|_h3@0_ZD-ZX z_{ffi-ceyEe)X#px}Qh)*0HQAIWXJU5PVXHe9NlT)ajmYqY8+ct8-2Soejn6pVm3L zKPcIj68l`Yw>ur#z}&EKdrd>fh(I#tl!cdQEdq1#PgLy`V8{;dq>hn=ev<;`0b^rh zb>fW}4G3pW>MV7q?TA2qz|vwimA2(od%OVq$~pmc_laHv|%)ZaUuYlfTB7+g{YU}1Oo z(VQ}CZx4jS#a5V?6uxtX+0Ac0fXp`J0vI&unzYv*mZ<@1axHv?x2R$@d$yEld6pG6 zDuO}c5_w(q1G^htj*53&DZC;g1QnQLwJF6RuL?Rl8O>HHz*wFa2T=dBu^b0)azQeC zVplj`VRE*dr6u)Q%7$}uCE*yq(0t5P{{pfo<*Cdm-2UXctn-#*$NzZZ*(ZsBxZ{nX zS347&bey#BQKWfE(S1Ll#W%E#tMw-$FpLrztO!zg%m$AvG*pU>5)0$x%t6{CBH&b3 zj24rB_!*?&hL`+X&A9mLzPx2~J{7Lw^e#}c8 zmNMYKZ-;u=_5K|0QW>xxO_yY-zIdk~of0GA{1SU7lTci|I;>07A?GNj_Q) z7q_1M(YRnAh+!la5EpbO@lB1Lt*|uKx{gB}07nJKL2SdFdOdFQM;90CRT%)FO0h~& zy@y@Br#25YW`6=qPWRpXm2F#Z3Q|5ScZcA6ULHM_xH^yq8bgX{zYNxTs$1>tpd4iy>G3KyYpbz+qs|vt8>` za^p$2%$d%l4Hbn7yT$&T?2T?$!~4z*v=1uBqkp+%p)p7bVXyx{rB4l04P#jqJStC< zu1M9|E}m%r1{flU^zM?m4m}Z*hAM)YuY}3NcDzAPusC^;6ST?KM#<5*K(HQRQ zQ`j0d4GtJj*zh{QVo*eBZbVCAbO(m{4mnughJk^^?oU*mj)6h%SvRJb&mC4tBbNB|S9B;h`4e7pw zjrYAC`i0^3qb8#ktHupTtnBj_qA})tQHm_u@V{4wW0pYoOi=6LHE-};+!lYMIL1XP zX{D2bTag^lVzYNwNcp~oErlv|s|Oee3Y+f_H0wtmWBFb*bEm(Y=YRDx<(qyS2rCwm-e6t&xPqr1iVOJ9*gu)M$5j zTB>3Ga(!F#W_Lp}!hY7)zf~LbudKw))#T>R&guxkC|&jX#QGpVQSujaA0JTwnxdkj z2CM=JiY!9vu7^I)^rY)mv%oMD7Z-w3F)vpe8`{|>Qn*@}bgECPRWCWY~SAdZiy^jqQN=~#-}DAB#gn38FLlB*=z9)3Q}ub zUrfFf7?|yxehE>q?L7L^Da5Jnst;Vh8L7&D#`XI# zc@$vpsP|2*F~2;T8Kvf7Vj7v8B%C}Q0UG-->VZ`SS+!!MiyM?Y%C6aWvwyu z&k-f*e~3FXE1KJIfBCn~<|iL<=Sl&kzJI=BNzXeWr}{sMr8jeTx7W_-1@R<>r)-5r zTiKKq=k?6O9(M+pjU#wTYR?RxtMVwP6$Qoa(?G-QT6*%97vQy4&^bxCe8tX$Gd4=Lw~{`k1iqg&|Hz(1f>7Pv`UW zB)nE{(UI8(Vu~>{AZT&=&PcJUF8_4KL>_z3kp6C-%k4PlaHi$?sRZljABiV2t~-`0`@m3tDM5Na+y#z|kFbk!mDYke2pU#@LuKSji|XZ-DjpP#g&t7nc+^fSy)! z5h?(@UKmMNZd;56nweGfyC&OxVdT(yTX1>^iaBfdsA;D^UJIv%Hc^Vwu+{xe=z>%|_GH?Lo41-gymCBk)w{Hsn#Yij~@Xdhr$U>coN*GSxdyb?6CURsI@y zBzEslmboWxHGhQGOTm>^km(oN_AZ>n&us|i4-B|UU9_L7*5*cx`+KyN>{(>6Fi3g@ zZ=FyM<(#AI-j&#COk8WCDRVJ>PnIK^eNhB=r;GmaaGx_K2;YFXb&%z74#LfFcR}D2 zU{tVr^5>)GYtArL-asc_9L!F9LX2B@$hbCoYc~w4#PxytGpP zm=)?(@&*K0Fin)|MZN0}n;^(`DbuFXOf{_1F8?@o-5hRQgqAN%;GyId64lQF+o!WI z=YcJby%ayi7XYD_8IN&(Q*rSYot5U*wK(>S|unLQ1YNnUPvx@nyEU%C>gAxxd{rkjgWKCa(Lj zWoGQN0yJls$MG@ZAmR)L<(d&>`GFjrmms1P^F8)b#(y8A@(DYS5zq!+-uDL=p<|({we55V>HG4-AjX5#5d6Cy1QgoeVd>s)|I zg=?&wyJ`PuKve(5Y^!%78x%|uQRWJ^i5Ldvp?~AqbjwR1;Qsx4=)IFu_2q4quV(Z^ z&_(j6j1QcJOk9LnhK9hrCB>XBqYCQO`>Y@kU}sHiO%o|o07?z{uxER6c48uu_2Z@o z>-{L3Y>p(d(y%Rq*5x~wF*Ya+0Sbko=z^Yg$})crOd>x%K8{4L0=fe13AwI+nn?(U zM#1o}`%h1MK7+p{ffOF7cwKB3)S)DH$m_tNa&9y;~$db3mGh9 z1X3k-8qJH_qddY6&{VB+4f8j)j+pE?D~FzM;qvS$==_#ZpS`X9A9*48+G5!2ZYTBp zH?uP6xf;MM;x|5PR;Aebyl8W4x?v%NlxNVRoQDCnxRyz!W@Zwov+0BxV7j7)3=k2YETU` z5Iv7f&hA9~>8J3^6eF3mdyLU)a9Y-ZUueQ|TjpIm{Z;Z;UH4G~*Wx4U*m(9lfL$nh z{_>^fh8(}h%?Bw}}pyeE0bQMZcc(8GApak~>v6IJ->@KoD?s)vAj7`yZef)g3 z5lW1WIbh?}7EPRDTyn)WT(%(k!B(xrh%DOu~GJ`5c{jrYrX&S+DG=Np0@cs=EPWgzp%qxn9a*v#%U&&?GIE z)*STo`rMxbe!IkyZ8Fo3y?J6gbEeKOiJArhj?)x4i0uu2f9wVq>lNH&Z5! z?A;3EF+l?Un&As+#cpDR?1xN#*Ef7Q*|3xOnv#L{TPk$t;1vmZnF@wtTb>w{ATu*_ z{vAfZgWFzoF0mZ63a@DO``2 zKT0D6CL<%W|BSMx^)+V(p2FRUApiboCVdV^=A@Av)@66NUy|IGPfmu7Pxemz&x;q$ zfbcnn2~&v5@x8J>CBu>F?Rq6spVuF<4J^K}Q6EXl0T;V3zKXk2b(?^u3yHpggK=It+$zE=CWD;XF z1a!pZVq$191qR%p7ENtjT>8$%Q1;vKv2(@h)e>QHUp6+>? zSm7RXu|6;iu!75**OpAlA*1+02h(WkgYJmp0r<-Y$vKFa(RVU4ts~k!VUU`Mh!Bt! z?SJ8TSpBf2p7TYbbj{C_YV0sP4_2LF>_?5UFRseo0@5Un&k=@kfZxLx>EtOa49jJX`(5g^u4C4|$Ag+&ly+-W zV>AI*2gw{Fy#)AVqqYS}FhEg{?qhbDHaO**w4Lniu6Z0m78{nA20j>uw?bWj5jXWTa)M% zvXQ@8LP|=pA7kC4?~fg=uGiQYRDe%{IWSQ0Jw)d#tu((A zVyXata>D;;&448}gl%p?2E*w2RIU@w|D+yI`F=?~Et_yy6NHDImSYGgsWG@xDJ~;0 zDK7>w)aB$A7Td#URd0JMa*U%mSWz=b>J^Qt)J4?`aB^B^Rs5#*35Ndvqm2(Cq|H%Ltl~iopCmWQlR%DvWXehPDr8 zx@W18z2kBgAsMvX;`Ejwcoe*{Cn#|_ZOp`E=zAQoxV&Eg8u}^{29AOJ8`BpxYawEG zvv~EARc8LCn6KL+A7)u#QbzZsq|iqeS9_q1#Jn!#e9!oCq&?Y^#CBhLLbBcjrCUo8 zM&aLI*_ziKSNFX6NaBFM+jm6HFLJfe{r86cX7&DDC^DQl=_`|jum|~}3{lAJwexA} zJ#|l%u-G%FwO-xOZ&KRK(Vh3>RVJQKzuvFO+3tVhP@({6`YN_$zJre#x7Ulf9~mk) zuxM3Ld*o3#HGW78?%S1nSuQeJi{}y8mP67lcdC(E1Wk7b`o9%b@*MAsu!ShWGWksl+w- z9;k2{TxIIW>|Rc}idewx7MY?!3jl+qu76tmYLWEDVxj!zpvot>A#B zHepue76NM)5Q5)?4L{wNEE}t58T^ehQYJqw>rE8^mo203r~+<{@3pzi2_up311%pL zv-LPbPEH&Uir%eP$9i6Y^+4!vnt}I((xpWV5JY36YM$TR1l$ldXT#X6pgFq1#R6g~ zk7)?H%XJqE6*2RiXhyAw2#;OI?Tf{zWtl$Zeqg2{F!gt!Qd6k+`1s!4f>t5wsFq0H z8lyB&u?WPeW7J{V#sB1}g)3>Ly8pak=HfJY;G*pQXtLZ1JUWZyC%QReyu-Y|l)SYx zuYDxX{#l*{9Q*pvW%sEvMAV30aLQM@buL$=ka;%)j|z5iex*uK=Xwmr`pGpt66Q76 z?uLChG!O1E#%9NzQzKKhzC6GEKofYT%C)BDJD)&Xm@g^w?&rqjM@sSGFkUW@+?Cl`0_l4ljljcY(p{g;&{ z8$`B5M@k}fHBRPV*FR+|bh^24?tTCKpG3fp%l@>|urvHcu?iruwAV1ygUM@s!+z}O zc1(S_^sI8F-%_FYj{xRd!why+2X%_;lFJ6e|G)v zZ2X@F`CqQa|Gq(-DE{wD_<#HL)4hx6`yVX8|LiIM+Yj@9cK!bxe*XIt{=f8*|8{Ws ze~oPa|J(I{{{L`yi#^Hui8*FK5U76|3f{qwljkQGt8WhbCo?2BSBAXLtM*@VqQ_TY zx2n+H%XLe%vDYg^cT75S5n{mlCDZq`uQztKFYQmS?n)}lIx|*8Z#(Xj*oO5F9bMsB zOgRIlrVb>-#-Dmz4ILUJox4>*qV7bGKPv)(hjWN;ymHEMT^-FMuju#C&ZopR*0h_9 zG(AgadjaHGp~#&C6gb7+O|J&?{ApO2*%jmS%yY5ify&h?DTApOxcOi*b zRDjmihi(kZIj@Jrg9(mtj#&f#WMm>^ZMB_O*4WDzj62FM@7vlP7E^xzA!iWx4HUmV z`5%zp7J)!Nyc&>dOb^ zPw}g$fsLtvC3+wQ{A{|&&ddl-Ur8q{^U~>)1YLJJsYEdU6JTN3G@~y=@SsqCr=<7& zJBa57m@ob5w;9n={B(>ZVUqfZ1Fhttg{kXAa<%?vdnjKKOgM)c7P2vCzfaS;xb~oLfjETwpx% z@bLLp5mzeAftgx&Q3%0u?=N*4pG)#vY;1k4s7GFc!HfY{>dkT3NasfLOm{aAv-iG4 zK$4-bLc~!3M2{7?+8Q|F)LDQGN+AD1XGi)PK@c$!2nNc22LT(sHyxm5zfw-(RD1XtM-S*+SHDDKixuilouQd+an#M`YW1z8Q#Cw4BPXL(>oh~jDN>p5+FE`L#9M~Qx8tVXFA610>0`SJcq;A`Q*Gcz4 z-d-XHxpqNA(&+)T$wk9BjnY_e)%}+C#X#rPjvJj#g#h4!c35l=0(2Ftin6jV$|?l` zCg4J~tqQIn0_edJig0(Xh45+Hy7<-8xA%2p-UG^M4fY{cf3Yd^O%8Y<=4 z8{>wKw<3bJN}_y1LJ>e?4qQio0TPvl(I*HS-M&L==J%G>jU7kg9)Uh&ykFs2ZXU|G z)x&0c__o<~2aoUVTlt2j&d;u12AfUYpzcF#lKh> zArr{!URdu=w=wp8xo7yWchsMg&c;)hP7#|_yDyRN*3yK3Azmzkwsdj%$Bvb>-TupR z2L%ObFQmXg2JIgoxM%%opP&WAbQ*?A$v5htpu)n}C!|Dq8kTgG3k!ePiVm z3f%SOqpr`<(x4!?&$-~kixU^``EA$BAA1R4`Qou=|67q=wFhzwKBTv|w>$R>JI!B; z+JPY|VUR0Xl)G=+65YZLLB3kkC!!l4mbt(z*C-YTQXGpxAvE+}(T!(kLVSy*rb{}9 zP%ZD*5H+tDawMn0injQ`Uw(^Zl;14+l`V+f`TR^t%ts_RKH%W7Og@=aAye3QLG$;g zMvLZw+(250m1V+?^<6e2P>3MG#&$M?rP%-%_;5eX`NqS`#glt_dYF@rz%hM*aphg7 zb7h6B)`HpK@V1MJ8X=~-f+xi6w^#w_pr{(a`R~Ux$YV^R=pg&o;9CFN9P*8wyBrQCNk037fsj6z3 z7}ONz=Y%+#E_|0%TyJ%7>p{uFXM{wk^V|1H(Tmc;knWt@8_A{f`@5=(gE=HXN^nXi zfOk#^1dYxCIMoVjQX!&SdIavexDd9R1(?EN&QAJ5N{5A3KobO74Fe#2sGP5d48N(_ z1L={^R^`jBJ2S3>r2zI6dsI{20FZ63STc2+JSrPx`92?TV!Clc24i zD4R&t;Pgv>OkJJbi2!MHHAB+8uJ{VB{eR{v$C?%Xc^_?$?&pk!Q1)}rcTJ#RAg3|Gm-kI?v zL5hfKefUH9l_)zl4spiM{EOt|{G*G+*15Q666rQ9FR+T+NQxKSdtE$SF1g=PN==NR z!}`@qvv(@y!Bl0$^1Kgb#nQ}EMU}Y6#xCGbPevu1iT@l6y5*OYd-2mEfDSD-*#}Hh zJvVcZRv({%hrt=Al24?c8u10%vzJK@VxNPwP-~%&24H%stpT2OL;JnqApo7;6ZMAX(0MUdKTdvFa zJNt{jdR6psZ0BFKa{jWivMzfO&>0Hrw8$lb$;HLzc{7{E)a0YKwze`%8-TQsQH%_8 zoH?KF{jsqlodZ}TNe#eX&Ov|g34eNc5QwEn0RHNg;?u;YMiovm{>)|tnvygq*V37#fZV{Yb&_K(!m z#<_|);61a$X%rlh6b=n!hZ09!{z?U;YUt>6#KMrUn2Ny7C(dV?U@Z5NNNKr+kW~?3 z=WU{*;v(P@&TG(~)?Kv1cfReaX`R!&1Jo)6+W+>^S|EZ-wY(m z8;DV2dE)bmv;WAA zc0-^|>A@eY?1g~9W%xBF;2m%={V`Kx%Ns}C#IwAuLB$%6URWE63*PYBoNpv{@cJ!5 zLzG|EMyFSjERH;#sEbM%TUdzG;AqIdN*vfYT)OiM?J-S?eogtduqai#>fHVMj2;;I z)?8jn*+L|IX)v773x1SuUz@+s{VMD{Cpp@5Bw|Z@htj=!bUS7VHbTo9pU!-C;|vu{qV$xwqCs4fVrA<+>QW@+sk~t@T6}jRM{m%1OH&-b zFYSNx+(GQw%FVQ2^A-A@WMeIUlrdGQA)<2Uy@}Iz@2FPmjLjW%#74`&bx&p~i5;b| zR?=Hex;LnI)rK-y0E7vEAUFULH^8&B|C5j={DG)Y{E#8q?7QeEdp5l49o1A1?TkS5a%@E34{}q=jH&TK2W>BaX zfB`GPj~_^rRE2}2V2HU*HMZpLiuGW<`RdMUduk|*aslzC3uHxF=@g0^>DS#Ac zx^j_&G6lN%TrWG(q##FQ9PO8ap0_wW3G8BZ@rlu!u4}$osei;$cZBDEdI4BTMAQQRC@ZO-Kh@j z(xExhQ4*4}1(gc}0Tnq}wvCAU9@) z<+BVx7#)f3dH5!l1CpO1c$3~N5`Mg)ys|K9Y~t-s=I0Z)G_wEdrxR90Ty|iIA=|%; z+tI`l{Yd7^8;JO&ghC4!5SB8Mi8qj{tH0Qk_(&V_3qwq$TfP15Y$jCeYd*(^^?p;@ zn7+yTXYix0l1ZzA8ANaCQC+wyu0bnb^gL@o^H!8qUEK@Mql@L%#bYs2K*FukWekd) zgdf2HqsT>F2X1aV$^><8;&v);WY}OEmPF2j`~ieKfE5dfarCncB?JTj`4xgJG3u@v zwJpCp+s>&Xdah|Pp5uGpTg1V)qf}&Yt%n782&}Bz>W|u~D+I2t8XMa8cCwz(!WSQ2 ztBgIIJ__w|TQzarc|;O%cvteG`QvhYv+p6+8KYQe`bS#Q{l&g%(&5MB3nY_n6Mj5c z`B%D=4AcQD*H3~ z!BAWnd0;V=i?s2NDo4EXTPbVeM@n7CE=u#i>Q&iRew>!shA(pDTrWSC6S6xu^4Mr} zSo&_T%7r1Et?!C2hWYqUl$m7&m|x8IvMnHdWy8NhP!JWILi*=g0WM}@#Y4$5OVJ0*PT$B!Sp&tJB+oSVRpDu;(CiYXhiuku(NRW_6h^V+1z4Ngu$NKt zUi=%s)79??0ERe0W4|l@jcz8{1uO;RS3rv3A4*9?N(yKlpTvB^yMr(R9J`&yD;!8U z;lT2W90iO@65P&DmH^*av;Qf97z&!MxO_wEuTdfRS9IMDDOgr4`0b42<3RCPrWe)EBb5c&K8DxHVHsE*KSj zk*`WyEda*BP+?}m4JCTtJr+re<-kseh~y_L#ZesS{d^ubX;11pZPzgG|6(IE85yMO z7(wmr1&bZg{qzY{1FxcP)Rw6M^{%pi0yx^CTjX;HK42>dhNK`dZw39mkZF1xd6rJp zS8&{${kk?`e@|AvbO=QkoqQ%IYb=&=fE!uykUwa)(RpJ+>8r?bcSfS?hd7NF;%}j0 zl8;mstVmT0iMS1~@bH!WB8R?fO0WqDP5*HM5e@*H>!f`_h%kKGdVV^UKN%{C(A1$^28NuS@eyWLjN!X|M;Lx*OFWBgX zV(riwzmltcbD28cq@Fg-l$=TVJX~DYq-&0Y?1~AGvsDsu(DksE7B7 zOZq2C%D)<{@4bxA#7O7G#f8uA*ylRD=o!CW)997Oaw-rD20@=1Oum-W7UK5zA_L-l z8DYr6h3g2N#uf&|A5BAqkP#zu)S3RSKR@+djib*+uIpI)R{~zr1}qB4y)P&|ovX3W zZq1xJHz-JhuF~(AMw)RCnPr=3C3=KliD)>PIjf!-Ra4S*Uz|$lcd>SLixmVF@W zBty+o(=a-)foiC65YZq)V_&>6-ox&eW2ebSbVgM-@P%RE_N1t=%+1~HKJA=)Ou6_R zsmdkhj7ZayAmD8EtZ7vDzWITX+=FSZ}JaZ|#I5G` zua{V}7u{HYmrn!<%sO`M>~?Br0nx|9o#%>vL*#+C)JlgAp}q61XlruJYpNmzm@6?x zKfDTlcOp{lG6zQ+66E%&5FPw8>cKa>t0r`)>CbJC4Qjr?N4;@ybP}ta_2wp1bRU-c zE~GN0|7>?Q{^W$RwUId2!$cGVbMM1Dr-h= zoHutEy9$u;35ritIjEq8fd_$wig^9UfMXyJ6K6pBS+di_Z%^AoZ$NheApamcmKZCp z=r4xB6SS+Vs{m6B)7S6s#Qp}JYO_>9JU@sfIhuKsoBZW?X^H8ZY5m7H=xsj>c=p0k zvh@IhTa`eCVF7uN?T32PhnGDEkIia3ztSd5s^YSCr<d)c|hlP+5wAA(4jB_Dz!{%gvDt>|fZqlIX*I7+_#o6wBgpY^ADi9<8TU3OHHx_8r z(z%l?dWMrqTlQ*<7YvYDU#2CGT?QcU)H#Ex`?sRL=n>Kw~3N1t2Pk{KtW`Cg+DuZJ2Eqo+HJn&rGeo)7zUDFFs}lbM0<&+_H%H(UlQ5qjp+mz;RuJs?eihS!P}wjbr(h0JJu%;=A;by%^967ZlMA28i3tK#nb zgVWyKjY*V(wmfRxk21V0M_T;I*zTTmz&8BOCB1y_h`#a86wYV!w{SmG*$sWdoFHY* z%Mt~C_&pMq_e@Q{!8g40Hai)NTdJTr4tw<)m*Z8?ND_af+H4Jl54>$G!mw)3TnSI8tW#@tT1Lo!+)UaVw8%@a z(#NwLpWRjG&WZ1ntxH6Fg(ATDc_N%^dtqgt=bwr-idI&{R9QVB)l}$?8A7&|4vai@ ze#QK;<2N-9W^@?VnF>89afx4y_FYo+LjT~rDcN>XP<8R{rw5CpH#dXR+-@FOW9{^v zP{MqNo0u7&gAvo4(=`<x||00gFt`#X*XP8fBX0 zTs+I0HJ7|X^2KXf71Jzq!{fEz`LA+owY(}=oj7eOXSGZ?$LGys=J5jc=EErAek!>k z9kci0;EEP*t${M}7}|k)yc>ac?R;Lg_80E_s%af)+pVn*Q<;j09td-? zV)=SU8&MGV1YxGHqmSt}f`Nfc@P`b{xBl}90#zqb(DXy~`^$(4P>6nT$6&7hJf z@uQz{%wUOw3?hz=1HN(s7NEaDXI@{NQoGA0ms{XI!nEfWS9&=z5!tm;=SJ0KP~nBp zCccAPVOu9h*xUNZ0trvy{1#pTfv}!{su`K@d%{15hgTQo+f08f30aup^rOffd_A5j z)UuMVcfhzMBe2KD-g)j~0Cm^YGfCfC@O{~jg8{dVu{C3^IE;GZd)1d}h(w>eE*q9< z%=9POVibKSScv4Ej#(w>a{s#aT9Y+Ks5ldhaG2+xj}D%UO!Gfe5}I9b%GQZG{#KLb zl^p^2V9=g%g7#&b1EM2fBBbTfh&Xp37MA}KtIwiZy&MKFkdq1v3#0ebdO@WBZT_dH z1lyR6Y-z*qveD7!23Nbsz07{t4H0@~aJ2{MDB=fErZsV^xf)zuyp-`8XEYY1)W@OV z12LYDj~twiCwJWb8hU(ZIh74LXk;eFuAEiGN}g!johUWMtYDftKFcE;9r65KPtNAm zfp6LSrUAHD7pz1l&^{t(2j5?0b#KC?s5y-QBkl$H?57G?N|V3_MI6R8yN>uU!26oI zuPkTvV$T!7ClJuku9_QXvE~3$xp?{=ou=S+aZfkufq?;GpMA(gfAXLYh@p-6shOFX z=gGlKBKBqT+O6FTU&fdi6{oY^ODFA?R8du1okn6LLpRVy`P-RWTo#=7T&usQNvk^= zQ}kRHUmkJqFJ9BvwLpj-(+4eGGh~bVMITf1^ql`8!|mba73vHuR$(ynURSm0sa7-U zyXciE^^10Z_tXc?$BwP7g?6}JlhjTt8YJ{L+RL-Q<4)aLW&#{+K=}@TaBgGck5pS~ z(`l;GahtCT;<1BYRzvezeZ+smon;+q@FvQ34z{hu95?el>{ykpbBcsyX~~maUN#)2 zs4->I$Jpk7o6uq>yI`0o8@G7UNAgYqnmD+>De?2iul>rZv4uUSug?a0Dl$8l%Bni8 zy@h4!eGUr<#VBc?ETCjY8QZ1Wucu1SWJm{|PH-kS{QyIieMzqM_VpP#G&CXhT9eWU9zB4cVEQQe zAQ)I&bT|rm_9(XETUt16pIm3+0z5vDt=Y2W#)W~PZ68f3$R{g(V<=b`%`Az?OmA!7 z+}w=C0}hAgi&0kWcs_w=gleF<4!62Jw7pPFe;FXI0f)iqCS!3KFt6MF1chYsMpuId zYN5n056*V!80B(9hJr&ZPeQ>kk!Q>pX1I!#6$ftyZ&5)z~ z8i)Pg#vhef5`*{#g~wk$5>ty59{X;u>m&;SLGeW-)P5?x4*buJ8f@KcxhoCfSRAp- z(&+@(XR)ghbd#dqGz$lxy8m`>nRi1A&Ha6WgVDDf96nXGPuLqNc zjp&Y!%Fd|D$~^T}z0WxnA}=eB0E+_)004r-cM(MZ0LKD-bz#6kEx%8z+dw~Hj*8;n zfXZ>aBhbcYyYCu~0D#!{&lfC#77-WJ2<;>xBMQ9?j}1Y9tW9)92x`K15>WSWu^=IQ;cOpUCy(&rS zZ{V#w_-FFl^)e?B5o+*vdAi@ezx}~6qt`t!5_E-uBmRyDm!SfkwY3exq+juEyZ*i~ zH|&Jc=O(7>?GGmFqiG%dbT?*fas7Qv;j=Lo5$?-ZH@-qd$S}W95Z_*zBX_<8ZE;2J za6$9}gCU`z*Vv}Ej^!PuFn*wZ1Id?blhcPkbXN{iSCCaVg0Gs;-lf_ zN&u0XZlKdIP&ZqM{!kixi4^tZubYV^1c3TyZlKzJWPWX=2pQ6^0I!v6XS4!)rtk-r z3P}bDGECnJ+P7Wf1UcIj_s}g|Ok-lU8E901imsyFWvef;01cbV4>Sxg-$L_zRY-8Z zpSaOU)M1je+vnQ9kNNvnG*+#i9!FzuD5D;KIeh})h}Aww2A8$U<_y;cy#(C1UsNpU z6=}i!gxbk>M`&$yo@i@dgm~dPLz4KUha=h?iRo&itjEY(ME5u+&P@+L%-WGO?nZRc z$}%6i&3?rCplGTk+6giUTT^_t+Or7~G$oH$)hOt0HqqX8gY81b))ilC6rumUFmGX7 z>hq4q1P}Zf_m@*FG|91|gR}>}%roiEilIPYAYiYTExAYG@dYXxeAvK9gvUK3bL4k@ z?=;$}fOZkEp(iA(Z{56K(`L1di73FJ-{s^t;$V3F_TwkM^9pK1d-0Q;hGKM#mUe!z za;!xoSXf(}|k{PTxOS*EHn-_Lk?RmX2( ztUtkHI`ZPe$bS=E5 zHOp!Ox?IaLC4`E`$N#qB-P}6Gc61f}_IrC#^3NvwRW7f%ZSjDEWj2vBSf{48ZrAr4BH`Gr>c^ zS3ULjj*S#vR&fgco@||79gROV3`_+Nr*?{lY_17aoUYs5+p|CgU@|Lwvdg#&V@wMv z58{;%0n;n%be)dVu`l%$2U~BC4*JVajY*gG#^+M>;X24g` zge-rbCSHCnyXl%r5#hDMQh3mZlZ#eO zEefVD-I>r-mBwE7{wk?TAvhj?f5FTuV(p(xC7IV7*t6VEwF%#t7ku&s zsc2qYu41(NG~R6~A~*zPzfv(sa#v?zVs=ITA%T6nQOV;H`rd! z9R!5dJ03XpLm`dZIkryx`xEited(m-1b^}g$eI~sUj|8&n{&JbXktU2jygf~yj;S? zMf}~QHk?NyP8rC*+f*wg-!X`QB+dB!O7d}jw(oY#m^0#7H_oTrf^dOsI0otblu_oo zur?#vPN$JQ{4?E9NK|+K?nky(E~e!6uu=j4SiR**my>@UFChdGMt|rcZ&V|tBI0N} zUgk)-#@5$FctA2HuG3pj(=RMcS!qz;EnQLPv}nwSu=L%zN13c>Q^;bILpLCL{tiJrR5fK#>Z;Az<5Gxgn zhpk(kb!OLwBE(gckCRD8iofcZ@?xRa9S$O407MQoyK0Hd>8JQ$OuQbH8Q)BePyE4( zVGUv3=C#XZ%QW2#Yn!!Za|y-?JmIPIL+ILWPg?W6G^|3~g=E>xTEjg}WSw0?Cw;$g z*E}VV@BPZEDuBrHo5~M`{6=&>D`=QY#aeQ^bhj*7&@P>#mfO3;RjFjT#0M87tB^AV z7@Qq58~Ibx>d4~IXuC$2)F~psWocR{L$xH9mbobESd{+=iJZqlrQ>cZ4!?Y;bJ}EO z3Y`Tgs$B_|XK4FUC1L@quiupikM3KpL?zt}V^J_lsD*|9kTsAQ|Ded{zKwV;PmALv zMDO40*ZlUwd`fnhj*&q!R%?{t1ntKV(Fm=BWW6@Af<_MMZ&Qe1#gUoW`<>n~;ILiM zFlHjzYne@tZ<@T3tX{*bPXM$c-gyqG>Vh zq=pm9T=eXn?OhyQkUxKF7^Hl5jA@;(S`Ra;|Iw@ST?SUV>r;;TA13(T%VR8Nc!1UA zEG=$$8okggy)zUUh>ns?*TTt@H~JMAfRB5tqnh!47v+piHjZXLs(sL~2S(*mA>cuk z)M&n9yoOws4I?gVRY^ijizRYD?{Y3uDoHT__?lwq%TljaKmw`t;mSdO8Q#Y+L?dE; zsqz)xOmk=hXAvDmoj%2lNEhveT?tAemLG>Ju3y!=%%xasIfkTE^efR2Lb}(fs=!U| z0#Dx6llsqYyf@6p%O~}_TjMP7Zrx(91G+K_a-%U#Lm#HMi^FBA%qo4pmob^OBF1_9 zHw~{q@4SIXGBS{zTW;cYZIyfp$#9c)7jfrPK0@~T?4*a&{cuQk)9QUdJ=niX5Yp0I zZ2rN=F%=nHl~U|RpTlx29n7Xe^v3AT+J_X9IbCmFiV&($PnDerhocPhDp z=LK1pDPG5*4keEcd9uQr2ID18N#lUAv4GPt=Sp}YXQ9ggolkCx0sw|bQ}V2$|5R_J zhuQ@kyBuTJM^gqIP<-(BxPDSMT{WGyc50wKLfEuKDr=|`#<}rc$E~yI-ke2 zBYgwQLd`h!dTFNfuhvT_d;3TW%K}OII1qvCA;GvlhuX@v`#pQ9I-5jEk2Eb=J*MJ= zoqVGMwDZ0Ji4zSz_ph)?fNw74jgNO~Xo!2{5zm;^WK-H+&YLk#CpQ{Iwi8Y&^*#U; z{FM@XT0D^Qd70_}Z)O18J`cu)r~-zVEATUhg-^Z>O<8daDi1RcQ-F0T@yF6wmgZcvK%#ajT#e-X$7p^j!i9$eMn;=nS=4KK^qCv^thNZ_GyEG42+Z{&82`Xo=OX4x8N zOJGB8(tesUseU+hl$I*`P$`xdYqq?=LM6XXfSw(^dF=@Y?Q-O^qj-~Rc)ijhAe-OS z@tLH3)+70)*gLxwAdOPKDi{zfa@U?dH+kQ#ods*+>}Y6i3C*VMS%iUw(aH(hflN;> zwuuP`c+BK{Y#GQdX6a0SHAFjvm9P0wP>mE9@@*?31TqqzqZ{pRQ4{ca*s4vsf5FkY zmAAuJyP7WDU3GrE1>n6PW^@3)%6tqIUu61Gq}8lM;At5c)D}9b*A>4Om5_nKRQ9Fv zAir=WnQs|X?zP=$fI`jbQd5k%j;6e7RwawuQh9MuN?tDLn^K_9J?~26?q-hPUIRD3 zmiJn-d=r`Il{Gx9NiJG#cXDVu*vQX} zM*e>M<1pJtvAhm;O_14y z8-JCwTABUy-5U{0>N06%q}JWq=8|&KUGiQC2{bZvN89cn1xC_yEQ?=Tk4@DIaWM0y z*P9cPzkRc3O+$1s_!WU$FJ59)I)nNCSj<+Jj|yoLnIkyrGND?xT85;@#GyK0eR&Lt zKPw;twqwR3jow))1;?iqJPU5Ai{(e9GRkmmRM@}NmD5~-ndrN&c%4S z`)AhD`lw6q%PFp|tDbUf&h^t?+4yR0C<%gr=_kNRAtuP+1kGxwTmzxhF>WWyxJAwm zH9VQUI4X405y-y24K!@5fUYDoM3+FJV?YGrVtgkUB^YO%x%HL1JGS} z2$-#`!zHGR#n}c>P()>(i>8>bEo&6Te{wXUkCXTYaoWaOUb>;MvaaVG?v@TaFz8XC ze!lzawl>wqaBqmErC`v~IL@!B4kysox&2}*E%VY|!$h}gy@Qzb(#d4!l$?PUr9ZuV z%90+yzKFy$x^@~DmGM?cr0=8!?JCesaTsdoMlik?%@$Ep0hwTGt9E-btk!3`?=VWt z%#K3WQQzW2hRR_RE(Y5tIxf3ZG)_+oN3bxy9vD28P_R(BzTp|Sw>>;8t-3HFJUjBW z`ZWAEm{WpZxstP{-YHqT{btZe^`A@|ZH6QTg>N;B;5WI!BeI4UVmz%Yny_F(Wy9k% ze<3>qA=(TKFrl1tX-4MRws4IP%t+zlo;fiz7twLiM-MG(zM6_w4$!Mq=@bS!O3iLl zdH&oyec0;c&nE#ZP_(o1x3W*oHUHBhEt9ByV%qHro?VLGR4KR`ZFscZ^OM7YDX}8# zvL{kXedCW`ML!85RhYxa>&>}+L|hSfC8JmzkG?(k^N~g{+WviG>gYui1rr_KS~=Sg zxdr=YA*Nq+I86<#L(pcaP(cM{5hyjEW70l{<{~UkRil`v7RorB(gX(48$uLFHosjS zu;y2!u@f4ltda_=mK|h?4Z`5UsMaOA=iQU2uQ{S{1Pd#&NyPFI$bEzgQ4xI!5BI;$ zg`FNPe->o|S)St}=EA)MpvNqIHhzC^f0%Zb2Zt%0zV^Y%@CUyHW8P<}kSNEq04lQz z5<$+YX6=$ZFkk%}x(sdn$7dDXiczWXi3KJ)KFtDa~BK>y9Z|s=5RJibM#Lw zE&UiY_z3WkEeRQMGI!#Xia2a*n;1rhv$SHgj&a*?Z2J4t%Szw%g)GsRu-!xxGy$UK z#PiI1&-8M-(IFbTnFWY10b^*(ZCuG9_7n8Xl1%0)jD38t5Rn8)>W|{guyquQw!@n6 zr}4qUxYue?UMbN+-%V+bBs)PRwEfk8SQ3^gsQSaBgM!!SI=PNe7ppC7c$y`Y_7<8Q zQryh=#EMp*LjZ1CW#9AwgC?E_$FA|ua(B0^dKG#Fb!60-3fRiJmf=V@d1>`RmFQP&-n1tq1sn~cbc0w(>=n6F65iA=1QH$W_P|1wVPq{Jv0h7b?c0zbE zErDZnNoS>l*Ed%N5$Ew^(L#Uv3o-4Dl1$Aku3w<9>v5ED%o=o}N~v_aNWuKTTFYeF z29ukc^CN}C^ZwG?oB|oUTBQFc@T>L{cx!uy#Esea3*PBr8u|ev(4#rJhflkw!lB8- zGR2%8Va-rz{Esp5IfdO_@1VXRcww76MdlrcWcb(9tl$jK<+QL=pK{xhToT%I_lHj5 z2A)#Il2UFZzrxI;Fd-u8%t-3g-hS9UQB_P;K1@I(J;CdGwwLu+94)So7xcmjDaRU@ zTx9$4o}xm*w!OMSM{v5J8`(&`RIWRcf~AwnouI%qU0y=EPWWu-KRg`+lZ2Hc&cM*1 zL6uUC?NL&@{9G3@(EA@2-bTex@kp6;VtZ@&2ooBa5h=DT0s{IXQdcPG%)sVjXw3CC z2|yKtMN|N4hRikZ!{h*>GZI?td&zGz^kDwkhqpZX*MI&DCHZGlNCEO6)=w4sPZPK( z%0Ep+|I*{}LL9|;K5&i@5y_T5?z=InhRB74-bGl|w+UI$j(#^`1|5kWU3Ya6a69@K zjBS9pg0vG<1Hj*n4cgVDZoZqc{h%BMxbN8_z1lWvX5WTDi|tNmi0)}>cC61{QVT@S z8@XZ%o#E(fMbjP`0I2-*ELNt7xqqUTfXi;b>$*oRDZd*%NdU6PxUTQQyLFZ&3Rpsv z=UXSHS5$x>LuY4M5x?OR{~6it(pCOjCh3@lzQ;7 zVDwMZNCu0Hu14U!eyR<$jWFxH{=t%A&EC z&U`HUJjGxFi+qu-p|zN-!?s?WF1Pbe0FW+f7AEBej#=;YTD zH*P*QI9B3B5dWk+e2f`;?lW)azGDGvJM@Hih?WbE%b^{vq4fZeJ;KwutuNr4Jy_~k zBX^Om`K1r|zFvE;SVOG^6{he~#qasZb^eIH&?DHnl#2Mr{9!33Sni^Ka9w~$=i84g z^%_CKKbGeqxJ@>z&9}}>V5Nr@rjFl#2!NLI@j?WJh_21s>vVX$|Kjedsk=0m@$Avi zscMLKh7A~wPZj}~;Czb8_|bNL-V>f70n3lL*f?>PgI}zIXpSWD06Wq`q`Uns08;Jm zKmxTI8W@1;b4a*Nj&S(8r-KT>#=^4w^#n!E6=ScNhJEJff&G+G{Fwk;1$!9oZM z!Pns2-y9FuC6FVNldAV7kXlxz{b0r51>YpV7D!j&a*fI=&pM-53bVN0`Z9xoKbICe zqdi=SjeNeP>0K9?$L;i~Hhw#(r?AY_D$FZ#g~9O7d-|=gpN3pMI|o`)%WED@KLogX z20~WEn2vBGy1@U>=~8)(oY+76TlSI5R2#(!4O0Ym6Ks>|(0n-BZd36NEd&lUho>#| zqe3s6+ChHI9)-4rx!1o(imRxyPeIODUyj;n3G%4f8yFCFF>=u<79c$DFP{@TdRTv4 z#*>&VU2Ym%F(_5cI<(q$wlnxgod$!hz7Ga^F07ofSE$=dS5(!FFa5Q#E-ANX@3uT) z_P}cU%yvgt$HtP>FNn|0i)|09GA{y%Y`uV;eNsV}*K$+BC$QyV8q^)lmQNyqOJ8Kg zQ5xS=&$L+CrRM24q76pmOE%h$O(TBQv{{+cGx5;>N z=Y5j%A+93|Xe|v$oI9CaA>1P|{}F>sLUhr8w81YI=D%pezpDq#|D{JZl|SeV|4%*o zRz5v<{yFHI8Ns3k11-60HxnK8*5^=?4~n4>xfs-cuA3Ozr16g8Qh71B|Dsa=w&UMP zBMDLmx^W(!{~}udN!DzUe_S&xFRHL>{BTmYgP}mTdQOp^XsP z!9kM~%J^!#I_;?1u}`PBNn5yEf#%QwcA`N+QUGRo9yyA*HE8B7PgZVwZv+%#<2Erb=1ZCOrVwM zqeufPF+xv0`0^gVX9bGO&d-Q&veN6H&E;XM>Q}fj(_8pNiTv74fx3kaI$}RM9$rC_ z<)fKo7FeLZL@OA&G4p4$i=K)9ui;?9u@Cxn`ermOiPGuLG!C!E)* zR%p`M2^VF)+ynsP9|SEaPg*HzS_w6HUnGQ0`jl~05OuKIT(>sw-$9{0-FmW{VZQ7> zcjUnEoeWVlJxgC6Wxvt_jHpp62!eIpy8X|Ng(HtUE)DViowyeVCpUoM$s5(7h#BJf0 z&DvneE(lHLwkD6EB~ZIauBYz0i-Vj9qqfy_rie^3>4UI7uFK@G&p}Bl!yrGI?2(I{ z686?!j@zjHY_?ZQh_Lsq)JL`Q`3fPFgiTZ+p!EK6E{@{kcGl>4*jj606!Gt)^}wSs z=ZHCwjUF|wE$fh6ZF176la}Z+*`N4Tg+iw*?u_H^z*?)RA_XJb#q6op(c}%QeB=7$ zIwto-(5L>i&|6McJt$K9ai&oi+Vz#EPUX5%4)aw--jY5Ir7S9w>v=H5NKh=rh)pJ@ zKGNM>0;ctP{9&iaTE*$zVPvbrvXEz0`{~@YD2%DBGK=9NkNa`xIL-KYb}h>%3;B7k z_G{#?Ayid?MHjBD73cL^{pB~!fci#*40$0HvcA<( zr<7WgnSn7&EJS2&J#O>W(6$68G;8*IJbGnY>#!tE58vi;SIo_ZT!f$To`i@`c z;*mPz5vEFE{H-RkG45GZEvWt&Yfx1fU(9o9aDn=K#I!qmDEXxaY1kQ96>xth;%9B#eY;0M$aD&Q?8H6g~pZCBMU=Q>h6k#u{;?{WT7T5h=A+xhDC zd#A2XtqwKz`d2=zoi!x}n*)1mJ+@bBb_Z7W4}d5=_^p}b{%r!wiMNTt@bb6)PLRv> zE}G0?eqHC7K+#6^hN@m_V?`DFy0X?CALJjAnHh&(!&}%$4cGihul=iw zA_;W>*&@wu*D!A|%fUD=nCD`tmRF2mZUHs;y6t5=feRjYXK=<=HFbW}kxLqDq+M|{ zxbXt{nDUR%{3VNyghi+9p=pua7mh80f$(YVC_p_CmG+Ufclmp>k-zN@;#-Sl9bS2#3o~sk!2rmL*1Is+ZSZ>gVg3!uDZGmuZx@BBp8#07%oiN)^-1Zvc7YJU2V_?-{T8EE1Ey8ziz7EItz2GH1CT;@EaO zCR*L4KsT9DUWX~tNsPVtIN+B`(gc=kNweK{$w4`J0KTTn&u=h8c8cQ1}#W5JeA3f<#9f3q9&`^*pRb30Q5-H+hN5?}ZY z!KyCxuFU>{$s~T?9n!aER6V;=e&GzpV68EW^XXDro4laehh@yV$AkEIZrUmhc704`Y;yTQ=wzIBXTIggEc4v;%CzR_m1|-C5H-bnH5>2tIok~>^qVn% zij;%kYWU_@eg*?%5ARe8RD$De%e^M>IJBz4iQy67+imqU@R}#=Wc)(d84;XY4^v?o zaE8ad^`zH%v2aBZFDv56wugrE7tcHl%=(DnK$LS&saTgdusa_ zJr&%1A2*Y^T!7F{rjG_AwIgCDv(8n<8_1`}%B#d*t2O9--NNONS*fwrMecI(3aJ}i z%&wfB9BTN=7odYrinoMRvNxWDtLm~+N;yIzlOp}enGyuKFfH>??_)_hed z^)!A#P0Z+m&XJVP#wX8=JtlOeL;*>E$Mf2t_|wb-{v#jJ)!@@gnQbnc!ne+kVydru zCG2fRxa*Q1EVoN6cP zT-ZK3C*>S}OE6fdODgiVHqmxw)Nh}>70g7?B?I@z-N)Hwba&FWWb1%AXjz+dqQF=OGVMEl;?m1-WK_f7y<#qijW5yIf~`&AYh{kEg%uZ2`%l(c?M>!W*r#B&GZ1NYaR z2HKAKoauG-#)BbFw*qg}$!)5p;7`;3f>w8`1aI>cu3>D#Tlr6!mcc>4159id*!dq( zfRNhbrcKQs!P(001L7~T{9=!<)mCGoX;W<-Es$k5L{a1;3x0Qtfd~P=!O$R6c_f(5 zJQz39V_0^BAAI0>uFRP>lHs-hllM5WHUjOBC!CD4Ul^HIfVGQK>5KS{oK8Ti;D;5F z_Y`YXLc(66Ojk!O_p9^cfVRya@s&oqM7j+w*Ie*N8kH$~gtd ztqG&&cLT*}qhxb~w9fWDUgLJgA~$T9Hh~+;Hvyl6?FxP#dZeq&`n_U*b!Ryve*7tocb2+t5`WhlK?u6w(eL7j7Nxg>|~Veae%0YtZYe$Z4yjgWD#tu19D2nCx5ELkSzV zB`|yGK~gF^XFTV=H~fGodZ*lJe=n66crToI4@OHH{Bv}G46h@aX4Jy z7*{kVEBSMrSGoUx!epphHZjQU2;b_nHvROqyMzt#r1nE2L6z70evkMyft1}F&0u8B zjF-o)nZbnzPj(+l{@pk*M9AyVCW^d3AtGHsd&$ERvovpsk>{(FQnK~nLnrRW8@rEo z49Cu7k@Ewpj{{~}fGG9oVL_o=I!0sk3X^>u;q==gY7YV!oggNorn(1;I-@lImo z{{viqamO8f_R&D7X`O7c<-f&U{|?Ki@D2$o{smv12CiC$=Kj42=q!K*0WEPiKf+Wo zY%(T`Z#{EUqpSez2O^&Nc(>K*D(D5fMBKf82^iB z>50B*Rv-cnjt;dfj@J&bus3_;{l*2?*X8ASc!Rv6PSjL1it!0=Ny^W1=!=VZAE8^{ z`}68dtBO<<3Y9HeM;TLjA8bUNPFHJ$4=(Rx&Q_eQRvJ5ePJBpE}$2b4;_y_^VP217q)UKOLWw?=2_m9qJAZM?<$H9yO;}VV ztIlS^kKAeDZt)hVcxT64mw>Kx^$97)2b`}EFh?a2M5OPWv(&LSTzpAcmV1pM|x zF>Zv`a4%M#Pk+f2Q~Ih-imT*I_-PTayWp=AhRGC{s*U>NIqnuRYpW;Dsncu%>9}s@ z9?#E&LA^z2;0~FM&YZbF3t?oXEsa;LiDT^+l5^E-(j(~G5Tk3sieiH2v|#J~-MUVp zW3Zvnhx_Eo7^0jvr&ynJjN=*?FaE#5E-+t?kDg;}{s54ZplhBuz2lVnUfkM1q&;o0 z1c3nn|0e=NY#iH&+q5X;2c^kb$`7&sQzeMiCWmKkI-$k`3(@9+F=m*oqD^)^rI4M@ z(b0rOUT&`;YFUCrjSqx(hF~Kj?=0ABQc$uWz%Vw~?A57c(On`fG5-w$z1sugDn7Ue!;qt+-FU$) zahf?aag`fGE-(6Lp+bHWNp1+sp zHCrGlpV=mr03AW=*D23uiGYfaRq-F{9vwd; z#{9Z)dhcqjysh(P)|ow~sHbi(?(gje!e-#kDlEmnc}b))$1%7W<+=at^a@z?(d|g& ztZKl8I1C*u+A+&|8sm}k*6kF_0|!ELzrYVH!BOJIAFVfViYi=hqh>^kuwsFW#_-fB znU5}?naf__>)vG|;bt4*%8kW&3zm0Yc8~kb?=f38=5uwpnvIRBrt>5vOYq#q1Ay-+ z&D&$a-2w|+fK@X9{HbxdxxX)!wXl@2=oix~5`STc`Kk?Ld!lJqvN0}*rrfdY`mv`9 zN1#$TXAUN0MNK9V3YA)Do}DEM?}aI)CAg$Qo91U@0R}wAM(XfF9<_;$FuvDQa+*y= zejwD61FwmRnGxC!o4TSC^J`u;Rg8QzxEEw}tsdNHFxN+ckj7Ds;iI&!=#d@ED`q1j zH0C$}6I4|Dd_BQ&qq>|Qxf())?s`!j%GoClmccR>?FXS+MWr=8*2b6y9}QjVOW_q) zm^(CmqOuoNh?F#rIF=P5{+>VY#NknL1L)GujzlzBnavfkorLS!VqtU)G^H<+X7acJ zH;7<}KGR(Y z9BD24xry+9WBdc0SG?DEds*!h;634K0}Jc$w8OjqD!+aY&U4Wj00JtXkF& zNbVLuC51u;R5vtoa=jzC%;-~^Z8~Xo?#%cuyTKo*ub@DR+&k;Fo+*3g-1ng=B(=P) zUf3>qa(ktZm5|;12EDT&P{(X?K_)# zGHFWvp5bgmo)(8yvY=;gp*ipU7~D1|X$UbZb~$v@As0tF|I6RKSAz3k#-tH})4fqM zhR|p_6K8DyKT&uqZZG4`t@|)CA4I>xu;iLsL+)^~*c^%F(cPf_F}ln4Cz7o^qrnKk z@~Y*+js1i?7H0M78~+zx8yyLyK>iWp;%OU-fQ#*vUQ#?5qA`%|b;OwoM<`V!pX*WG z{N%+WR5k~u-{>+g1QBE~$4&R=mK90N=u6O1J(Ow(RGWErGRPX&urm9(;2jTDd?ZRu zeAN}S+VCoV@Lgy#d>X#r89c&E(`++J(#qxBpT+nb_EDGl2kw&4;Y(`)!B#hXYR) z{7Y^c#8mjr<)gNV40_ED>+p!AyU3kEt@^X+(WLU(2X%(3$7`PfXfoEfsdB$J6L_g; zcjS|btP_JZ;+x9Z;Xkhg-+UsBx+O)8daGvXwi%7I;egb~L}3-@4u7{Epc^<Q-cF-5*wJk==>{O?v3dOk(7PfUxM!$YzEVE;D5vFvTROVzo7 ziTI`{3R(1%Lqs9ZN{>EMdOH5ylt@?ltVKga(n52N&HbGX+mVLYD4wyP$w@epMxA(* z>$dV9IR*~`9yZB<-`1?ruL-1)dF^`aj+Hd2Y96F(^;%DS^(Y;x9rk2Ht;%2%O->va zoYcGvkd(Y3gr-y=!&biAQ+HPcdt@vod3jG5PnRVGq%bh@G@?Jwd-nK}1@N7FE1y6F zjm`>tI_mAX1477rIbC~`>{6L9t+t0&bLB5)v#AQCgCMFFnrjwXs;Gi7bmOdvfFPuR zJ}Cqtqrf& zb*0bA`ho!iNH0zYVmHPcXRlVvjDYrFaUgMrxb*)&r-)Ska>Y_PrJ5>PI9WeLjq%p< zJ0Oo=H7T{@w}6XTgC+z9&S_zjpQuY(U>nEpq>9xRvu9g2WDDlp>u4|>fT$z(Os}WR;S^qewO+XAZr19Yw}+czv<#ZX4l2V1)A#(1gA48U2Jxb* zEdFh2%Ku{C7y!2T{3;K8LZ%;uvYk*TU_j&ruTh7~Tk#jJl8$0GgEATwc&NJETD+Nq zF|*}SY2PWK<0fKsQ4rx`lTgf;)e6jo*>(m`<2HI;)|(#+3j?x6bbZ+jNg}cen=B{R zQ&K#+pV7Wz#RSo@R-+_w4@7S(Tm$!U?<;t5sDR)`*TBLo9qqDWHq0 z2*Ua0I+00WqN8iKx!knbE)cPkyyu|FW^%l=bTO-089)F_8Y#G(Rzh+{o(8{~Y#(}$ zRg8^cQ|C>I4qLl`$!|H;jz7p?iGL5=p0RFL#Zi`)rhae{M-85>m=aBY*`^;i>uCAe z+~(2TM#@i=T5y#VCL-n(5`O5<7VyaE-}wjdd&Dw}Mil+m5+I>^NGFEtSM3%j#D6mN zATRTiV6sB>-#pXJ&FX^&DJWT=2FZi<|5RD@pOWwP3x2L z>>0xXnhA8#@Z6DA-VU|mt}IY;7nGy__?vm*S$nT+f$^4j97)5&OhJ^plIpT&! zZ1_aqdX0xu#~J$d3&y!+71fRpP(y7a>FLj9APcjio01Zc!J5no=0&Ut9HYIpDN zC&Wacr1Dup=o}8Oc`-mWSY6j6t6*FIq+&6dP2T5M9J~xA((HFnumjra}H}&v1t^k$)2u@{gWa8Y7On}));LiRvk2Qjp+gg5P8XD z34xr=Q4?t#B#1|xt(>(jRIL_FAYz~7@fggMPp$O`cYwyBygy^m*KUo3?p%;7S$WY> z30{57JsS0Wki}OALEf(2Z zV^PvV($ePMkN0kre@e;jZ(bw;o#TN_#T2JiJqMh_Z9#F55whvujOQhjzrTU1*!pHK zdmEgpIZeS1eP?6Xfd9VYYjUrt6PMTB5>)g*PEy}rzy}tlsQqSfyBqKX0FcEugm_v4 zTQQy+Q*IS*$G2Vgdfxe;0FJ1<%G~mP^?N_0Y}u@p|EL9^Wc<*A0PqBK zsi|NHaKDc^4e#6{#e9?YF~4fyUtk9~I)b0=8k#DzJd#U45jFEkYoypaPGFH1?n6D=7$sc*N{WyjdG2{r(MX*xWFvf-!*)-a49srFa?k zgKFlgS}1K+TkUtI7rG&fbDJ{9i2X*NcG4=2fOMBEe7DD2UC-0AyczPJ^H&(qH(-$b zsu^Kk?gz6yL{LK4i494imRP%(dG~rAkC*nVSJdN6UAFI95c=F!Mz;ZNuJ5|oX7Wtd z_L7JQzE3_i7Y}t9k;eIr(HT zW3O)sP&Iop=m=wM@LZt-+Rx68KT`7{gM=Vzd-nMyo&`DdK-bNf#prtM*!gK z%2xwSNPYOmEqe5o4lPa(;CU;z`1d>E`=duYYASj;82#C|I(L?aDCx9pWG#Sdg1*8# zfUdpyg5lHVqOC7hn|Hx4x5eff0U$fPBg05Yjb^8V=#(c4^nOse(gEwWEq<5W|6uMd z!{Tbzbm4}Ckf3SYA&t8QZ6v`7ZXtMZcXtwky9aj(wP+|Z8pdpML{$tINxk^r3S$EvFEkJJ$Sk)z$WZ07xU zoB$GiSwHuzap1HVVOfEF=EMEzBTwOlu7`}4%eiKtMG-CLvlI|L0B}#X;lV${Wb?|t z=vmD+Gg|N75C;L=N%*#Q6@xYXA z{&+V#@a4^#=toy)fDoleGY7(CfzF8CF|Kiqz3Hzh(V%QVi>cS=y4`!NUJUZcd;lgH ziAkjVHV{7R%RV=3M$_UxHXF6gjDKu$yWFYlw!R@rQdDnDM9fcM@fLRLRhRlr)K67K>yvWf9;mD*9ZWbSZSwEgMx9>*TaK zk0E?w$x+X{^XN58<#C0~(KNoFMW6lF&=B8g#iVPABiU=tBXLGHMI&S}x}|B#yK4ZX z5#LXyOE)p^8n*rzpA(IO)ANeL*Ui-QWr>KtjdXZ{sDN)_nPp!*Qg)C4`V+?5v`2@i z#o*~Y#Mi&DJ;3amc6^fj6ayyEUbUzT~{2NL8VatkCy9~0e%k8N*S+nOq#*%9*8gykc|5U}_|uegvEb#x|2Su3r3 zH5$-OqceVxy(U^+sZy_a&*>wF0OS_Id6e4Dh4zkbjy>8YF3!I7AHl&9Ip2M~u#5B<~+JTLb*wbQl0CQP1i2FU=Px;6uc(3u4~RTF9UI>?|Zv zpV8;hpdkRhH$Fffm@nE>om0nK$4Fnu>5af`?1L`=04uO$(_9_tX2r2tsuJnrnCNqO zShRpI4rr_{b_6>BC~VGIc?QfnnrE(&r+t5yB~U+mS2l?SN}4W5i$w%<)UT9yTNX%o zgxXQ45y`IFNEVx)%ZFV*Uip}^0x_so4UU%`c@FP+e-C}ONv}LOJ$%$FbUnqx&ibJ^ z&O18aDrdxa?g2N}DvKzXekq~gMdYo=WBQS= z^OGc~Li1F<68+iE00*vutQk?->;`;X90oExOlCg^L`UvyEq>1Z*??QZQ2XxF3pBlE zOC`@3eI3GMB!HjBYW%BZ03gz^pnf+rQ^*HFxm++z^3;!X2+lA zWtSET_kR~F%r{pg;woJ}XJ&G~t3Mgfu9ClF(*O$A9bU+2!adKUEa)Px6QI|@zJyf) z=l~;AW1GcFgfa@f28!6b`zkcR3Hewz*;X*Tdo3|TK^6FWT`N(h2%o>?LS}O)zQP3t zUjiwl3S6tX-mzEYJYEUpRlEJzc_e=YK!0M*e_~v{5%#<$RiAk3MSyu9mDzYM2G%Bx zQ!rA|pHjzaY>)Q6j5!gnHqJXp2tG)blVIpy-e;r?8L&9^KE8d3DWePBx%6^#Q_MWS zO*_9`^whmR=eu5h=7)m-@Do;aZk1$Y;6Q`ty`Gqw8!ogJe~qdi~AwS1WtZ>x07yno5;fP9}hG6VPA~yk%X8Ur-qiEq4EE$@U?&u zXzL&Y0C_Lrv4S|9kfew2RwM<4Q)EL@dnVVj8@zd1ctSr&%8X<@) zgpJu@F2`>WG33lfL+#{eq2b2IxKYze;mKrUZWP~rL$p-|d7%FE!;-G|llf;ei_d17 z?fDzg0jA5Uy~U*`_I{}gEx#KQJne@~zC~4Wu)Sq|FkH+Td}`s=lVx~3?4*=!YJ|Qh zbU(&Jk)4kbDj>hAyolPkN76;0%64=thgXBAj+ z@selc+vXYRiyb{~@2>kar~E~9S4@n*bJ|VoeC3i@T|zyXk%rrC>G78v#nVuh=RzMY zluEdrxQ*3LJ4x^=%!TQ=_>1a`A`Qow4k*-STiP{Q*w(7z%Eg5=El@6lr#?h>_qOTA zx(lTtQce~fO)k~x>Sbf1ZVyg=3&+>^u>Brzy_p%jpJspb9x%@3@AIEpLQ)A*hzL^n zN#)DBbO-i$s?03L#s_?U#`~!);VzRcIM5c3mnBh&myylPbqxLdU8~fqB-5eW3L$zU z1#X`l9&1kil3n~oKkN~V^&xl`29<=OS8;Q4v02S_xW5-0z<(2qRd-x&CIiJoIgXS4 z*dXl~wtf8gmi;4M?mF*NWC7lUEmTDud=8G7=B~bzOVRqI*>K2j2OIG3O{{0-W*gcXgxYU2kggkL;qY zIGS5b4MT1^QX}H#=~LjmUvEy9k&vB1(VNgnY}1n{-f353@t@hMcg%dM2nc24)6l-w znPO;F|3O~F{2@F(1%`PQ_9KT17mE9man9qh6_-Vn2WS2XVw93BH56lvy7a>MnD=dA z6B^}E3%SQp@qAH2m?i^CHPW54*zAGKd5|pHHlM8K_~5te?Ym!UQNqNSzZM)lk3#D; zCuB3;Fhodxq=Sow$1Gpiw2z>yhzyg-b4l%UW@R)b+ib>N&6UPrd8!NIVnz||ZWHf< zGM8e?Ug>76x8A#|qk(b_&gyGEmjoNHp~Tb((I7Ry(%ss{>$M%ijKj`pjq4pjyU(n| z-sUX8R3H7z@|g%zTlkuRk<@49)0517ezi1mWOd%}UXjL;&Sdig&7*+b;pu~`;VEYR zc}Q?qf^&HIUdY2NgR;KMSq<^MmrFa2HGjdEx2a?wPp9X?`_!~DEyD#Wos7K6l=ipp z#4($hw1Dg;o;TM5VZC2(p=NrzX2}}bT>9-#1-7{!Jiq4}JJ=b3(tiHrf+OK`|*ew-@GJB;Ufj?isBbl{iUNK7R_4zk7p5Huf*OKa@@|zP$0R~&~ zz|sXp1*&t8$@8zH7*eXCl1PNN!VVen$~+ug>@_=EH8w?e&YA28W48%b>4nQ(icIjj zVI9}dJei~whl^D6gv)`SxDPk^|AR@+oi|UrJhjti<-&Tqn_t)HFC8w3sAI+`K#ld*4#F+(=jdw=sO!+ zj!UO)TNikNQEhl7APrj%u6e%i)7HugOgrD767l?p8f{nl7I-yI7*id_BYJ;02p>1j zJ9^)*p7tb|Fa46XF4C&;Keg~AM+k1zuij~|DV=LkLyHHhJgj|XwACTQuL7o=~t74(@ zuuCp3Xg>@qggdj|(7)p=^@3@X<|vl>NY+OCVOlCfaFI*Kri0V?RZ}W>_U0{fVR&u8 z%+nmUkC^n%+ZY*@O?ROcZbf1$^x+M&8gj+TdiTgt;MLyt$sJw?eA?p?VHi*@QdPe zlC+szEf7AQ2OTlL0on6izIais4KldV6X+q)8Ki%uh{|?kll!quCn+&SL~PewT20MX z)o4~xJ&GI>cFd|+<63dEJAZVQD%T)!ry;%ZMpNbm=_-#fSB8*#mfmO{d>kXSp#WQD zWnaSMz?EICbDUOQ`K0(Zvcwtw3juPR<>2CK4|BUZ0QRS&#!CTRCrf8dS^w41ps-{r~0MrSI!(cEnK@TGf3r*^}x%v6P zZ{O(X>C**0uR2BM=4wn6;^Rd`M69f>8Qsr(YqNxM1z-j&z*oAY4wiQ4jRJEE| zboiQ5n?hf9vMGC9)pW)oZOMHIU3WpNCvqCMn!6P}GKn3+pQ1^>+8dV=P0=R^jH%JV z)`IO8BqtScy^b;4a%II_A%e%KF%>uW_r2ZShx2tZ8X8R{d$o0S=olC-E-ozT?qU)W z{9rILGO{|qNE=08Xe94b$8X1{4KUXI(4ptu)t*(;bCb@f|wHk)~AZ!?6?{jR97{Z-T{`D9HO zVvY)cq4@sPDRDWN)i*TEEiQJ4Uy`4nA2E-OsyjCMSEGS=dLJJjwbyTs`w8l5Y;CE< zr(aaKkf-O(FF5=8BPuZ_7g^WGWLF^_5{3Cz{c=`-SZXw@RFIL(D3-t|qPccwx5!If zc|@5&pq%w@t83niN4y8k%`LfD_)%7XpW2)0Sy>dEoHZfXw0Ac*ZXOwstGnv6t6A&Ge{{lM42kSTW6?6kZzj_KM-D+teK_YFp}18-F$2YQ~>@o}{%uY=w@ zaye~(WI$dYEeHfUT7uw{l9B>}Ynz*@-std0F68?NlLU#;ectsX*I5g-3&u^d=OXil=NtbL)>frt*qsfNc;Lj#fu;ZlX(H zsh+wdbPVAY9`+U4_1n^U^VndMl?chlsiwUt%aN%xls4<67>k1@Py2Ix#uvk_DgH`` zetLfPuEcc~ht0KQk?tfJ^2l7;G1JbU>NXqLGkJP;k!R#fbEDRC4|qJe~q+d2zwp16^b z^O8rtn%QDk6`w-<%%YrHtVz5C7o4`6E;v52gl^PdaH>PkZ@qkUYDO}GbaAkNF{{I; z(inIW`R$6_d%Ql@KYt)h2M%}%>9tl(|J#DFxTF~3uhdDpM@18I^9I2 z!3-0*p)>eocQ;do8%YS+Y^Y*@LQZL}E;HdnpG-B5Z(Xg^Ur@ z?5cXO5#N_eCGzy;}Q44xEY?YgBxH_p@JvVF?-R8cl1#;%y$a z5l~|vz>VIm-0AI)#f%p;v|HLkZBff{_-$^}TAdT(s`Re#Deu_jF=;Ta0qO)vC=(R2 zx|dSvKl6Xr(^sBrjoR$`rMInP`Y+^hk1qe%ROg(2YUK>G4zoU*e z;OqXzP`nJj-cZjWC zmJ|0ud@rGh=kr5P{nI=;`K%szy(ozO1s1%2Z8w88M~!_BsfA&gg-fzQM`e1=l(6|j zu+9=;H z9jIfq|8Z%bq1@pzG8~^QAuwr68)vBTDU;ZchUgBh8nZ*mevt@1+-5GA)tG z>fv#KY19a|-R+$xFK=IOYkEEEC%3B^u{Wr;9^cca$;{j28QML_O!l-t)(TxE)MD*2 zG1S>4p2dm`weSeOK6!iygh6hN@Wm?MO$tB%-yA|fng4#@~1BqB4VuA*oZt`~Y(&2}~t z6e~m?+_4j|jb^w>s&nBgMD$dv5AW62F%5Z(UAzz?A0n$W<5LEfO7?qoM*V0H{IZh`V8fD3RZPaM;%rOsL zq|R}X${n%2oaJ?^eL%kHue=Fe9U^lnPP9%ohk8o`nZe!>ONtTr29lp_d>L_C_&29} zisW~DKqY0`N#$va!`kBC^ajS2F=7rg8~&Mnulp)k zD%xd3u}`!t#8ZTlQr;$YOk6ZRICxUxpxx&h9voe}x~Ofwtj?hvX=l4w^rZngt-$cu zzr^*B#~!uA`gRRdwQqsTBiNKRJ6fKXHs`Ihq6(xJz6@(pX`i2*{EMG{f(r6ol8 z2_g5MlObs}>n>#Qh3|4r13|i82o=KcN?F(VRom3)ma_=o7X5Y4LA{Ggrx zSVqpd(dRZi1IC0a-Ls_s$P4D@tBp7N-Q~K?K3e%$LL$-Am0kD>2;@@oZhrW#Fgx+} zi-oe77?tIC)u8Z4YxV|2d*PZ);G;xcaDk5mokU5F1_n z2$Bgkx>Xb9@??oUrAdvMXh`N=p!vMG7?&aG(Jwf^O3DCrXv^F!#yz;bxxgCV9B;U5 z3YRyd)iH7JuRUoRB)15MczyPfp$BpENk>d49U#a~Z< z-#l-#%-}jtnbg*mkWQ)AHBC?yzrT%>r-OK{ofkoF&$tDL^4jL>4IZ?$f?mPr>N6Z_ z?UtDLns}P)V$@yLRCDw@i?MjIjJa-f*2} zZpv%_Q z!JyYPxN9q~5otGBoT&=;*c6oG&>K)VCKjdP%*W7HR97{taOGG=1iz%8lIGW=0Rg8n z)hhx`UQQc(&oFU3kPhvpu&F_j9||?fHR}gS(%n!c=664A(}=ZC6R%p7iNOy%c!LT> zjx;N!cB`}ugnD=T^pfs76n|>SC%gTjSt)I5hi!aRN}IgGJ8Y(ra+Y|Q2I+7SQL$N< z5f6IL%vjsLvRsP7H7OCGWf&y-Jt;$S-2saPv|i+-yTcQkxx+Rsn-&~Q$wDhnPv3;7 zT;?W>4UBQ)+v0O35x74gHN7HY-Us)EpI?ZrdV|8q_o13xvVJ&U#=Bn*JNKT3&XFmj~8nJ~XcJhuiLJska2!m6sdI8X_Ol9AX`xC+tGURh-`t3Du|S~r z1JqAd7!h250L)ZgtJdlv(;Hwy%gf4b-{Q{YO;%fuPcVKb-BAf=I51k05QGM_Jvwd9 zEg}=&@6p#?MKM0?UhgqUH&q#KuU>HD-?{1tpMzlOJ!c5cwuiGL{ zXVS}KMSGmmy+raMGkdq_xO4G^Gq&6GGQN%MiU)T-qP3%krX>Qlk*fhM}iGx>u9 z$PC<_G!+*4tm?5i-h2#I(VaNLs3fbkC(f?z{`;xbJg{DO{>!*F2ZP$SqL*928sWNv zzocmHkB*ug1@7USi`F$Jf3q09%#Nr*I<5x!RP^?xd-Y0GXSRDWdbKp$wr|nH6Y?~E zkTxti+O)SRCyCG!ol1R&AIk7kyCUGtsaOwrM(s*b+;HphQ@ai7I`a$6OHJY4cQPyQ z4#H-cpp74V%Y<$At9@^dT_P!q^J%Y^!nLi()q{XvvCoXFe4}BUms2$Vdgjfn_M{Vs}sA zlGX6OOz4+mf4r^LXgp>U~3CTS`n534J47t`sJy0P1x@)dqMrYbSj=>g$R+jh53 zvj}S8Xs}Ae~n==W2a;u4FI2 zHYjIt@Ce=M^5W0O$&*ytIAkZR=hGDg{3M>na^kTW@F*Pf`1JNrBuwDVOjB<6SZ0cZEqF!M{##G9SzOX4TNChm5iz3f73`^#T3 z(?3><5<1y3)A#vtGBlfM%Xd0o3A^c$w4bk z+tedyf*|$khmxHg%a@?-+r^muJ$*fBDYnocRss%A`$99_<4}lOGPgW>-m>tq(Pe5~ z^HveWrRaM;IA1f}y3r7ZqxH!=*xS*!y(CWRLt*g?L9i#QsFWC0pWB5V ziuw1chfkxfQTvv{m9Hi_+@hvgmF;|+?&pVSteN+wVsP?=P%iaIB@3Q7K+1Ckf9il9QNq|b*xiU)7o1vi3Q&!`u6|i!)pZDVk^k;*W)ZsZId%vcz)m!^% zL9Z@p(hH6=g{Kw6+kC#z=4{s*t(D_##QnBzw^R%k+jGHe%$j$IS?MX8h-6}T;1zVcR|H$z2L^w0-?cqH&~3J``S2>{o5uu84W>IJxfMK! z*VckP$}qp%pU86wopN1)a4rlx9{D{B5Rgkfg}|2feW7SNCg}!uxh{vpWIWC>ju7ow z&fP6XH*@@i(QWB1a(p1LyPR~|@vwK?Su$Wnd-i4_6;N>c-^3&}m-Wz4G~&Izn8d`u zzeJmHW!?Q5&Jeh(MoRy`=teVepUi46JR^*IOy1!czo;FrS6yu}3% zYyc;v|D^V&t06-{NlI9FI4reS2u z#6#Ti-FGLq;HB?bJj??A7$jh#7M~BMf&u&-+5)_A=}8&=KeeDOu7&yek2F%DDjVa$ zg~cSt$4xx%PkcT&Iu_5+M@9-5cNM}x`KwrYPiONyCH~>)zZ4xc@mmEEmhHZ)rAqSx znNgNVd6u}u=R+3Ey{}*ClG`_M7BhCknT6mI?!yho?aSWbFunAYh1@ToAbo}XA59-z3O+_kbI%)(+bQ?4^G zFfgUmURHLv*&mmlo_>DT=DBbl8~)9S!{z$A2%FEe`%nM``nBI#gBWY&jpw3~BhRCr!N zM1jv;=6@L`JQD=WFv3C_1#;@9qw|>H;-|3j9e1tEH{fMA)>Ty9a_7^ssuNo(}Te&0!yUfncnps%rLR^?BC{}wS zh^J;g8X0Y_cZd1=`%_a>w}bKf-QtG(b{AyRtg+c_j-*E^TQ|w9PcRZ3`Bp|RCQ+`u zygXi+Czi|fr#Ky)MJ1@Z8)oqs%p@)dYCoB}%|bR-V+K6 zF_@`|-kzqr4{`qRO~3ff$C$a}v9v5y7sIQBOgxdJby+wnAnTlO!~G*<5Gp zVi6;|dx_f-0L#dzS1(-|3+_kgFR?3w!t*Jz5noCOPOE|r`{MGb@37wrza zlkKPRjU2=mlT8~7Q+e`X(uHx)^^!`C&GZ^J-*46+GI;qs>LRSnw`I8PR&>?Q*Qw(R z1c!THGa^}fiiT7$NX;#;7zf#Hw)qLA>a2rYD*Z z{2GL{No5*`qZcc~kr+plEPgNdUBEpvt2YgyIY(PsoSvJ9T2e82noyc_|4U81u9r*i zDC}tbjbnLIO=!D{OY8VJWX_aMbB27lg(%<1hPATqL%WvV7P!ODk4&# zkU6q(T2lNq1@pbZw25ugChLE2MC0Tb_D^Qq-Vtf2L=5Di+#bZ{UC% z8sI~D8-igt+!YecyY8?a9~;X^kx{dv0!8@d#m<`v*UTN?O+lgs0|MJ)26gXzQ0v~-!k_nG}(2nw8_G(6t)#7NO zzy4KUtovjh8M>3*LoLxX@gruQJFNKvPiJ*rLgg*x8=VHv%ooQTA5?2bdsNt?QsoZW zm-eozr>h&=FaUK_;w4&J@JoO0zI#i>!l;{qgoWPo-0Fe1GcFppFm00r!MmxxtNM64 zPv}0%qR^fm$S$p9fPpH?uUjSe*156;?ry zx_jlGNZ&S$w&pYEvtIyCI0;-EluD<|Wn|>ua99UJww_`)=3CU-`YKeKT%|zJA_~F{WaOA(c7}O!Y zPmcpg{p1qS2`44d)sgag?$9{MF3K`VYSku!()M7u?NYeTclYjv<#FSFHI4iJQf}*| zW}l;{AwK#5l0_yU+(!{~dVcPCu@h5VY@RS^V04mupCi-mWvp(#nI9~}|^JxIG1@_u{wp8^d36qKJshunm4qye6 ztaT25uqYqd8)p(14D+P=K$qU*3F<6=tq{D>=FV_}_uxwJKQ4;#^eWog+GpqIzLhB4 z&^_%SAIk~;8!{nBgN08KsONX#f{9F21CZ9=V{_Lwg4c4$7&htiZ*8{T1rg%ceEM4p z1>$(wJ=Ie`7*Tp7yM3cV4H1iH*4efd#PgsrN;U2L{!{5FXyqlGTerV=+rf@tPsJbu zW3|{QOL8f3b6Qy7&!C447uui*RXPW@I_OIi(#PI%_@n70g)29$LXLEW-~_pKU&nBN znd$IB9-WkD95V%IpnYSZuJU(hTa0~INY}ewi=dRYzZy+#)Yy7z?!=Q+Wh=PLcI?EYEL`3*b*h=2k z;t~>fx3|{IEgB*s>&T*1T#Gz(V+QtpX>AtTITDN$^55l_UAStrO2fhs4eDsqw1nFb zqKd2;H*z4uP*$|tYcpZBKSs*R!{6lrRCAiUtwIz0tBOuO>csTsxfqcWVq%ku)HcV( zThI*LE2RV~5QvZx5?Rmu;fYxmL!<4!tPM)-8+9iDs{V0rH`9-;ccf`=qKrXVIx%1! zs`gv8oh>RovYK5BHZp+0J67uB2Jqx#&;2&ZXATUT78uKT-PB)`eG>$8Cwt&cz4#$# z)UNr{U;;D%W=X*F)(VEFR^QLd>B&&>+;s`Qe=wKBwWG#>JMQ$D{^=SmFE5|UWBZug z0K=ov_Ee^86dI9DhQFb=111}`D)tTrCc3aK?Q<#^?fS zHO=v<@k&yvH|yVBefRGy{=73I*X+1kcuDTe?QnzU1Xci^b*9QHG(={FF>&dsF zB?06GE_P1K$;nUIi?IU3i9IdhVYK91-iD*!n#}*K=Ob^hrVa&*b#!Ns?wy0=t#W_9 z?u<*=#4|C%t)luPPn+FsRTd&;+AvNy*_k$_<(~5_jT#P`HMeXS+*mJq&@C<1-Y@od zj!rdSv8}HWBKtM<*>-F>6v`$mdtV;IMKVbc6(v7|K-v>am^hBCCbyEcuzO`-uJ6jP zmSoX+GwJO%uZxfH?Sk@i48RpJcZW%s1k_+#Maq#}!R2MlDV<0sr7f(4a||u}Llgd5 zuZM9`%?Ba|hZTWg23J;sZWrBLwD}6BqtRrp4taHk`{~XKRMd0Mvk+RwU$23Zx0%U~ zL3Ay9Y#rYv#kzn=TVv;w0tobf1aYyN!O%9A9L^UF%J{=x$=O@Kb7NY{uFo=*M4=50 zkYk}78EiRo{hlyL5?OJ?r9GTn36^T!HN$@(9bCf4opILDB7cJj_taTFtTJuRHOF{Q zd*5WfM$b-)rU*}6bD)c=km+5rt;df`JU0t8F};p1I!%}3ox`*q^L@=4A(w0 zj6T!`QwURLb{V_n$I#kvcqKpe(ib=W;7wpL59zB-aW#ng3Qa>dyl16}{k>QFyV{bH zZ>)Lg8B0;U_GW|qel6u-XowgtdddO>4`p|ux0{oMqu-=^$MI4E<6STS7V)p+lKv^y zM>6IjmfHr?+5@ktjlKSCO}Al0MZ^63mVd(Riw=A1Qj$GdS*;C%pYoMQh9j_fs-I!< zTY^LYk00DDL@(()>K(Ov#WAItc7G-WwP^LPmMZ^I=5c#DGaQ7BQSJ~{ZG#lBp8coe z>BO{ndH??_%I?ZV0IXJ|gjKGn1X%O&@=nH60Jnu8ZUUR~&6O@fRP91A&E+?Lf(wy< zg0D>*{>InvbWmkGS0zlzD1X+lr`ieM9_J_hGUq%(xT4OE8;607L6xZ5z4la03LhKA z#VxI^rH0F|Nl3JlDS$?8QcPJx57=I|UJkjMze=AyjkHU~XGH5Nmy$_$#JpNv^sr+)!&NdNzgxYr)!Y|m|2F8RC1VhY1=;M}Uw(dTk143YZ$&aj}&87i!wPQ;Y22x6|mL8PV*vGEnj9 zK^d<3hX-3Q&g3)Fx^k)m^$8?CjQY5^odxxTVnvNQy-kGg3Zlezxa-Iw{!Z-czc~fs z<(W6FW)_9!)Fa2z+|HNK=fcSD2{;|RJC;{cc%G#Dx=H5Rh`EQIcIUds`i;k9{WQu} zmd+|S`b?E}`)o?;YS9ke( zAkl~_FRlvGE}7oP$7llu!u_Y@8Mx6#`!$uNu@qZsiGIO!*LOqp>D!AX!tSHHzn?j# z2wxtKnXEU-CI&y(7z0A}2t1Ai2|f0*o<28mIyR#}RSFbv8$4Y?T#uJq+iOZeK@PS< zHkLeG+TG3*W1Oau$XC#1L3@@er|yIM%VW3**lg<)_Wh^y2B!42p3mk*m0UUOr7bih zMgz_)UWt!#M-D2Jehkv%^R6vW+l@!FDZZmtjOE5bINZT;HV_>yrMW5)# zFOdBwR%vwRm&lX84jeyj_AfLkm(wuiAr0xjU-wX39_Dj-8fwfDba9k&n~kZ9^CbGf zu`+wefzf`D33wN=dc+-SJU1D?3I7%dvCQ|kS{dYMny%LYFzD2 zm7){9rDI}(H4lw4mhBzP)qMEy!E`jE>?fXi&;f7w@Rz(B3S#?RmirZy*{@IA1nka| zdQxp*(WtR>mj*xM0D5F_SX}wcA#6MXg`Am#y8JRRiJD34#;y%Wj}D3MtY#X-TTCsN z93Ro2vpVVq4&(`+`~133{8lX4EEV0;IG9fzAPv?68oE;Xmx(=ekA8eh6@w8p@hQ=G z?x63N*La2lW2SL{^!?+SJu?qYd?nLhHT5gvl$af1WR><=!9-)E3fFqv>;lX6P>sZ4 z{t3y%A@v?S--GCuUai3I!9Zyu7n0TsGba=CfR1=kjP<;IXU5~Ww)<%tU*{WR*mFS1 z`~)rLho|zs%<;ZPS7;(+p-6aDO-E5NIyrf+D+Jry%S%8|u)C|Pq&T~;Ps-F3y1M#V zOKSl|8?XQWPFH*gM#;=NJNiiAa<;|DD!CiXR}*^Z!bMyi*O~p$vmt6TW@rSZ*Ie z2}SC{#irlrWKSr{{L8}7jL?buA3i%Ul8*1mSSO|bK(idbWWK*AZ87l|$&K@jOrhHk zrJne$tk~%>lT~EAmiyhNuCSqF7E%tV2iYKshJlY)!yg;``Tr|(@(F9Eo?|0FT^RTL zF~!Nt?M5cjo>=hIHvE->MB3T7gRr*fw)xvJLuFRUZr_LHHS*%8FurIL8OoRzqm9-#^Mwj@6#iW^St6 zHMH}?Ghq+`Ts`EDE6yxQVB-&5%RTTgFAobSBG%DzA%K+>w+fG2^3O%uV_;%IRVM3V zVkGu__8+ACaie4Z5A+CDysPd^_1i7x1wPk+!*2zPT}h!B{+eL7t2OY*0hi{qYcwHr zH{|EN7+!wiK6%m8;46uL;ha!4F;B+ZkepiB8;C5Of$&CU zZhOTxmRLi1_Gb#dh_24P+l{HAaYAPRPMBHAUaUd%81$Z!hWqE3+U;cfmn?^akA#@) zZ)xOxB0C49f$M}(X>&GXStoa7ECrc?FSR=8PF1d$$hNK-qJpWoQeD%1Eq194*+Es@ zGNa^Bh-bOWE`OAia^b#%WnsbH){%=w(9@IxJUrn-+Bo92n3{JsFQylZ&q!2NyOaD(){+&tu zw>I*RC4X3`zug&s``Q1oS6wo-2QR+{7*{$afm%iOgUGGK6udhs_?L*onQ3(&$~=c&A_wR zac#>=pR@&wAhu;_ZDuTq^OVc_5_mDf?@AnsH!%6&xA8)y1>BFO5p6GB{6zF&Dx$G_om}JHh zZ#6*tX=pFS9dwLiG?)JjhBXU*=4)?Wk3iG=O6O@o4@{ETK?%JSnXUr8Pp$jT8*>W< zP8FTh9I2W11;Z`g4K?5eF9#c@LRs1{Vn+WA^YF#?@ug2N(OoYP$ljQgGS|aE?+A&~ z`18b=UvRK&f-Xr2S|g6$q>lJ{1BPFGhVcS-1a*-b>S10V%YtYI&g{vuQM41MOsR

    i}HsW#fGlv!Aay#PB0EY-=;WMt!qa3Mu@yvsHkLc%i9!;k@I<|BK3+B!K;Z z`&4Xhy?-JZx!t(T;(tbB*qqCG5$EDWMopAM)_gJKXNuVp`CViDwA&fQ(r2^#FOCOI z{B3LEJT)UDzq(qKHnM~F)qQi)cW0J(DTiGQ8rDWi$<}y*IJN`na`7Cr;jjN4G~3R- z#D93n3g?FmwZp$qwhAjFhQEX=I0*>}e#dJCtoPksTXwy@Eh!nrf!I4ZuoPnY?oeYV z%B-M$`ZC-c?_uqB718!NiQz>?o+GY`W;LT`zTDVgD){o{%dfM}E32!xLaFLY%gfr2A8Tl8 z4lrJ+P{n2YVB*72WI}x;(>;24((pi!IhxBHHI1>UN-ai~{p-1zEHNK6Zz%K-J;^+A%_~Ac8l9MroL;OZ$d+-P%dor^z??M2H)m|*k10@6li62ZXM_% zk;+e=T;ob0d3AL3ytA|O_u5*kMaB2g(e}Ty^*sXvrrK}y4Gi8G6eq2&u3oO>KM8bf zQT)L2m3$IMhJBXciwyC1k^=^*aXUFnasrN0)er`P`*GB{74Midw6ro9U+*6ZZz)qa z(JEG0LOuRuW?ucbyKC?4Y;*8;w))E#9Rq`pdDVveN*uJ>=lp14hnn|u=ldwXvvsr8 z4o0)Ql9H(NbAQ-he{PI)@7pU9pFV$XdTN|#o!ZnSEq%0fnUYPqZy-bBIh+>)fiR*m z*Vof454iB}MWcBH1(lPn3!9r|o~;e%`?$EcSh>0iu~LQxzhe1qhV#Sv1C{Gff_p~? zrSDC-9Uj87D6V2dWQRNj@`0p|?ua!l-ifrV@*t@S>#7I2vXJ>lmWZTr=2}_Dg zOReEFCAVAfMa9GtQc?;UxM{x(CClAaoqaZSYq1vzOGIj zyAfVq`QkBQ8JWS;Q%PvfsJCy2=jPZNeK8K*HdU7hiHKGuuMYAHQAFW9XlapeXCcHx zg}F7mw~(N5^@YBQYbB2v1#u)@Bfi9LOXj>O;-+3s+L4{r6E8#-gk<=SUVi7Qu2C|9iMd9dr@;+wq9Pz zYiss1&SHy;izK0Kw{20=wi{mcgY&M3*Wch-25Vg-8t zIT*$A%5f9&#JsLGM*T_Z`MrG+@GAXx0ejR<3#$(d{!K z_bpbTvsxc7J=j|=dt9IV<_+Qa=f{!onw8b-zki)sDT(U6Hgi6HeDjd|wL!6B*+fEI zT((|Kg<+JPXb~x4aB_G!No3a|55`9l&;uIGv`p-`SAFB>b@Up>H-pT6j7YsuugEc6 z!NL{SX;>9sy|LO(zbNKVQB6J~1s(KNRrXVya*Y-ViMFlbF3pEt#iXRzjLR_+%SUmU zYENd@M&{LPdP`pX>oNH8ae)fUVuGj#4<6)GhUSj0c?jRV z`=)F0iInRLvZ-+X)}YPqGQ(W1Lt3K&X-+iD0$=uc<~E-tR^lQVU7^ObS z&XmEevIqo;gxAIgIK7gRl6v3YIot~v-#CtNL;jDFB^-=oA@UrwB$p=9Mo==p-L$!- znhDcI%!HY8zK#IPqlkU>h);UFB?f$hQU|P|lvftI<8Hj`xB0WaPC|f39Q4Ydn3Ey$ z*+M(XK>Ga$*W+a4IbaYfjfRJZp>uPyvjZtu?()}t99+HJbTYeTe0+Qy5%@2J_-;i@ zKP?}9O)?(;HRkAb(Odl&Ynka6K2K+390k@SL@vqIhZPs^nZEnI=-ef*+ciGTTC_cDLK8%D80^YHF6ySp;~v16eXLV-6iocW)5m z!JGq8GNqsup^osBy!?EgOZ^)g{6Mh@H?KU0oc_wU50`)2 zl)?zS(z`T6B}rbLS5RQ<{G&P?2>z|HkLx=Wk#0Sn#Tc{dHHWJ38`RoDN=;(BTi+ z(IM&vkP_nJ_xw-q!4cprt*(yz_@V0PxV{>6>&A`XXcn>Ip`liMD#`K%&KLUn^ufWw zlbc?oWMucfHke?j1p|)IbPNnX_dShElR@SX$bEpVjTC5AIZoVyL4^;EijEFp^hx?d zIDD(@UO9o>VI@D>jA)#mf#LlZr>SqCIi@NsiIS3%df$dAZ7Ss2l5{PEF$)Z3Bejt- znE%R^m7Akk?}b}w#0nY}ewv9=oeBK(Q^m}T&E4IdDO$;*f@x%A1nN{aNyN*`yD(a) z>mzy9%7}|0a%gz?8>;ziQ&G|p2&MUKx|uUhWqZ;x2ILlnEPR4XBZgtCVV5%C;vk@m z`ya|gKtP~jcR<37xEz?8PU`P)z8XN$-{y;Ri6GVI3ah>8lHM#n&5R@fOVp$_b2;)xJEP{({*=&6$qYsgTCTsaVNXv*1q!v#aNfG4aHH zL&bdHrQl7%jpo7^3VK(lK#(=4473RXFE9}IuFKB`3pQ>E36@d=bYEXoPA5`N@597; zYI?e!&$w2=v2IaO(P1yLsghgR+SYai_E_eR;iJ4N**$kQJ2$)I%Od8y^s6;k;d&gs zR%nmjm6)zt*Ll4E{`+rqVnQ&Sd1JC7cz*tg?~50OWo25ucXr8INO9#ppS0#BIlsnZ zb*rC!r_Ke^6mW+iST1LXTS`i*8ij(gY;BL5Z0+oHt-9Vjj;6 zD-Rhrlc^9}NC(B@%ZmrOUMU|N8v~XikYk4lO6&hp`7Pa8!`D}Q-qkRUM@L7;u-RV< zMhdXvmT5!x-k#{m!B(?%-DQHn)vSO_V7kwbYTdfl*F40b+bX6v`L0&j*xG``g+)EO z#aLTgtM*w|S4W4Nho=?93C4Hl$Zv)^Kc44VM_|&DAwK-6vb3~ZIX(3Y!8vb}Iejpk z*jc1s>~lCD%ENOz$KbJCJfX^0s>{)*=?bThm$VswD|~C~|3sFF_mVm1VHEpHw$4*| z>L{Gi(b4Zee`;Qj!wME)BmZkW?VDaeaozp>iqr&f)}1c?yDU(#wav}^>}*^_yt892 zqG<(0f=&PXJKhbZnwpf-SzCaHVuEE8YLZuPGLh#P6!-M^KOR5P)6)|Y7M9o2q6(Ci zU8zfxZ;m}*@WWMW2yF1ol6t{VV_d37H8nNmx9MoMxSV2UGngr*heYO1Fy_#z(X?Ao z@2UJfh*iExQ<_A4KfgPV+WRHBU6_RCwXk*Sj!H#iU066PWkP&>&R&Os8$c^AP-h|+ zW`A?~S?#0VzbHd~(!l1~-oZgz505?fGTXapaPoZTuAni)J1m&U3Hcewpn1?Qx^qCD72AClm!)sjEvd5UJt{-pRr=#RnQ-_;RJ!QuY4rmD&^Kb#V|&8BxWvV7+jAt z{G#GpzkF~~>$S<{ZD#+0E6GIop#!MBlu5lPE*8VBIO*_*|9Nc&bvtV#Oo1-D1lsMC8cuXQV@$4RZ|A!hVdNP;HLIy$O&(!ssnM2 zmly@N&9e&#P=vN+|29IIfNoLEJ=~RzegD2Lr{%cc#UD5xc=M`J@_)?Cuwn$88h;5qTc z{25D!_Cv&XqtUr2l=l=BR)6`IfM@(zP>{qh@P>j#MMFd1HyA+EZ*NFha;N=r`n_jC zFHiQL2&X#pBoYS8)z#G_T*B%Ioi>u1XwMO9ZQWI~lq`543h)-47#>h`{BEBu| zP{(v>7jHE^p`{FkrUaaF2k+29;&vm|#m??Sbv0e_ST8gz=2i;doHJ?_5EFoAOqYJi9NgOSv+)J!T%8gTEZrRZd;t*P=Y0Fw;-5c%@IITkgRlpoQ(}U8 zyRqQ}96CEY>*3+S9&!EX=m@~5+@_zo;~QN}R|p^Sv*BQdgss$z{SAEN=SQuZUPPz< z7e}(}uKcv&ezY-Ng8bbK;T+x01jz&*tP);MZ4aoVU?8C}hbJaNN7f!`o7>kI!+^tT z)6-euVQp<~s0Jl|1~7m;IV(O%#fc`?~CCr(9Bp!wauKLvduc18FT{~d-v&& z>ZS2m4g{-|Zz7lr_=ff#Y?b9yJ{VXmGa%yU1 zP^3T_00Z;XhTa>+=FpqXZ0U*9KnuFE!6|K$#K zZ)|Kt@Sz>YOXg+H7iA`^?JtA5!DeV6szro_gWBey+(OdQ@Wj6B>(9V1zzVT`5wkuq zH=N>WdBfY)l{#xMbjnGIPVtNLY;Q*-BYkR{L(RYM52&(r3X@qqKbto8!Z=Y-P@s<~ z!IS`y!ly5Kh~IZx3LB0<{3uQ!ZQww_NpH`%5AK|wY`Jet-abA#F{-km;N;{~W%~}4 zwc`UJMs9g|EC^|^nfIS95CAAotb?BT?NO(==nDR&YAR~V>EowQVLp4KuB)s|%Yj4FAa-{U#^~54gk5$tkb0QfJK*P!!)>lzC{) zBO+wY;7!-k3wu%KJ{u9x2@%(JVfR=>9~#mIWnDhyM1U746gz-vHIZWfNnS$m-4nE= zK7bhMU>#7cW`TQ8iz@BrLv96jYI6$Rbu`>L5k-lV$@-*||g_U-Mz1>(%RHE&+MM zx2!V$r^SNJrL>)Map++5Nj$`E;od_d?dFE2xn(;(sx zBbyJ&pl`zI)ldwPoc1Gt7dazqbeXX;&(OEe;mn^MZa*=7u~|dEni;Tf8_?<9w0i|G zVBwjJ$8T!DImxrV5!jifC^HSg6YXjQ2Q4`{IaZBA6$%RrA^zaW>X~;n7h)1(jwbyI zF8{0aC{Qaz%@F&7unwDb&RRY`wY16>CdaEtyOB)p;py#tnV2B)k4D*qh=@q;-gtZ= zJ4v3oP}tm7*QOVr!t}BmkAg(%F+W43Me1zBa}j_k0BO3&4tcQmaL65OfLh5qQVfiY zHzKZM9g#B%YTt5tdKyp2|CaUsH>^u(x;Wc{bt6yxYm5a&)~QqMR+6fsh6V-b+lHf+G{4iGE=kO&ZbZF@laubKm1@E*jKpdb~TJRrxd6t!zV zoKbLA;CG{y9vB!f^!N8ebXn;<-wh-lkN2v5% zH*j!t-1>uo+4oyhGg~mbz?fmFqoP8)f{Zh~zSUf|U__wS96?zNc{2V)*F1$Sz9S|Ej)g9ho;1X{*bZH(uB=SdeApq# z4UU=ZVuuZB#eBSLtN`br%89Z@Cv)mASzB9|m^Ekat`3esg8BVBH9%ykL2*>Pea#O} z4c?y0K2QhY3PBAGk}$G>4iL@E$yfh#KjZ!=#6HVwfoK_e`}S?4V8b>ZM3}w3s!>We z%9_u`@1{}6QA58%H}F}xfzCv$QWzA|g9$b^W(ItP0I`g_Jf3tn8lRz~qXVqHh>(!1 zwRJvT35)K0jpM}cKYwx>8?R{7J)aL@GpZt37Q2WRe5;?HOBownN#IY z@U`G-Wc9curLIc)bo;@=4kWhs0lY0>TH&?_oG?hW4&|noCtgl>S>VkaP+DLm^SfyX zEv=g}G8bgmR@7)r4>qSmA(FDF;3pe}O@Z|D`a6RN2#^7|QPqE!NbZ~{F749a*C%xQ zwj4xBIDk@+H0)dwy2QXi)DiA0(arVB{iar?LhcYCbmA~DysKh!yH$c1E2X7yYM4^) z;n_KTqf(_@y3;fOCiv$!)0?KEwF#0(Tf5}1%tqrm!XfgDPfLsJu*m-SkuYlzwQ=%H zJR|SpM+?+6K%1)Kr-}6xg&9r+*2}rxQ`gp}sj8|g)N=!Q4n8$!=+kiVs6$P| z+5U85ax&x;K~qj#OyrQ|!h^AF3wmm1=WA}#BSt~frL%)MgK($m=NkP9oYVu1R8XDThd!j{qa1R;(nBAKw5*!q77)<)8E?eli&KGex3;w4U?2K#84Y#Ie7SGbF`dZz zSPOxehm1k&dFJ?U6W=(o1G}H(QoJC)}?y0B#F?C$=0>)7W=Cefo3{ zg8?5(S9{Iq$}LU`O-)Vgy^g!P2*idSo}L}G{>~12g#PsNgvhmw-a2qaQnrJcPyK;{ zv@kj)D&=PNEg%Sp(@z~~qAx^Nea z?KA^}PVj};d%scxzJu6|jQ)=rY4<<|fQBu3T)*!==k4Sam8%>B3IfYV$}-0^&`uHl zp1DH4V!u>5Xd$Uo^n&;fZ2Mijug=&1?yywOW&~dHg9vx%bSXiLR}yVgbz5BAcS3c0 zmLJFH`#T&Q{9x?w0%+6q^!Dlum+u3apzx9~C@*e0d1?Z3 zLVTb!Cy1my*T*ZoHjPzPRT&hMp}T6`SGSM++83X3AS@vEf))iYnuGtq`Hnd#`9pN` zsTy2tK8Jn#V8)PJ4%d$~g;jvAXv5*^Spir%h@Jo6uP%$*f9toTPyJj7vLNqH7xyGh>t|T1+j8)iqdV&p z#boGYllyrrw1*?(7oH4rta#NU(`^$I6MuP#1E5`lM2|}P5Nmh7kBmSh^Kb*5!)+m) z3Rd((UETZRV_#r#$j=)VTdxxa2SN_eA^R?oA^vJPxK2fiwdqpu6Y%W0lb;7Zn>7>3 z0&2uTEkA1D3hp|%%!iL3pZ(VY9io&w-%7-m2i^k2y8mGt8yvTiy?x=g=WzAdxi(S& zmz-ErK0dDG?=RhI9^2X~2a+4hT*)U4T2rva%QeT)oLvXZGz#rLezr z6;{8}`)wkD?Cc>8PQ)c^p3@RydPGxt^J(8^fi**I}`Sv^O3wHE@L=e<+m2%6sfh(e{nZx{flfkSt_*Ow{vf-Zl?PW0bcnST=4Oe|U3 z*sN4)&DY1FG5h;)4FU(RP00V#Z?|8uv$;O?@(ju)i&i^j`VZo2eYL~b|6SuG@gWUS z&KWx42L}hc^Py~DAbp@0=>k$Y5Pkjqw?#!2yuHOBnZe4{8SlB5#6hz6SmD=AU?(6m zGc-d@%aG?cLh3IWh%#G490Ae{5|g`W(Gc1YeD!~5VufqiYQ?hJsdspRGme||(89sL R1Abcv2cf8`@LAqG=zmJ?6CnTq literal 0 HcmV?d00001 diff --git a/data/pixmaps/template-designer.png b/data/pixmaps/template-designer.png new file mode 100644 index 0000000000000000000000000000000000000000..278970cc387d35a26238db4bb4133bdd1cd6850f GIT binary patch literal 6058 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 + + + + + + + + + + + + + + true + <_summary>Show/hide main toolbar. + <_description>Controls visibility of main toolbar. + + + + true + <_summary>Show/hide drawing toolbar. + <_description>Controls visibility of drawing toolbar. + + + + true + <_summary>Show/hide property toolbar. + <_description>Controls visibility of property toolbar. + + + + false + <_summary>Show/hide grid. + <_description>Controls visibility of grid. + + + + true + <_summary>Show/hide markup. + <_description>Controls visibility of markup lines. + + + + -1 + <_summary>Maximum recent files. + <_description>Controls maximum number of recent files tracked. + + + + + + + + + + + + + + + '' + <_summary>Units. + <_description>The default unit of measurement. + + + + + + + + + '' + <_summary>Default page size. + <_description>The preferred page size when searching templates. + + + + + + + + 'Sans' + <_summary>Default font family. + <_description>The default font family for new text objects. + + + + + 12 + <_summary>Default font size. + <_description>The default font size for new text objects. + + + + + + + + 'Regular' + <_summary>Default font weight. + <_description>The default font weight for new text objects. + + + + false + <_summary>Default font italic flag. + <_description>The default font italic state for new text objects. + + + + 0x000000ff + <_summary>Default text color. + <_description>The default color of text for new text objects (0xRRGGBBAA). + + + + + + + + + 'Left' + <_summary>Default text alignment. + <_description>The default text alignment for new text objects. + + + + + 1.0 + <_summary>Default text line spacing. + <_description>The default line spacing for new text objects. + + + + + 1.0 + <_summary>Default line width. + <_description>The default line width for new objects. + + + + 0x000000ff + <_summary>Default line color. + <_description>The default line color new objects (0xRRGGBBAA). + + + + 0x00ff00ff + <_summary>Default fill color. + <_description>The default fill color new objects (0xRRGGBBAA). + + + + + + + + + [] + <_summary>Recent templates. + <_description>Recently used templates. + + + + [] + <_summary>Recent fonts. + <_description>Recently used font families. + + + + [] + <_summary>Recent colors. + <_description>Recently created custom colors. + + + + + + diff --git a/data/schemas/org.gnome.glabels-3.gschema.xml.in.in b/data/schemas/org.gnome.glabels-3.gschema.xml.in.in new file mode 100644 index 00000000..c7e7ea92 --- /dev/null +++ b/data/schemas/org.gnome.glabels-3.gschema.xml.in.in @@ -0,0 +1,180 @@ + + + + + + + + + + + + + + + true + <_summary>Show/hide main toolbar. + <_description>Controls visibility of main toolbar. + + + + true + <_summary>Show/hide drawing toolbar. + <_description>Controls visibility of drawing toolbar. + + + + true + <_summary>Show/hide property toolbar. + <_description>Controls visibility of property toolbar. + + + + false + <_summary>Show/hide grid. + <_description>Controls visibility of grid. + + + + true + <_summary>Show/hide markup. + <_description>Controls visibility of markup lines. + + + + -1 + <_summary>Maximum recent files. + <_description>Controls maximum number of recent files tracked. + + + + + + + + + + + + + + + '' + <_summary>Units. + <_description>The default unit of measurement. + + + + + + + + + '' + <_summary>Default page size. + <_description>The preferred page size when searching templates. + + + + + + + + 'Sans' + <_summary>Default font family. + <_description>The default font family for new text objects. + + + + + 12 + <_summary>Default font size. + <_description>The default font size for new text objects. + + + + + + + + 'Regular' + <_summary>Default font weight. + <_description>The default font weight for new text objects. + + + + false + <_summary>Default font italic flag. + <_description>The default font italic state for new text objects. + + + + 0x000000ff + <_summary>Default text color. + <_description>The default color of text for new text objects (0xRRGGBBAA). + + + + + + + + + 'Left' + <_summary>Default text alignment. + <_description>The default text alignment for new text objects. + + + + + 1.0 + <_summary>Default text line spacing. + <_description>The default line spacing for new text objects. + + + + + 1.0 + <_summary>Default line width. + <_description>The default line width for new objects. + + + + 0x000000ff + <_summary>Default line color. + <_description>The default line color new objects (0xRRGGBBAA). + + + + 0x00ff00ff + <_summary>Default fill color. + <_description>The default fill color new objects (0xRRGGBBAA). + + + + + + + + + [] + <_summary>Recent templates. + <_description>Recently used templates. + + + + [] + <_summary>Recent fonts. + <_description>Recently used font families. + + + + [] + <_summary>Recent colors. + <_description>Recently created custom colors. + + + + + + diff --git a/data/templates/Makefile.am b/data/templates/Makefile.am deleted file mode 100644 index 4d38e069..00000000 --- a/data/templates/Makefile.am +++ /dev/null @@ -1,20 +0,0 @@ -## Process this file with automake to produce Makefile.in - -templatesdir = $(datadir)/glabels/templates - -templates_DATA = \ - paper-sizes.xml \ - categories.xml \ - avery-iso-templates.xml \ - avery-other-templates.xml \ - avery-us-templates.xml \ - brother-other-templates.xml \ - dymo-other-templates.xml \ - misc-iso-templates.xml \ - misc-other-templates.xml \ - misc-us-templates.xml \ - pearl-templates.xml \ - zweckform-iso-templates.xml - -EXTRA_DIST = $(templates_DATA) - diff --git a/data/templates/misc-other-templates.xml b/data/templates/misc-other-templates.xml deleted file mode 100644 index 4f57e745..00000000 --- a/data/templates/misc-other-templates.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - diff --git a/data/ui/Makefile.am b/data/ui/Makefile.am new file mode 100644 index 00000000..833eb26b --- /dev/null +++ b/data/ui/Makefile.am @@ -0,0 +1,15 @@ +## Process this file with automake to produce Makefile.in + +builderdir = $(datadir)/$(GLABELS_BRANCH)/ui/ + +builder_DATA = \ + property-bar.ui \ + print-op-dialog-custom-widget.ui \ + media-select.ui \ + new-label-dialog.ui \ + merge-properties-dialog.ui \ + template-designer.ui \ + prefs-dialog.ui \ + object-editor.ui + +EXTRA_DIST = $(builder_DATA) diff --git a/data/templates/Makefile.in b/data/ui/Makefile.in similarity index 78% rename from data/templates/Makefile.in rename to data/ui/Makefile.in index c60ec5f2..9c50465b 100644 --- a/data/templates/Makefile.in +++ b/data/ui/Makefile.in @@ -34,16 +34,22 @@ PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ -subdir = data/templates +subdir = data/ui DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; @@ -67,17 +73,19 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__installdirs = "$(DESTDIR)$(templatesdir)" -DATA = $(templates_DATA) +am__installdirs = "$(DESTDIR)$(builderdir)" +DATA = $(builder_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ +CAIRO_REQUIRED = @CAIRO_REQUIRED@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ @@ -91,6 +99,7 @@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@ DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ +DLLTOOL = @DLLTOOL@ DOC_USER_FORMATS = @DOC_USER_FORMATS@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ @@ -100,17 +109,23 @@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ +GDK_PIXBUF_CSOURCE = @GDK_PIXBUF_CSOURCE@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GLABELS_BRANCH = @GLABELS_BRANCH@ GLABELS_CFLAGS = @GLABELS_CFLAGS@ GLABELS_LIBS = @GLABELS_LIBS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ GLIB_REQUIRED = @GLIB_REQUIRED@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ GTKDOC_CHECK = @GTKDOC_CHECK@ +GTKDOC_MKPDF = @GTKDOC_MKPDF@ +GTKDOC_REBASE = @GTKDOC_REBASE@ GTK_REQUIRED = @GTK_REQUIRED@ -HAVE_XML_PARSE_HUGE = @HAVE_XML_PARSE_HUGE@ +GTK_UPDATE_ICON_CACHE = @GTK_UPDATE_ICON_CACHE@ HELP_DIR = @HELP_DIR@ HTML_DIR = @HTML_DIR@ INSTALL = @INSTALL@ @@ -126,31 +141,45 @@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ +LIBBARCODE_CFLAGS = @LIBBARCODE_CFLAGS@ +LIBBARCODE_LIBS = @LIBBARCODE_LIBS@ +LIBBARCODE_REQUIRED = @LIBBARCODE_REQUIRED@ LIBEBOOK_CFLAGS = @LIBEBOOK_CFLAGS@ LIBEBOOK_LIBS = @LIBEBOOK_LIBS@ LIBEBOOK_REQUIRED = @LIBEBOOK_REQUIRED@ +LIBGLABELS_API_VERSION = @LIBGLABELS_API_VERSION@ +LIBGLABELS_BRANCH = @LIBGLABELS_BRANCH@ LIBGLABELS_CFLAGS = @LIBGLABELS_CFLAGS@ LIBGLABELS_LIBS = @LIBGLABELS_LIBS@ -LIBGLABELS_VERSION_INFO = @LIBGLABELS_VERSION_INFO@ -LIBGLADE_REQUIRED = @LIBGLADE_REQUIRED@ -LIBGNOMEUI_REQUIRED = @LIBGNOMEUI_REQUIRED@ -LIBGNOME_REQUIRED = @LIBGNOME_REQUIRED@ +LIBGLBARCODE_API_VERSION = @LIBGLBARCODE_API_VERSION@ +LIBGLBARCODE_BRANCH = @LIBGLBARCODE_BRANCH@ +LIBGLBARCODE_CFLAGS = @LIBGLBARCODE_CFLAGS@ +LIBGLBARCODE_LIBS = @LIBGLBARCODE_LIBS@ +LIBIEC16022_CFLAGS = @LIBIEC16022_CFLAGS@ +LIBIEC16022_LIBS = @LIBIEC16022_LIBS@ +LIBIEC16022_REQUIRED = @LIBIEC16022_REQUIRED@ LIBOBJS = @LIBOBJS@ +LIBQRENCODE_CFLAGS = @LIBQRENCODE_CFLAGS@ +LIBQRENCODE_LIBS = @LIBQRENCODE_LIBS@ +LIBQRENCODE_REQUIRED = @LIBQRENCODE_REQUIRED@ +LIBRSVG_REQUIRED = @LIBRSVG_REQUIRED@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_REQUIRED = @LIBXML_REQUIRED@ +LIBZINT_CFLAGS = @LIBZINT_CFLAGS@ +LIBZINT_LIBS = @LIBZINT_LIBS@ +LIBZINT_REQUIRED = @LIBZINT_REQUIRED@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ -MYGAL_CFLAGS = @MYGAL_CFLAGS@ -MYGAL_LIBS = @MYGAL_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ @@ -163,9 +192,13 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PANGO_REQUIRED = @PANGO_REQUIRED@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ @@ -175,18 +208,15 @@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ -UPDATE_DESKTOP_DATABASE = @UPDATE_DESKTOP_DATABASE@ -UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ XGETTEXT = @XGETTEXT@ -XML_PARSE_HUGE_CFLAGS = @XML_PARSE_HUGE_CFLAGS@ -XML_PARSE_HUGE_LIBS = @XML_PARSE_HUGE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ @@ -206,6 +236,7 @@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ @@ -219,7 +250,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -235,22 +265,18 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -templatesdir = $(datadir)/glabels/templates -templates_DATA = \ - paper-sizes.xml \ - categories.xml \ - avery-iso-templates.xml \ - avery-other-templates.xml \ - avery-us-templates.xml \ - brother-other-templates.xml \ - dymo-other-templates.xml \ - misc-iso-templates.xml \ - misc-other-templates.xml \ - misc-us-templates.xml \ - pearl-templates.xml \ - zweckform-iso-templates.xml - -EXTRA_DIST = $(templates_DATA) +builderdir = $(datadir)/$(GLABELS_BRANCH)/ui/ +builder_DATA = \ + property-bar.ui \ + print-op-dialog-custom-widget.ui \ + media-select.ui \ + new-label-dialog.ui \ + merge-properties-dialog.ui \ + template-designer.ui \ + prefs-dialog.ui \ + object-editor.ui + +EXTRA_DIST = $(builder_DATA) all: all-am .SUFFIXES: @@ -263,9 +289,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/templates/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/ui/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu data/templates/Makefile + $(AUTOMAKE) --gnu data/ui/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -290,26 +316,26 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -install-templatesDATA: $(templates_DATA) +install-builderDATA: $(builder_DATA) @$(NORMAL_INSTALL) - test -z "$(templatesdir)" || $(MKDIR_P) "$(DESTDIR)$(templatesdir)" - @list='$(templates_DATA)'; test -n "$(templatesdir)" || list=; \ + test -z "$(builderdir)" || $(MKDIR_P) "$(DESTDIR)$(builderdir)" + @list='$(builder_DATA)'; test -n "$(builderdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(templatesdir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(templatesdir)" || exit $$?; \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(builderdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(builderdir)" || exit $$?; \ done -uninstall-templatesDATA: +uninstall-builderDATA: @$(NORMAL_UNINSTALL) - @list='$(templates_DATA)'; test -n "$(templatesdir)" || list=; \ + @list='$(builder_DATA)'; test -n "$(builderdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(templatesdir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(templatesdir)" && rm -f $$files + echo " ( cd '$(DESTDIR)$(builderdir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(builderdir)" && rm -f $$files tags: TAGS TAGS: @@ -351,7 +377,7 @@ check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: - for dir in "$(DESTDIR)$(templatesdir)"; do \ + for dir in "$(DESTDIR)$(builderdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am @@ -399,7 +425,7 @@ info: info-am info-am: -install-data-am: install-templatesDATA +install-data-am: install-builderDATA install-dvi: install-dvi-am @@ -443,21 +469,21 @@ ps: ps-am ps-am: -uninstall-am: uninstall-templatesDATA +uninstall-am: uninstall-builderDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - install-templatesDATA installcheck installcheck-am installdirs \ + install-builderDATA install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - uninstall uninstall-am uninstall-templatesDATA + uninstall uninstall-am uninstall-builderDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/data/ui/media-select.ui b/data/ui/media-select.ui new file mode 100644 index 00000000..499ddbd3 --- /dev/null +++ b/data/ui/media-select.ui @@ -0,0 +1,362 @@ + + + + + + + + + + + + + True + window1 + + + True + + + True + 0 + + + 320 + True + 6 + + + True + + + + + + False + False + 0 + + + + + True + True + automatic + automatic + in + + + True + False + + + + + True + True + 1 + + + + + + + True + 12 + Recent + + + False + + + + + True + 6 + + + True + 12 + + + True + 6 + + + True + Brand: + + + False + False + 0 + + + + + True + + + + + + False + False + 1 + + + + + False + False + 0 + + + + + True + 6 + + + True + Page size: + + + False + False + 0 + + + + + True + + + + + + False + False + 1 + + + + + False + True + 1 + + + + + True + 6 + + + True + Category: + + + False + False + 0 + + + + + True + + + + + + False + False + 1 + + + + + False + True + 2 + + + + + False + True + 6 + 0 + + + + + True + + + + + + False + False + 1 + + + + + True + True + automatic + automatic + in + + + True + False + + + + + True + True + 2 + + + + + 1 + + + + + True + 12 + Search all + + + 1 + False + + + + + 320 + True + 6 + + + True + + + + + + False + False + 0 + + + + + True + True + automatic + automatic + in + + + True + True + False + + + + + True + True + 1 + + + + + True + 9 + + + gtk-add + True + True + True + True + + + False + False + 0 + + + + + gtk-edit + True + True + True + True + + + False + True + 1 + + + + + gtk-delete + True + True + True + True + + + False + False + 2 + + + + + False + False + 6 + 2 + + + + + 2 + + + + + True + 12 + Custom + + + 2 + True + False + + + + + True + True + 0 + + + + + + diff --git a/data/ui/merge-properties-dialog.ui b/data/ui/merge-properties-dialog.ui new file mode 100644 index 00000000..6e7458e7 --- /dev/null +++ b/data/ui/merge-properties-dialog.ui @@ -0,0 +1,212 @@ + + + + + + + + True + 6 + + + True + 3 + 6 + + + True + 0 + none + + + True + 12 + + + True + 12 + 2 + 2 + 6 + 6 + + + True + 0 + Format: + + + GTK_FILL + + + + + + True + + + + + + 1 + 2 + 1 + 2 + GTK_FILL + GTK_FILL + + + + + True + 0 + Location: + + + 1 + 2 + GTK_FILL + + + + + + True + + + + + + 1 + 2 + + + + + + + + + True + Source + + + + + + + + False + True + 0 + + + + + True + 0 + none + + + True + 12 + + + True + 6 + + + 500 + 350 + True + True + 6 + automatic + automatic + in + + + True + True + + + + + True + True + 0 + + + + + True + 6 + 12 + + + Select all + True + True + True + True + False + + + False + False + 0 + + + + + Unselect all + True + True + True + True + False + + + False + False + 1 + + + + + False + True + 1 + + + + + + + + + True + Record selection/preview + + + + + + + + True + True + 1 + + + + + True + True + 0 + + + + + + diff --git a/data/ui/new-label-dialog.ui b/data/ui/new-label-dialog.ui new file mode 100644 index 00000000..3d276e17 --- /dev/null +++ b/data/ui/new-label-dialog.ui @@ -0,0 +1,486 @@ + + + + + + + + True + 6 + 18 + + + True + True + + + True + 6 + 12 + + + True + 0 + Choose label or card product from hundreds of predefined templates or define your own. + + + False + False + 0 + + + + + True + + + + + + True + True + 1 + + + + + + + True + page 1 + + + False + + + + + True + 6 + 12 + + + True + 0 + Select orientation of label content. + + + False + False + 0 + + + + + True + True + + + True + 12 + + + True + + + + + + False + False + 0 + + + + + True + + + Normal + True + True + False + True + True + + + True + False + 0 + + + + + False + False + 1 + + + + + False + False + 0 + + + + + True + 12 + + + True + + + + + + False + False + 0 + + + + + True + + + Rotated + True + True + False + True + normal_radio + + + True + False + 0 + + + + + False + False + 1 + + + + + False + False + 1 + + + + + True + False + 1 + + + + + 1 + + + + + True + page 2 + + + 1 + False + + + + + True + 6 + 12 + + + True + 0 + Please review and confirm your selection. + + + False + False + 0 + + + + + True + 24 + + + True + + + True + + + + + + False + False + 0 + + + + + False + False + 0 + + + + + True + 7 + 2 + 12 + 6 + + + True + 0 + Description: + + + 2 + 3 + GTK_FILL + + + + + + True + 0 + Page size: + + + 3 + 4 + GTK_FILL + + + + + + True + 0 + Label size: + + + 4 + 5 + GTK_FILL + + + + + + True + 0 + Layout: + + + 5 + 6 + GTK_FILL + + + + + + True + 0 + 0 + Similar products: + + + 6 + 7 + GTK_FILL + GTK_FILL + + + + + True + 0 + + + 1 + 2 + 2 + 3 + + + + + + True + 0 + + + 1 + 2 + 3 + 4 + + + + + + True + 0 + + + 1 + 2 + 4 + 5 + + + + + + True + 0 + + + 1 + 2 + 5 + 6 + + + + + + True + 0 + + + 1 + 2 + + + + + + True + 0 + Part #: + + + 1 + 2 + GTK_FILL + + + + + + True + 0 + + + 1 + 2 + 1 + 2 + + + + + + 77 + True + True + never + automatic + + + True + queue + etched-in + + + True + 0 + 0 + 1 +2 +3 +4 + + + + + + + 1 + 2 + 6 + 7 + + + + + True + 0 + Vendor: + + + GTK_FILL + + + + + + True + True + 1 + + + + + True + True + 1 + + + + + 2 + + + + + True + page 3 + + + 2 + False + + + + + True + True + 0 + + + + + + diff --git a/data/ui/object-editor.ui b/data/ui/object-editor.ui new file mode 100644 index 00000000..582a19e0 --- /dev/null +++ b/data/ui/object-editor.ui @@ -0,0 +1,2376 @@ + + + + + + 1 + 250 + 1 + 1 + 10 + + + 5 + 1 + 0.01 + 0.10000000000000001 + + + 0.25 + 10 + 1 + 0.25 + 1 + + + 100 + 1 + 0.01 + 0.10000000000000001 + + + 100 + 1 + 0.01 + 0.10000000000000001 + + + 100 + 1 + 0.01 + 0.10000000000000001 + + + -180 + 180 + 0.10000000000000001 + 5 + + + 100 + 0.01 + 1 + + + 100 + 0.01 + 1 + + + 100 + 0.01 + 1 + + + 100 + 0.01 + 1 + + + 100 + 1 + 1 + 10 + + + 1 + 100 + 1 + 1 + 10 + + + both + + + + + + + + + + + + + + + + + + + + + True + 6 + dialog1 + dialog + + + True + + + True + 6 + 12 + + + True + 12 + + + True + + + False + True + 0 + + + + + True + <span weight="bold" size="larger">Xxx object properties</span> + True + + + False + False + 1 + + + + + False + False + 0 + + + + + True + True + True + + + True + 12 + 6 + + + True + + + True + True + + + 232 + True + True + + + + + True + True + 0 + + + + + True + True + 0 + + + + + True + 12 + + + True + + + + + + True + False + 0 + + + + + False + False + 1 + + + + + False + + + + + True + Text + + + False + + + + + True + 12 + 12 + + + True + 12 + + + True + 0 + Family: + + + False + False + 0 + + + + + True + + + + + + True + True + 1 + + + + + False + False + 0 + + + + + True + 12 + + + True + 0 + Size: + + + False + False + 0 + + + + + True + 12 + + + True + True + adjustment1 + 0.0099999997764800008 + True + + + False + False + 0 + + + + + True + True + 1 + + + + + False + False + 1 + + + + + True + 12 + + + True + 0 + Style: + + + False + False + 0 + + + + + True + 12 + + + True + True + False + + + True + gtk-bold + + + + + False + False + 0 + + + + + True + True + False + + + True + gtk-italic + + + + + False + False + 1 + + + + + True + True + 1 + + + + + False + False + 2 + + + + + True + 12 + + + True + 0 + 0.14000000059604645 + Color: + + + False + False + 0 + + + + + True + 6 + + + True + 6 + + + + True + True + False + True + False + True + + + False + False + 0 + + + + + True + 12 + + + + + + True + True + 1 + + + + + True + True + 0 + + + + + True + 6 + + + key: + True + True + False + True + False + 0.54000002145767212 + True + text_color_radio + + + False + False + 0 + + + + + True + 12 + + + + + + True + True + 1 + + + + + True + True + 1 + + + + + True + True + 1 + + + + + False + False + 3 + + + + + True + 12 + + + True + 0 + Alignment: + + + False + False + 0 + + + + + True + 12 + + + True + True + False + + + True + gtk-justify-left + + + + + False + False + 0 + + + + + True + True + False + + + True + gtk-justify-center + + + + + False + False + 1 + + + + + True + True + False + + + True + gtk-justify-right + + + + + False + False + 2 + + + + + True + True + 1 + + + + + False + False + 4 + + + + + True + 12 + + + True + 0 + Line Spacing: + + + False + False + 0 + + + + + True + 12 + + + True + True + adjustment2 + 0.0099999997764800008 + 2 + + + False + False + 0 + + + + + True + True + 1 + + + + + False + False + 5 + + + + + Allow merge to automatically shrink text + True + True + False + True + True + + + False + False + 6 + + + + + 1 + False + + + + + True + 0.46000000834465027 + Style + + + 1 + False + + + + + True + 12 + 12 + + + True + 12 + + + True + 0 + Width: + + + False + False + 0 + + + + + True + 12 + + + True + True + adjustment3 + 0.0099999997764800008 + 2 + True + + + False + False + 0 + + + + + True + points + + + False + False + 1 + + + + + True + True + 1 + + + + + False + False + 0 + + + + + True + 12 + + + True + 0 + 0.14000000059604645 + Color: + + + False + False + 0 + + + + + True + 6 + False + + + True + 6 + + + + True + False + False + True + False + True + + + False + False + 0 + + + + + True + 12 + + + + + + True + True + 1 + + + + + True + True + 0 + + + + + True + 6 + + + Key: + True + False + False + True + False + True + line_color_radio + + + False + False + 0 + + + + + True + 12 + + + + + + True + True + 1 + + + + + True + True + 1 + + + + + True + True + 1 + + + + + False + False + 1 + + + + + 2 + + + + + True + Line + + + 2 + False + + + + + True + 12 + + + True + 12 + False + + + True + 0 + 0.14000000059604645 + Color: + + + False + False + 0 + + + + + True + 6 + + + True + 6 + + + + True + False + False + True + False + True + True + + + False + False + 0 + + + + + True + 12 + + + + + + True + True + 1 + + + + + True + True + 0 + + + + + True + 6 + + + Key: + True + False + False + True + False + True + fill_color_radio + + + False + False + 0 + + + + + True + 12 + + + + + + True + True + 1 + + + + + True + True + 1 + + + + + True + True + 1 + + + + + False + False + 0 + + + + + 3 + + + + + True + Fill + + + 3 + False + + + + + True + 12 + 12 + + + True + 12 + + + File: + True + True + False + True + False + True + + + False + False + 0 + + + + + True + True + + + True + True + 1 + + + + + False + False + 0 + + + + + True + 12 + + + Key: + True + False + True + False + True + False + True + img_file_radio + + + False + False + 0 + + + + + True + + + + + + True + True + 1 + + + + + False + False + 1 + + + + + 4 + + + + + True + Image + + + 4 + False + + + + + True + 12 + 12 + + + True + 12 + + + Literal: + True + True + False + True + True + + + False + False + 0 + + + + + True + True + + + True + True + 1 + + + + + False + False + 0 + + + + + True + 12 + + + Key: + True + True + False + True + True + data_literal_radio + + + False + False + 0 + + + + + True + + + + + + True + True + 1 + + + + + False + False + 1 + + + + + True + 12 + + + True + + + + False + False + 0 + + + + + True + 2 + 2 + 6 + 6 + + + True + 0 + format: + + + GTK_FILL + + + + + + True + 0 + 00000000000 00000 + + + 1 + 2 + GTK_FILL + + + + + + True + 0 + digits: + + + 1 + 2 + GTK_FILL + + + + + + True + + + True + True + adjustment13 + 1 + True + + + False + False + 0 + + + + + 1 + 2 + 1 + 2 + GTK_FILL + GTK_FILL + + + + + True + True + 1 + + + + + False + False + 2 + + + + + 5 + + + + + True + Data + + + 5 + False + + + + + True + 12 + 12 + + + True + 2 + 2 + 6 + 6 + False + + + True + 0 + Backend: + + + GTK_FILL + + + + + + True + 0 + Style: + + + 1 + 2 + GTK_FILL + + + + + + True + + + + + + 1 + 2 + + + + + True + + + + + + 1 + 2 + 1 + 2 + + + + + False + False + 0 + + + + + Text + True + True + False + True + True + + + False + False + 1 + + + + + Checksum + True + True + False + True + True + + + False + False + 2 + + + + + True + 12 + False + + + True + 0 + 0.14000000059604645 + Color: + + + False + False + 0 + + + + + True + 6 + + + True + 6 + + + + True + True + False + True + False + True + True + + + False + False + 0 + + + + + True + 12 + + + + + + True + True + 1 + + + + + True + True + 0 + + + + + True + 6 + + + Key: + True + True + False + True + False + True + bc_color_radio + + + False + False + 0 + + + + + True + 12 + + + + + + True + True + 1 + + + + + True + True + 1 + + + + + True + True + 1 + + + + + False + False + 3 + + + + + 6 + + + + + True + Style + + + 6 + False + + + + + True + 12 + 12 + + + True + 3 + 3 + 12 + 12 + + + True + 0 + Width: + + + GTK_FILL + + + + + + True + 0 + Height: + + + 1 + 2 + GTK_FILL + + + + + + True + 12 + + + True + True + adjustment5 + 0.0099999997764800008 + 2 + True + True + + + False + True + 0 + + + + + True + inches + + + False + False + 1 + + + + + 1 + 2 + 1 + 2 + GTK_FILL + GTK_FILL + + + + + True + 12 + + + Reset image size + True + True + False + True + + + False + False + 0 + + + + + 2 + 2 + 3 + GTK_FILL + + + + + + True + 12 + + + True + True + adjustment4 + 0.0099999997764800008 + 2 + True + True + + + False + True + 0 + + + + + True + inches + + + False + False + 1 + + + + + 1 + 2 + GTK_FILL + GTK_FILL + + + + + True + + + + + + 2 + 3 + 2 + GTK_FILL + GTK_FILL + + + + + + + + True + True + 0 + + + + + 7 + + + + + True + Size + + + 7 + False + + + + + True + 12 + 12 + + + True + 2 + 2 + 12 + 12 + + + True + 0 + Length: + + + GTK_FILL + + + + + + True + 0 + Angle: + + + 1 + 2 + GTK_FILL + + + + + + True + 12 + + + True + True + adjustment6 + 0.0099999997764800008 + 2 + True + True + + + False + True + 0 + + + + + True + inches + + + False + False + 1 + + + + + 1 + 2 + GTK_FILL + + + + + True + 12 + + + True + True + adjustment7 + 0.0099999997764800008 + 1 + True + True + + + False + True + 0 + + + + + True + degrees + + + False + False + 1 + + + + + 1 + 2 + 1 + 2 + GTK_FILL + GTK_FILL + + + + + True + True + 0 + + + + + 8 + + + + + True + Size + + + 8 + False + + + + + True + 12 + 12 + + + True + 2 + 3 + 12 + 12 + + + 50 + True + 0 + X: + + + GTK_FILL + + + + + + True + 0 + Y: + + + 1 + 2 + GTK_FILL + + + + + + True + 0 + inches + + + 2 + 3 + GTK_FILL + + + + + + True + 0 + inches + + + 2 + 3 + 1 + 2 + GTK_FILL + + + + + + True + True + adjustment8 + 0.0099999997764800008 + 2 + True + True + + + 1 + 2 + + + + + + + True + True + adjustment9 + 0.0099999997764800008 + 2 + True + True + + + 1 + 2 + 1 + 2 + + + + + + + True + True + 0 + + + + + 9 + + + + + True + Position + + + 9 + False + + + + + True + 12 + 12 + + + Enable shadow + True + True + False + True + True + + + False + False + 0 + + + + + True + 12 + False + + + True + 12 + + + True + 0 + X Offset: + + + False + False + 0 + + + + + True + 12 + + + True + True + adjustment10 + 0.0099999997764800008 + 2 + True + True + + + False + True + 0 + + + + + True + inches + + + False + False + 1 + + + + + True + True + 1 + + + + + True + True + 0 + + + + + True + 12 + + + True + 0 + Y Offset: + + + False + False + 0 + + + + + True + 12 + + + True + True + adjustment11 + 0.0099999997764800008 + 2 + True + True + + + False + True + 0 + + + + + True + inches + + + False + False + 1 + + + + + True + True + 1 + + + + + True + True + 1 + + + + + True + 12 + + + True + 0 + 0.14000000059604645 + Color: + + + False + False + 0 + + + + + True + 6 + + + True + 6 + + + + True + True + False + True + False + True + + + False + False + 0 + + + + + True + 12 + + + + + + False + False + 1 + + + + + True + True + 0 + + + + + True + 6 + + + Key: + True + True + False + True + False + True + shadow_color_radio + + + False + False + 0 + + + + + True + 12 + + + + + + True + True + 1 + + + + + True + True + 1 + + + + + True + True + 1 + + + + + True + True + 2 + + + + + True + 12 + + + True + 0 + Opacity: + + + False + False + 0 + + + + + True + 12 + + + True + True + adjustment12 + 1 + + + False + True + 0 + + + + + True + % + + + False + False + 1 + + + + + True + True + 1 + + + + + True + True + 3 + + + + + False + False + 1 + + + + + 10 + + + + + True + Shadow + + + 10 + False + + + + + True + True + 1 + + + + + True + True + 2 + + + + + True + end + + + gtk-close + True + True + True + False + True + + + False + False + 0 + + + + + False + True + end + 0 + + + + + + closebutton1 + + + diff --git a/data/ui/prefs-dialog.ui b/data/ui/prefs-dialog.ui new file mode 100644 index 00000000..337e2e80 --- /dev/null +++ b/data/ui/prefs-dialog.ui @@ -0,0 +1,809 @@ + + + + + + 0.25 + 4 + 1 + 0.25 + 1 + + + 5 + 1 + 0.01 + 0.10000000000000001 + + + 1 + 100 + 1 + 1 + 10 + + + True + gLabels Preferences + dialog + + + True + + + True + True + + + True + 12 + 12 + + + True + 0 + Select locale specific behavior. + + + False + False + 0 + + + + + True + 0 + none + + + True + + + True + + + + False + False + 0 + + + + + True + 6 + 6 + + + Points + True + True + False + True + True + + + False + False + 0 + + + + + Inches + True + True + False + True + True + units_points_radio + + + False + False + 1 + + + + + Millimeters + True + True + False + True + True + units_points_radio + + + False + False + 2 + + + + + True + True + 1 + + + + + + + True + 0 + Units + + + + + + + + False + False + 1 + + + + + True + 0 + none + + + True + + + True + + + + False + False + 0 + + + + + True + 6 + 6 + + + US Letter + True + True + False + True + True + + + False + False + 0 + + + + + ISO A4 + True + True + False + True + True + page_size_us_letter_radio + + + False + False + 1 + + + + + True + True + 1 + + + + + + + True + 0 + Default page size + + + + + + + + False + False + 2 + + + + + + + True + Locale + + + False + + + + + True + 12 + 12 + + + True + 0 + Select default properties for new objects. + + + False + False + 0 + + + + + True + 0 + none + + + True + + + True + + + + False + False + 0 + + + + + True + 4 + 2 + 12 + 12 + + + True + 0 + Font: + + + GTK_FILL + + + + + + True + 0 + Color: + + + 1 + 2 + GTK_FILL + + + + + + True + 0 + Alignment: + + + 2 + 3 + GTK_FILL + + + + + + 90 + True + 0 + Line Spacing: + + + 3 + 4 + GTK_FILL + + + + + + True + 12 + + + True + + + + + + True + True + 0 + + + + + True + True + adjustment1 + 1 + True + + + False + False + 1 + + + + + True + True + False + + + True + gtk-bold + + + + + False + False + 2 + + + + + True + True + False + + + True + gtk-italic + + + + + False + False + 3 + + + + + 1 + 2 + GTK_FILL + + + + + True + 12 + + + + + + 1 + 2 + 1 + 2 + GTK_FILL + GTK_FILL + + + + + True + 12 + + + True + True + False + + + True + gtk-justify-left + + + + + False + False + 0 + + + + + True + True + False + + + True + gtk-justify-center + + + + + False + False + 1 + + + + + True + True + False + + + True + gtk-justify-right + + + + + False + False + 2 + + + + + 1 + 2 + 2 + 3 + GTK_FILL + GTK_FILL + + + + + True + 40 + + + True + True + adjustment2 + 0.0099999997764800008 + 2 + + + False + False + 0 + + + + + 1 + 2 + 3 + 4 + GTK_FILL + GTK_FILL + + + + + True + True + 1 + + + + + + + True + Text + + + + + + + + False + False + 1 + + + + + True + 0 + none + + + True + + + True + + + + False + False + 0 + + + + + True + 2 + 2 + 12 + 12 + + + 90 + True + 0 + Width: + + + GTK_FILL + + + + + + True + 0 + Color: + + + 1 + 2 + GTK_FILL + + + + + + True + 12 + + + True + True + adjustment3 + 0.0099999997764800008 + 2 + True + + + False + False + 0 + + + + + True + points + + + False + False + 1 + + + + + 1 + 2 + GTK_FILL + + + + + True + 12 + + + + + + 1 + 2 + 1 + 2 + GTK_FILL + GTK_FILL + + + + + True + True + 1 + + + + + + + True + Line + + + + + + + + False + False + 2 + + + + + True + 0 + none + + + True + + + True + + + + False + False + 0 + + + + + True + 2 + 12 + 12 + + + 90 + True + 0 + Color: + + + GTK_FILL + + + + + + True + 12 + + + + + + 1 + 2 + GTK_FILL + + + + + True + True + 1 + + + + + + + True + Fill + + + + + + + + False + False + 3 + + + + + 1 + + + + + True + Object defaults + + + 1 + False + + + + + True + True + 2 + + + + + True + end + + + gtk-close + True + True + True + False + True + + + False + False + 0 + + + + + False + True + end + 0 + + + + + + closebutton1 + + + diff --git a/data/ui/print-op-dialog-custom-widget.ui b/data/ui/print-op-dialog-custom-widget.ui new file mode 100644 index 00000000..f6662b5f --- /dev/null +++ b/data/ui/print-op-dialog-custom-widget.ui @@ -0,0 +1,478 @@ + + + + + + 1 + 100 + 1 + 1 + 10 + + + 1 + 100 + 1 + 1 + 10 + + + 1 + 100 + 1 + 1 + 10 + + + 1 + 100 + 1 + 1 + 10 + + + 1 + 100 + 1 + 1 + 10 + + + True + window1 + + + True + 12 + 3 + + + + + + True + 12 + False + + + True + 12 + False + + + True + 0 + none + + + True + 12 + + + True + 6 + + + True + 6 + + + Sheets: + True + True + False + True + True + + + False + False + 0 + + + + + True + True + ● + adjustment1 + + + False + False + 1 + + + + + True + True + 0 + + + + + True + 6 + + + Labels + True + True + False + True + True + simple_sheets_radio + + + False + False + 0 + + + + + True + 3 + + + True + from: + + + False + False + 0 + + + + + True + True + ● + adjustment2 + + + False + False + 1 + + + + + False + False + 3 + 1 + + + + + True + 3 + + + True + to: + + + False + False + 0 + + + + + True + True + ● + adjustment3 + + + False + False + 1 + + + + + False + False + 3 + 2 + + + + + True + True + 1 + + + + + + + + + True + Copies + + + + + + + + False + False + 0 + + + + + True + 0 + none + + + True + 12 + + + True + 6 + + + True + 6 + + + True + Start on label + + + False + False + 0 + + + + + True + True + ● + adjustment4 + + + False + False + 1 + + + + + True + on 1st sheet + + + False + False + 2 + + + + + False + False + 0 + + + + + True + 6 + + + True + Copies: + + + False + False + 0 + + + + + True + True + ● + adjustment5 + + + False + False + 1 + + + + + True + 12 + + + Collate + True + True + False + True + + + False + False + 0 + + + + + True + gtk-missing-image + + + True + True + 1 + + + + + False + False + 12 + 2 + + + + + True + True + 1 + + + + + + + + + True + Merge Control + + + + + + + + False + False + 1 + + + + + False + False + 0 + + + + + True + 0 + none + + + True + 12 + + + True + + + print outlines (to test printer alignment) + True + True + False + True + True + + + False + False + 0 + + + + + print in reverse (i.e. a mirror image) + True + True + False + True + True + + + False + False + 1 + + + + + print crop marks + True + True + False + True + True + + + False + False + 2 + + + + + + + + + True + Options + + + + + + + + False + False + 1 + + + + + False + False + end + 0 + + + + + + diff --git a/data/ui/property-bar.ui b/data/ui/property-bar.ui new file mode 100644 index 00000000..0d3914a9 --- /dev/null +++ b/data/ui/property-bar.ui @@ -0,0 +1,237 @@ + + + + + + 0.25 + 4 + 1 + 0.25 + 1 + + + 1 + 250 + 1 + 1 + 10 + + + True + window1 + + + True + icons + False + + + True + + + True + Font family + False + + + + + + + + False + + + + + True + + + True + 6 + + + True + True + Font size + adjustment1 + 1 + + + + + + + False + + + + + True + + + False + + + + + True + Bold + True + gtk-bold + + + False + True + + + + + True + Italic + True + gtk-italic + + + False + True + + + + + True + + + False + + + + + True + Left align + True + gtk-justify-left + + + False + True + + + + + True + Center align + True + gtk-justify-center + text_align_left_radio + + + False + True + + + + + True + Right align + True + gtk-justify-right + text_align_left_radio + + + False + True + + + + + True + + + False + + + + + True + + + True + Text color + False + + + + + + + + False + + + + + True + + + True + Fill color + False + + + + + + + + False + + + + + True + + + True + Line color + False + + + + + + + + False + + + + + True + + + False + + + + + True + + + True + True + Line width + adjustment2 + 1 + 2 + + + + + False + + + + + + diff --git a/data/ui/template-designer.ui b/data/ui/template-designer.ui new file mode 100644 index 00000000..a4be6295 --- /dev/null +++ b/data/ui/template-designer.ui @@ -0,0 +1,2448 @@ + + + + + + 100 + 1 + 10 + + + 100 + 1 + 10 + + + 100 + 1 + 10 + + + 100 + 1 + 10 + + + 100 + 1 + 10 + + + 100 + 1 + 10 + + + 100 + 1 + 10 + + + 100 + 1 + 10 + + + 100 + 1 + 10 + + + 100 + 1 + 10 + + + 100 + 1 + 10 + + + 100 + 1 + 10 + + + 1 + 2 + 1 + 1 + 1 + + + 100 + 1 + 10 + + + 100 + 1 + 10 + + + 100 + 1 + 10 + + + 100 + 1 + 10 + + + 100 + 1 + 10 + + + 100 + 1 + 10 + + + 100 + 1 + 10 + + + 100 + 1 + 10 + + + 100 + 1 + 10 + + + 100 + 1 + 10 + + + 100 + 1 + 10 + + + 100 + 1 + 10 + + + 100 + 1 + 10 + + + 100 + 1 + 10 + + + 100 + 1 + 10 + + + 100 + 1 + 1 + 10 + + + 100 + 1 + 1 + 10 + + + True + window1 + + + True + True + 6 + + + True + Welcome to the gLabels Template Designer. + +This dialog will assist you in the creation of a custom gLabels template. + + + + + True + start_page + + + False + + + + + True + 18 + 24 + + + True + 0 + Please enter the following identifying information about the template stationery. + + + False + False + 0 + + + + + True + 6 + 2 + 12 + 12 + + + True + 0 + Brand/Manufacturer: + + + GTK_FILL + + + + + + True + 0 + Part #: + + + 1 + 2 + GTK_FILL + + + + + + True + 12 + + + True + True + + + False + False + 0 + + + + + True + 0 + (e.g., 8163A) + + + False + False + 1 + + + + + 1 + 2 + 1 + 2 + GTK_FILL + GTK_FILL + + + + + True + 12 + + + True + True + + + False + False + 0 + + + + + True + 0 + (e.g., Avery, Acme, ...) + + + False + False + 1 + + + + + 1 + 2 + GTK_FILL + GTK_FILL + + + + + True + 0 + 0 + Description: + + + 4 + 5 + GTK_FILL + + + + + + True + True + + + 1 + 2 + 4 + 5 + + + + + + True + 0 + 0 + (e.g., "Mailing Labels," "Business Cards," ...) + + + 1 + 2 + 5 + 6 + GTK_FILL + + + + + + True + 6 + + + True + + + False + False + 0 + + + + + True + 0 + True + + + False + True + 1 + + + + + 1 + 2 + 2 + 3 + GTK_FILL + + + + + + + + + + + + + + + + + + True + True + 1 + + + + + 1 + + + + + True + name_page + + + 1 + False + + + + + True + 18 + 24 + + + True + 0 + Please select the page size of the template stationery. + + + False + False + 0 + + + + + True + 3 + 2 + 12 + 12 + + + True + 0 + Page size: + + + GTK_FILL + + + + + + True + 0 + Width: + + + 1 + 2 + GTK_FILL + + + + + + True + 0 + Height: + + + 2 + 3 + GTK_FILL + + + + + + True + + + True + + + + + + False + False + 0 + + + + + + + + 1 + 2 + GTK_FILL + GTK_FILL + + + + + True + 12 + + + True + True + adjustment1 + 0.0099999997764800008 + + + False + False + 0 + + + + + True + 0 + inches + + + False + False + 1 + + + + + 1 + 2 + 1 + 2 + GTK_FILL + GTK_FILL + + + + + True + 12 + + + True + True + adjustment2 + 0.0099999997764800008 + + + False + False + 0 + + + + + True + 0 + inches + + + False + False + 1 + + + + + 1 + 2 + 2 + 3 + GTK_FILL + GTK_FILL + + + + + False + False + 1 + + + + + 2 + + + + + True + pg_size_page + + + 2 + False + + + + + True + 18 + 24 + + + True + 0 + Please select the basic shape of the labels or cards. + + + False + False + 0 + + + + + True + 6 + + + Rectangular or square (can have rounded corners) + True + True + False + True + True + + + False + False + 0 + + + + + Round + True + True + False + True + True + shape_rect_radio + + + False + False + 1 + + + + + Elliptical + True + True + False + True + shape_rect_radio + + + False + False + 2 + + + + + CD/DVD (including credit card CDs) + True + True + False + True + True + shape_rect_radio + + + False + False + 3 + + + + + True + True + 1 + + + + + 3 + + + + + True + shape_page + + + 3 + False + + + + + True + 18 + 24 + + + True + 0 + Please enter the following size parameters of a single label or card in your template. + + + False + False + 0 + + + + + True + 12 + + + True + 6 + 3 + 12 + 12 + + + True + 0 + 1. Width: + + + GTK_FILL + + + + + + True + 0 + 2. Height: + + + 1 + 2 + GTK_FILL + + + + + + True + 0 + 3. Round (radius of corner): + + + 2 + 3 + GTK_FILL + + + + + + True + 0 + 4. Horiz. waste (overprint allowed): + + + 3 + 4 + GTK_FILL + + + + + + True + 0 + inches + + + 2 + 3 + GTK_FILL + + + + + + True + 0 + inches + + + 2 + 3 + 1 + 2 + GTK_FILL + + + + + + True + 0 + inches + + + 2 + 3 + 2 + 3 + GTK_FILL + + + + + + True + 0 + inches + + + 2 + 3 + 3 + 4 + GTK_FILL + + + + + + True + True + adjustment3 + 0.0099999997764800008 + + + 1 + 2 + + + + + + True + True + adjustment4 + 0.0099999997764800008 + + + 1 + 2 + 1 + 2 + + + + + + True + True + adjustment5 + 0.0099999997764800008 + + + 1 + 2 + 2 + 3 + + + + + + True + True + adjustment6 + 0.0099999997764800008 + + + 1 + 2 + 3 + 4 + + + + + + True + 0 + 6. Margin + + + 5 + 6 + GTK_FILL + + + + + + True + True + adjustment8 + 0.0099999997764800008 + + + 1 + 2 + 5 + 6 + + + + + + True + 0 + inches + + + 2 + 3 + 5 + 6 + GTK_FILL + + + + + + True + True + adjustment7 + 0.0099999997764800008 + + + 1 + 2 + 4 + 5 + + + + + + True + 0 + inches + + + 2 + 3 + 4 + 5 + GTK_FILL + + + + + + True + 0 + 5. Vert. waste (overprint allowed): + + + 4 + 5 + GTK_FILL + + + + + + False + False + 0 + + + + + True + 1 + 0 + + + True + True + 1 + + + + + False + False + 1 + + + + + 4 + + + + + True + rect_size_page + + + 4 + False + + + + + True + 18 + 24 + + + True + 0 + Please enter the following size parameters of a single label or card in your template. + + + False + False + 0 + + + + + True + 12 + + + True + 4 + 3 + 12 + 12 + + + True + 0 + 1. Width: + + + GTK_FILL + + + + + + True + 0 + 2. Height: + + + 1 + 2 + GTK_FILL + + + + + + True + 0 + 3. Waste (overprint allowed): + + + 2 + 3 + GTK_FILL + + + + + + True + 0 + inches + + + 2 + 3 + GTK_FILL + + + + + + True + 0 + inches + + + 2 + 3 + 1 + 2 + GTK_FILL + + + + + + True + 0 + inches + + + 2 + 3 + 2 + 3 + GTK_FILL + + + + + + True + True + ● + adjustment3 + 0.0099999997764800008 + + + 1 + 2 + + + + + + True + True + ● + adjustment4 + 0.0099999997764800008 + + + 1 + 2 + 1 + 2 + + + + + + True + True + ● + adjustment6 + 0.0099999997764800008 + + + 1 + 2 + 2 + 3 + + + + + + True + 0 + 4. Margin + + + 3 + 4 + GTK_FILL + + + + + + True + True + ● + adjustment8 + 0.0099999997764800008 + + + 1 + 2 + 3 + 4 + + + + + + True + 0 + inches + + + 2 + 3 + 3 + 4 + GTK_FILL + + + + + + False + False + 0 + + + + + True + 1 + 0 + + + True + True + 1 + + + + + False + False + 1 + + + + + 5 + + + + + True + ellipse_page + + + 10 + False + + + + + True + 18 + 24 + + + True + 0 + Please enter the following size parameters of a single label in your template. + + + False + False + 0 + + + + + True + 12 + + + True + 3 + 3 + 12 + 12 + + + True + 0 + 1. Radius: + + + GTK_FILL + + + + + + True + 0 + 2. Waste (overprint allowed): + + + 1 + 2 + GTK_FILL + + + + + + True + True + adjustment9 + 0.0099999997764800008 + + + 1 + 2 + + + + + + True + True + adjustment10 + 0.0099999997764800008 + + + 1 + 2 + 1 + 2 + + + + + + True + 0 + inches + + + 2 + 3 + GTK_FILL + + + + + + True + 0 + inches + + + 2 + 3 + 1 + 2 + GTK_FILL + + + + + + True + 0 + 3. Margin + + + 2 + 3 + GTK_FILL + + + + + + True + 0 + inches + + + 2 + 3 + 2 + 3 + GTK_FILL + + + + + + True + True + adjustment11 + 0.0099999997764800008 + + + 1 + 2 + 2 + 3 + + + + + + False + False + 0 + + + + + True + 1 + 0 + + + True + True + 1 + + + + + False + False + 1 + + + + + 6 + + + + + True + round_size_page + + + 6 + False + + + + + True + 18 + 24 + + + True + 0 + Please enter the following size parameters of a single label in your template. + + + False + False + 0 + + + + + True + 12 + + + True + 6 + 3 + 12 + 12 + + + True + 0 + 1. Outer radius: + + + GTK_FILL + + + + + + True + 0 + 2. Inner radius: + + + 1 + 2 + GTK_FILL + + + + + + True + 0 + 3. Clipping width: + + + 2 + 3 + GTK_FILL + + + + + + True + 0 + 4. Clipping height: + + + 3 + 4 + GTK_FILL + + + + + + True + 0 + 5. Waste (overprint allowed): + + + 4 + 5 + GTK_FILL + + + + + + True + True + adjustment12 + 0.0099999997764800008 + + + 1 + 2 + + + + + + True + True + adjustment13 + 0.0099999997764800008 + + + 1 + 2 + 1 + 2 + + + + + + True + True + adjustment14 + 0.0099999997764800008 + + + 1 + 2 + 2 + 3 + + + + + + True + True + adjustment15 + 0.0099999997764800008 + + + 1 + 2 + 3 + 4 + + + + + + True + True + adjustment16 + 0.0099999997764800008 + + + 1 + 2 + 4 + 5 + + + + + + True + 0 + inches + + + 2 + 3 + GTK_FILL + + + + + + True + 0 + inches + + + 2 + 3 + 1 + 2 + GTK_FILL + + + + + + True + 0 + inches + + + 2 + 3 + 2 + 3 + GTK_FILL + + + + + + True + 0 + inches + + + 2 + 3 + 3 + 4 + GTK_FILL + + + + + + True + 0 + inches + + + 2 + 3 + 4 + 5 + GTK_FILL + + + + + + True + 0 + 6. Margin + + + 5 + 6 + GTK_FILL + + + + + + True + 0 + inches + + + 2 + 3 + 5 + 6 + GTK_FILL + + + + + + True + True + adjustment17 + 0.0099999997764800008 + + + 1 + 2 + 5 + 6 + + + + + + False + False + 0 + + + + + True + 1 + 0 + + + True + True + 1 + + + + + False + False + 1 + + + + + 7 + + + + + True + cd_size_page + + + 7 + False + + + + + True + 18 + 24 + + + True + 0 + How many layouts will your template contain? + +A layout is a set of labels or cards that can be arranged in a simple grid. +Most templates only need one layout, as in the first example. +The second example illustrates when two layouts are needed. + + + False + False + 0 + + + + + True + 12 + True + + + True + + + True + + + True + True + 0 + + + + + True + Templates needing only +one layout. + center + + + False + False + 1 + + + + + True + False + 0 + + + + + True + + + True + + + True + True + 0 + + + + + True + Templates needing +two layouts. + center + + + False + False + 1 + + + + + True + False + 1 + + + + + False + False + 1 + + + + + True + 0 + Note: if more than 2 layouts are required, the template must be edited manually. + + + True + True + 2 + + + + + True + 12 + + + True + 0 + Number of layouts: + + + False + False + 0 + + + + + True + True + 1 + adjustment18 + 1 + True + + + False + False + 1 + + + + + False + False + 3 + + + + + 8 + + + + + True + nlayouts_page + + + 8 + False + + + + + True + 18 + 12 + + + True + 0 + Please enter the following layout information. + + + False + False + 0 + + + + + True + 18 + + + True + 7 + 4 + 12 + 6 + + + True + 0 + Layout #1 + + + 1 + 2 + GTK_FILL + + + + + + True + 0 + Layout #2 + + + 2 + 3 + GTK_FILL + + + + + + True + 0 + Number across (nx): + + + 1 + 2 + GTK_FILL + + + + + + True + 0 + Number down (ny): + + + 2 + 3 + GTK_FILL + + + + + + True + 0 + Distance from left edge (x0): + + + 3 + 4 + GTK_FILL + + + + + + True + 0 + Distance from top edge (y0): + + + 4 + 5 + GTK_FILL + + + + + + True + 0 + Horizontal pitch (dx): + + + 5 + 6 + GTK_FILL + + + + + + True + 0 + Vertical pitch (dy): + + + 6 + 7 + GTK_FILL + + + + + + True + 0 + inches + + + 3 + 4 + 3 + 4 + GTK_FILL + + + + + + True + 0 + inches + + + 3 + 4 + 4 + 5 + GTK_FILL + + + + + + True + 0 + inches + + + 3 + 4 + 5 + 6 + GTK_FILL + + + + + + True + 0 + inches + + + 3 + 4 + 6 + 7 + GTK_FILL + + + + + + True + True + adjustment19 + 0.0099999997764800008 + + + 1 + 2 + 1 + 2 + + + + + + True + True + adjustment21 + 0.0099999997764800008 + + + 1 + 2 + 2 + 3 + + + + + + True + True + adjustment20 + 0.0099999997764800008 + + + 2 + 3 + 1 + 2 + + + + + + True + True + adjustment22 + 0.0099999997764800008 + + + 2 + 3 + 2 + 3 + + + + + + True + True + adjustment23 + 0.0099999997764800008 + + + 1 + 2 + 3 + 4 + + + + + + True + True + adjustment24 + 0.0099999997764800008 + + + 2 + 3 + 3 + 4 + + + + + + True + True + adjustment25 + 0.0099999997764800008 + + + 1 + 2 + 4 + 5 + + + + + + True + True + adjustment26 + 0.0099999997764800008 + + + 2 + 3 + 4 + 5 + + + + + + True + True + adjustment27 + 0.0099999997764800008 + + + 1 + 2 + 5 + 6 + + + + + + True + True + adjustment28 + 0.0099999997764800008 + + + 2 + 3 + 5 + 6 + + + + + + True + True + adjustment29 + 0.0099999997764800008 + + + 1 + 2 + 6 + 7 + + + + + + True + True + adjustment30 + 0.0099999997764800008 + + + 2 + 3 + 6 + 7 + + + + + + + + + + + + + + + + + + False + False + 0 + + + + + True + + + True + + + + True + True + 0 + + + + + True + 6 + + + True + + + + + + True + True + 0 + + + + + Print test sheet + True + True + False + 6 + True + + + False + False + 1 + + + + + False + False + 1 + + + + + True + True + 1 + + + + + False + False + 1 + + + + + 9 + + + + + True + layout_page + + + 9 + False + + + + + True + Congratulations! + +You have completed the gLabels Template Designer. +If you wish to accept and save your design, click "Apply." + +Otherwise, you may click "Cancel" to abandon your design +or "Back" to continue editing this design. + + + 10 + + + + + True + finish_page + + + 10 + False + + + + + + diff --git a/docs/Makefile.am b/docs/Makefile.am index 0cb49459..a0be5c8e 100644 --- a/docs/Makefile.am +++ b/docs/Makefile.am @@ -1,3 +1,5 @@ ## Process this file with automake to produce Makefile.in. -SUBDIRS = libglabels +SUBDIRS = \ + libglabels \ + libglbarcode diff --git a/docs/Makefile.in b/docs/Makefile.in index 341a3dab..ab291742 100644 --- a/docs/Makefile.in +++ b/docs/Makefile.in @@ -36,13 +36,19 @@ host_triplet = @host@ subdir = docs DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ @@ -89,11 +95,13 @@ am__relativize = \ ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ +CAIRO_REQUIRED = @CAIRO_REQUIRED@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ @@ -107,6 +115,7 @@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@ DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ +DLLTOOL = @DLLTOOL@ DOC_USER_FORMATS = @DOC_USER_FORMATS@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ @@ -116,17 +125,23 @@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ +GDK_PIXBUF_CSOURCE = @GDK_PIXBUF_CSOURCE@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GLABELS_BRANCH = @GLABELS_BRANCH@ GLABELS_CFLAGS = @GLABELS_CFLAGS@ GLABELS_LIBS = @GLABELS_LIBS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ GLIB_REQUIRED = @GLIB_REQUIRED@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ GTKDOC_CHECK = @GTKDOC_CHECK@ +GTKDOC_MKPDF = @GTKDOC_MKPDF@ +GTKDOC_REBASE = @GTKDOC_REBASE@ GTK_REQUIRED = @GTK_REQUIRED@ -HAVE_XML_PARSE_HUGE = @HAVE_XML_PARSE_HUGE@ +GTK_UPDATE_ICON_CACHE = @GTK_UPDATE_ICON_CACHE@ HELP_DIR = @HELP_DIR@ HTML_DIR = @HTML_DIR@ INSTALL = @INSTALL@ @@ -142,31 +157,45 @@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ +LIBBARCODE_CFLAGS = @LIBBARCODE_CFLAGS@ +LIBBARCODE_LIBS = @LIBBARCODE_LIBS@ +LIBBARCODE_REQUIRED = @LIBBARCODE_REQUIRED@ LIBEBOOK_CFLAGS = @LIBEBOOK_CFLAGS@ LIBEBOOK_LIBS = @LIBEBOOK_LIBS@ LIBEBOOK_REQUIRED = @LIBEBOOK_REQUIRED@ +LIBGLABELS_API_VERSION = @LIBGLABELS_API_VERSION@ +LIBGLABELS_BRANCH = @LIBGLABELS_BRANCH@ LIBGLABELS_CFLAGS = @LIBGLABELS_CFLAGS@ LIBGLABELS_LIBS = @LIBGLABELS_LIBS@ -LIBGLABELS_VERSION_INFO = @LIBGLABELS_VERSION_INFO@ -LIBGLADE_REQUIRED = @LIBGLADE_REQUIRED@ -LIBGNOMEUI_REQUIRED = @LIBGNOMEUI_REQUIRED@ -LIBGNOME_REQUIRED = @LIBGNOME_REQUIRED@ +LIBGLBARCODE_API_VERSION = @LIBGLBARCODE_API_VERSION@ +LIBGLBARCODE_BRANCH = @LIBGLBARCODE_BRANCH@ +LIBGLBARCODE_CFLAGS = @LIBGLBARCODE_CFLAGS@ +LIBGLBARCODE_LIBS = @LIBGLBARCODE_LIBS@ +LIBIEC16022_CFLAGS = @LIBIEC16022_CFLAGS@ +LIBIEC16022_LIBS = @LIBIEC16022_LIBS@ +LIBIEC16022_REQUIRED = @LIBIEC16022_REQUIRED@ LIBOBJS = @LIBOBJS@ +LIBQRENCODE_CFLAGS = @LIBQRENCODE_CFLAGS@ +LIBQRENCODE_LIBS = @LIBQRENCODE_LIBS@ +LIBQRENCODE_REQUIRED = @LIBQRENCODE_REQUIRED@ +LIBRSVG_REQUIRED = @LIBRSVG_REQUIRED@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_REQUIRED = @LIBXML_REQUIRED@ +LIBZINT_CFLAGS = @LIBZINT_CFLAGS@ +LIBZINT_LIBS = @LIBZINT_LIBS@ +LIBZINT_REQUIRED = @LIBZINT_REQUIRED@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ -MYGAL_CFLAGS = @MYGAL_CFLAGS@ -MYGAL_LIBS = @MYGAL_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ @@ -179,9 +208,13 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PANGO_REQUIRED = @PANGO_REQUIRED@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ @@ -191,18 +224,15 @@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ -UPDATE_DESKTOP_DATABASE = @UPDATE_DESKTOP_DATABASE@ -UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ XGETTEXT = @XGETTEXT@ -XML_PARSE_HUGE_CFLAGS = @XML_PARSE_HUGE_CFLAGS@ -XML_PARSE_HUGE_LIBS = @XML_PARSE_HUGE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ @@ -222,6 +252,7 @@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ @@ -235,7 +266,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -251,7 +281,10 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -SUBDIRS = libglabels +SUBDIRS = \ + libglabels \ + libglbarcode + all: all-recursive .SUFFIXES: diff --git a/docs/libglabels/Makefile.am b/docs/libglabels/Makefile.am index 28e56fdb..8d5cb87f 100644 --- a/docs/libglabels/Makefile.am +++ b/docs/libglabels/Makefile.am @@ -9,7 +9,7 @@ AUTOMAKE_OPTIONS = 1.6 # of using the various options. # The name of the module, e.g. 'glib'. -DOC_MODULE=libglabels +DOC_MODULE=libglabels-3.0 # The top-level SGML file. You can change this if you want to. DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.sgml @@ -43,7 +43,7 @@ CFILE_GLOB= # Header files to ignore when scanning. # e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h -IGNORE_HFILES=libglabels-private.h +IGNORE_HFILES=libglabels-3.0-private.h # Images to copy into HTML directory. # e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png diff --git a/docs/libglabels/Makefile.in b/docs/libglabels/Makefile.in index c95b075f..79b6b552 100644 --- a/docs/libglabels/Makefile.in +++ b/docs/libglabels/Makefile.in @@ -43,24 +43,32 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/gtk-doc.make subdir = docs/libglabels ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ SOURCES = DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ +CAIRO_REQUIRED = @CAIRO_REQUIRED@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ @@ -74,6 +82,7 @@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@ DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ +DLLTOOL = @DLLTOOL@ DOC_USER_FORMATS = @DOC_USER_FORMATS@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ @@ -83,17 +92,23 @@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ +GDK_PIXBUF_CSOURCE = @GDK_PIXBUF_CSOURCE@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GLABELS_BRANCH = @GLABELS_BRANCH@ GLABELS_CFLAGS = @GLABELS_CFLAGS@ GLABELS_LIBS = @GLABELS_LIBS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ GLIB_REQUIRED = @GLIB_REQUIRED@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ GTKDOC_CHECK = @GTKDOC_CHECK@ +GTKDOC_MKPDF = @GTKDOC_MKPDF@ +GTKDOC_REBASE = @GTKDOC_REBASE@ GTK_REQUIRED = @GTK_REQUIRED@ -HAVE_XML_PARSE_HUGE = @HAVE_XML_PARSE_HUGE@ +GTK_UPDATE_ICON_CACHE = @GTK_UPDATE_ICON_CACHE@ HELP_DIR = @HELP_DIR@ HTML_DIR = @HTML_DIR@ INSTALL = @INSTALL@ @@ -109,31 +124,45 @@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ +LIBBARCODE_CFLAGS = @LIBBARCODE_CFLAGS@ +LIBBARCODE_LIBS = @LIBBARCODE_LIBS@ +LIBBARCODE_REQUIRED = @LIBBARCODE_REQUIRED@ LIBEBOOK_CFLAGS = @LIBEBOOK_CFLAGS@ LIBEBOOK_LIBS = @LIBEBOOK_LIBS@ LIBEBOOK_REQUIRED = @LIBEBOOK_REQUIRED@ +LIBGLABELS_API_VERSION = @LIBGLABELS_API_VERSION@ +LIBGLABELS_BRANCH = @LIBGLABELS_BRANCH@ LIBGLABELS_CFLAGS = @LIBGLABELS_CFLAGS@ LIBGLABELS_LIBS = @LIBGLABELS_LIBS@ -LIBGLABELS_VERSION_INFO = @LIBGLABELS_VERSION_INFO@ -LIBGLADE_REQUIRED = @LIBGLADE_REQUIRED@ -LIBGNOMEUI_REQUIRED = @LIBGNOMEUI_REQUIRED@ -LIBGNOME_REQUIRED = @LIBGNOME_REQUIRED@ +LIBGLBARCODE_API_VERSION = @LIBGLBARCODE_API_VERSION@ +LIBGLBARCODE_BRANCH = @LIBGLBARCODE_BRANCH@ +LIBGLBARCODE_CFLAGS = @LIBGLBARCODE_CFLAGS@ +LIBGLBARCODE_LIBS = @LIBGLBARCODE_LIBS@ +LIBIEC16022_CFLAGS = @LIBIEC16022_CFLAGS@ +LIBIEC16022_LIBS = @LIBIEC16022_LIBS@ +LIBIEC16022_REQUIRED = @LIBIEC16022_REQUIRED@ LIBOBJS = @LIBOBJS@ +LIBQRENCODE_CFLAGS = @LIBQRENCODE_CFLAGS@ +LIBQRENCODE_LIBS = @LIBQRENCODE_LIBS@ +LIBQRENCODE_REQUIRED = @LIBQRENCODE_REQUIRED@ +LIBRSVG_REQUIRED = @LIBRSVG_REQUIRED@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_REQUIRED = @LIBXML_REQUIRED@ +LIBZINT_CFLAGS = @LIBZINT_CFLAGS@ +LIBZINT_LIBS = @LIBZINT_LIBS@ +LIBZINT_REQUIRED = @LIBZINT_REQUIRED@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ -MYGAL_CFLAGS = @MYGAL_CFLAGS@ -MYGAL_LIBS = @MYGAL_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ @@ -146,9 +175,13 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PANGO_REQUIRED = @PANGO_REQUIRED@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ @@ -158,18 +191,15 @@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ -UPDATE_DESKTOP_DATABASE = @UPDATE_DESKTOP_DATABASE@ -UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ XGETTEXT = @XGETTEXT@ -XML_PARSE_HUGE_CFLAGS = @XML_PARSE_HUGE_CFLAGS@ -XML_PARSE_HUGE_LIBS = @XML_PARSE_HUGE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ @@ -189,6 +219,7 @@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ @@ -202,7 +233,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -228,7 +258,7 @@ AUTOMAKE_OPTIONS = 1.6 # of using the various options. # The name of the module, e.g. 'glib'. -DOC_MODULE = libglabels +DOC_MODULE = libglabels-3.0 # The top-level SGML file. You can change this if you want to. DOC_MAIN_SGML_FILE = $(DOC_MODULE)-docs.sgml @@ -262,7 +292,7 @@ CFILE_GLOB = # Header files to ignore when scanning. # e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h -IGNORE_HFILES = libglabels-private.h +IGNORE_HFILES = libglabels-3.0-private.h # Images to copy into HTML directory. # e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png @@ -280,10 +310,10 @@ content_files = INCLUDES = GTKDOC_LIBS = @GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_CC = $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -@GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_CC = $(LIBTOOL) --mode=compile $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +@GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) @GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_LD = $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -@GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_LD = $(LIBTOOL) --mode=link $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -@GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_RUN = sh -c +@GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) +@GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_RUN = @GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_RUN = $(LIBTOOL) --mode=execute # We set GPATH here; this gives us semantics for GNU make @@ -293,15 +323,21 @@ GTKDOC_LIBS = # GPATH = $(srcdir) TARGET_DIR = $(HTML_DIR)/$(DOC_MODULE) +SETUP_FILES = \ + $(content_files) \ + $(DOC_MAIN_SGML_FILE) \ + $(DOC_MODULE)-sections.txt \ + $(DOC_MODULE)-overrides.txt + # This includes the standard gtk-doc make rules, copied by gtkdocize. # Other files to distribute # e.g. EXTRA_DIST += version.xml.in -EXTRA_DIST = $(content_files) $(HTML_IMAGES) $(DOC_MAIN_SGML_FILE) \ - $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt -DOC_STAMPS = scan-build.stamp tmpl-build.stamp sgml-build.stamp html-build.stamp \ - $(srcdir)/tmpl.stamp $(srcdir)/sgml.stamp $(srcdir)/html.stamp +EXTRA_DIST = $(SETUP_FILES) +DOC_STAMPS = setup-build.stamp scan-build.stamp tmpl-build.stamp sgml-build.stamp \ + html-build.stamp pdf-build.stamp \ + setup.stamp tmpl.stamp sgml.stamp html.stamp pdf.stamp SCANOBJ_FILES = \ $(DOC_MODULE).args \ @@ -316,6 +352,10 @@ REPORT_FILES = \ $(DOC_MODULE)-unused.txt CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) +@ENABLE_GTK_DOC_TRUE@@GTK_DOC_BUILD_HTML_FALSE@HTML_BUILD_STAMP = +@ENABLE_GTK_DOC_TRUE@@GTK_DOC_BUILD_HTML_TRUE@HTML_BUILD_STAMP = html-build.stamp +@ENABLE_GTK_DOC_TRUE@@GTK_DOC_BUILD_PDF_FALSE@PDF_BUILD_STAMP = +@ENABLE_GTK_DOC_TRUE@@GTK_DOC_BUILD_PDF_TRUE@PDF_BUILD_STAMP = pdf-build.stamp all: all-am .SUFFIXES: @@ -509,55 +549,83 @@ uninstall-am: uninstall-local uninstall-local -@ENABLE_GTK_DOC_TRUE@all-local: html-build.stamp +@ENABLE_GTK_DOC_TRUE@all-local: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP) @ENABLE_GTK_DOC_FALSE@all-local: -docs: html-build.stamp +docs: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP) $(REPORT_FILES): sgml-build.stamp +#### setup #### + +setup-build.stamp: + -@if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ + echo 'gtk-doc: Preparing build'; \ + files=`echo $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types`; \ + if test "x$$files" != "x" ; then \ + for file in $$files ; do \ + test -f $(abs_srcdir)/$$file && \ + cp -p $(abs_srcdir)/$$file $(abs_builddir)/; \ + done \ + fi; \ + test -f $(abs_srcdir)/tmpl && \ + cp -rp $(abs_srcdir)/tmpl $(abs_builddir)/; \ + fi + @touch setup-build.stamp + +setup.stamp: setup-build.stamp + @true + #### scan #### scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB) @echo 'gtk-doc: Scanning header files' - @-chmod -R u+w $(srcdir) - cd $(srcdir) && \ - gtkdoc-scan --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --ignore-headers="$(IGNORE_HFILES)" $(SCAN_OPTIONS) $(EXTRA_HFILES) - if grep -l '^..*$$' $(srcdir)/$(DOC_MODULE).types > /dev/null 2>&1 ; then \ - CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" gtkdoc-scangobj $(SCANGOBJ_OPTIONS) --module=$(DOC_MODULE) --output-dir=$(srcdir) ; \ + @_source_dir='' ; \ + for i in $(DOC_SOURCE_DIR) ; do \ + _source_dir="$${_source_dir} --source-dir=$$i" ; \ + done ; \ + gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES) + @if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \ + CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" gtkdoc-scangobj $(SCANGOBJ_OPTIONS) --module=$(DOC_MODULE) ; \ else \ - cd $(srcdir) ; \ for i in $(SCANOBJ_FILES) ; do \ test -f $$i || touch $$i ; \ done \ fi - touch scan-build.stamp + @touch scan-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp @true #### templates #### -tmpl-build.stamp: $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt +tmpl-build.stamp: setup.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt @echo 'gtk-doc: Rebuilding template files' - @-chmod -R u+w $(srcdir) - cd $(srcdir) && gtkdoc-mktmpl --module=$(DOC_MODULE) $(MKTMPL_OPTIONS) - touch tmpl-build.stamp + @gtkdoc-mktmpl --module=$(DOC_MODULE) $(MKTMPL_OPTIONS) + @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ + if test -w $(abs_srcdir) ; then \ + cp -rp $(abs_builddir)/tmpl $(abs_srcdir)/; \ + fi \ + fi + @touch tmpl-build.stamp tmpl.stamp: tmpl-build.stamp @true -tmpl/*.sgml: +$(srcdir)/tmpl/*.sgml: @true #### xml #### -sgml-build.stamp: tmpl.stamp $(HFILE_GLOB) $(CFILE_GLOB) $(DOC_MODULE)-sections.txt $(srcdir)/tmpl/*.sgml $(expand_content_files) +sgml-build.stamp: tmpl.stamp $(DOC_MODULE)-sections.txt $(srcdir)/tmpl/*.sgml $(expand_content_files) @echo 'gtk-doc: Building XML' @-chmod -R u+w $(srcdir) - cd $(srcdir) && \ - gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $(MKDB_OPTIONS) - touch sgml-build.stamp + @_source_dir='' ; \ + for i in $(DOC_SOURCE_DIR) ; do \ + _source_dir="$${_source_dir} --source-dir=$$i" ; \ + done ; \ + gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS) + @touch sgml-build.stamp sgml.stamp: sgml-build.stamp @true @@ -566,19 +634,44 @@ sgml.stamp: sgml-build.stamp html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) @echo 'gtk-doc: Building HTML' - @-chmod -R u+w $(srcdir) - rm -rf $(srcdir)/html - mkdir $(srcdir)/html - mkhtml_options=""; \ + @rm -rf html + @mkdir html + @mkhtml_options=""; \ gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-path"; \ if test "$(?)" = "0"; then \ - mkhtml_options=--path="$(srcdir)"; \ - fi - cd $(srcdir)/html && gtkdoc-mkhtml $(mkhtml_options) $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) - test "x$(HTML_IMAGES)" = "x" || ( cd $(srcdir) && cp $(HTML_IMAGES) html ) + mkhtml_options=--path="$(abs_srcdir)"; \ + fi; \ + cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) + -@test "x$(HTML_IMAGES)" = "x" || \ + for file in $(HTML_IMAGES) ; do \ + if test -f $(abs_srcdir)/$$file ; then \ + cp $(abs_srcdir)/$$file $(abs_builddir)/html; \ + fi; \ + if test -f $(abs_builddir)/$$file ; then \ + cp $(abs_builddir)/$$file $(abs_builddir)/html; \ + fi; \ + done; @echo 'gtk-doc: Fixing cross-references' - cd $(srcdir) && gtkdoc-fixxref --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) - touch html-build.stamp + @gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) + @touch html-build.stamp + +#### pdf #### + +pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) + @echo 'gtk-doc: Building PDF' + @rm -rf $(DOC_MODULE).pdf + @mkpdf_imgdirs=""; \ + if test "x$(HTML_IMAGES)" != "x"; then \ + for img in $(HTML_IMAGES); do \ + part=`dirname $$img`; \ + echo $$mkpdf_imgdirs | grep >/dev/null "\-\-imgdir=$$part "; \ + if test $$? != 0; then \ + mkpdf_imgdirs="$$mkpdf_imgdirs --imgdir=$$part"; \ + fi; \ + done; \ + fi; \ + gtkdoc-mkpdf --path="$(abs_srcdir)" $$mkpdf_imgdirs $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS) + @touch pdf-build.stamp ############## @@ -587,15 +680,18 @@ clean-local: rm -rf .libs distclean-local: - cd $(srcdir) && \ - rm -rf xml $(REPORT_FILES) \ - $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt + rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \ + $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt + if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ + rm -f $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types; \ + rm -rf tmpl; \ + fi maintainer-clean-local: clean - cd $(srcdir) && rm -rf xml html + rm -rf xml html install-data-local: - installfiles=`echo $(srcdir)/html/*`; \ + @installfiles=`echo $(srcdir)/html/*`; \ if test "$$installfiles" = '$(srcdir)/html/*'; \ then echo '-- Nothing to install' ; \ else \ @@ -615,12 +711,11 @@ install-data-local: mv -f $${installdir}/$(DOC_MODULE).devhelp \ $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp; \ fi; \ - ! which gtkdoc-rebase >/dev/null 2>&1 || \ - gtkdoc-rebase --relative --dest-dir=$(DESTDIR) --html-dir=$${installdir} ; \ + $(GTKDOC_REBASE) --relative --dest-dir=$(DESTDIR) --html-dir=$${installdir}; \ fi uninstall-local: - if test -n "$(DOC_MODULE_VERSION)"; then \ + @if test -n "$(DOC_MODULE_VERSION)"; then \ installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ else \ installdir="$(DESTDIR)$(TARGET_DIR)"; \ @@ -637,16 +732,14 @@ uninstall-local: dist-hook: dist-check-gtkdoc dist-hook-local mkdir $(distdir)/tmpl - mkdir $(distdir)/xml mkdir $(distdir)/html - -cp $(srcdir)/tmpl/*.sgml $(distdir)/tmpl - -cp $(srcdir)/xml/*.xml $(distdir)/xml - cp $(srcdir)/html/* $(distdir)/html - -cp $(srcdir)/$(DOC_MODULE).types $(distdir)/ - -cp $(srcdir)/$(DOC_MODULE)-sections.txt $(distdir)/ + -cp $(build)/tmpl/*.sgml $(distdir)/tmpl + cp $(builddir)/html/* $(distdir)/html + -cp $(builddir)/$(DOC_MODULE).pdf $(distdir)/ + -cp $(build)/$(DOC_MODULE).types $(distdir)/ + -cp $(build)/$(DOC_MODULE)-sections.txt $(distdir)/ cd $(distdir) && rm -f $(DISTCLEANFILES) - ! which gtkdoc-rebase >/dev/null 2>&1 || \ - gtkdoc-rebase --online --relative --html-dir=$(distdir)/html + $(GTKDOC_REBASE) --online --relative --html-dir=$(distdir)/html .PHONY : dist-hook-local docs diff --git a/docs/libglabels/html/ch01.html b/docs/libglabels/html/ch01.html index ace3432c..335e7d35 100644 --- a/docs/libglabels/html/ch01.html +++ b/docs/libglabels/html/ch01.html @@ -3,45 +3,45 @@ Basic LibGlabels Usage - - - - - - + + + + + + - - - - - + + -