Monday, November 08, 2010 at 12:03 AM.

on getCanonicalName (linetext) {
		<<5/12/02; 12:14:05 AM by JES
			<<Drop all characters whose ascii value is above 127.
		<<11/6/2000; 6:12:56 PM by DW
			<<Take everything to the left of the hyphen (if present), remove all punctuation, and innerCase it. This is the string we use to refer to the directory page in a URI.
	local (i, name = linetext);
	for i = 1 to sizeof (name) {
		if name [i] == '-' {
			if i < sizeof (name) {
				if name [i + 1] == ' ' {
					name = string.trimwhitespace (string.mid (name, 1, i));
	local (ch);
	for i = sizeof (name) downto 1 {
		ch = name [i];
		if (not string.isalpha (ch)) and (not string.isnumeric (ch)) and (ch != ' ') {
			name = string.delete (name, i, 1)}
		else {
			if number (ch) > 127 {
				name = string.delete (name, i, 1)}}};
	return (string.innerCaseName (name))}
<<bundle //test code
	<<dialog.alert (getCanonicalName ("xml-rpc"))

This listing is for code that runs in the OPML Editor environment. I created these listings because I wanted the search engines to index it, so that when I want to look up something in my codebase I don't have to use the much slower search functionality in my object database. Dave Winer.