📄 fileutil.c
字号:
}
/************************************************************************
* FUNCTION
*
* pc_usewdcard
*
* DESCRIPTION
*
* Check the use wild card.
*
* AUTHOR
*
* Kyoichiro Toda
*
* INPUTS
*
* code name
*
* OUTPUTS
*
* YES Use the wild card.
* NO Not use the wild card.
*
*************************************************************************/
INT pc_use_wdcard(UINT8 *code)
{
while (*code)
{
if ( (*code == '*') || (*code == '?') )
return(YES);
code++;
}
return(NO);
}
/************************************************************************
* FUNCTION
*
* pc_use_upperbar
*
* DESCRIPTION
*
* Check the use upperbar name.
* ' '(space), '.'(period), '=', '[', ']', ';', ':', '+', ','
*
* AUTHOR
*
* Kyoichiro Toda
*
* INPUTS
*
* code File name or File extension
*
* OUTPUTS
*
* YES Use the upperbar name.
* NO Not use the upperbar name.
*
*************************************************************************/
INT pc_use_upperbar(UINT8 *code)
{
UINT16 n, j;
UINT16 period = 0;
n = j = 0;
while (*code)
{
switch (*code)
{
case ' ':
case '=':
case '[':
case ']':
case ';':
case '+':
case ',':
return(YES);
case '.':
{
/* filename.... or extension..... */
if (*(code+1) == '\0')
{
period = j = 0;
}
else
{
period++;
}
break;
}
default:
break;
}
/* Check the number of extension */
if (period)
{
if (j++ > 3)
return(YES);
}
/* Check the number of filename */
else
{
n++;
if (n > 8)
return(YES);
}
code++;
}
/* Another differentiate filename and extension ? */
if (period > 1)
return(YES);
return(NO);
}
/************************************************************************
* FUNCTION
*
* pc_checkpath
*
* DESCRIPTION
*
* Check the path name or Volume lable.
*
* AUTHOR
*
* Kyoichiro Toda
*
* INPUTS
*
* code Path name or Volume lable.
* vol YES : Volume lable
* NO : Path name
*
* OUTPUTS
*
* YES Success.
* NO Path name error.
*
*************************************************************************/
INT pc_checkpath(UINT8 *code, INT vol)
{
UINT16 n = 0;
if (!code)
return(YES);
while (code[n])
{
if ( (code[n] < 0x20) || (code[n] > 0x7E) )
return(NO);
if (!vol)
{
if (code[n] == ':')
{
if ( (n != 1) || (code[n+1] != '\\') )
return(NO);
}
if (code[n] == '\\')
{
if (code[n+1] == '\\')
return(NO);
}
}
else
{
switch (code[n])
{
case '.':
case ':':
case '=':
case '[':
case '\\':
case ']':
return(NO);
default:
break;
}
}
switch (code[n])
{
case '"':
case '*':
case ',':
case '/':
case ';':
case '<':
case '>':
case '?':
case '|':
return(NO);
default:
break;
}
n++;
}
return(YES);
}
/************************************************************************
* FUNCTION
*
* _swap16
*
* DESCRIPTION
*
* Convert a 16 bit intel item to a portable 16 bit.
*
* AUTHOR
*
* Takahiro Takahashi
*
* INPUTS
*
* *to After Convert data.
* *from Before Convert data.
*
* OUTPUTS
*
* None.
*
*************************************************************************/
VOID _swap16(UINT16 *to, UINT16 *from)
{
UINT8 *fptr;
UINT8 *tptr;
fptr = (UINT8 *)from;
tptr = (UINT8 *)to;
*tptr = *(fptr + 1);
*(tptr + 1) = *(fptr);
}
/************************************************************************
* FUNCTION
*
* _swap32
*
* DESCRIPTION
*
* Convert a 32 bit intel item to a portable 32 bit.
*
* AUTHOR
*
* Takahiro Takahashi
*
* INPUTS
*
* *to After Convert data.
* *from Before Convert data.
*
* OUTPUTS
*
* None.
*
*************************************************************************/
VOID _swap32(UINT32 *to, UINT32 *from)
{
UINT8 *fptr;
UINT8 *tptr;
fptr = (UINT8 *)from;
tptr = (UINT8 *)to;
*tptr = *(fptr + 3);
*(tptr + 1) = *(fptr + 2);
*(tptr + 2) = *(fptr + 1);
*(tptr + 3) = *(fptr);
}
/************************************************************************
* FUNCTION
*
* _through16
*
* DESCRIPTION
*
* 16bit data byte through
*
* AUTHOR
*
* Kyoichiro Toda
*
*
* INPUTS
*
* *to After Convert data.
* *from Before Convert data.
*
* OUTPUTS
*
* None.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -