When file truncation happens by Basic's Open statement

Kaganski Mike mikekaganski at hotmail.com
Fri Dec 21 19:15:40 UTC 2018


Hi!

On 21.12.2018 20:37, Takeshi Abe wrote:
> In order to tell whether the behavior reported in tdf#119102 [1] is a bug
> or not, I would like to understand the specification of LibO Basic's Open
> statement [2].
> 
> The following table summarizes what current (master) LibO does, which I read
> from SbiStream::Open() in basic/source/runtime/iosys.cxx.
> 
>        ACCESS\FOR      | APPEND | BINARY | INPUT | OUTPUT | RANDOM |
> ----------------------+--------+--------+-------+--------+--------+
>         default        |   -    |   -    |   -   |   X    |   -    |
>   READ  ("read only")  |   -    |   -    |   -   |   -    |   -    |
>   WRITE ("write only") |   -    |  -(*)  |   X   |   X    |  -(**) |
>   READ WRITE ("both")  |   -    |  -(*)  |   X   |   X    |  -(**) |
> 
> "X": the runtime deletes the file of given path first if already exists;
> "-": it does not.
> (*)  requested in i#18638 <https://bz.apache.org/ooo/show_bug.cgi?id=18638>;
>       see commit 23b49669ab70cac72d5f6d955e7d2af617e6934e.
> (**) requested in i#61277 <https://bz.apache.org/ooo/show_bug.cgi?id=61277>;
>       see commit 42a63dd0e81f13a84a5f551e03ede685e2bf34c7.
> 
> So here is a couple of questions popping up on a confused soul:
> 
> (1) What does the default ACCESS mode mean?
> Is it just the same as READ, WRITE, or READ WRITE?
> Or does it depends on given FOR mode?
> 
> (2) Does 'FOR INPUT + ACCESS WRITE' or 'FOR OUTPUT + ACCESS READ' make
> any sense?

Cannot answer the questions; just for completeness, something you could 
already know:

the current handling of BINARY opened for write was defined in commit 
23b49669ab70cac72d5f6d955e7d2af617e6934e [1] for #i18638 [2].

[1] 
https://git.libreoffice.org/core/+/23b49669ab70cac72d5f6d955e7d2af617e6934e%5E%21/
[2] https://bz.apache.org/ooo/show_bug.cgi?id=18638

-- 
Best regards,
Mike Kaganski


More information about the LibreOffice mailing list