ungetc_nolock
int __cdecl ungetc_nolock(int Ch, FILE *File){
int flag;
char *base;
char *ptr;
char *v5;
int result;
if( !File )
goto LABEL_14;
if( Ch == -1 )
return -1;
flag = File->_flag;
if( (flag & 1) == 0 && (flag & 0x82) != 0x80 )
return -1;
base = File->_base;
if( !base )
{
LABEL_14:
xHalTimerWatchdogStop(0i64, 0i64);
return -1;
}
ptr = File->_ptr;
if( File->_ptr != base )
{
LABEL_9:
v5 = ptr - 1;
File->_ptr = ptr - 1;
if( (flag & 0x40) != 0 )
{
if( *v5 != (_BYTE)Ch )
{
File->_ptr = ptr;
return -1;
}
}
else
{
*v5 = Ch;
flag = File->_flag;
}
++File->_cnt;
result = (unsigned __int8)Ch;
File->_flag = flag & 0xFFFFFFEE | 1;
return result;
}
if( !File->_cnt )
{
++ptr;
goto LABEL_9;
}
return -1;
}Referenced by:
ReadString
input_s