]> andersk Git - moira.git/blobdiff - gen/util.c
move zip code correctly
[moira.git] / gen / util.c
index 153987c97fb71e850f81c6f2070c4605238ac1b2..3c35af83ca942f5b631b2749143514a4e598ab7d 100644 (file)
 /* $Header$
  *
- * Utility routines used by the SMS extraction programs.
+ * Utility routines used by the MOIRA extraction programs.
+ *
+ *  (c) Copyright 1988 by the Massachusetts Institute of Technology.
+ *  For copying and distribution information, please see the file
+ *  <mit-copyright.h>.
  */
 
 
+#include <mit-copyright.h>
 #include <stdio.h>
 #include <sys/time.h>
-
-char *malloc();
+#include <moira.h>
+#include <moira_site.h>
 
 
-/* Trim trailing spaces from a string by replacing one of them with a null.
- */
-
-trim(s)
-register char *s;
+fix_file(targetfile)
+char *targetfile;
 {
-    register char *p;
-
-    for (p = s; *s; s++)
-      if (*s != ' ')
-       p = s;
-    if (p != s) {
-       if (*p == ' ')
-         *p = 0;
-       else
-         p[1] = 0;
+    char oldfile[64], filename[64];
+
+    sprintf(oldfile, "%s.old", targetfile);
+    sprintf(filename, "%s~", targetfile);
+    if (rename(targetfile, oldfile) == 0) {
+       if (rename(filename, targetfile) < 0) {
+           rename(oldfile, targetfile);
+           perror("Unable to install new file (rename failed)\n");
+           fprintf(stderr, "Filename = %s\n", targetfile);
+           exit(MR_CCONFIG);
+       }
+    } else {
+       if (rename(filename, targetfile) < 0) {
+           perror("Unable to rename old file\n");
+           fprintf(stderr, "Filename = %s\n", targetfile);
+           exit(MR_CCONFIG);
+       }
     }
+    unlink(oldfile);
 }
 
 
-/* return a "saved" copy of the string */
-
-char *strsave(s)
+char *dequote(s)
 register char *s;
 {
-    register char *r;
-
-    r = malloc(strlen(s) + 1);
-    strcpy(r, s);
-    return(r);
-}
-
-
-
-/* ingres_date_and_time: passed a unix time_t, returns a string that ingres
- * can parse to obtain that time.
- */
-
-static char *month_name[] = {
-    "jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct",
-    "nov", "dec"
-  };
-
-
-char *ingres_date(), *ingres_time();
-
-char *ingres_date_and_time(l)
-long l;
-{
-       char *ans = NULL, *date, *time;
-      
-       if ((date = ingres_date(l)) && (time = ingres_time(l))) {
-               char buf[BUFSIZ];
-               sprintf(buf, "%s %s", date, time);
-               ans = strsave(buf);
-       }
-       if (date)
-               free(date);
-       if (time)
-               free(time);
-       return ans;
-}
-
-char *ingres_time(t)
-       long t;
-{
-       struct tm *tm;
-
-       if (t == (long) 0)
-               (void) time(&t);
-
-       if ((tm = localtime(&t)) == (struct tm *) NULL) {
-               return NULL;
-       } else {
-               char buf[BUFSIZ];
-
-               sprintf(buf, "%02d:%02d:%02d", tm->tm_hour, tm->tm_min,
-                       tm->tm_sec);
-               return strsave(buf);
-       }
-}
-
-char *ingres_date(t)
-       long t;
-{
-       struct tm *tm;
-
-       if (t == (long) 0)
-               (void) time(&t);
-
-       if ((tm = localtime(&t)) == (struct tm *) NULL) {
-               return NULL;
-       } else {
-               char buf[BUFSIZ];
-
-               sprintf(buf, "%02d-%3.3s-%04d", tm->tm_mday,
-                       month_name[tm->tm_mon], 1900 + tm->tm_year);
-               return strsave(buf);
-       }
+    char *last = s;
+
+    while (*s) {
+       if (*s == '"')
+         *s = '\'';
+       else if (*s != ' ')
+         last = s;
+       s++;
+    }
+    if (*last == ' ')
+      *last = '\0';
+    else
+      *(++last) = '\0';
+    return(s);
 }
-
This page took 0.047961 seconds and 4 git commands to generate.