Commit Graph

511 Commits

Author SHA1 Message Date
Brian Curtin 52173d4959 Fix #9333. Expose os.symlink on Windows only when usable.
In order to create symlinks on Windows, SeCreateSymbolicLinkPrivilege
is an account privilege that is required to be held by the user. Not only
must the privilege be enabled for the account, the activated privileges for
the currently running application must be adjusted to enable the requested
privilege.

Rather than exposing an additional function to be called prior to the user's
first os.symlink call, we handle the AdjustTokenPrivileges Windows API call
internally and only expose os.symlink when the privilege escalation was
successful.

Due to the change of only exposing os.symlink when it's available, we can
go back to the original test skipping methods of checking via `hasattr`.
2010-12-02 18:29:18 +00:00
Georg Brandl 71c23d4473 Include structseq.h in Python.h, and remove now-redundant includes in individual sources. 2010-11-30 09:30:54 +00:00
Brian Curtin fc889c48ed Fix for #8879.
Amaury noticed that this was originally written in a way that would fail on
names that can't be encoded with the mbcs codec. Restructured the function
to work with wide names first then narrow names second, to fall in line
with the way other functions are written in posixmodule.c.
2010-11-28 23:59:46 +00:00
Stefan Krah 2a7feee76d Windows: fix leak in posix_listdir. 2010-11-27 22:06:49 +00:00
Stefan Krah 30b341f1a5 Fix additional leaks. 2010-11-27 11:44:18 +00:00
Stefan Krah 0e803b3322 Further indentation cleanup. 2010-11-26 16:16:47 +00:00
Stefan Krah 99439266a3 Issue #10383: Fix two leaks. 2010-11-26 12:58:05 +00:00
Brian Curtin 1b9df39620 Fix #8879. Add os.link support to Windows.
Additionally, the st_ino attribute of stat structures was not being filled
in. This was left out of the fix to #10027 and was noticed due to
test_tarfile failing when applying the patch for this issue. An earlier
version of the fix to #10027 included st_ino, but that attribute got lost
in the shuffle of a few review/fix cycles. All tests pass.
2010-11-24 20:24:31 +00:00
Brian Curtin fc1be6d807 ifdef a Windows specific section. 2010-11-24 13:23:18 +00:00
Brian Curtin f5e76d01ea Fix #10027. st_nlink not set on Windows calls to os.stat/lstat.
Note: This patch has no tests because as of now there is no way to create
links. #8879 adds that and the tests will go in there. I've manually observed
that existing links on my system function properly with this.
2010-11-24 13:14:05 +00:00
Jesus Cea 7e9065cf8c Issue #10143: Update "os.pathconf" values 2010-10-25 13:02:04 +00:00
Brian Curtin 94622b0013 Fix a typo. full->final 2010-09-24 00:03:39 +00:00
Brian Curtin e8e4b3bfd6 #9808. Implement os.getlogin for Windows, completed by Jon Anglin.
The test is semi-dumb, it just makes sure something comes back since we
don't have a solid source to validate the returned login. We can't be 100%
sure that the USERNAME env var will always match what os.getlogin() returns,
so we don't make any specific assertion there.
2010-09-23 20:04:14 +00:00
Antoine Pitrou 38425292fb Issue #9908: Fix os.stat() on bytes paths under Windows 7. 2010-09-21 18:19:07 +00:00
Amaury Forgeot d'Arc 6c9c09058f Remove unused code in posixmodule.c 2010-09-17 23:39:42 +00:00
Antoine Pitrou 3d330add9e Remove C++-style comments 2010-09-14 10:08:08 +00:00
Victor Stinner cb04352e8c Issue #9579, #9580: Fix os.confstr() for value longer than 255 bytes and encode
the value with filesystem encoding and surrogateescape (instead of utf-8 in
strict mode).
2010-09-10 23:49:04 +00:00
Amaury Forgeot d'Arc 66d00ad2ea Untabify file. 2010-09-10 18:11:45 +00:00
Amaury Forgeot d'Arc 4b6fdf3852 #6394: Add os.getppid() support for Windows. 2010-09-07 21:31:17 +00:00
Brian Curtin 6285774f06 Implement #7566 - os.path.sameopenfile for Windows.
This uses the GetFileInformationByHandle function to return a tuple of values
to identify a file, then ntpath.sameopenfile compares file tuples, which
is exposed as os.path.sameopenfile.
2010-09-06 17:07:27 +00:00
Georg Brandl a9b51d2a0e #9747: fix copy-paste error in getresgid() doc. 2010-09-05 17:07:12 +00:00
Antoine Pitrou d3ccde8a21 Issue #7736: Release the GIL around calls to opendir() and closedir()
in the posix module.  Patch by Marcin Bachry.
2010-09-04 17:21:57 +00:00
Andrew M. Kuchling 4ea04a306f #7647: add ST_RDONLY, ST_NOSUID constants to os module.
(Also fix a name ordering in the ACKS file.)
2010-08-18 22:30:34 +00:00
Amaury Forgeot d'Arc 844807ead2 r82659 reintroduced some tab characters. Untabify again. 2010-08-16 22:16:51 +00:00
Antoine Pitrou 22e4155706 Fix other warnings under 64-bit Windows. 2010-08-15 18:07:50 +00:00
Victor Stinner e039ffe41d Issue #9605: posix.getlogin() decodes the username with file filesystem
encoding and surrogateescape error handler. Patch written by David Watson.

