{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":16614401,"defaultBranch":"master","name":"crengine","ownerLogin":"koreader","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2014-02-07T12:47:11.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/3957564?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1718030111.0","currentOid":""},"activityList":{"items":[{"before":"287bf21847f37fc4a43e8cc0937376e5d5e87724","after":"6e6a99398da50b737913f933a75ddec5f58a36db","ref":"refs/heads/master","pushedAt":"2024-09-02T07:10:08.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"poire-z","name":null,"path":"/poire-z","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24273478?s=80&v=4"},"commit":{"message":"xml parser: fix a regression in 40082dcf/b3874805 (#602)\n\nWrongly calculated `limit` could be smaller than `ptr`, causing\r\ninfinite loop.","shortMessageHtmlLink":"xml parser: fix a regression in 40082dc/b3874805 (#602)"}},{"before":"b3874805f2ef84b2d20c0ef66b1663cb292fd6ed","after":"287bf21847f37fc4a43e8cc0937376e5d5e87724","ref":"refs/heads/master","pushedAt":"2024-08-12T21:59:24.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"poire-z","name":null,"path":"/poire-z","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24273478?s=80&v=4"},"commit":{"message":"lvfntman: tweak code to be forward compatible with freetype 2.13.3 (#601)\n\nSome of the fields of `FT_Outline` changed type:\r\nhttps://github.com/freetype/freetype/commit/2a7bb4596f566a34fd53932af0ef53b956459d25","shortMessageHtmlLink":"lvfntman: tweak code to be forward compatible with freetype 2.13.3 (#601"}},{"before":"2f8f74f18185b40b13c49a874ad326e9e1444653","after":"b3874805f2ef84b2d20c0ef66b1663cb292fd6ed","ref":"refs/heads/master","pushedAt":"2024-08-08T06:17:53.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Frenzie","name":"Frans de Jonge","path":"/Frenzie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/202757?s=80&v=4"},"commit":{"message":"xml parser: fix regressions (#584)\n\n- in 40082dcf, limit was not applied\r\n- in 9d70a2e5,\r\n - loop should terminate if a qualified newline is encountered\r\n - last_split_txtlen should take the space/newline into account","shortMessageHtmlLink":"xml parser: fix regressions (#584)"}},{"before":"07171e788f9e26d240326e2da18b9e8fdbda6f17","after":"2f8f74f18185b40b13c49a874ad326e9e1444653","ref":"refs/heads/master","pushedAt":"2024-08-02T19:32:21.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"poire-z","name":null,"path":"/poire-z","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24273478?s=80&v=4"},"commit":{"message":"lvfntman: factorize `LVFreeTypeFace::loadFromBuffer|loadFromFile` (#598)\n\nAdditionally:\r\n- don't look at `_fileName` (possibly set from a previous call) when loading from buffer\r\n- better error handling: `Clear` on error (and before loading a new font)","shortMessageHtmlLink":"lvfntman: factorize LVFreeTypeFace::loadFromBuffer|loadFromFile (#598)"}},{"before":"c07cea9a9b1f73fe7331c3442c07f4b7842ecffa","after":"07171e788f9e26d240326e2da18b9e8fdbda6f17","ref":"refs/heads/master","pushedAt":"2024-08-02T18:49:34.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"poire-z","name":null,"path":"/poire-z","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24273478?s=80&v=4"},"commit":{"message":"lvtinydom: fix compiler warning [-Wunused-private-field] (#597)\n\nWith the `int maxLen` private field of `ldomTextCollector` removed,\r\nthe `int maxTextLen` arguments to `ldomTextCollector(…)` and to\r\n`ldomXRange::getRangeText` can also be removed.","shortMessageHtmlLink":"lvtinydom: fix compiler warning [-Wunused-private-field] (#597)"}},{"before":"959d28a9fd5913ea566c4f2b718cc2074befe549","after":"c07cea9a9b1f73fe7331c3442c07f4b7842ecffa","ref":"refs/heads/master","pushedAt":"2024-08-02T17:32:22.000Z","pushType":"pr_merge","commitsCount":12,"pusher":{"login":"poire-z","name":null,"path":"/poire-z","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24273478?s=80&v=4"},"commit":{"message":"wordfmt: suppress clang-tidy warning [NullDereference]","shortMessageHtmlLink":"wordfmt: suppress clang-tidy warning [NullDereference]"}},{"before":"4969ec26f4168b32710e378ad629317aed241375","after":"959d28a9fd5913ea566c4f2b718cc2074befe549","ref":"refs/heads/master","pushedAt":"2024-08-02T17:31:58.000Z","pushType":"pr_merge","commitsCount":17,"pusher":{"login":"poire-z","name":null,"path":"/poire-z","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24273478?s=80&v=4"},"commit":{"message":"pdbfmt: fix compiler warning [-Wmissing-braces]\n\nIf `PDBHdr->read` succeed, the structure is initialized anyway.","shortMessageHtmlLink":"pdbfmt: fix compiler warning [-Wmissing-braces]"}},{"before":"f1203fdba7dd077695f515ac0546801fb023d7d3","after":"4969ec26f4168b32710e378ad629317aed241375","ref":"refs/heads/master","pushedAt":"2024-07-29T08:10:31.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"poire-z","name":null,"path":"/poire-z","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24273478?s=80&v=4"},"commit":{"message":"ci: remove leftover debug statement in lint tool (#594)","shortMessageHtmlLink":"ci: remove leftover debug statement in lint tool (#594)"}},{"before":"159dba1705058e2716e05c1e5c59d2d2c0adddeb","after":"f1203fdba7dd077695f515ac0546801fb023d7d3","ref":"refs/heads/master","pushedAt":"2024-07-29T07:57:43.000Z","pushType":"pr_merge","commitsCount":8,"pusher":{"login":"poire-z","name":null,"path":"/poire-z","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24273478?s=80&v=4"},"commit":{"message":"mathml: fix compiler warning [-Wunused-variable]","shortMessageHtmlLink":"mathml: fix compiler warning [-Wunused-variable]"}},{"before":"e95789c5047096930d3d3e5b47758a02f5295fd1","after":"159dba1705058e2716e05c1e5c59d2d2c0adddeb","ref":"refs/heads/master","pushedAt":"2024-07-29T07:38:14.000Z","pushType":"pr_merge","commitsCount":12,"pusher":{"login":"poire-z","name":null,"path":"/poire-z","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24273478?s=80&v=4"},"commit":{"message":"qimagescale: fix compiler warnings [-Wunused-function]","shortMessageHtmlLink":"qimagescale: fix compiler warnings [-Wunused-function]"}},{"before":"5037c1c9f404b9b3b9a6c404603f4d69d746984a","after":"e95789c5047096930d3d3e5b47758a02f5295fd1","ref":"refs/heads/master","pushedAt":"2024-07-28T09:19:32.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"poire-z","name":null,"path":"/poire-z","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24273478?s=80&v=4"},"commit":{"message":"ci: tweak lint compilation flags (#591)\n\n- ci: drop unused define when linting\r\n- ci: align linting compiling flags with koreader\r\nEnable all image formats, except for lunasvg (which needs a custom patched version).","shortMessageHtmlLink":"ci: tweak lint compilation flags (#591)"}},{"before":"4e7bb072a933d8c8618d21a87a293ddf1548af34","after":"5037c1c9f404b9b3b9a6c404603f4d69d746984a","ref":"refs/heads/master","pushedAt":"2024-07-28T08:36:45.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"poire-z","name":null,"path":"/poire-z","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24273478?s=80&v=4"},"commit":{"message":"lvrend: fix compiler / cppcheck warning (maybe-uninitialized) (#590)","shortMessageHtmlLink":"lvrend: fix compiler / cppcheck warning (maybe-uninitialized) (#590)"}},{"before":"e0172c18c06bd553ef847e408a8dca19b3a9662e","after":"4e7bb072a933d8c8618d21a87a293ddf1548af34","ref":"refs/heads/master","pushedAt":"2024-07-28T08:17:00.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"poire-z","name":null,"path":"/poire-z","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24273478?s=80&v=4"},"commit":{"message":"textlang: get rid of `LANG_STARTS_WITH(…)` macro hack (#589)\n\nSimplify the code and make cppcheck happy.","shortMessageHtmlLink":"textlang: get rid of LANG_STARTS_WITH(…) macro hack (#589)"}},{"before":"159aeef240f473ccd4c80413a22686dea40cb25d","after":"e0172c18c06bd553ef847e408a8dca19b3a9662e","ref":"refs/heads/master","pushedAt":"2024-07-28T08:16:45.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"poire-z","name":null,"path":"/poire-z","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24273478?s=80&v=4"},"commit":{"message":"ci: stop linting with nanosvg support enabled (#588)\n\n- this generate a lot of warnings with clang-tidy & cppcheck in\r\n nanosvg & stb headers\r\n- it does not match our default configuration on koreader anyway\r\n (where lunasvg is used)","shortMessageHtmlLink":"ci: stop linting with nanosvg support enabled (#588)"}},{"before":"49fe458b16fa64265273a80383bf6ab8bdf2c0e7","after":"159aeef240f473ccd4c80413a22686dea40cb25d","ref":"refs/heads/master","pushedAt":"2024-07-28T08:16:23.000Z","pushType":"pr_merge","commitsCount":9,"pusher":{"login":"poire-z","name":null,"path":"/poire-z","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24273478?s=80&v=4"},"commit":{"message":"lvxml: fix cppcheck warning\n\n```\nlvxml.cpp|6166 col 42| warning: Uninitialized variable: quote [uninitvar]\n int endpos = encname.pos(quote);\n\nlvxml.cpp|6159 col 28| note: Assuming condition is false\n while (pos < end) {\n\nlvxml.cpp|6166 col 42| note: Uninitialized variable: quote\n int endpos = encname.pos(quote);\n```","shortMessageHtmlLink":"lvxml: fix cppcheck warning"}},{"before":"b9b8a1ae4fac0de34f7668a77e537e8d5f389c4f","after":"49fe458b16fa64265273a80383bf6ab8bdf2c0e7","ref":"refs/heads/master","pushedAt":"2024-07-28T00:11:07.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"poire-z","name":null,"path":"/poire-z","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24273478?s=80&v=4"},"commit":{"message":"lvrefcache: tweak `LVCacheMap` implementation (#586)\n\nTo make cppcheck happy (parsing error).","shortMessageHtmlLink":"lvrefcache: tweak LVCacheMap implementation (#586)"}},{"before":"cae5259a4bf4bdcb4ef9d83f4bf8709e5a6d6ae1","after":"b9b8a1ae4fac0de34f7668a77e537e8d5f389c4f","ref":"refs/heads/master","pushedAt":"2024-07-28T00:10:53.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"poire-z","name":null,"path":"/poire-z","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24273478?s=80&v=4"},"commit":{"message":"comment out / don't compile concurrency code (#585)\n\n- it's already stubbed anyway, stub it more!\r\n- I have seen at least one crash with the default stub (clang emulator)\r\n- cppcheck is not happy about it","shortMessageHtmlLink":"comment out / don't compile concurrency code (#585)"}},{"before":"3111729fdb9464ec451846f40530a710c42f5f90","after":"cae5259a4bf4bdcb4ef9d83f4bf8709e5a6d6ae1","ref":"refs/heads/master","pushedAt":"2024-07-27T22:47:18.000Z","pushType":"pr_merge","commitsCount":7,"pusher":{"login":"poire-z","name":null,"path":"/poire-z","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24273478?s=80&v=4"},"commit":{"message":"ci: use problem matchers to tag lint warnings & errors","shortMessageHtmlLink":"ci: use problem matchers to tag lint warnings & errors"}},{"before":"3410e24291d8713e74b9d58b3f0e4bcbdc91490d","after":"3111729fdb9464ec451846f40530a710c42f5f90","ref":"refs/heads/master","pushedAt":"2024-07-21T16:05:27.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"poire-z","name":null,"path":"/poire-z","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24273478?s=80&v=4"},"commit":{"message":"TextLang: Russian: loosen curly quotes handling (#577)\n\nMany Russian texts are using quotes from Word (“”), so\r\nthis rule leads to incorrect line breaks. It also isn't correct\r\nfor Russian_En-US and Russian_En-GB variants.","shortMessageHtmlLink":"TextLang: Russian: loosen curly quotes handling (#577)"}},{"before":"39b06730055aebd097cba1087d1586dd8fa8dae3","after":"3410e24291d8713e74b9d58b3f0e4bcbdc91490d","ref":"refs/heads/master","pushedAt":"2024-07-21T16:02:22.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"poire-z","name":null,"path":"/poire-z","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24273478?s=80&v=4"},"commit":{"message":"Font: fix measureText() when max_width met with fallback font\n\nWhen using Harfbuzz, if we would meet max_width (32767px)\nwhile measuring text with a fallback font, we would return\na too large lastFitChar, and invalid measurements for\nthe chars between the real lastFitChar and the one returned,\npossibly resulting in chars overlapping previous ones and\ngarbled text rendering.","shortMessageHtmlLink":"Font: fix measureText() when max_width met with fallback font"}},{"before":"f6a17e64fcb39bf7c3a768514a7811023fdd16f3","after":"39b06730055aebd097cba1087d1586dd8fa8dae3","ref":"refs/heads/master","pushedAt":"2024-07-20T17:38:52.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"poire-z","name":null,"path":"/poire-z","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24273478?s=80&v=4"},"commit":{"message":"LVDocView header: allow displaying author and book title separately (#575)\n\nAllow hiding author name separately from title in the status bar.","shortMessageHtmlLink":"LVDocView header: allow displaying author and book title separately (#…"}},{"before":"382f062238139cd76b5fabac8b231d49e6226f77","after":"f6a17e64fcb39bf7c3a768514a7811023fdd16f3","ref":"refs/heads/master","pushedAt":"2024-07-06T19:12:52.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Frenzie","name":"Frans de Jonge","path":"/Frenzie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/202757?s=80&v=4"},"commit":{"message":"lint: shell scripts (#576)\n\nFix issues in shell scripts picked up by base `.ci/lint_script.sh`\r\nwhen running it locally with the crengine submodule checked out.","shortMessageHtmlLink":"lint: shell scripts (#576)"}},{"before":"84901aa2fed7f75244da0be644dc1c76a8474346","after":"382f062238139cd76b5fabac8b231d49e6226f77","ref":"refs/heads/master","pushedAt":"2024-06-27T18:27:37.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"poire-z","name":null,"path":"/poire-z","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24273478?s=80&v=4"},"commit":{"message":"lvfntman: add error traces for some freetype calls (#573)","shortMessageHtmlLink":"lvfntman: add error traces for some freetype calls (#573)"}},{"before":"64080df261257c54a733697505f1a3117bf3c537","after":"84901aa2fed7f75244da0be644dc1c76a8474346","ref":"refs/heads/master","pushedAt":"2024-06-27T18:26:37.000Z","pushType":"pr_merge","commitsCount":5,"pusher":{"login":"poire-z","name":null,"path":"/poire-z","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24273478?s=80&v=4"},"commit":{"message":"EPUB: improve support for obfuscated fonts\n\nThe unobfuscated data of some obfuscated (possibly compressed)\nfonts can sometime itself be a raw DEFLATE compressed stream.","shortMessageHtmlLink":"EPUB: improve support for obfuscated fonts"}},{"before":"8b1cb64154c005a0958a01d19ba5b1442b19f388","after":"64080df261257c54a733697505f1a3117bf3c537","ref":"refs/heads/master","pushedAt":"2024-06-27T18:25:27.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"poire-z","name":null,"path":"/poire-z","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24273478?s=80&v=4"},"commit":{"message":"lvstring: optimize Utf8ToUnicode\n\nremove unnecessary assignment","shortMessageHtmlLink":"lvstring: optimize Utf8ToUnicode"}},{"before":"e2c62ef18af49c6e62b26148633a83010f1b488b","after":"8b1cb64154c005a0958a01d19ba5b1442b19f388","ref":"refs/heads/master","pushedAt":"2024-06-27T18:24:17.000Z","pushType":"pr_merge","commitsCount":8,"pusher":{"login":"poire-z","name":null,"path":"/poire-z","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24273478?s=80&v=4"},"commit":{"message":"xml parser: reduce duplicate code","shortMessageHtmlLink":"xml parser: reduce duplicate code"}},{"before":"ab1d541767938428170f1d18e1128ca7f084fc48","after":"e2c62ef18af49c6e62b26148633a83010f1b488b","ref":"refs/heads/master","pushedAt":"2024-06-16T07:34:53.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"poire-z","name":null,"path":"/poire-z","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24273478?s=80&v=4"},"commit":{"message":"Add getBalancedHTML() helper\n\nThis helper function makes use of our (nearly) conforming\nHTML parser, which handles unbalanced HTML and builds a\nproper DOM, and returns the serialized DOM, so balanced.\nThis is currently not used by crengine nor frontend, but\nit's available for use in HTML dict funcs, where giving\nbalanced HTML to MuPDF can give better rendering.","shortMessageHtmlLink":"Add getBalancedHTML() helper"}},{"before":"39ab5d8306db9e9a91b2e522f00a19c927cafa9c","after":"ab1d541767938428170f1d18e1128ca7f084fc48","ref":"refs/heads/master","pushedAt":"2024-06-15T08:37:05.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"poire-z","name":null,"path":"/poire-z","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24273478?s=80&v=4"},"commit":{"message":"Serbian hyphenation: combine patterns for Cyrillic and Latin scripts (#566)\n\nAs Serbian books may use two scripts with different codepoints,\r\nit is safe to combine the patterns into one file. In that way,\r\nit doesn't matter which script is used, and even texts that\r\nuse both scripts will be properly hyphenated.\r\nThis approach is already successfully implemented in ConTeXt.\r\nPatterns have been converted from https://devbase.net/dict-sr/,\r\nsame ones used in LibreOffice extension Serbian Spellchecker.","shortMessageHtmlLink":"Serbian hyphenation: combine patterns for Cyrillic and Latin scripts (#…"}},{"before":"33d7fcc097aebd3b2fa10325814417619ba804bd","after":"39ab5d8306db9e9a91b2e522f00a19c927cafa9c","ref":"refs/heads/master","pushedAt":"2024-06-15T08:32:41.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"poire-z","name":null,"path":"/poire-z","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24273478?s=80&v=4"},"commit":{"message":"Russian hyphenation: revert \"allow hyphens after не\" (#568)\n\nRevert #561 / e6a5cc97, this rule existed for a reason:\r\nThis is a common sense typographical rule. \"Не\" is\r\na negative prefix or particle, so separating it makes\r\nthe text easy to be misread.","shortMessageHtmlLink":"Russian hyphenation: revert \"allow hyphens after не\" (#568)"}},{"before":"1a9e79e25a5b4510d7aaff238d5239f2da70d8d0","after":"33d7fcc097aebd3b2fa10325814417619ba804bd","ref":"refs/heads/master","pushedAt":"2024-05-20T19:16:22.000Z","pushType":"pr_merge","commitsCount":4,"pusher":{"login":"poire-z","name":null,"path":"/poire-z","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24273478?s=80&v=4"},"commit":{"message":"LvDocView header: allow overriding \"page/total %\"\n\nSo frontend can build this bit of text and propagate\nit to crengine for it to display in place of its own\ncomputed text.","shortMessageHtmlLink":"LvDocView header: allow overriding \"page/total %\""}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0wMlQwNzoxMDowOC4wMDAwMDBazwAAAASqSR6q","startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0wMlQwNzoxMDowOC4wMDAwMDBazwAAAASqSR6q","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wNS0yMFQxOToxNjoyMi4wMDAwMDBazwAAAARPHaVO"}},"title":"Activity · koreader/crengine"}