Austin Group Defect Tracker

Aardvark Mark IV


Viewing Issue Simple Details Jump to Notes ] Issue History ] Print ]
ID Category Severity Type Date Submitted Last Update
0001027 [1003.1(2013)/Issue7+TC1] System Interfaces Objection Error 2016-02-17 10:16 2020-04-14 15:07
Reporter geoffclare View Status public  
Assigned To
Priority high Resolution Accepted As Marked  
Status Applied  
Name Geoff Clare
Organization The Open Group
User Reference
Section fseek, ftell
Page Number 946, 965
Line Number 31911, 32581
Interp Status Approved
Final Accepted Text See Note: 0003109
Summary 0001027: file-position indicator for open_wmemstream() streams
Description The descriptions of fseek() and ftell() say that the file-position
indicator is "measured in bytes from the beginning of the file".

However, for streams opened with open_wmemstream() it is supposed
to measure the number of wide characters, not the number of bytes.
(This is how glibc behaves, and the standard's requirements for the
behaviour of open_wmemstream() when it was added in SUSv4 were intended
to match glibc.)
Desired Action On Page: 946 Line: 31911 Section: fseek()

Change from:
The new position, measured in bytes from the beginning of the file, shall
to:
The new position, measured in bytes from the beginning of the file, [CX]except in the case of streams opened with open_wmemstream() for which the position is measured in wide characters,[/CX] shall

On Page: 965 Line: 32581 Section: ftell()

Change from:
measured in bytes from the beginning of the file
to:
measured in bytes from the beginning of the file, [CX]except in the case of streams opened with open_wmemstream() for which the position is measured in wide characters.[/CX]

On Page: 947 Line: 31981 Section: fseek()
and Page: 965 Line: 32600 Section: ftell()
Add open_wmemstream to the SEE ALSO section.

Tags issue8
Attached Files

- Relationships

-  Notes
(0003109)
rhansen (manager)
2016-03-24 16:21

Interpretation response
------------------------
The standard states that ftell() and fseek() operate on byte offsets with streams opened by open_wmemstream(), and conforming implementations must conform to this. However, concerns have been raised about this which are being referred to the sponsor.

Rationale:
-------------
The standard originally attempted to specify glibc's behavior, but an unintentional error was made resulting in a specification that did not match the glibc behavior.

Notes to the Editor (not part of this interpretation):
-------------------------------------------------------
Make the changes in the Desired Action. In addition, make the following changes:

On page 965 line 32596 (ftell() RATIONALE), change "None" to the following new paragraph:
For all streams other than those opened by open_wmemstream(), ftell() and fseek() operate on byte offsets. The behavior with open_wmemstream() streams is intentionally different—ftell() and fseek() operate on wide character offsets. This is because those streams are unique in that the backing storage is not a multibyte representation but a wide character array, and it is useful to be able to use the output of ftell() to index into that array.

On page 947 line 31977 (fseek() RATIONALE), change "None" to:
See the rationale for ftell().
(0003111)
ajosey (manager)
2016-03-25 17:08

Interpretation proposed: March 25 2016
(0003188)
ajosey (manager)
2016-04-30 05:18

Interpretation Approved: 30 April 2016

- Issue History
Date Modified Username Field Change
2016-02-17 10:16 geoffclare New Issue
2016-02-17 10:16 geoffclare Name => Geoff Clare
2016-02-17 10:16 geoffclare Organization => The Open Group
2016-02-17 10:16 geoffclare Section => fseek, ftell
2016-02-17 10:16 geoffclare Page Number => 946, 965
2016-02-17 10:16 geoffclare Line Number => 31911, 32581
2016-02-17 10:16 geoffclare Interp Status => ---
2016-03-24 16:21 rhansen Note Added: 0003109
2016-03-24 16:21 rhansen Tag Attached: issue8
2016-03-24 16:22 rhansen Interp Status --- => Pending
2016-03-24 16:22 rhansen Final Accepted Text => See Note: 0003109
2016-03-24 16:22 rhansen Status New => Interpretation Required
2016-03-24 16:22 rhansen Resolution Open => Accepted As Marked
2016-03-25 17:08 ajosey Interp Status Pending => Proposed
2016-03-25 17:08 ajosey Note Added: 0003111
2016-04-30 05:18 ajosey Interp Status Proposed => Approved
2016-04-30 05:18 ajosey Note Added: 0003188
2020-04-14 15:07 geoffclare Status Interpretation Required => Applied


Mantis 1.1.6[^]
Copyright © 2000 - 2008 Mantis Group
Powered by Mantis Bugtracker