From: Eli Zaretskii <eliz@gnu.org>
To: "Óscar Fuentes" <ofv@wanadoo.es>
Cc: lekktu@gmail.com, Takaaki.Ota@am.sony.com, 10733@debbugs.gnu.org
Subject: bug#10733: 24.0.93; w32 file truncation
Date: Mon, 06 Feb 2012 19:21:24 +0200 [thread overview]
Message-ID: <83vcnjc1yj.fsf@gnu.org> (raw)
In-Reply-To: <87zkcw3pjf.fsf@wanadoo.es>
> From: Óscar Fuentes <ofv@wanadoo.es>
> Cc: Eli Zaretskii <eliz@gnu.org>, lekktu@gmail.com, "Ota\, Takaaki" <Takaaki.Ota@am.sony.com>
> Date: Mon, 06 Feb 2012 17:16:52 +0100
>
> Óscar Fuentes <ofv@wanadoo.es> writes:
>
> > I bet it is a bug on the CRT (the stat call that retrieves the file
> > size, to be precise). Maybe it is a MinGW thing.
>
> No, it is an Emacs thing. `stat' is defined in lib-src/ntlib.c,
> overriding the MSVCRT implementation, which accounts for symlinks, while
> Emacs' does not.
Can you tell the details, please? Specifically, what would it take to
"account for symlinks" in our implementation of `stat'? You did say
symlinks were supposed to be transparent.
> Before the definition of `stat' on lib-src/ntlib.c there is this
> comment:
>
> /* We need this because nt/inc/sys/stat.h defines struct stat that is
> incompatible with the MS run-time libraries. */
>
> That looks like an understatement. Actually, we need our own stat
> function and struct because the `struct stat' that Emacs uses is
> incompatible with the one defined in MSVCRT, right?
No, you are missing the point of that comment. lib-src/ntlib.c is not
compiled into Emacs, it's compiled into lib-src programs.
Theoretically, since those programs don't need anything fancy from
`stat', they could use the stock MSVCRT implementation. But because
these programs are compiled with -I../nt/inc, the compiler picks up
the definition of `struct stat' that is used by Emacs, and because of
this incompatibility lib-src programs cannot use the MSVCRT
implementation of `stat'.
> The obvious fix does not seem difficult, although ugly and
> verbose.
Can you please describe the problem, in addition to what you propose
to be a solution?
> I'll like to remove the Emacs reimplementation of `stat'
That is a non-starter. The private implementation of `stat' is needed
to support Posix features, such as meaningful inode numbers, UID and
GID, etc. You won't find anything close to that in MSVCRT. Quite a
few parts in Emacs expect those features.
> How much time we have until the release?
We cannot afford to make such a change before the release, no matter
how far away is it, even if I'd agree to that (which I don't). `stat'
is too central to Emacs operation to make such changes at this time.
> BTW, the obvious fix may require some care for not breaking Emacs
> support on MS Windows versions prior to XP. We still support Windows 9x,
> don't we?
Yes, we do. In fact, Emacs 24.1 will again work on Windows 9X, after
it turned out that 23.x (and perhaps also 22.x) didn't.
next prev parent reply other threads:[~2012-02-06 17:21 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-02-05 22:34 bug#10733: 24.0.93; w32 file truncation Ota, Takaaki
2012-02-05 23:51 ` Juanma Barranquero
2012-02-06 0:16 ` Ota, Takaaki
2012-02-06 4:05 ` Eli Zaretskii
2012-02-06 5:25 ` Óscar Fuentes
2012-02-06 16:16 ` Óscar Fuentes
2012-02-06 17:21 ` Eli Zaretskii [this message]
2012-02-06 17:58 ` Óscar Fuentes
2012-02-06 18:37 ` Eli Zaretskii
2012-02-06 20:19 ` Ota, Takaaki
2012-02-06 20:23 ` Lennart Borgman
2012-02-06 21:11 ` Eli Zaretskii
2012-02-06 21:20 ` Lennart Borgman
2012-02-06 21:31 ` Eli Zaretskii
2012-02-06 21:35 ` Lennart Borgman
2012-02-06 20:24 ` Lars Ingebrigtsen
2012-02-06 21:09 ` Eli Zaretskii
2012-02-06 21:08 ` Eli Zaretskii
2012-02-06 23:27 ` Óscar Fuentes
2012-02-06 23:43 ` Ota, Takaaki
2012-02-07 0:07 ` Óscar Fuentes
2012-02-07 4:02 ` Eli Zaretskii
2012-02-07 5:22 ` Óscar Fuentes
2012-02-07 17:35 ` Eli Zaretskii
2012-08-03 10:59 ` Eli Zaretskii
2012-02-06 16:55 ` Eli Zaretskii
2012-02-06 0:20 ` Óscar Fuentes
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=83vcnjc1yj.fsf@gnu.org \
--to=eliz@gnu.org \
--cc=10733@debbugs.gnu.org \
--cc=Takaaki.Ota@am.sony.com \
--cc=lekktu@gmail.com \
--cc=ofv@wanadoo.es \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.