Reindent also posix_getlogin(), and fix a typo in the NEWS file.
2010-08-15 09:33:08 +00:00
Victor Stinner 61ec5dca2b Issue #9604: posix.initgroups() encodes the username using the fileystem
encoding and surrogateescape error handler. Patch written by David Watson.
2010-08-15 09:22:44 +00:00
Victor Stinner 5fe6de8c72 Issue #9603: posix.ttyname() and posix.ctermid() decode the terminal name
using the filesystem encoding and surrogateescape error handler. Patch
written by David Watson.
2010-08-15 09:12:51 +00:00
Benjamin Peterson d4efbf90d2 use pep 383 decoding for mknod and mkfifo #9570
Patch by David Watson.
2010-08-11 19:20:42 +00:00
Antoine Pitrou b73caab436 Issue #6915: Under Windows, os.listdir() didn't release the Global
Interpreter Lock around all system calls.  Original patch by Ryan Kelly.
2010-08-09 23:39:31 +00:00
Raymond Hettinger 0291c9ffa2 Issue 9445: Fix undefined symbols on VS8.0 build. 2010-08-01 21:10:35 +00:00
Ronald Oussoren b6ee4f5bfc This fixes issue7900 by adding code that deals
with the fact that getgroups(2) might return
more that MAX_GROUPS on OSX.

See the issue (and python-dev archives) for the
gory details. Summarized: OSX behaves rather oddly
and Apple says this is intentional.
2010-07-23 13:53:51 +00:00
Martin v. Löwis c9e1c7d97f Issue #6095: Make directory argument to os.listdir optional.
Patch by Virgil Dupras.
2010-07-23 12:16:41 +00:00
Brian Curtin 74e4561a3c Re-flow several long lines from #1578269. 2010-07-09 15:58:59 +00:00
Brian Curtin d40e6f70a5 Implement #1578269. Patch by Jason R. Coombs.
Added Windows support for os.symlink when run on Windows 6.0 or greater,
aka Vista. Previous Windows versions will raise NotImplementedError
when trying to symlink.

Includes numerous test updates and additions to test_os, including
a symlink_support module because of the fact that privilege escalation
is required in order to run the tests to ensure that the user is able
to create symlinks. By default, accounts do not have the required
privilege, so the escalation code will have to be exposed later (or
documented on how to do so). I'll be following up with that work next.

Note that the tests use ctypes, which was agreed on during the PyCon
language summit.
2010-07-08 21:39:08 +00:00
Senthil Kumaran 684760a148 Merged revisions 82047 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r82047 | senthil.kumaran | 2010-06-17 22:08:34 +0530 (Thu, 17 Jun 2010) | 3 lines

  Fix Issue4452 - Incorrect docstring of os.setpgrp
