diff options
| -rw-r--r-- | ChangeLog | 5 | ||||
| -rw-r--r-- | src/glibext/gcodebuffer.c | 12 | 
2 files changed, 12 insertions, 5 deletions
| @@ -1,3 +1,8 @@ +12-06-30  Cyrille Bagard <nocbos@gmail.com> + +	* src/glibext/gcodebuffer.c: +	Improve the function providing line indexes from addresses. +  12-06-24  Cyrille Bagard <nocbos@gmail.com>  	* src/glibext/gcodebuffer.c: diff --git a/src/glibext/gcodebuffer.c b/src/glibext/gcodebuffer.c index de92b71..d5dbc8c 100644 --- a/src/glibext/gcodebuffer.c +++ b/src/glibext/gcodebuffer.c @@ -26,7 +26,6 @@  #include <malloc.h>  #include <string.h> -#include <sys/param.h>  #include "../glibext/delayed-int.h" @@ -380,8 +379,7 @@ GCodeBuffer *g_code_buffer_new(void)  *                                                                             *  *  Description : Convertit une adresse en indice de ligne.                    *  *                                                                             * -*  Retour      : Indice de l'adresse trouvée, ou buffer->used en cas d'échec, * -*                pour assurer la prise en compte de VMPA_MAX.                 * +*  Retour      : Indice de l'adresse trouvée, ou 0 en cas d'échec.            *  *                                                                             *  *  Remarques   : -                                                            *  *                                                                             * @@ -391,10 +389,16 @@ static size_t g_code_buffer_get_index_from_address(GCodeBuffer *buffer, vmpa_t a  {      size_t result;                          /* Indice à retourner          */ +    if (addr == VMPA_MAX) +        return (buffer->used > 0 ? buffer->used - 1 : 0); +      for (result = 0; result < buffer->used; result++)          if (g_buffer_line_get_address(buffer->lines[result]) == addr)              break; +    if (result == buffer->used) +        result = 0; +      return result;  } @@ -650,8 +654,6 @@ static void g_buffer_view_compute_required_widths(GBufferView *view)      first = g_code_buffer_get_index_from_address(view->buffer, view->start);      last = g_code_buffer_get_index_from_address(view->buffer, view->end); -    last = MIN(last, view->buffer->used > 0 ? view->buffer->used - 1 : 0); -      view->line_height = 17;      view->left_margin = 2 * view->line_height; | 
