I personally found the code hard to read,

The original looked like this:

tabs (sv, line)
    char *sv[], *line;
{
char *p;
int n 0;
sv[n++] = line;
for( p= line; *p; p++)
    {
    if (*p == '\n')
        {
        *p=0;
        sv[n++] = p+1;
        }
    }
return(n-1);
}
class (nt, tv)
    char *tv[];
{
if (hastype (nt, tv, 'J'))
    return("1 journal-article");
if (hastype (nt, tv, 'B'))
    return("3 article-in-book");
if (hastype (nt, tv, 'R'))
    return ("4 tech-report");
if (hastype (nt, tv, 'G'))
    return ("4 tech-report");
if (hastype (nt, tv, 'I'))
    return("2 book");
if (hastype (nt, tv,'M'))
    return ("5 bell-tm");
return("0 other");
}