| Ilya Zakharevich on Thu, 10 Sep 1998 01:05:27 -0400 (EDT) |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
| Tmpfile leak |
This patch allows pari use the standard TMP directory, and fixes a
leak of a TMP file (probably fixed already - mpqs_close() chunk). All
the err() patches are cosmetic only.
The __EMX__ chunk should probably be generalized to DOSISH, but I do
not know in which header file to define this macro.
Enjoy,
Ilya
--- ./src/language/es.c~ Thu Jul 23 13:13:06 1998
+++ ./src/language/es.c Wed Sep 9 22:11:50 1998
@@ -2037,6 +2037,13 @@ pari_tmp_dir()
{
#ifndef macintosh
char *s = getenv("GPTMPDIR");
+
+#ifdef __EMX__
+ if (!s)
+ s = getenv("TMP");
+ if (!s)
+ s = getenv("TEMP");
+#endif
if (s)
{
if (pari_is_rwxdir(s)) return s;
--- ./src/modules/mpqs.c~ Wed Jul 29 17:30:04 1998
+++ ./src/modules/mpqs.c Wed Sep 9 22:20:34 1998
@@ -136,14 +136,14 @@ static void
mpqs_close_file(FILE *fp)
{
if (fclose(fp))
- err(warner, "error trying to close temporary file");
+ err(warner, "error trying to close temporary file: %s", strerror(errno));
}
static void
mpqs_unlink(char *f)
{
if (unlink(f))
- err(warner, "can\'t remove file %s", f);
+ err(warner, "can\'t remove file %s: %s", f, strerror(errno));
}
/**
@@ -506,6 +506,7 @@ mpqs_mergesort_lp_file(FILE *LPREL, FILE
}
} /* while */
if (COMB) mpqs_close_file(COMB);
+ mpqs_close_file(TMP);
return i;
}
@@ -2467,12 +2468,12 @@ mpqs_get_relation(long pos, FILE *fp)
{
mpqs_close_file(fp);
/* may also fail, but we're giving up anyway... GN */
- err(talker, "can\'t seek relations file");
+ err(talker, "can\'t seek relations file: %s", strerror(errno));
}
if (fgets(buf, MPQS_STRING_LENGTH, fp) == NULL)
{
mpqs_close_file(fp);
- err(talker, "relations file truncated?!");
+ err(talker, "relations file truncated?! (%s)", strerror(errno));
}
return buf;
}
@@ -3396,7 +3397,8 @@ mpqs(GEN N)
mpqs_unlink(LPREL_str);
if (rename(LPTMP_str, LPREL_str))
- err(talker, "can\'t rename file %s to %s", LPTMP_str, LPREL_str);
+ err(talker, "can\'t rename file %s to %s: %s",
+ LPTMP_str, LPREL_str, strerror(errno));
LPNEW = mpqs_open_file(LPNEW_str, "w");
/* combine whatever there is to be combined */
@@ -3449,7 +3451,8 @@ mpqs(GEN N)
mpqs_unlink(FREL_str);
if (rename(LPTMP_str, FREL_str))
- err(talker, "can\'t rename file %s to %s", LPTMP_str, FREL_str);
+ err(talker, "can\'t rename file %s to %s: %s",
+ LPTMP_str, FREL_str, strerror(errno));
/* FNEW stays closed until we know whether we need to reopen it for
another iteration */