Fix ticket #15 (muddled vers/minvers parameters)
This commit is contained in:
parent
d98b26c4b4
commit
ee7e383e83
56
sortdir.c
56
sortdir.c
|
@ -310,10 +310,10 @@ void err(enum errtype severity, const char *fmt, ...);
|
||||||
void flushall(void);
|
void flushall(void);
|
||||||
int readdiskblock(uchar device, uint blocknum, char *buf);
|
int readdiskblock(uchar device, uint blocknum, char *buf);
|
||||||
int writediskblock(uchar device, uint blocknum, char *buf);
|
int writediskblock(uchar device, uint blocknum, char *buf);
|
||||||
void fixcase(char *in, char *out, uchar minvers, uchar vers, uchar len);
|
void fixcase(char *in, char *out, uchar vers, uchar minvers, uchar len);
|
||||||
void lowercase(char *p, uchar len, uchar *minvers, uchar *vers);
|
void lowercase(char *p, uchar len, uchar *vers, uchar *minvers);
|
||||||
void uppercase(char *p, uchar len, uchar *minvers, uchar *vers);
|
void uppercase(char *p, uchar len, uchar *vers, uchar *minvers);
|
||||||
void initialcase(uchar mode, char *p, uchar len, uchar *minvers, uchar *vers);
|
void initialcase(uchar mode, char *p, uchar len, uchar *vers, uchar *minvers);
|
||||||
void firstblk(char *dirname, uchar *device, uint *block);
|
void firstblk(char *dirname, uchar *device, uint *block);
|
||||||
void readdatetime(uchar time[4], struct datetime *dt);
|
void readdatetime(uchar time[4], struct datetime *dt);
|
||||||
void writedatetime(struct datetime *dt, uchar time[4]);
|
void writedatetime(struct datetime *dt, uchar time[4]);
|
||||||
|
@ -570,26 +570,26 @@ int writediskblock(uchar device, uint blocknum, char *buf) {
|
||||||
* as a bitmap representing which characters are upper and which are
|
* as a bitmap representing which characters are upper and which are
|
||||||
* lowercase
|
* lowercase
|
||||||
*/
|
*/
|
||||||
void fixcase(char *in, char *out, uchar minvers, uchar vers, uchar len) {
|
void fixcase(char *in, char *out, uchar vers, uchar minvers, uchar len) {
|
||||||
uint i;
|
uint i;
|
||||||
uchar idx = 0;
|
uchar idx = 0;
|
||||||
if (!(vers & 0x80)) {
|
if (!(minvers & 0x80)) {
|
||||||
for (idx = 0; idx < NMLEN; ++idx)
|
for (idx = 0; idx < NMLEN; ++idx)
|
||||||
out[idx] = in[idx];
|
out[idx] = in[idx];
|
||||||
out[len] = '\0';
|
out[len] = '\0';
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
vers <<= 1;
|
minvers <<= 1;
|
||||||
for (i = 0; i < 7; ++i) {
|
for (i = 0; i < 7; ++i) {
|
||||||
out[idx] = ((vers & 0x80) ? tolower(in[idx]) : in[idx]);
|
|
||||||
++idx;
|
|
||||||
vers <<= 1;
|
|
||||||
}
|
|
||||||
for (i = 0; i < 8; ++i) {
|
|
||||||
out[idx] = ((minvers & 0x80) ? tolower(in[idx]) : in[idx]);
|
out[idx] = ((minvers & 0x80) ? tolower(in[idx]) : in[idx]);
|
||||||
++idx;
|
++idx;
|
||||||
minvers <<= 1;
|
minvers <<= 1;
|
||||||
}
|
}
|
||||||
|
for (i = 0; i < 8; ++i) {
|
||||||
|
out[idx] = ((vers & 0x80) ? tolower(in[idx]) : in[idx]);
|
||||||
|
++idx;
|
||||||
|
vers <<= 1;
|
||||||
|
}
|
||||||
out[len] = '\0';
|
out[len] = '\0';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -597,28 +597,28 @@ void fixcase(char *in, char *out, uchar minvers, uchar vers, uchar len) {
|
||||||
* Convert filename pointed to by p into lower case (which is recorded
|
* Convert filename pointed to by p into lower case (which is recorded
|
||||||
* as a bitmap in the vers and minvers fields.
|
* as a bitmap in the vers and minvers fields.
|
||||||
*/
|
*/
|
||||||
void lowercase(char *p, uchar len, uchar *minvers, uchar *vers) {
|
void lowercase(char *p, uchar len, uchar *vers, uchar *minvers) {
|
||||||
uint i;
|
uint i;
|
||||||
uchar idx = 0;
|
uchar idx = 0;
|
||||||
*vers = 0x01;
|
*vers = 0x00;
|
||||||
*minvers = 0x00;
|
*minvers = 0x01;
|
||||||
for (i = 0; i < 7; ++i) {
|
for (i = 0; i < 7; ++i) {
|
||||||
*vers <<= 1;
|
|
||||||
if ((idx < len) && isalpha(p[idx++]))
|
|
||||||
*vers |= 0x01;
|
|
||||||
}
|
|
||||||
for (i = 0; i < 8; ++i) {
|
|
||||||
*minvers <<= 1;
|
*minvers <<= 1;
|
||||||
if ((idx < len) && isalpha(p[idx++]))
|
if ((idx < len) && isalpha(p[idx++]))
|
||||||
*minvers |= 0x01;
|
*minvers |= 0x01;
|
||||||
}
|
}
|
||||||
|
for (i = 0; i < 8; ++i) {
|
||||||
|
*vers <<= 1;
|
||||||
|
if ((idx < len) && isalpha(p[idx++]))
|
||||||
|
*vers |= 0x01;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Convert filename pointed to by p into upper case (which is recorded
|
* Convert filename pointed to by p into upper case (which is recorded
|
||||||
* as a bitmap in the vers and minvers fields.
|
* as a bitmap in the vers and minvers fields.
|
||||||
*/
|
*/
|
||||||
void uppercase(char*, uchar, uchar *minvers, uchar *vers) {
|
void uppercase(char*, uchar, uchar *vers, uchar *minvers) {
|
||||||
*vers = 0x00;
|
*vers = 0x00;
|
||||||
*minvers = 0x00;
|
*minvers = 0x00;
|
||||||
}
|
}
|
||||||
|
@ -629,27 +629,27 @@ void uppercase(char*, uchar, uchar *minvers, uchar *vers) {
|
||||||
* If mode = 0 then just uppercase the initial char ("Read.me")
|
* If mode = 0 then just uppercase the initial char ("Read.me")
|
||||||
* otherwise camel-case the name ("Read.Me")
|
* otherwise camel-case the name ("Read.Me")
|
||||||
*/
|
*/
|
||||||
void initialcase(uchar mode, char *p, uchar len, uchar *minvers, uchar *vers) {
|
void initialcase(uchar mode, char *p, uchar len, uchar *vers, uchar *minvers) {
|
||||||
uint i;
|
uint i;
|
||||||
uchar idx = 0;
|
uchar idx = 0;
|
||||||
uchar capsflag = 1;
|
uchar capsflag = 1;
|
||||||
*vers = 0x01;
|
*vers = 0x00;
|
||||||
*minvers = 0x00;
|
*minvers = 0x01;
|
||||||
for (i = 0; i < 7; ++i) {
|
for (i = 0; i < 7; ++i) {
|
||||||
*vers <<= 1;
|
*minvers <<= 1;
|
||||||
if ((idx < len) && isalpha(p[idx++]))
|
if ((idx < len) && isalpha(p[idx++]))
|
||||||
if (!capsflag)
|
if (!capsflag)
|
||||||
*vers |= 0x01;
|
*minvers |= 0x01;
|
||||||
if ((mode == 1) && !isalpha(p[idx-1]))
|
if ((mode == 1) && !isalpha(p[idx-1]))
|
||||||
capsflag = 1;
|
capsflag = 1;
|
||||||
else
|
else
|
||||||
capsflag = 0;
|
capsflag = 0;
|
||||||
}
|
}
|
||||||
for (i = 0; i < 8; ++i) {
|
for (i = 0; i < 8; ++i) {
|
||||||
*minvers <<= 1;
|
*vers <<= 1;
|
||||||
if ((idx < len) && isalpha(p[idx++]))
|
if ((idx < len) && isalpha(p[idx++]))
|
||||||
if (!capsflag)
|
if (!capsflag)
|
||||||
*minvers |= 0x01;
|
*vers |= 0x01;
|
||||||
if ((mode == 1) && !isalpha(p[idx-1]))
|
if ((mode == 1) && !isalpha(p[idx-1]))
|
||||||
capsflag = 1;
|
capsflag = 1;
|
||||||
else
|
else
|
||||||
|
|
BIN
sortdir.po
BIN
sortdir.po
Binary file not shown.
Loading…
Reference in New Issue