........
2010-06-17 16:48:06 +00:00
Amaury Forgeot d'Arc 0a589c9898 Remove unused variable, and fix a compilation warning on Windows. 2010-05-15 20:35:12 +00:00
Victor Stinner a45598a035 posix_listdir(), posix_readlink(): avoid temporary PyBytes object
Use directly PyUnicode_DecodeFSDefaultAndSize() instead of
PyBytes_FromStringAndSize() + PyUnicode_FromEncodedObject() if the argument is
unicode.
2010-05-14 16:35:39 +00:00
Victor Stinner 77ccd6d0c7 posix_error_with_allocated_filename() decodes the filename with
PyUnicode_DecodeFSDefaultAndSize() and call
PyErr_SetFromErrnoWithFilenameObject() instead of
PyErr_SetFromErrnoWithFilename()
2010-05-08 00:36:42 +00:00
Victor Stinner 97c18ab6a5 Replace PyUnicode_Decode(buf, strlen(buf), Py_FileSystemDefaultEncoding,
"surrogateescape") by PyUnicode_DecodeFSDefault(val).
2010-05-07 16:34:53 +00:00
Victor Stinner 84ae118006 Issue #8603: Create a bytes version of os.environ for Unix
Create os.environb mapping and os.getenvb() function, os.unsetenv() encodes str
argument to the file system encoding with the surrogateescape error handler
(instead of utf8/strict) and accepts bytes, and posix.environ keys and values
are bytes.
2010-05-06 22:05:07 +00:00
Victor Stinner 8c62be88e6 Recorded merge of revisions 80844-80845 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r80844 | victor.stinner | 2010-05-06 01:33:33 +0200 (jeu., 06 mai 2010) | 5 lines

  Untabify Modules/posixmodule.c

  Run Antoine Pitrou "untabify" script + manual editions (OS/2 and some
  continuation lines).
........
  r80845 | victor.stinner | 2010-05-06 02:03:44 +0200 (jeu., 06 mai 2010) | 4 lines

  Untabify Modules/posixmodule.c (2)

  Fix some more functions by hand
........

I rewrote the patch for py3k from scratch using untabify + manual editions
2010-05-06 00:08:46 +00:00
Victor Stinner 13bb71c38f Issue #8391: os.execvpe() and os.getenv() supports unicode with surrogates and
bytes strings for environment keys and values
2010-04-23 21:41:56 +00:00
Victor Stinner dcb2403022 Issue #8485: PyUnicode_FSConverter() doesn't accept bytearray object anymore,
you have to convert your bytearray filenames to bytes
2010-04-22 12:08:36 +00:00
Mark Dickinson 876d7c84e6 Keep confstr entries in alphabetical order. 2010-04-16 12:47:52 +00:00
Victor Stinner 6f7adcc58e Add CS_GNU_LIBC_VERSION and CS_GNU_LIBPTHREAD_VERSION constants for constr(),
and disable test_execvpe_with_bad_program() of test_os if the libc uses
linuxthreads to avoid the "unknown signal 32" bug (see issue #4970).
2010-04-16 12:23:43 +00:00
Victor Stinner cfa72789c4 Issue #8412: os.system() now accepts bytes, bytearray and str with
surrogates.
2010-04-16 11:45:13 +00:00
Brian Curtin eb24d7498f Port #1220212 (os.kill for Win32) to py3k. 2010-04-12 17:16:38 +00:00
Gregory P. Smith 845085703c Change PARSE_PID to _Py_PARSE_PID (cleanup for r78946). 2010-03-14 18:56:11 +00:00
Gregory P. Smith fb94c5f1e5 * Replaces the internals of the subprocess module from fork through exec on
POSIX systems with a C extension module.  This is required in order for
  the subprocess module to be made thread safe.

  The pure python implementation is retained so that it can continue to be
  used if for some reason the _posixsubprocess extension module is not
  available.

  The unittest executes tests on both code paths to guarantee compatibility.

* Moves PyLong_FromPid and PyLong_AsPid from posixmodule.c into longobject.h.

Code reviewed by jeffrey.yasskin at http://codereview.appspot.com/223077/show
2010-03-14 06:49:55 +00:00