[bug #4302] errno is not always an extern int
[mmh] / uip / replsbr.c
index 1ea411c..a7616d3 100644 (file)
@@ -76,14 +76,16 @@ replout (FILE *inb, char *msg, char *drft, struct msgs *mp, int outputlinelen,
     register char **nxtbuf;
     register char **ap;
     register struct comp **savecomp;
-    int        char_read = 0, format_len;
+    int        char_read = 0, format_len, mask;
     char name[NAMESZ], *scanl, *cp;
     FILE *out;
 
-    umask(~m_gmprot());
+    mask = umask(~m_gmprot());
     if ((out = fopen (drft, "w")) == NULL)
        adios (drft, "unable to create");
 
+    umask(mask);
+
     /* get new format string */
     cp = new_fs (form, NULL, NULL);
     format_len = strlen (cp);