diff options
author | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-11-30 09:31:28 +0000 |
---|---|---|
committer | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-11-30 09:31:28 +0000 |
commit | bd908a9c3d73c964dd5311ca70baf1d62c83168e (patch) | |
tree | 9a67a2e2419bf357e4dd63ff87001bddf3abf00f /gcc/ada/g-sercom-linux.adb | |
parent | f815785447ca40b7a70d7c7dff311f9b14e0e22a (diff) | |
download | gcc-bd908a9c3d73c964dd5311ca70baf1d62c83168e.tar.gz |
2009-11-30 Thomas Quinot <quinot@adacore.com>
* s-commun.adb, s-commun.ads: New internal support unit,
allowing code sharing between GNAT.Sockets and
GNAT.Serial_Communication.
* g-sercom.ads, g-sercom-mingw.adb, g-sercom-linux.adb,
g-socket.adb (GNAT.Sockets.Last_Index): Move to System.Communication.
(GNAT.Serial_Communication.Read): Handle correctly the case where no
data was read, and Buffer'First = Stream_Element_Offset'First.
* Makefile.rtl: Add entry for s-commun
* g-socthi-vms.adb, g-socthi-vms.ads, g-socthi-vxworks.adb,
g-socthi-vxworks.ads, g-stseme.adb, g-socthi-mingw.ads,
g-socthi.adb, g-socthi.ads (GNAT.Sockets.Thin.Socket_Error_Message):
Reimplement in terms of System.CRTL.strerror.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@154758 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/g-sercom-linux.adb')
-rw-r--r-- | gcc/ada/g-sercom-linux.adb | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/gcc/ada/g-sercom-linux.adb b/gcc/ada/g-sercom-linux.adb index 1be595a2f63..c25d5e8e44a 100644 --- a/gcc/ada/g-sercom-linux.adb +++ b/gcc/ada/g-sercom-linux.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2007-2008, AdaCore -- +-- Copyright (C) 2007-2009, AdaCore -- -- -- -- 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- -- @@ -37,7 +37,9 @@ with Ada.Streams; use Ada.Streams; with Ada; use Ada; with Ada.Unchecked_Deallocation; -with System.CRTL; use System, System.CRTL; +with System; use System; +with System.Communication; use System.Communication; +with System.CRTL; use System.CRTL; with GNAT.OS_Lib; use GNAT.OS_Lib; @@ -167,11 +169,10 @@ package body GNAT.Serial_Communications is Res := read (Integer (Port.H.all), Buffer'Address, Len); if Res = -1 then - Last := 0; Raise_Error ("read failed"); - else - Last := Buffer'First + Stream_Element_Offset (Res) - 1; end if; + + Last := Last_Index (Buffer'First, C.int (Res)); end Read; --------- |