Correzione alla CBuildKey: se il campo e' pieno di spazi ed e' di

tipo numerico mette uno '0' sul primo byte. Necessario per ricercare le
chiavi sugli indici Codebase.


git-svn-id: svn://10.65.10.50/trunk@1569 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
angelo 1995-07-06 15:05:23 +00:00
parent 5ec48bfc51
commit bdfd171358

View File

@ -209,14 +209,13 @@ HIDDEN int CBuildKey(RecDes *recd, int numkey, RecType recin, char *key, bool b
key[l + len - 1] = '0'; key[l + len - 1] = '0';
} }
else else
if (!build_x_cb && ((f == _intfld) || (f == _longfld) || (f == _wordfld))) if ((f == _intfld) || (f == _longfld) || (f == _wordfld))
{ {
int w = l, j = l + len; int w = l, j = l + len;
while (w < j && key[w] == ' ') w++; while (w < j && key[w] == ' ') w++;
while (w < j && key[w] == '0') while (w < j && key[w] == '0') key[w++] = ' ';
key[w++] = ' '; if (build_x_cb && (w == j)) key[w-1] = '0';
} }
if (upp) if (upp)
for (int i = l+len-1; i >= l; i--) for (int i = l+len-1; i >= l; i--)
key[i] = toupper(key[i]); key[i] = toupper(key[i]);