summaryrefslogtreecommitdiff
path: root/source
AgeCommit message (Collapse)Author
2016-03-14html: Use pair break table from UAX #14 to add soft breaks.Tor Andersson
Note: does not handle the case where certain classes of characters prohibit breaking at spaces between them.
2016-03-14ucdn: Add support for UAX#14 linebreaking classes.Sebastian Rasmussen
2016-03-14xml: Fix linebreak before closing tag test.Tor Andersson
2016-03-14mudraw: Print summary information to stderr.Tor Andersson
2016-03-14js: Document password and metadata.Tor Andersson
2016-03-14js: Add DisplayList and DisplayListDevice.Tor Andersson
2016-03-14js: Fix some reference counting errors.Tor Andersson
2016-03-14js: Add upcasting to fz_document from pdf_document.Tor Andersson
2016-03-14js: More object accessor functions.Tor Andersson
2016-03-14js: Add pdf.countPages and pdf.findPage.Tor Andersson
2016-03-14js: Add buffer.save() to write contents of buffer to file.Tor Andersson
2016-03-14js: Add obj.writeStream and writeRawStream to update stream contents.Tor Andersson
2016-03-14js: Add obj.readStream and obj.readRawStream.Tor Andersson
2016-03-14js: Add PDFObject.forEach(f) to iterate over dictionaries and arrays.Tor Andersson
2016-03-14Take pdf_obj argument to pdf_is_stream.Tor Andersson
2016-03-11Fix various warnings.Robin Watts
"Defined but not used" and "Set but not used" as seen with ndk-build.
2016-03-11Implement fz_text_language support functions.Robin Watts
Add code to convert to and from fz_text_language codes from ISO 639 language strings. No validation is carried out.
2016-03-11Rejig Bidirectional and Text code.Robin Watts
We move to using bidirectional "levels" throughout. This should give us better behaviour vis-a-vis nested l2r/l2r text. This also allows us to carry xps levels throughout with no loss of information. This also avoids the need to special case numbers. We accordingly carry more information into fz_text. As well as wmode, also hold additional details about the text spans. We now include the directionality of the bidi level text (either as derived from bidi code, or from the original document (e.g. xps)), the directionality of text (as specified in the original document (e.g. html)), and the language of the text (if specified in the original document).
2016-03-10Memento: Pull in latest fixes from gs.Robin Watts
2016-03-07Memento: List block details at closedown.Robin Watts
2016-03-07Fix signed/unsigned comparison warning.Robin Watts
2016-03-07murun: Avoid returning values from void functions.Robin Watts
2016-03-07Memento: Store/display backtraces with blocks.Robin Watts
If built with MEMENTO_DETAILS (on by default), we store the backtrace on every event that affects a block. Memento_details(address) will display the events that affected a block (typically malloc, {realloc}*, free), including the backtrace at each point. Windows and linux use different mechanisms for this. Windows loads a DLL and calls windows specific functions - no extra libraries are required. Linux also loads a shared object (libbacktrace.so). This is not present on all platforms, so on platforms where it is not available we just get addresses. These can be converted using addr2line (unless ASLR is enabled). In order for linux to be able to load libbacktrace.so we link in libdl. If this is not available, define HAVE_LIBDL=no when building the memento target.
2016-03-07Memento: Store callstacks for events.Robin Watts
Add Memento_info(address) that will show the details of a block (callstacks when it was allocatd, realloced, freed etc). This works on MSVC and GNUC using two different methods.
2016-03-03Memento: Speed improvements.Robin Watts
Avoid searching the linked list of blocks in order to remove a block by moving to a doubly linked list. This can be done without increasing the amount of memory in use by making better use of the 'parent' pointer that is only used when displaying nested blocks. Also store magic values in the 'child' and 'sibling' pointers (again only used when displaying nested blocks) so that we can quickly verify that a block is real before doing too much with it. Those changes drastically reduce the time required for MEMENTO_LEAKONLY runs (now the same order of magnitude as non memento runs). Normal memento runs are still very slow when the numbers of blocks increase due to the paranoid checking taking time. To ameliorate this a bit, we try 2 other things. Firstly, we optimise the searching of blocks by making use of int aligned tests. This still doesn't make much difference. Secondly, we introduce a new mechanism for the 'paranoia' levels. If a negative number is given for the paranoia level (say -n) then we first perform our overwrite checks after n events. We next test after 2n events, then 4n, then 8n etc. The new default paranoia level is set to be -1024. This makes a huge difference, and brings normal memento runs down to be comparable with debug runs.
2016-03-02js: Add PDF resource and page functions.Tor Andersson
2016-03-02js: Fix reference counting errors.Tor Andersson
2016-03-02js: Add fz_buffer.Tor Andersson
2016-03-02html: Collect passed state into a common struct.Sebastian Rasmussen
2016-03-02Move UTF-8 string length function to fitz.Sebastian Rasmussen
2016-03-02Fix mask flags to FT_Get_Advance in ft_width.Tor Andersson
2016-03-01js: Add PDF document and object access.Tor Andersson
2016-03-01Don't use pdf_page struct when creating pages.Tor Andersson
2016-03-01Rename pdf_new_ref to pdf_add_object.Tor Andersson
2016-03-01Rename pdf_close_document to pdf_drop_document.Tor Andersson
2016-03-01Add const to filename string.Tor Andersson
2016-03-01pdfcreate: Fix typo.Tor Andersson
2016-03-01Use FT_Get_Advance in when loading simple font widths in ft_width.Tor Andersson
2016-03-01Fix bug in pcl page size finding code.Robin Watts
Don't bale on the first 'large enough' match.
2016-03-01PCL output: Add code to guess paper sizes.Robin Watts
Guess paper sizes from bitmap dimensions unless the paper size has been specified. If unknown, depending on the properties of the printer, we'll either send a 'custom' paper size (followed by the page size in decipoints), or the next size up. Depending on the capabilities of the printer, we can optionally send orientation too.
2016-03-01Mudraw: Avoid clearing the output pcl file after every page.Robin Watts
2016-02-29pdf-font: Remove unused lockingRobin Watts
We no longer need to take the freetype lock here. We also never read the value assigned to face earlier in the routine, so remove that too.
2016-02-29Strip outlines when cleaning a pdf file.Robin Watts
Arrange to keep only the Outline entries that still refer to valid pages. More specifically, leaf outline entries that refer to pages that are elided are not dropped. Non leaf outline entries that refer to pages that have been elided are kept (for the sake of the children) but have NULL destinations.
2016-02-29js: Add struct accessors.Tor Andersson
Use image.getWidth() rather than image.width property access to match JNI interface.
2016-02-29js: Add "mutool run" tool to run javascript scripts.Tor Andersson
Use an API similar to the JNI bindings.
2016-02-29pdfwrite: Use Tm directly to set matrix.Tor Andersson
Don't mess with Td.
2016-02-29pdfwrite: Handle all fonts as CID fonts.Tor Andersson
2016-02-29pdfwrite: Look through own resource list first.Tor Andersson
Don't try creating the resource for each fill_text call.
2016-02-29Simplify ToUnicode CMap creation.Tor Andersson
Only allocate one scratch buffer, and no larger than it needs to be. Detect and warn when we can't create a ToUnicode CMap.
2016-02-29Fix pdf_add_cid_font_widths to work on glyph indices as intended.Tor Andersson
With an identity encoding, the glyph indices are the character codes.