Code view:

A painting is a person's account of this edit as text, recorded independently of the node mapping - a rendering often has several equally defensible answers where the mapping has one. Deletions and insertions carry no position on the opposite side in a painting, so that panel draws no caret for them.

Before

1#include "uhid_output.h"
2
3#include <assert.h>
4
5void
6sc_uhid_devices_init(struct sc_uhid_devices *devices) {
7 devices->count = 0;
8}
9
10void
11sc_uhid_devices_add_receiver(struct sc_uhid_devices *devices,
12 struct sc_uhid_receiver *receiver) {
13 assert(devices->count < SC_UHID_MAX_RECEIVERS);
14 devices->receivers[devices->count++] = receiver;
15}
16
17struct sc_uhid_receiver *
18sc_uhid_devices_get_receiver(struct sc_uhid_devices *devices, uint16_t id) {
19 for (size_t i = 0; i < devices->count; ++i) {
20 if (devices->receivers[i]->id == id) {
21 return devices->receivers[i];
22 }
23 }
24 return NULL;
25}
26

After

1#include "uhid_output.h"
2
3#include <assert.h>
4#include <inttypes.h>
5
6#include "uhid/keyboard_uhid.h"
7#include "util/log.h"
8
9void
10sc_uhid_devices_init(struct sc_uhid_devices *devices,
11 struct sc_keyboard_uhid *keyboard) {
12 devices->keyboard = keyboard;
13}
14
15void
16sc_uhid_devices_process_hid_output(struct sc_uhid_devices *devices, uint16_t id,
17 const uint8_t *data, size_t size) {
18 if (id == SC_HID_ID_KEYBOARD) {
19 if (devices->keyboard) {
20 sc_keyboard_uhid_process_hid_output(devices->keyboard, data, size);
21 } else {
22 LOGW("Unexpected keyboard HID output without UHID keyboard");
23 }
24 } else {
25 LOGW("HID output ignored for id %" PRIu16, id);
26 }
27}
28

Before

translation_unit
preproc_include
#include "#include"
string_literal
" "\""
string_content "uhid_output.h"
" "\""
preproc_include
#include "#include"
system_lib_string "<assert.h>"
function_definition
primitive_type "void"
function_declarator
identifier "sc_uhid_devices_init"
parameter_list
( "("
parameter_declaration
struct_specifier
struct "struct"
type_identifier "sc_uhid_devices"
pointer_declarator
* "*"
identifier "devices"
) ")"
compound_statement
{ "{"
expression_statement
assignment_expression
field_expression
identifier "devices"
-> "->"
field_identifier "count"
= "="
number_literal "0"
; ";"
} "}"
function_definition
primitive_type "void"
function_declarator
identifier "sc_uhid_devices_add_receiver"
parameter_list
( "("
parameter_declaration
struct_specifier
struct "struct"
type_identifier "sc_uhid_devices"
pointer_declarator
* "*"
identifier "devices"
, ","
parameter_declaration
struct_specifier
struct "struct"
type_identifier "sc_uhid_receiver"
pointer_declarator
* "*"
identifier "receiver"
) ")"
compound_statement
{ "{"
expression_statement
call_expression
identifier "assert"
argument_list
( "("
binary_expression
field_expression
identifier "devices"
-> "->"
field_identifier "count"
< "<"
identifier "SC_UHID_MAX_RECEIVERS"
) ")"
; ";"
expression_statement
assignment_expression
subscript_expression
field_expression
identifier "devices"
-> "->"
field_identifier "receivers"
[ "["
update_expression
field_expression
identifier "devices"
-> "->"
field_identifier "count"
++ "++"
] "]"
= "="
identifier "receiver"
; ";"
} "}"
function_definition
struct_specifier
struct "struct"
type_identifier "sc_uhid_receiver"
pointer_declarator
* "*"
function_declarator
identifier "sc_uhid_devices_get_receiver"
parameter_list
( "("
parameter_declaration
struct_specifier
struct "struct"
type_identifier "sc_uhid_devices"
pointer_declarator
* "*"
identifier "devices"
, ","
parameter_declaration
primitive_type "uint16_t"
identifier "id"
) ")"
compound_statement
{ "{"
for_statement
for "for"
( "("
declaration
primitive_type "size_t"
init_declarator
identifier "i"
= "="
number_literal "0"
; ";"
binary_expression
identifier "i"
< "<"
field_expression
identifier "devices"
-> "->"
field_identifier "count"
; ";"
update_expression
++ "++"
identifier "i"
) ")"
compound_statement
{ "{"
if_statement
if "if"
parenthesized_expression
( "("
binary_expression
field_expression
subscript_expression
field_expression
identifier "devices"
-> "->"
field_identifier "receivers"
[ "["
identifier "i"
] "]"
-> "->"
field_identifier "id"
== "=="
identifier "id"
) ")"
compound_statement
{ "{"
return_statement
return "return"
subscript_expression
field_expression
identifier "devices"
-> "->"
field_identifier "receivers"
[ "["
identifier "i"
] "]"
; ";"
} "}"
} "}"
return_statement
return "return"
null
NULL "NULL"
; ";"
} "}"

