{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":37978718,"defaultBranch":"master","name":"mupdf","ownerLogin":"ArtifexSoftware","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2015-06-24T10:41:35.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/13031723?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1721826056.0","currentOid":""},"activityList":{"items":[{"before":"5ad7dc198f9455b7794e73f5512d73bdc702ddbc","after":"fac9da1c7cd03776df1011e1e4cb168c33e7a194","ref":"refs/heads/master","pushedAt":"2024-08-05T16:01:34.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"chris-liddell","name":null,"path":"/chris-liddell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11627080?s=80&v=4"},"commit":{"message":"Bug 707907: Extend color converter mechanism.\n\nCope with DeviceN -> CMYK+Spots.","shortMessageHtmlLink":"Bug 707907: Extend color converter mechanism."}},{"before":"160a1effa36a8de9ed2a3ded33a549ee19b85f1c","after":"5ad7dc198f9455b7794e73f5512d73bdc702ddbc","ref":"refs/heads/master","pushedAt":"2024-08-05T14:01:39.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"chris-liddell","name":null,"path":"/chris-liddell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11627080?s=80&v=4"},"commit":{"message":"Bug 707907: Fix separation detection code.\n\nOur scanning of PDF files for separations was failing to find\nDeviceN colorspaces used within Shadings inside Patterns.\nFixed here.\n\nThis does not solve the bug, but is a step along the way.","shortMessageHtmlLink":"Bug 707907: Fix separation detection code."}},{"before":"87e554778a1092f6fc3b27411a6e60c024ca9f34","after":"160a1effa36a8de9ed2a3ded33a549ee19b85f1c","ref":"refs/heads/master","pushedAt":"2024-08-05T13:01:37.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"chris-liddell","name":null,"path":"/chris-liddell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11627080?s=80&v=4"},"commit":{"message":"Bug 707847: Update gray.icc.\n\nThe bug basically boils down to devicegray and devicergb not\nmatching up in quite the way you'd expect.\n\nGiven the following PDF fragment:\n\n 0.851 g\n 0 0 50 100 re f\n\n 0.851 0.851 0.851 rg\n 50 0 50 100 re f\n\nyou might reasonably expect them to render the same when drawing\nto an RGB device. Indeed GS and Acrobat give such identical\nresults.\n\nMuPDF gives a different result due to the gray.icc in use.\n\nGS has:\n\n default_gray.icc\n default_rgb.icc\n default_cmyk.icc\n\nand mupdf uses the latter 2 as rgb.icc and cmyk.icc respectively.\nOddly, mupdf is using ps_gray.icc from gs as gray.icc, leading to\na mismatch.\n\nTo solve this bug, we change gray.icc to be default_gray.icc too.\n\nGS has additional tricksy code to swap ps_gray/ps_rgb/ps_cmyk in\nand out when we enter/leave softmasks. Presumably this is important\nto get correct rendering of luminosity softmasks.\n\nMaybe that's why MuPDF was using ps_gray? This seems a half-hearted\nsolution at best. At least we are now consistent.\n\nAn alternative solution would be to use ps_gray/ps_rgb/ps_cmyk\nfrom gs as our gray/rgb/cmyk. Presumably there are reasons why\nMichael felt that was inappropriate for GS.\n\nDoing the same swapping of profiles is trickier for us than for\nGS, as GS knows the order of operations due to the way in which\nit is called. MuPDF is much 'freer' in that multiple threads\nmight be rendering different things with the same device profiles.\n\nI propose to ignore this potential problem until we actually have\nan example where it matters.","shortMessageHtmlLink":"Bug 707847: Update gray.icc."}},{"before":"9216c1867d899a72941b4fc10b9a44f9bfac8edc","after":"87e554778a1092f6fc3b27411a6e60c024ca9f34","ref":"refs/heads/master","pushedAt":"2024-08-05T11:03:15.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"chris-liddell","name":null,"path":"/chris-liddell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11627080?s=80&v=4"},"commit":{"message":"Bug 707925: Avoid SEGV on partially filled default colorspaces.","shortMessageHtmlLink":"Bug 707925: Avoid SEGV on partially filled default colorspaces."}},{"before":"bc8a7fb7bb2834e510b5c39d9441fbbbc685b4e5","after":"9216c1867d899a72941b4fc10b9a44f9bfac8edc","ref":"refs/heads/master","pushedAt":"2024-07-29T12:01:24.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"chris-liddell","name":null,"path":"/chris-liddell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11627080?s=80&v=4"},"commit":{"message":"Remember to drop softmask colorspace when running softmask.\n\nThis fixes OSS-fuzz issue 70699.","shortMessageHtmlLink":"Remember to drop softmask colorspace when running softmask."}},{"before":"b8415aec6a130c09ababed4f4f1ffd102b115c0d","after":"bc8a7fb7bb2834e510b5c39d9441fbbbc685b4e5","ref":"refs/heads/master","pushedAt":"2024-07-26T14:03:15.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"chris-liddell","name":null,"path":"/chris-liddell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11627080?s=80&v=4"},"commit":{"message":"gl: Add trace calls to set stamp annotation image.","shortMessageHtmlLink":"gl: Add trace calls to set stamp annotation image."}},{"before":"e62add4aa9f63f7de6a3305d35332f9322b0fb1f","after":"b8415aec6a130c09ababed4f4f1ffd102b115c0d","ref":"refs/heads/master","pushedAt":"2024-07-25T14:04:12.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"chris-liddell","name":null,"path":"/chris-liddell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11627080?s=80&v=4"},"commit":{"message":"Bug707859: Tweak text extraction\n\nWe were already allowing for a slight overlap in characters\nwhen extracting, but the test file in this bug has chars\nsqueezed together slightly more than we were expecting.\n\nConsider the following: (Diagram exploded vertically for\nclarity - in the test file the chars are on the same line).\n\n +--------+\n | |\n | |\n +--------+\n +--------+\n | |\n | |\n +--------+\n |<-s-|\n\n's' in the diagram is 'spacing' in the code.\n\nThe existing code copes with s being negative, if its absolute\nsize is smaller than SPACE_DIST (0.15). In this case s is around\n-3.5 which absolute is comfortably less than SPACE_MAX_DIST (0.8).\n\nSuch cases were falling into the 'just consider it as a new line'\ncase.","shortMessageHtmlLink":"Bug707859: Tweak text extraction"}},{"before":"04635d7679b6e76f880c744bea07d8dc4e2c4662","after":"f4141c1839fb94aa3d834f12717f3e347cf3c336","ref":"refs/heads/1.24.x","pushedAt":"2024-07-24T11:01:28.000Z","pushType":"push","commitsCount":27,"pusher":{"login":"chris-liddell","name":null,"path":"/chris-liddell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11627080?s=80&v=4"},"commit":{"message":"jni: Fix compilation errors during java build.\n\nThis was never caught in the review of commit\n113055096abdbde1996669061f64b6463421970e","shortMessageHtmlLink":"jni: Fix compilation errors during java build."}},{"before":"1e46ab83af1135093cce40bcad0d925d598d8d61","after":"e62add4aa9f63f7de6a3305d35332f9322b0fb1f","ref":"refs/heads/master","pushedAt":"2024-07-24T11:01:27.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"chris-liddell","name":null,"path":"/chris-liddell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11627080?s=80&v=4"},"commit":{"message":"jni: Fix compilation errors during java build.\n\nThis was never caught in the review of commit\n113055096abdbde1996669061f64b6463421970e","shortMessageHtmlLink":"jni: Fix compilation errors during java build."}},{"before":"cbe65e8144782a684e1fec56e5dd3dd26beaf65b","after":"1e46ab83af1135093cce40bcad0d925d598d8d61","ref":"refs/heads/master","pushedAt":"2024-07-23T14:02:24.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"chris-liddell","name":null,"path":"/chris-liddell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11627080?s=80&v=4"},"commit":{"message":"scripts/wrap/swig.py: fix c# bindings treatment of int64 on Linux.\n\nWe run swig with -DSWIGWORDSIZE64. This ensures that C long types such as\nuint64_t are mapped to C# long (was previously C# int).","shortMessageHtmlLink":"scripts/wrap/swig.py: fix c# bindings treatment of int64 on Linux."}},{"before":"ced91fdca45803ea9f9c68243bc69c22c19b9c19","after":"cbe65e8144782a684e1fec56e5dd3dd26beaf65b","ref":"refs/heads/master","pushedAt":"2024-07-22T16:04:40.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"chris-liddell","name":null,"path":"/chris-liddell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11627080?s=80&v=4"},"commit":{"message":"Bug 707890: Carry over structparent information when cleaning.\n\nWe were completely omitting the structure tree when copying.\nThis meant that information like \"ActualText\" was missing,\nresulting in problems when doing text extraction.\n\nHere we copy the entirety of the Structure Tree across, and\nregenerate the ParentTree so that the Page StructParents still\npoint to the right thing.\n\nWe do NOT cut the actual Structure Tree down, so the file remains\nlarger than it maybe needs to be - but it is at least correct now.","shortMessageHtmlLink":"Bug 707890: Carry over structparent information when cleaning."}},{"before":"8774462b23d4900a1aa3538220d0629cec4da689","after":"04635d7679b6e76f880c744bea07d8dc4e2c4662","ref":"refs/heads/1.24.x","pushedAt":"2024-07-19T13:00:49.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"chris-liddell","name":null,"path":"/chris-liddell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11627080?s=80&v=4"},"commit":{"message":"Fix function returning a void value.","shortMessageHtmlLink":"Fix function returning a void value."}},{"before":"cbd217d3701b5523db5b3db0a3510c16f17e0afa","after":"ced91fdca45803ea9f9c68243bc69c22c19b9c19","ref":"refs/heads/master","pushedAt":"2024-07-19T12:01:04.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"chris-liddell","name":null,"path":"/chris-liddell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11627080?s=80&v=4"},"commit":{"message":"Fix function returning a void value.","shortMessageHtmlLink":"Fix function returning a void value."}},{"before":"0bf5530722eb4230557a1902b5b43246fd579f33","after":"8774462b23d4900a1aa3538220d0629cec4da689","ref":"refs/heads/1.24.x","pushedAt":"2024-07-19T09:03:55.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"chris-liddell","name":null,"path":"/chris-liddell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11627080?s=80&v=4"},"commit":{"message":"Fix pdf_page_from_fz_page","shortMessageHtmlLink":"Fix pdf_page_from_fz_page"}},{"before":"f1cbd3838b29e66fae6647d6ddc80898016cbce2","after":"cbd217d3701b5523db5b3db0a3510c16f17e0afa","ref":"refs/heads/master","pushedAt":"2024-07-19T09:03:54.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"chris-liddell","name":null,"path":"/chris-liddell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11627080?s=80&v=4"},"commit":{"message":"Rename fz_document_as_pdf to fz_new_pdf_document_from_fz_document.\n\nBetter name. Use of the 'new' allows the SWIG rewriting to\nspot that it returns a new reference.","shortMessageHtmlLink":"Rename fz_document_as_pdf to fz_new_pdf_document_from_fz_document."}},{"before":"7e4da1bd44d38746ea7e718a0e63564aebdfe9e0","after":"0bf5530722eb4230557a1902b5b43246fd579f33","ref":"refs/heads/1.24.x","pushedAt":"2024-07-18T17:01:45.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"chris-liddell","name":null,"path":"/chris-liddell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11627080?s=80&v=4"},"commit":{"message":"Don't typecast between function pointers with different signatures.\n\nIt may be safe in some contexts, but...\n\n1) Explicit type casts hide errors.\n2) In WASM it will crash when function signatures are incompatible.","shortMessageHtmlLink":"Don't typecast between function pointers with different signatures."}},{"before":"72044938d0755f9f359b586d971650ac539352fe","after":"f1cbd3838b29e66fae6647d6ddc80898016cbce2","ref":"refs/heads/master","pushedAt":"2024-07-18T17:01:44.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"chris-liddell","name":null,"path":"/chris-liddell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11627080?s=80&v=4"},"commit":{"message":"Don't typecast between function pointers with different signatures.\n\nIt may be safe in some contexts, but...\n\n1) Explicit type casts hide errors.\n2) In WASM it will crash when function signatures are incompatible.","shortMessageHtmlLink":"Don't typecast between function pointers with different signatures."}},{"before":"2477b3833c9cb514130920d043a13f37551bd39a","after":"72044938d0755f9f359b586d971650ac539352fe","ref":"refs/heads/master","pushedAt":"2024-07-17T23:00:56.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"chris-liddell","name":null,"path":"/chris-liddell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11627080?s=80&v=4"},"commit":{"message":"scripts/wrap/cpp.py: fix recent breakage of C++ API build.\n\nWe update fz_document_handler_open() to match recent changes.","shortMessageHtmlLink":"scripts/wrap/cpp.py: fix recent breakage of C++ API build."}},{"before":"6f048d123556cbec843f19363dd89e77a72ca4aa","after":"2477b3833c9cb514130920d043a13f37551bd39a","ref":"refs/heads/master","pushedAt":"2024-07-17T17:01:26.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"chris-liddell","name":null,"path":"/chris-liddell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11627080?s=80&v=4"},"commit":{"message":"Memento: Add Memento_listLargeBlocks() function.\n\nThis lists the top 100 sized blocks in the system.\n\nAlso add a couple of Memento_labels.","shortMessageHtmlLink":"Memento: Add Memento_listLargeBlocks() function."}},{"before":"144808467b8483af194bebbbdec2682761f37bc6","after":"6f048d123556cbec843f19363dd89e77a72ca4aa","ref":"refs/heads/master","pushedAt":"2024-07-17T15:06:51.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"chris-liddell","name":null,"path":"/chris-liddell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11627080?s=80&v=4"},"commit":{"message":"Bug 707882: Rejig fz_shade storage of functions.\n\nPreviously we would sample the functions and store the values in\na float * 256 * (FZ_MAX_COLORS+1) sized table. This meant that\nshadings were ~34k each.\n\nHere, we change to storing the values in a float * 256 * stride\ntable (where stride is only as big as required - typically 4 or 5).\n\nThis saves a lot of memory.","shortMessageHtmlLink":"Bug 707882: Rejig fz_shade storage of functions."}},{"before":"711e82dde434dfe8f36feca88c5c4b9d70ab87ce","after":"144808467b8483af194bebbbdec2682761f37bc6","ref":"refs/heads/master","pushedAt":"2024-07-17T13:05:52.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"chris-liddell","name":null,"path":"/chris-liddell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11627080?s=80&v=4"},"commit":{"message":"Update document handler recogniser/opener interface.\n\nAllow the recogniser to pass back state that can be reused in\nthe opener.","shortMessageHtmlLink":"Update document handler recogniser/opener interface."}},{"before":"b89b44fef7be50d66373f55318fd80e90e3acf02","after":"711e82dde434dfe8f36feca88c5c4b9d70ab87ce","ref":"refs/heads/master","pushedAt":"2024-07-17T10:03:19.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"chris-liddell","name":null,"path":"/chris-liddell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11627080?s=80&v=4"},"commit":{"message":"Check nesting depth before pushing clip mark.\n\nWithout this the nesting depth might step outside the layer/clip stack.","shortMessageHtmlLink":"Check nesting depth before pushing clip mark."}},{"before":"65f283f2ac0445b15a106d565d999637aac9081a","after":"b89b44fef7be50d66373f55318fd80e90e3acf02","ref":"refs/heads/master","pushedAt":"2024-07-16T15:03:07.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"chris-liddell","name":null,"path":"/chris-liddell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11627080?s=80&v=4"},"commit":{"message":"Bug 707843: Fix display list handling of structure and metatext.\n\nThe nesting of structure and metatext is not neat w.r.t clipping\netc. To avoid failing to send structure and metatext in such cases\n(or to send a start without an end etc), just ignore clipping for\nthese.","shortMessageHtmlLink":"Bug 707843: Fix display list handling of structure and metatext."}},{"before":"113055096abdbde1996669061f64b6463421970e","after":"65f283f2ac0445b15a106d565d999637aac9081a","ref":"refs/heads/master","pushedAt":"2024-07-16T10:03:33.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"chris-liddell","name":null,"path":"/chris-liddell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11627080?s=80&v=4"},"commit":{"message":"Bug 707824: Emit properly nested clip and layer operations in PDF.\n\nIf BMC/EMC and q/Q pairs (that apply clipping) don't nest properly, warn\nand close the EMC either immediately (if badly nested one way) or at the\nnext Q (if badly nested the other way).\n\nExample 1:\n\tq\n\tBMC\n\tQ\t(close layer before this Q)\n\tEMC\t(ignore this EMC)\n\nExample 2:\n\tBMC\n\tq\n\tEMC\t(ignore this EMC)\n\tQ\t(close layer after this Q)\n\nAlso change SVG output to emit Inkscape specific layer attributes.\n\n---\n\nmc_depth tracks the level of BMC/EMC nesting in the content stream.\n\nnest_mark tracks the level of layer and clip calls that we've made to the fz_device.\n\nIf the q/Q and BMC/EMC are badly nested, we ignore some EMCs and save them\nuntil we hit the next Q. The check in do_end_layer only ends the layer if the\ndevice and content stream are \"in sync\".\n\nIf we're not in sync, we ignore the EMC. This can happen in two cases: either\nwe saw a Q too early, or we saw an EMC too early.\n\nIn the first case we have already popped the layer (so the EMC should be\ncompletely ignored).\n\nIn the second case the layer started before the clip and we cannot end the\nlayer just yet (so ignore the EMC until we see the Q and then pdf_grestore puts\nthe world back into order).\n\nThe loops around the pop_clip in pdf_grestore recover the syncing. The loop\nbefore closes any layers that need to be ended before the clip is popped (layer\nstarted with BMC inside the clip, but ends after the clip). The loop after\ncloses any layers that had the EMC inside the clip but were started with BMC\nbefore the clip mask was pushed.","shortMessageHtmlLink":"Bug 707824: Emit properly nested clip and layer operations in PDF."}},{"before":"a68d1c41267b10399fabb749657dc347984e9051","after":"113055096abdbde1996669061f64b6463421970e","ref":"refs/heads/master","pushedAt":"2024-07-11T20:00:58.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"chris-liddell","name":null,"path":"/chris-liddell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11627080?s=80&v=4"},"commit":{"message":"Revised version of pdf_specifics commit.\n\nPut pdf_specifics/pdf_document_from_fz_document back to how it\nwas before. This is because both the Java and the JS bindings\ndecide very early on in the lifecycle of a document whether they\nshould create a Document or a PDFDocument.\n\nThis is no good for documents that might take a while for the PDF\nversion to become available (say, because they are waiting for\na password to be presented).\n\nInstead, we add a new fz_document_as_pdf function that will\nreturn a (non-borrowed) reference to a pdf_document derived from\nthe original. If the original is a PDF, then it'll just return\nthe same document. If it's a document that has an underlying\nPDF representation it'll return a (different) pointer to that.\nOtherwise it will return NULL.","shortMessageHtmlLink":"Revised version of pdf_specifics commit."}},{"before":"cb3187fce9baa76ae0ca111b9dc5887da6d8ac11","after":"a68d1c41267b10399fabb749657dc347984e9051","ref":"refs/heads/master","pushedAt":"2024-07-11T12:01:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"chris-liddell","name":null,"path":"/chris-liddell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11627080?s=80&v=4"},"commit":{"message":"Change mechanism used for pdf_document_from_fz_document.\n\n(And pdf_specifics, which is the old name for the same thing).\n\nRather than comparing a function pointer, implement this using\na function. This means that so_doc_handler can implement this\ntoo, so people can get a pdf_document handle to the converted\nfile.","shortMessageHtmlLink":"Change mechanism used for pdf_document_from_fz_document."}},{"before":"dbc1b6c7ba008f6527eed6982eec5d4231b97cbd","after":"cb3187fce9baa76ae0ca111b9dc5887da6d8ac11","ref":"refs/heads/master","pushedAt":"2024-07-10T15:01:41.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"chris-liddell","name":null,"path":"/chris-liddell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11627080?s=80&v=4"},"commit":{"message":"scripts/: allow use of experimental python-3.13 on Github.\n\nscripts/wdev.py:\n WindowsVS:\n Minor change to put code inside try..catch in order to give slightly\n better diagnostics if we fail to find VS.\n Also find MSBuild.exe.\n WindowsPython:\n When looking for Python locations, also consider currently-running\n Python using code previously in scripts/wrap/__main__.py. This enables\n us to work with experimental python-3.13 on Github, where python-3.13\n is not available via `py`.\n\nscripts/wrap/__main__.py:\n Use only wdev for finding python paths etc.\n\nscripts/pipcl.py:\n Use recently-modified wdev PythonFlags.\n Some minor fixups to spelling etc.","shortMessageHtmlLink":"scripts/: allow use of experimental python-3.13 on Github."}},{"before":"e7befa73dda84a89f607d635a0634dc642677ab2","after":"7e4da1bd44d38746ea7e718a0e63564aebdfe9e0","ref":"refs/heads/1.24.x","pushedAt":"2024-07-10T00:04:14.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"chris-liddell","name":null,"path":"/chris-liddell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11627080?s=80&v=4"},"commit":{"message":"Fix ifdeffery in platform/java/Android.mk\n\nSpotted when trying to update the version of MuPDF used within\nSmartOffice builds.\n\nCredit to Mary Clayton.","shortMessageHtmlLink":"Fix ifdeffery in platform/java/Android.mk"}},{"before":"5973cabe76b5fd97ec61ee13966a239eb8cc65da","after":"dbc1b6c7ba008f6527eed6982eec5d4231b97cbd","ref":"refs/heads/master","pushedAt":"2024-07-09T19:05:26.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"chris-liddell","name":null,"path":"/chris-liddell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11627080?s=80&v=4"},"commit":{"message":"Tweak office_recognise_doc_content.\n\nOnly ever return 75 rather than 100. This allows other \"better\"\nhandlers to override us.","shortMessageHtmlLink":"Tweak office_recognise_doc_content."}},{"before":"53aae51af4eea14fabde144948ba61f7537053f9","after":"5973cabe76b5fd97ec61ee13966a239eb8cc65da","ref":"refs/heads/master","pushedAt":"2024-07-06T12:01:21.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"chris-liddell","name":null,"path":"/chris-liddell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11627080?s=80&v=4"},"commit":{"message":"Fix bug when setting text field values ends the PDF operation twice.\n\nBetter to just use the convenience functions instead of mixing them.","shortMessageHtmlLink":"Fix bug when setting text field values ends the PDF operation twice."}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEkjiLVwA","startCursor":null,"endCursor":null}},"title":"Activity ยท ArtifexSoftware/mupdf"}