glibc/tests/Regression/bz827362-RHEL6-2-ftell-after-fseek-moves-the-offset-on-a/fseek-wchar-j.c

362 lines
11 KiB
C
Raw Normal View History

#include <wchar.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <locale.h>
wchar_t *numbers[301] = {
L"ゼロ\n",
L"いち\n",
L"\n",
L"さん\n",
L"よん\n",
L"\n",
L"ろく\n",
L"なな\n",
L"はち\n",
L"きゅう\n",
L"じゅう\n",
L"じゅういち\n",
L"じゅうに\n",
L"じゅうさん\n",
L"じゅうよん\n",
L"じゅうご\n",
L"じゅうろく\n",
L"じゅうなな\n",
L"じゅうはち\n",
L"じゅうきゅう\n",
L"にじゅう\n",
L"にじゅういち\n",
L"にじゅうに\n",
L"にじゅうさん\n",
L"にじゅうよん\n",
L"にじゅうご\n",
L"にじゅうろく\n",
L"にじゅうなな\n",
L"にじゅうはち\n",
L"にじゅうきゅう\n",
L"さんじゅう\n",
L"さんじゅういち\n",
L"さんじゅうに\n",
L"さんじゅうさん\n",
L"さんじゅうよん\n",
L"さんじゅうご\n",
L"さんじゅうろく\n",
L"さんじゅうなな\n",
L"さんじゅうはち\n",
L"さんじゅうきゅう\n",
L"よんじゅう\n",
L"よんじゅういち\n",
L"よんじゅうに\n",
L"よんじゅうさん\n",
L"よんじゅうよん\n",
L"よんじゅうご\n",
L"よんじゅうろく\n",
L"よんじゅうなな\n",
L"よんじゅうはち\n",
L"よんじゅうきゅう\n",
L"ごじゅう\n",
L"ごじゅういち\n",
L"ごじゅうに\n",
L"ごじゅうさん\n",
L"ごじゅうよん\n",
L"ごじゅうご\n",
L"ごじゅうろく\n",
L"ごじゅうなな\n",
L"ごじゅうはち\n",
L"ごじゅうきゅう\n",
L"ろくじゅう\n",
L"ろくじゅういち\n",
L"ろくじゅうに\n",
L"ろくじゅうさん\n",
L"ろくじゅうよん\n",
L"ろくじゅうご\n",
L"ろくじゅうろく\n",
L"ろくじゅうなな\n",
L"ろくじゅうはち\n",
L"ろくじゅうきゅう\n",
L"ななじゅう\n",
L"ななじゅういち\n",
L"ななじゅうに\n",
L"ななじゅうさん\n",
L"ななじゅうよん\n",
L"ななじゅうご\n",
L"ななじゅうろく\n",
L"ななじゅうなな\n",
L"ななじゅうはち\n",
L"ななじゅうきゅう\n",
L"はちじゅう\n",
L"はちじゅういち\n",
L"はちじゅうに\n",
L"はちじゅうさん\n",
L"はちじゅうよん\n",
L"はちじゅうご\n",
L"はちじゅうろく\n",
L"はちじゅうなな\n",
L"はちじゅうはち\n",
L"はちじゅうきゅう\n",
L"きゅうじゅう\n",
L"きゅうじゅういち\n",
L"きゅうじゅうに\n",
L"きゅうじゅうさん\n",
L"きゅうじゅうよん\n",
L"きゅうじゅうご\n",
L"きゅうじゅうろく\n",
L"きゅうじゅうなな\n",
L"きゅうじゅうはち\n",
L"きゅうじゅうきゅう\n",
L"ひゃく\n",
L"ひゃくいち\n",
L"ひゃくに\n",
L"ひゃくさん\n",
L"ひゃくよん\n",
L"ひゃくご\n",
L"ひゃくろく\n",
L"ひゃくなな\n",
L"ひゃくはち\n",
L"ひゃくきゅう\n",
L"ひゃくじゅう\n",
L"ひゃくじゅういち\n",
L"ひゃくじゅうに\n",
L"ひゃくじゅうさん\n",
L"ひゃくじゅうよん\n",
L"ひゃくじゅうご\n",
L"ひゃくじゅうろく\n",
L"ひゃくじゅうなな\n",
L"ひゃくじゅうはち\n",
L"ひゃくじゅうきゅう\n",
L"ひゃくにじゅう\n",
L"ひゃくにじゅういち\n",
L"ひゃくにじゅうに\n",
L"ひゃくにじゅうさん\n",
L"ひゃくにじゅうよん\n",
L"ひゃくにじゅうご\n",
L"ひゃくにじゅうろく\n",
L"ひゃくにじゅうなな\n",
L"ひゃくにじゅうはち\n",
L"ひゃくにじゅうきゅう\n",
L"ひゃくさんじゅう\n",
L"ひゃくさんじゅういち\n",
L"ひゃくさんじゅうに\n",
L"ひゃくさんじゅうさん\n",
L"ひゃくさんじゅうよん\n",
L"ひゃくさんじゅうご\n",
L"ひゃくさんじゅうろく\n",
L"ひゃくさんじゅうなな\n",
L"ひゃくさんじゅうはち\n",
L"ひゃくさんじゅうきゅう\n",
L"ひゃくよんじゅう\n",
L"ひゃくよんじゅういち\n",
L"ひゃくよんじゅうに\n",
L"ひゃくよんじゅうさん\n",
L"ひゃくよんじゅうよん\n",
L"ひゃくよんじゅうご\n",
L"ひゃくよんじゅうろく\n",
L"ひゃくよんじゅうなな\n",
L"ひゃくよんじゅうはち\n",
L"ひゃくよんじゅうきゅう\n",
L"ひゃくごじゅう\n",
L"ひゃくごじゅういち\n",
L"ひゃくごじゅうに\n",
L"ひゃくごじゅうさん\n",
L"ひゃくごじゅうよん\n",
L"ひゃくごじゅうご\n",
L"ひゃくごじゅうろく\n",
L"ひゃくごじゅうなな\n",
L"ひゃくごじゅうはち\n",
L"ひゃくごじゅうきゅう\n",
L"ひゃくろくじゅう\n",
L"ひゃくろくじゅういち\n",
L"ひゃくろくじゅうに\n",
L"ひゃくろくじゅうさん\n",
L"ひゃくろくじゅうよん\n",
L"ひゃくろくじゅうご\n",
L"ひゃくろくじゅうろく\n",
L"ひゃくろくじゅうなな\n",
L"ひゃくろくじゅうはち\n",
L"ひゃくろくじゅうきゅう\n",
L"ひゃくななじゅう\n",
L"ひゃくななじゅういち\n",
L"ひゃくななじゅうに\n",
L"ひゃくななじゅうさん\n",
L"ひゃくななじゅうよん\n",
L"ひゃくななじゅうご\n",
L"ひゃくななじゅうろく\n",
L"ひゃくななじゅうなな\n",
L"ひゃくななじゅうはち\n",
L"ひゃくななじゅうきゅう\n",
L"ひゃくはちじゅう\n",
L"ひゃくはちじゅういち\n",
L"ひゃくはちじゅうに\n",
L"ひゃくはちじゅうさん\n",
L"ひゃくはちじゅうよん\n",
L"ひゃくはちじゅうご\n",
L"ひゃくはちじゅうろく\n",
L"ひゃくはちじゅうなな\n",
L"ひゃくはちじゅうはち\n",
L"ひゃくはちじゅうきゅう\n",
L"ひゃくきゅうじゅう\n",
L"ひゃくきゅうじゅういち\n",
L"ひゃくきゅうじゅうに\n",
L"ひゃくきゅうじゅうさん\n",
L"ひゃくきゅうじゅうよん\n",
L"ひゃくきゅうじゅうご\n",
L"ひゃくきゅうじゅうろく\n",
L"ひゃくきゅうじゅうなな\n",
L"ひゃくきゅうじゅうはち\n",
L"ひゃくきゅうじゅうきゅう\n",
L"にひゃく\n",
L"にひゃくいち\n",
L"にひゃくに\n",
L"にひゃくさん\n",
L"にひゃくよん\n",
L"にひゃくご\n",
L"にひゃくろく\n",
L"にひゃくなな\n",
L"にひゃくはち\n",
L"にひゃくきゅう\n",
L"にひゃくじゅう\n",
L"にひゃくじゅういち\n",
L"にひゃくじゅうに\n",
L"にひゃくじゅうさん\n",
L"にひゃくじゅうよん\n",
L"にひゃくじゅうご\n",
L"にひゃくじゅうろく\n",
L"にひゃくじゅうなな\n",
L"にひゃくじゅうはち\n",
L"にひゃくじゅうきゅう\n",
L"にひゃくにじゅう\n",
L"にひゃくにじゅういち\n",
L"にひゃくにじゅうに\n",
L"にひゃくにじゅうさん\n",
L"にひゃくにじゅうよん\n",
L"にひゃくにじゅうご\n",
L"にひゃくにじゅうろく\n",
L"にひゃくにじゅうなな\n",
L"にひゃくにじゅうはち\n",
L"にひゃくにじゅうきゅう\n",
L"にひゃくさんじゅう\n",
L"にひゃくさんじゅういち\n",
L"にひゃくさんじゅうに\n",
L"にひゃくさんじゅうさん\n",
L"にひゃくさんじゅうよん\n",
L"にひゃくさんじゅうご\n",
L"にひゃくさんじゅうろく\n",
L"にひゃくさんじゅうなな\n",
L"にひゃくさんじゅうはち\n",
L"にひゃくさんじゅうきゅう\n",
L"にひゃくよんじゅう\n",
L"にひゃくよんじゅういち\n",
L"にひゃくよんじゅうに\n",
L"にひゃくよんじゅうさん\n",
L"にひゃくよんじゅうよん\n",
L"にひゃくよんじゅうご\n",
L"にひゃくよんじゅうろく\n",
L"にひゃくよんじゅうなな\n",
L"にひゃくよんじゅうはち\n",
L"にひゃくよんじゅうきゅう\n",
L"にひゃくごじゅう\n",
L"にひゃくごじゅういち\n",
L"にひゃくごじゅうに\n",
L"にひゃくごじゅうさん\n",
L"にひゃくごじゅうよん\n",
L"にひゃくごじゅうご\n",
L"にひゃくごじゅうろく\n",
L"にひゃくごじゅうなな\n",
L"にひゃくごじゅうはち\n",
L"にひゃくごじゅうきゅう\n",
L"にひゃくろくじゅう\n",
L"にひゃくろくじゅういち\n",
L"にひゃくろくじゅうに\n",
L"にひゃくろくじゅうさん\n",
L"にひゃくろくじゅうよん\n",
L"にひゃくろくじゅうご\n",
L"にひゃくろくじゅうろく\n",
L"にひゃくろくじゅうなな\n",
L"にひゃくろくじゅうはち\n",
L"にひゃくろくじゅうきゅう\n",
L"にひゃくななじゅう\n",
L"にひゃくななじゅういち\n",
L"にひゃくななじゅうに\n",
L"にひゃくななじゅうさん\n",
L"にひゃくななじゅうよん\n",
L"にひゃくななじゅうご\n",
L"にひゃくななじゅうろく\n",
L"にひゃくななじゅうなな\n",
L"にひゃくななじゅうはち\n",
L"にひゃくななじゅうきゅう\n",
L"にひゃくはちじゅう\n",
L"にひゃくはちじゅういち\n",
L"にひゃくはちじゅうに\n",
L"にひゃくはちじゅうさん\n",
L"にひゃくはちじゅうよん\n",
L"にひゃくはちじゅうご\n",
L"にひゃくはちじゅうろく\n",
L"にひゃくはちじゅうなな\n",
L"にひゃくはちじゅうはち\n",
L"にひゃくはちじゅうきゅう\n",
L"にひゃくきゅうじゅう\n",
L"にひゃくきゅうじゅういち\n",
L"にひゃくきゅうじゅうに\n",
L"にひゃくきゅうじゅうさん\n",
L"にひゃくきゅうじゅうよん\n",
L"にひゃくきゅうじゅうご\n",
L"にひゃくきゅうじゅうろく\n",
L"にひゃくきゅうじゅうなな\n",
L"にひゃくきゅうじゅうはち\n",
L"にひゃくきゅうじゅうきゅう\n",
L"さんびゃく\n",
};
long offset[301];
int main(int argc, char **argv)
{
int i, n;
FILE *fp;
char *s, buf[256];
wchar_t wbuf[64];
#ifdef UTF8
setlocale(LC_ALL, "en_US.utf8");
#else
setlocale(LC_ALL, "en_US");
#endif
fp = fopen("output.txt", "w+");
if (fp == NULL) {
perror("fopen");
exit(1);
}
for (i = 0; i <= 300; i++) {
offset[i] = ftell(fp);
if (fputws(numbers[i], fp) == -1) {
perror("fputws");
exit(1);
}
}
#ifdef TESTREAD
fclose(fp);
fp = fopen("output.txt", "r");
#endif
for ( ; ; ) {
s = fgets(buf, 256, stdin);
n = atoi(buf);
if (s == NULL || n < 0 || n > 300)
break;
if (fseek(fp, offset[n], SEEK_SET) == -1) {
perror("fseek");
exit(1);
}
#ifdef NOFTELL
printf("%d: (%ld) ", n, offset[n]);
#else
printf("%d: (%ld->%ld) ", n, offset[n], ftell(fp));
#endif
fgetws(wbuf, 64, fp);
wcstombs(buf, wbuf, 256);
printf("%s", buf);
}
fclose(fp);
return 0;
}