aboutsummaryrefslogtreecommitdiff
path: root/libgfortran
diff options
context:
space:
mode:
authorSteven G. Kargl <kargl@gcc.gnu.org>2007-07-02 23:29:27 +0000
committerSteven G. Kargl <kargl@gcc.gnu.org>2007-07-02 23:29:27 +0000
commit8eacc23d9414c3d513d75b93cac2c8ae5209747f (patch)
treecbef3e3f5b652593da3a654b71e444f8fc22bc8c /libgfortran
parent5cc48455646e5339afc2ed777eff0d852fc08215 (diff)
downloadgcc-8eacc23d9414c3d513d75b93cac2c8ae5209747f.zip
gcc-8eacc23d9414c3d513d75b93cac2c8ae5209747f.tar.gz
gcc-8eacc23d9414c3d513d75b93cac2c8ae5209747f.tar.bz2
[multiple changes]
2007-07-02 Steven G. Kargl <kargl@gcc.gnu.org> Restore collateral damage from ISO C Binding merge. 2007-06-29 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR libgfortran/32456 * io/unit.c (filename_from_unit): Don't use find_unit, instead search for unit directly. From-SVN: r126238
Diffstat (limited to 'libgfortran')
-rw-r--r--libgfortran/ChangeLog11
-rw-r--r--libgfortran/io/unit.c24
2 files changed, 31 insertions, 4 deletions
diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog
index 9b662d2..dc0e246 100644
--- a/libgfortran/ChangeLog
+++ b/libgfortran/ChangeLog
@@ -1,5 +1,16 @@
2007-07-02 Steven G. Kargl <kargl@gcc.gnu.org>
+ Restore collateral damage from ISO C Binding merge.
+
+ 2007-06-29 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR libgfortran/32456
+ * io/unit.c (filename_from_unit): Don't use find_unit, instead search
+ for unit directly.
+
+
+2007-07-02 Steven G. Kargl <kargl@gcc.gnu.org>
+
* Makefile.in: Regenerated with automake 1.9.6.
2007-07-02 Steven G. Kargl <kargl@gcc.gnu.org>
diff --git a/libgfortran/io/unit.c b/libgfortran/io/unit.c
index 9297af0..fac67bd 100644
--- a/libgfortran/io/unit.c
+++ b/libgfortran/io/unit.c
@@ -690,11 +690,26 @@ update_position (gfc_unit *u)
must free memory allocated for the filename string. */
char *
-filename_from_unit (int unit_number)
+filename_from_unit (int n)
{
char *filename;
- gfc_unit *u = NULL;
- u = find_unit (unit_number);
+ gfc_unit *u;
+ int c;
+
+ /* Find the unit. */
+ u = unit_root;
+ while (u != NULL)
+ {
+ c = compare (n, u->unit_number);
+ if (c < 0)
+ u = u->left;
+ if (c > 0)
+ u = u->right;
+ if (c == 0)
+ break;
+ }
+
+ /* Get the filename. */
if (u != NULL)
{
filename = (char *) get_mem (u->file_len + 1);
@@ -703,4 +718,5 @@ filename_from_unit (int unit_number)
}
else
return (char *) NULL;
-} \ No newline at end of file
+}
+