Text viewer: Replace macros with inline functions (which are about to be extended in the following commits)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25514 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
885863571f
commit
8b904e2bb4
1 changed files with 20 additions and 12 deletions
|
@ -728,9 +728,17 @@ static void calc_max_width(void)
|
||||||
static bool done = false;
|
static bool done = false;
|
||||||
static int col = 0;
|
static int col = 0;
|
||||||
|
|
||||||
#define ADVANCE_COUNTERS(c) { width += glyph_width(c); k++; }
|
static inline void advance_conters(unsigned short ch, int* k, int* width)
|
||||||
#define LINE_IS_FULL ((k>=max_columns-1) ||( width >= max_width))
|
{
|
||||||
#define LINE_IS_NOT_FULL ((k<max_columns-1) &&( width < max_width))
|
*width += glyph_width(ch);
|
||||||
|
(*k)++;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline bool line_is_full(int k, int width)
|
||||||
|
{
|
||||||
|
return ((k >= max_columns - 1) || (width >= max_width));
|
||||||
|
}
|
||||||
|
|
||||||
static unsigned char* crop_at_width(const unsigned char* p)
|
static unsigned char* crop_at_width(const unsigned char* p)
|
||||||
{
|
{
|
||||||
int k,width;
|
int k,width;
|
||||||
|
@ -739,12 +747,12 @@ static unsigned char* crop_at_width(const unsigned char* p)
|
||||||
|
|
||||||
k=width=0;
|
k=width=0;
|
||||||
|
|
||||||
while (LINE_IS_NOT_FULL) {
|
while (!line_is_full(k, width)) {
|
||||||
oldp = p;
|
oldp = p;
|
||||||
if (BUFFER_OOB(p))
|
if (BUFFER_OOB(p))
|
||||||
break;
|
break;
|
||||||
p = get_ucs(p, &ch);
|
p = get_ucs(p, &ch);
|
||||||
ADVANCE_COUNTERS(ch);
|
advance_conters(ch, &k, &width);
|
||||||
}
|
}
|
||||||
|
|
||||||
return (unsigned char*)oldp;
|
return (unsigned char*)oldp;
|
||||||
|
@ -824,7 +832,7 @@ static unsigned char* find_next_line(const unsigned char* cur_line, bool *is_sho
|
||||||
for (j=k=width=spaces=newlines=0; ; j++) {
|
for (j=k=width=spaces=newlines=0; ; j++) {
|
||||||
if (BUFFER_OOB(cur_line+j))
|
if (BUFFER_OOB(cur_line+j))
|
||||||
return NULL;
|
return NULL;
|
||||||
if (LINE_IS_FULL) {
|
if (line_is_full(k, width)) {
|
||||||
size = search_len = j;
|
size = search_len = j;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -840,7 +848,7 @@ static unsigned char* find_next_line(const unsigned char* cur_line, bool *is_sho
|
||||||
}
|
}
|
||||||
if (j==0) /* i=1 is intentional */
|
if (j==0) /* i=1 is intentional */
|
||||||
for (i=0; i<par_indent_spaces; i++)
|
for (i=0; i<par_indent_spaces; i++)
|
||||||
ADVANCE_COUNTERS(' ');
|
advance_conters(' ', &k, &width);
|
||||||
}
|
}
|
||||||
if (!first_chars) spaces++;
|
if (!first_chars) spaces++;
|
||||||
break;
|
break;
|
||||||
|
@ -866,8 +874,8 @@ static unsigned char* find_next_line(const unsigned char* cur_line, bool *is_sho
|
||||||
if (prefs.line_mode==JOIN || newlines>0) {
|
if (prefs.line_mode==JOIN || newlines>0) {
|
||||||
while (spaces) {
|
while (spaces) {
|
||||||
spaces--;
|
spaces--;
|
||||||
ADVANCE_COUNTERS(' ');
|
advance_conters(' ', &k, &width);
|
||||||
if (LINE_IS_FULL) {
|
if (line_is_full(k, width)) {
|
||||||
size = search_len = j;
|
size = search_len = j;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -879,14 +887,14 @@ static unsigned char* find_next_line(const unsigned char* cur_line, bool *is_sho
|
||||||
* while drawing. */
|
* while drawing. */
|
||||||
search_len = size;
|
search_len = size;
|
||||||
spaces=0;
|
spaces=0;
|
||||||
ADVANCE_COUNTERS(' ');
|
advance_conters(' ', &k, &width);
|
||||||
if (LINE_IS_FULL) {
|
if (line_is_full(k, width)) {
|
||||||
size = search_len = j;
|
size = search_len = j;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
first_chars = false;
|
first_chars = false;
|
||||||
ADVANCE_COUNTERS(c);
|
advance_conters(ch, &k, &width);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue