User:Jnc/wiki.e

/* A personal favourite - convert paragraphs to very long lines, and copies the

* result to the clipboard - very useful for doing text on Wikipedia.

* It knows about Wikipedia syntax, so it supresses the line collection

* wherever i) the preceding line ended with a '=' (i.e. it was a section

* header line), or the next line starts with a '*' or '#' (i.e.* it's a list

* element), a ':' (i.e. it's an indented section), or a '<' (i.e. it's a

* comment).

*/

command wikify_region() on reg_tab[ALT('W')]

{ int obuf, wbuf;

char c, oc, nc;

save_spot point;

fix_region();

obuf = bufnum;

wbuf = zap("-wiki-");

oc = '\n';

while (point < mark) {

c = curchar();

point++;

if (c != '\n') {

binsert(wbuf, c);

if (c == '=')

oc = '=';

else

oc = '+';

continue;

}

nc = curchar();

if ((oc != '=') && (oc != '\n') &&

(nc != ':') && (nc != '*') && (nc != '#') && (nc != '<') &&

(nc != '\n')) {

binsert(wbuf, ' ');

oc = '-';

continue;

}

binsert(wbuf, '\n');

oc = '\n';

}

bufnum = wbuf;

point = 0;

mark = size();

copy_to_clipboard();

bufnum = obuf;

say("Region Wikified.");

}