diff --git a/CImg.h b/CImg.h index af63bcb6bf01df8296a6ef1f325cd64e58f89f0e..6e66a01d4b66c0dd56cadde822fa82c6dfac0626 100644 --- a/CImg.h +++ b/CImg.h @@ -16349,49 +16349,49 @@ namespace cimg_library_suffixed { if (nb==2 && sep=='%') _cimg_mp_constant(val/100); if (ss1==se) switch (*ss) { // One-char reserved variable - case 'c' : _cimg_mp_return(reserved_label['c']!=~0U?reserved_label['c']:_cimg_mp_slot_c); - case 'd' : _cimg_mp_return(reserved_label['d']!=~0U?reserved_label['d']:20); - case 'e' : _cimg_mp_return(reserved_label['e']!=~0U?reserved_label['e']:27); - case 'h' : _cimg_mp_return(reserved_label['h']!=~0U?reserved_label['h']:19); - case 'l' : _cimg_mp_return(reserved_label['l']!=~0U?reserved_label['l']:26); - case 'r' : _cimg_mp_return(reserved_label['r']!=~0U?reserved_label['r']:22); - case 's' : _cimg_mp_return(reserved_label['s']!=~0U?reserved_label['s']:21); - case 't' : _cimg_mp_return(reserved_label['t']!=~0U?reserved_label['t']:17); - case 'w' : _cimg_mp_return(reserved_label['w']!=~0U?reserved_label['w']:18); - case 'x' : _cimg_mp_return(reserved_label['x']!=~0U?reserved_label['x']:_cimg_mp_slot_x); - case 'y' : _cimg_mp_return(reserved_label['y']!=~0U?reserved_label['y']:_cimg_mp_slot_y); - case 'z' : _cimg_mp_return(reserved_label['z']!=~0U?reserved_label['z']:_cimg_mp_slot_z); + case 'c' : _cimg_mp_return(reserved_label[(unsigned char) 'c']!=~0U?reserved_label[(unsigned char) 'c']:_cimg_mp_slot_c); + case 'd' : _cimg_mp_return(reserved_label[(unsigned char) 'd']!=~0U?reserved_label[(unsigned char) 'd']:20); + case 'e' : _cimg_mp_return(reserved_label[(unsigned char) 'e']!=~0U?reserved_label[(unsigned char) 'e']:27); + case 'h' : _cimg_mp_return(reserved_label[(unsigned char) 'h']!=~0U?reserved_label[(unsigned char) 'h']:19); + case 'l' : _cimg_mp_return(reserved_label[(unsigned char) 'l']!=~0U?reserved_label[(unsigned char) 'l']:26); + case 'r' : _cimg_mp_return(reserved_label[(unsigned char) 'r']!=~0U?reserved_label[(unsigned char) 'r']:22); + case 's' : _cimg_mp_return(reserved_label[(unsigned char) 's']!=~0U?reserved_label[(unsigned char) 's']:21); + case 't' : _cimg_mp_return(reserved_label[(unsigned char) 't']!=~0U?reserved_label[(unsigned char) 't']:17); + case 'w' : _cimg_mp_return(reserved_label[(unsigned char) 'w']!=~0U?reserved_label[(unsigned char) 'w']:18); + case 'x' : _cimg_mp_return(reserved_label[(unsigned char) 'x']!=~0U?reserved_label[(unsigned char) 'x']:_cimg_mp_slot_x); + case 'y' : _cimg_mp_return(reserved_label[(unsigned char) 'y']!=~0U?reserved_label[(unsigned char) 'y']:_cimg_mp_slot_y); + case 'z' : _cimg_mp_return(reserved_label[(unsigned char) 'z']!=~0U?reserved_label[(unsigned char) 'z']:_cimg_mp_slot_z); case 'u' : - if (reserved_label['u']!=~0U) _cimg_mp_return(reserved_label['u']); + if (reserved_label[(unsigned char) 'u']!=~0U) _cimg_mp_return(reserved_label[(unsigned char) 'u']); _cimg_mp_scalar2(mp_u,0,1); case 'g' : - if (reserved_label['g']!=~0U) _cimg_mp_return(reserved_label['g']); + if (reserved_label[(unsigned char) 'g']!=~0U) _cimg_mp_return(reserved_label[(unsigned char) 'g']); _cimg_mp_scalar0(mp_g); case 'i' : - if (reserved_label['i']!=~0U) _cimg_mp_return(reserved_label['i']); + if (reserved_label[(unsigned char) 'i']!=~0U) _cimg_mp_return(reserved_label[(unsigned char) 'i']); _cimg_mp_scalar0(mp_i); case 'I' : _cimg_mp_op("Variable 'I'"); - if (reserved_label['I']!=~0U) _cimg_mp_return(reserved_label['I']); + if (reserved_label[(unsigned char) 'I']!=~0U) _cimg_mp_return(reserved_label[(unsigned char) 'I']); _cimg_mp_check_vector0(imgin._spectrum); need_input_copy = true; pos = vector(imgin._spectrum); CImg<ulongT>::vector((ulongT)mp_Joff,pos,0,0,imgin._spectrum).move_to(code); _cimg_mp_return(pos); case 'R' : - if (reserved_label['R']!=~0U) _cimg_mp_return(reserved_label['R']); + if (reserved_label[(unsigned char) 'R']!=~0U) _cimg_mp_return(reserved_label[(unsigned char) 'R']); need_input_copy = true; _cimg_mp_scalar6(mp_ixyzc,_cimg_mp_slot_x,_cimg_mp_slot_y,_cimg_mp_slot_z,0,0,0); case 'G' : - if (reserved_label['G']!=~0U) _cimg_mp_return(reserved_label['G']); + if (reserved_label[(unsigned char) 'G']!=~0U) _cimg_mp_return(reserved_label[(unsigned char) 'G']); need_input_copy = true; _cimg_mp_scalar6(mp_ixyzc,_cimg_mp_slot_x,_cimg_mp_slot_y,_cimg_mp_slot_z,1,0,0); case 'B' : - if (reserved_label['B']!=~0U) _cimg_mp_return(reserved_label['B']); + if (reserved_label[(unsigned char) 'B']!=~0U) _cimg_mp_return(reserved_label[(unsigned char) 'B']); need_input_copy = true; _cimg_mp_scalar6(mp_ixyzc,_cimg_mp_slot_x,_cimg_mp_slot_y,_cimg_mp_slot_z,2,0,0); case 'A' : - if (reserved_label['A']!=~0U) _cimg_mp_return(reserved_label['A']); + if (reserved_label[(unsigned char) 'A']!=~0U) _cimg_mp_return(reserved_label[(unsigned char) 'A']); need_input_copy = true; _cimg_mp_scalar6(mp_ixyzc,_cimg_mp_slot_x,_cimg_mp_slot_y,_cimg_mp_slot_z,3,0,0); } @@ -16483,7 +16483,7 @@ namespace cimg_library_suffixed { // Assign image value (direct). if (l_variable_name>2 && (*ss=='i' || *ss=='j' || *ss=='I' || *ss=='J') && (*ss1=='(' || *ss1=='[') && - (reserved_label[*ss]==~0U || *ss1=='(' || !_cimg_mp_is_vector(reserved_label[*ss]))) { + (reserved_label[(unsigned char) *ss]==~0U || *ss1=='(' || !_cimg_mp_is_vector(reserved_label[(unsigned char) *ss]))) { is_relative = *ss=='j' || *ss=='J'; if (*ss1=='[' && *ve1==']') { // i/j/I/J[_#ind,offset] = value @@ -16655,7 +16655,7 @@ namespace cimg_library_suffixed { cimglist_for(variable_def,i) if (!std::strcmp(variable_name,variable_def[i])) { arg1 = variable_pos[i]; break; } - } else arg1 = reserved_label[*variable_name]; // Single-char variable + } else arg1 = reserved_label[(unsigned char) *variable_name]; // Single-char variable if (arg1==~0U) compile(ss,s0 - 1,depth1,0,is_single); // Variable does not exist -> error else { // Variable already exists if (_cimg_mp_is_scalar(arg1)) compile(ss,s,depth1,0,is_single); // Variable is not a vector -> error @@ -17919,7 +17919,7 @@ namespace cimg_library_suffixed { s0 = s1 = std::strchr(ss,'['); if (s0) { do { --s1; } while (cimg::is_blank(*s1)); cimg::swap(*s0,*++s1); } if ((*ss=='I' || *ss=='J') && *ss1=='[' && - (reserved_label[*ss]==~0U || !_cimg_mp_is_vector(reserved_label[*ss]))) { // Image value as a vector + (reserved_label[(unsigned char) *ss]==~0U || !_cimg_mp_is_vector(reserved_label[(unsigned char) *ss]))) { // Image value as a vector if (*ss2=='#') { // Index specified s0 = ss3; while (s0<se1 && (*s0!=',' || level[s0 - expr._data]!=clevel1)) ++s0; p1 = compile(ss3,s0++,depth1,0,is_single); @@ -17962,7 +17962,7 @@ namespace cimg_library_suffixed { } if ((*ss=='i' || *ss=='j') && *ss1=='[' && - (reserved_label[*ss]==~0U || !_cimg_mp_is_vector(reserved_label[*ss]))) { // Image value as a scalar + (reserved_label[(unsigned char) *ss]==~0U || !_cimg_mp_is_vector(reserved_label[(unsigned char) *ss]))) { // Image value as a scalar if (*ss2=='#') { // Index specified s0 = ss3; while (s0<se1 && (*s0!=',' || level[s0 - expr._data]!=clevel1)) ++s0; p1 = compile(ss3,s0++,depth1,0,is_single); @@ -20588,8 +20588,8 @@ namespace cimg_library_suffixed { if (variable_name[1]) { // Multi-char variable cimglist_for(variable_def,i) if (!std::strcmp(variable_name,variable_def[i])) _cimg_mp_return(variable_pos[i]); - } else if (reserved_label[*variable_name]!=~0U) // Single-char variable - _cimg_mp_return(reserved_label[*variable_name]); + } else if (reserved_label[(unsigned char) *variable_name]!=~0U) // Single-char variable + _cimg_mp_return(reserved_label[(unsigned char) *variable_name]); // Reached an unknown item -> error. is_sth = true; // is_valid_variable_name @@ -45566,7 +45566,7 @@ namespace cimg_library_suffixed { c = (unsigned char)text[i]; switch (c) { case '\n' : y+=font[0]._height; if (x>w) w = x; x = 0; break; - case '\t' : x+=4*font[' ']._width; break; + case '\t' : x+=4*font[(unsigned char) ' ']._width; break; default : if (c<font._width) x+=font[c]._width; } } @@ -45582,7 +45582,7 @@ namespace cimg_library_suffixed { const unsigned char c = (unsigned char)text[i]; switch (c) { case '\n' : y+=font[0]._height; x = x0; break; - case '\t' : x+=4*font[' ']._width; break; + case '\t' : x+=4*font[(unsigned char) ' ']._width; break; default : if (c<font._width) { CImg<T> letter = font[c]; if (letter) { @@ -45607,7 +45607,7 @@ namespace cimg_library_suffixed { } // [internal] Version used to display text in interactive viewers. - CImg<T>& __draw_text(const char *const text, const bool is_down, ...) { + CImg<T>& __draw_text(const char *const text, const int is_down, ...) { CImg<charT> tmp(2048); std::va_list ap; va_start(ap,is_down); cimg_vsnprintf(tmp,tmp._width,text,ap); va_end(ap); @@ -60574,11 +60574,11 @@ namespace cimg_library_suffixed { cimg_forXY(letter,x,y) if (letter(x,y)) { if (x<xmin) xmin = x; if (x>xmax) xmax = x; } if (xmin<=xmax) letter.crop(xmin,0,xmax,letter._height - 1); } - font[' '].resize(font['f']._width,-100,-100,-100,0); - if (' ' + 256<font.size()) font[' ' + 256].resize(font['f']._width,-100,-100,-100,0); + font[(unsigned char) ' '].resize(font[(unsigned char) 'f']._width,-100,-100,-100,0); + if (' ' + 256<font.size()) font[' ' + 256].resize(font[(unsigned char) 'f']._width,-100,-100,-100,0); } cimglist_for(font,l) - font[l].resize(std::max(font[';']._width,font[l]._width) + padding_x, + font[l].resize(std::max(font[(unsigned char) ';']._width,font[l]._width) + padding_x, -100,1,1,0,0,0.55f); font.insert(256,0); cimglist_for_in(font,0,255,l) font[l].assign(font[l + 256]._width,font[l + 256]._height,1,3,1);