diff --git a/samples/arguments.html b/samples/arguments.html
index 3f25e9d..041ed0e 100644
--- a/samples/arguments.html
+++ b/samples/arguments.html
@@ -379,22 +379,22 @@
-+3 write_seqcount_begin(&record->seq);
+5 write_seqcount_begin(&record->state.seq);
++3 write_seqcount_begin(&record->seq);
+5 write_seqcount_begin(&record->state.seq);
34 record->value = value;
56 record->value = value;
-+5 record->generation++;
+7 record->generation++;
-+6 write_seqcount_end(&record->seq);
+8 write_seqcount_end(&record->state.seq);
++5 record->generation++;
+7 record->generation++;
++6 write_seqcount_end(&record->seq);
+8 write_seqcount_end(&record->state.seq);
Context differences
Surrounding code in the results. Signs mark lines present in only one result: − left, + right.
record.crecord.c
static void update_record(struct record *record, int value)
static void update_record(struct record *record, int value)
-
1static void update_record(struct record *record, int value)
1static void update_record(struct record *record, int value)
-
-
-
-
-3 write_seqcount_begin(&record->seq);
+5 write_seqcount_begin(&record->state.seq);
-
4 record->value = value;
6 record->value = value;
-
5 record->generation++;
7 record->generation++;
-
-6 write_seqcount_end(&record->seq);
+8 write_seqcount_end(&record->state.seq);
+
1static void update_record(struct record *record, int value)
1static void update_record(struct record *record, int value)
+
+
+
+
-3 write_seqcount_begin(&record->seq);
+5 write_seqcount_begin(&record->state.seq);
+
4 record->value = value;
6 record->value = value;
+
5 record->generation++;
7 record->generation++;
+
-6 write_seqcount_end(&record->seq);
+8 write_seqcount_end(&record->state.seq);
diff --git a/samples/indentation.html b/samples/indentation.html
index a205474..9974ea6 100644
--- a/samples/indentation.html
+++ b/samples/indentation.html
@@ -378,8 +378,8 @@
55 if (req->ready) {
55 if (!req->ready)
-+6 req->attempts++;
+7 req->attempts++;
-+7 trace_submit(req);
+8 trace_submit(req);
++6 req->attempts++;
+7 req->attempts++;
++7 trace_submit(req);
+8 trace_submit(req);
68 ret = queue_request(req);
79 ret = queue_request(req);
79 if (!ret)
810 if (!ret)
810 req->submitted = true;
911 req->submitted = true;
@@ -387,19 +387,19 @@
counter.ccounter.c
static void reset_counter(struct counter *counter)
static void reset_counter(struct counter *counter)
11static void reset_counter(struct counter *counter)
11static void reset_counter(struct counter *counter)
-
+3 counter->generation++;
+3 counter->generation++;
+
+3 counter->generation++;
+3 counter->generation++;
34 counter->value = 0;
34 counter->value = 0;
-Context differences
Surrounding code in the results. Signs mark lines present in only one result: − left, + right.
request.crequest.c
-
-5 if (req->ready) {
+5 if (!req->ready)
-
-
-6 req->attempts++;
+7 req->attempts++;
-
-7 trace_submit(req);
+8 trace_submit(req);
-
-8 ret = queue_request(req);
+9 ret = queue_request(req);
-
-9 if (!ret)
+10 if (!ret)
-
-10 req->submitted = true;
+11 req->submitted = true;
+
Context differences
Surrounding code in the results. Signs mark lines present in only one result: − left, + right.
request.crequest.c
+
-5 if (req->ready) {
+5 if (!req->ready)
+
+
-6 req->attempts++;
+7 req->attempts++;
+
-7 trace_submit(req);
+8 trace_submit(req);
+
-8 ret = queue_request(req);
+9 ret = queue_request(req);
+
-9 if (!ret)
+10 if (!ret)
+
-10 req->submitted = true;
+11 req->submitted = true;
diff --git a/src/html.c b/src/html.c
index f08a01c..2f25aab 100644
--- a/src/html.c
+++ b/src/html.c
@@ -195,18 +195,21 @@ static void write_source_cell(FILE *out, const struct review_row *row,
row->len && row->text[row->len - 1] == '\n' ? "yes" : "no",
row->sign);
for (int stage = 0; stage < 2; stage++) {
- fprintf(out,
- "
",
- stage ? "new" : "old", stage ? "Result" : "Parent");
- if (row->pos[stage] != SIZE_MAX) {
- size_t digits = 1;
-
- for (size_t n = row->pos[stage] + 1; n >= 10; n /= 10)
- digits++;
- fprintf(out, "%zu", row->pos[stage] + 1);
- layout->digits = MAX(layout->digits, digits);
+ const char *name = stage ? "new" : "old";
+ size_t digits = 1;
+
+ /* An empty number cell has nothing for a tooltip to explain */
+ if (row->pos[stage] == SIZE_MAX) {
+ fprintf(out, "", name);
+ continue;
}
- fputs("", out);
+
+ for (size_t n = row->pos[stage] + 1; n >= 10; n /= 10)
+ digits++;
+ fprintf(out,
+ "
%zu",
+ name, stage ? "Result" : "Parent", row->pos[stage] + 1);
+ layout->digits = MAX(layout->digits, digits);
}
fputs("
", out);
write_highlighted_text(out, text, h, leg);