summaryrefslogtreecommitdiff
path: root/src/glibext/gbufferline.c
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2014-12-10 13:41:00 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2014-12-10 13:41:00 (GMT)
commit16d37d997b84c75c1f9b877fe446b3b3e5ce2495 (patch)
tree4e2bcd38843810abc8fb81528c289fda1dc8de10 /src/glibext/gbufferline.c
parentb95a7e2b3ea1a900ef6b1790be386e70d37bac7f (diff)
Loaded major segment properties for an external GTK3 theme and defined some new rendering categories.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@440 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src/glibext/gbufferline.c')
-rw-r--r--src/glibext/gbufferline.c39
1 files changed, 33 insertions, 6 deletions
diff --git a/src/glibext/gbufferline.c b/src/glibext/gbufferline.c
index a71ef9d..cd85cf4 100644
--- a/src/glibext/gbufferline.c
+++ b/src/glibext/gbufferline.c
@@ -484,14 +484,41 @@ void g_buffer_line_fill_mrange(GBufferLine *line, MemoryDataSize psize, MemoryDa
{
size_t len; /* Taille de l'élément inséré */
VMPA_BUFFER(address); /* Adresse au format texte */
+ size_t i; /* Boucle de parcours */
- /* Adresse physique puis virtuelle */
+ /* Position physique */
mrange_phys_to_string(&line->range, psize, true, address, &len);
- g_buffer_line_insert_text(line, BLC_PHYSICAL, address, len, RTT_RAW);
+
+ for (i = 2; i < len; i++)
+ if (address[i] != '0') break;
+
+ if (i == len)
+ g_buffer_line_insert_text(line, BLC_PHYSICAL, address, len, RTT_PHYS_ADDR_PAD);
+
+ else
+ {
+ g_buffer_line_insert_text(line, BLC_PHYSICAL, address, 2, RTT_PHYS_ADDR);
+ g_buffer_line_insert_text(line, BLC_PHYSICAL, &address[2], i - 2, RTT_PHYS_ADDR_PAD);
+ g_buffer_line_insert_text(line, BLC_PHYSICAL, &address[i], len - i, RTT_PHYS_ADDR);
+ }
+
+ /* Adresse virtuelle */
mrange_virt_to_string(&line->range, vsize, true, address, &len);
- g_buffer_line_insert_text(line, BLC_VIRTUAL, address, len, RTT_RAW);
+
+ for (i = 2; i < len; i++)
+ if (address[i] != '0') break;
+
+ if (i == len)
+ g_buffer_line_insert_text(line, BLC_VIRTUAL, address, len, RTT_VIRT_ADDR_PAD);
+
+ else
+ {
+ g_buffer_line_insert_text(line, BLC_VIRTUAL, address, 2, RTT_VIRT_ADDR);
+ g_buffer_line_insert_text(line, BLC_VIRTUAL, &address[2], i - 2, RTT_VIRT_ADDR_PAD);
+ g_buffer_line_insert_text(line, BLC_VIRTUAL, &address[i], len - i, RTT_VIRT_ADDR);
+ }
}
@@ -906,6 +933,9 @@ void g_buffer_line_insert_text(GBufferLine *line, BufferLineColumn column, const
{
GBufferSegment *segment; /* Portion de texte à ajouter */
+ if (length == 0)
+ return;
+
if (column == BLC_MAIN)
column = line->main_column;
@@ -914,9 +944,6 @@ void g_buffer_line_insert_text(GBufferLine *line, BufferLineColumn column, const
else
line->last_used = column;
- if (length == 0)
- return;
-
segment = g_buffer_segment_new(type, text, length);
g_buffer_line_add_segment(line, column, segment);