Mercurial > codedump
annotate decodeurl.c @ 72:23d0073daa79
Create decodeurl.c
committer: GitHub <noreply@github.com>
| author | Paper <37962225+mrpapersonic@users.noreply.github.com> | 
|---|---|
| date | Wed, 22 Jun 2022 19:37:21 -0400 | 
| parents | |
| children | 
| rev | line source | 
|---|---|
| 72 
23d0073daa79
Create decodeurl.c
 Paper <37962225+mrpapersonic@users.noreply.github.com> parents: diff
changeset | 1 // C port of decodeurl.cpp | 
| 
23d0073daa79
Create decodeurl.c
 Paper <37962225+mrpapersonic@users.noreply.github.com> parents: diff
changeset | 2 #include <curl/curl.h> | 
| 
23d0073daa79
Create decodeurl.c
 Paper <37962225+mrpapersonic@users.noreply.github.com> parents: diff
changeset | 3 #include <string.h> | 
| 
23d0073daa79
Create decodeurl.c
 Paper <37962225+mrpapersonic@users.noreply.github.com> parents: diff
changeset | 4 #include <stdio.h> | 
| 
23d0073daa79
Create decodeurl.c
 Paper <37962225+mrpapersonic@users.noreply.github.com> parents: diff
changeset | 5 #include <stdlib.h> | 
| 
23d0073daa79
Create decodeurl.c
 Paper <37962225+mrpapersonic@users.noreply.github.com> parents: diff
changeset | 6 | 
| 
23d0073daa79
Create decodeurl.c
 Paper <37962225+mrpapersonic@users.noreply.github.com> parents: diff
changeset | 7 #define ENCODED_SIZE 8192 | 
| 
23d0073daa79
Create decodeurl.c
 Paper <37962225+mrpapersonic@users.noreply.github.com> parents: diff
changeset | 8 | 
| 
23d0073daa79
Create decodeurl.c
 Paper <37962225+mrpapersonic@users.noreply.github.com> parents: diff
changeset | 9 int main(int argc, char* argv[]) { | 
| 
23d0073daa79
Create decodeurl.c
 Paper <37962225+mrpapersonic@users.noreply.github.com> parents: diff
changeset | 10 int c; | 
| 
23d0073daa79
Create decodeurl.c
 Paper <37962225+mrpapersonic@users.noreply.github.com> parents: diff
changeset | 11 if (argc != 3) { | 
| 
23d0073daa79
Create decodeurl.c
 Paper <37962225+mrpapersonic@users.noreply.github.com> parents: diff
changeset | 12 printf("usage: %s <input> <output>\n", argv[0]); | 
| 
23d0073daa79
Create decodeurl.c
 Paper <37962225+mrpapersonic@users.noreply.github.com> parents: diff
changeset | 13 return 1; | 
| 
23d0073daa79
Create decodeurl.c
 Paper <37962225+mrpapersonic@users.noreply.github.com> parents: diff
changeset | 14 } | 
| 
23d0073daa79
Create decodeurl.c
 Paper <37962225+mrpapersonic@users.noreply.github.com> parents: diff
changeset | 15 char encoded[ENCODED_SIZE] = {'\0'}; | 
| 
23d0073daa79
Create decodeurl.c
 Paper <37962225+mrpapersonic@users.noreply.github.com> parents: diff
changeset | 16 CURL* curl = curl_easy_init(); | 
| 
23d0073daa79
Create decodeurl.c
 Paper <37962225+mrpapersonic@users.noreply.github.com> parents: diff
changeset | 17 char data[256]; | 
| 
23d0073daa79
Create decodeurl.c
 Paper <37962225+mrpapersonic@users.noreply.github.com> parents: diff
changeset | 18 FILE* in = fopen(argv[1], "r"); // this is unsafe, but meh | 
| 
23d0073daa79
Create decodeurl.c
 Paper <37962225+mrpapersonic@users.noreply.github.com> parents: diff
changeset | 19 FILE* out = fopen(argv[2], "w"); | 
| 
23d0073daa79
Create decodeurl.c
 Paper <37962225+mrpapersonic@users.noreply.github.com> parents: diff
changeset | 20 if (in == NULL || out == NULL) { | 
| 
23d0073daa79
Create decodeurl.c
 Paper <37962225+mrpapersonic@users.noreply.github.com> parents: diff
changeset | 21 printf("Failed to open file(s)!\n"); | 
| 
23d0073daa79
Create decodeurl.c
 Paper <37962225+mrpapersonic@users.noreply.github.com> parents: diff
changeset | 22 return 1; | 
| 
23d0073daa79
Create decodeurl.c
 Paper <37962225+mrpapersonic@users.noreply.github.com> parents: diff
changeset | 23 } | 
| 
23d0073daa79
Create decodeurl.c
 Paper <37962225+mrpapersonic@users.noreply.github.com> parents: diff
changeset | 24 char* p = &encoded[strlen(encoded)]; | 
| 
23d0073daa79
Create decodeurl.c
 Paper <37962225+mrpapersonic@users.noreply.github.com> parents: diff
changeset | 25 while ((c = fgetc(in)) != EOF) { | 
| 
23d0073daa79
Create decodeurl.c
 Paper <37962225+mrpapersonic@users.noreply.github.com> parents: diff
changeset | 26 *p++ = c; | 
| 
23d0073daa79
Create decodeurl.c
 Paper <37962225+mrpapersonic@users.noreply.github.com> parents: diff
changeset | 27 if (p == &encoded[ENCODED_SIZE-1]) break; | 
| 
23d0073daa79
Create decodeurl.c
 Paper <37962225+mrpapersonic@users.noreply.github.com> parents: diff
changeset | 28 } | 
| 
23d0073daa79
Create decodeurl.c
 Paper <37962225+mrpapersonic@users.noreply.github.com> parents: diff
changeset | 29 *p = '\0'; | 
| 
23d0073daa79
Create decodeurl.c
 Paper <37962225+mrpapersonic@users.noreply.github.com> parents: diff
changeset | 30 rewind(in); // we probably don't need this!! | 
| 
23d0073daa79
Create decodeurl.c
 Paper <37962225+mrpapersonic@users.noreply.github.com> parents: diff
changeset | 31 char* decoded = curl_easy_unescape(curl, encoded, 0, NULL); | 
| 
23d0073daa79
Create decodeurl.c
 Paper <37962225+mrpapersonic@users.noreply.github.com> parents: diff
changeset | 32 fprintf(out, "%s", decoded); | 
| 
23d0073daa79
Create decodeurl.c
 Paper <37962225+mrpapersonic@users.noreply.github.com> parents: diff
changeset | 33 // fwrite(decoded, sizeof(char), sizeof(decoded), in); | 
| 
23d0073daa79
Create decodeurl.c
 Paper <37962225+mrpapersonic@users.noreply.github.com> parents: diff
changeset | 34 curl_easy_cleanup(curl); | 
| 
23d0073daa79
Create decodeurl.c
 Paper <37962225+mrpapersonic@users.noreply.github.com> parents: diff
changeset | 35 fclose(in); | 
| 
23d0073daa79
Create decodeurl.c
 Paper <37962225+mrpapersonic@users.noreply.github.com> parents: diff
changeset | 36 fclose(out); | 
| 
23d0073daa79
Create decodeurl.c
 Paper <37962225+mrpapersonic@users.noreply.github.com> parents: diff
changeset | 37 return 0; | 
| 
23d0073daa79
Create decodeurl.c
 Paper <37962225+mrpapersonic@users.noreply.github.com> parents: diff
changeset | 38 } | 
