生成代码的的缩进?
我写了个生成代码的的缩进,但是在缩进到后面的时候就发现他缩进了多个,也就是到最后一步的缩进有问题!
大家帮帮忙,看那里出错了!!或者有什么更好的方法实现缩进的功能!比如说像VC++里面的遇到GOTO就放在前面,能智能点的!!!!
char alignText[128];
unsigned long alignsize = 0;
void asp_xml_spacein_write(char *ca_buf/*代码数据*/, unsigned long *size, int level)
{
char tempBuf[128];
memset(tempBuf, 0, 128);
if(alignsize == 0 || ca_buf == NULL)
{
alignText[alignsize++] = '\t';
atx_file_write(asp_xml_fd, &alignText[0], alignsize);
}
else
{
if(level)
{
memcpy(tempBuf, &alignText[0], alignsize);
*size += sprintf(ca_buf + *size, "%s", tempBuf);
}
else
{
alignText[alignsize++] = '\t';
memcpy(tempBuf, &alignText[0], alignsize);
*size += sprintf(ca_buf + *size, "%s", tempBuf);
}
}
}
void asp_xml_spaceout_write(char *ca_buf, unsigned long *size, int level)
{
char tempBuf[128];
memset(tempBuf, 0, 128);
if(alignsize - 1 == 0 || ca_buf == NULL)
{
atx_file_write(asp_xml_fd, &alignText[0], alignsize);
alignText[--alignsize] = NULL;
}
else
{
if(level)
{
memcpy(tempBuf, &alignText[0], alignsize);
*size += sprintf(ca_buf + *size, "%s", tempBuf);
}
else
{
memcpy(tempBuf, &alignText[0], alignsize);
*size += sprintf(ca_buf + *size, "%s", tempBuf);
alignText[--alignsize] = NULL;
}
}
}