mirror of
https://github.com/tesseract-ocr/tesseract.git
synced 2024-12-14 08:39:27 +08:00
75 lines
2.1 KiB
C++
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 */
|
||
|
}
|
||
|
}
|