{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":43432878,"defaultBranch":"main","name":"p44utils","ownerLogin":"plan44","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2015-09-30T12:56:01.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/3685942?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1707951450.0","currentOid":""},"activityList":{"items":[{"before":"4e2ff2ab1f9978c3b1baaef075102893c88fa435","after":"90a69cbb4f1ccb7b6f2623888394cfe2944be4b9","ref":"refs/heads/luz_p44mbrd","pushedAt":"2024-09-06T16:34:07.000Z","pushType":"push","commitsCount":37,"pusher":{"login":"plan44","name":"Lukas Zeller","path":"/plan44","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3685942?s=80&v=4"},"commit":{"message":"jsonrpccomm: JSON-RPC error codes are signed, change signature for `sendError()` to match","shortMessageHtmlLink":"jsonrpccomm: JSON-RPC error codes are signed, change signature for `s…"}},{"before":"9a456b0b27fc20fc234d25777d7a6e229c07bada","after":"166aad31e07dbbde811d5f02f203847d7e37d207","ref":"refs/heads/main","pushedAt":"2024-07-27T11:52:33.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"plan44","name":"Lukas Zeller","path":"/plan44","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3685942?s=80&v=4"},"commit":{"message":"socketcomm, utils: support for using IPv6 literals and scope IDs.\n\n- splithost() now supports [IPv6]:port syntax\n- setConnectionParams allows specifying `[IPv6]%scope` or `IPv6%scope` literally,\n and parses the %scope part into interface (if not explicitly specified as aInterface arg)\n- if aInterface or %scope is used, scopeid in ipv6 address will be set\n- avoid \"host:port\" debug messages, as these are confusing in IPv6 context, use \"xxx port yyy\" instead","shortMessageHtmlLink":"socketcomm, utils: support for using IPv6 literals and scope IDs."}},{"before":"9a456b0b27fc20fc234d25777d7a6e229c07bada","after":"166aad31e07dbbde811d5f02f203847d7e37d207","ref":"refs/heads/luz","pushedAt":"2024-07-27T11:52:16.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"plan44","name":"Lukas Zeller","path":"/plan44","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3685942?s=80&v=4"},"commit":{"message":"socketcomm, utils: support for using IPv6 literals and scope IDs.\n\n- splithost() now supports [IPv6]:port syntax\n- setConnectionParams allows specifying `[IPv6]%scope` or `IPv6%scope` literally,\n and parses the %scope part into interface (if not explicitly specified as aInterface arg)\n- if aInterface or %scope is used, scopeid in ipv6 address will be set\n- avoid \"host:port\" debug messages, as these are confusing in IPv6 context, use \"xxx port yyy\" instead","shortMessageHtmlLink":"socketcomm, utils: support for using IPv6 literals and scope IDs."}},{"before":"627d332776a7f25a4617fccba4313fc2306239c7","after":"9a456b0b27fc20fc234d25777d7a6e229c07bada","ref":"refs/heads/luz","pushedAt":"2024-07-19T18:47:35.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"plan44","name":"Lukas Zeller","path":"/plan44","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3685942?s=80&v=4"},"commit":{"message":"p44script: function argument checking must allow array-typed arg when argument only requests object\n\nBecause most objects are also arrays, since refactoring array/object values in\n\"662116a - p44script: add ArrayValue and ObjectValue, replace JSON-based containers\"","shortMessageHtmlLink":"p44script: function argument checking must allow array-typed arg when…"}},{"before":"627d332776a7f25a4617fccba4313fc2306239c7","after":"9a456b0b27fc20fc234d25777d7a6e229c07bada","ref":"refs/heads/main","pushedAt":"2024-07-19T18:47:15.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"plan44","name":"Lukas Zeller","path":"/plan44","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3685942?s=80&v=4"},"commit":{"message":"p44script: function argument checking must allow array-typed arg when argument only requests object\n\nBecause most objects are also arrays, since refactoring array/object values in\n\"662116a - p44script: add ArrayValue and ObjectValue, replace JSON-based containers\"","shortMessageHtmlLink":"p44script: function argument checking must allow array-typed arg when…"}},{"before":"2e631b8ab4f443e5fb5d8c982141d33e7d3179ce","after":"627d332776a7f25a4617fccba4313fc2306239c7","ref":"refs/heads/luz","pushedAt":"2024-06-26T16:08:46.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"plan44","name":"Lukas Zeller","path":"/plan44","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3685942?s=80&v=4"},"commit":{"message":"Merge remote-tracking branch 'plan44/luz' into luz_p44mbrd\n\n# Conflicts:\n#\tserialcomm.cpp\n#\tserialcomm.hpp","shortMessageHtmlLink":"Merge remote-tracking branch 'plan44/luz' into luz_p44mbrd"}},{"before":"2e631b8ab4f443e5fb5d8c982141d33e7d3179ce","after":"627d332776a7f25a4617fccba4313fc2306239c7","ref":"refs/heads/main","pushedAt":"2024-06-26T16:08:35.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"plan44","name":"Lukas Zeller","path":"/plan44","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3685942?s=80&v=4"},"commit":{"message":"Merge remote-tracking branch 'plan44/luz' into luz_p44mbrd\n\n# Conflicts:\n#\tserialcomm.cpp\n#\tserialcomm.hpp","shortMessageHtmlLink":"Merge remote-tracking branch 'plan44/luz' into luz_p44mbrd"}},{"before":"e104294717d2e9a4939062ee4b4450859ea0e77d","after":"2e631b8ab4f443e5fb5d8c982141d33e7d3179ce","ref":"refs/heads/luz","pushedAt":"2024-06-18T09:39:12.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"plan44","name":"Lukas Zeller","path":"/plan44","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3685942?s=80&v=4"},"commit":{"message":"serialcomm: termios2 apparently cannot be used properly from standard glibc user land -> do not try\n\n- while `TCGETS2` is defined, `struct termios2`, which would be needed to actually use `TCGETS2`, is not defined via .\n- including which would get us `termios2`, on the other side causes redefinitions of `termio` and `winsize`\n- As [this](https://github.com/pengutronix/microcom/issues/30#issuecomment-1239184119) comment puts it - \"I see no halfway pretty way to manage that\", so we forget about termios2 on standard linux glibc user land.","shortMessageHtmlLink":"serialcomm: termios2 apparently cannot be used properly from standard…"}},{"before":"e104294717d2e9a4939062ee4b4450859ea0e77d","after":"2e631b8ab4f443e5fb5d8c982141d33e7d3179ce","ref":"refs/heads/main","pushedAt":"2024-06-18T09:38:58.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"plan44","name":"Lukas Zeller","path":"/plan44","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3685942?s=80&v=4"},"commit":{"message":"serialcomm: termios2 apparently cannot be used properly from standard glibc user land -> do not try\n\n- while `TCGETS2` is defined, `struct termios2`, which would be needed to actually use `TCGETS2`, is not defined via .\n- including which would get us `termios2`, on the other side causes redefinitions of `termio` and `winsize`\n- As [this](https://github.com/pengutronix/microcom/issues/30#issuecomment-1239184119) comment puts it - \"I see no halfway pretty way to manage that\", so we forget about termios2 on standard linux glibc user land.","shortMessageHtmlLink":"serialcomm: termios2 apparently cannot be used properly from standard…"}},{"before":"4e2ff2ab1f9978c3b1baaef075102893c88fa435","after":"e104294717d2e9a4939062ee4b4450859ea0e77d","ref":"refs/heads/luz","pushedAt":"2024-05-26T15:42:24.000Z","pushType":"push","commitsCount":10,"pusher":{"login":"plan44","name":"Lukas Zeller","path":"/plan44","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3685942?s=80&v=4"},"commit":{"message":"i2c, spi: fix minor bugs in analog pin range metadata","shortMessageHtmlLink":"i2c, spi: fix minor bugs in analog pin range metadata"}},{"before":"4e2ff2ab1f9978c3b1baaef075102893c88fa435","after":"e104294717d2e9a4939062ee4b4450859ea0e77d","ref":"refs/heads/main","pushedAt":"2024-05-26T15:42:14.000Z","pushType":"push","commitsCount":10,"pusher":{"login":"plan44","name":"Lukas Zeller","path":"/plan44","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3685942?s=80&v=4"},"commit":{"message":"i2c, spi: fix minor bugs in analog pin range metadata","shortMessageHtmlLink":"i2c, spi: fix minor bugs in analog pin range metadata"}},{"before":"0d21d3292814f7aec58a99d0617c31b28ea17422","after":"4e2ff2ab1f9978c3b1baaef075102893c88fa435","ref":"refs/heads/luz_p44mbrd","pushedAt":"2024-03-25T18:35:57.000Z","pushType":"push","commitsCount":37,"pusher":{"login":"plan44","name":"Lukas Zeller","path":"/plan44","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3685942?s=80&v=4"},"commit":{"message":"Merge remote-tracking branch 'plan44/luz_p44mbrd' into luz","shortMessageHtmlLink":"Merge remote-tracking branch 'plan44/luz_p44mbrd' into luz"}},{"before":"c0b3779af454a8bc55acb5da01c88a16cec0d116","after":"4e2ff2ab1f9978c3b1baaef075102893c88fa435","ref":"refs/heads/luz","pushedAt":"2024-03-25T18:33:54.000Z","pushType":"push","commitsCount":8,"pusher":{"login":"plan44","name":"Lukas Zeller","path":"/plan44","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3685942?s=80&v=4"},"commit":{"message":"Merge remote-tracking branch 'plan44/luz_p44mbrd' into luz","shortMessageHtmlLink":"Merge remote-tracking branch 'plan44/luz_p44mbrd' into luz"}},{"before":"16cf8c2357906ed6139f2c21884c17e8e08c1432","after":"4e2ff2ab1f9978c3b1baaef075102893c88fa435","ref":"refs/heads/main","pushedAt":"2024-03-25T18:32:34.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"plan44","name":"Lukas Zeller","path":"/plan44","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3685942?s=80&v=4"},"commit":{"message":"Merge remote-tracking branch 'plan44/luz_p44mbrd' into luz","shortMessageHtmlLink":"Merge remote-tracking branch 'plan44/luz_p44mbrd' into luz"}},{"before":"3873ba2e9a434ab9aa8ead0c6cb9f78f55d4119c","after":"16cf8c2357906ed6139f2c21884c17e8e08c1432","ref":"refs/heads/main","pushedAt":"2024-03-19T18:19:33.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"plan44","name":"Lukas Zeller","path":"/plan44","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3685942?s=80&v=4"},"commit":{"message":"utils: bugfix: uppercase() should actually do uppercase, not lowercase...","shortMessageHtmlLink":"utils: bugfix: uppercase() should actually do uppercase, not lowercas…"}},{"before":"8cfe0307f67159232cad8cd62d78a6b6ad451413","after":"3873ba2e9a434ab9aa8ead0c6cb9f78f55d4119c","ref":"refs/heads/kksdcm","pushedAt":"2024-03-15T16:25:51.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"plan44","name":"Lukas Zeller","path":"/plan44","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3685942?s=80&v=4"},"commit":{"message":"p44script: #if-guard p44lrgraphics dependent code (hsv, rgb)","shortMessageHtmlLink":"p44script: #if-guard p44lrgraphics dependent code (hsv, rgb)"}},{"before":"5b9c5357a1badd7e97f5a47309b25a6f38a56d64","after":"3873ba2e9a434ab9aa8ead0c6cb9f78f55d4119c","ref":"refs/heads/main","pushedAt":"2024-03-15T12:36:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"plan44","name":"Lukas Zeller","path":"/plan44","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3685942?s=80&v=4"},"commit":{"message":"p44script: #if-guard p44lrgraphics dependent code (hsv, rgb)","shortMessageHtmlLink":"p44script: #if-guard p44lrgraphics dependent code (hsv, rgb)"}},{"before":"c0b3779af454a8bc55acb5da01c88a16cec0d116","after":"5b9c5357a1badd7e97f5a47309b25a6f38a56d64","ref":"refs/heads/main","pushedAt":"2024-03-15T10:24:20.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"plan44","name":"Lukas Zeller","path":"/plan44","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3685942?s=80&v=4"},"commit":{"message":"modbus: TCP client case: properly respond to closed TCP connection","shortMessageHtmlLink":"modbus: TCP client case: properly respond to closed TCP connection"}},{"before":"8747d62e6e7367bc6f87e287f501d69d42eeb0e8","after":"c0b3779af454a8bc55acb5da01c88a16cec0d116","ref":"refs/heads/luz","pushedAt":"2024-02-23T10:18:37.000Z","pushType":"push","commitsCount":30,"pusher":{"login":"plan44","name":"Lukas Zeller","path":"/plan44","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3685942?s=80&v=4"},"commit":{"message":"ubus: fix memory leak caused by non-freed blob_buf\n\n- all memory used by the actual response leaked.\n- ubus example code and actual use uses blob_buf_init() a lot but almost never\n uses blob_buf_free(). The reason is that blob_buf is a re-usable, on-demand\n expanding buffer, and blob_buf_init() is actually \"reinit\", usually of a\n static global \"b\". Here we use it dynamically, so it needs to be freed.","shortMessageHtmlLink":"ubus: fix memory leak caused by non-freed blob_buf"}},{"before":"8747d62e6e7367bc6f87e287f501d69d42eeb0e8","after":"c0b3779af454a8bc55acb5da01c88a16cec0d116","ref":"refs/heads/main","pushedAt":"2024-02-23T10:18:31.000Z","pushType":"push","commitsCount":30,"pusher":{"login":"plan44","name":"Lukas Zeller","path":"/plan44","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3685942?s=80&v=4"},"commit":{"message":"ubus: fix memory leak caused by non-freed blob_buf\n\n- all memory used by the actual response leaked.\n- ubus example code and actual use uses blob_buf_init() a lot but almost never\n uses blob_buf_free(). The reason is that blob_buf is a re-usable, on-demand\n expanding buffer, and blob_buf_init() is actually \"reinit\", usually of a\n static global \"b\". Here we use it dynamically, so it needs to be freed.","shortMessageHtmlLink":"ubus: fix memory leak caused by non-freed blob_buf"}},{"before":null,"after":"8cfe0307f67159232cad8cd62d78a6b6ad451413","ref":"refs/heads/kksdcm","pushedAt":"2024-02-14T22:57:30.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"plan44","name":"Lukas Zeller","path":"/plan44","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3685942?s=80&v=4"},"commit":{"message":"ubus: fix memory leak caused by non-freed blob_buf\n\n- all memory used by the actual response leaked.\n- ubus example code and actual use uses blob_buf_init() a lot but almost never\n uses blob_buf_free(). The reason is that blob_buf is a re-usable, on-demand\n expanding buffer, and blob_buf_init() is actually \"reinit\", usually of a\n static global \"b\". Here we use it dynamically, so it needs to be freed.","shortMessageHtmlLink":"ubus: fix memory leak caused by non-freed blob_buf"}},{"before":"9f00a2ba2057d752f6837f6a1375d0312ad92809","after":null,"ref":"refs/heads/lvgl_wip","pushedAt":"2024-02-02T08:58:43.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"plan44","name":"Lukas Zeller","path":"/plan44","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3685942?s=80&v=4"}},{"before":"8747d62e6e7367bc6f87e287f501d69d42eeb0e8","after":"0d21d3292814f7aec58a99d0617c31b28ea17422","ref":"refs/heads/luz_p44mbrd","pushedAt":"2024-01-31T10:23:51.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"plan44","name":"Lukas Zeller","path":"/plan44","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3685942?s=80&v=4"},"commit":{"message":"Use the json-object as the request_id\n\nJson-RPC 2.0 requires strings or numeric IDs for requests.\nTo avoid mangeling the incoming ID for request use the json object.","shortMessageHtmlLink":"Use the json-object as the request_id"}},{"before":"7626fd54f7866bc3211cfa2925c93c668a7afc92","after":"8747d62e6e7367bc6f87e287f501d69d42eeb0e8","ref":"refs/heads/master","pushedAt":"2024-01-24T08:43:16.000Z","pushType":"push","commitsCount":7,"pusher":{"login":"plan44","name":"Lukas Zeller","path":"/plan44","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3685942?s=80&v=4"},"commit":{"message":"Merge remote-tracking branch 'plan44/luz' into luz_p44mbrd","shortMessageHtmlLink":"Merge remote-tracking branch 'plan44/luz' into luz_p44mbrd"}},{"before":"7626fd54f7866bc3211cfa2925c93c668a7afc92","after":"8747d62e6e7367bc6f87e287f501d69d42eeb0e8","ref":"refs/heads/main","pushedAt":"2024-01-24T08:43:05.000Z","pushType":"push","commitsCount":7,"pusher":{"login":"plan44","name":"Lukas Zeller","path":"/plan44","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3685942?s=80&v=4"},"commit":{"message":"Merge remote-tracking branch 'plan44/luz' into luz_p44mbrd","shortMessageHtmlLink":"Merge remote-tracking branch 'plan44/luz' into luz_p44mbrd"}},{"before":"a883d9f739ba4aa2aa1a19358b5209402986f8dc","after":"8747d62e6e7367bc6f87e287f501d69d42eeb0e8","ref":"refs/heads/luz","pushedAt":"2024-01-24T08:42:49.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"plan44","name":"Lukas Zeller","path":"/plan44","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3685942?s=80&v=4"},"commit":{"message":"Merge remote-tracking branch 'plan44/luz' into luz_p44mbrd","shortMessageHtmlLink":"Merge remote-tracking branch 'plan44/luz' into luz_p44mbrd"}},{"before":"1d0bcc4ac90ab57f1a4926a0f9278be1e404edfb","after":"8747d62e6e7367bc6f87e287f501d69d42eeb0e8","ref":"refs/heads/luz_p44mbrd","pushedAt":"2024-01-24T08:41:35.000Z","pushType":"push","commitsCount":75,"pusher":{"login":"plan44","name":"Lukas Zeller","path":"/plan44","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3685942?s=80&v=4"},"commit":{"message":"Merge remote-tracking branch 'plan44/luz' into luz_p44mbrd","shortMessageHtmlLink":"Merge remote-tracking branch 'plan44/luz' into luz_p44mbrd"}},{"before":"9cdec080df0c815c678d255499385be7e1fc68be","after":"a883d9f739ba4aa2aa1a19358b5209402986f8dc","ref":"refs/heads/luz","pushedAt":"2024-01-20T18:09:36.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"plan44","name":"Lukas Zeller","path":"/plan44","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3685942?s=80&v=4"},"commit":{"message":"p44script: per sink event filters - allows selective event source functions for use in `on(…)` handlers\n\n- remove eventSource() API, to prevent direct registration, because:\n- sinks should register through registerForFilteredEvents() of the object *representing* the source,\n which is usually the result of a function like `webrequest()` or `midi()` which can create the\n correct filter from their parameters.","shortMessageHtmlLink":"p44script: per sink event filters - allows selective event source fun…"}},{"before":"7626fd54f7866bc3211cfa2925c93c668a7afc92","after":"9cdec080df0c815c678d255499385be7e1fc68be","ref":"refs/heads/luz","pushedAt":"2024-01-17T09:03:33.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"plan44","name":"Lukas Zeller","path":"/plan44","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3685942?s=80&v=4"},"commit":{"message":"fixpoint_macros.h: add FP_INT_ROUND()","shortMessageHtmlLink":"fixpoint_macros.h: add FP_INT_ROUND()"}},{"before":"5ab87dc7623c566c01e42cfe6ad9dbaf276e91c4","after":"7626fd54f7866bc3211cfa2925c93c668a7afc92","ref":"refs/heads/luz","pushedAt":"2024-01-17T08:21:43.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"plan44","name":"Lukas Zeller","path":"/plan44","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3685942?s=80&v=4"},"commit":{"message":"valueanimator: fix \"easeout\" function output range (was 1 too high, which effectively meant animation immediately finished)","shortMessageHtmlLink":"valueanimator: fix \"easeout\" function output range (was 1 too high, w…"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0wNlQxNjozNDowNy4wMDAwMDBazwAAAASvIGYx","startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0wNlQxNjozNDowNy4wMDAwMDBazwAAAASvIGYx","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wMS0xN1QwODoyMTo0My4wMDAwMDBazwAAAAPhxkvK"}},"title":"Activity · plan44/p44utils"}