GNU bug report logs -
#18370
insert-file-contents: forbids also beg, end for non-regular (special) files
Previous Next
Reported by: Ivan Shmakov <ivan <at> siamics.net>
Date: Sun, 31 Aug 2014 19:51:01 UTC
Severity: minor
Tags: moreinfo
Fixed in version 29.1
Done: Lars Ingebrigtsen <larsi <at> gnus.org>
Bug is archived. No further changes may be made.
Full log
Message #8 received at 18370 <at> debbugs.gnu.org (full text, mbox):
Ivan Shmakov <ivan <at> siamics.net> writes:
> As currently implemented, insert-file-contents disallows not
> only (as per (elisp.info) Reading from Files) the case of either
> ‘visit’ or ‘replace’ arguments being non-nil, but also when
> non-nil are either ‘beg’ or ‘end’ (or both):
[...]
> This, however, precludes the use of insert-file-contents not
> only on named pipes, but also on /dev/cdrom, /dev/random, and
> the like, – for (and especially in the case of the latter) the
> ‘end’ argument gets rather essential here, as otherwise the
> function is likely to read much more than the caller will be
> able to handle at any single time.
>
> Instead, I’d suggest that ‘end’ is always allowed, and ‘beg’ is
> allowed when the file in question is /seekable/, – which, ISTR,
> is possible to check beforehand (lseek (fd, 0, SEEK_CUR) < 0?)
>
> From a glance over the code, this new behavior wouldn’t be all
> that hard to implement (some not_regular checks will have to be
> replaced with the ones against beg_offset, end_offset, etc.),
> but from what I read, – it’s already going to be more than I can
> test right now. So no .diff this time, alas.
(I'm going through old bug reports that unfortunately weren't resolved
at the time.)
Simple test case:
(insert-file-contents "/dev/urandom" nil nil 10)
This still fails in Emacs 29, and it would indeed be nice if it worked.
I seem to remember this being discussed previously, and that... er...
no, I can't really recall anything more than that.
Does anybody see any good reasons why we shouldn't allow this? If not,
I can take a stab at implementing it...
--
(domestic pets only, the antidote for overdose, milk.)
bloggy blog: http://lars.ingebrigtsen.no
This bug report was last modified 3 years and 64 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.