After

translation_unit
preproc_include
#include "#include"
string_literal
" "\""
string_content "uhid_output.h"
" "\""
preproc_include
#include "#include"
system_lib_string "<assert.h>"
preproc_include
#include "#include"
system_lib_string "<inttypes.h>"
preproc_include
#include "#include"
string_literal
" "\""
string_content "uhid/keyboard_uhid.h"
" "\""
preproc_include
#include "#include"
string_literal
" "\""
string_content "util/log.h"
" "\""
function_definition
primitive_type "void"
function_declarator
identifier "sc_uhid_devices_init"
parameter_list
( "("
parameter_declaration
struct_specifier
struct "struct"
type_identifier "sc_uhid_devices"
pointer_declarator
* "*"
identifier "devices"
, ","
parameter_declaration
struct_specifier
struct "struct"
type_identifier "sc_keyboard_uhid"
pointer_declarator
* "*"
identifier "keyboard"
) ")"
compound_statement
{ "{"
expression_statement
assignment_expression
field_expression
identifier "devices"
-> "->"
field_identifier "keyboard"
= "="
identifier "keyboard"
; ";"
} "}"
function_definition
primitive_type "void"
function_declarator
identifier "sc_uhid_devices_process_hid_output"
parameter_list
( "("
parameter_declaration
struct_specifier
struct "struct"
type_identifier "sc_uhid_devices"
pointer_declarator
* "*"
identifier "devices"
, ","
parameter_declaration
primitive_type "uint16_t"
identifier "id"
, ","
parameter_declaration
type_qualifier
const "const"
primitive_type "uint8_t"
pointer_declarator
* "*"
identifier "data"
, ","
parameter_declaration
primitive_type "size_t"
identifier "size"
) ")"
compound_statement
{ "{"
if_statement
if "if"
parenthesized_expression
( "("
binary_expression
identifier "id"
== "=="
identifier "SC_HID_ID_KEYBOARD"
) ")"
compound_statement
{ "{"
if_statement
if "if"
parenthesized_expression
( "("
field_expression
identifier "devices"
-> "->"
field_identifier "keyboard"
) ")"
compound_statement
{ "{"
expression_statement
call_expression
identifier "sc_keyboard_uhid_process_hid_output"
argument_list
( "("
field_expression
identifier "devices"
-> "->"
field_identifier "keyboard"
, ","
identifier "data"
, ","
identifier "size"
) ")"
; ";"
} "}"
else_clause
else "else"
compound_statement
{ "{"
expression_statement
call_expression
identifier "LOGW"
argument_list
( "("
string_literal
" "\""
string_content "Unexpected keyboard HID output without UHID keyboard"
" "\""
) ")"
; ";"
} "}"
} "}"
else_clause
else "else"
compound_statement
{ "{"
expression_statement
call_expression
identifier "LOGW"
argument_list
( "("
concatenated_string
string_literal
" "\""
string_content "HID output ignored for id %"
" "\""
identifier "PRIu16"
, ","
identifier "id"
) ")"
; ";"
} "}"
} "}"