00001
00002
00003
00004
00005
00006
00007
00008 #include "includes.h"
00009
00010 static int check_push_ucs2(const char *orig)
00011 {
00012 smb_ucs2_t *dest = NULL;
00013 char *orig2 = NULL;
00014 int ret;
00015
00016 push_ucs2_allocate(&dest, orig);
00017 pull_ucs2_allocate(&orig2, dest);
00018 ret = strcmp(orig, orig2);
00019 if (ret) {
00020 fprintf(stderr, "orig: %s\n", orig);
00021 fprintf(stderr, "orig (UNIX -> UCS2 -> UNIX): %s\n", orig2);
00022 }
00023
00024 SAFE_FREE(dest);
00025 SAFE_FREE(orig2);
00026
00027 return ret;
00028 }
00029
00030 int main(int argc, char *argv[])
00031 {
00032 int i, ret = 0;
00033 int count = 1;
00034
00035
00036 lp_load("/dev/null", True, False, False, True);
00037
00038 if (argc < 2) {
00039 fprintf(stderr, "usage: %s STRING1 [COUNT]\n"
00040 "Checks that a string translated UNIX->UCS2->UNIX is unchanged\n"
00041 "Should be always 0\n",
00042 argv[0]);
00043 return 2;
00044 }
00045 if (argc >= 3)
00046 count = atoi(argv[2]);
00047
00048 for (i = 0; ((i < count) && (!ret)); i++)
00049 ret = check_push_ucs2(argv[1]);
00050
00051 printf("%d\n", ret);
00052
00053 return 0;
00054 }