)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1000000,"name":"Nico Huber","email":"nico.h@gmx.de","username":"icon","avatars":[{"url":"https://www.gravatar.com/avatar/60d420b5d650d48b86d6921a9f683b64.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/60d420b5d650d48b86d6921a9f683b64.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/60d420b5d650d48b86d6921a9f683b64.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/60d420b5d650d48b86d6921a9f683b64.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"da528a1a34a3087b7d704d788534f5339c535d24","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"eeff12b4_8ca1c8e0","updated":"2026-06-21 14:09:00.000000000","message":"Will try to test this with some real Dediprogs.","commit_id":"3920d454d08f51e837453b97e10a0760a9121ed8"},{"author":{"_account_id":1000000,"name":"Nico Huber","email":"nico.h@gmx.de","username":"icon","avatars":[{"url":"https://www.gravatar.com/avatar/60d420b5d650d48b86d6921a9f683b64.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/60d420b5d650d48b86d6921a9f683b64.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/60d420b5d650d48b86d6921a9f683b64.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/60d420b5d650d48b86d6921a9f683b64.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"82c2a4c661f1221c01db833fe0c65e2f0a873f26","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"821835a7_267a8a7c","updated":"2026-06-24 19:30:48.000000000","message":"Looks good to me except for the mentioned declarations.\n\nTested with a very old SF100, and an SF600Plus-G2.","commit_id":"2f26b0f8ceb23e6f5edba1bec2c0bd2549982ddc"}],"dediprog.c":[{"author":{"_account_id":1000000,"name":"Nico Huber","email":"nico.h@gmx.de","username":"icon","avatars":[{"url":"https://www.gravatar.com/avatar/60d420b5d650d48b86d6921a9f683b64.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/60d420b5d650d48b86d6921a9f683b64.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/60d420b5d650d48b86d6921a9f683b64.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/60d420b5d650d48b86d6921a9f683b64.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"da528a1a34a3087b7d704d788534f5339c535d24","unresolved":true,"context_lines":[{"line_number":1206,"context_line":"\t\t\t\tinterface \u003d \u0026iface-\u003ealtsetting[j];"},{"line_number":1207,"context_line":"\t\t\t\tbreak;"},{"line_number":1208,"context_line":"\t\t\t}"},{"line_number":1209,"context_line":"\t\t}"},{"line_number":1210,"context_line":"\t}"},{"line_number":1211,"context_line":""},{"line_number":1212,"context_line":"\tif (!interface) {"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"4fa60819_b557aa59","line":1209,"updated":"2026-06-21 14:09:00.000000000","message":"Why search all the altsettings and then never select an altsetting? Would this\nwork as well when checking only `altsetting[0]`?\n\nAlso, shouldn\u0027t all the `altsetting[j]` have the same `bInterfaceNumber`?","commit_id":"3920d454d08f51e837453b97e10a0760a9121ed8"},{"author":{"_account_id":1000000,"name":"Nico Huber","email":"nico.h@gmx.de","username":"icon","avatars":[{"url":"https://www.gravatar.com/avatar/60d420b5d650d48b86d6921a9f683b64.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/60d420b5d650d48b86d6921a9f683b64.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/60d420b5d650d48b86d6921a9f683b64.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/60d420b5d650d48b86d6921a9f683b64.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"82c2a4c661f1221c01db833fe0c65e2f0a873f26","unresolved":false,"context_lines":[{"line_number":1206,"context_line":"\t\t\t\tinterface \u003d \u0026iface-\u003ealtsetting[j];"},{"line_number":1207,"context_line":"\t\t\t\tbreak;"},{"line_number":1208,"context_line":"\t\t\t}"},{"line_number":1209,"context_line":"\t\t}"},{"line_number":1210,"context_line":"\t}"},{"line_number":1211,"context_line":""},{"line_number":1212,"context_line":"\tif (!interface) {"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"1cad3551_bed567ce","line":1209,"in_reply_to":"4fa60819_b557aa59","updated":"2026-06-24 19:30:48.000000000","message":"Done","commit_id":"3920d454d08f51e837453b97e10a0760a9121ed8"},{"author":{"_account_id":1000000,"name":"Nico Huber","email":"nico.h@gmx.de","username":"icon","avatars":[{"url":"https://www.gravatar.com/avatar/60d420b5d650d48b86d6921a9f683b64.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/60d420b5d650d48b86d6921a9f683b64.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/60d420b5d650d48b86d6921a9f683b64.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/60d420b5d650d48b86d6921a9f683b64.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"82c2a4c661f1221c01db833fe0c65e2f0a873f26","unresolved":true,"context_lines":[{"line_number":1199,"context_line":"\t\treturn 1;"},{"line_number":1200,"context_line":"\t}"},{"line_number":1201,"context_line":""},{"line_number":1202,"context_line":"\tfor (int i \u003d 0; i \u003c config-\u003ebNumInterfaces; i++) {"},{"line_number":1203,"context_line":"\t\tconst struct libusb_interface *const iface \u003d \u0026config-\u003einterface[i];"},{"line_number":1204,"context_line":"\t\tif (iface-\u003enum_altsetting \u003e 0 \u0026\u0026 iface-\u003ealtsetting[0].bInterfaceNumber \u003d\u003d DEDIPROG_INTERFACE) {"},{"line_number":1205,"context_line":"\t\t\tinterface \u003d \u0026iface-\u003ealtsetting[0];"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"2dcf10b4_6f8e142d","line":1202,"range":{"start_line":1202,"start_character":6,"end_line":1202,"end_character":11},"updated":"2026-06-24 19:30:48.000000000","message":"Please declare these upfront. I still didn\u0027t get around to update the C standard,\nso some builds might fail. (IIRC, it all got stuck because of the old DJGPP\ncontainer in manibuilder, patches are welcome.)","commit_id":"2f26b0f8ceb23e6f5edba1bec2c0bd2549982ddc"},{"author":{"_account_id":1000003,"name":"Arthur Heymans","email":"arthur@aheymans.xyz","username":"arthurheymans","avatars":[{"url":"https://www.gravatar.com/avatar/518bb7353a0a42df698e1736723abc9f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/518bb7353a0a42df698e1736723abc9f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/518bb7353a0a42df698e1736723abc9f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/518bb7353a0a42df698e1736723abc9f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"f81ad8b60bab1c0bd72ec9f60ba12b6ef56b2541","unresolved":false,"context_lines":[{"line_number":1199,"context_line":"\t\treturn 1;"},{"line_number":1200,"context_line":"\t}"},{"line_number":1201,"context_line":""},{"line_number":1202,"context_line":"\tfor (int i \u003d 0; i \u003c config-\u003ebNumInterfaces; i++) {"},{"line_number":1203,"context_line":"\t\tconst struct libusb_interface *const iface \u003d \u0026config-\u003einterface[i];"},{"line_number":1204,"context_line":"\t\tif (iface-\u003enum_altsetting \u003e 0 \u0026\u0026 iface-\u003ealtsetting[0].bInterfaceNumber \u003d\u003d DEDIPROG_INTERFACE) {"},{"line_number":1205,"context_line":"\t\t\tinterface \u003d \u0026iface-\u003ealtsetting[0];"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"613ae5da_2f6d6f4f","line":1202,"range":{"start_line":1202,"start_character":6,"end_line":1202,"end_character":11},"in_reply_to":"2dcf10b4_6f8e142d","updated":"2026-06-24 20:53:47.000000000","message":"Done","commit_id":"2f26b0f8ceb23e6f5edba1bec2c0bd2549982ddc"},{"author":{"_account_id":1000000,"name":"Nico Huber","email":"nico.h@gmx.de","username":"icon","avatars":[{"url":"https://www.gravatar.com/avatar/60d420b5d650d48b86d6921a9f683b64.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/60d420b5d650d48b86d6921a9f683b64.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/60d420b5d650d48b86d6921a9f683b64.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/60d420b5d650d48b86d6921a9f683b64.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"82c2a4c661f1221c01db833fe0c65e2f0a873f26","unresolved":true,"context_lines":[{"line_number":1213,"context_line":"\t\treturn 1;"},{"line_number":1214,"context_line":"\t}"},{"line_number":1215,"context_line":""},{"line_number":1216,"context_line":"\tfor (int i \u003d 0; i \u003c interface-\u003ebNumEndpoints; i++) {"},{"line_number":1217,"context_line":"\t\tconst struct libusb_endpoint_descriptor *const endpoint \u003d \u0026interface-\u003eendpoint[i];"},{"line_number":1218,"context_line":"\t\tconst uint8_t type \u003d endpoint-\u003ebmAttributes \u0026 LIBUSB_TRANSFER_TYPE_MASK;"},{"line_number":1219,"context_line":"\t\tconst uint8_t address \u003d endpoint-\u003ebEndpointAddress;"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"649421cf_0740584e","line":1216,"range":{"start_line":1216,"start_character":6,"end_line":1216,"end_character":11},"updated":"2026-06-24 19:30:48.000000000","message":"Same","commit_id":"2f26b0f8ceb23e6f5edba1bec2c0bd2549982ddc"},{"author":{"_account_id":1000003,"name":"Arthur Heymans","email":"arthur@aheymans.xyz","username":"arthurheymans","avatars":[{"url":"https://www.gravatar.com/avatar/518bb7353a0a42df698e1736723abc9f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/518bb7353a0a42df698e1736723abc9f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/518bb7353a0a42df698e1736723abc9f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/518bb7353a0a42df698e1736723abc9f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"f81ad8b60bab1c0bd72ec9f60ba12b6ef56b2541","unresolved":false,"context_lines":[{"line_number":1213,"context_line":"\t\treturn 1;"},{"line_number":1214,"context_line":"\t}"},{"line_number":1215,"context_line":""},{"line_number":1216,"context_line":"\tfor (int i \u003d 0; i \u003c interface-\u003ebNumEndpoints; i++) {"},{"line_number":1217,"context_line":"\t\tconst struct libusb_endpoint_descriptor *const endpoint \u003d \u0026interface-\u003eendpoint[i];"},{"line_number":1218,"context_line":"\t\tconst uint8_t type \u003d endpoint-\u003ebmAttributes \u0026 LIBUSB_TRANSFER_TYPE_MASK;"},{"line_number":1219,"context_line":"\t\tconst uint8_t address \u003d endpoint-\u003ebEndpointAddress;"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"9a0e1541_10205718","line":1216,"range":{"start_line":1216,"start_character":6,"end_line":1216,"end_character":11},"in_reply_to":"649421cf_0740584e","updated":"2026-06-24 20:53:47.000000000","message":"Done","commit_id":"2f26b0f8ceb23e6f5edba1bec2c0bd2549982ddc"}]}
