Commit graph

168 commits

Author SHA1 Message Date
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
Ivailo Monev
3ab3f3b47f kutils: new karchive library to replace KZip and KTar
it has to solve a few problems like:
1. blocking the current thread while listing, extracting or adding to
   archive
2. lack of support for some archive formats such as 7-zip in the
   previously available classes for dealing with archive
3. progress and error reporting

a KArchiveJob class may have to be implemented to solve the above
issues. the API is just as frustrating to use as KTar and KZip right now
tho and I am not happy with that but the class itself is a 3-rd rewrite
of what was once Python module, plugin for another project and now used
as base in library.

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-06 16:53:55 +03:00
Ivailo Monev
e587e6ad28 kdecore: update comment and remove unused variable in KSaveFile::backupFile()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-03 14:34:32 +03:00
Ivailo Monev
5f7912004c kdecore: replace KTempDir::create() with its body
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-09-30 21:33:18 +03:00
Ivailo Monev
c03977c492 kdecore: move the rmtree() function to the top of ktempdir source file
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-09-30 21:32:24 +03:00
Ivailo Monev
0084c9aada kdecore: remove bogus check for HAVE_TEST definition in ktempdir source file
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-09-30 21:08:32 +03:00
Ivailo Monev
894a2d52bb kdecore: remove KLocale getters related to text codec
see the comment in KLocalePrivate::initEncoding()

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-09-30 20:00:04 +03:00
Ivailo Monev
06f4ccefdf kdecore: correct return value checks in rmtree() function
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-09-28 01:22:51 +03:00
Ivailo Monev
a8aa470a11 kdecore: format ktempdir source and header files
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-09-28 01:20:28 +03:00
Ivailo Monev
7dc5187778 kdecore: replace most of KRandomSequence with new KRandom::randomMax() function
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-09-26 12:58:37 +03:00
Ivailo Monev
a692d6026e kdecore: remove unused KAutoSaveFile class
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-09-26 09:54:51 +03:00
Ivailo Monev
96299d83f5 kdecore: remove redundant KRandom::random() call in KTempDir::create()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-09-26 08:41:45 +03:00