summaryrefslogtreecommitdiffstats
path: root/examples/validchars/validchr.c
diff options
context:
space:
mode:
Diffstat (limited to 'examples/validchars/validchr.c')
-rw-r--r--examples/validchars/validchr.c123
1 files changed, 0 insertions, 123 deletions
diff --git a/examples/validchars/validchr.c b/examples/validchars/validchr.c
deleted file mode 100644
index 415546cb841..00000000000
--- a/examples/validchars/validchr.c
+++ /dev/null
@@ -1,123 +0,0 @@
-/* by tino@augsburg.net
- */
-
-#include <stdio.h>
-#include <string.h>
-
-#include <dirent.h>
-
-unsigned char
-test(void)
-{
- DIR *dir;
- struct dirent *dp;
- unsigned char c;
-
- if ((dir=opendir("."))==0)
- {
- perror("open .");
- return 0;
- }
- c = 0;
- while ((dp=readdir(dir))!=0)
- {
- size_t len;
-
- len = strlen(dp->d_name);
- if (len<4)
- continue;
- if (strcmp(dp->d_name+len-4, ".TST"))
- continue;
- if (len!=5)
- {
- fprintf(stderr, "warning: %s\n", dp->d_name);
- printf(" length");
- continue;
- }
- if (c)
- printf(" double%d\n", c);
- c = dp->d_name[0];
- }
- if (closedir(dir))
- perror("close .");
- return c;
-}
-
-int
-main(void)
-{
- char name[256];
- unsigned char map[256], upper[256], lower[256];
- int i, j, c;
- FILE *fd;
-
- if (test())
- {
- printf("There are *.TST files, please remove\n");
- return 0;
- }
- for (i=0; ++i<256; )
- {
- lower[i] = i;
- upper[i] = 0;
- }
- for (i=256; --i; )
- {
- map[i] = i;
- strcpy(name, "..TST");
- name[0] = i;
- printf("%d:", i);
- if ((fd=fopen(name, "w"))==0)
- printf(" open");
- else
- fclose(fd);
- c = test();
- if (unlink(name))
- printf(" unlink");
- if (c==i)
- printf(" ok");
- else
- printf(" %d", c);
- printf("\n");
- if (c!=i)
- {
- upper[c]++;
- lower[c] = i;
- }
- map[i] = c;
- }
-
- /* Uppercase characters are detected above on:
- * The character is mapped to itself and there is a
- * character which maps to it.
- * Lowercase characters are the lowest character pointing to another one.
- * Else it is a one way character.
- *
- * For this reason we have to process the list
- * 1) for 'one way' characters
- * 'one way' is something which is no upper and no lower character.
- * This is an awful, crude and ugly hack due to missing Samba support.
- * 2) for true uppercase/lowercase characters
- * 3) for standalone characters
- * Note that there might be characters which do not fall into 1 to 3.
- */
- printf("\n valid chars =");
- for (i=0; ++i<256; )
- if (map[i] && map[i]!=i && lower[map[i]]!=i)
- {
- if (!upper[i])
- printf(" %d:%d %d:%d %d:%d", /*1*/
- map[i], i, i, map[i], map[i], map[i]);
- else
- fprintf(stderr, "ignoring map %d->%d because of %d->%d\n",
- lower[i], i, i, map[i]);
- }
- for (i=0; ++i<256; )
- if (map[i] && map[i]==i)
- if (upper[i])
- printf(" %d:%d", lower[i], i); /*2*/
- else
- printf(" %d", i); /*3*/
- printf("\n");
- return 0;
-}