diff options
author | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-04-06 09:18:36 +0000 |
---|---|---|
committer | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-04-06 09:18:36 +0000 |
commit | 104d7250f3ec5ced8f199c4648bc28dfa9e1d204 (patch) | |
tree | 816123e9b77187babfffea963436935f3f060430 /gcc/ada/cstreams.c | |
parent | 95753b7c30e368b5e256b758ee1c334b60c8b6b3 (diff) | |
download | gcc-104d7250f3ec5ced8f199c4648bc28dfa9e1d204.tar.gz |
2007-04-06 Nicolas Roche <roche@adacore.com>
* cstreams.c (__gnat_full_name): Fix issues on VxWorks 6.x for which
absolute path can have the following form: device:/a/b. In this case
'/' should be inserted between the path and the filename.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@123556 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/cstreams.c')
-rw-r--r-- | gcc/ada/cstreams.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/gcc/ada/cstreams.c b/gcc/ada/cstreams.c index 8f283d4c4fc..a45487b41b5 100644 --- a/gcc/ada/cstreams.c +++ b/gcc/ada/cstreams.c @@ -6,7 +6,7 @@ * * * Auxiliary C functions for Interfaces.C.Streams * * * - * Copyright (C) 1992-2003 Free Software Foundation, Inc. * + * Copyright (C) 1992-2006, Free Software Foundation, Inc. * * * * GNAT is free software; you can redistribute it and/or modify it under * * terms of the GNU General Public License as published by the Free Soft- * @@ -211,10 +211,20 @@ __gnat_full_name (char *nam, char *buffer) return 0; } +#ifdef __vxworks + /* On VxWorks, getcwd always returns an absolute path. But this path + can be also a device name like "serial:". In this case '/' should not + be appended. As on VxWorks 6.x the returned path can starts with + the device name (ex: machine:/directory), we need to test if the last + character of the path is ':' to know if '/' should be appended. */ + if (buffer[strlen (buffer) - 1] != ':') + strcat (buffer, "/"); +#else /* If the name returned is an absolute path, it is safe to append '/' to the path and concatenate the name of the file. */ if (buffer[0] == '/') strcat (buffer, "/"); +#endif strcat (buffer, nam); } |