diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2014-12-10 13:41:00 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2014-12-10 13:41:00 (GMT) |
commit | 16d37d997b84c75c1f9b877fe446b3b3e5ce2495 (patch) | |
tree | 4e2bcd38843810abc8fb81528c289fda1dc8de10 /src/glibext/gbufferline.c | |
parent | b95a7e2b3ea1a900ef6b1790be386e70d37bac7f (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.c | 39 |
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); |