142297Smarc /*- 2*62427Sbostic * Copyright (c) 1990, 1993 3*62427Sbostic * The Regents of the University of California. All rights reserved. 442297Smarc * 542297Smarc * %sccs.include.redist.c% 642297Smarc */ 742297Smarc 842297Smarc #ifndef lint 9*62427Sbostic static char sccsid[] = "@(#)foldit.c 8.1 (Berkeley) 06/06/93"; 1042297Smarc #endif /* not lint */ 1142297Smarc foldit(chunk,col,max)1242297Smarcfoldit(chunk, col, max) 1342297Smarc char *chunk; 1442297Smarc { 1542297Smarc register char *cp; 1642297Smarc 1742297Smarc /* 1842297Smarc * Keep track of column position. Insert hidden newline 1942297Smarc * if this chunk puts us over the limit. 2042297Smarc */ 2142297Smarc again: 2242297Smarc cp = chunk; 2342297Smarc while (*cp) { 2442297Smarc switch(*cp) { 2542297Smarc case '\n': 2642297Smarc case '\r': 2742297Smarc col = 0; 2842297Smarc break; 2942297Smarc case '\t': 3042297Smarc col = col + 8 &~ 07; 3142297Smarc break; 3242297Smarc case '\b': 3342297Smarc col = col ? col - 1 : 0; 3442297Smarc break; 3542297Smarc default: 3642297Smarc col++; 3742297Smarc } 3842297Smarc if (col > (max - 2)) { 3942297Smarc printf("\\\n"); 4042297Smarc col = 0; 4142297Smarc goto again; 4242297Smarc } 4342297Smarc cp++; 4442297Smarc } 4542297Smarc return (col); 4642297Smarc } 47