tesseract/classify/chartoname.cpp
2007-03-07 20:03:40 +00:00

75 lines
2.1 KiB
C++

/**************************************************************************
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
** You may obtain a copy of the License at
** http://www.apache.org/licenses/LICENSE-2.0
** Unless required by applicable law or agreed to in writing, software
** distributed under the License is distributed on an "AS IS" BASIS,
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
** See the License for the specific language governing permissions and
** limitations under the License.
**************************************************************************/
#include <string.h>
#include <ctype.h>
/*chartoname(name,c,dir) converts c into a useful filename*/
void chartoname(register char *name, /*result */
char c, /*char to convert */
const char *dir) { /*directory to use */
char file[3]; /*filename */
int index; /*index of namelist */
static const char *namelist[] = {
"!bang",
"\"doubleq",
"#hash",
"$dollar",
"%percent",
"&and",
"'quote",
"(lround",
")rround",
"*asterisk",
"+plus",
",comma",
"-minus",
".dot",
"/slash",
":colon",
";semic",
"<less",
"=equal",
">greater",
"?question",
"@at",
"[lsquare",
"\\backsl",
"]rsquare",
"^uparr",
"_unders",
"`grave",
"{lbrace",
"|bar",
"}rbrace",
"~tilde"
};
strcpy(name, dir); /*add specific directory */
for (index = 0; index < sizeof namelist / sizeof (char *)
&& c != namelist[index][0]; index++);
if (index < sizeof namelist / sizeof (char *))
/*add text name */
strcat (name, &namelist[index][1]);
else {
if (isupper (c)) {
file[0] = 'c'; /*direct a-z or A-Z */
file[1] = c; /*direct a-z or A-Z */
file[2] = '\0';
}
else {
file[0] = c; /*direct a-z or A-Z */
file[1] = '\0';
}
strcat(name, file); /*append filename */
}
}