int main(int argc, char *argv[]) { extern char *optarg; extern int optind, optopt, opterr; int opt, long_optind, decode = 0, ignore_garbage = 0, delims = 0, wrap = 76, y_abbr = 0; FILE *fp = stdin; char *opts = "dinw:yh"; struct option long_opts[] = { {"decode", no_argument, NULL, 'd'}, {"ignore-garbage", no_argument, NULL, 'i'}, {"no-delims", no_argument, NULL, 'n'}, {"wrap", required_argument, NULL, 'w'}, {"y-abbr", no_argument, NULL, 'y'}, {"help", no_argument, NULL, 'h'}, {NULL, no_argument, NULL, 0} }; opterr = 0; while ((opt = getopt_long(argc, argv, opts, long_opts, &long_optind)) != -1) { switch (opt) { case 'd': decode = 1; break; case 'i': ignore_garbage = 1; break; case 'n': delims = 0; break; case 'w': sscanf(optarg, "%d", &wrap); break; case 'y': y_abbr = 1; break; case 'h': printf(HELP_TEXT); exit(0); case '?': eprintf("ascii85: "); if (strchr("w", optopt) != NULL) eprintf("option '-%c' requires an argument\n", optopt); else eprintf("invalid option -- %c\n", optopt); eprintf(USAGE_TEXT); exit(1); default: break; } } if (optind == argc - 1 && strcmp(argv[optind], "-")) { fp = fopen(argv[optind], "rb"); if (fp == NULL) { eprintf("ascii85: %s: %s\n", argv[optind], strerror(errno)); exit(1); } } else if (optind > argc) { eprintf("ascii85: too many operands or wrong operand order\n"); eprintf(USAGE_TEXT); exit(1); } if (wrap < 1) wrap = 0; if (decode) ascii85_decode(fp, delims, ignore_garbage); else ascii85_encode(fp, delims, wrap, y_abbr); fflush(stdout); fclose(fp); return 0; }
void OnlineService::downloadSaveGame(const char *filename) { //printf("online download %s\n", filename); fflush(stdout); const size_t pathsize = 255; char originalfilepath[pathsize]; snprintf(originalfilepath, pathsize, "%s%s", get_save_filename_prefix(), filename); char encodedfilepath[pathsize]; snprintf(encodedfilepath, pathsize, "%s%s.txt", get_save_filename_prefix(), filename); SC_Context_h user_context = SC_User_GetContext(scoreloop_user); SC_String_h save_data; //printf("getting user context entry %s... ", filename); fflush(stdout); SC_Error_t getContextResult = SC_Context_Get(user_context, filename, &save_data); if (getContextResult == SC_OK) { //printf("done\n"); fflush(stdout); //printf("writing %s... ", encodedfilepath); fflush(stdout); bFILE *file = open_file(encodedfilepath, "w"); if(!file->open_failure()) { //printf("done\n"); fflush(stdout); const char *data = SC_String_GetData(save_data); file->write(data, strlen(data)); } else { //printf("failed\n"); fflush(stdout); } delete file; file = 0; //printf("decoding %s to %s... ", encodedfilepath, originalfilepath); fflush(stdout); int result = ascii85_decode(encodedfilepath, originalfilepath); //if (result == 0) // printf("done\n"); //else // printf("failed\n"); //fflush(stdout); } else if (getContextResult == SC_NOT_FOUND) { //printf("not found\n"); fflush(stdout); } else { //printf("failed\n"); fflush(stdout); } }