2006-05-22  Kristian Høgsberg  <krh@redhat.com>

	* configure.ac: Bump release.
	* NEWS: Sum up changes.

2006-05-22  Kristian Høgsberg  <krh@redhat.com>

	Patch from Rainer Keller to fix the ImageOutputDev (#6984).
	
	* utils/ImageOutputDev.cc (drawImage): Upate to work with new
	16-bit color representation.

	* utils/ImageOutputDev.h: Return gTrue for needNonText().

2006-05-21  Kristian Høgsberg  <krh@redhat.com>

	* poppler/CairoFontEngine.cc:
	* poppler/CairoFontEngine.h: Back out type3 font work committed by
	accident.

2006-05-21  Albert Astals Cid <aacid@kde.org>

	* qt4/src/poppler-page.cc:
	* qt/src/poppler-page.cc: Swap byte order on bigendian machines.
	Thanks a lot to Jonathan Riddell <jr@jriddell.org> for letting me use
	his minimac for	testing

2006-05-19  Kristian Høgsberg  <krh@redhat.com>

	* glib/poppler-action.h: 
	* glib/poppler-action.cc: Add poppler_dest_get_type(), patch from
	Kouhei Sutou (#6907).

	* poppler-glib.pc.in (Requires): Add gdk-2.0 dependency, from
	Kouhei Sutou (#6896).

	* glib/poppler-document.h (POPPLER_TYPE_INDEX_ITER)
	(POPPLER_TYPE_FONTS_ITER): Add these macros, patch from Kouhei
	Sutou (#6897).

	* glib/Makefile.am (INCLUDES): Add define for G_LOG_DOMAIN, from
	Kouhei Sutou (#6899).

	* glib/poppler-document.cc (poppler_document_save): Memleak patch
	from Paolo Borelli (#6908).

2006-05-19  Kristian Høgsberg  <krh@redhat.com>
	
	* TextOutputDev.h:
	* TextOutputDev.cc:
	* UnicodeTypeTable.h:
	* UnicodeTypeTable.cc:
	* UnicodeCClassTables.h:
	* UnicodeCompTables.h:
	* UnicodeDecompTables.h:
	* gen-unicode-tables.py: Patch from Ed Catmur (#2929) to convert
	search string and document text to unicode NFKC (compatibility
	composition) before matching so ligatures match correctly.

2006-05-19  Kristian Høgsberg  <krh@redhat.com>

	* glib/poppler-page.cc (poppler_page_prepare_output_dev): Fix the
	rotation bug for real.

2006-05-19  Kristian Høgsberg  <krh@redhat.com>

	Patch from Kouhei Sutou (#6905).
	
	* glib/poppler-document.cc:
	* glib/poppler-document.h:
	* glib/poppler-private.h:
	* glib/reference/tmpl/poppler-private.sgml:
	* glib/reference/tmpl/poppler.sgml: Make PopplerPSOutput a proper
	glib object.

2006-05-19  Kristian Høgsberg  <krh@redhat.com>

	* glib/poppler-page.cc (poppler_page_prepare_output_dev): Fix
	rotation bug (#6913, #6926).

	Memory leak patch from Carlos Garcia Campos (#6947).

	* glib/poppler-action.cc:
	* glib/poppler-document.cc:
	* glib/poppler-page.cc:
	* poppler/CairoFontEngine.cc:
	* poppler/CairoFontEngine.h:
	* poppler/CairoOutputDev.cc:
	* poppler/CairoOutputDev.h:
	* poppler/Gfx.cc:
	* poppler/TextOutputDev.cc:  Fix various memory leaks.

2006-05-19  Albert Astals Cid <aacid@kde.org>

	* qt4/src/poppler-link.cc: Patch by Pino Toscano, ensure the
	splashoutput is created when parsing the TOC.

2006-05-14  Albert Astals Cid <aacid@kde.org>

	* poppler/FontInfo.cc: Fix possible crash, half patch 
	by Kouhei Sutou <kou@cozmixng.org>

2006-05-13  Albert Astals Cid <aacid@kde.org>

	* poppler/GfxState.cc:
	* poppler/GfxState.h: Fix memleak, patch by
	        Carlos Garcia Campos <carlosgc@gnome.org>

2006-05-13  Albert Astals Cid <aacid@kde.org>

	* qt4/src/poppler-document.cc: leak--
	* qt4/src/poppler-private.h: Refcount globalparams
	* qt4/tests/test-poppler-qt4.cpp: Some leaks less

2006-05-12  Albert Astals Cid <aacid@kde.org>

	* qt4/src/Makefile.am
	* qt4/src/poppler-annotation-helper.h
	* qt4/src/poppler-annotation.cc
	* qt4/src/poppler-annotation.h
	* qt4/src/poppler-link.cc
	* qt4/src/poppler-link.h
	* qt4/src/poppler-page.cc
	* qt4/src/poppler-qt4.h: Code for annotations stripped from oKular,
	it's all based on Enrico's work, so ask him for details, the problem
	is that he left KDE development a while ago.
	

2006-05-09  Albert Astals Cid <aacid@kde.org>

	* qt4/src/Makefile.am:
	* qt4/src/poppler-document.cc:
	* qt4/src/poppler-link.cc:
	* qt4/src/poppler-page.cc:
	* qt4/src/poppler-private.h:
	* qt4/src/poppler-qt4.h: Adding links extraction code, should work as
	  it is basically stripped out from kpdf

2006-05-05  Albert Astals Cid <aacid@kde.org>

	* poppler/Catalog.cc: Fix memleak, patch by  
	Carlos Garcia Campos <carlosgc@gnome.org>

2006-05-05  Albert Astals Cid <aacid@kde.org>

	* poppler/Function.cc: quick fix for KDE bug #126760

2006-05-04  Albert Astals Cid <aacid@kde.org>

	* qt4/src/poppler-qt4.h:
	* qt4/src/poppler-page.cc: Implement search functionality 

2006-05-02  Kristian Høgsberg  <krh@redhat.com>

	* glib/poppler-page.cc:
	* poppler/Gfx.cc:
	* poppler/GfxFont.cc:
	* poppler/GfxFont.h:
	* poppler/GfxState.cc:
	* poppler/TextOutputDev.cc: Patch from Gary Coady to add reference
	counting to GfxFont so we don't crash on text selection (#4481).

2006-05-01  Albert Astals Cid <aacid@kde.org>

	* qt4/src/poppler-page.cc:
	* qt4/src/poppler-private.h:
	* qt4/src/poppler-qt4.h:
	* qt4/src/poppler-textbox.cc: Add nextWord(), hasSpaceAfter() and
	edge() to TextBox

2006-05-01  Albert Astals Cid <aacid@kde.org>

	* qt4/src/poppler-document.cc:
	* qt4/src/poppler-private.h:
	* qt4/src/poppler-qt4.h: Add the possibility of setting the paper
	color

2006-04-29  Albert Astals Cid <aacid@kde.org>

	* poppler/JBIG2Stream.cc: fix memory leak. Bug 6765, reported by
	Kjartan Maraas.

2006-04-27  Jeff Muizelaar  <jeff@infidigm.net>

	* poppler/CairoOutputDev.cc: delete imgStr if some of the cairo
	functions fail. Fixes coverty reports #2106, #2107, #2077 and 
	bug #6764. Patch by Kjartan Maraas.

2006-04-23  Albert Astals Cid <aacid@kde.org>

	* qt4/src/poppler-private.h: Protect us against a link not having
	a destination or a namedDestination

2006-04-18  Albert Astals Cid <aacid@kde.org>

	* goo/GooVector.h: Fix typo that was preventing build with MSVC8
	Discovered by Reece Dunn <msclrhd@hotmail.com>

2006-04-16  Carlos Garcia Campos  <carlosgc@gnome.org>

	* glib/poppler-action.cc:
	* glib/poppler-action.h:
	* glib/poppler-private.h:
	* glib/poppler.h:
	Add support for named destinations and named actions.
	
	* glib/poppler-document.cc:
	* glib/poppler-document.h:
	Allow to find named destinations in document.
	
2006-04-12  Jeff Muizelaar  <jeff@infidigm.net>

	* poppler/CairoOutputDev.cc:
	* poppler/CairoOutputDev.h: Add support for masked images to the cairo
	backend. CairoOutputDevice really should have been refactored before
	committing this, but the results were so pretty I couldn't resist.
	Fixes #6174.

2006-04-12  Jeff Muizelaar  <jeff@infidigm.net>

	* poppler/CairoOutputDev.cc: Fix breakage by krh by only calling
	cairo_destroy on non-null.

2006-04-11  Kristian Høgsberg  <krh@redhat.com>

	* configure.ac:
	* poppler-glib.pc.in:
	* glib/Makefile.am:
	* glib/poppler-page.cc:
	* glib/poppler-page.h:
	* glib/poppler.h:
	* poppler/CairoOutputDev.cc:
	* poppler/CairoOutputDev.h:
	* glib/poppler-features.h.in:
	Make the CairoOutputDev render to a cairo_t instead of a
	cairo_surface_t and expose that functionality in the glib wrapper
	(poppler_page_render).

	* test/Makefile.am:
	* test/gtk-cairo-test.cc:
	Update gtk-cairo-test to use this new interface and add a spin
	button for changing page (#5951).

	* utils/Makefile.am (EXTRA_DIST): Fix warning where this was
	assigned twice.
	
2006-04-10  Jeff Muizelaar  <jeff@infidigm.net>

	* poppler/CairoOutputDev.cc: take originX and originY into account in
	drawChar() to draw vertical text properly. Fixes #6551.

2006-04-09  Albert Astals Cid <aacid@kde.org>

	* m4/qt.m4: Improve for systems that need -pthread to be linked when
	linking Qt. Patch by Diego Pettenò

2006-04-08  Albert Astals Cid <aacid@kde.org>

	* poppler/Makefile.am:
	* qt4/src/Makefile.am: Don't link Qt4 in libpoppler when using Qt4 frontend
	Patch by Stefan Schweizer

2006-04-05  Albert Astals Cid <aacid@kde.org>

	* poppler/JBIG2Stream.cc: Fix for some buggy JBIG2 documents, patch by
	Raj Kumar and Paul Walmsley. Fixes bug 6500

2006-04-05  Jeff Muizelaar  <jeff@infidigm.net>

	* poppler/CairoOutputDev.cc: use a separate matrix for the softmask.
	fixes #6492.

2006-04-04  Albert Astals Cid <aacid@kde.org>

	* splash/Splash.cc:
	* splash/SplashBitmap.cc: Make Splashbitmap RGB8 use 32bits internally
	* qt/poppler-page.cc:
	* qt4/src/poppler-page.cc: Adapt to splashbitmap change so copying to
	QImage is faster.
	Patch by Frank Meerkötter slightly modified by Albert Astals Cid

2006-04-04  Albert Astals Cid <aacid@kde.org>

	* splash/SplashFTFont.cc: Fix crash when using fixedpoint math. Patch
	by Frank Meerkoetter

2006-04-02  Albert Astals Cid <aacid@kde.org>

	* m4/qt.m4: Add QtXml lib to Qt4 binding as now it's needed
	* qt4/src/poppler-document.cc: Add the possibility to get the toc of
	a file, print it to PS and get a LinkDestination from a "symbolic" name
	* qt4/src/poppler-page.cc: Add the possibility of getting the defaultCTM

2006-04-01  Albert Astals Cid <aacid@kde.org>

	* poppler/XRef.cc: Fix parsing of some TOCs, bug was due a int to uint
	comparison, sorry for introducing that bug. Fixes bug 6454

2006-03-20  Jeff Muizelaar  <jeff@infidigm.net>

	* glib/poppler-page.cc: Avoid strdup in poppler_page_get_property and
	make code cleaner. Combined with the memleak fix closes #6187.
	Patch by chpe.

2006-03-20  Jeff Muizelaar  <jeff@infidigm.net>

	* glib/poppler-page.cc: Fix memory leak in poppler_page_get_text
	Patch by chpe.

2006-03-20  Albert Astals Cid <aacid@kde.org>

	* qt/poppler-document.cc:
	* qt4/src/poppler-document.cc: Use UGooString for dates, fixes KDE
	bug 123938

2006-03-20  Carlos Garcia Campos  <calosgc@gnome.org>

	reviewed by: Jeff Muizelaar <jeff@infidigm.net>

	* glib/poppler-document.cc: Fix memory leak in poppler_font_info_free

2006-03-20  Jeff Muizelaar  <jeff@infidigm.net>

	* poppler/CairoFontEngine.h: remove unused variables

2006-03-19  Albert Astals Cid <aacid@kde.org>

	* utils/HtmlOutputDev.[cc|h]: Fix broken code

2006-03-16  Albert Astals Cid <aacid@kde.org>

	* poppler/Page.cc: Remove a #ifdef that was never defined (nice to
	have so sucky W args), probably came from gpdf (it's not on xpdf
	sources) and was causing bugs 6079 and 6167

2006-03-16  Albert Astals Cid <aacid@kde.org>

	* poppler/FontInfo.cc: Embedded fonts don't have a font file

2006-03-14  Albert Astals Cid <aacid@kde.org>

	* qt4/src/poppler-qt4.h: Fix compilation with gcc4.1, patch by  
	Michael Olbrich

2006-03-11  Albert Astals Cid <aacid@kde.org>

	* poppler/FontInfo.cc:
	* poppler/FontInfo.h: Add getFile() function that returns
	the path of the font that is beign used in the system to
	represent that font
	* qt4/src/poppler-document.cc:
	* qt4/src/poppler-fontinfo.cc:
	* qt4/src/poppler-private.h:
	* qt4/src/poppler-qt4.h: Add the file() function
	* qt4/tests/poppler-fonts.cpp: Show the path of the font
	used to represent each font

2006-03-09  Albert Astals Cid <aacid@kde.org>

	* glib/Makefile.am: Build with cairo disabled, patch by Eduardo de
	Barros Lima

2006-02-28  Kristian Høgsberg  <krh@redhat.com>

	* configure.ac: Bump release to 0.5.1.

	* NEWS: Sum up 0.5.1 changes so far.

	* TextOutputDev.h: add getters for a couple of attributes.
	
	* glib/Makefile.am: 
	* poppler/Makefile.am: Move cairo link dependency to glib bindings.

2006-02-28  Kristian Høgsberg  <krh@redhat.com>

	* goo/gmem.c: (gmalloc), (grealloc):
	* poppler/JBIG2Stream.cc:
	* poppler/Stream.cc:
	* poppler/Stream.h:
	* splash/SplashXPathScanner.cc:

	More integer overflow fixes from Derek Noonburg (#5922).

2006-02-28  Kristian Høgsberg  <krh@redhat.com>

	* poppler/PSOutputDev.cc: Make PSOutputDev constructor respect
	passed in paper size (#5946, #5749).

2006-02-28  Kristian Høgsberg  <krh@redhat.com>

	* glib/poppler-document.cc (info_dict_get_string): Refactor
	_popper_goo_string_to_utf8() out into it's own function.

	* glib/poppler-page.cc (poppler_page_get_property): Use
	_popper_goo_string_to_utf8() here to convert ucs2 page labels.

	* glib/poppler-page.cc (poppler_page_get_selection_region): Add
	braces to fix warning.

	* poppler/PageLabelInfo.cc: If the label prefix string has a ucs2
	marker, append the number part of the label as ucs2 (#5952).

2006-02-25  Albert Astals Cid  <aacid@kde.org>

	* poppler/Object.cc: Fix warning

2006-02-23  Albert Astals Cid  <aacid@kde.org>

	* utils/Makefile.am: Do not build pdftoppm when SplashOutputDev is
	disabled as that does not work

2006-02-18  Jeff Muizelaar  <jeff@infidigm.net>

	* poppler/CairoOutputDev.cc:
	* poppler/CairoOutputDev.h:
	* poppler/GfxState.cc:
	* poppler/GfxState.h: Add support for drawSoftMaskedImage to
	CairoOutputDev. Ugly but works.

2006-02-16  Jeff Muizelaar  <jeff@infidigm.net>

	* poppler/CairoOutputDev.cc: Work around cairo bug when scaling
	1x1 bitmaps. Fixes #3387. Also gives a performance improvement.

2006-02-16  Albert Astals Cid  <aacid@kde.org>

	* qt4/src/Makefile.am:
	* qt/Makefile.am:
	* poppler/Makefile.am:
	* glib/Makefile.am: Update soname as we are not really compatible
	anymore with previous releases that had soname 0.0.0

2006-02-13  Albert Astals Cid  <aacid@kde.org>

	* poppler/ArthurOutputDev.cc: Make it compile after changing code so
	we did not pass files to freetype but buffers

2006-02-13  Albert Astals Cid  <aacid@kde.org>

	* poppler/PSOutputDev.cc: Commit setupExternalCIDTrueTypeFont patch
	kpdf got from Takashi Iwai (SuSe) a long time ago

2006-02-06  Albert Astals Cid  <aacid@kde.org>

	* configure.ac:
	* goo/FixedPoint.h:
	* splash/Splash.cc:
	* splash/SplashTypes.h: Various fixes from Frank Meerkötter to enable
	fixedpoint arithmetic

2006-02-06  Albert Astals Cid  <aacid@kde.org>
	
	* poppler/Annot.cc: Fix small leaks
	* poppler/JBIG2Stream.cc: Remove check improving as really did not
	improve anything
	
2006-02-05  Albert Astals Cid  <aacid@kde.org>

	* poppler/Gfx.cc: Fix small leak
	* poppler/GfxFont.cc: I needed that guard in kpdf to fix a crash and
	it surely does not hurt
	* poppler/JBIG2Stream.cc: Improve check (comes from kpdf)
	* poppler/SplashOutputDev.cc: Unneeded var--

2006-02-04  Jeff Muizelaar  <jeff@infidigm.net>

	* poppler/Gfx.cc:
	* poppler/OutputDev.cc:
	* poppler/OutputDev.h: Let output devices know about pdf grouping
	operators.
	Patch by Thorkild Stray.

2006-02-04  Jeff Muizelaar  <jeff@infidigm.net>

	* poppler/GlobalParams.cc: Check all fonts returned by fontconfig.
	Discard the ones that are not truetype or type1. Fixes #5758.
	Patch by Ed Catmur.

2006-02-04  Albert Astals Cid  <aacid@kde.org>

	* utils/Makefile.am:
	* utils/pdftoppm.cc: Actually create pdftoppm patch by Stefan
	Schweizer
	* utils/pdf2xml.dtd: Added a DTD of the xml pdftohtml creates patch by
	Stefan Schweizer
	* poppler/SplashOutputDev.cc: Remove bug from "do not use an external
	file to pass fonts to Freetype" patch, patch by Stefan Schweizer
		

2006-02-02  Albert Astals Cid  <aacid@kde.org>

	* splash/SplashXPathScanner.cc: CVE-2006-0301 fix by Derek (xpdf man
	itslef) got though Dirk Mueller of KDE security team

2006-02-02  Albert Astals Cid  <aacid@kde.org>

	* fofi/FoFiTrueType.cc:
	* fofi/FoFiTrueType.h:
	* fofi/FoFiType1C.h:
	* goo/gfile.cc:
	* poppler/GfxFont.cc:
	* poppler/GfxFont.h:
	* poppler/GlobalParams.cc:
	* poppler/GlobalParams.h:
	* poppler/SplashOutputDev.cc:
	* splash/SplashFTFontEngine.cc:
	* splash/SplashFTFontEngine.h:
	* splash/SplashFTFontFile.cc:
	* splash/SplashFTFontFile.h:
	* splash/SplashFontEngine.cc:
	* splash/SplashFontEngine.h:
	* splash/SplashFontFile.cc:
	* splash/SplashFontFile.h:
	* splash/SplashT1FontEngine.cc:
	* splash/SplashT1FontFile.cc:
	* splash/SplashT1FontFile.h: Merge patch to not use external file
	  when passing the font to Freetype, original patch by Takashi Iwai
	  adapted by me to kpdf rediffed by Stefan Schweizer against poppler
	  cvs

2006-01-31  Jeff Muizelaar  <jeff@infidigm.net>

	* poppler/GlobalParams.cc (GlobalParams::getDisplayFont):
	Allow ttc fonts to be used.

2006-01-28  Jeff Muizelaar  <jeff@infidigm.net>

	* glib/poppler-attachment.h: fix compile by adding <time.h> include.
	Acked-by: Jonathan Blanford <jrb@redhat.com>

2006-01-26  Kristian Høgsberg  <krh@redhat.com>

	* poppler/CairoOutputDev.cc: Patch from Christian Krause; handle
	0-width lines (#5545).

Tue Jan 24 01:19:40 2006  Jonathan Blandford  <jrb@redhat.com>

	* glib/Makefile.am:
	* glib/poppler-attachment.cc:
	* glib/poppler-attachment.h:
	* glib/poppler-document.cc:
	* glib/poppler-document.h:
	* glib/poppler-page.cc:
	* glib/poppler-private.h:
	* glib/poppler.h:
	* glib/test-poppler-glib.c:
	* glib/reference/tmpl/poppler-enums.sgml:
	* glib/reference/tmpl/poppler-unused.sgml: glib bindings for the
	embedded file support.  It doesn't support mtime and ctime yet,
	but the rest works.

2006-01-23  Kristian Høgsberg  <krh@redhat.com>

	* configure.ac:
	* poppler/GlobalParams.cc:
	* poppler/poppler-config.h.in:
	* utils/pdftohtml.cc:
	* utils/pdftops.cc: Respect command line paper size settings (#5641).
	Drop the built-in paper sizes.

2006-01-23  Kristian Høgsberg  <krh@redhat.com>

	* glib/test-poppler-glib.c (print_document_info, print_index):
	Move variable declarations to top (#5692).

	* utils/*.cc: Move config.h #include to top of #include's (#5693).

	* splash/SplashFTFont.cc: Don't use deprecated freetype include
	files.

2006-01-21  Jeff Muizelaar  <jeff@infidigm.net>

	* TODO: Add my todo list.

2006-01-18  Albert Astals Cid  <aacid@kde.org>

	* glib/poppler-action.cc:
	* glib/poppler-document.cc:
	* poppler/Annot.cc:
	* poppler/Catalog.cc:
	* poppler/Catalog.h:
	* poppler/Dict.cc:
	* poppler/Dict.h:
	* poppler/FontInfo.cc:
	* poppler/Function.cc:
	* poppler/Gfx.cc:
	* poppler/GfxFont.cc:
	* poppler/GfxState.cc:
	* poppler/Link.cc:
	* poppler/Link.h:
	* poppler/Makefile.am:
	* poppler/Object.h:
	* poppler/Outline.cc:
	* poppler/PDFDoc.cc:
	* poppler/PDFDoc.h:
	* poppler/PSOutputDev.cc:
	* poppler/Page.cc:
	* poppler/PageLabelInfo.cc:
	* poppler/Parser.cc:
	* poppler/SecurityHandler.cc:
	* poppler/Stream.cc:
	* poppler/XRef.cc:
	* qt/poppler-document.cc:
	* qt/poppler-page-transition.cc:
	* qt4/src/Makefile.am:
	* qt4/src/poppler-document.cc:
	* qt4/src/poppler-private.h:
	* qt4/src/poppler-qt4.h:
	* qt4/tests/Makefile.am:
	* utils/HtmlOutputDev.cc:
	* utils/pdffonts.cc:
	* utils/pdfinfo.cc:
	* utils/pdftohtml.cc:
	* utils/pdftotext.cc: Brad patch for embedded document extraction,
	only has Qt4 bindings for now, needs Qt3 and glib work

2006-01-18  Albert Astals Cid  <aacid@kde.org>

	* qt/poppler-page-transition.h:
	* qt4/src/Doxyfile: Add some more documentation to PageTransition,
	patch by Stefan Kebekus

2006-01-18  Albert Astals Cid  <aacid@kde.org>

	* poppler/CharCodeToUnicode.cc: Fix check for length that was not
	having into account that there could be \n or \r in tokens an that
	those do not have to be took into account. Fixes
	http://bugs.kde.org/show_bug.cgi?id=120310

2006-01-17  Albert Astals Cid  <aacid@kde.org>

	* poppler/Lexer.cc:
	* poppler/Lexer.h:
	* poppler/Parser.cc:
	* poppler/Parser.h:
	* poppler/XRef.cc:
	* poppler/XRef.h: When doing the parsing check with XREF we did not
	grow too much. Fixes serialata10a.pdf

2006-01-12  Jeff Muizelaar  <jeff@infidigm.net>

	* poppler/GlobalParams.cc: Make buildFcPattern() static.

2006-01-11  Kristian Høgsberg  <krh@redhat.com>

	* poppler/JBIG2Stream.cc:
	* poppler/Stream.cc: Merge patch to fix CVE-2005-3624,
	CVE-2005-3625 and CVE-2005-3627 issues.

2006-01-10  Albert Astals Cid  <aacid@kde.org>

	* configure.ac:
	* m4/qt.m4: Fix bugs created when splitting the code from
	configure.ac, take QTDIR into account when looking for QtTestLib and
	do not die if it is not found as it is not mandatory
	* qt/poppler-page-transition.cc:
	* qt/poppler-page.cc:
	* qt/poppler-private.h:
	* qt4/tests/Makefile.am:
	* qt4/src/poppler-qt4.h:
	* qt4/src/poppler-page.cc:
	* qt4/src/Makefile.am: Fix mess created my the moving and renaming of
	PageTransition.cc

2006-01-10  Kristian Høgsberg  <krh@redhat.com>

	* splash/Makefile.am: Only install splash headers if
	--enable-xpdf-headers is given.

	* Makefile.am (DISTCHECK_CONFIGURE_FLAGS): Set this here.

2006-01-10  Jeff Muizelaar  <jeff@infidigm.net>

	* poppler/CairoOutputDev.cc:
	* poppler/CairoOutputDev.h:
	Fix the following fixme in CairoOutputDevice.

	// FIXME: This is quite right yet, we need to accumulate all
	// glyphs within one text object before we clip.  Right now this
	// just add this one string.

	The fix uses a strategy similar to the one the Splash backend.
	textClipPath is used to store the appended path from each call to
	endString(). The accumulated path is clipped in endTextObject.

2006-01-08  Jeff Muizelaar  <jeff@infidigm.net>

	* poppler/CairoOutputDev.cc: Don't try and load type3 fonts (#4030).

2006-01-08  Jeff Muizelaar  <jeff@infidigm.net>

	* poppler/Page.cc: use colToByte for reading thumbnails (#5420).
	
	Patch by Nickolay V. Shmyrev.

2006-01-07  Jeff Muizelaar <jeff@infidigm.net>

	* poppler/CairoOutputDev.cc: Initialize (fill|stroke)_opacity.

2006-01-06  Kristian Høgsberg  <krh@redhat.com>

	* qt/poppler-page.cc:
	* qt/poppler-private.h:
	* qt/poppler-qt.h:
	* qt4/src/Makefile.am: 
	* qt/Makefile.am: 
	* poppler/Makefile.am: Move PageTransition to qt bindings, move
	contents from Private.h to qt/poppler-private.h.

	* poppler/TextOutputDev.cc (visitWord): Remove #warning.

	* utils/Makefile.am (pdfimages_SOURCES): Add ImageOutputDev.h, use
	dist_man1_MANS so we actually dist the man pages.

	* goo/Makefile.am (poppler_goo_include_HEADERS): Add GooVector.h.

	* glib/reference/Makefile.am: DOC_SOURCE_DIR must be relative to
	$(srcdir), fix this to make distchek run.

	* m4/qt.m4:
	* m4/libjpeg.m4: 
	* acinclude.m4:
	* configure.ac: Split out Qt and libjpeg checks from configure.ac
	and acinclude.m4 to m4/qt.m4 and m4/libjpeg.m4.

2006-01-06  Albert Astals Cid  <aacid@kde.org>
	
	* poppler/DCTStream.cc: Fix handling of malformed jpeg streams like
	the one at http://bugs.kde.org/show_bug.cgi?id=119569 

2006-01-02  Albert Astals Cid  <aacid@kde.org>

	* qt/poppler-page.cc:
	* qt/poppler-qt.h:
	* qt4/src/poppler-page.cc:
	* qt4/src/poppler-qt4.h: Introduce variants of renderTo that return a
	QImage and do not use a QPixmap so threading is possible.
	
2006-01-02  Albert Astals Cid  <aacid@kde.org>

	* poppler/PageTransition.cc: Use error() insted of std::cerr

Sun Jan  1 18:50:51 2006  Jonathan Blandford  <jrb@redhat.com>

	* Makefile.am:
	* autogen.sh:
	* configure.ac:
	* gtk-doc.make:
	* glib/Makefile.am: enable gtk-doc support.

2006-01-01  Albert Astals Cid  <aacid@kde.org>

	* qt4/src/poppler-private.h:
	* qt4/src/poppler-page.cc:
	* qt4/src/poppler-document.cc: Don't create a SplashOutputDev for
	every splashRenderToPixmap
	* qt/poppler-page.cc:
	* qt/poppler-private.h: Don't create a SplashOutputDev for every
	renderToPixmap.

Sun Jan  1 15:32:08 2006  Jonathan Blandford  <jrb@redhat.com>

	* glib/reference/*: More gtk-doc work.  Not enabled for building
	by default, but filled in.

Fri Dec 30 21:08:33 2005  Jonathan Blandford  <jrb@redhat.com>

	* glib/*{cc,h}: Update inline doc comments.  This is in
	preparation for gtk-doc support.

2005-12-30  Albert Astals Cid  <aacid@kde.org>

	* utils/HtmlOutputDev.cc:
	* utils/ImageOutputDev.cc: Fix build when using --disable-libjpeg

2005-12-28  Brad Hards  <bradh@frogmouth.net>

	* qt4/src/poppler-private.h (Poppler): delete passwords after we've
	initialised the PDFDoc

	* qt4/src/poppler-qt4.h: Add warning about deleting the Document
	when done.

	* qt4/tests/check_*.cpp: Delete the Poppler::Document
	and Poppler::Page objects to avoid leaks 

	* qt4/tests/check_version.cpp: removed, there is a replacement
	automated test.

	* qt4/tests/poppler-fonts.cpp (main): Delete Poppler::Document on exit
	to avoid a memory leak.

	* qt4/tests/stress-poppler-qt4.cpp: Delete Poppler::Document and
	Poppler::Page objects to avoid leaks.

	* qt4/src/poppler-document.cc (Poppler): Delete *doc in 
	Document::load(), to avoid a memory leak on failure.
	Delete font results list, avoid a memory leak
	Delete font scanner object, avoid a memory leak

2005-12-27  Brad Hards  <bradh@frogmouth.net>

	* qt4/src/poppler-qt4.h: 
	* qt4/src/poppler-document.cc: add convertDate() function that
	turns char* PDF date strings into QDateTime. This version handles
	the timezone conversions. Refactored the existing date() method
	to use it.
	* qt4/tests/check_dateConversion.cpp: unit tests for convertDate()
	* qt4/tests/check_metadata.cpp: update to reflect UTC.
	* qt4/tests/.cvsignore: suppress check_dateConversion
	
	* qt4/src/Doxyfile (JAVADOC_AUTOBRIEF): Turned on automatic
	\brief mode.

	* qt4/src/poppler-qt4.h: Update API documentation. Patch from
	Stefan Kebekus, with some changes. Removed \brief entries.

2005-12-21  Kristian Høgsberg  <krh@redhat.com>

	* NEWS: Sum up 0.5 changes so far.

	* acinclude.m4: Split jpeg macros out into this file.

	* poppler/Stream.cc: Apply latest CVE-2005-3191 updates.

2005-12-21  Kristian Høgsberg  <krh@redhat.com>

	* utils/Makefile.am: Add parseargs.h to sources and add
	-I$(top_srcdir)/poppler to INCLUDES.

	* poppler/CairoFontEngine.cc: Apply patch from Hiroyuki Ikezoe to
	man non-embedded CJK fonts work.

2005-12-18  Albert Astals Cid  <aacid@kde.org>

	* configure.ac: Better jpeg detection, refer to ml PCbsd problem
	* utils/Makefile.am: Add fontconfig cflags to utils as not always is
	on /usr/include Fixes build problems on Slackware. Patch adapted from
	a Giovanni Venturi patch.
	* poppler/Page.cc: Only discard cropbox sizes one by one and not
	completely. Jeff and Martin were right.
	
2005-12-12  Albert Astals Cid  <aacid@kde.org>

	* poppler/Page.cc: Ignore cropBox if it seems incorrect.

2005-12-12  Kristian Høgsberg  <krh@redhat.com>

	* Makefile.am:
	* configure.ac:
	* goo/GooVector.h:
	* utils/HtmlFonts.cc:
	* utils/HtmlFonts.h:
	* utils/HtmlLinks.cc:
	* utils/HtmlLinks.h:
	* utils/HtmlOutputDev.cc:
	* utils/HtmlOutputDev.h:
	* utils/ImageOutputDev.cc:
	* utils/ImageOutputDev.h:
	* utils/Makefile.am:
	* utils/parseargs.c:
	* utils/parseargs.h:
	* utils/pdffonts.1:
	* utils/pdffonts.cc:
	* utils/pdfimages.1:
	* utils/pdfimages.cc:
	* utils/pdfinfo.1:
	* utils/pdfinfo.cc:
	* utils/pdftohtml.1:
	* utils/pdftohtml.cc:
	* utils/pdftoppm.1:
	* utils/pdftoppm.cc:
	* utils/pdftops.1:
	* utils/pdftops.cc:
	* utils/pdftotext.1:
	* utils/pdftotext.cc: Add command line utilities from xpdf.

2005-12-10  Albert Astals Cid  <aacid@kde.org>

	* qt4/src/poppler-page.cc:
	* qt4/src/poppler-qt4.h:
	* qt4/src/tests/test-poppler-qt4.cpp: The parameters x,y,w,h to the
	method splashRenderToPixmap are now used. Convenient
	defaults are provided. The test has been changed accordingly. Some
	added documentation. Patch by Stefan Kebekus
	
2005-12-09  Kristian Høgsberg  <krh@redhat.com>

	* poppler/GfxState.cc: Use colToByte() for converting GxfColorComp
	to bytes (really fix #5117).

	* poppler/Stream.cc: Remove duplicated check (#5243).

	* configure.ac: 
	* poppler/Makefile.am (poppler_includedir): 
	* goo/Makefile.am (poppler_goo_include_HEADERS): Make installation
	of xpdf header files optional.

2005-12-08  Albert Astals Cid  <aacid@kde.org>

	* configure.ac: Detect if gettimeofday is available, fixes for correct
	linking to Qt4 on windows
	* goo/GooTimer.[cc|h]: Only build if gettimeofday is available
	* poppler/Gfx.cc: Only use the timer for profiling if gettimeofday is
	available
	* poppler/GlobalParams.cc: Remove extra unlockGlobalParams that was
	making windows hang
	* splash/SplashFTFontEngine.cc: i need unistd.h on windows also
	* splash/SplashFontFile.cc: i need unistd.h on windows also

2005-12-08  Albert Astals Cid  <aacid@kde.org>

	* glib/Makefile.am:
	* poppler/Makefile.am:
	* qt/Makefile.am:
	* test/Makefile.am: Remove -DDATADIR we are not using if for anything
	and it shadows a windows typedef

2005-12-07  Brad Hards  <bradh@frogmouth.net>

	* poppler/PDFDoc.cc: Remove the version check.

	* qt4/src/poppler-document.cc:
	* qt4/src/poppler-qt4.h: add in a new method infoKeys() - to get
	  metadata keys

	* qt4/tests/check_metadata.cpp: add unit test for infoKeys().

2005-12-06  Brad Hards  <bradh@frogmouth.net>

	* qt4/tests/check_metadata.cpp : add unit tests
	for date, more linearization, page sizes, number of pages

2005-12-05  Brad Hards  <bradh@frogmouth.net>

	* qt4/tests/check_fonts.cpp (checkType3): Add another case to fonts
	unit test
	(checkTrueType): Add test for TrueType as well.

2005-12-04  Albert Astals Cid  <aacid@kde.org>

	* poppler/CairoFontEngine.cc: Correct fix for #5149, i broke it when
	merging xpdf 3.01 patches

2005-12-04  Albert Astals Cid  <aacid@kde.org>

	* poppler/JPXStream.cc: Fix error in merging CAN-2005-3193 fix. Thanks  
	Daniel Gryniewicz for notifying

2005-12-04  Albert Astals Cid  <aacid@kde.org>

	* qt/poppler-qt.h:
	* qt/poppler-fontinfo.h:
	* qt4/src/poppler-qt4.h:
	* qt4/src/poppler-fontinfo.cc: Implement copy constructor of FontInfo needed
	as Q[Value]List<FontInfo> uses it when appending

2005-12-04  Brad Hards  <bradh@frogmouth.net>

	* qt4/tests/.cvsignore: Add unit test to cvs suppressions

	* qt4/src/poppler-qt4.h:
	  qt4/src/fontinfo.cc: add implementation for
	FontInfo::typeName()

	* qt4/tests/check_fonts.cpp:
	* qt4/tests/Makefile.am: add unit test for fonts

	* qt4/src/Mainpage.dox: Minor typo fixes.

2005-12-03  Kristian Høgsberg  <krh@redhat.com>

	* glib/poppler-page.cc (poppler_page_set_selection_alpha): Use
	Nickolays original fix instead of trying to be clever with
	gdk_pixbuf_fill().

	* poppler/CairoFontEngine.cc: Fix text corruption bug (#5149),
	a rerun of an old classic (#3340).

	* poppler/GfxState.cc: Fixing another problem with new GfxRGB
	representation causing images to show up as random pixels (#5117).

2005-12-03  Kristian Høgsberg  <krh@redhat.com>

	* qt/Makefile.am (noinst_PROGRAMS): Only build qt test program if
	splash is enabled.

	* poppler/CairoOutputDev.cc: Remove unused grid snapping code,
	sidestepping #4507.

	* glib/poppler-document.h (PopplerPermissions): Breaking enum
	definition over multiple lines confuses glib-mkenums (#4600).

	* poppler/Makefile.am (libpoppler_la_LIBADD): Add FREETYPE_LIBS
	(#4515).

	* poppler/TextOutputDev.cc: 
	* qt/poppler-qt.h: GCC-4.1 fixes (#5031).

2005-12-03  Kristian Høgsberg  <krh@redhat.com>

	Fixes from Nickolay V. Shmyrev:
	
	* poppler/TextOutputDev.cc (TextLine::visitSelection,
	TextBlock::visitSelection): Fix selection crash with zero-width
	word boxes or zero-height line boxes (#4402).

	* poppler/CairoOutputDev.h: Fix wrong cairo-ft.h include (#4413).

	* poppler/CairoOutputDev.cc (eoFill, fill): 
	* glib/poppler-page.cc (poppler_page_render_selection): Update to
	work with new GfxColor definition and use
	cairo_pattern_create_rgba() to cache cairo_pattern_t's for the
	fill and stroke colors.

	* glib/poppler-page.cc (poppler_page_set_selection_alpha): Zero
	out pixbuf first.

2005-12-03  Albert Astals Cid  <aacid@kde.org>

	* qt/poppler-document.cc:
	* qt/poppler-private.h:
	* qt/poppler-qt.h: Backported font retrieving from Qt4 frontend
	* qt4/src/poppler-qt4.h:
	* qt4/src/poppler-fontinfo.cc:
	* qt4/src/poppler-textbox.cc: Remove implementation of that classes
	from the header, use pimpl

2005-12-03  Albert Astals Cid  <aacid@kde.org>

	* qt4/src/poppler-page.cc:
	* qt4/src/Doxyfile:
	* qt4/src/poppler-qt4.h:
	* qt4/tests/test-poppler-qt4.cpp: Updated documentation and removed
	some BC functions that were not needed as we still do not guarantee
	BC. Patch by Stefan Kebekus

2005-12-01  Albert Astals Cid  <aacid@kde.org>

	* poppler/JPXStream.cc:
	* poppler/Stream.cc:
	* poppler/Stream.h: Fix CAN-2005-3193 based on
	ftp://ftp.foolabs.com/pub/xpdf/xpdf-3.01pl1.patch

2005-11-28  Albert Astals Cid  <aacid@kde.org>

	* qt4/src/poppler-page,cc:
	* qt4/src/poppler-page-qt,h: Fix QPixmap contents generation messed
	when doing the xpdf 3.01 transition
	* qt4/tests/test-poppler-qt4.cpp: Use Splash backend by default, added
	-arthur option to use the Arthur backend

2005-11-27  Brad Hards  <bradh@frogmouth.net>

	* qt4/src/poppler-qt4.h: add some missing API documentation

	* qt4/tests: updated unit tests to use Qt4.1 version of
	QTestlib.

2005-11-25  Albert Astals Cid  <aacid@kde.org>

	* qt4/src/poppler-page.cc:
	* qt4/src/poppler-qt.h: Some more functions, patch by Stefan Kebekus

2005-11-21  Albert Astals Cid  <aacid@kde.org>
	
	* test/pdf-inspector.cc: Fix page range

2005-11-21  Albert Astals Cid  <aacid@kde.org>

	* qt/poppler-page.cc:
	* qt/poppler-qt.h: Some more functions, patch by Stefan Kebekus

2005-11-21  Albert Astals Cid  <aacid@kde.org>

	* qt/Makefile.am: Fix build problems some people were having

2005-11-20  Kristian Høgsberg  <krh@redhat.com>

	* poppler/GfxState.cc: Fix the byte_lookup initialization broken
	by the merges (#4350).  Modify GfxColorSpace::getRGBLine() to work
	with new GfXColor type.

2005-11-17  Albert Astals Cid  <aacid@kde.org>

	* splash/SplashFTFont.cc: Make it compile using FreeType 2.2.0
	preversions

2005-11-04  Albert Astals Cid  <aacid@kde.org>

	* glib/poppler-document.cc:
	* glib/poppler-page.cc: Make it compile using --disable-cairo-output

2005-11-01  Albert Astals Cid  <aacid@kde.org>

	* poppler/Stream.h:
	* poppler/OutputDev.h: Comment some unused parameters to calm down
	compiler warnings

2005-10-30  Albert Astals Cid  <aacid@kde.org>

	* glib/poppler-page.cc
	* poppler/ArthurOutputDev.cc
	* poppler/ArthurOutputDev.h
	* poppler/CairoOutputDev.cc
	* poppler/CairoOutputDev.h
	* poppler/Gfx.cc
	* poppler/Gfx.h
	* poppler/GfxState.cc
	* poppler/GfxState.h
	* poppler/OutputDev.cc
	* poppler/OutputDev.h
	* poppler/PDFDoc.cc
	* poppler/PDFDoc.h
	* poppler/PSOutputDev.cc
	* poppler/PSOutputDev.h
	* poppler/Page.cc
	* poppler/Page.h
	* poppler/SplashOutputDev.cc
	* poppler/SplashOutputDev.h
	* poppler/TextOutputDev.cc
	* poppler/TextOutputDev.h
	* qt/poppler-page.cc
	* qt4/src/poppler-page.cc
	* splash/Splash.cc
	* splash/Splash.h
	* splash/SplashBitmap.cc
	* splash/SplashBitmap.h
	* splash/SplashPattern.cc
	* splash/SplashPattern.h
	* splash/SplashState.cc
	* splash/SplashState.h
	* splash/SplashTypes.h
	* test/gtk-cairo-test.cc
	* test/gtk-splash-test.cc
	* test/pdf-inspector.cc: Last xpdf 3.01 merges
	

2005-10-16  Kristian Høgsberg  <krh@redhat.com>

	* poppler/poppler-config.h.in (GCC_PRINTF_FORMAT): Remove evil
	space character in macro definition.

2005-10-16  Albert Astals Cid  <aacid@kde.org>

	* splash/SplashXPathScanner.cc: Merge from xpdf 3.01
	* splash/SplashScreen.[cc|h]: Merge from xpdf 3.01
	* splash/SplashFTFont.cc: Merge from xpdf 3.01
	* poppler/Annot.[cc|h]: Merge from xpdf 3.01
	* poppler/FontInfo.cc
	* poppler/Page.cc:
	* poppler/PSOutputDev.cc: Changes needed due to Annot changes
	* poppler/Function.[cc|h]: Merge from xpdf 3.01
	* poppler/Stream.[cc|h]: Merge from xpdf 3.01
	* poppler/GfxFont.cc: Merge from xpdf 3.01
	
2005-10-05  Kristian Høgsberg  <krh@redhat.com>

	* glib/poppler-page.cc (poppler_page_render_to_ps): Fix another
	off-by-one page number error (#4555).

2005-09-26  Marco Pesenti Gritti  <mpg@redhat.com>

	* glib/poppler-action.cc:

	Initialize window title even if the action is unknown

2005-09-26  Marco Pesenti Gritti  <mpg@redhat.com>

	* glib/poppler-action.cc:
	* glib/poppler-action.h:

	Implement launch action

2005-09-20  Albert Astals Cid  <aacid@kde.org>

	* poppler/GlobalParams.[cc|h]: Merge from xpdf 3.01
	* poppler/Link.cc: Merge from xpdf 3.01
	* poppler/Parser.cc: Merge from xpdf 3.01
	* poppler/TextOutputDev.[cc|h]: Merge from xpdf 3.01
	* poppler/UnicodeMap.cc: More grealloc -> greallocn
	* poppler/UnicodeTypeTable.cc: Merge from xpdf 3.01
	* poppler/XRef.cc: Merge from xpdf 3.01

2005-09-20  Marco Pesenti Gritti  <mpg@redhat.com>

	* poppler/XRef.cc:

	Remove duplicated initialization

2005-09-20  Marco Pesenti Gritti  <mpg@redhat.com>

	* poppler/GlobalParams.cc:

	s/G/Goo in not yet compiled plugins code 

2005-09-20  Marco Pesenti Gritti  <mpg@redhat.com>

	* poppler/Makefile.am:

	Add XPDFPlugin*. Thanks to TSDgeos that noticed this.

	* poppler/XpdfPluginAPI.cc:

	Fixup

2005-09-16  Marco Pesenti Gritti  <mpg@redhat.com>

	* poppler/PDFDoc.cc:
	* poppler/PDFDoc.h:
	* poppler/XRef.cc:
	* poppler/XRef.h:

	Merge more from 3.01

2005-09-16  Marco Pesenti Gritti  <mpg@redhat.com>

	* poppler/XRef.cc:

	Merge some initialization that I lost before

2005-09-16  Marco Pesenti Gritti  <mpg@redhat.com>

	* poppler/XRef.cc:

	Merge change from 3.01

2005-09-16  Marco Pesenti Gritti  <mpg@redhat.com>

	* poppler/CharCodeToUnicode.cc:
	* poppler/CharCodeToUnicode.h:

	Improvements from xpdf 3.01

2005-09-16  Marco Pesenti Gritti  <mpg@redhat.com>

	* poppler/CMap.cc:

	Improvements from xpdf 3.01

2005-09-16  Marco Pesenti Gritti  <mpg@redhat.com>

	* poppler/NameToUnicodeTable.h:
	* poppler/UnicodeTypeTable.cc:
	* poppler/UnicodeTypeTable.h:

	Merge some unicode table changes from xpdf 3.01

2005-09-16  Marco Pesenti Gritti  <mpg@redhat.com>

	* poppler/SplashOutputDev.h:
	* splash/Splash.cc:
	* splash/Splash.h:

	Modified region support from xpdf 3.01

2005-09-16  Marco Pesenti Gritti  <mpg@redhat.com>

	* goo/Makefile.am:
	* poppler/DCTStream.h:
	* poppler/Decrypt.cc:
	* poppler/Decrypt.h:
	* poppler/FlateStream.h:
	* poppler/GlobalParams.cc:
	* poppler/GlobalParams.h:
	* poppler/Makefile.am:
	* poppler/PDFDoc.cc:
	* poppler/PDFDoc.h:
	* poppler/Parser.cc:
	* poppler/Parser.h:
	* poppler/Stream.cc:
	* poppler/Stream.h:
	* poppler/XRef.cc:
	* poppler/XRef.h:
	* poppler/poppler-config.h.in:

	Merge security plugins support from xpdf 3.01

2005-09-16  Marco Pesenti Gritti  <mpg@redhat.com>

	* configure.ac:
	* goo/Makefile.am:
	* splash/Makefile.am:
	* splash/SplashFTFont.cc:
	* splash/SplashMath.h:
	* splash/SplashTypes.h:
	* goo/FixedPoint.cc:
	* goo/FixedPoint.h:

	Merge support for fixed point

2005-09-16  Marco Pesenti Gritti  <mpg@redhat.com>

	* poppler/ArthurOutputDev.cc:
	* poppler/CairoFontEngine.cc:
	* poppler/TextOutputDev.cc:
	* poppler/UnicodeMap.cc:

	Use mallocn when possible

2005-09-16  Albert Astals Cid  <aacid@kde.org>
	* splash/: Some merges from xpdf 3.01

2005-09-16  Albert Astals Cid  <aacid@kde.org>
	* configure.ac
	* splash/SplashFTFontEngine.[cc|h]
	* poppler/CairoFontEngine.[cc|h]: Merge the xpdf 3.01 change that uses
	runtime detection of freetype version

2005-09-15  Albert Astals Cid  <aacid@kde.org>
	* poppler/: Some minor merges from xpdf 3.01

2005-09-14  Albert Astals Cid  <aacid@kde.org>
	* fofi/
	* poppler/PSOutputDev.[cc|h]: Merge all xpdf 3.01 changes in fofi

2005-09-06  Kristian Høgsberg  <krh@redhat.com>

	* configure.ac: Enable A4_PAPER and OPI_SUPPORT by default.  There
	is no reason to not enable OPI and the paper size should be
	controlled by the application.

	* test/Makefile.am (EXTRA_DIST): Add pdf-operators.c

2005-09-03  Brad Hards  <bradh@frogmouth.net>

	* qt4/tests/ :
	* configure.ac: switch qt4 unit tests to use QtTestLib, a more
	capable system, and easier to maintain.

2005-09-02  Kristian Høgsberg  <krh@redhat.com>

	* glib/poppler-page.cc: Apply Marcos rotation fix.

2005-08-31  Brad Hards  <bradh@frogmouth.net>

	* poppler/JArithmeticDecoder.cc
	* poppler/JArithmeticDecoder.h
	* poppler/JBIG2Stream.cc
	* poppler/JBIG2Stream.h: merge in some of the JBIG2 changes from
	xpdf 3.0.1.


2005-08-29  Kristian Høgsberg  <krh@redhat.com>

	* configure.ac (HAVE_FREETYPE_H): Patch from Hiroyuki Ikezoe: Set
	HAVE_FREETYPE_217_OR_OLDER to 0 if we found freetype using
	pkg-config (#4223).

2005-08-28  Brad Hards  <bradh@frogmouth.net>

	* fofi/FoFiTrueType.cc: 
	* goo/GooHash.cc:
	* goo/GooHash.h:
	* goo/GooList.cc:
	* goo/GooList.h:
	* goo/GooString.cc:
	* goo/GooString.h:
	* goo/gmem.c: merge the Goo* improvements from xpdf 3.0.1. This
	change is based on martink's work (7-xpdf-3.01-goo-improvements.patch)
	with some tweaking by me.

2005-08-27  Jeff Muizelaar  <jeff@infidigm.net>

	* poppler/FlateStream.cc: Fix predictor leak.

2005-08-27  Jeff Muizelaar  <jeff@infidigm.net>

	* configure.ac: Disable the zlib-based decoder by default. See #3948.

2005-08-27  Brad Hards  <bradh@frogmouth.net>

	* Merge the gmalloc -> gmallocn changes from xpdf 3.0.1. This
	change is based on martink's work (13-xpdf-3.01-goo-allocn.patch)
	with some tweaking by me. There may be some residual gmallocn
	changes still to be merged.

2005-08-24  Martin Kretzschmar  <martink@gnome.org>

	* configure.ac: add /usr/include/qt4 to qt4_incdirs. That's what
	Debian and Ubuntu use. Maybe we should just use pkg-config. If
	it's usable with qt4.

	* test/.cvsignore: ignore pdf_inspector binary.

2005-08-24  Kristian Høgsberg  <krh@redhat.com>

	* poppler/TextOutputDev.cc: Push rotation argument down to
	GfxState constructor.  This is still not completely functional yet.

	* glib/poppler-page.cc (poppler_page_render_selection): Add
	rotation argument so API is useful.  Not yet implemented.
	(poppler_page_prepare_output_dev): Patch from Marco to fix
	rotation using the cairo backend.

Tue Aug 23 17:21:02 2005  Jonathan Blandford  <jrb@redhat.com>

	* test/Makefile.am (gtk_cairo_test_LDADD): add
	FREETYPE_{CFLAGS,LIBS} to the cairo deps
	
Tue Aug 23 13:38:01 2005  Jonathan Blandford  <jrb@redhat.com>

	* configure.ac:
	* poppler/Gfx.cc:
	* poppler/Gfx.h:
	* poppler/GlobalParams.cc:
	* poppler/GlobalParams.h:
	* poppler/Makefile.am:
	* poppler/OutputDev.cc:
	* poppler/OutputDev.h:
	* poppler/ProfileData.cc:
	* poppler/ProfileData.h:
	* test/Makefile.am:
	* test/pdf-inspector.cc:
	* test/pdf-inspector.glade:
	* test/pdf-operators.c: Initial cut at a pdf inspector.  This
	should help us look at PDF files.

2005-08-22  Kristian Høgsberg  <krh@redhat.com>

	* glib/poppler-page.cc:
	* glib/poppler-page.h:
	* glib/poppler-private.h:
	* glib/test-poppler-glib.c: Patch from Marco to simplify the glib
	rotation API.

2005-08-21  Kristian Høgsberg  <krh@redhat.com>

	* poppler/Makefile.am (INCLUDES): Add FREETYPE_CFLAGS.

	* configure.ac: Make freetype check use pkg-config if possible.

2005-08-17  Kristian Høgsberg  <krh@redhat.com>

	* poppler/GfxFont.cc: Add fix discussed in #3131 to only use the
	MacRoman char map if the font has one or the font dicts specifies
	/MacRoman.

2005-08-08  Albert Astals Cid  <aacid@kde.org>

	* poppler/PDFDoc.cc: Improve the checking for %%EOF

2005-08-06  Kristian Høgsberg  <krh@redhat.com>

	* glib/poppler-page.cc:
	* glib/poppler-page.h: Use GdkColor for specifying selection
	colors, we alreay depend on GDK anyway.

2005-08-06  Albert Astals Cid  <aacid@kde.org>

	* poppler/PDFDoc.cc: Increase the range for searching %%EOF up to
	the 1024 bytes pdf spec says adobe checks for, needed
	to work with http://bugs.kde.org/show_bug.cgi?id=110034 and some other
	private pdf i got sent

2005-08-06  Brad Hards  <bradh@frogmouth.net>

	* qt4/src/poppler-document.cc:
	* qt4/src/poppler-qt4.h: Add password arguments to document
	constructor.

	* qt4/src/Doxyfile: Add define so doxygen can extract the
	API for Qt4 bindings again.

	* qt4/tests/test-password-qt4.cpp: new test framework for
	encrypted files.

2005-08-05  Kristian Høgsberg  <krh@redhat.com>

	* poppler/TextOutputDev.cc (visitLine): Round selection
	coordinates in device space, so selection isn't fuzzy.

	* poppler/GfxState.cc: 
	* poppler/GfxState.h: Add simple Matrix class.

2005-08-05  Kristian Høgsberg  <krh@redhat.com>
	
	* glib/poppler-page.cc:
	* glib/poppler-page.h:
	* poppler/TextOutputDev.cc:
	* poppler/TextOutputDev.h: Propagate selection colors to the glib API.

2005-08-04  Brad Hards  <bradh@frogmouth.net>

	* poppler/ArthurOutputDev.cc: Fix problem with drawing filled objects
	that was introduced in Rev 1.4.

2005-08-03  Brad Hards  <bradh@frogmouth.net>

	* qt4/tests/test-poppler-qt4.cpp (keyPressEvent): add support for
	page-up / page-down keys to change which page is displayed, and
	q to quit.

2005-08-01  Albert Astals Cid  <aacid@kde.org>

	* poppler/DCTStream.[cc|h]: Fix problem in the patch to fix #3299

2005-08-01  Kristian Høgsberg  <krh@redhat.com>

	Patch from Dan Winship <danw@novell.com>
	
	* glib/poppler-page.cc (poppler_page_copy_to_pixbuf): Set alpha to
	0xff (opaque), not 0x00.

2005-08-01  Brad Hards  <bradh@frogmouth.net>

	* poppler/ArthurOutputDev.cc: Fix up the fill problem with
	drawing text, where the "middle" of glyphs with a "hole" 
	(like d, o, p, b, g) got filled. Also remove some debugging
	code. The glyphs are still ugly though.

2005-07-31  Brad Hards  <bradh@frogmouth.net>

	* poppler/ArthurOutputDev.cc:  An initial version of proper
	font handling, based on work by Albert Astals Cid. I changed
	it to stroke the glyphs based on the SplashPath. In the longer
	term, Arthur should use FreeType paths directly - hopefully
	that will be less ugly, and not fill everything.

2005-07-29  Brad Hards  <bradh@frogmouth.net>

	* qt4/tests: add test cases for version and facing pagelayout.
	Also updated .cvsignore for these and a couple of older files.

	* poppler/ArthurOutputDev.cc (startPage): Make sure page is
	filled white. Earlier versions of Qt4 seemed to have an
	eggshell coloured background, but it changed to black at 
	some point.

	* poppler/ArthurOutputDev.cc: remove a couple more TODOs,
	based on current Qt4 working OK.

2005-07-29  Kristian Høgsberg  <krh@redhat.com>

	* poppler/TextOutputDev.cc: Finish TextSelectionDumper class for
	extracting the text from a selection.  Add
	TextPage::getSelectionText() and TextOutputDev::getSelectionText()
	methods to expose the new functionality.

	* glib/poppler-page.cc (poppler_page_get_text): Use
	TextOutputDev::getSelectionText() to get the text from the
	selection.

	* glib/poppler-document.cc (poppler_document_new_from_file): 
	* glib/poppler-page.cc (_poppler_page_new): Add extra NULL to
	g_object_new() constructor to silence gcc warning about missing
	sentinel.

2005-07-28  Albert Astals Cid  <aacid@kde.org>

	 * poppler/PageLabelInfo.[cc|h]: Fix memory leaks

2005-07-28  Albert Astals Cid  <aacid@kde.org>

	 * glib/poppler-document.cc:
	 * poppler/CairoFontEngine.[cc|h]:
	 * poppler/CairoOutputDev.cc:
	 * poppler/GlobalParams.[cc|h]:
	 * poppler/SplashOutputDev.[cc|h]:
	 * qt/poppler-document.cc:
	 * qt4/src/poppler-document.cc:
	 * test/gtk-cairo-test.cc:
	 * test/gtk-splash-test.cc:
	   Use fontconfig for finding which font use for not embeded fonts

2005-07-28  Kristian Høgsberg  <krh@redhat.com>

	* poppler/poppler-config.h.in: Add GCC_PRINTF_FORMAT macro to
	annotate printf-like functions (#3638).
	
	* poppler/Error.h: Add GCC_PRINTF_FORMAT to error().

	* poppler/PSOutputDev.h: Add GCC_PRINTF_FORMAT to
	PSOutputDev::writePSFmt().

	* poppler/PSOutputDev.cc, poppler/GlobalParams.cc: Quiet new
	printf warnings.

	* poppler/TextOutputDev.cc (TextBlock::visitSelection): Assign
	start and stop coordinates in one place so we don't assign the
	same point to both in some corner cases.
	(TextWord::visitSelection): Initialize begin to len, not len + 1
	to fix crash.

	(TextWord::visitSelection, TextLine::visitSelection): Change
	selection trigger; now midpoint of glyph must be included in
	selection area for glyph to be in selection.

2005-07-27  Martin Kretzschmar  <martink@gnome.org>

	* poppler/PSOutputDev.cc (PSOutputDev): change the constructor to
	take paper size and duplex setting parameters.
	(init): add paper size and duplex parameters.
	(writeDocSetup): add duplex parameter.

	* poppler/PSOutputDev.h: update declarations.

	* glib/poppler-private.h (struct _PopplerPSFile): store necessary
	information to eventually construct a PSOutputDev.

	* glib/poppler-page.cc (poppler_page_render_to_ps): initialize the
	output dev if it doesn't exist yet.

	* glib/poppler-document.cc (poppler_ps_file_new): don't create the
	PSOutputDev here, just store filename and page range.
	(poppler_ps_file_set_paper_size, poppler_ps_file_set_duplex): new
	functions.
	(poppler_ps_file_free): free the filename which we strdup now.

	* glib/poppler-document.h: add prototypes.

2005-07-26  Albert Astals Cid  <aacid@kde.org>

	 * qt/test-poppler-qt-cpp: Fix mem leak

2005-07-26  Kristian Høgsberg  <krh@redhat.com>

	* fofi/FoFiType1.cc: Make check for end of encoding array a bit
	more liberal so we don't crash on complex encoding arrays.

2005-07-25  Albert Astals Cid  <aacid@kde.org>

	* poppler/DCTStream.cc: Work on bad jpeg data that have garbage before
	the start marker. Fixes bug #3299

2005-07-22  Albert Astals Cid  <aacid@kde.org>

	* poppler/CairoFontEngine.cc: Fix mem leak. Reported in bug #3586 by
	Kjartan Maraas, initial patch by Martin Kretzschmar.

2005-07-22  Albert Astals Cid  <aacid@kde.org>

	* qt/test-poppler-qt.cpp: Make it possible to change the displayed
	page using Up and Down keys

2005-07-22  Albert Astals Cid  <aacid@kde.org>

	* splash/Splash.cc: Fix bugs #3728 and #3750

2005-07-20  Martin Kretzschmar  <martink@gnome.org>

	* glib/poppler-document.cc (poppler_fonts_iter_get_name): if the
	font is a subset, strip the ABCDEF+ tag.
	(poppler_fonts_iter_get_full_name): does what the old get_name did.
	(poppler_fonts_iter_get_font_type, poppler_fonts_iter_is_embedded)
	(poppler_fonts_iter_is_subset): new wrappers.

	* glib/poppler-document.h (PopplerFontType): new enum.
	Update prototypes.

2005-07-15  Martin Kretzschmar  <martink@gnome.org>

	* test/gtk-cairo-test.cc: update for 2005-06-27 change to actually
	display something again.

2005-07-10  Brad Hards  <bradh@frogmouth.net>

	* poppler/ArthurOutputDev.cc: General cleanup - removing
	dead code, and some minor tweaks. No new features.

2005-07-08  Kristian Høgsberg  <krh@redhat.com>

	* glib/poppler-page.cc (poppler_page_set_selection_alpha): Add
	this function to initialize the alpha channel when using the
	splash backend.

	* poppler/TextOutputDev.cc (visitLine): Add missing scaling of
	intra-line selection edges.

2005-07-07  Kristian Høgsberg  <krh@redhat.com>

	* glib/poppler-page.cc (poppler_page_prepare_output_dev): Account
	for page rotation when creating the cairo surface.

2005-07-06  Kristian Høgsberg  <krh@redhat.com>

	* glib/poppler-page.cc (poppler_page_copy_to_pixbuf): Add out of
	bounds checking (from Marco).

2005-07-07  Brad Hards  <bradh@frogmouth.net>

	* qt4/src/poppler-document.cc: 
	* qt4/src/poppler-qt4.h: Add pageLayout() function for Qt4
	bindings

	* qt4/tests/check_pagelayout_single.cpp:
	* qt4/tests/check_pagelayout_none.cpp:
	* Makefile.am: Add unit tests for pageLayout()

	* glib/poppler-document.cc (convert_page_mode): Update to
	reflect the Catalog API change. I'm not that good at glib,
	so this has a non-zero chance of being pure crackrock.

	* poppler/Catalog.cc:
	* poppler/Catalog.h: update page mode options to PDF 1.6

	* qt4/src/poppler-qt4.h:
	* qt4/src/poppler-document.cc: add Qt4 bindings for additional 
	pageMode() value created by change above

	* qt4/src/poppler-qt4.h: minor updates to API docs.
	
	* qt4/tests/Makefile.am:
	* qt4/tests/check_pagemode_*.cpp: unit tests for Qt4 pageMode() call
	and associated enum. This is the initial checkin for these files

2005-07-06  Albert Astals Cid  <aacid@kde.org>

	* poppler/PDFDoc.[cc|h]: Add checkFooter to check document ends with
	%%EOF
	* poppler/GfxFont.[cc|h]: Extract family, stretch and weight from the
	font descriptor

2005-07-06  Brad Hards  <bradh@frogmouth.net>

	* qt4/tests/Makefile.am:
	* qt4/tests/check_linearised.cpp: Added unit test for linearised
	property

	* qt4/tests/poppler-fonts.cpp (main): update to reflect API change,
	and also to show "[none]" if the font is nameless.

	* qt4/src/poppler-document.cc (Poppler): 
	* qt4/src/poppler-qt4.h: remove the unicode translation bool,
	it is really an internal thing.

2005-07-05  Albert Astals Cid  <aacid@kde.org>

	* qt4/src/poppler-document.cc (Poppler): 
	* qt4/src/poppler-qt4.h: Don't crash with files that have fonts with
	no name, for example the one found at
	http://bugs.kde.org/show_bug.cgi?id=101520.

2005-07-05  Brad Hards  <bradh@frogmouth.net>

	* qt4/tests/check_author.cpp:
	* qt4/tests/check_permissions.cpp:
	* Makefile.am:
	* .cvsignore: add a couple more test cases
	
	* qt4/src/poppler-document.cc (Poppler): 
	* qt4/src/poppler-qt4.h: Add Qt4 bindings for the 
	additional user permission properties.

	* poppler/XRef.h:
	* poppler/Xref.cc:
	* poppler/PDFDoc.h: Add some more user permissions properties -
	high resolution printing, document assembly, extraction for
	accessibility and form completion.

2005-07-04  Brad Hards  <bradh@frogmouth.net>

	* qt4/src/poppler-page.cc: fix typo bug that
	prevented correct detection of upside down pages

	* qt4/tests/check-orientation.cpp: fix path to
	point to test module.
	
	* qt4/.cvsignore: update to reflect new files
	
	* qt4/tests/Makefile.am:
	* qt4/tests/poppler-fonts.cpp: initial import of a simple font
	metadata listing application.
	
	* qt4/src/poppler-qt4.h:
	* qt4/src/poppler-document.cc complete Qt4 font metadata handling
	
	* qt4/src/poppler-qt4.h:
	* qt4/src/poppler-page.cc: change the render API to make it more
	Qt-like.

	* qt4/tests/test-poppler-qt4.cpp:
	* qt4/tests/stress-poppler-qt4.cpp: update to reflect changes
	to render API
	
	* poppler/FontInfo.h/cc: make FontInfo::type() return a enum
	instead of a GooString. As discussed on mailing list, if you
	want a string representation, you get to make one at the bindings
	layer (ie typeName() didn't make the grade in the final patch)

	* qt4/tests/poppler-fonts.cpp (main): change order in test
	code to reflect actual testcase file

2005-07-01  Kristian Høgsberg  <krh@redhat.com>

	* poppler/TextOutputDev.cc: Make selection also work when dragging
	backwards in the text flow.  Currently this is a big pile of
	if-statements, and there is certainly room for improvement.

2005-06-30  Kristian Høgsberg  <krh@redhat.com>

	* glib/poppler-page.h: * glib/poppler-page.cc
	(poppler_page_copy_to_pixbuf): Fix splash compilation (patch from
	Marco).
	(poppler_page_render_to_pixbuf): Drop dest_x and dest_y
	coordinates from this function.  This functionality can be
	achieved using a sub-GdkPixbuf.

	* glib/test-poppler-glib.c (main): Update test case.

2005-06-29  Kristian Høgsberg  <krh@redhat.com>

	* glib/poppler-private.h: Move TextOutputDev.h include here from
	poppler-page.cc

2005-06-29  Kristian Høgsberg  <krh@redhat.com>

	* configure.ac:
	* glib/poppler-page.cc:
	* glib/poppler-page.h:
	* glib/poppler-private.h:
	* poppler/CairoOutputDev.cc:
	* poppler/CairoOutputDev.h:
	* poppler/Page.cc:
	* poppler/Page.h:
	* poppler/TextOutputDev.cc:
	* poppler/TextOutputDev.h: Add support for rendering real
	selection (based on text flow).

2005-06-28  Albert Astals Cid  <aacid@kde.org>
	
	* poppler/FontInfo.[cc,h]: Add FontInfo::getType()
	
2005-06-28  Albert Astals Cid  <aacid@kde.org>
	
	* poppler/ArthurOutputDev.cc: use transformation matrix for image
	rendering

2005-06-28  Brad Hards  <bradh@frogmouth.net>

	* .cvsignore:
	* qt4/.cvsignore:
	* qt4/src/.cvsignore:
	* qt4/tests/.cvsignore: update to reflect the Qt4 bindings.

2005-06-28  Brad Hards  <bradh@frogmouth.net>

	* qt4/:
	* Makefile.am:
	* configure.ac:
	* poppler-qt4.pc.in: Initial import of Qt4 bindings, based
	on the Qt3 bindings. API is still in flux.

	* poppler/AuthurOutputDev.[cc,h]:
	* poppler/Makefile.am: Initial import of Qt4 backend renderer. 
	Incomplete at this stage.

2005-06-27  Kristian Høgsberg  <krh@redhat.com>

	* poppler/CairoOutputDev.cc:
	* poppler/CairoOutputDev.h: Change CairoOutputDev to render to a
	given surface and let the user create that surface.
	
	* glib/poppler-document.cc:
	* glib/poppler-page.cc:
	* glib/poppler-private.h: Create the cairo image surface here
	instead and pass it to the CairoOutputDev for rendering.
	
	* poppler/CairoOutputDevImage.cc:
	* poppler/CairoOutputDevImage.h:
	* poppler/CairoOutputDevX.cc:
	* poppler/CairoOutputDevX.h:
	* poppler/Makefile.am: Remove specialized cairo output devices.

2005-06-26  Kristian Høgsberg  <krh@redhat.com>

	* poppler/CairoOutputDev.cc:
	* poppler/CairoOutputDev.h: Switch back to using drawChar() for
	text, but utilize the beginString() and endString() hooks so we
	can use cairo_show_glyphs() efficiently.

2005-06-26  Albert Astals Cid <aacid@kde.org>
	* qt/poppler-page.cc:
	* qt/poppler-page.h: Add PageTransition class and 
	PageTransition* Page::getTransition() const; to the qt frontend.

2005-06-26  Martin Kretzschmar  <martink@gnome.org>

	* glib/.cvsignore: add poppler-enums.[ch].

	* configure.ac: require glib 2.4+ for g_value_take_string and
	G_DEFINE_TYPE.

2005-06-25  Jeff Muizelaar  <jeff@infidigm.net>

	* poppler/Error.h: Maybe fix build on Solaris.

2005-06-20  Kristian Høgsberg  <krh@redhat.com>

	* NEWS:
	* configure.ac: Bump version to 0.3.3 and sum up changes since
	last release.

	* glib/poppler-page.cc (poppler_page_find_text): Initialize xMin
	and yMin to avoid referencing unintialized memory (#3582).

2005-06-20  Martin Kretzschmar  <martink@gnome.org>

	* glib/poppler-document.cc (info_dict_get_string): convert
	from PDFDocEncoding to UTF-8.

2005-06-20  Kristian Høgsberg  <krh@redhat.com>

	* glib/poppler-page.cc:
	* glib/poppler-page.h:
	* glib/poppler.h: Clean up glib rotation implementation and add a
	getter for rotation.  Patch from Marco.

2005-06-20  Kristian Høgsberg  <krh@redhat.com>

	* glib/poppler-document.cc:
	* poppler/FontInfo.cc: Fixes from Marco to handle fonts without
	name (typically type 3 fonts) and fix an iterator bug.

2005-06-20  Kristian Høgsberg  <krh@redhat.com>

	* glib/poppler-page.cc (poppler_page_get_link_mapping): Adjust
	link coordinates so they're relative to bounding box lower left
	corner (#3396).

2005-06-17  Kristian Høgsberg  <krh@redhat.com>

	* autogen.sh: Patch from Emil Soleyman-Zomalan to enable checks
	for automake >= 1.7 (#3554).

2005-06-15  Kristian Høgsberg  <krh@redhat.com>

	* glib/poppler-document.cc:
	* glib/poppler-document.h: Patch from Marco to get initial status
	(open or closed) for bookmark subtrees.

2005-06-13  Kristian Høgsberg  <krh@redhat.com>

	* glib/poppler-document.cc:
	* glib/poppler-document.h:
	* glib/poppler-private.h:
	* glib/poppler.h:
	* glib/test-poppler-glib.c:
	* poppler/Makefile.am: Patch from Marco to extract font info from
	document.

2005-06-08  Kristian Høgsberg  <krh@redhat.com>

	* poppler/CairoFontEngine.cc: Remember to delete tmpFileName.
	Patch from Nikolai Weibull (#3491).

2005-06-07  Kristian Høgsberg  <krh@redhat.com>

	* qt/test-poppler-qt.cpp: Add stdlib.h include for exit().

2005-06-02  Kristian Høgsberg  <krh@redhat.com>

	* poppler/TextOutputDev.h:
	* qt/poppler-qt.h: Patch from Stanislav Brabec <sbrabec@suse.cz>
	to fix gcc 4.0.1 warnings on undeclared friend classes.
	
	* test/gtk-splash-test.cc: Fix from Martin Kretzschmar
	<martink@gnome.org> to compile with OPI enabled (#2911).

2005-06-02  Kristian Høgsberg  <krh@redhat.com>

	Patch from Stanislav Brabec <sbrabec@suse.cz>:

	* configure.ac:
	* poppler-cairo.pc.in:
	* poppler-glib.pc.in:
	* poppler-qt.pc.in:
	* poppler-splash.pc.in: Misc fixes to pkg-config files.

2005-06-01  Jeff Muizelaar  <jeff@infidigm.net>

	* poppler/Error.cc:
	* poppler/Error.h: Make error handling function setable through
	setErrorFunction.

	Based on a patch by Albert Astals Cid.

2005-05-29  Kristian Høgsberg  <krh@redhat.com>

	* glib/*: Add more meta data properties to poppler document.
	Patch by Emil Soleyman-Zomalan (#3359).

2005-05-26  Kristian Høgsberg  <krh@redhat.com>

	* poppler/CairoOutputDev.cc (clip): Remove snapToGrid so clip()
	prototype matches what Gfx actually calls (fixes clipping).
	
	* poppler/CairoOutputDev.cc: Update fill color, stroke color, fill
	opacity and stroke opacity from GfxState on restore, since they
	aren't handled by cairo_restore() (#3362).

	* poppler/CairoOutputDev.cc: Comment out tolerance setting until
	we figure out how cairo settings relate to pdf settings.

	* poppler/CairoOutputDev.cc: Support fill and stroke opacity.
	
	* poppler/GfxState.cc: 
	* poppler/GfxState.h: Add GfxColorSpace::getRGBLine here and
	implement in subclasses.

	* poppler/CairoOutputDev.cc (drawImage): Use getRGBLine here.

Mon May 23 00:22:41 2005  Jonathan Blandford  <jrb@redhat.com>

	* glib/poppler-document.h: Add a permissions flag to the glib
	bindings.

2005-05-21  Kristian Høgsberg  <krh@redhat.com>

	* glib/poppler-document.cc (poppler_ps_file_new): Fix off-by-one
	error spotted by Jürg Billeter.

2005-05-20  Kristian Høgsberg  <krh@redhat.com>

	* poppler/CairoOutputDev.cc: Account for different row vs. column
	vector conventions between cairo and poppler.

	* poppler/CairoFontEngine.cc: Only get the code to gid map if
	we're using freetype 2.1.7 or older (#3340).

2005-05-19  Kristian Høgsberg  <krh@redhat.com>

	* poppler/CairoFontEngine.cc: Only cast to Gfx8BitFont when we
	know for sure we have a truetype font.
	GfxCIDFont::getCIDToGIDLen() can return 0 in which case codeToGID
	will be NULL, and we end up casting it to a Gfx8BitFont (#3265).

2005-05-18  Kristian Høgsberg  <krh@redhat.com>

	* configure.ac: Require cairo 0.5.0, bump release to 0.3.2.

	* NEWS: Sum up latest changes.

	* glib/poppler-document.cc (poppler_ps_file_new): Take a page
	range here instead of just number of pages.
	
2005-05-17  Kristian Høgsberg  <krh@redhat.com>

	* poppler/CairoOutputDevX.cc: 
	* test/gtk-cairo-test.cc: Chase the cairo xlib constructor again.

2005-05-16  Kristian Høgsberg  <krh@redhat.com>

	Patch from Christian Persch (#3300):
	
	* configure.ac: Check for glib-mkenums.

	* glib/Makefile.am (poppler-enums.h): Generate glib enums at
	compile time.

	* glib/poppler-enums.c:
	* glib/poppler-enums.h: Removed.

2005-05-16  Kristian Høgsberg  <krh@redhat.com>
	
	* test/gtk-cairo-test.cc: Update this test case also.

	* poppler/CairoOutputDevX.cc: Track changes to cairo Xlib surface
	constructors.

	* poppler/CairoFontEngine.cc (cairo_font_face_destroy): Make this
	static.

Thu May 12 23:10:45 2005  Jonathan Blandford  <jrb@redhat.com>

	* glib/poppler.gidl: add metadata file.

2005-05-12  Kristian Høgsberg  <krh@redhat.com>

	* poppler/CairoOutputDev.cc: 
	* poppler/CairoOutputDevX.cc: 
	* poppler/CairoOutputDevImage.cc: 
	* test/gtk-cairo-test.cc: Update to latest cairo changes, patch
	from Jens Taprogge (#3281)

2005-05-11  Kristian Høgsberg  <krh@redhat.com>

	* glib/poppler.cc (poppler_get_backend, poppler_get_version): Add
	these functions so it's easy to tell if poppler is using cairo or
	splash and what version.

	* glib/test-poppler-glib.c (main): Print out version and backend.

2005-05-06  Kristian Høgsberg  <krh@redhat.com>

	* glib/Makefile.am (libpoppler_glib_la_LIBADD): Link poppler-glib
	against poppler.

	* qt/Makefile.am (libpoppler_qt_la_LIBADD): Ditto for qt.

	* poppler-glib.pc (Libs): Drop -lpoppler from link.

	* poppler-qt.pc (Libs): Ditto for qt.

	* configure.ac: Test for both libqt-mt.la and libqt-mt.so in that
	order.

2005-05-04  Kristian Høgsberg  <krh@redhat.com>

	* poppler/CairoOutputDev.cc (CairoOutputDev::drawImageMask,
	CairoOutputDev::drawImage): Track cairo cvs API changes; use
	cairo_mask() and cairo_paint() for drawing image masks and images.

2005-05-04  Kristian Høgsberg  <krh@redhat.com>

	* poppler/CairoOutputDev.cc: Fix matrix convention confusion.

2005-05-04  Kristian Høgsberg  <krh@redhat.com>

	Patches from Albert Astals Cid:
	
	* qt/poppler-page.cc (getText): Use QString::fromUtf8() instead of
	implicit latin1 cast constructor.
	
	* qt/test-poppler-qt.cpp (main): Use a QLabel for showing text
	instead of qDebug.

Wed May  4 02:31:05 2005  Jonathan Blandford  <jrb@redhat.com>

	* glib/poppler-document.cc:
	* glib/poppler-document.h:
	* glib/poppler-enums.c: (poppler_permissions_get_type):
	* glib/poppler-enums.h:
	* glib/poppler-page.cc:
	* glib/poppler-page.h:
	* glib/poppler.h:

	Register a bunch of boxed types to test introspection, and for
	LBs.  Also, remove unused 'popper_document_save()' (-:

2005-05-01  Kristian Høgsberg  <krh@redhat.com>

	* poppler/CairoFontEngine.cc:
	* poppler/CairoFontEngine.h:
	* poppler/CairoOutputDev.cc: Back out workaround for cairo 0.4.0
	font API and port to new cairo head.

2005-05-01  Jeff Muizelaar  <jeff@infidigm.net>

	* splash/SplashFTFont.cc (SplashFTFont::getGlyphPath):
	Use FT_LOAD_NO_BITMAP to make sure we get outlines loaded instead
	of bitmaps for use in FT_Outline_Decompose.

	Patch from Albert Astals Cid.

2005-05-01  Jeff Muizelaar  <jeff@infidigm.net>

	* goo/gmem.c: (gmalloc), (grealloc), (gfree):
	* goo/gmem.h: make memory functions use size_t instead of int.
	
	Patch from Takashi Iwai through Albert Astals Cid.

2005-04-30  Jeff Muizelaar  <jeff@infidigm.net>

	* qt/poppler-document.cc (Document::unlock) :
	* qt/poppler-qt.h (Document::unlock):
	Add const to the password argument.

	Patch from Albert Astals Cid.

2005-04-30  Jeff Muizelaar  <jeff@infidigm.net>

	* fofi/FoFiType1.cc (FoFiType1::parse):
	Don't assume Encoding array of Type1 fonts end in "foo def".
	http://partners.adobe.com/public/developer/en/font/T1_SPEC.PDF says
	"This sequence of assignments must be followed by an instance of the
	token def or readonly; such a token may not occur within the sequence
	of assignments." so it must end with "readonly" "def" "readonly def"
	(That is what most fonts are using and this is why it was not
	crashing)

	Patch from Albert Astals Cid.

Fri Apr 29 14:54:44 2005  Jonathan Blandford  <jrb@redhat.com>

	* goo/GooTimer.h: New class to do simple timing checks.

	* glib/poppler-document.c: Patch from Martin Kretzschmar to really
	set the PDF version correct.  Third time's the charm.

2005-04-29  Kristian Høgsberg  <krh@bitplanet.net>

	* configure.ac: Bump release to 0.3.1.

	* NEWS: Write up news for 0.3.1 release.

2005-04-28  Kristian Høgsberg  <krh@redhat.com>

	Patch from Martin Kretzschmar:

	* poppler/GlobalParams.cc: use UTF-8 as the default text encoding.
	Fixes Bug 2934.

2005-04-27  Jeff Muizelaar  <jeff@infidigm.net>

	* configure.ac:
	* poppler/FlateStream.cc:
	* poppler/FlateStream.h:
	* poppler/Makefile.am:
	* poppler/Stream.cc:
	* poppler/Stream.h: Add a reimplementation of FlateStream using
	zlib.

2005-04-27  Kristian Høgsberg  <krh@redhat.com>

	* poppler/Catalog.cc (NameTree::lookup): Fix bsearch return value
	NULL check.  Found by Albert Astals Cid.

Tue Apr 26 13:13:42 2005  Jonathan Blandford  <jrb@redhat.com>

	* glib/test-poppler-glib.c (main): add a quick dump-to-text test.

2005-04-24  Kristian Høgsberg  <krh@redhat.com>

	* qt/Makefile.am (libpoppler_qt_la_SOURCES): Add poppler-private.h
	to SOURCES.

2005-04-23  Kristian Høgsberg  <krh@redhat.com>

	* poppler/CairoFontEngine.cc: Use the right fileName for loading
	CID fonts (#3114).

2005-04-22  Kristian Høgsberg  <krh@redhat.com>

	* configure.ac: Actually commit version number bump.

2005-04-22  Martin Kretzschmar  <martink@gnome.org>

	* poppler/CairoFontEngine.cc: declare matrix variable before the
	first goto. Fixes build with gcc 3.3.

Fri Apr 22 00:01:40 2005  Kristian Høgsberg  <krh@redhat.com>

	* poppler/CairoFontEngine.cc: Hack around semi-broken cairo-0.4.0
	font API to fix the problem where some glyphs would show up at the
	wrong sizes.  We now create an FT_Face for each size and font
	combination we encounter, since an FT_Face can't be shared between
	several cairo_font_t.

Thu Apr 21 15:43:52 2005  Kristian Høgsberg  <krh@redhat.com>

	* poppler/Outline.cc: 
	* poppler/Outline.h: Implement the documented behaviour for
	Outline::getItems() and OutlineItem::getKids() and make
	documentation more precise (Patch from Marco).

Thu Apr 21 02:25:20 2005  Kristian Høgsberg  <krh@redhat.com>

	* poppler/CairoFontEngine.cc (CairoFont::getFont): Cache
	cairo_font_t's for a given CairoFont.  With this patch cairo will
	recognize glyphs coming from the same font as such and the glyph
	cache will actually work.

	* glib/poppler-document.cc (poppler_document_new_from_file): Add
	output device (cairo or splash) to PopplerDocument and initialize
	it in the constructor.

	* glib/poppler-page.cc (splash_render_to_pixbuf,
	cairo_render_to_pixbuf): Use output device from associated poppler
	document instead of creating a new one.

	* poppler-glib.pc.in (Requires): Add Requires: field.

	* poppler/Page.cc (loadThumb): Remove unecessary and buggy call to
	Stream::addFilters(), reported by Ryan Lortie (#3046).

2005-04-13  Jeff Muizelaar  <jrmuizel@nit.ca>

	* qt/poppler-page.cc (Page::getText):
	* qt/poppler-qt.h: add a getText method for getting
	the text on a page

	* qt/test-poppler-qt.c (PDFDisplay::PDFDisplay): 
	add the option to display the text on a page

	Patch from Albert Astals Cid.

Tue Apr 19 17:21:19 2005  Jonathan Blandford  <jrb@redhat.com>

	* glib/poppler-document.cc (poppler_document_get_property): Use
	%.2g instead.

Tue Apr 19 17:11:52 2005  Jonathan Blandford  <jrb@redhat.com>

	* glib/poppler-document.cc (poppler_document_get_property): Use %g
	instead of %f to avoid versioning like PDF-1.50000

Tue Apr 19 15:43:35 2005  Kristian Høgsberg  <krh@redhat.com>

	* glib/poppler-action.cc (_poppler_action_new): Handle NULL links
	gracefully (fix from Jeff).

Tue Apr 19 00:20:08 2005  Kristian Høgsberg  <krh@redhat.com>

	* poppler/Catalog.cc: Fix from Marco to make sure we always
	initialize Catalog::pageLabelInfo.

Sat Apr 16 14:53:15 2005  Jonathan Blandford  <jrb@redhat.com>

	* glib/Makefile.am: Create poppler-enums.[ch]

	* glib/poppler.h:
	* glib/poppler-page.cc:
	* glib/poppler-page.h:
	* glib/poppler-action.h: Try to clean up the headers a bit

	* glib/poppler-document.cc:
	* glib/poppler-document.h: Add support for document data.
	Implemented as a lot of GObject properties. 

	* glib/poppler-enums.c:
	* glib/poppler-enums.h: New autogenerated files.

	* glib/test-poppler-glib.c: Test the new document metadata.  Seems
	to work nicely, other than the PDF string and View Prefs.

	* poppler/Catalog.cc:
	* poppler/Catalog.h: Extend to support PageLayout.

2005-04-14  Kristian Høgsberg  <krh@redhat.com>

	* glib/poppler-page.cc:
	* glib/poppler-page.h:
	* glib/poppler-private.h:
	* glib/poppler.h: Patch from Marco Pesenti Gritti to set page
	orientaton.

2005-04-13  Jeff Muizelaar  <jrmuizel@nit.ca>

	* poppler/CairoOutputDevImage.cc (getBitmap): remove unused
	SplashBitmap. Patch from Albert Astals Cid.

2005-04-12  Kristian Høgsberg  <krh@redhat.com>

	* configure.ac: Add fontconfig to PKG_CHECK_MODULES for the cairo
	backend too, since we shouldn't depend on cairo.pc to pull that in
	for us.

	* poppler/Makefile.am (INCLUDES): Add $(splash_includes) to
	INCLUDES to make sure the fontconfig include path is added when
	using the splash backend.

2005-04-09  Jeff Muizelaar  <jrmuizel@nit.ca>

	* poppler-qt.h:
	* poppler-document.cc (okToPrint, okToChange, okToCopy):
	Patch from Albert Astals Cid adding more metadata exports

2005-04-08  Kristian Høgsberg  <krh@redhat.com>

	* poppler-qt.pc.in (Libs): Add -lpoppler to Libs.

2005-04-07  Jeff Muizelaar  <jrmuizel@nit.ca>

	* configure.ac: redo the qt tests from Albert Astals Cid

2005-04-07  Jeff Muizelaar  <jrmuizel@nit.ca>

	* qt/poppler-document.cc:
	* qt/poppler-page.cc:
	* qt/poppler-qt.h:
	Patch from Albert Astals Cid adding consts and exporting some more
	metadata.

2005-04-07  Kristian Høgsberg  <krh@redhat.com>

	* glib/poppler-document.cc: 
	* glib/poppler-document.h:
	* glib/poppler-page.cc:
	* glib/poppler-page.h:
	* glib/poppler-private.h: Print to PS support from Marco Pesenti
	Gritti.

Thu Apr  7 12:25:39 2005  Jonathan Blandford  <jrb@redhat.com>

	* configure.ac: check for qt, not glib, when enabling the qt
	subdir

2005-04-06  Jeff Muizelaar  <jrmuizel@nit.ca>

	* .cvsignore, glib/.cvsignore, qt/.cvsignore:
	Add more things to .cvsignore.
	Patch from Martin Kretzschmar.

2005-04-06  Jeff Muizelaar  <jrmuizel@nit.ca>

	* poppler-page.cc (Page::Page, Page::~Page):
	Construct and deconstruct the PageData object.
	Patch from Albert Astals Cid.

2005-04-06  Jeff Muizelaar  <jrmuizel@nit.ca>

	* Makefile.am, configure.ac: Add configuration for qt wrapper.
	
	* poppler-qt.pc.in:
	* qt/Makefile.am:
	* qt/poppler-document.cc:
	* qt/poppler-page.cc:
	* qt/poppler-private.h:
	* qt/poppler-qt.h:
	* qt/test-poppler-qt.cpp:
	New files.

2005-04-05  Kristian Høgsberg  <krh@redhat.com>

	* NEWS: Attempt to sum up changes since 0.1.2.

	* configure.ac: Bump release to 0.2.0, add AC_DEFINEs for cairo
	and splash availability.

	* poppler/CairoFontEngine.cc: Disable hinting.

	* glib/poppler-page.cc (poppler_page_render_to_pixbuf): Choose
	either splash or cairo rendering, based on configure choice.
	(cairo_render_to_pixbuf): New function to render using the cairo
	backend.
	(splash_render_to_pixbuf): Split out the splash code to this
	function.

2005-04-04  Kristian Høgsberg  <krh@redhat.com>

	* ChangeLog: Add this entry to test commit mailer script.
	
	* TODO: Add reminder about using PDF font descriptors with
	fontconfig.

	* configure.ac: Add checks for mkstemp() and mkstemps().

	* glib/poppler-page.cc (poppler_page_find_text): Reverse
	y-coordinates so we return PDF style coordinates.

	From Maro Pesenti Gritti <mpgritti@gmail.com>:
	
	* configure.ac, poppler/Makefile.am: Check for fontconfig when
	we're building the splash backend.

	* glib/poppler-page.cc (poppler_page_get_text): New function to
	select text on page.

2005-04-04  Kristian Høgsberg  <krh@redhat.com>

	* glib/poppler-page.cc (poppler_page_find_text): Reverse list of
	matches so we get them in the right order.

2005-04-03  Martin Kretzschmar  <martink@gnome.org>

	* poppler/DCTStream.h: Wrap #include <jpeglib.h> in extern "C"
	Fixes build with unpatched libjpeg.

2005-04-02  Jeff Muizelaar  <jrmuizel@nit.ca>

	* poppler/Page.h:
	* poppler/Page.cc (Page::Page):
	Some initial infrastructure for supporting transitions.

2005-03-31  Kristian Høgsberg  <krh@redhat.com>
	
	* glib/poppler-page.cc (poppler_page_render_to_pixbuf): Clip
	output to destination pixbuf and fix RGB order.

2005-03-31  Kristian Høgsberg  <krh@redhat.com>

	* glib/poppler-page.cc (poppler_page_find_text): New function to
	seach a page for occurrences of a given text string.

	* glib/poppler-page.cc: Add g_return_if_fail() checks to a couple
	of functions.
	
Thu Mar 31 00:26:20 2005  Jonathan Blandford  <jrb@redhat.com>

	* glib/poppler-page.cc:
	* glib/poppler-page.h (poppler_page_get_link_mapping,
	poppler_page_free_link_mapping): New functions to get a mapping of
	links to locations on the current document.

2005-03-30  Jeff Muizelaar <jrmuizel@nit.ca>

	* poppler/DCTStream.h: change x to unsigned int to eliminate
	comparision warning

2005-03-30  Jeff Muizelaar <jrmuizel@nit.ca>

	* poppler/Catalog.cc: delete pageLabelInfo on deconstruction

Tue Mar 29 23:07:17 2005  Jonathan Blandford  <jrb@redhat.com>

	* glib/poppler-page.h: Reformat.

Tue Mar 29 22:49:15 2005  Jonathan Blandford  <jrb@redhat.com>

	* glib/poppler-action.[ch]: New item to encapsulate links.
	* glib/poppler-document.[ch] (poppler_index_iter_get_action): New
	function to get the action.  Also, fix some warnings.
	* glib/poppler-private.h (_poppler_action_new): New function.
	* glib/test-poppler-glib.c: Fix warnings.

Tue Mar 29 02:36:00 2005  Jonathan Blandford  <jrb@redhat.com>

	* glib/poppler-document.[ch] (PopplerIndexIter): Add an iter to
	extract the index from the doc.  Includes a bad hack, for now.

Mon Mar 28 22:02:07 2005  Jonathan Blandford  <jrb@redhat.com>

	* glib/poppler-page.cc:
	* glib/poppler-page.h (poppler_page_get_thumbnail_size): New
	function. 
	* poppler-glib.pc.in: add -lpoppler-glib to the libs line.

2005-03-28  Kristian Høgsberg  <krh@redhat.com>

	* poppler/Page.cc (loadThumb): Backend agnostic method for
	extracting an embedded thumbnail iamge.

	* poppler/Dict.cc (lookupInt): New convenience method.

	* glib/poppler-page.cc (poppler_page_get_thumbnail): New glib
	function for getting the embedded thumbnail image for a page.

2005-03-25  Kristian Høgsberg  <krh@redhat.com>

	* configure.ac: Check for fontconfig for glib bindings.

2005-03-24  Kristian Høgsberg  <krh@redhat.com>

	* glib/Makefile.am: Use POPPLER_GLIB_CFLAGS and POPPLER_GLIB_LIBS
	instead of GTK_TEST_*.  Reported by Adam Jackson <ajax@nwnk.net>.

2005-03-23  Kristian Høgsberg  <krh@redhat.com>

	* poppler/Catalog.cc (indexToLabel, labelToIndex): Add stricter
	checking of incoming labels and indices.

	* glib/test-poppler-glib.c (main): Change test program to take the
	page label from the command line.

	* glib/poppler-page.cc:
	* glib/poppler-page.h: Add poppler_page_get_index() and rename
	popper_page_get_dimension() to popper_page_get_size()

2005-03-22  Kristian Høgsberg  <krh@redhat.com>

	* glib/poppler-document.cc: Implement poppler_document_save().
	
	* glib/poppler-document.h: Add prototype and format headers
	properly.

2005-03-22  Kristian Høgsberg  <krh@redhat.com>

	* configure.ac: Fix --disable-popper typo reported by Albert.
	Require exactly cairo 0.4 since CVS cairo has API changes.

2005-03-22  Kristian Høgsberg  <krh@redhat.com>

	* poppler/Array.cc:
	* poppler/Array.h: Add getString() convenience method.
	
	* poppler/Catalog.cc:
	* poppler/Catalog.h: Optimize lookup of named destinations.

2005-03-21  Kristian Høgsberg  <krh@redhat.com>
	
	* NEWS, TODO: Update these.

2005-03-21  Kristian Høgsberg  <krh@redhat.com>

	From Albert Astals Cid <tsdgeos@yahoo.es>:
	
	* poppler/Catalog.cc, poppler/Catalog.h: Parse PageMode setting
	from the Catalog dict and expose it through getPageMode() method.

2005-03-21  Kristian Høgsberg  <krh@redhat.com>

	* glib/poppler-document.cc:
	* glib/poppler-document.h: Expose the document title as a GObject
	property.
	
	* glib/poppler-page.cc: Expose the page label as a GObject
	property.
	
	* glib/poppler-private.h: Add the page index to PopplerPage.
	
	* glib/test-poppler-glib.c: Print out page label and document
	title.
	
	* poppler/Catalog.cc:
	* poppler/Catalog.h: Add page label accessors.
	
	* poppler/PageLabelInfo.cc:
	* poppler/PageLabelInfo.h: New files.

	* poppler/Makefile.am: Add new files to sources.
	
2005-03-20  Kristian Høgsberg  <krh@redhat.com>

	* glib/poppler-document.cc:
	* glib/poppler-page.h:
	* glib/poppler.cc:
	* poppler/Array.cc:
	* poppler/Array.h:
	* poppler/Catalog.cc: Fix up filenames in #include statements and
	comments.

2005-03-19  Kristian Høgsberg  <krh@redhat.com>

	Land the first bits of the glib wrapper.

	* Makefile.am:
	* configure.ac: Add new glib subdirectory and configure options
	for glib wrapper.
	
	* glib/Makefile.am:
	* glib/poppler-document.cc:
	* glib/poppler-document.h:
	* glib/poppler-page.cc:
	* glib/poppler-page.h:
	* glib/poppler-private.h:
	* glib/poppler.cc:
	* glib/poppler.h:
	* glib/test-poppler-glib.c:
	* poppler-glib.pc.in: New files.

2005-03-16  Jeff Muizelaar  <jrmuizel@nit.ca>

	From Dan Sheridan <dan.sheridan@postman.org.uk>

	* poppler/XRef.cc (XRef::checkEncrypted):
	The key length should be 5 for revision 2 documents.
	
2005-03-11  Kristian Høgsberg  <krh@redhat.com>

	From  Jeff Muizelaar  <jrmuizel@nit.ca>:
	
	* poppler/CairoOutputDev.cc (CairoOutputDev::drawImageMask): Use
	getLine instead of getPixel.
	
	* configure.ac: Add checks for libjpeg.

	* DCTStream.cc, DCTStream.h, Stream.cc, Stream.h, Makefile.am:
	Conditionally use libjpeg instead of xpdf jpeg decoder.
	
2005-03-10  Kristian Høgsberg  <krh@redhat.com>

	From Jeff Muizelaar <jrmuizel@nit.ca>:

	* poppler/CairoFontEngine.cc (CairoFontEngine::getFont):
	Don't print "Type 3 font!" message.

	* poppler/CairoOutputDev.cc (CairoOutputDev::drawImageMask):
	Enable image mask drawing and do it properly, albeit slowly.

	* poppler/CairoOutputDev.h
	(CairoOutputDev::interpretType3Chars): Return true so that 
	Gfx.cc turns type3 characters into calls to drawImageMask
	
2005-03-09  Kristian Høgsberg  <krh@redhat.com>

	* NEWS: Describe 0.1.2 (and 0.1.1) release.

	* configure.ac: Bump poppler version to 0.1.2

2005-03-09  Kristian Høgsberg  <krh@redhat.com>

	* configure.ac: Bump cairo requirement to 0.4.

2005-03-04  Kristian Høgsberg  <krh@redhat.com>

	Patch from Jeff Muizelaar <jrmuizel@nit.ca>.  Changed to allocate
	glyphs using gmalloc.

	* poppler/CairoOutputDev.cc (CairoOutputDev::drawString):
	Implement drawString instead of drawChar. This change should
	make clipping to a text path work and has a performance
	improvement. Currently the code is a little ugly because we
	can't concat matrices to cairo without losing our current font.

	* poppler/CairoOutputDev.h (CairoOutputDev::useDrawChar):
	Tell Gfx.cc that it should use drawString instead of drawChar.

2005-03-04  Kristian Høgsberg  <krh@redhat.com>

	* test/gtk-cairo-test.cc (view_load): 
	* test/gtk-splash-test.cc (view_load): Fix missing return
	statement, and remove unused variables.

	* configure.ac: Add configure option to enable the default KDE
	flags as described by Albert Astals Cid <tsdgeos@yahoo.es>.

	* TODO: Update with Jeff's items.

	* .cvsignore:
	* */.cvsignore: Add these to silence CVS.
	
	* configure.ac: Implement same check for gtk+-2.0 tests as for
	cairo.

2005-03-04  Kristian Høgsberg  <krh@redhat.com>

	* configure.ac: Only fail hard in check for cairo if the user
	specified --enable-cairo-output (from Brad Hards
	<bradh@frogmouth.net>).  Print summary of configure results at the
	end of configure script.

	* poppler/poppler-config.h: Remove this file (noticed by Brad
	Hards <bradh@frogmouth.net>).

2005-03-03  Kristian Høgsberg  <krh@redhat.com>

	Patch from Jeff Muizelaar <jrmuizel@nit.ca>:

	* poppler/CairoOutputDev.cc (CairoOutputDev::drawImage,
	CairoOutputDev::drawImageMask): destroy the image surface and
	free the image buffer.
	
2005-03-03  Kristian Høgsberg  <krh@redhat.com>

	* autogen.sh: Add -i to autoreconf invocation.

	* autogen.sh: Add to CVS.

2005-03-01  Kristian Høgsberg  <krh@redhat.com>

	* poppler/*.h: Take config.h out of header files.

	* configure.ac: Bump release to 0.1.1 to build a tar ball that
	works with CVS evince.

	* poppler.pc.in (Cflags): Change include dir to be poppler.

	* poppler/Makefile.am (poppler_include_HEADERS): Add splash and
	cairo headers.

2005-02-27  Kristian Høgsberg  <krh@redhat.com>

	* test/gtk-cairo-test.cc: Add cairo test case.

	* configure.ac, poppler/Makefile.am, poppler/Cairo*: Add Alex
	Larsons cairo output device.
	
	* configure.ac, Makefile.am: Make splash backend conditional. 
	
	* test/*: Add optional GdkRGB based test program (taken from
	evince).
	
	* goo/*: rename files and functions to GooHash, GooString etc. to
	avoid nasty glib clash.
	
	* poppler.pc.in: New file.

	* configure.ac: Combining bits from evince configure.ac and
	removing checks only required by the xpdf applications.

	* everything: Created poppler as a fork of xpdf.
