login

<     >

2015-03-18 20:57:52 (UTC-03:00)

Marcel Rodrigues <marcelgmr@gmail.com>

Use stdin & stdout.

diff --git a/srtsync.c b/srtsync.c
index 8f351d2..b617be9 100644
--- a/srtsync.c
+++ b/srtsync.c
@@ -42,17 +42,13 @@ ms2ts(char *buffer, size_t bufsiz, uint32_t ms)
 }
 
 Subtitles *
-load_subs(const char *path)
+load_subs(FILE *fp)
 {
     Subtitles *subs;
-    FILE *fp;
     char buffer[BUFSZ];
     char text[4*BUFSZ];
     char *ret = buffer;
 
-    fp = fopen(path, "r");
-    if (!fp)
-        return NULL;
     subs = malloc(sizeof(*subs));
     subs->bulk = 256;
     subs->count = 0;
@@ -88,20 +84,15 @@ load_subs(const char *path)
         }
         subs->lines[subs->count++] = line;
     }
-    fclose(fp);
     return subs;
 }
 
 void
-save_subs(Subtitles *subs, const char *path)
+save_subs(FILE *fp, Subtitles *subs)
 {
-    FILE *fp;
     char bufon[13], bufoff[13];
     int i;
 
-    fp = fopen(path, "w");
-    if (!fp)
-        return;
     for (i = 0; i < subs->count; i++) {
         Line line = subs->lines[i];
         fprintf(fp, "%d\r\n", i + 1);
@@ -110,7 +101,6 @@ save_subs(Subtitles *subs, const char *path)
         fprintf(fp, "%s --> %s\r\n", bufon, bufoff);
         fprintf(fp, "%s\r\n", line.text);
     }
-    fclose(fp);
 }
 
 void
@@ -126,12 +116,11 @@ free_subs(Subtitles **subs)
 }
 
 int
-main(int argc, char *argv[])
+main()
 {
     Subtitles *subs;
-    assert(argc == 2);
-    subs = load_subs(argv[1]);
-    save_subs(subs, "test.srt");
+    subs = load_subs(stdin);
+    save_subs(stdout, subs);
     free_subs(&subs);
     return 0;
 }