]> arthur.barton.de Git - netatalk.git/blobdiff - bin/megatron/megatron.c
megatron, fix errors introduced in Sun Feb 6 10:16:00 2005 commit, 'replace a wrong...
[netatalk.git] / bin / megatron / megatron.c
index bb6bda2d33a7650a67b854a3f4bd1730ce81568a..1dc83d777c0991e5f4d7a85b911930f63b6143f8 100644 (file)
@@ -1,17 +1,22 @@
+/*
+ * $Id: megatron.c,v 1.14 2010-01-27 21:27:53 didg Exp $
+ */
+
 #ifdef HAVE_CONFIG_H
 #include "config.h"
-#endif
+#endif /* HAVE_CONFIG_H */
 
 #include <sys/types.h>
 #include <sys/param.h>
 #include <sys/stat.h>
 #include <sys/uio.h>
+#ifdef HAVE_FCNTL_H
 #include <fcntl.h>
+#endif /* HAVE_FCNTL_H */
 #include <time.h>
 #include <ctype.h>
 #include <stdio.h>
 #include <string.h>
-#include <syslog.h>
 #include <netatalk/endian.h>
 #include "asingle.h"
 #include "megatron.h"
@@ -19,9 +24,9 @@
 #include "macbin.h"
 #include "nad.h"
 
-char           forkbuf[8192];
 char           *forkname[] = { "data", "resource" };
-char           *name[] = { "unhex",
+static char    forkbuf[8192];
+static char    *name[] = { "unhex",
                            "unbin",
                            "unsingle",
                            "macbinary",
@@ -31,10 +36,7 @@ char         *name[] = { "unhex",
                            "binheader",
                            "megatron" };
 
-int from_open( un, file, fh, flags )
-    int                        un, flags;
-    char               *file;
-    struct FHeader     *fh;
+static int from_open(int un, char *file, struct FHeader *fh, int flags)
 {
     switch ( un ) {
        case MEGATRON :
@@ -59,11 +61,7 @@ int from_open( un, file, fh, flags )
     }
 }
 
-int from_read( un, fork, buf, len )
-    int                        un;
-    int                        fork;
-    char               *buf;
-    int                        len;
+static ssize_t from_read(int un, int fork, char *buf, size_t len)
 {
     switch ( un ) {
        case MEGATRON :
@@ -86,8 +84,7 @@ int from_read( un, fork, buf, len )
     }
 }
 
-int from_close( un )
-    int                        un;
+static int from_close(int un)
 {
     switch ( un ) {
        case MEGATRON :
@@ -110,10 +107,7 @@ int from_close( un )
     }
 }
 
-int to_open( to, file, fh, flags )
-    int                        to, flags;
-    char               *file;
-    struct FHeader     *fh;
+static int to_open(int to, char *file, struct FHeader *fh, int flags)
 {
     switch ( to ) {
        case MEGATRON :
@@ -133,10 +127,7 @@ int to_open( to, file, fh, flags )
     }
 }
 
-int to_write( to, fork, bufc )
-    int                        to;
-    int                        fork;
-    int                        bufc;
+static ssize_t to_write(int to, int fork, size_t bufc)
 {
     switch ( to ) {
        case MEGATRON :
@@ -156,9 +147,7 @@ int to_write( to, fork, bufc )
     }
 }
 
-int to_close( to, keepflag )
-    int                        to;
-    int                        keepflag;
+static int to_close(int to, int keepflag)
 {
     switch ( to ) {
        case MEGATRON :
@@ -178,15 +167,13 @@ int to_close( to, keepflag )
     }
 }
 
-int megatron( path, module, newname, flags )
-    char       *path, *newname;
-    int                module, flags;
+static int megatron( char *path, int module, char *newname, int flags)
 {
     struct stat                st;
     struct FHeader     fh;
-    int                        bufc;
+    ssize_t            bufc;
     int                        fork;
-    int                        forkred;
+    size_t             forkred;
 
 /*
  * If the source file is not stdin, make sure it exists and
@@ -209,7 +196,7 @@ int megatron( path, module, newname, flags )
  */
 
     memset( &fh, 0, sizeof( fh ));
-    if ( from_open( module, path, &fh ) < 0 ) {
+    if ( from_open( module, path, &fh, flags ) < 0 ) {
        return( -1 );
     }
 
@@ -268,7 +255,7 @@ int megatron( path, module, newname, flags )
        fprintf( stderr, "megatron: forkred is \t\t%d\n", forkred );
        fprintf( stderr, "megatron: fh.forklen[%d] is \t%d\n", fork, 
                ntohl( fh.forklen[ fork ] ));
-#endif
+#endif /* DEBUG */
        if (( bufc < 0 ) || ( forkred != ntohl( fh.forklen[ fork ] ))) {
            fprintf( stderr, "%s: Problem with input, dude\n", path );
            to_close( module, TRASH );
@@ -288,9 +275,7 @@ int megatron( path, module, newname, flags )
     return( from_close( module ));
 }
 
-int main( argc, argv )
-    int                argc;
-    char       **argv;
+int main(int argc, char **argv)
 {
     int                rc, c;
     int                rv = 0;
@@ -300,7 +285,7 @@ int main( argc, argv )
     char       *progname, newname[ADEDLEN_NAME + 1];
 
     progname = strrchr( argv[ 0 ], '/' );
-    if (( progname == NULL ) || ( progname == '\0' )) {
+    if (( progname == NULL ) || ( *progname == '\0' )) {
        progname = argv[ 0 ];
     } else progname++;
 
@@ -309,7 +294,7 @@ int main( argc, argv )
        fprintf( stderr, "megatron: list of program links messed up\n" );
        return( -1 );
     }
-#endif
+#endif /* DEBUG */
 
     for ( c = 0 ; (( c < converts ) && ( module < 0 )) ; ++c ) {
        if ( strcmp( name[ c ], progname ) == 0 ) module = c;
@@ -336,7 +321,14 @@ int main( argc, argv )
          flags |= OPTION_STDOUT;
          continue;
        }
-         
+       if (strcmp(argv[c], "--euc") == 0) {
+         flags |= OPTION_EUCJP;
+         continue;
+       }  
+       if (strcmp(argv[c], "--sjis") == 0) {
+         flags |= OPTION_SJIS;
+         continue;
+       }  
        rc = megatron( argv[ c ], module, newname, flags);
        if ( rc != 0 ) {
            rv = rc;