Dead code elimination, cleanup.
[mdsms.git] / mdsms.c
diff --git a/mdsms.c b/mdsms.c
index 68917a5..8794249 100644 (file)
--- a/mdsms.c
+++ b/mdsms.c
@@ -3,25 +3,6 @@
 static char rcsid[] ATTR_UNUSED = "$Id$";
 #endif
 
-/*
- * $Log$
- * Revision 1.5  1999/07/19 10:02:51  short
- * Removed '\xXY' chars for compatibility with Digital UNIX vendor "cc".
- *
- * Revision 1.4  1999/07/14 01:01:11  short
- * Termios made compatible with Digital UNIX 4.0, cfset[io]speed() missing.
- *
- * Revision 1.3  1999/06/03 11:46:41  short
- * Logging (--log) implemented.
- *
- * Revision 1.2  1999/06/03 10:38:52  short
- * Implemented remaining communication timeouts and maximum retry count.
- *
- * Revision 1.1.1.1  1999/05/26 13:06:26  short
- * First alpha release.
- *
- */
-
 #include "setup.h"
 
 #include <stdio.h>
@@ -48,14 +29,6 @@ static char rcsid[] ATTR_UNUSED = "$Id$";
 #include "getopt.h"
 #endif
 
-#if 0
-char *strdup(const char *s);
-int kill(pid_t pid,int sig);
-int snprintf(char *str,size_t n,const char *format,...);
-int vsnprintf(char *str,size_t n,const char *format,va_list ap);
-void usleep(unsigned long usec);
-#endif
-
 #define NELEM(x) (sizeof((x))/sizeof(*(x)))
 
 #ifndef DEBUG
@@ -242,7 +215,7 @@ Usage: " PACKAGE " [-c|--config <cfgfile>] [-d|--device <device>]\n\
 static const struct option longopts[]={
 {"config"  ,1,0,'c'},
 {"device"  ,1,0,'d'},
-{"log"     ,1,0,'l'},
+{"log"     ,1,0,'L'},
 {"lockfile",1,0,'l'},
 {"smsc"    ,1,0,'s'},
 {"maxretry",1,0,'m'},
@@ -718,18 +691,19 @@ static char *pdudata;
 
 static inline unsigned char charconv(char c,size_t offs)
 {
-       if ((c>='A' && c<='Z') || (c>='a' && c<='z') || (c>='0' && c<='9')) return(c);
        switch (c) {
                case '@': return(0);
                case '$': return(2);
-               case '"': return(96);
-               case ' ':
-                       return(c);
                case 0: assert(0);
+               default:
+                       return(c&0x7F);
                }
+#if 0
+       if ((c>='A' && c<='Z') || (c>='a' && c<='z') || (c>='0' && c<='9')) return(c);
        error("Can't convert character '%c' (0x%02X) at offs %d (0-based), substituted '?'",
                c,(unsigned char)c,offs);
        return('?');
+#endif
 }
 
 static inline void genpdu(void)
@@ -830,19 +804,28 @@ char *buf=malloc(l+50);
                finame=body;
                body=NULL;
                }
-       else fin=stdin;
+       else {
+               finame=NULL;
+               fin=stdin;
+               }
        if (!body) {
                readbody=0;
-               if (verbose>=1)
-                       error("\nPlease enter the SMS text body, end with EOF (ctrl-D):");
+               if (!finame) {
+                       if (verbose>=1)
+                               error("\nPlease enter the SMS text body, end with EOF (ctrl-D):");
+                       }
+               else {
+                       if (!(fin=fopen(finame,"rt")))
+                               error("!Can't open data file \"%s\" for r/o: %m",finame);
+                       }
                chk(body=malloc(BODYLOAD));
                bodylen=fread(body,1,BODYLOAD,fin);
                if (bodylen==-1)
                        error("!Error reading stream \"%s\": %m",(finame?finame:"<stdin>"));
-               }
-       if (fin!=stdin) {
-               chkfclose(fin,finame);
-               free(finame);
+               if (finame) {
+                       chkfclose(fin,finame);
+                       free(finame);
+                       }
                }
 
        for (i=0;i<NELEM(numarg);i++) {