From 516a716de3bdee436de54a17f1ec5b794677e076 Mon Sep 17 00:00:00 2001 From: Tristan Gingold Date: Sat, 11 May 2019 08:49:23 +0200 Subject: files_map: add location_to_coord. --- src/files_map.adb | 24 ++++++++++++++++-------- src/files_map.ads | 7 +++++++ 2 files changed, 23 insertions(+), 8 deletions(-) diff --git a/src/files_map.adb b/src/files_map.adb index 45e35586b..e93934ce2 100644 --- a/src/files_map.adb +++ b/src/files_map.adb @@ -354,17 +354,12 @@ package body Files_Map is Coord_To_Position (File, Line_Pos, Offset, Name, Col); end Location_To_Position; - procedure Location_To_Coord (Location : Location_Type; - File : out Source_File_Entry; + procedure File_Pos_To_Coord (File : Source_File_Entry; + Pos : Source_Ptr; Line_Pos : out Source_Ptr; Line : out Positive; - Offset : out Natural) - is - Pos : Source_Ptr; + Offset : out Natural) is begin - -- Get FILE and position POS in the file. - Location_To_File_Pos (Location, File, Pos); - case Source_Files.Table (File).Kind is when Source_File_File => Location_To_Coord (Source_Files.Table (File), Pos, @@ -382,6 +377,19 @@ package body Files_Map is Line_Pos, Line, Offset); end; end case; + end File_Pos_To_Coord; + + procedure Location_To_Coord (Location : Location_Type; + File : out Source_File_Entry; + Line_Pos : out Source_Ptr; + Line : out Positive; + Offset : out Natural) + is + Pos : Source_Ptr; + begin + -- Get FILE and position POS in the file. + Location_To_File_Pos (Location, File, Pos); + File_Pos_To_Coord (File, Pos, Line_Pos, Line, Offset); end Location_To_Coord; function Location_File_To_Pos diff --git a/src/files_map.ads b/src/files_map.ads index 1e69ed572..a5a05e30e 100644 --- a/src/files_map.ads +++ b/src/files_map.ads @@ -195,6 +195,13 @@ package Files_Map is Line : out Positive; Offset : out Natural); + -- Convert FILE and POS to coordinate. + procedure File_Pos_To_Coord (File : Source_File_Entry; + Pos : Source_Ptr; + Line_Pos : out Source_Ptr; + Line : out Positive; + Offset : out Natural); + -- Convert a physical column to a logical column. -- A physical column is the offset in byte from the first byte of the line. -- A logical column is the position of the character when displayed. -- cgit v1.2.3