summaryrefslogtreecommitdiffstats
path: root/src/corelib/io
Commit message (Collapse)AuthorAgeFilesLines
* QLockFile: decide on locking strategy per pathDavid Fries2015-12-112-14/+30
| | | | | | | | | | | | It is filesystem dependent if flock and fcntl locks are independent or the same underlying lock (which causes getting the second lock to fail). A temporary file in /tmp might be on a local file system and pass while the lock file is placed on NFS and fail with: setNativeLocks failed: Resource temporarily unavailable Instead check for lock conflicts per path and cache the result. Change-Id: I39c59bb240cd99ef0a0ec271243770ffd5df8a7d Reviewed-by: David Faure <david.faure@kdab.com>
* Check if the file is writable even while QT_BOOTSTRAPPEDAndy Shaw2015-12-111-2/+6
| | | | | | | | | | QConfFile::isWritable() has the extra effect that it will try and create the path where the file should be if it does not already exist. So this cannot be omitted as 'qmake -set' may be used in a situation where the path does not yet exist. Change-Id: I0113644259f78d090a0687c44cf60d400be9c859 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* OS X: Fix QStandardPaths::standardLocations()Andrew McCann2015-11-221-1/+1
| | | | | | | Task-number: QTBUG-49443 Change-Id: I0699dfd3cb4c710ab96c324219444c6294c9d732 Reviewed-by: Jake Petroules <jake.petroules@theqtcompany.com> Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
* QWindowsPipeReader: fix occasional "Unknown error 995"Joerg Bornemann2015-11-021-0/+4
| | | | | | | | | | | | After canceling the asynchronous read operation, the notified() slot receives ERROR_OPERATION_ABORTED. We must not handle this situation as an error. This amends commit 5ce567c5. Task-number: QTBUG-48336 Change-Id: Iff948ceb3ad1f805a9de8c188fbc39ed4c76ba82 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* Fix QStorageInfo on BSD4 systemsDmitry Shachnev2015-10-271-2/+8
| | | | | | | | | | | | - On NetBSD, the defines were not properly defined; - On all other BSD systems, we use statfs which does not have f_frsize member, revert to using f_bsize there. Task-number: QTBUG-48267 Change-Id: Ia1ed484ac61a615fcbb5b45affb516b5e86a64b0 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Lisandro Damián Nicanor Pérez Meyer <perezmeyer@gmail.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* fix growth of event queue in QWinOverlappedIoNotifier::waitFor*Joerg Bornemann2015-10-261-15/+47
| | | | | | | | | Do not emit _q_notified when we're in a wait function. Otherwise, the queued signals could pile up in the event queue. Task-number: QTBUG-48653 Change-Id: I071863e2356e17c7004e3b7ca359967cb115e343 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* QLockFile: fix errno handlingGiuseppe D'Angelo2015-10-121-2/+4
| | | | | | | | | In case of a lock failure, we potentially pollute the errno value before printing it. Also, switch to qt_error_string, as strerror is not reentrant. Change-Id: I952aac14204637155726bcefc0ed8a21d7fcd501 Reviewed-by: David Faure <david.faure@kdab.com>
* QDebug: add missing docs for op<<(Container)Marc Mutz2015-10-072-8/+64
| | | | | Change-Id: I9f89d8e792bf0d432a0b2522f26026c6ad81e2f4 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* clean up QWindowsPipeWriter I/O error handlingJoerg Bornemann2015-09-291-7/+8
| | | | | | | Exit early, and add warning messages for (unlikely) error cases. Change-Id: I7130b2e298f3a644a9d0e96a3a1860350e11adff Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* QWindowsPipeWriter: clean up OVERLAPPED resource handlingJoerg Bornemann2015-09-291-8/+31
| | | | | | | | | Use RAII to ensure that every code path cleans up the event handle, and re-initialize the whole OVERLAPPED object, not just the two offset members. Change-Id: If7e68ec6e61b7bb04df0d06734c04589f6822c4a Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* fix error messageJoerg Bornemann2015-09-221-1/+1
| | | | | | | The error message mentioned a wrong function name. Change-Id: Ia2258744fd9268af6b00f54e74d40476ded3b0d2 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* Fix compilation with QT_NO_[DEBUG|WARNING]_OUTPUTKai Koehne2015-09-211-0/+6
| | | | | Change-Id: I4b92ac6b917c9979449b4834764497003d6de087 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* Fix regression with QStandardPaths::standardLocations on WindowsJoni Poikelin2015-09-171-1/+1
| | | | | | | | | | Commit f3bc9f5c5cee9dac8a7815c2861a9945b5341390 broke standardLocations by replacing them with same paths as writeable locations would return. Task-number: QTBUG-46279 Change-Id: I43150e3af13320a707c7882dd0f0cdcb2c6e8a70 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Reviewed-by: David Faure <david.faure@kdab.com>
* Doc: Corrected link issues in qtbaseNico Vertriest2015-09-041-1/+1
| | | | | | Task-number: QTBUG-43810 Change-Id: I0a019becc53b222cb6a7df1fafdccd57aca5b598 Reviewed-by: Martin Smith <martin.smith@digia.com>
* Add QLockFilePrivate::processNameByPid implementation for GNU/kFreeBSDDmitry Shachnev2015-08-271-0/+24
| | | | | | | | GLIBC does not provide kinfo_getproc, so we need to call sysctl manually. Change-Id: I3bf22959ff74b3b6c34b5360738e52086a3ff1b4 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* Doc: Mention Windows limitations in QFileInfo permission methodsKai Koehne2015-08-251-1/+15
| | | | | | | | | | The limitation is already mentioned in the class documentation, but IMO is severe enough to be highlighted in the documentation of the respective methods, too. Change-Id: I16c68eb41ab9d3a7698d7ef06f747cfd98a8aaff Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
* fix assertion in QProcess/WinJoerg Bornemann2015-08-171-2/+4
| | | | | | | | | | | | | Do not call bytesAvailableInChannel if the source pipe end is invalid. This is the case when redirecting channels on Windows. The assertions in bytesAvailableInChannel were triggered whenever an output process or output file was set and waitForBytesWritten was called. Task-number: QTBUG-45548 Change-Id: I225dfea2c5e27e122f75008a3a06d425554e00fe Reviewed-by: Alex Trotsenko <alex1973tr@gmail.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* QProcess: Ensure that the stdin buffer is cleared on start()Thiago Macieira2015-08-152-2/+3
| | | | | | | | | | | | | | The buffer may have been left dirty if we were unable to write all the data to the child process in the previous run. So ensure we clear it before starting a new one. We already did that for stdout and stderr, for some reason. Task-number: QTBUG-44517 Change-Id: I1a800c709d3543699131ffff13c419da3bbffacf Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* Merge "Merge remote-tracking branch 'origin/5.4' into 5.5" into refs/staging/5.5Oswald Buddenhagen2015-08-122-7/+7
|\
| * Merge remote-tracking branch 'origin/5.4' into 5.5Oswald Buddenhagen2015-07-172-7/+7
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: doc/global/manifest-meta.qdocconf src/corelib/global/qnamespace.qdoc src/corelib/io/qstorageinfo_unix.cpp src/corelib/tools/qtools_p.h src/sql/drivers/psql/qsql_psql.cpp Change-Id: I23a15ac84e03ad61d865e3df872b013eb0752949
| | * Update QProcess doc to use non-deprecated setProcessEnvironmentSamuel Gaist2015-05-301-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | Currently the documentation still mentions the use of the deprected setEnvironment function. This patch aims to correct that Task-number: QTBUG-45235 Change-Id: Iab35754b39f025c7493a6f061eb72e23bc4cf308 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
| | * Correct calculation of filesystem data on unusual filesystemsThiago Macieira2015-05-301-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | POSIX.1 says f_blocks, f_bfree, f_bavail are calculated in terms of f_frsize, not of the regular block size f_bsize. On most systems, it's the same, which is why we didn't catch it. I don't have any filesystem to test this on to confirm. Reference: http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_statvfs.h.html Task-number: QTBUG-45137 Change-Id: I27eaacb532114dd188c4ffff13d3e13016bed4e6 Reviewed-by: Dmitry Shachnev <mitya57@gmail.com> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* | | QProcessEnvironment documentation typo fixSamuel Gaist2015-08-061-6/+6
| | | | | | | | | | | | | | | | | | Task-number: QTBUG-45985 Change-Id: I42de961ca6d57847c135abd8395494d0e416ab05 Reviewed-by: Sze Howe Koh <szehowe.koh@gmail.com>
* | | Doc: update QDebug documentation to talk about the escapingThiago Macieira2015-08-061-8/+95
| | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-47316 Change-Id: Ib306f8f647014b399b87ffff13f303badb2a7a63 Reviewed-by: Martin Smith <martin.smith@digia.com> Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* | | Change how QDebug escapes QStrings in the outputThiago Macieira2015-08-061-13/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [ChangeLog][Important Behavior Changes] QDebug output for QStrings changed compared to Qt 5.5.0 to more closely match the output of previous Qt versions. Like Qt 5.5.0, QDebug will escape non-printable characters, the backslash and quote characters, but will no longer escape the printable characters. Task-number: QTBUG-47316 Change-Id: I52dd43c12685407bb9a6ffff13f62ef68cbc80c5 Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
* | | QLoggingCategory: fix default severity in Q_LOGGING_CATEGORY macroAlex Merry2015-08-031-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [ChangeLog][QtCore][QLoggingCategory] Fixed behavior of default severity passed to constructor or Q_LOGGING_CATEGORY with regards to QtInfoMsg, which was previously treated as being more severe than QtFatalMsg. This is because the code was using the numeric value of QtMsgType as a proxy for severity (via the <= operator), but the value of QtInfoMsg is greater than QtFatalMsg. Instead, the severity ordering must be dealt with explicitly. Change-Id: I5f178afc735221b00cb67c2cea4fa964bd9079ce Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
* | | consistently handle empty program string in QProcess::start overloadsJoerg Bornemann2015-07-301-1/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | All overloads of QProcess::start will now check whether the program string is empty and in that case - set error to FailedToStart, - set errorString to "No program defined", - emit error. Until now only one of the three overloads behaved like this. As a side effect, start(QString(), QStringList()) will not crash on Windows anymore. Task-number: QTBUG-47404 Change-Id: I2f93657204fe3643b1d74a74817843c05fc4a96b Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Jake Petroules <jake.petroules@petroules.com> Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
* | | Fix compilation error while instantiating operator<< explicitlyOlivier Goffart2015-07-261-3/+11
| | | | | | | | | | | | | | | | | | Task-number: QTBUG-47375 Change-Id: Ibd260de88c174c1aa3833a56b153b8b74d337338 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | | QtCore: Fix const correctness in old style castsThiago Macieira2015-07-203-6/+6
|/ / | | | | | | | | | | | | Found with GCC's -Wcast-qual. Change-Id: Ia0aac2f09e9245339951ffff13c8d4b2920a11fb Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | QDir::removeRecursively(): Retry file deletion with write permission set.Friedemann Kleint2015-07-171-4/+12
| | | | | | | | | | | | | | | | | | | | | | | | On Windows, having read-only files in a directory can cause removal to fail. When file deletion fails, check on the permissions, set write permissions and retry. Split apart code paths by OS in tst_QDir::removeRecursivelyFailure(); deletion of the read-only directory on UNIX should still fail. Change-Id: I36e54be5229a7b552e90fd5f42722b868fa0b6ee Reviewed-by: David Faure <david.faure@kdab.com>
* | forkfd: update the API to add a reading and closing functionThiago Macieira2015-07-171-9/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Right now the two functions being added are just wrappers, but this will allow us in the future to support FreeBSD and Linux's system calls that do the equivalent of forkfd, but have slightly different semantics in the actual getting of the information from the file descriptor. See-Also: https://lkml.org/lkml/2015/3/12/1044 See-Also: http://www.freebsd.org/cgi/man.cgi?query=pdfork Change-Id: Ia0aac2f09e9245339951ffff13c94acb5f4ff204 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Add warning for malformed logging ruleTasuku Suzuki2015-07-161-13/+16
| | | | | | | | | | Change-Id: I58ccbb77e5ab62e4114a271f199797dd1307a676 Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
* | Set the state of QTemporaryFileEngine properly prior to reopeningThiago Macieira2015-07-153-14/+28
| | | | | | | | | | | | | | | | | | | | | | QTemporaryFileEngine does not store the pattern, so it needs to get it again from QTemporaryFilePrivate prior to reopening the file. It's possible to lose the pattern when remove() is called on the object. Task-number: QTBUG-46156 Change-Id: I66a35ce5f88941f29aa6ffff13dfc7f83d4fa3a2 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com> Reviewed-by: David Faure <david.faure@kdab.com>
* | Fix build on FreeBSD: kinfo_getproc is in libutilThiago Macieira2015-07-151-0/+1
| | | | | | | | | | | | | | | | | | | | I can't find the function for NetBSD and OpenBSD. There's a good chance QtCore simply fails to compile. Change-Id: Ib056b47dde3341ef9a52ffff13efaff642bd7bb9 Link: http://www.freebsd.org/cgi/man.cgi?query=kinfo_getproc Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | fix build under FreeBSD 10Oswald Buddenhagen2015-06-301-0/+1
| | | | | | | | | | | | | | | | qlockfile_unix.cpp:236:24: error: use of undeclared identifier 'kinfo_getproc' Task-number: QTBUG-46907 Change-Id: I146b5de99b6149df64c116cbdec81a19e352a3a9 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Replace MAC OS X with OS XNico Vertriest2015-06-301-1/+1
| | | | | | | | | | | | Task-number: QTBUG-46374 Change-Id: I7bc633ab551740bd328a24b0ccae1d534af47138 Reviewed-by: Martin Smith <martin.smith@digia.com>
* | Merge remote-tracking branch 'origin/5.5.0' into 5.5Liang Qi2015-06-275-6/+12
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/plugins/platforms/cocoa/qcocoafiledialoghelper.h Manually fixed src/testlib/qtestcase.cpp to return the right type. Change-Id: Id1634dbe3d73fefe9431b9f5378846cb187624e4
| * | Doc: Remove link to deprecated QProcess::pid()Kai Koehne2015-06-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | QProcess::pid() is deprecated since Qt 5.3. Rather link to it's replacement. Change-Id: Iaea86137a046513809f9f92ff88fe21233adaa34 Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
| * | Fix sizes QStorageInfo returns for invalid drivesIvan Komissarov2015-06-112-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Zero is a legitimate size to be returned by bytesFree/bytesAvailable functions, so change those functions to return some 'invalid' size in case of an invalid drive. This is also consistent with the original version from the Qt Systems framework. [ChangeLog][QtCore][QStorageInfo] Fixed sizes returned for invalid drives. Task-number: QTBUG-45724 Change-Id: I312fba521fdf8d52d7a0ac0e46cacca625775e80 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| * | Doc: Update due to renaming QTextStream::readLine() overloadAlexander Volkov2015-06-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | readLine() overload was renamed into readLineInto() in 21674735ccd029c17dc8b36211e9b5bc3595ba34. Change-Id: Iebd4c4e42ef4579c02ca38d7e41d00c3032130d8 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
| * | Rename QTextStream::readLine(QString *, qint64) into readLineIntoSimon Hausmann2015-06-032-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As discussed on the development mailing list, the new overload is ambiguous and breaks source compatibility. Therefore this function that is new in 5.5 shall be called readLineInto. Change-Id: I2aecb8441af4edb72f16d0bc6dabf10cdabf32e2 Reviewed-by: Jan Kundrát <jkt@kde.org> Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | | Simplify permission flag handling a bitKonstantin Ritt2015-06-252-13/+5
| | | | | | | | | | | | | | | | | | Change-Id: I753f7a398c39e7300821658f27e4813c591eebc3 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | | Make QDir::relativeFilePath() return "." for a path to itself.Christian Kandeler2015-06-241-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The rationale being that the empty string is not a valid path component. [ChangeLog][QtCore][QDir] QDir::relativeFilePath() now returns "." instead of an empty string if the given path is the same as the directory. Change-Id: Ibcf31904b2ae5edf5639d4c2e5ba234365d347fd Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | | Use the default QLocale for QFileSelector, not the system localeThiago Macieira2015-06-191-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The default locale is the system locale, unless you changed the default with QLocale::setLocale(). If you did that, you probably want it to apply to QFileSelector too. Task-number: QTBUG-45951 Change-Id: I0d4913955e3745b69672ffff13db5a2c7f8b1227 Reviewed-by: Alan Alpert <aalpert@blackberry.com>
* | | fix decoding of file paths in QLockFilePrivate::processNameByPidJoerg Bornemann2015-06-121-3/+3
| | | | | | | | | | | | | | | | | | | | | QFile::decodeName should be used instead of a simple QString::fromUtf8. Change-Id: I76955ab01af55dd373f860f6e3dbffa37e60892c Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | | fix unterminated char buffer glitchJoerg Bornemann2015-06-121-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | readlink does not append a NUL character to buf. If readlink places PATH_MAX characters into buf, then an unterminated character buffer would have been passed to QString::fromUtf8. Change-Id: Ib1865b8df760fa7da91c3be746dc701a165d93ee Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | | Fix return value of QWindowsFileSystemWatcherEngine::removePaths().Friedemann Kleint2015-06-091-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, the path was removed from list returned (indicating failure to remove) only when the thread's list was empty (last file in directory). Move the statement up so that removal happens when it is found in thread's list. Task-number: QTBUG-46449 Change-Id: Ib79199c731f79357b0e5c17636254fbeb3a754a0 Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
* | | Fix race condition with QProcess on OSX 10.7Dyami Caliri2015-06-061-0/+3
|/ / | | | | | | | | | | | | | | | | Closing the forkfd descriptor before disabling the deathNotifier causes a race condition in ~QProcess. This is the same underlying cause as QTBUG-22789. Change-Id: I1cbdedc567fdfa8d95d111827b7bf9994661ecc7 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Merge "Merge remote-tracking branch 'origin/5.4' into 5.5" into ↵Jani Heikkinen2015-06-021-1/+1
|\ \ | | | | | | | | | refs/staging/5.5.0
| * | Merge remote-tracking branch 'origin/5.4' into 5.5Liang Qi2015-06-011-1/+1
| |\| | | | | | | | | | | | | | | | | | | | | | Conflicts: qmake/generators/mac/pbuilder_pbx.cpp src/corelib/global/qglobal.h Change-Id: I2c0f7544bf194f2d0f59218fd583c822901487b0