Commit graph

179 commits

Author SHA1 Message Date
Ivailo Monev
e921df61cf kdecore: implement option to recurse into sub-directories from KDirWatch::addDir()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-21 11:47:56 +02:00
Ivailo Monev
6160da3e6a kdecore: remove the paths from the internal KDirWatch list
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-21 11:18:24 +02:00
Ivailo Monev
03aba012a0 kdecore: KDirWatch rewrite
I rewrote QFileSystemWatcher some time ago for it to be able to watch
non-existing directories, did rewrite KDirWatch too to not use FAM
and inotify making the created() and deleted() signals non-operational
(with the plan to maybe implement them in QFileSystemWatcher but that
will be hack-ish for directories with stat()-based implementation)

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-21 00:24:49 +02:00
Ivailo Monev
90c57ada83 kdecore: unregister the helper service and object from KAuthorization destructor
I should (ab)use the object name for more things

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-12 08:19:15 +02:00
Ivailo Monev
f9171a653f kdecore: cache the debug area devices as KDebugConfig member
reducing the global statics used by KDebug to two - one for the null device
and one for the configuration and internal cache

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-12 07:42:40 +02:00
Ivailo Monev
6e8e2238cc kdecore: add comment to KDebug() default switch case
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-27 04:51:47 +02:00
Ivailo Monev
f80529f5cd kdecore: replace hard-codec KDebug output types with enums
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-27 02:44:44 +02:00
Ivailo Monev
9b41127ecb generic: prepare for Katie changes
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-13 00:40:18 +02:00
Ivailo Monev
3a6ed6d1e1 kdecore: KDirWatch::addDir() optimization
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-04 11:12:13 +02:00
Ivailo Monev
95a8d172be kdecore: search backwards for the template and stop at directory separator in KTemporaryFile::filePath()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-01 00:51:55 +02:00
Ivailo Monev
49371e1370 kdecore: avoid temporary in KTemporaryFile constructor
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-01 00:51:05 +02:00
Ivailo Monev
4e933b8cc8 kdecore: check if KDebug mutex is destroyed before using it
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-24 17:34:08 +03:00
Ivailo Monev
78b1c9af08 kdecore: minor KDebug documentation review
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-24 05:53:46 +03:00
Ivailo Monev
d33ed63e8f kdecore: cache debug area preferences on demand
most programs use 5-15 areas and if kdebugrc contains preferences for many
areas the initial caching process would take a lot of time

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-24 05:34:21 +03:00
Ivailo Monev
054f2fc7e7 kdecore: deal with TODO related to KDebug
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-24 03:28:52 +03:00
Ivailo Monev
a1a03f11a0 kdecore: do not add timestamp to header when the output type is syslog
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-24 02:54:54 +03:00
Ivailo Monev
70b7bb978d kdecore: use red color for both critical and fatal message type but make the fatal blink
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-24 05:23:42 +03:00
Ivailo Monev
612b956ada kdecore: KDebug documentation review
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-24 04:28:25 +03:00
Ivailo Monev
2e69366e51 kdecore: KTemporaryFile documentation correction
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-24 04:05:13 +03:00
Ivailo Monev
f433324deb kdecore: KDebug review
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-24 04:04:57 +03:00
Ivailo Monev
6d54fcbe94 kdecore: simplify and unexport KDebug internals
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-24 00:33:05 +03:00
Ivailo Monev
b45b5344b2 kdecore: cache KDebug devices based on area and output type
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-24 00:59:46 +03:00
Ivailo Monev
22463b6895 kdecore: cache KDebug area preferences
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-23 20:11:28 +03:00
Ivailo Monev
65e8d1dfe3 kdecore: open and close the system log for each message
sub-optimal but recommended in glibc/manual/syslog.texi for shared
libraries, there is also the case of multiple KDebugSyslogDevice opening
the system log more than once per-program

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-23 19:29:58 +03:00
Ivailo Monev
b287467137 kdecore: do not prepend the temporary directory and main component name if template is absolute path from KTemporaryFile::filePath()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-23 18:05:15 +03:00
Ivailo Monev
8224768f2a kdecore: print debug messages of shell type to stderr too
for program that outputs something to stdout and other program reads it,
don't want programs to read debug messages

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-23 07:10:52 +03:00
Ivailo Monev
d834ef9e19 kdecore: fix writing of warning messages to file and test case it
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-23 06:44:30 +03:00
Ivailo Monev
35fa149bc0 kdecore: copyrighting KDebug to me
if I rewrite kBacktrace() there is nothing left not coded by me there, I
wrote backtrace printer for Katie with symbols demangling btw

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-23 05:51:54 +03:00
Ivailo Monev
6403e15075 kdecore: minor KDebug review
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-23 05:46:59 +03:00
Ivailo Monev
271b1a0588 kdecore: print colorized messages that are not of debug type to stderr
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-23 03:39:26 +03:00
Ivailo Monev
960461d7ce kdecore: destroy devices and reset environment variable caches from kClearDebugConfig()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-23 03:36:59 +03:00
Ivailo Monev
04c84dfbc1 kdecore: implement KDE_DEBUG_COLOR for KDebug
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-23 02:53:46 +03:00
Ivailo Monev
f3905e1760 kdecore: implement KDE_DEBUG_METHODNAME for KDebug
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-23 02:04:33 +03:00
Ivailo Monev
04a111969a kdecore: flush the file stream after printing to it from KDebugShellDevice
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-23 01:20:15 +03:00
Ivailo Monev
930c5af97c kdecore: unexport internal kDebugDevNull() function
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-23 00:17:22 +03:00
Ivailo Monev
e4b1268804 kdecore: debug classes, functions and definitions review
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-22 19:55:23 +03:00
Ivailo Monev
028414cb07 kdecore: KDebug rewrite
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-22 19:17:52 +03:00
Ivailo Monev
5d3b9eff13 kdecore: remove redundant internal KDE4_CMAKE_TOPLEVEL_DIR_LENGTH definition
it has the same effect as -ffile-prefix-map="${CMAKE_SOURCE_DIR}=." which
would affect not only KDebug if reproducible builds are a must (Debian) or
references to the build directory are not desired (Arch Linux). Debian
sets -ffile-prefix-map automatically by default as for Arch there may be
more warnings from `makepkg` after this change about references to source
directory but that's not something I have to look into

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-22 02:48:04 +03:00
Ivailo Monev
9c701ec354 kdecore: correct fdatasync()/fsync() return value checks in KSaveFile::finalize()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-20 04:06:11 +03:00
Ivailo Monev
aa4a3c8b1e kdecore: const-ify extraSync in KSaveFile::finalize()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-20 00:52:48 +03:00
Ivailo Monev
aa8951e558 kdecore: correct fchown() return value check in KSaveFile::open()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-20 00:18:45 +03:00
Ivailo Monev
90dcd31b77 kdecore: tune busy loops for more throughput
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-16 20:39:36 +03:00
Ivailo Monev
82a503ebb3 kdecore: minor KLockFile optimization
it is cheaper to realloc() the QByteArray data

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-08 17:34:42 +03:00
Ivailo Monev
0812a98d19 kdecore: block only when another process is holding the lock in KLockFile::lock()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-08 14:12:41 +03:00
Ivailo Monev
2e9adc69c4 kdecore: kglobal header inclusion is no longer required in klockfile header
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-08 13:57:07 +03:00
Ivailo Monev
fce08e0ff9 kdecore: KLockFile documentation corrections
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-08 06:54:40 +03:00
Ivailo Monev
5d42434579 kdecore: KLockFile branches optimizations
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-08 03:41:29 +03:00
Ivailo Monev
cada9f78a4 kdecore: KLockFile rewrite
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-08 03:28:20 +03:00
Ivailo Monev
5a32a5865c kdecore: drop support for locking NFS files on servers v3 or older
note that KLockFile is used only by KConfig (its INI backend), anything
not using KConfig to access files is not affected by the lock method
KLockFile uses

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-08 01:20:50 +03:00
Ivailo Monev
ce5ff1c1c8 kdecore: implement temporary filepath generator
using it means no disk I/O to generate temporary filepaths in some cases

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-07 05:17:49 +03:00