summaryrefslogtreecommitdiff
path: root/src/analysis/line_code.c
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2009-07-01 22:20:38 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2009-07-01 22:20:38 (GMT)
commitb6893c7b85c34f7a3c65ac76bfd9d95b1c4ebf55 (patch)
tree5ce9e501c095e5906f6b1a349c82217d41b605f1 /src/analysis/line_code.c
parent176ad970db109523a3ac6d501b23608540d4a930 (diff)
Made the lines to have different rendering widths depending on the views.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@88 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src/analysis/line_code.c')
-rw-r--r--src/analysis/line_code.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/analysis/line_code.c b/src/analysis/line_code.c
index 5ca3623..84ab36c 100644
--- a/src/analysis/line_code.c
+++ b/src/analysis/line_code.c
@@ -61,7 +61,7 @@ static void g_code_line_init(GCodeLine *);
void g_code_line_get_binary_len(GCodeLine *, off_t *);
/* Met à jour la ligne de représentation de code. */
-void g_code_line_refresh_markup(GCodeLine *);
+void g_code_line_refresh_markup(GCodeLine *, LinesMainOwner);
@@ -140,7 +140,8 @@ void g_code_line_get_binary_len(GCodeLine *line, off_t *blen)
/******************************************************************************
* *
-* Paramètres : line = ligne de représentation à actualiser. *
+* Paramètres : line = ligne de représentation à actualiser. *
+* owner = support effectif final des lignes de code. *
* *
* Description : Met à jour la ligne de représentation de code. *
* *
@@ -150,7 +151,7 @@ void g_code_line_get_binary_len(GCodeLine *line, off_t *blen)
* *
******************************************************************************/
-void g_code_line_refresh_markup(GCodeLine *line)
+void g_code_line_refresh_markup(GCodeLine *line, LinesMainOwner owner)
{
size_t len; /* Taille du contenu */
char *content; /* Contenu réellement imprimé */
@@ -159,6 +160,7 @@ void g_code_line_refresh_markup(GCodeLine *line)
char buffer[CODE_BUFFER_LEN]; /* Zone tampon à utiliser #1 */
char *buffer2; /* Zone tampon à utiliser #2 */
const uint8_t *exe_content; /* Contenu binaire global */
+ const off_t *max_bin_len; /* Taille de ligne max/globale */
char *bin_code; /* Tampon du code binaire */
off_t k; /* Boucle de parcours #2 */
off_t j; /* Boucle de parcours #1 */
@@ -214,8 +216,9 @@ void g_code_line_refresh_markup(GCodeLine *line)
if (line->options->show_code)
{
exe_content = get_exe_content(line->options->format, NULL);
+ max_bin_len = &G_RENDERING_LINE(line)->max_bin_len[owner];
- bin_code = (char *)calloc(G_RENDERING_LINE(line)->max_bin_len + 1, sizeof(char));
+ bin_code = (char *)calloc(*max_bin_len + 1, sizeof(char));
k = 0;
@@ -227,7 +230,7 @@ void g_code_line_refresh_markup(GCodeLine *line)
k += snprintf(&bin_code[j * (2 + 1)], 3, "%02hhx", exe_content[bin_offset + j]);
}
- for (; k < G_RENDERING_LINE(line)->max_bin_len; k++)
+ for (; k < *max_bin_len; k++)
snprintf(&bin_code[k], 2, " ");
if (line->options->show_address) len += strlen("\t");
@@ -259,7 +262,7 @@ void g_code_line_refresh_markup(GCodeLine *line)
content = (char *)realloc(content, len * sizeof(char));
strcat(content, "</tt>");
- pango_layout_set_markup(G_RENDERING_LINE(line)->layout, content, len - 1);
+ pango_layout_set_markup(G_RENDERING_LINE(line)->layout[owner], content, len - 1);
free(content);