From 788ddf07630d84085d2e6cfc803d432a4e8c8325 Mon Sep 17 00:00:00 2001 From: Hans Bolinder Date: Tue, 8 Jan 2013 13:37:23 +0100 Subject: [stdlib] Fix a contract bug Also minor corrections of the docs of io(3) --- lib/stdlib/doc/src/io.xml | 51 +++++++++++++++++++++++++++++++++++------ lib/stdlib/src/io.erl | 4 ++-- lib/stdlib/src/io_lib.erl | 6 ++--- lib/stdlib/src/io_lib_fread.erl | 6 ++--- 4 files changed, 52 insertions(+), 15 deletions(-) (limited to 'lib') diff --git a/lib/stdlib/doc/src/io.xml b/lib/stdlib/doc/src/io.xml index e904f0f0c8..67edc013d4 100644 --- a/lib/stdlib/doc/src/io.xml +++ b/lib/stdlib/doc/src/io.xml @@ -4,7 +4,7 @@
- 19962012 + 19962013 Ericsson AB. All Rights Reserved. @@ -306,6 +306,11 @@

The parsing failed.

+ {error, ErrorDescription} + +

Other (rare) error condition, for instance {error, estale} + if reading from an NFS file system.

+
@@ -333,6 +338,11 @@

The parsing failed.

+ {error, ErrorDescription} + +

Other (rare) error condition, for instance {error, estale} + if reading from an NFS file system.

+
@@ -851,12 +861,21 @@ enter>: alan : joe {eof, EndLocation} -

End of file was encountered.

+

End of file was encountered by the tokenizer.

+
+ eof + +

End of file was encountered by the I/O-server.

{error, ErrorInfo, ErrorLocation} -

An error occurred.

+

An error occurred while tokenizing.

+ {error, ErrorDescription} + +

Other (rare) error condition, for instance {error, estale} + if reading from an NFS file system.

+

Example:

@@ -913,12 +932,21 @@ enter>1.0er.
           
           {eof, EndLocation}
           
-            

End of file was encountered.

+

End of file was encountered by the tokenizer.

+
+ eof + +

End of file was encountered by the I/O-server.

{error, ErrorInfo, ErrorLocation} -

An error occurred.

+

An error occurred while tokenizing or parsing.

+ {error, ErrorDescription} + +

Other (rare) error condition, for instance {error, estale} + if reading from an NFS file system.

+

Example:

@@ -955,12 +983,21 @@ enter>abc("hey".
           
           {eof, EndLocation}
           
-            

End of file was encountered.

+

End of file was encountered by the tokenizer.

+
+ eof + +

End of file was encountered by the I/O-server.

{error, ErrorInfo, ErrorLocation} -

An error occurred.

+

An error occurred while tokenizing or parsing.

+ {error, ErrorDescription} + +

Other (rare) error condition, for instance {error, estale} + if reading from an NFS file system.

+
diff --git a/lib/stdlib/src/io.erl b/lib/stdlib/src/io.erl index ecf2aeb375..9b436c224c 100644 --- a/lib/stdlib/src/io.erl +++ b/lib/stdlib/src/io.erl @@ -1,7 +1,7 @@ %% %% %CopyrightBegin% %% -%% Copyright Ericsson AB 1996-2012. All Rights Reserved. +%% Copyright Ericsson AB 1996-2013. All Rights Reserved. %% %% The contents of this file are subject to the Erlang Public License, %% Version 1.1, (the "License"); you may not use this file except in @@ -331,7 +331,7 @@ fread(Prompt, Format) -> Prompt :: prompt(), Format :: format(), Result :: {'ok', Terms :: [term()]} - | {'error', FreadError :: io_lib:fread_error()} + | {'error', {'fread', FreadError :: io_lib:fread_error()}} | server_no_data(). fread(Io, Prompt, Format) -> diff --git a/lib/stdlib/src/io_lib.erl b/lib/stdlib/src/io_lib.erl index 5ad505f683..df5f9b8c25 100644 --- a/lib/stdlib/src/io_lib.erl +++ b/lib/stdlib/src/io_lib.erl @@ -2,7 +2,7 @@ %% %% %CopyrightBegin% %% -%% Copyright Ericsson AB 1996-2012. All Rights Reserved. +%% Copyright Ericsson AB 1996-2013. All Rights Reserved. %% %% The contents of this file are subject to the Erlang Public License, %% Version 1.1, (the "License"); you may not use this file except in @@ -124,7 +124,7 @@ fwrite(Format, Args) -> | {'more', RestFormat :: string(), Nchars :: non_neg_integer(), InputStack :: chars()} - | {'error', What :: fread_error()}. + | {'error', {'fread', What :: fread_error()}}. fread(Chars, Format) -> io_lib_fread:fread(Chars, Format). @@ -137,7 +137,7 @@ fread(Chars, Format) -> | {'done', Result, LeftOverChars :: string()}, Result :: {'ok', InputList :: [term()]} | 'eof' - | {'error', What :: fread_error()}. + | {'error', {'fread', What :: fread_error()}}. fread(Cont, Chars, Format) -> io_lib_fread:fread(Cont, Chars, Format). diff --git a/lib/stdlib/src/io_lib_fread.erl b/lib/stdlib/src/io_lib_fread.erl index 84d4b8bba0..92a34995b8 100644 --- a/lib/stdlib/src/io_lib_fread.erl +++ b/lib/stdlib/src/io_lib_fread.erl @@ -1,7 +1,7 @@ %% %% %CopyrightBegin% %% -%% Copyright Ericsson AB 1996-2011. All Rights Reserved. +%% Copyright Ericsson AB 1996-2013. All Rights Reserved. %% %% The contents of this file are subject to the Erlang Public License, %% Version 1.1, (the "License"); you may not use this file except in @@ -22,7 +22,7 @@ -export([fread/2,fread/3]). --import(lists, [reverse/1,reverse/2]). +-import(lists, [reverse/1]). -define(is_whitespace(C), ((C) =:= $\s orelse (C) =:= $\t @@ -43,7 +43,7 @@ | {'done', Result, LeftOverChars :: string()}, Result :: {'ok', InputList :: io_lib:chars()} | 'eof' - | {'error', What :: io_lib:fread_error()}. + | {'error', {'read', What :: io_lib:fread_error()}}. fread([], Chars, Format) -> %%io:format("FREAD: ~w `~s'~n", [Format,Chars]), -- cgit v1.2.3