Make GitLab build work with clang checks.

This commit is contained in:
Brenden Matthews 2019-02-23 14:40:34 -05:00
parent 0ea4559f30
commit 90673cf161
54 changed files with 11854 additions and 11282 deletions

View File

@ -17,7 +17,7 @@ AllowShortLoopsOnASingleLine: true
AlwaysBreakAfterDefinitionReturnType: None
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: true
AlwaysBreakTemplateDeclarations: true
AlwaysBreakTemplateDeclarations: Yes
BinPackArguments: true
BinPackParameters: true
BraceWrapping:
@ -39,6 +39,7 @@ BraceWrapping:
BreakBeforeBinaryOperators: None
BreakBeforeBraces: Attach
BreakBeforeInheritanceComma: false
BreakInheritanceList: BeforeColon
BreakBeforeTernaryOperators: true
BreakConstructorInitializersBeforeComma: false
BreakConstructorInitializers: BeforeColon
@ -81,6 +82,7 @@ MacroBlockBegin: ''
MacroBlockEnd: ''
MaxEmptyLinesToKeep: 1
NamespaceIndentation: None
ObjCBinPackProtocolList: Never
ObjCBlockIndentWidth: 2
ObjCSpaceAfterProperty: false
ObjCSpaceBeforeProtocolList: false
@ -89,12 +91,37 @@ PenaltyBreakBeforeFirstCallParameter: 1
PenaltyBreakComment: 300
PenaltyBreakFirstLessLess: 120
PenaltyBreakString: 1000
PenaltyBreakTemplateDeclaration: 10
PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 200
PointerAlignment: Left
RawStringFormats:
- Delimiter: pb
Language: TextProto
- Language: Cpp
Delimiters:
- cc
- CC
- cpp
- Cpp
- CPP
- 'c++'
- 'C++'
CanonicalDelimiter: ''
BasedOnStyle: google
- Language: TextProto
Delimiters:
- pb
- PB
- proto
- PROTO
EnclosingFunctions:
- EqualsProto
- EquivToProto
- PARSE_PARTIAL_TEXT_PROTO
- PARSE_TEST_PROTO
- PARSE_TEXT_PROTO
- ParseTextOrDie
- ParseTextProtoOrDie
CanonicalDelimiter: ''
BasedOnStyle: google
ReflowComments: true
SortIncludes: true
@ -102,7 +129,11 @@ SortUsingDeclarations: true
SpaceAfterCStyleCast: false
SpaceAfterTemplateKeyword: true
SpaceBeforeAssignmentOperators: true
SpaceBeforeCpp11BracedList: false
SpaceBeforeCtorInitializerColon: true
SpaceBeforeInheritanceColon: true
SpaceBeforeParens: ControlStatements
SpaceBeforeRangeBasedForLoopColon: true
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 2
SpacesInAngles: false

52
.clang-tidy Normal file
View File

@ -0,0 +1,52 @@
---
Checks: 'clang-diagnostic-*,clang-analyzer-*,google-*'
WarningsAsErrors: ''
HeaderFilterRegex: ''
AnalyzeTemporaryDtors: false
FormatStyle: none
User: brenden
CheckOptions:
- key: google-build-namespaces.HeaderFileExtensions
value: ',h,hh,hpp,hxx'
- key: google-global-names-in-headers.HeaderFileExtensions
value: ',h,hh,hpp,hxx'
- key: google-readability-braces-around-statements.ShortStatementLines
value: '1'
- key: google-readability-function-size.BranchThreshold
value: '4294967295'
- key: google-readability-function-size.LineThreshold
value: '4294967295'
- key: google-readability-function-size.NestingThreshold
value: '4294967295'
- key: google-readability-function-size.ParameterThreshold
value: '4294967295'
- key: google-readability-function-size.StatementThreshold
value: '800'
- key: google-readability-function-size.VariableThreshold
value: '4294967295'
- key: google-readability-namespace-comments.ShortNamespaceLines
value: '10'
- key: google-readability-namespace-comments.SpacesBeforeComments
value: '2'
- key: google-runtime-int.SignedTypePrefix
value: int
- key: google-runtime-int.TypeSuffix
value: ''
- key: google-runtime-int.UnsignedTypePrefix
value: uint
- key: google-runtime-references.WhiteListTypes
value: ''
- key: modernize-loop-convert.MaxCopySize
value: '16'
- key: modernize-loop-convert.MinConfidence
value: reasonable
- key: modernize-loop-convert.NamingStyle
value: CamelCase
- key: modernize-pass-by-value.IncludeStyle
value: llvm
- key: modernize-replace-auto-ptr.IncludeStyle
value: llvm
- key: modernize-use-nullptr.NullMacros
value: 'NULL'
...

View File

@ -1,27 +1,65 @@
stages:
- dependencies
- build
- test
- lint
image: brndnmtthws/conky-builder:latest
variables:
CC: clang-7
CXX: clang++-7
DOCKER_DRIVER: overlay2
DOCKER_HOST: tcp://localhost:2375/
docker_builder:
stage: dependencies
image: docker:stable
only:
changes:
- Dockerfile.builder
services:
- docker:dind
before_script:
- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
script:
- docker pull $CI_REGISTRY_IMAGE/builder:latest || true
- docker build -f Dockerfile.builder --cache-from $CI_REGISTRY_IMAGE/builder:latest --tag $CI_REGISTRY_IMAGE/builder:$CI_COMMIT_SHA --tag $CI_REGISTRY_IMAGE/builder:latest .
- docker push ${CI_REGISTRY_IMAGE}/builder:$CI_COMMIT_SHA
- docker push ${CI_REGISTRY_IMAGE}/builder:latest
build:
image: $CI_REGISTRY_IMAGE/builder:latest
stage: build
script:
- mkdir build
- cd build
- cmake ..
- cmake -DMAINTAINER_MODE=ON ..
- make -j4
artifacts:
expire_in: 1 day
paths:
- build/
test:
image: $CI_REGISTRY_IMAGE/builder:latest
stage: test
script:
- cd build
- make test
- cmake -DCMAKE_SOURCE_DIR=$(dirname `pwd`) -DCMAKE_BINARY_DIR=`pwd` -DMAINTAINER_MODE=ON -DBUILD_TESTS=ON ..
- make -j4
- make -j4 test
lint:
check-clang-tidy:
image: $CI_REGISTRY_IMAGE/builder:latest
stage: test
script:
- cd build
- cmake -DCHECK_CODE_QUALITY=ON ..
- make check
- cmake -DCMAKE_SOURCE_DIR=$(dirname `pwd`) -DCMAKE_BINARY_DIR=`pwd` -DMAINTAINER_MODE=ON -DCHECK_CODE_QUALITY=ON ..
- make -j4 check-clang-tidy
check-clang-format:
image: $CI_REGISTRY_IMAGE/builder:latest
stage: test
script:
- cd build
- cmake -DCMAKE_SOURCE_DIR=$(dirname `pwd`) -DCMAKE_BINARY_DIR=`pwd` -DMAINTAINER_MODE=ON -DCHECK_CODE_QUALITY=ON ..
- make -j4 check-clang-format

View File

@ -101,12 +101,6 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
endif(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
if(CHECK_CODE_QUALITY)
# Set up clang-tidy
set(CLANG_TIDY_BIN_NAME
clang-tidy
clang-tidy-5.0
clang-tidy-6.0
clang-tidy-7.0)
set(CLANG_TIDY_EXCLUDE_PATTERNS "build/" ${CMAKE_BINARY_DIR})
find_package(ClangTidy)
find_package(ClangFormat)
endif(CHECK_CODE_QUALITY)

View File

@ -1,16 +1,11 @@
FROM ubuntu:bionic
RUN apt-get update \
&& DEBIAN_FRONTEND=noninteractive \
apt-get install -qy --no-install-recommends \
software-properties-common \
wget \
gpg-agent \
&& wget -q https://apt.llvm.org/llvm-snapshot.gpg.key \
&& apt-key add llvm-snapshot.gpg.key \
&& add-apt-repository 'deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-7 main' \
&& DEBIAN_FRONTEND=noninteractive \
apt-get install -qy --no-install-recommends \
software-properties-common \
cmake \
git \
audacious-dev \
@ -35,6 +30,16 @@ RUN apt-get update \
libxmmsclient-dev \
libxnvctrl-dev \
ncurses-dev \
lcov \
docbook2x \
man \
less
RUN wget -q https://apt.llvm.org/llvm-snapshot.gpg.key \
&& apt-key add llvm-snapshot.gpg.key \
&& add-apt-repository 'deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-7 main' \
&& DEBIAN_FRONTEND=noninteractive \
apt-get install -qy --no-install-recommends \
clang-7 \
lldb-7 \
lld-7 \

326
bin/run-clang-format.py Executable file
View File

@ -0,0 +1,326 @@
#!/usr/bin/env python
"""A wrapper script around clang-format, suitable for linting multiple files
and to use for continuous integration.
This is an alternative API for the clang-format command line.
It runs over multiple files and directories in parallel.
A diff output is produced and a sensible exit code is returned.
Source: https://raw.githubusercontent.com/Sarcasm/run-clang-format/master/run-clang-format.py
"""
from __future__ import print_function, unicode_literals
import argparse
import codecs
import difflib
import fnmatch
import io
import multiprocessing
import os
import signal
import subprocess
import sys
import traceback
from functools import partial
DEFAULT_EXTENSIONS = 'c,h,C,H,cpp,hpp,cc,hh,c++,h++,cxx,hxx'
class ExitStatus:
SUCCESS = 0
DIFF = 1
TROUBLE = 2
def list_files(files, recursive=False, extensions=None, exclude=None):
if extensions is None:
extensions = []
if exclude is None:
exclude = []
out = []
for file in files:
if recursive and os.path.isdir(file):
for dirpath, dnames, fnames in os.walk(file):
fpaths = [os.path.join(dirpath, fname) for fname in fnames]
for pattern in exclude:
# os.walk() supports trimming down the dnames list
# by modifying it in-place,
# to avoid unnecessary directory listings.
dnames[:] = [
x for x in dnames
if
not fnmatch.fnmatch(os.path.join(dirpath, x), pattern)
]
fpaths = [
x for x in fpaths if not fnmatch.fnmatch(x, pattern)
]
for f in fpaths:
ext = os.path.splitext(f)[1][1:]
if ext in extensions:
out.append(f)
else:
out.append(file)
return out
def make_diff(file, original, reformatted):
return list(
difflib.unified_diff(
original,
reformatted,
fromfile='{}\t(original)'.format(file),
tofile='{}\t(reformatted)'.format(file),
n=3))
class DiffError(Exception):
def __init__(self, message, errs=None):
super(DiffError, self).__init__(message)
self.errs = errs or []
class UnexpectedError(Exception):
def __init__(self, message, exc=None):
super(UnexpectedError, self).__init__(message)
self.formatted_traceback = traceback.format_exc()
self.exc = exc
def run_clang_format_diff_wrapper(args, file):
try:
ret = run_clang_format_diff(args, file)
return ret
except DiffError:
raise
except Exception as e:
raise UnexpectedError('{}: {}: {}'.format(file, e.__class__.__name__,
e), e)
def run_clang_format_diff(args, file):
try:
with io.open(file, 'r', encoding='utf-8') as f:
original = f.readlines()
except IOError as exc:
raise DiffError(str(exc))
invocation = [args.clang_format_executable, file]
# Use of utf-8 to decode the process output.
#
# Hopefully, this is the correct thing to do.
#
# It's done due to the following assumptions (which may be incorrect):
# - clang-format will returns the bytes read from the files as-is,
# without conversion, and it is already assumed that the files use utf-8.
# - if the diagnostics were internationalized, they would use utf-8:
# > Adding Translations to Clang
# >
# > Not possible yet!
# > Diagnostic strings should be written in UTF-8,
# > the client can translate to the relevant code page if needed.
# > Each translation completely replaces the format string
# > for the diagnostic.
# > -- http://clang.llvm.org/docs/InternalsManual.html#internals-diag-translation
#
# It's not pretty, due to Python 2 & 3 compatibility.
encoding_py3 = {}
if sys.version_info[0] >= 3:
encoding_py3['encoding'] = 'utf-8'
try:
proc = subprocess.Popen(
invocation,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
universal_newlines=True,
**encoding_py3)
except OSError as exc:
raise DiffError(str(exc))
proc_stdout = proc.stdout
proc_stderr = proc.stderr
if sys.version_info[0] < 3:
# make the pipes compatible with Python 3,
# reading lines should output unicode
encoding = 'utf-8'
proc_stdout = codecs.getreader(encoding)(proc_stdout)
proc_stderr = codecs.getreader(encoding)(proc_stderr)
# hopefully the stderr pipe won't get full and block the process
outs = list(proc_stdout.readlines())
errs = list(proc_stderr.readlines())
proc.wait()
if proc.returncode:
raise DiffError("clang-format exited with status {}: '{}'".format(
proc.returncode, file), errs)
return make_diff(file, original, outs), errs
def bold_red(s):
return '\x1b[1m\x1b[31m' + s + '\x1b[0m'
def colorize(diff_lines):
def bold(s):
return '\x1b[1m' + s + '\x1b[0m'
def cyan(s):
return '\x1b[36m' + s + '\x1b[0m'
def green(s):
return '\x1b[32m' + s + '\x1b[0m'
def red(s):
return '\x1b[31m' + s + '\x1b[0m'
for line in diff_lines:
if line[:4] in ['--- ', '+++ ']:
yield bold(line)
elif line.startswith('@@ '):
yield cyan(line)
elif line.startswith('+'):
yield green(line)
elif line.startswith('-'):
yield red(line)
else:
yield line
def print_diff(diff_lines, use_color):
if use_color:
diff_lines = colorize(diff_lines)
if sys.version_info[0] < 3:
sys.stdout.writelines((l.encode('utf-8') for l in diff_lines))
else:
sys.stdout.writelines(diff_lines)
def print_trouble(prog, message, use_colors):
error_text = 'error:'
if use_colors:
error_text = bold_red(error_text)
print("{}: {} {}".format(prog, error_text, message), file=sys.stderr)
def main():
parser = argparse.ArgumentParser(description=__doc__)
parser.add_argument(
'--clang-format-executable',
metavar='EXECUTABLE',
help='path to the clang-format executable',
default='clang-format')
parser.add_argument(
'--extensions',
help='comma separated list of file extensions (default: {})'.format(
DEFAULT_EXTENSIONS),
default=DEFAULT_EXTENSIONS)
parser.add_argument(
'-r',
'--recursive',
action='store_true',
help='run recursively over directories')
parser.add_argument('files', metavar='file', nargs='+')
parser.add_argument(
'-q',
'--quiet',
action='store_true')
parser.add_argument(
'-j',
metavar='N',
type=int,
default=0,
help='run N clang-format jobs in parallel'
' (default number of cpus + 1)')
parser.add_argument(
'--color',
default='auto',
choices=['auto', 'always', 'never'],
help='show colored diff (default: auto)')
parser.add_argument(
'-e',
'--exclude',
metavar='PATTERN',
action='append',
default=[],
help='exclude paths matching the given glob-like pattern(s)'
' from recursive search')
args = parser.parse_args()
# use default signal handling, like diff return SIGINT value on ^C
# https://bugs.python.org/issue14229#msg156446
signal.signal(signal.SIGINT, signal.SIG_DFL)
try:
signal.SIGPIPE
except AttributeError:
# compatibility, SIGPIPE does not exist on Windows
pass
else:
signal.signal(signal.SIGPIPE, signal.SIG_DFL)
colored_stdout = False
colored_stderr = False
if args.color == 'always':
colored_stdout = True
colored_stderr = True
elif args.color == 'auto':
colored_stdout = sys.stdout.isatty()
colored_stderr = sys.stderr.isatty()
retcode = ExitStatus.SUCCESS
files = list_files(
args.files,
recursive=args.recursive,
exclude=args.exclude,
extensions=args.extensions.split(','))
if not files:
return
njobs = args.j
if njobs == 0:
njobs = multiprocessing.cpu_count() + 1
njobs = min(len(files), njobs)
if njobs == 1:
# execute directly instead of in a pool,
# less overhead, simpler stacktraces
it = (run_clang_format_diff_wrapper(args, file) for file in files)
pool = None
else:
pool = multiprocessing.Pool(njobs)
it = pool.imap_unordered(
partial(run_clang_format_diff_wrapper, args), files)
while True:
try:
outs, errs = next(it)
except StopIteration:
break
except DiffError as e:
print_trouble(parser.prog, str(e), use_colors=colored_stderr)
retcode = ExitStatus.TROUBLE
sys.stderr.writelines(e.errs)
except UnexpectedError as e:
print_trouble(parser.prog, str(e), use_colors=colored_stderr)
sys.stderr.write(e.formatted_traceback)
retcode = ExitStatus.TROUBLE
# stop at the first unexpected error,
# something could be very wrong,
# don't process all files unnecessarily
if pool:
pool.terminate()
break
else:
sys.stderr.writelines(errs)
if outs == []:
continue
if not args.quiet:
print_diff(outs, use_color=colored_stdout)
if retcode == ExitStatus.SUCCESS:
retcode = ExitStatus.DIFF
return retcode
if __name__ == '__main__':
sys.exit(main())

View File

@ -0,0 +1,23 @@
# Find Clang format
#
set(CLANG_FORMAT_BIN_NAME
clang-format
clang-format-5.0
clang-format-6.0
clang-format-7)
find_program(CLANG_FORMAT_BIN NAMES ${CLANG_FORMAT_BIN_NAME})
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(CLANG_FORMAT DEFAULT_MSG CLANG_FORMAT_BIN)
mark_as_advanced(CLANG_FORMAT_BIN)
if(CLANG_FORMAT_FOUND)
# A CMake script to find all source files and setup clang-format targets for
# them
include(clang-format)
else()
message("clang-format not found. Not setting up format targets")
endif()

View File

@ -1,17 +1,7 @@
# Find Clang tidy
#
if(NOT CLANG_TIDY_BIN_NAME)
set(CLANG_TIDY_BIN_NAME clang-tidy)
endif()
# if custom path check there first
if(CLANG_TIDY_ROOT_DIR)
find_program(CLANG_TIDY_BIN
NAMES ${CLANG_TIDY_BIN_NAME}
PATHS "${CLANG_TIDY_ROOT_DIR}"
NO_DEFAULT_PATH)
endif()
set(CLANG_TIDY_BIN_NAME clang-tidy clang-tidy-5.0 clang-tidy-6.0 clang-tidy-7)
find_program(CLANG_TIDY_BIN NAMES ${CLANG_TIDY_BIN_NAME})

27
cmake/clang-format.cmake Normal file
View File

@ -0,0 +1,27 @@
set(CLANG_FORMAT_CXX_FILE_EXTENSIONS
${CLANG_FORMAT_CXX_FILE_EXTENSIONS}
*.cpp
*.h
*.cxx
*.hxx
*.hpp
*.cc
*.hh
*.ipp)
foreach(PATTERN ${CLANG_FORMAT_CXX_FILE_EXTENSIONS})
list(APPEND CLANG_FORMAT_CXX_PATTERN ${CMAKE_SOURCE_DIR}/src/${PATTERN})
list(APPEND CLANG_FORMAT_CXX_PATTERN ${CMAKE_SOURCE_DIR}/tests/${PATTERN})
list(APPEND CLANG_FORMAT_CXX_PATTERN ${CMAKE_SOURCE_DIR}/lua/${PATTERN})
endforeach()
file(GLOB_RECURSE CLANG_FORMAT_SRCS ${CLANG_FORMAT_CXX_PATTERN})
add_custom_target(clang-format
COMMAND ${CLANG_FORMAT_BIN} -style=file -i
${CLANG_FORMAT_SRCS})
add_custom_target(check-clang-format
COMMAND ${CMAKE_SOURCE_DIR}/bin/run-clang-format.py
--color always
--clang-format-executable ${CLANG_FORMAT_BIN}
${CLANG_FORMAT_SRCS})

View File

@ -1,15 +1,27 @@
# Run clang-tidy
get_target_property(CLANG_TIDY_SRCS_TMP conky SOURCES)
get_target_property(conky_SRC_DIR conky SOURCE_DIR)
set(DO_CLANG_TIDY
"${CLANG_TIDY_BIN}"
-format-style='{BasedOnStyle:
google,
IndentWidth:
2}'
-checks=*,-clang-analyzer-alpha.*
-fix
-fix-errors)
if(CLANG_TIDY_BIN)
set_target_properties(conky PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}")
if(BUILD_TESTS)
get_target_property(CLANG_TIDY_SRCS_TMP_CORE conky_core SOURCES)
list(APPEND CLANG_TIDY_SRCS_TMP ${CLANG_TIDY_SRCS_TMP_CORE})
endif()
foreach(TMP_SRC ${CLANG_TIDY_SRCS_TMP})
if("${TMP_SRC}" MATCHES ".*\.cc|.*\.hh|.*\.[chi]pp|.*\.[chi]xx|.*\.ii")
list(APPEND CLANG_TIDY_SRCS ${conky_SRC_DIR}/${TMP_SRC})
endif()
endforeach(TMP_SRC)
get_target_property(CLANG_INCLUDES_tmp conky INCLUDE_DIRECTORIES)
foreach(TMP_INCLUDE ${CLANG_INCLUDES_tmp})
list(APPEND CLANG_INCLUDES -I${TMP_INCLUDE})
endforeach(TMP_INCLUDE)
add_custom_target(clang-tidy
COMMAND ${CLANG_TIDY_BIN} -config='' -fix -format-style=file
${CLANG_TIDY_SRCS}
-- -std=c++17 -I${CMAKE_BINARY_DIR} ${CLANG_INCLUDES})
add_custom_target(check-clang-tidy
COMMAND ${CLANG_TIDY_BIN} -config='' -format-style=file
${CLANG_TIDY_SRCS}
-- -std=c++17 -I${CMAKE_BINARY_DIR} ${CLANG_INCLUDES})

View File

@ -47,9 +47,6 @@ void destroy_cairo_font_extents_t(cairo_font_extents_t *pointer) {
free(pointer);
}
void destroy_cairo_matrix_t(cairo_matrix_t *pointer) {
free(pointer);
}
void destroy_cairo_matrix_t(cairo_matrix_t *pointer) { free(pointer); }
#endif /* _LIBCAIRO_HELPER_H_ */

View File

@ -29,13 +29,16 @@ void print_audacious_title(struct text_object *, char *, unsigned int);
void print_audacious_length(struct text_object *, char *, unsigned int);
void print_audacious_length_seconds(struct text_object *, char *, unsigned int);
void print_audacious_position(struct text_object *, char *, unsigned int);
void print_audacious_position_seconds(struct text_object *, char *, unsigned int);
void print_audacious_position_seconds(struct text_object *, char *,
unsigned int);
void print_audacious_bitrate(struct text_object *, char *, unsigned int);
void print_audacious_frequency(struct text_object *, char *, unsigned int);
void print_audacious_channels(struct text_object *, char *, unsigned int);
void print_audacious_filename(struct text_object *, char *, unsigned int);
void print_audacious_playlist_length(struct text_object *, char *, unsigned int);
void print_audacious_playlist_position(struct text_object *, char *, unsigned int);
void print_audacious_playlist_length(struct text_object *, char *,
unsigned int);
void print_audacious_playlist_position(struct text_object *, char *,
unsigned int);
void print_audacious_main_volume(struct text_object *, char *, unsigned int);
double audacious_barval(struct text_object *);

View File

@ -61,7 +61,8 @@ static int apm_getinfo(int fd, apm_info_t aip) {
return 0;
}
void print_apm_adapter(struct text_object *obj, char *p, unsigned int p_max_size) {
void print_apm_adapter(struct text_object *obj, char *p,
unsigned int p_max_size) {
int fd;
const char *out;
#ifdef __OpenBSD__
@ -109,7 +110,8 @@ void print_apm_adapter(struct text_object *obj, char *p, unsigned int p_max_size
snprintf(p, p_max_size, "%s", out);
}
void print_apm_battery_life(struct text_object *obj, char *p, unsigned int p_max_size) {
void print_apm_battery_life(struct text_object *obj, char *p,
unsigned int p_max_size) {
int fd;
u_int batt_life;
const char *out;
@ -150,7 +152,8 @@ void print_apm_battery_life(struct text_object *obj, char *p, unsigned int p_max
snprintf(p, p_max_size, "%s", out);
}
void print_apm_battery_time(struct text_object *obj, char *p, unsigned int p_max_size) {
void print_apm_battery_time(struct text_object *obj, char *p,
unsigned int p_max_size) {
int fd;
int batt_time;
#ifdef __OpenBSD__

View File

@ -24,8 +24,8 @@
#include "c++wrap.hh"
#include <cstdio>
#include <unistd.h>
#include <cstdio>
/* force use of POSIX strerror_r instead of non-portable GNU specific */
#ifdef _GNU_SOURCE
@ -42,9 +42,7 @@
namespace {
int pipe2_emulate(int pipefd[2], int flags) {
if (pipe(pipefd) == -1) {
return -1;
}
if (pipe(pipefd) == -1) { return -1; }
if ((flags & O_CLOEXEC) != 0) {
// we emulate O_CLOEXEC if the system does not have it
@ -52,13 +50,9 @@ int pipe2_emulate(int pipefd[2], int flags) {
for (int i = 0; i < 2; ++i) {
int r = fcntl(pipefd[i], F_GETFD);
if (r == -1) {
return -1;
}
if (r == -1) { return -1; }
if (fcntl(pipefd[i], F_SETFD, r | FD_CLOEXEC) == -1) {
return -1;
}
if (fcntl(pipefd[i], F_SETFD, r | FD_CLOEXEC) == -1) { return -1; }
}
}
@ -81,8 +75,6 @@ std::string strerror_r(int errnum) {
std::pair<int, int> pipe2(int flags) {
int fd[2];
if (pipe2_ptr(fd, flags) == -1) {
throw errno_error("pipe2");
}
if (pipe2_ptr(fd, flags) == -1) { throw errno_error("pipe2"); }
{ return std::pair<int, int>(fd[0], fd[1]); }
}

View File

@ -138,7 +138,7 @@ void cmus_cb::work() {
#define CMUS_PRINT_GENERATOR(type, alt) \
void print_cmus_##type(struct text_object *obj, char *p, \
unsigned int p_max_size) { \
unsigned int p_max_size) { \
(void)obj; \
uint32_t period = std::max( \
lround(music_player_interval.get(*state) / active_update_interval()), \
@ -179,7 +179,8 @@ double cmus_progress(struct text_object *obj) {
return (double)cmus.progress;
}
void print_cmus_totaltime(struct text_object *obj, char *p, unsigned int p_max_size) {
void print_cmus_totaltime(struct text_object *obj, char *p,
unsigned int p_max_size) {
(void)obj;
uint32_t period = std::max(
lround(music_player_interval.get(*state) / active_update_interval()), 1l);
@ -188,7 +189,8 @@ void print_cmus_totaltime(struct text_object *obj, char *p, unsigned int p_max_s
format_seconds_short(p, p_max_size, atol(cmus.totaltime.c_str()));
}
void print_cmus_timeleft(struct text_object *obj, char *p, unsigned int p_max_size) {
void print_cmus_timeleft(struct text_object *obj, char *p,
unsigned int p_max_size) {
(void)obj;
uint32_t period = std::max(
lround(music_player_interval.get(*state) / active_update_interval()), 1l);
@ -198,7 +200,8 @@ void print_cmus_timeleft(struct text_object *obj, char *p, unsigned int p_max_si
format_seconds_short(p, p_max_size, (long)cmus.timeleft);
}
void print_cmus_curtime(struct text_object *obj, char *p, unsigned int p_max_size) {
void print_cmus_curtime(struct text_object *obj, char *p,
unsigned int p_max_size) {
(void)obj;
uint32_t period = std::max(
lround(music_player_interval.get(*state) / active_update_interval()), 1l);

View File

@ -63,9 +63,7 @@ static void set_up_gradient() {
greenmask |= 1 << i;
bluemask |= 1 << i;
}
if (colour_depth % 3 == 1) {
greenmask |= 1 << (colour_depth / 3);
}
if (colour_depth % 3 == 1) { greenmask |= 1 << (colour_depth / 3); }
redmask = redmask << (2 * colour_depth / 3 + colour_depth % 3);
greenmask = greenmask << (colour_depth / 3);
}
@ -74,9 +72,7 @@ static void set_up_gradient() {
unsigned int adjust_colours(unsigned int colour) {
double r, g, b;
if (colour_depth == 0) {
set_up_gradient();
}
if (colour_depth == 0) { set_up_gradient(); }
if (colour_depth == 16) {
r = (colour & 0xff0000) >> 16;
g = (colour & 0xff00) >> 8;
@ -100,9 +96,7 @@ unsigned long *do_gradient(int width, unsigned long first_colour,
static_cast<unsigned long *>(malloc(width * sizeof(unsigned long)));
int i;
if (colour_depth == 0) {
set_up_gradient();
}
if (colour_depth == 0) { set_up_gradient(); }
red1 = (first_colour & redmask) >> redshift;
green1 = (first_colour & greenmask) >> greenshift;
blue1 = first_colour & bluemask;
@ -139,24 +133,12 @@ unsigned long *do_gradient(int width, unsigned long first_colour,
red3 += red1;
green3 += green1;
blue3 += blue1;
if (red3 < 0) {
red3 = 0;
}
if (green3 < 0) {
green3 = 0;
}
if (blue3 < 0) {
blue3 = 0;
}
if (red3 > bluemask) {
red3 = bluemask;
}
if (green3 > bluemask) {
green3 = bluemask;
}
if (blue3 > bluemask) {
blue3 = bluemask;
}
if (red3 < 0) { red3 = 0; }
if (green3 < 0) { green3 = 0; }
if (blue3 < 0) { blue3 = 0; }
if (red3 > bluemask) { red3 = bluemask; }
if (green3 > bluemask) { green3 = bluemask; }
if (blue3 > bluemask) { blue3 = bluemask; }
colours[i] = (red3 << redshift) | (green3 << greenshift) | blue3;
}
return colours;

View File

@ -54,7 +54,8 @@ int get_entropy_poolsize(const unsigned int *);
/* System Integrity Protection */
int get_sip_status(void);
void print_sip_status(struct text_object *obj, char *p, unsigned int p_max_size);
void print_sip_status(struct text_object *obj, char *p,
unsigned int p_max_size);
void deallocate_cpu_sample(struct text_object *obj);

View File

@ -62,9 +62,7 @@ struct diskio_stat *prepare_diskio_stat(const char *s) {
char *rpbuf;
char rpbuf2[256];
if (s == nullptr) {
return &stats;
}
if (s == nullptr) { return &stats; }
if (strncmp(s, "label:", 6) == 0) {
snprintf(&(device_name[0]), text_buffer_size.get(*state),
@ -101,13 +99,13 @@ struct diskio_stat *prepare_diskio_stat(const char *s) {
if (strncmp(s, "label:", 6) == 0) {
snprintf(&(stat_name[0]), text_buffer_size.get(*state), "/dev/%s",
&(device_name[0]));
&(device_name[0]));
if ((stat(&(stat_name[0]), &sb) != 0) || !S_ISBLK(sb.st_mode)) {
NORM_ERR("diskio device '%s' does not exist", &device_s[0]);
}
} else if ((0 == (strncmp(s, "partuuid:", 9))) &&
((stat(rpbuf2, &sb) != 0) || !S_ISBLK(sb.st_mode))) {
NORM_ERR("diskio device '%s' does not exist", &device_s[0]);
((stat(rpbuf2, &sb) != 0) || !S_ISBLK(sb.st_mode))) {
NORM_ERR("diskio device '%s' does not exist", &device_s[0]);
}
#endif
@ -115,9 +113,7 @@ struct diskio_stat *prepare_diskio_stat(const char *s) {
/* lookup existing */
while (cur->next != nullptr) {
cur = cur->next;
if (strcmp(cur->dev, &(device_name[0])) == 0) {
return cur;
}
if (strcmp(cur->dev, &(device_name[0])) == 0) { return cur; }
}
/* no existing found, make a new one */
@ -145,9 +141,7 @@ static void print_diskio_dir(struct text_object *obj, int dir, char *p,
auto *diskio = static_cast<struct diskio_stat *>(obj->data.opaque);
double val;
if (diskio == nullptr) {
return;
}
if (diskio == nullptr) { return; }
if (dir < 0) {
val = diskio->current_read;
@ -166,11 +160,13 @@ void print_diskio(struct text_object *obj, char *p, unsigned int p_max_size) {
print_diskio_dir(obj, 0, p, p_max_size);
}
void print_diskio_read(struct text_object *obj, char *p, unsigned int p_max_size) {
void print_diskio_read(struct text_object *obj, char *p,
unsigned int p_max_size) {
print_diskio_dir(obj, -1, p, p_max_size);
}
void print_diskio_write(struct text_object *obj, char *p, unsigned int p_max_size) {
void print_diskio_write(struct text_object *obj, char *p,
unsigned int p_max_size) {
print_diskio_dir(obj, 1, p, p_max_size);
}

View File

@ -347,7 +347,8 @@ int update_cpu_usage(void) {
return 0;
}
void free_cpu(struct text_object *) { /* no-op */ }
void free_cpu(struct text_object *) { /* no-op */
}
int update_load_average(void) {
double v[3];

View File

@ -27,11 +27,11 @@
*
*/
#include <inttypes.h>
#include <time.h>
#include "config.h"
#include "conky.h"
#include "text_object.h"
#include <inttypes.h>
#include <time.h>
/* check for OS and include appropriate headers */
#if defined(__linux__)
@ -64,7 +64,8 @@ int update_entropy() {
return 0;
}
void print_entropy_avail(struct text_object *obj, char *p, unsigned int p_max_size) {
void print_entropy_avail(struct text_object *obj, char *p,
unsigned int p_max_size) {
(void)obj;
snprintf(p, p_max_size, "%u", entropy.avail);
}
@ -75,7 +76,8 @@ uint8_t entropy_percentage(struct text_object *obj) {
static_cast<double>(entropy.poolsize));
}
void print_entropy_poolsize(struct text_object *obj, char *p, unsigned int p_max_size) {
void print_entropy_poolsize(struct text_object *obj, char *p,
unsigned int p_max_size) {
(void)obj;
snprintf(p, p_max_size, "%u", entropy.poolsize);
}
@ -88,18 +90,16 @@ double entropy_barval(struct text_object *obj) {
void print_password(struct text_object *obj, char *p, unsigned int p_max_size) {
time_t t;
static const char letters[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789~!@#$%^&*()_";
static const char letters[] =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789~!@#$%^&*("
")_";
static const int len = (int)sizeof(letters) - 1;
uintmax_t x = strtoumax(obj->data.s, (char **)NULL, 10);
uintmax_t z = 0;
if (-1 == (t = time(NULL))) {
return;
}
if (-1 == (t = time(NULL))) { return; }
srandom((unsigned int)t);
for (; z < x && p_max_size-1 > z; z++) {
*p++ = letters[random() % len];
}
for (; z < x && p_max_size - 1 > z; z++) { *p++ = letters[random() % len]; }
*p = '\0';
}

View File

@ -27,6 +27,7 @@
*
*/
#include "exec.h"
#include <fcntl.h>
#include <sys/types.h>
#include <sys/wait.h>
@ -36,7 +37,6 @@
#include <mutex>
#include "conky.h"
#include "core.h"
#include "exec.h"
#include "logging.h"
#include "specials.h"
#include "text_object.h"
@ -68,7 +68,7 @@ static char *remove_excess_quotes(const char *command) {
}
for (; *command_ptr; command_ptr++) {
if ('\0' == *(command_ptr+1) && 1 == skip &&
if ('\0' == *(command_ptr + 1) && 1 == skip &&
(*command_ptr == '"' || *command_ptr == '\'')) {
continue;
}
@ -122,7 +122,8 @@ static FILE *pid_popen(const char *command, const char *mode, pid_t *child) {
if (fcntl(childend, F_DUPFD, 0) == -1) { perror("fcntl()"); }
close(childend);
execl("/bin/sh", "sh", "-c", remove_excess_quotes(command), (char *)nullptr);
execl("/bin/sh", "sh", "-c", remove_excess_quotes(command),
(char *)nullptr);
_exit(EXIT_FAILURE); // child should die here, (normally execl will take
// care of this but it can fail)
}

View File

@ -56,13 +56,11 @@ static char *i8k_procbuf = nullptr;
int update_i8k(void) {
FILE *fp;
if (!i8k_procbuf) {
i8k_procbuf = (char *)malloc(128 * sizeof(char));
}
if (!i8k_procbuf) { i8k_procbuf = (char *)malloc(128 * sizeof(char)); }
if ((fp = fopen(PROC_I8K, "r")) == nullptr) {
free_and_zero(i8k_procbuf);
/*THREAD_CRIT_ERR(nullptr, NULL, "/proc/i8k doesn't exist! use insmod to make
sure the kernel " "driver is loaded...");*/
/*THREAD_CRIT_ERR(nullptr, NULL, "/proc/i8k doesn't exist! use insmod to
make sure the kernel " "driver is loaded...");*/
NORM_ERR(
"/proc/i8k doesn't exist! use insmod to make sure the kernel driver is "
"loaded...");
@ -107,7 +105,8 @@ void print_i8k_left_fan_status(struct text_object *obj, char *p,
print_i8k_fan_status(p, p_max_size, i8k.left_fan_status);
}
void print_i8k_cpu_temp(struct text_object *obj, char *p, unsigned int p_max_size) {
void print_i8k_cpu_temp(struct text_object *obj, char *p,
unsigned int p_max_size) {
int cpu_temp;
(void)obj;
@ -122,7 +121,8 @@ void print_i8k_right_fan_status(struct text_object *obj, char *p,
print_i8k_fan_status(p, p_max_size, i8k.right_fan_status);
}
void print_i8k_ac_status(struct text_object *obj, char *p, unsigned int p_max_size) {
void print_i8k_ac_status(struct text_object *obj, char *p,
unsigned int p_max_size) {
int ac_status;
(void)obj;
@ -131,19 +131,15 @@ void print_i8k_ac_status(struct text_object *obj, char *p, unsigned int p_max_si
if (ac_status == -1) {
snprintf(p, p_max_size, "%s", "disabled (read i8k docs)");
}
if (ac_status == 0) {
snprintf(p, p_max_size, "%s", "off");
}
if (ac_status == 1) {
snprintf(p, p_max_size, "%s", "on");
}
if (ac_status == 0) { snprintf(p, p_max_size, "%s", "off"); }
if (ac_status == 1) { snprintf(p, p_max_size, "%s", "on"); }
}
#define I8K_PRINT_GENERATOR(name) \
void print_i8k_##name(struct text_object *obj, char *p, \
unsigned int p_max_size) { \
(void)obj; \
snprintf(p, p_max_size, "%s", i8k.name); \
#define I8K_PRINT_GENERATOR(name) \
void print_i8k_##name(struct text_object *obj, char *p, \
unsigned int p_max_size) { \
(void)obj; \
snprintf(p, p_max_size, "%s", i8k.name); \
}
I8K_PRINT_GENERATOR(version)

View File

@ -72,16 +72,15 @@ speed: 2944
commands: enable, disable
* Peter Tarjan (ptarjan@citromail.hu) */
void get_ibm_acpi_fan(struct text_object *obj, char *p, unsigned int p_max_size) {
void get_ibm_acpi_fan(struct text_object *obj, char *p,
unsigned int p_max_size) {
FILE *fp;
unsigned int speed = 0;
char fan[128];
(void)obj;
if (!p || p_max_size <= 0) {
return;
}
if (!p || p_max_size <= 0) { return; }
snprintf(fan, 127, "%s/fan", IBM_ACPI_DIR);
@ -90,12 +89,8 @@ void get_ibm_acpi_fan(struct text_object *obj, char *p, unsigned int p_max_size)
while (!feof(fp)) {
char line[256];
if (fgets(line, 255, fp) == nullptr) {
break;
}
if (sscanf(line, "speed: %u", &speed)) {
break;
}
if (fgets(line, 255, fp) == nullptr) { break; }
if (sscanf(line, "speed: %u", &speed)) { break; }
}
} else {
CRIT_ERR(nullptr, NULL,
@ -140,9 +135,7 @@ int get_ibm_acpi_temps(void) {
while (!feof(fp)) {
char line[256];
if (fgets(line, 255, fp) == nullptr) {
break;
}
if (fgets(line, 255, fp) == nullptr) { break; }
if (sscanf(line, "temperatures: %d %d %d %d %d %d %d %d",
&ibm_acpi_temps[0], &ibm_acpi_temps[1], &ibm_acpi_temps[2],
&ibm_acpi_temps[3], &ibm_acpi_temps[4], &ibm_acpi_temps[5],
@ -171,7 +164,8 @@ commands: up, down, mute
commands: level <level> (<level> is 0-15)
* Peter Tarjan (ptarjan@citromail.hu) */
void get_ibm_acpi_volume(struct text_object *obj, char *p, unsigned int p_max_size) {
void get_ibm_acpi_volume(struct text_object *obj, char *p,
unsigned int p_max_size) {
FILE *fp;
char volume[128];
unsigned int vol = -1;
@ -179,9 +173,7 @@ void get_ibm_acpi_volume(struct text_object *obj, char *p, unsigned int p_max_si
(void)obj;
if (!p || p_max_size <= 0) {
return;
}
if (!p || p_max_size <= 0) { return; }
snprintf(volume, 127, "%s/volume", IBM_ACPI_DIR);
@ -191,16 +183,12 @@ void get_ibm_acpi_volume(struct text_object *obj, char *p, unsigned int p_max_si
char line[256];
unsigned int read_vol = -1;
if (fgets(line, 255, fp) == nullptr) {
break;
}
if (fgets(line, 255, fp) == nullptr) { break; }
if (sscanf(line, "level: %u", &read_vol)) {
vol = read_vol;
continue;
}
if (sscanf(line, "mute: %s", mute)) {
break;
}
if (sscanf(line, "mute: %s", mute)) { break; }
}
} else {
CRIT_ERR(nullptr, NULL,
@ -226,16 +214,15 @@ commands: up, down
commands: level <level> (<level> is 0-7)
* Peter Tarjan (ptarjan@citromail.hu) */
void get_ibm_acpi_brightness(struct text_object *obj, char *p, unsigned int p_max_size) {
void get_ibm_acpi_brightness(struct text_object *obj, char *p,
unsigned int p_max_size) {
FILE *fp;
unsigned int brightness = 0;
char filename[128];
(void)obj;
if (!p || p_max_size <= 0) {
return;
}
if (!p || p_max_size <= 0) { return; }
snprintf(filename, 127, "%s/brightness", IBM_ACPI_DIR);
@ -244,12 +231,8 @@ void get_ibm_acpi_brightness(struct text_object *obj, char *p, unsigned int p_ma
while (!feof(fp)) {
char line[256];
if (fgets(line, 255, fp) == nullptr) {
break;
}
if (sscanf(line, "level: %u", &brightness)) {
break;
}
if (fgets(line, 255, fp) == nullptr) { break; }
if (sscanf(line, "level: %u", &brightness)) { break; }
}
} else {
CRIT_ERR(nullptr, NULL,
@ -271,16 +254,15 @@ commands: on, off
* get "unknown" for a few models that do not make the status available.
* Lluis Esquerda (eskerda@gmail.com) */
void get_ibm_acpi_thinklight(struct text_object *obj, char *p, unsigned int p_max_size) {
void get_ibm_acpi_thinklight(struct text_object *obj, char *p,
unsigned int p_max_size) {
FILE *fp;
char thinklight[8];
char filename[128];
(void)obj;
if (!p || p_max_size <= 0) {
return;
}
if (!p || p_max_size <= 0) { return; }
snprintf(filename, 127, "%s/light", IBM_ACPI_DIR);
@ -289,12 +271,8 @@ void get_ibm_acpi_thinklight(struct text_object *obj, char *p, unsigned int p_ma
while (!feof(fp)) {
char line[256];
if (fgets(line, 255, fp) == nullptr) {
break;
}
if (sscanf(line, "status: %s", thinklight)) {
break;
}
if (fgets(line, 255, fp) == nullptr) { break; }
if (sscanf(line, "status: %s", thinklight)) { break; }
}
} else {
CRIT_ERR(nullptr, NULL,
@ -317,6 +295,7 @@ void parse_ibm_temps_arg(struct text_object *obj, const char *arg) {
obj->data.l = atoi(arg);
}
void print_ibm_temps(struct text_object *obj, char *p, unsigned int p_max_size) {
void print_ibm_temps(struct text_object *obj, char *p,
unsigned int p_max_size) {
temp_print(p, p_max_size, ibm_acpi_temps[obj->data.l], TEMP_CELSIUS, 1);
}

View File

@ -44,13 +44,9 @@ static iconv_t **iconv_cd = 0;
int register_iconv(iconv_t *new_iconv) {
iconv_cd = (void ***)realloc(iconv_cd, sizeof(iconv_t *) * (iconv_count + 1));
if (!iconv_cd) {
CRIT_ERR(nullptr, NULL, "Out of memory");
}
if (!iconv_cd) { CRIT_ERR(nullptr, NULL, "Out of memory"); }
iconv_cd[iconv_count] = (void **)malloc(sizeof(iconv_t));
if (!iconv_cd[iconv_count]) {
CRIT_ERR(nullptr, NULL, "Out of memory");
}
if (!iconv_cd[iconv_count]) { CRIT_ERR(nullptr, NULL, "Out of memory"); }
memcpy(iconv_cd[iconv_count], new_iconv, sizeof(iconv_t));
iconv_count++;
return iconv_count;
@ -135,7 +131,8 @@ void init_iconv_start(struct text_object *obj, void *free_at_crash,
void init_iconv_stop(void) { iconv_converting = 0; }
void print_iconv_start(struct text_object *obj, char *p, unsigned int p_max_size) {
void print_iconv_start(struct text_object *obj, char *p,
unsigned int p_max_size) {
(void)p;
(void)p_max_size;
@ -143,7 +140,8 @@ void print_iconv_start(struct text_object *obj, char *p, unsigned int p_max_size
iconv_selected = obj->data.i;
}
void print_iconv_stop(struct text_object *obj, char *p, unsigned int p_max_size) {
void print_iconv_stop(struct text_object *obj, char *p,
unsigned int p_max_size) {
(void)obj;
(void)p;
(void)p_max_size;

View File

@ -62,8 +62,7 @@ conky::range_config_setting<unsigned int> imlib_cache_flush_interval(
unsigned int cimlib_cache_flush_last = 0;
conky::simple_config_setting<bool> draw_blended(
"draw_blended", true, true);
conky::simple_config_setting<bool> draw_blended("draw_blended", true, true);
} // namespace
void imlib_cache_size_setting::lua_setter(lua::state &l, bool init) {
@ -123,7 +122,7 @@ void cimlib_add_image(const char *args) {
"Invalid args for $image. Format is: '<path to image> (-p"
"x,y) (-s WxH) (-n) (-f interval)' (got '%s')",
args);
delete [] cur;
delete[] cur;
return;
}
strncpy(cur->name, to_real_path(cur->name).c_str(), 1024);
@ -138,22 +137,16 @@ void cimlib_add_image(const char *args) {
tmp = strstr(args, "-s ");
if (tmp != nullptr) {
tmp += 3;
if (sscanf(tmp, "%ix%i", &cur->w, &cur->h) != 0) {
cur->wh_set = 1;
}
if (sscanf(tmp, "%ix%i", &cur->w, &cur->h) != 0) { cur->wh_set = 1; }
}
tmp = strstr(args, "-n");
if (tmp != nullptr) {
cur->no_cache = 1;
}
if (tmp != nullptr) { cur->no_cache = 1; }
tmp = strstr(args, "-f ");
if (tmp != nullptr) {
tmp += 3;
if (sscanf(tmp, "%d", &cur->flush_interval) != 0) {
cur->no_cache = 0;
}
if (sscanf(tmp, "%d", &cur->flush_interval) != 0) { cur->no_cache = 0; }
}
if (cur->flush_interval < 0) {
NORM_ERR("Imlib2: flush interval should be >= 0");
@ -180,9 +173,7 @@ static void cimlib_draw_image(struct image_list_s *cur, int *clip_x,
image = imlib_load_image(cur->name);
if (image == nullptr) {
if (rep == 0) {
NORM_ERR("Unable to load image '%s'", cur->name);
}
if (rep == 0) { NORM_ERR("Unable to load image '%s'", cur->name); }
rep = 1;
return;
}
@ -213,18 +204,10 @@ static void cimlib_draw_image(struct image_list_s *cur, int *clip_x,
} else {
imlib_free_image();
}
if (cur->x < *clip_x) {
*clip_x = cur->x;
}
if (cur->y < *clip_y) {
*clip_y = cur->y;
}
if (cur->x + cur->w > *clip_x2) {
*clip_x2 = cur->x + cur->w;
}
if (cur->y + cur->h > *clip_y2) {
*clip_y2 = cur->y + cur->h;
}
if (cur->x < *clip_x) { *clip_x = cur->x; }
if (cur->y < *clip_y) { *clip_y = cur->y; }
if (cur->x + cur->w > *clip_x2) { *clip_x2 = cur->x + cur->w; }
if (cur->y + cur->h > *clip_y2) { *clip_y2 = cur->y + cur->h; }
}
static void cimlib_draw_all(int *clip_x, int *clip_y, int *clip_x2,
@ -280,12 +263,8 @@ void cimlib_render(int x, int y, int width, int height) {
imlib_context_set_image(buffer);
/* setup our clip rect */
if (clip_x == INT_MAX) {
clip_x = 0;
}
if (clip_y == INT_MAX) {
clip_y = 0;
}
if (clip_x == INT_MAX) { clip_x = 0; }
if (clip_y == INT_MAX) { clip_y = 0; }
/* render the image at 0, 0 */
imlib_render_image_part_on_drawable_at_size(
@ -295,7 +274,6 @@ void cimlib_render(int x, int y, int width, int height) {
imlib_free_image();
}
void print_image_callback(struct text_object *obj, char *,
unsigned int) {
void print_image_callback(struct text_object *obj, char *, unsigned int) {
cimlib_add_image(obj->data.s);
}

View File

@ -114,7 +114,8 @@ struct _tcp_port_monitor_t {
_tcp_port_monitor_t(int max_connections)
: hash(),
p_peek(max_connections, static_cast<const tcp_connection_t *>(nullptr)) {}
p_peek(max_connections,
static_cast<const tcp_connection_t *>(nullptr)) {}
_tcp_port_monitor_t(const _tcp_port_monitor_t &other)
: hash(other.hash),
@ -202,9 +203,7 @@ void show_connection_to_tcp_port_monitor(monitor_hash_t::value_type &monitor,
tcp_connection_t *p_connection;
if (!p_void) {
return;
}
if (!p_void) { return; }
/* This p_connection is on caller's stack and not the heap.
* If we are interested, we will create a copy of the connection
@ -242,9 +241,7 @@ void show_connection_to_tcp_port_monitor(monitor_hash_t::value_type &monitor,
void for_each_tcp_port_monitor_in_collection(
tcp_port_monitor_collection_t *p_collection,
tcp_port_monitor_function_ptr_t p_function, void *p_function_args) {
if (!p_collection || !p_function) {
return;
}
if (!p_collection || !p_function) { return; }
/* for each monitor in the collection */
for (monitor_hash_t::iterator i = p_collection->hash.begin();
@ -318,9 +315,7 @@ void process_file(tcp_port_monitor_collection_t *p_collection,
tcp_connection_t conn;
unsigned long inode, uid, state;
if ((fp = std::fopen(file, "r")) == nullptr) {
return;
}
if ((fp = std::fopen(file, "r")) == nullptr) { return; }
/* ignore field name line */
if (std::fgets(buf, 255, fp) == nullptr) {
@ -340,9 +335,7 @@ void process_file(tcp_port_monitor_collection_t *p_collection,
}
/** TCP_ESTABLISHED equals 1, but is not (always??) included **/
// if ((inode == 0) || (state != TCP_ESTABLISHED)) {
if ((inode == 0) || (state != 1)) {
continue;
}
if ((inode == 0) || (state != 1)) { continue; }
string_to_addr(&conn.local_addr, local_addr);
string_to_addr(&conn.remote_addr, remote_addr);
@ -375,9 +368,7 @@ int peek_tcp_port_monitor(const tcp_port_monitor_t *p_monitor, int item,
size_t buffer_size) {
struct sockaddr_in sa;
if (!p_monitor || !p_buffer || connection_index < 0) {
return -1;
}
if (!p_monitor || !p_buffer || connection_index < 0) { return -1; }
std::memset(p_buffer, 0, buffer_size);
std::memset(&sa, 0, sizeof(sa));
@ -419,8 +410,8 @@ int peek_tcp_port_monitor(const tcp_port_monitor_t *p_monitor, int item,
case REMOTESERVICE:
sa.sin_port = htons(p_monitor->p_peek[connection_index]->remote_port);
getnameinfo((struct sockaddr *)&sa, sizeof(struct sockaddr_in), nullptr, 0,
p_buffer, buffer_size, NI_NUMERICHOST);
getnameinfo((struct sockaddr *)&sa, sizeof(struct sockaddr_in), nullptr,
0, p_buffer, buffer_size, NI_NUMERICHOST);
break;
case LOCALIP:
@ -444,8 +435,8 @@ int peek_tcp_port_monitor(const tcp_port_monitor_t *p_monitor, int item,
case LOCALSERVICE:
sa.sin_port = htons(p_monitor->p_peek[connection_index]->local_port);
getnameinfo((struct sockaddr *)&sa, sizeof(struct sockaddr_in), nullptr, 0,
p_buffer, buffer_size, NI_NUMERICHOST);
getnameinfo((struct sockaddr *)&sa, sizeof(struct sockaddr_in), nullptr,
0, p_buffer, buffer_size, NI_NUMERICHOST);
break;
default:
@ -474,9 +465,7 @@ void destroy_tcp_port_monitor_collection(
/* Updates the tcp statistics for all monitors within a collection */
void update_tcp_port_monitor_collection(
tcp_port_monitor_collection_t *p_collection) {
if (!p_collection) {
return;
}
if (!p_collection) { return; }
process_file(p_collection, "/proc/net/tcp");
process_file(p_collection, "/proc/net/tcp6");
@ -495,9 +484,7 @@ void update_tcp_port_monitor_collection(
int insert_new_tcp_port_monitor_into_collection(
tcp_port_monitor_collection_t *p_collection, in_port_t port_range_begin,
in_port_t port_range_end, tcp_port_monitor_args_t *p_creation_args) {
if (!p_collection) {
return -1;
}
if (!p_collection) { return -1; }
p_collection->hash.insert(monitor_hash_t::value_type(
port_range_t(port_range_begin, port_range_end),
@ -510,9 +497,7 @@ int insert_new_tcp_port_monitor_into_collection(
tcp_port_monitor_t *find_tcp_port_monitor(
tcp_port_monitor_collection_t *p_collection, in_port_t port_range_begin,
in_port_t port_range_end) {
if (!p_collection) {
return nullptr;
}
if (!p_collection) { return nullptr; }
/* is monitor in hash? */
monitor_hash_t::iterator i =

View File

@ -1126,8 +1126,7 @@ static int get_first_file_in_a_directory(const char *dir, char *s, int *rep) {
/*
* Convert @dev "0" (hwmon number) or "k10temp" (hwmon name) to "hwmon2/device"
*/
static void get_dev_path(const char *dir, const char *dev, char *out_buf)
{
static void get_dev_path(const char *dir, const char *dev, char *out_buf) {
struct dirent **namelist;
char path[256] = {'\0'};
char name[256] = {'\0'};
@ -1151,18 +1150,15 @@ static void get_dev_path(const char *dir, const char *dev, char *out_buf)
NORM_ERR("scandir for %s: %s", dir, strerror(errno));
goto not_found;
}
if (n == 0)
goto not_found;
if (n == 0) goto not_found;
/* Search each hwmon%s/name */
for (i = 0; i < n; i++) {
if (found)
continue;
if (found) continue;
snprintf(path, 256, "%s%s/name", dir, namelist[i]->d_name);
name_fd = open(path, O_RDONLY);
if (name_fd < 0)
continue;
if (name_fd < 0) continue;
size = read(name_fd, name, strlen(dev));
if (size < strlen(dev)) {
close(name_fd);
@ -1177,11 +1173,9 @@ static void get_dev_path(const char *dir, const char *dev, char *out_buf)
}
/* cleanup */
for (i = 0; i < n; i++)
free(namelist[i]);
for (i = 0; i < n; i++) free(namelist[i]);
free(namelist);
if (found)
return;
if (found) return;
not_found:
out_buf[0] = '\0';

View File

@ -49,14 +49,12 @@ const char this_cpp_object[] = "lua::this_cpp_object";
// converts C++ exceptions to strings, so lua can do something with them
int exception_to_string(lua_State *l) {
auto *ptr = static_cast<std::exception_ptr *>(lua_touserdata(l, -1));
assert(ptr);
try {
std::rethrow_exception(*ptr);
} catch (std::exception &e) {
lua_pushstring(l, e.what());
} catch (...) {
lua_pushstring(l, typeid(*ptr).name());
auto *ptr = static_cast<std::exception_ptr *>(lua_touserdata(l, -1));
assert(ptr);
try {
std::rethrow_exception(*ptr);
} catch (std::exception &e) { lua_pushstring(l, e.what()); } catch (...) {
lua_pushstring(l, typeid(*ptr).name());
}
return 1;
}
@ -68,12 +66,9 @@ int absindex(lua_State *l, int index) {
// Just like getfield(), only without calling metamethods (or throwing random
// exceptions)
inline void rawgetfield(lua_State *l, int index,
const char *k) {
inline void rawgetfield(lua_State *l, int index, const char *k) {
index = absindex(l, index);
if (lua_checkstack(l, 1) == 0) {
throw std::bad_alloc();
}
if (lua_checkstack(l, 1) == 0) { throw std::bad_alloc(); }
lua_pushstring(l, k);
lua_rawget(l, index);
@ -81,12 +76,9 @@ inline void rawgetfield(lua_State *l, int index,
// Just like setfield(), only without calling metamethods (or throwing random
// exceptions)
inline void rawsetfield(lua_State *l, int index,
const char *k) {
inline void rawsetfield(lua_State *l, int index, const char *k) {
index = absindex(l, index);
if (lua_checkstack(l, 2) == 0) {
throw std::bad_alloc();
}
if (lua_checkstack(l, 2) == 0) { throw std::bad_alloc(); }
lua_pushstring(l, k);
lua_insert(l, -2);
@ -130,9 +122,7 @@ int closure_trampoline(lua_State *l) {
* execute everything in protected mode).
*/
int panic_throw(lua_State *l) {
if (lua_checkstack(l, 1) == 0) {
throw std::bad_alloc();
}
if (lua_checkstack(l, 1) == 0) { throw std::bad_alloc(); }
rawgetfield(l, REGISTRYINDEX, this_cpp_object);
assert(lua_islightuserdata(l, -1));
@ -191,9 +181,7 @@ std::string exception::get_error_msg(state *L) {
try {
return L->tostring(-1);
} catch (not_string_error &e) {
return default_msg;
}
} catch (not_string_error &e) { return default_msg; }
}
exception::exception(state *l) : std::runtime_error(get_error_msg(l)), L(l) {
@ -206,9 +194,7 @@ exception::exception(state *l) : std::runtime_error(get_error_msg(l)), L(l) {
}
exception::~exception() {
if (L == nullptr) {
return;
}
if (L == nullptr) { return; }
L->checkstack(1);
L->rawgetfield(REGISTRYINDEX, lua_exception_namespace);
@ -272,9 +258,7 @@ state::state() {
void state::call(int nargs, int nresults, int errfunc) {
int r = lua_pcall(cobj.get(), nargs, nresults, errfunc);
if (r == 0) {
return;
}
if (r == 0) { return; }
if (r == LUA_ERRMEM) {
// memory allocation error, cross your fingers
@ -301,16 +285,12 @@ void state::call(int nargs, int nresults, int errfunc) {
pop(2);
}
// it's a lua exception, wrap it
if (r == LUA_ERRERR) {
throw lua::errfunc_error(this);
}
if (r == LUA_ERRERR) { throw lua::errfunc_error(this); }
{ throw lua::exception(this); }
}
void state::checkstack(int extra) {
if (lua_checkstack(cobj.get(), extra) == 0) {
throw std::bad_alloc();
}
if (lua_checkstack(cobj.get(), extra) == 0) { throw std::bad_alloc(); }
}
void state::concat(int n) {
@ -323,9 +303,7 @@ void state::concat(int n) {
bool state::equal(int index1, int index2) {
// avoid pcall overhead in trivial cases
if (rawequal(index1, index2)) {
return true;
}
if (rawequal(index1, index2)) { return true; }
return safe_compare(&safe_compare_trampoline<lua_equal>, index1, index2);
}
@ -438,9 +416,7 @@ void state::rawsetfield(int index, const char *k) {
bool state::safe_compare(lua_CFunction trampoline, int index1, int index2) {
// if one of the indexes is invalid, return false
if (isnone(index1) || isnone(index2)) {
return false;
}
if (isnone(index1) || isnone(index2)) { return false; }
// convert relative indexes into absolute
index1 = absindex(index1);
@ -491,9 +467,7 @@ void state::settable(int index) {
std::string state::tostring(int index) {
size_t len;
const char *str = lua_tolstring(cobj.get(), index, &len);
if (str == nullptr) {
throw not_string_error();
}
if (str == nullptr) { throw not_string_error(); }
return std::string(str, len);
}
} // namespace lua

View File

@ -152,8 +152,7 @@ class state : private std::mutex {
// throwing exceptions in destructors is a bad idea
// but we catch (and ignore) them, just in case
ptr->~T();
} catch (...) {
}
} catch (...) {}
return 0;
}
@ -305,9 +304,9 @@ class state : private std::mutex {
void setfield(int index, const char *k);
void setglobal(const char *name);
void settable(int index);
// lua_tostring uses nullptr to indicate conversion error, since there is no such
// thing as a nullptr std::string, we throw an exception. Returned value may
// contain '\0'
// lua_tostring uses nullptr to indicate conversion error, since there is no
// such thing as a nullptr std::string, we throw an exception. Returned value
// may contain '\0'
std::string tostring(int index);
// allocate a new lua userdata of appropriate size, and create a object in it
// pushes the userdata on stack and returns the pointer
@ -343,8 +342,7 @@ class stack_sentry {
const stack_sentry &operator=(const stack_sentry &) = delete;
public:
explicit stack_sentry(state &l, int n_ = 0)
: L(&l), n(l.gettop() + n_) {
explicit stack_sentry(state &l, int n_ = 0) : L(&l), n(l.gettop() + n_) {
assert(n >= 0);
}

View File

@ -181,8 +181,8 @@ static void print_version() {
<< _(" * Own window\n")
#endif
#endif /* BUILD_X11 */
#if defined BUILD_AUDACIOUS || defined BUILD_CMUS || \
defined BUILD_MPD || defined BUILD_MOC || defined BUILD_XMMS2
#if defined BUILD_AUDACIOUS || defined BUILD_CMUS || defined BUILD_MPD || \
defined BUILD_MOC || defined BUILD_XMMS2
<< _("\n Music detection:\n")
#endif
#ifdef BUILD_AUDACIOUS

View File

@ -86,9 +86,7 @@ static void mbox_scan(char *args, char *output, size_t max_len) {
} else {
print_num_mails = PRINT_MAILS;
}
if (print_num_mails < 1) {
print_num_mails = 1;
}
if (print_num_mails < 1) { print_num_mails = 1; }
substr = strstr(args, "-t");
if (substr != nullptr) {
@ -131,9 +129,7 @@ static void mbox_scan(char *args, char *output, size_t max_len) {
while (tmp != nullptr) {
tmp = strtok(nullptr, " ");
if (tmp != nullptr) {
start = tmp;
}
if (tmp != nullptr) { start = tmp; }
}
strncpy(mbox_mail_spool, start, DEFAULT_TEXT_BUFFER_SIZE);
free(copy_args);
@ -189,9 +185,7 @@ static void mbox_scan(char *args, char *output, size_t max_len) {
curr->from[0] = '\0';
curr->subject[0] = '\0';
if (i == 0) {
startlist = curr;
}
if (i == 0) { startlist = curr; }
if (i > 0) {
curr->previous = prev;
prev->next = curr;
@ -199,34 +193,26 @@ static void mbox_scan(char *args, char *output, size_t max_len) {
prev = curr;
}
if (startlist == nullptr) {
return;
}
if (startlist == nullptr) { return; }
/* connect end to start for an endless loop-ring */
startlist->previous = curr;
curr->next = startlist;
/* mbox */
fp = fopen(mbox_mail_spool, "re");
if (fp == nullptr) {
return;
}
if (fp == nullptr) { return; }
/* first find a "From " to set it to 0 for header-sarchings */
flag = 1;
while (feof(fp) == 0) {
if (fgets(buf, text_buffer_size.get(*state), fp) == nullptr) {
break;
}
if (fgets(buf, text_buffer_size.get(*state), fp) == nullptr) { break; }
if (strncmp(buf, "From ", 5) == 0) {
curr = curr->next;
/* skip until \n */
while (strchr(buf, '\n') == nullptr && (feof(fp) == 0)) {
if (fgets(buf, text_buffer_size.get(*state), fp) == nullptr) {
break;
}
if (fgets(buf, text_buffer_size.get(*state), fp) == nullptr) { break; }
}
flag = 0; /* in the headers now */
@ -242,9 +228,7 @@ static void mbox_scan(char *args, char *output, size_t max_len) {
/* then search for new mail ("From ") */
while (strchr(buf, '\n') == nullptr && (feof(fp) == 0)) {
if (fgets(buf, text_buffer_size.get(*state), fp) == nullptr) {
break;
}
if (fgets(buf, text_buffer_size.get(*state), fp) == nullptr) { break; }
}
flag = 1; /* in the body now */
continue;
@ -260,9 +244,7 @@ static void mbox_scan(char *args, char *output, size_t max_len) {
curr = curr->previous;
/* Skip until \n */
while (strchr(buf, '\n') == nullptr && (feof(fp) == 0)) {
if (fgets(buf, text_buffer_size.get(*state), fp) == nullptr) {
break;
}
if (fgets(buf, text_buffer_size.get(*state), fp) == nullptr) { break; }
}
continue;
}
@ -398,9 +380,7 @@ void parse_mboxscan_arg(struct text_object *obj, const char *arg) {
void print_mboxscan(struct text_object *obj, char *p, unsigned int p_max_size) {
auto *msd = static_cast<mboxscan_data *>(obj->data.opaque);
if (msd == nullptr) {
return;
}
if (msd == nullptr) { return; }
mbox_scan(msd->args, msd->output, text_buffer_size.get(*state));
snprintf(p, p_max_size, "%s", msd->output);
@ -409,9 +389,7 @@ void print_mboxscan(struct text_object *obj, char *p, unsigned int p_max_size) {
void free_mboxscan(struct text_object *obj) {
auto *msd = static_cast<mboxscan_data *>(obj->data.opaque);
if (msd == nullptr) {
return;
}
if (msd == nullptr) { return; }
free_and_zero(msd->args);
free_and_zero(msd->output);
free_and_zero(obj->data.opaque);

View File

@ -59,9 +59,7 @@ static const char *devs[] = SOUND_DEVICE_NAMES;
int mixer_init(const char *name) {
unsigned int i;
if (name == 0 || name[0] == '\0') {
name = "vol";
}
if (name == 0 || name[0] == '\0') { name = "vol"; }
/* open mixer */
if (mixer_fd <= 0) {
@ -73,9 +71,7 @@ int mixer_init(const char *name) {
}
for (i = 0; i < sizeof(devs) / sizeof(const char *); i++) {
if (strcasecmp(devs[i], name) == 0) {
return i;
}
if (strcasecmp(devs[i], name) == 0) { return i; }
}
return -1;
@ -86,9 +82,7 @@ static int mixer_get(int i) {
int val = -1;
if (ioctl(mixer_fd, MIXER_READ(i), &val) == -1) {
if (!rep) {
NORM_ERR("mixer ioctl: %s", strerror(errno));
}
if (!rep) { NORM_ERR("mixer ioctl: %s", strerror(errno)); }
rep = 1;
return 0;
}

View File

@ -70,12 +70,8 @@ void moc_cb::work() {
char *p;
/* Read a line from the pipe and strip the possible '\n'. */
if (fgets(line, 100, fp) == nullptr) {
break;
}
if ((p = strrchr(line, '\n')) != nullptr) {
*p = '\0';
}
if (fgets(line, 100, fp) == nullptr) { break; }
if ((p = strrchr(line, '\n')) != nullptr) { *p = '\0'; }
/* Parse infos. */
if (strncmp(line, "State:", 6) == 0) {
@ -113,7 +109,7 @@ void moc_cb::work() {
#define MOC_PRINT_GENERATOR(type, alt) \
void print_moc_##type(struct text_object *obj, char *p, \
unsigned int p_max_size) { \
unsigned int p_max_size) { \
(void)obj; \
uint32_t period = std::max( \
lround(music_player_interval.get(*state) / active_update_interval()), \

View File

@ -27,13 +27,13 @@
*/
#include "mpd.h"
#include <cmath>
#include <mutex>
#include "conky.h"
#include "libmpdclient.h"
#include "logging.h"
#include "timeinfo.h"
#include "update-cb.hh"
#include <cmath>
#include <mutex>
namespace {
@ -61,9 +61,7 @@ void mpd_host_setting::lua_setter(lua::state &l, bool init) {
l.checkstack(1);
const char *h = strchr(t, '@');
if (h != nullptr) {
if (h[1] != 0) {
l.pushstring(h + 1);
}
if (h[1] != 0) { l.pushstring(h + 1); }
} else {
l.pushstring(t);
}
@ -147,9 +145,7 @@ class mpd_cb : public conky::callback<mpd_result> {
: Base(period, false, Tuple()), conn(nullptr) {}
~mpd_cb() override {
if (conn != nullptr) {
mpd_closeConnection(conn);
}
if (conn != nullptr) { mpd_closeConnection(conn); }
}
};
@ -234,9 +230,9 @@ void mpd_cb::work() {
mpd_info.is_playing = 1;
mpd_info.bitrate = status->bitRate;
mpd_info.progress =
((0 != status->totalTime) ?
static_cast<float>(status->elapsedTime) / status->totalTime
: 0.0);
((0 != status->totalTime)
? static_cast<float>(status->elapsedTime) / status->totalTime
: 0.0);
mpd_info.elapsed = status->elapsedTime;
mpd_info.length = status->totalTime;
} else {
@ -335,12 +331,14 @@ static inline void format_media_player_time(char *buf, const int size,
}
}
void print_mpd_elapsed(struct text_object *obj, char *p, unsigned int p_max_size) {
void print_mpd_elapsed(struct text_object *obj, char *p,
unsigned int p_max_size) {
(void)obj;
format_media_player_time(p, p_max_size, get_mpd().elapsed);
}
void print_mpd_length(struct text_object *obj, char *p, unsigned int p_max_size) {
void print_mpd_length(struct text_object *obj, char *p,
unsigned int p_max_size) {
(void)obj;
format_media_player_time(p, p_max_size, get_mpd().length);
}
@ -355,12 +353,11 @@ double mpd_barval(struct text_object *obj) {
return get_mpd().progress;
}
void print_mpd_smart(struct text_object *obj, char *p, unsigned int p_max_size) {
void print_mpd_smart(struct text_object *obj, char *p,
unsigned int p_max_size) {
const mpd_result &mpd_info = get_mpd();
int len = obj->data.i;
if (len == 0 || (unsigned int) len > p_max_size) {
len = p_max_size;
}
if (len == 0 || (unsigned int)len > p_max_size) { len = p_max_size; }
memset(p, 0, p_max_size);
if ((static_cast<unsigned int>(!mpd_info.artist.empty()) != 0u) &&
@ -383,11 +380,12 @@ int check_mpd_playing(struct text_object *obj) {
return get_mpd().is_playing;
}
#define MPD_PRINT_GENERATOR(name, fmt, acc) \
void print_mpd_##name(struct text_object *obj, char *p, \
unsigned int p_max_size) { \
if (obj->data.i && (unsigned int) obj->data.i < p_max_size) p_max_size = obj->data.i; \
snprintf(p, p_max_size, fmt, get_mpd().name acc); \
#define MPD_PRINT_GENERATOR(name, fmt, acc) \
void print_mpd_##name(struct text_object *obj, char *p, \
unsigned int p_max_size) { \
if (obj->data.i && (unsigned int)obj->data.i < p_max_size) \
p_max_size = obj->data.i; \
snprintf(p, p_max_size, fmt, get_mpd().name acc); \
}
MPD_PRINT_GENERATOR(title, "%s", .c_str())

View File

@ -26,9 +26,9 @@
*
*/
#include "mysql.h"
#include "conky.h"
#include "logging.h"
#include "mysql.h"
#include <mysql.h>

View File

@ -52,9 +52,7 @@ void out_to_ncurses_setting::lua_setter(lua::state &l, bool init) {
void out_to_ncurses_setting::cleanup(lua::state &l) {
lua::stack_sentry s(l, -1);
if (do_convert(l, -1).first) {
endwin();
}
if (do_convert(l, -1).first) { endwin(); }
l.pop();
}

View File

@ -31,7 +31,7 @@
#define NVIDIA_CONKY_H
int set_nvidia_query(struct text_object *, const char *, unsigned int);
void print_nvidia_value(struct text_object *, char *,unsigned int);
void print_nvidia_value(struct text_object *, char *, unsigned int);
double get_nvidia_barval(struct text_object *);
void free_nvidia(struct text_object *);

View File

@ -84,21 +84,15 @@ struct prio_queue *init_prio_queue() {
void pq_set_compare(struct prio_queue *queue,
int (*pqcompare)(void *a, void *b)) {
if (pqcompare != nullptr) {
queue->compare = pqcompare;
}
if (pqcompare != nullptr) { queue->compare = pqcompare; }
}
void pq_set_free(struct prio_queue *queue, void (*pqfree)(void *a)) {
if (pqfree != nullptr) {
queue->free = pqfree;
}
if (pqfree != nullptr) { queue->free = pqfree; }
}
void pq_set_max_size(struct prio_queue *queue, int max_size) {
if (max_size >= 0) {
queue->max_size = max_size;
}
if (max_size >= 0) { queue->max_size = max_size; }
}
int pq_get_cur_size(struct prio_queue *queue) { return queue->cur_size; }
@ -117,9 +111,7 @@ void insert_prio_elem(struct prio_queue *queue, void *data) {
struct prio_elem *cur;
/* queue->compare is a must-have */
if (queue->compare == nullptr) {
return;
}
if (queue->compare == nullptr) { return; }
/* empty queue, insert the first item */
if (queue->cur_size == 0) {
@ -176,9 +168,7 @@ void *pop_prio_elem(struct prio_queue *queue) {
struct prio_elem *tmp;
void *data;
if (queue->cur_size <= 0) {
return nullptr;
}
if (queue->cur_size <= 0) { return nullptr; }
tmp = queue->head;
data = tmp->data;
@ -197,8 +187,6 @@ void *pop_prio_elem(struct prio_queue *queue) {
void free_prio_queue(struct prio_queue *queue) {
void *data;
while ((data = pop_prio_elem(queue)) != nullptr) {
(*queue->free)(data);
}
while ((data = pop_prio_elem(queue)) != nullptr) { (*queue->free)(data); }
free(queue);
}

View File

@ -32,10 +32,10 @@
#include <unistd.h>
#include <cctype>
#include <memory>
#include <sstream>
#include "conky.h"
#include "core.h"
#include "logging.h"
#include <sstream>
char *readfile(const char *filename, int *total_read, char showerror) {
FILE *file;
@ -79,18 +79,14 @@ struct ll_string *addnode(struct ll_string *end, char *string) {
static_cast<struct ll_string *>(malloc(sizeof(struct ll_string)));
current->string = strdup(string);
current->next = nullptr;
if (end != nullptr) {
end->next = current;
}
if (end != nullptr) { end->next = current; }
return current;
}
void freelist(struct ll_string *front) {
if (front != nullptr) {
free(front->string);
if (front->next != nullptr) {
freelist(front->next);
}
if (front->next != nullptr) { freelist(front->next); }
free(front);
}
}
@ -99,23 +95,23 @@ int inlist(struct ll_string *front, char *string) {
struct ll_string *current;
for (current = front; current != nullptr; current = current->next) {
if (strcmp(current->string, string) == 0) {
return 1;
}
if (strcmp(current->string, string) == 0) { return 1; }
}
return 0;
}
void print_pid_chroot(struct text_object *obj, char *p, unsigned int p_max_size) {
void print_pid_chroot(struct text_object *obj, char *p,
unsigned int p_max_size) {
std::ostringstream pathstream;
std::unique_ptr<char[]> buf(new char[max_user_text.get(*state)]);
generate_text_internal(buf.get(), max_user_text.get(*state), *obj->sub);
pathstream << PROCDIR "/" << buf.get() << "/root";
pathstream << PROCDIR "/" << buf.get() << "/root";
pid_readlink(pathstream.str().c_str(), p, p_max_size);
}
void print_pid_cmdline(struct text_object *obj, char *p, unsigned int p_max_size) {
void print_pid_cmdline(struct text_object *obj, char *p,
unsigned int p_max_size) {
char *buf;
int i, bytes_read;
std::ostringstream pathstream;
@ -124,13 +120,11 @@ void print_pid_cmdline(struct text_object *obj, char *p, unsigned int p_max_size
generate_text_internal(objbuf.get(), max_user_text.get(*state), *obj->sub);
if (*(objbuf.get()) != 0) {
pathstream << PROCDIR "/" << objbuf.get() << "/cmdline";
pathstream << PROCDIR "/" << objbuf.get() << "/cmdline";
buf = readfile(pathstream.str().c_str(), &bytes_read, 1);
if (buf != nullptr) {
for (i = 0; i < bytes_read - 1; i++) {
if (buf[i] == 0) {
buf[i] = ' ';
}
if (buf[i] == 0) { buf[i] = ' '; }
}
snprintf(p, p_max_size, "%s", buf);
free(buf);
@ -147,7 +141,7 @@ void print_pid_cwd(struct text_object *obj, char *p, unsigned int p_max_size) {
std::unique_ptr<char[]> objbuf(new char[max_user_text.get(*state)]);
generate_text_internal(objbuf.get(), max_user_text.get(*state), *obj->sub);
pathstream << PROCDIR "/" << objbuf.get() << "/cwd";
pathstream << PROCDIR "/" << objbuf.get() << "/cwd";
bytes_read = readlink(pathstream.str().c_str(), buf.get(), p_max_size);
if (bytes_read != -1) {
buf[bytes_read] = 0;
@ -157,7 +151,8 @@ void print_pid_cwd(struct text_object *obj, char *p, unsigned int p_max_size) {
}
}
void print_pid_environ(struct text_object *obj, char *p, unsigned int p_max_size) {
void print_pid_environ(struct text_object *obj, char *p,
unsigned int p_max_size) {
int i, total_read;
pid_t pid;
std::ostringstream pathstream;
@ -167,10 +162,8 @@ void print_pid_environ(struct text_object *obj, char *p, unsigned int p_max_size
generate_text_internal(objbuf.get(), max_user_text.get(*state), *obj->sub);
if (sscanf(objbuf.get(), "%d %s", &pid, var) == 2) {
for (i = 0; var[i] != 0; i++) {
var[i] = toupper((unsigned char)var[i]);
}
pathstream << PROCDIR "/" << pid << "/cwd";
for (i = 0; var[i] != 0; i++) { var[i] = toupper((unsigned char)var[i]); }
pathstream << PROCDIR "/" << pid << "/cwd";
buf = readfile(pathstream.str().c_str(), &total_read, 1);
if (buf != nullptr) {
for (i = 0; i < total_read; i += strlen(buf + i) + 1) {
@ -189,7 +182,8 @@ void print_pid_environ(struct text_object *obj, char *p, unsigned int p_max_size
free(var);
}
void print_pid_environ_list(struct text_object *obj, char *p, unsigned int p_max_size) {
void print_pid_environ_list(struct text_object *obj, char *p,
unsigned int p_max_size) {
char *buf = nullptr;
char *buf2;
int bytes_read, total_read;
@ -198,7 +192,7 @@ void print_pid_environ_list(struct text_object *obj, char *p, unsigned int p_max
std::unique_ptr<char[]> objbuf(new char[max_user_text.get(*state)]);
generate_text_internal(objbuf.get(), max_user_text.get(*state), *obj->sub);
pathstream << PROCDIR "/" << objbuf.get() << "/environ";
pathstream << PROCDIR "/" << objbuf.get() << "/environ";
buf = readfile(pathstream.str().c_str(), &total_read, 1);
if (buf != nullptr) {
@ -220,7 +214,7 @@ void print_pid_exe(struct text_object *obj, char *p, unsigned int p_max_size) {
std::unique_ptr<char[]> objbuf(new char[max_user_text.get(*state)]);
generate_text_internal(objbuf.get(), max_user_text.get(*state), *obj->sub);
pathstream << PROCDIR "/" << objbuf.get() << "/exe";
pathstream << PROCDIR "/" << objbuf.get() << "/exe";
pid_readlink(pathstream.str().c_str(), p, p_max_size);
}
@ -234,7 +228,7 @@ void print_pid_nice(struct text_object *obj, char *p, unsigned int p_max_size) {
generate_text_internal(objbuf.get(), max_user_text.get(*state), *obj->sub);
if (!obj->data.s) {
pathstream << PROCDIR "/" << objbuf.get() << "/stat";
pathstream << PROCDIR "/" << objbuf.get() << "/stat";
buf = readfile(pathstream.str().c_str(), &bytes_read, 1);
if (buf != nullptr) {
sscanf(buf,
@ -249,7 +243,8 @@ void print_pid_nice(struct text_object *obj, char *p, unsigned int p_max_size) {
}
}
void print_pid_openfiles(struct text_object *obj, char *p, unsigned int p_max_size) {
void print_pid_openfiles(struct text_object *obj, char *p,
unsigned int p_max_size) {
DIR *dir;
struct dirent *entry;
std::unique_ptr<char[]> buf(new char[p_max_size]);
@ -273,9 +268,7 @@ void print_pid_openfiles(struct text_object *obj, char *p, unsigned int p_max_si
buf.get());
totallength += length + strlen("; ");
}
if (files_front == nullptr) {
files_front = files_back;
}
if (files_front == nullptr) { files_front = files_back; }
}
}
closedir(dir);
@ -286,7 +279,8 @@ void print_pid_openfiles(struct text_object *obj, char *p, unsigned int p_max_si
}
}
void print_pid_parent(struct text_object *obj, char *p, unsigned int p_max_size) {
void print_pid_parent(struct text_object *obj, char *p,
unsigned int p_max_size) {
#define PARENT_ENTRY "PPid:\t"
#define PARENTNOTFOUND "Can't find the process parent in '%s'"
char *begin, *end, *buf = nullptr;
@ -295,7 +289,7 @@ void print_pid_parent(struct text_object *obj, char *p, unsigned int p_max_size)
std::unique_ptr<char[]> objbuf(new char[max_user_text.get(*state)]);
generate_text_internal(objbuf.get(), max_user_text.get(*state), *obj->sub);
pathstream << PROCDIR "/" << objbuf.get() << "/status";
pathstream << PROCDIR "/" << objbuf.get() << "/status";
buf = readfile(pathstream.str().c_str(), &bytes_read, 1);
if (buf != nullptr) {
@ -303,9 +297,7 @@ void print_pid_parent(struct text_object *obj, char *p, unsigned int p_max_size)
if (begin != nullptr) {
begin += strlen(PARENT_ENTRY);
end = strchr(begin, '\n');
if (end != nullptr) {
*(end) = 0;
}
if (end != nullptr) { *(end) = 0; }
snprintf(p, p_max_size, "%s", begin);
} else {
NORM_ERR(PARENTNOTFOUND, pathstream.str().c_str());
@ -314,7 +306,8 @@ void print_pid_parent(struct text_object *obj, char *p, unsigned int p_max_size)
}
}
void print_pid_priority(struct text_object *obj, char *p, unsigned int p_max_size) {
void print_pid_priority(struct text_object *obj, char *p,
unsigned int p_max_size) {
char *buf = nullptr;
int bytes_read;
long int priority;
@ -324,7 +317,7 @@ void print_pid_priority(struct text_object *obj, char *p, unsigned int p_max_siz
generate_text_internal(objbuf.get(), max_user_text.get(*state), *obj->sub);
if (*(objbuf.get()) != 0) {
pathstream << PROCDIR "/" << objbuf.get() << "/stat";
pathstream << PROCDIR "/" << objbuf.get() << "/stat";
buf = readfile(pathstream.str().c_str(), &bytes_read, 1);
if (buf != nullptr) {
sscanf(buf,
@ -339,7 +332,8 @@ void print_pid_priority(struct text_object *obj, char *p, unsigned int p_max_siz
}
}
void print_pid_state(struct text_object *obj, char *p, unsigned int p_max_size) {
void print_pid_state(struct text_object *obj, char *p,
unsigned int p_max_size) {
#define STATE_ENTRY "State:\t"
#define STATENOTFOUND "Can't find the process state in '%s'"
char *begin, *end, *buf = nullptr;
@ -348,7 +342,7 @@ void print_pid_state(struct text_object *obj, char *p, unsigned int p_max_size)
std::unique_ptr<char[]> objbuf(new char[max_user_text.get(*state)]);
generate_text_internal(objbuf.get(), max_user_text.get(*state), *obj->sub);
pathstream << PROCDIR "/" << objbuf.get() << "/status";
pathstream << PROCDIR "/" << objbuf.get() << "/status";
buf = readfile(pathstream.str().c_str(), &bytes_read, 1);
if (buf != nullptr) {
@ -369,7 +363,8 @@ void print_pid_state(struct text_object *obj, char *p, unsigned int p_max_size)
}
}
void print_pid_state_short(struct text_object *obj, char *p, unsigned int p_max_size) {
void print_pid_state_short(struct text_object *obj, char *p,
unsigned int p_max_size) {
char *begin, *buf = nullptr;
int bytes_read;
std::ostringstream pathstream;
@ -377,7 +372,7 @@ void print_pid_state_short(struct text_object *obj, char *p, unsigned int p_max_
generate_text_internal(objbuf.get(), max_user_text.get(*state), *obj->sub);
pathstream << PROCDIR "/" << objbuf.get() << "/status";
pathstream << PROCDIR "/" << objbuf.get() << "/status";
buf = readfile(pathstream.str().c_str(), &bytes_read, 1);
if (buf != nullptr) {
@ -391,27 +386,30 @@ void print_pid_state_short(struct text_object *obj, char *p, unsigned int p_max_
}
}
void print_pid_stderr(struct text_object *obj, char *p, unsigned int p_max_size) {
void print_pid_stderr(struct text_object *obj, char *p,
unsigned int p_max_size) {
std::ostringstream pathstream;
std::unique_ptr<char[]> objbuf(new char[max_user_text.get(*state)]);
generate_text_internal(objbuf.get(), max_user_text.get(*state), *obj->sub);
pathstream << PROCDIR "/" << objbuf.get() << "/fd/2";
pathstream << PROCDIR "/" << objbuf.get() << "/fd/2";
pid_readlink(pathstream.str().c_str(), p, p_max_size);
}
void print_pid_stdin(struct text_object *obj, char *p, unsigned int p_max_size) {
void print_pid_stdin(struct text_object *obj, char *p,
unsigned int p_max_size) {
std::unique_ptr<char[]> objbuf(new char[max_user_text.get(*state)]);
std::ostringstream pathstream;
generate_text_internal(objbuf.get(), max_user_text.get(*state), *obj->sub);
pathstream << PROCDIR "/" << objbuf.get() << "/fd/0";
pathstream << PROCDIR "/" << objbuf.get() << "/fd/0";
pid_readlink(pathstream.str().c_str(), p, p_max_size);
}
void print_pid_stdout(struct text_object *obj, char *p, unsigned int p_max_size) {
void print_pid_stdout(struct text_object *obj, char *p,
unsigned int p_max_size) {
std::ostringstream pathstream;
std::unique_ptr<char[]> objbuf(new char[max_user_text.get(*state)]);
@ -437,15 +435,14 @@ void scan_cmdline_to_pid_arg(struct text_object *obj, const char *arg,
strlen(obj->data.s + i + 1) + 1);
}
}
if (obj->data.s[i - 1] == ' ') {
obj->data.s[i - 1] = 0;
}
if (obj->data.s[i - 1] == ' ') { obj->data.s[i - 1] = 0; }
} else {
CRIT_ERR(obj, free_at_crash, "${cmdline_to_pid commandline}");
}
}
void print_cmdline_to_pid(struct text_object *obj, char *p, unsigned int p_max_size) {
void print_cmdline_to_pid(struct text_object *obj, char *p,
unsigned int p_max_size) {
DIR *dir;
struct dirent *entry;
char *buf;
@ -460,9 +457,7 @@ void print_cmdline_to_pid(struct text_object *obj, char *p, unsigned int p_max_s
buf = readfile(pathstream.str().c_str(), &bytes_read, 0);
if (buf != nullptr) {
for (i = 0; i < bytes_read - 1; i++) {
if (buf[i] == 0) {
buf[i] = ' ';
}
if (buf[i] == 0) { buf[i] = ' '; }
}
if (strstr(buf, obj->data.s) != nullptr) {
snprintf(p, p_max_size, "%s", entry->d_name);
@ -479,7 +474,8 @@ void print_cmdline_to_pid(struct text_object *obj, char *p, unsigned int p_max_s
}
}
void print_pid_threads(struct text_object *obj, char *p, unsigned int p_max_size) {
void print_pid_threads(struct text_object *obj, char *p,
unsigned int p_max_size) {
#define THREADS_ENTRY "Threads:\t"
#define THREADSNOTFOUND \
"Can't find the number of the threads of the process in '%s'"
@ -497,9 +493,7 @@ void print_pid_threads(struct text_object *obj, char *p, unsigned int p_max_size
if (begin != nullptr) {
begin += strlen(THREADS_ENTRY);
end = strchr(begin, '\n');
if (end != nullptr) {
*(end) = 0;
}
if (end != nullptr) { *(end) = 0; }
snprintf(p, p_max_size, "%s", begin);
} else {
NORM_ERR(THREADSNOTFOUND, pathstream.str().c_str());
@ -508,7 +502,8 @@ void print_pid_threads(struct text_object *obj, char *p, unsigned int p_max_size
}
}
void print_pid_thread_list(struct text_object *obj, char *p, unsigned int p_max_size) {
void print_pid_thread_list(struct text_object *obj, char *p,
unsigned int p_max_size) {
DIR *dir;
struct dirent *entry;
int totallength = 0;
@ -528,9 +523,7 @@ void print_pid_thread_list(struct text_object *obj, char *p, unsigned int p_max_
}
}
closedir(dir);
if (p[totallength - 1] == ',') {
p[totallength - 1] = 0;
}
if (p[totallength - 1] == ',') { p[totallength - 1] = 0; }
} else {
p[0] = 0;
}
@ -560,7 +553,8 @@ void print_pid_time_kernelmode(struct text_object *obj, char *p,
}
}
void print_pid_time_usermode(struct text_object *obj, char *p, unsigned int p_max_size) {
void print_pid_time_usermode(struct text_object *obj, char *p,
unsigned int p_max_size) {
char *buf = nullptr;
int bytes_read;
unsigned long int kmtime;
@ -607,9 +601,10 @@ void print_pid_time(struct text_object *obj, char *p, unsigned int p_max_size) {
}
}
enum idtype {egid, euid, fsgid, fsuid, gid, sgid, suid, uid};
enum idtype { egid, euid, fsgid, fsuid, gid, sgid, suid, uid };
void print_pid_Xid(struct text_object *obj, char *p, int p_max_size, idtype type) {
void print_pid_Xid(struct text_object *obj, char *p, int p_max_size,
idtype type) {
char *begin, *end, *buf = nullptr;
int bytes_read;
std::ostringstream pathstream;
@ -621,106 +616,107 @@ void print_pid_Xid(struct text_object *obj, char *p, int p_max_size, idtype type
buf = readfile(pathstream.str().c_str(), &bytes_read, 1);
if (buf != nullptr) {
switch(type) {
case egid:
begin = strstr(buf, "Gid:\t");
break;
case euid:
begin = strstr(buf, "Uid:\t");
break;
case fsgid:
begin = strstr(buf, "Gid:\t");
break;
case fsuid:
begin = strstr(buf, "Uid:\t");
break;
case gid:
begin = strstr(buf, "Gid:\t");
break;
case sgid:
begin = strstr(buf, "Gid:\t");
break;
case suid:
begin = strstr(buf, "Uid:\t");
break;
case uid:
begin = strstr(buf, "Uid:\t");
break;
default:
break;
}
if (begin != nullptr) {
switch(type) {
case gid:
begin += strlen("Gid:\t");
break;
case uid:
begin += strlen("Uid:\t");
break;
switch (type) {
case egid:
case euid:
begin = strchr(begin, '\t');
begin++;
begin = strchr(begin, '\t');
begin++;
begin = strstr(buf, "Gid:\t");
break;
case sgid:
case suid:
begin = strchr(begin, '\t');
begin++;
begin = strchr(begin, '\t');
begin++;
begin = strchr(begin, '\t');
begin++;
case euid:
begin = strstr(buf, "Uid:\t");
break;
case fsgid:
begin = strstr(buf, "Gid:\t");
break;
case fsuid:
begin = strchr(begin, '\t');
begin++;
begin = strchr(begin, '\t');
begin++;
begin = strchr(begin, '\t');
begin++;
begin = strchr(begin, '\t');
begin++;
break;
begin = strstr(buf, "Uid:\t");
break;
case gid:
begin = strstr(buf, "Gid:\t");
break;
case sgid:
begin = strstr(buf, "Gid:\t");
break;
case suid:
begin = strstr(buf, "Uid:\t");
break;
case uid:
begin = strstr(buf, "Uid:\t");
break;
default:
break;
}
if (begin != nullptr) {
switch (type) {
case gid:
begin += strlen("Gid:\t");
break;
case uid:
begin += strlen("Uid:\t");
break;
case egid:
case euid:
begin = strchr(begin, '\t');
begin++;
begin = strchr(begin, '\t');
begin++;
break;
case sgid:
case suid:
begin = strchr(begin, '\t');
begin++;
begin = strchr(begin, '\t');
begin++;
begin = strchr(begin, '\t');
begin++;
break;
case fsgid:
case fsuid:
begin = strchr(begin, '\t');
begin++;
begin = strchr(begin, '\t');
begin++;
begin = strchr(begin, '\t');
begin++;
begin = strchr(begin, '\t');
begin++;
break;
default:
break;
}
if(type == fsgid || type == fsuid) end = strchr(begin, '\n'); else end = strchr(begin, '\t');
if (end != nullptr) {
*(end) = 0;
}
if (type == fsgid || type == fsuid)
end = strchr(begin, '\n');
else
end = strchr(begin, '\t');
if (end != nullptr) { *(end) = 0; }
snprintf(p, p_max_size, "%s", begin);
} else {
errorstring = "Can't find the process ";
switch(type) {
case egid:
errorstring.append("effective gid");
break;
case euid:
errorstring.append("effective uid");
break;
case fsgid:
errorstring.append("process file system gid");
break;
case fsuid:
errorstring.append("process file system uid");
break;
case gid:
errorstring.append("real gid");
break;
case sgid:
errorstring.append("saved set gid");
break;
case suid:
errorstring.append("saved set uid");
break;
case uid:
errorstring.append("real uid");
break;
default:
break;
switch (type) {
case egid:
errorstring.append("effective gid");
break;
case euid:
errorstring.append("effective uid");
break;
case fsgid:
errorstring.append("process file system gid");
break;
case fsuid:
errorstring.append("process file system uid");
break;
case gid:
errorstring.append("real gid");
break;
case sgid:
errorstring.append("saved set gid");
break;
case suid:
errorstring.append("saved set uid");
break;
case uid:
errorstring.append("real uid");
break;
default:
break;
}
errorstring.append(" in '%s'");
NORM_ERR(errorstring.c_str(), pathstream.str().c_str());
@ -730,23 +726,25 @@ void print_pid_Xid(struct text_object *obj, char *p, int p_max_size, idtype type
}
void print_pid_egid(struct text_object *obj, char *p, unsigned int p_max_size) {
print_pid_Xid(obj, p, p_max_size, egid);
print_pid_Xid(obj, p, p_max_size, egid);
}
void print_pid_euid(struct text_object *obj, char *p, unsigned int p_max_size) {
print_pid_Xid(obj, p, p_max_size, euid);
}
void print_pid_fsgid(struct text_object *obj, char *p, unsigned int p_max_size) {
void print_pid_fsgid(struct text_object *obj, char *p,
unsigned int p_max_size) {
print_pid_Xid(obj, p, p_max_size, fsgid);
}
void print_pid_fsuid(struct text_object *obj, char *p, unsigned int p_max_size) {
print_pid_Xid(obj, p, p_max_size, fsuid);
void print_pid_fsuid(struct text_object *obj, char *p,
unsigned int p_max_size) {
print_pid_Xid(obj, p, p_max_size, fsuid);
}
void print_pid_gid(struct text_object *obj, char *p, unsigned int p_max_size) {
print_pid_Xid(obj, p, p_max_size, gid);
print_pid_Xid(obj, p, p_max_size, gid);
}
void print_pid_sgid(struct text_object *obj, char *p, unsigned int p_max_size) {
@ -754,7 +752,7 @@ void print_pid_sgid(struct text_object *obj, char *p, unsigned int p_max_size) {
}
void print_pid_suid(struct text_object *obj, char *p, unsigned int p_max_size) {
print_pid_Xid(obj, p, p_max_size, suid);
print_pid_Xid(obj, p, p_max_size, suid);
}
void print_pid_uid(struct text_object *obj, char *p, unsigned int p_max_size) {
@ -776,13 +774,9 @@ void internal_print_pid_vm(struct text_object *obj, char *p, int p_max_size,
begin = strstr(buf, entry);
if (begin != nullptr) {
begin += strlen(entry);
while (*begin == '\t' || *begin == ' ') {
begin++;
}
while (*begin == '\t' || *begin == ' ') { begin++; }
end = strchr(begin, '\n');
if (end != nullptr) {
*(end) = 0;
}
if (end != nullptr) { *(end) = 0; }
snprintf(p, p_max_size, "%s", begin);
} else {
NORM_ERR(errorstring, pathstream.str().c_str());
@ -791,55 +785,65 @@ void internal_print_pid_vm(struct text_object *obj, char *p, int p_max_size,
}
}
void print_pid_vmpeak(struct text_object *obj, char *p, unsigned int p_max_size) {
void print_pid_vmpeak(struct text_object *obj, char *p,
unsigned int p_max_size) {
internal_print_pid_vm(
obj, p, p_max_size, "VmPeak:\t",
"Can't find the process peak virtual memory size in '%s'");
}
void print_pid_vmsize(struct text_object *obj, char *p, unsigned int p_max_size) {
void print_pid_vmsize(struct text_object *obj, char *p,
unsigned int p_max_size) {
internal_print_pid_vm(obj, p, p_max_size, "VmSize:\t",
"Can't find the process virtual memory size in '%s'");
}
void print_pid_vmlck(struct text_object *obj, char *p, unsigned int p_max_size) {
void print_pid_vmlck(struct text_object *obj, char *p,
unsigned int p_max_size) {
internal_print_pid_vm(obj, p, p_max_size, "VmLck:\t",
"Can't find the process locked memory size in '%s'");
}
void print_pid_vmhwm(struct text_object *obj, char *p, unsigned int p_max_size) {
void print_pid_vmhwm(struct text_object *obj, char *p,
unsigned int p_max_size) {
internal_print_pid_vm(
obj, p, p_max_size, "VmHWM:\t",
"Can't find the process peak resident set size in '%s'");
}
void print_pid_vmrss(struct text_object *obj, char *p, unsigned int p_max_size) {
void print_pid_vmrss(struct text_object *obj, char *p,
unsigned int p_max_size) {
internal_print_pid_vm(obj, p, p_max_size, "VmHWM:\t",
"Can't find the process resident set size in '%s'");
}
void print_pid_vmdata(struct text_object *obj, char *p, unsigned int p_max_size) {
void print_pid_vmdata(struct text_object *obj, char *p,
unsigned int p_max_size) {
internal_print_pid_vm(obj, p, p_max_size, "VmData:\t",
"Can't find the process data segment size in '%s'");
}
void print_pid_vmstk(struct text_object *obj, char *p, unsigned int p_max_size) {
void print_pid_vmstk(struct text_object *obj, char *p,
unsigned int p_max_size) {
internal_print_pid_vm(obj, p, p_max_size, "VmData:\t",
"Can't find the process stack segment size in '%s'");
}
void print_pid_vmexe(struct text_object *obj, char *p, unsigned int p_max_size) {
void print_pid_vmexe(struct text_object *obj, char *p,
unsigned int p_max_size) {
internal_print_pid_vm(obj, p, p_max_size, "VmData:\t",
"Can't find the process text segment size in '%s'");
}
void print_pid_vmlib(struct text_object *obj, char *p, unsigned int p_max_size) {
void print_pid_vmlib(struct text_object *obj, char *p,
unsigned int p_max_size) {
internal_print_pid_vm(
obj, p, p_max_size, "VmLib:\t",
"Can't find the process shared library code size in '%s'");
}
void print_pid_vmpte(struct text_object *obj, char *p, unsigned int p_max_size) {
void print_pid_vmpte(struct text_object *obj, char *p,
unsigned int p_max_size) {
internal_print_pid_vm(
obj, p, p_max_size, "VmPTE:\t",
"Can't find the process page table entries size in '%s'");
@ -861,9 +865,7 @@ void print_pid_read(struct text_object *obj, char *p, unsigned int p_max_size) {
begin = strstr(buf, READ_ENTRY);
if (begin != nullptr) {
end = strchr(begin, '\n');
if (end != nullptr) {
*(end) = 0;
}
if (end != nullptr) { *(end) = 0; }
snprintf(p, p_max_size, "%s", begin);
} else {
NORM_ERR(READNOTFOUND, pathstream.str().c_str());
@ -874,7 +876,8 @@ void print_pid_read(struct text_object *obj, char *p, unsigned int p_max_size) {
#define WRITE_ENTRY "write_bytes: "
#define WRITENOTFOUND "Can't find the amount of bytes written in '%s'"
void print_pid_write(struct text_object *obj, char *p, unsigned int p_max_size) {
void print_pid_write(struct text_object *obj, char *p,
unsigned int p_max_size) {
char *begin, *end, *buf = nullptr;
int bytes_read;
std::ostringstream pathstream;
@ -888,9 +891,7 @@ void print_pid_write(struct text_object *obj, char *p, unsigned int p_max_size)
begin = strstr(buf, WRITE_ENTRY);
if (begin != nullptr) {
end = strchr(begin, '\n');
if (end != nullptr) {
*(end) = 0;
}
if (end != nullptr) { *(end) = 0; }
snprintf(p, p_max_size, "%s", begin);
} else {
NORM_ERR(WRITENOTFOUND, pathstream.str().c_str());

View File

@ -34,26 +34,39 @@
#define READERR "Can't read '%s'"
#define READSIZE 128
void print_pid_chroot(struct text_object *obj, char *p, unsigned int p_max_size);
void print_pid_cmdline(struct text_object *obj, char *p, unsigned int p_max_size);
void print_pid_chroot(struct text_object *obj, char *p,
unsigned int p_max_size);
void print_pid_cmdline(struct text_object *obj, char *p,
unsigned int p_max_size);
void print_pid_cwd(struct text_object *obj, char *p, unsigned int p_max_size);
void print_pid_environ(struct text_object *obj, char *p, unsigned int p_max_size);
void print_pid_environ_list(struct text_object *obj, char *p, unsigned int p_max_size);
void print_pid_environ(struct text_object *obj, char *p,
unsigned int p_max_size);
void print_pid_environ_list(struct text_object *obj, char *p,
unsigned int p_max_size);
void print_pid_exe(struct text_object *obj, char *p, unsigned int p_max_size);
void print_pid_nice(struct text_object *obj, char *p, unsigned int p_max_size);
void print_pid_openfiles(struct text_object *obj, char *p, unsigned int p_max_size);
void print_pid_parent(struct text_object *obj, char *p, unsigned int p_max_size);
void print_pid_priority(struct text_object *obj, char *p, unsigned int p_max_size);
void print_pid_openfiles(struct text_object *obj, char *p,
unsigned int p_max_size);
void print_pid_parent(struct text_object *obj, char *p,
unsigned int p_max_size);
void print_pid_priority(struct text_object *obj, char *p,
unsigned int p_max_size);
void print_pid_state(struct text_object *obj, char *p, unsigned int p_max_size);
void print_pid_state_short(struct text_object *obj, char *p, unsigned int p_max_size);
void print_pid_stderr(struct text_object *obj, char *p, unsigned int p_max_size);
void print_pid_state_short(struct text_object *obj, char *p,
unsigned int p_max_size);
void print_pid_stderr(struct text_object *obj, char *p,
unsigned int p_max_size);
void print_pid_stdin(struct text_object *obj, char *p, unsigned int p_max_size);
void print_pid_stdout(struct text_object *obj, char *p, unsigned int p_max_size);
void print_pid_threads(struct text_object *obj, char *p, unsigned int p_max_size);
void print_pid_thread_list(struct text_object *obj, char *p, unsigned int p_max_size);
void print_pid_stdout(struct text_object *obj, char *p,
unsigned int p_max_size);
void print_pid_threads(struct text_object *obj, char *p,
unsigned int p_max_size);
void print_pid_thread_list(struct text_object *obj, char *p,
unsigned int p_max_size);
void print_pid_time_kernelmode(struct text_object *obj, char *p,
unsigned int p_max_size);
void print_pid_time_usermode(struct text_object *obj, char *p, unsigned int p_max_size);
void print_pid_time_usermode(struct text_object *obj, char *p,
unsigned int p_max_size);
void print_pid_time(struct text_object *obj, char *p, unsigned int p_max_size);
void print_pid_uid(struct text_object *obj, char *p, unsigned int p_max_size);
void print_pid_euid(struct text_object *obj, char *p, unsigned int p_max_size);
@ -64,12 +77,15 @@ void print_pid_egid(struct text_object *obj, char *p, unsigned int p_max_size);
void print_pid_sgid(struct text_object *obj, char *p, unsigned int p_max_size);
void print_pid_fsgid(struct text_object *obj, char *p, unsigned int p_max_size);
void print_pid_read(struct text_object *obj, char *p, unsigned int p_max_size);
void print_pid_vmpeak(struct text_object *obj, char *p, unsigned int p_max_size);
void print_pid_vmsize(struct text_object *obj, char *p, unsigned int p_max_size);
void print_pid_vmpeak(struct text_object *obj, char *p,
unsigned int p_max_size);
void print_pid_vmsize(struct text_object *obj, char *p,
unsigned int p_max_size);
void print_pid_vmlck(struct text_object *obj, char *p, unsigned int p_max_size);
void print_pid_vmhwm(struct text_object *obj, char *p, unsigned int p_max_size);
void print_pid_vmrss(struct text_object *obj, char *p, unsigned int p_max_size);
void print_pid_vmdata(struct text_object *obj, char *p, unsigned int p_max_size);
void print_pid_vmdata(struct text_object *obj, char *p,
unsigned int p_max_size);
void print_pid_vmstk(struct text_object *obj, char *p, unsigned int p_max_size);
void print_pid_vmexe(struct text_object *obj, char *p, unsigned int p_max_size);
void print_pid_vmlib(struct text_object *obj, char *p, unsigned int p_max_size);
@ -78,6 +94,7 @@ void print_pid_write(struct text_object *obj, char *p, unsigned int p_max_size);
void scan_cmdline_to_pid_arg(struct text_object *obj, const char *arg,
void *free_at_crash);
void print_cmdline_to_pid(struct text_object *obj, char *p, unsigned int p_max_size);
void print_cmdline_to_pid(struct text_object *obj, char *p,
unsigned int p_max_size);
#endif /* CONKY_PROC_H */

View File

@ -101,14 +101,10 @@ static inline void read_item(PRSS_Item *res, xmlNodePtr data) {
for (; data; data = data->next) {
xmlNodePtr child;
if (data->type != XML_ELEMENT_NODE) {
continue;
}
if (data->type != XML_ELEMENT_NODE) { continue; }
child = data->children;
if (!child) {
continue;
}
if (!child) { continue; }
#define ASSIGN(a) \
if (strcasecmp((const char *)data->name, #a) == EQUAL) { \
@ -128,14 +124,10 @@ static inline void read_item(PRSS_Item *res, xmlNodePtr data) {
static inline void read_element(PRSS *res, xmlNodePtr n) {
xmlNodePtr child;
if (n->type != XML_ELEMENT_NODE) {
return;
}
if (n->type != XML_ELEMENT_NODE) { return; }
child = n->children;
if (!child) {
return;
}
if (!child) { return; }
#define ASSIGN(a) \
if (strcasecmp((const char *)n->name, #a) == EQUAL) { \
@ -172,9 +164,7 @@ static inline int parse_rss_2_0(PRSS *res, xmlNodePtr root) {
strcmp((const char *)channel->name, "channel"))) {
channel = channel->next;
}
if (!channel) {
return 0;
}
if (!channel) { return 0; }
for (n = channel->children; n; n = n->next) {
if (n->type == XML_ELEMENT_NODE && !strcmp((const char *)n->name, "item")) {
@ -188,9 +178,7 @@ static inline int parse_rss_2_0(PRSS *res, xmlNodePtr root) {
res->items = (PRSS_Item *)malloc(items * sizeof(PRSS_Item));
res->item_count = 0;
for (n = channel->children; n; n = n->next) {
read_element(res, n);
}
for (n = channel->children; n; n = n->next) { read_element(res, n); }
return 1;
}
@ -207,9 +195,7 @@ static inline int parse_rss_1_0(PRSS *res, xmlNodePtr root) {
} else if (!strcmp((const char *)n->name, "channel")) {
xmlNodePtr i;
for (i = n->children; i; i = i->next) {
read_element(res, i);
}
for (i = n->children; i; i = i->next) { read_element(res, i); }
}
}
}

View File

@ -36,11 +36,16 @@
void init_pulseaudio(struct text_object *obj);
void free_pulseaudio(struct text_object *obj);
uint8_t puau_vol(struct text_object *); // preserve pa_* for libpulse
void print_puau_sink_description(struct text_object *obj, char *p, unsigned int p_max_size);
void print_puau_sink_active_port_name(struct text_object *obj, char *p, unsigned int p_max_size);
void print_puau_sink_active_port_description(struct text_object *obj, char *p, unsigned int p_max_size);
void print_puau_card_name(struct text_object *obj, char *p, unsigned int p_max_size);
void print_puau_card_active_profile(struct text_object *obj, char *p, unsigned int p_max_size);
void print_puau_sink_description(struct text_object *obj, char *p,
unsigned int p_max_size);
void print_puau_sink_active_port_name(struct text_object *obj, char *p,
unsigned int p_max_size);
void print_puau_sink_active_port_description(struct text_object *obj, char *p,
unsigned int p_max_size);
void print_puau_card_name(struct text_object *obj, char *p,
unsigned int p_max_size);
void print_puau_card_active_profile(struct text_object *obj, char *p,
unsigned int p_max_size);
double puau_volumebarval(struct text_object *obj);
int puau_muted(struct text_object *obj);

View File

@ -52,9 +52,7 @@ class rss_cb : public curl_callback<std::shared_ptr<PRSS>> {
std::unique_lock<std::mutex> lock(Base::result_mutex);
Base::result = tmp;
} catch (std::runtime_error &e) {
NORM_ERR("%s", e.what());
}
} catch (std::runtime_error &e) { NORM_ERR("%s", e.what()); }
}
public:
@ -87,9 +85,7 @@ static void rss_process_info(char *p, int p_max_size, const std::string &uri,
str = data->title;
if (str && strlen(str) > 0) {
// remove trailing new line if one exists
if (str[strlen(str) - 1] == '\n') {
str[strlen(str) - 1] = 0;
}
if (str[strlen(str) - 1] == '\n') { str[strlen(str) - 1] = 0; }
snprintf(p, p_max_size, "%s", str);
}
} else if (strcmp(action, "item_title") == EQUAL) {
@ -97,9 +93,7 @@ static void rss_process_info(char *p, int p_max_size, const std::string &uri,
str = data->items[act_par].title;
// remove trailing new line if one exists
if (str && strlen(str) > 0) {
if (str[strlen(str) - 1] == '\n') {
str[strlen(str) - 1] = 0;
}
if (str[strlen(str) - 1] == '\n') { str[strlen(str) - 1] = 0; }
snprintf(p, p_max_size, "%s", str);
}
}
@ -108,9 +102,7 @@ static void rss_process_info(char *p, int p_max_size, const std::string &uri,
str = data->items[act_par].description;
// remove trailing new line if one exists
if (str && strlen(str) > 0) {
if (str[strlen(str) - 1] == '\n') {
str[strlen(str) - 1] = 0;
}
if (str[strlen(str) - 1] == '\n') { str[strlen(str) - 1] = 0; }
snprintf(p, p_max_size, "%s", str);
}
}
@ -135,9 +127,7 @@ static void rss_process_info(char *p, int p_max_size, const std::string &uri,
str = item->title;
if (str) {
// don't add new line before first item
if (itmp > 0) {
strncat(p, "\n", p_max_size);
}
if (itmp > 0) { strncat(p, "\n", p_max_size); }
/* remove trailing new line if one exists,
* we have our own */
if (strlen(str) > 0 && str[strlen(str) - 1] == '\n') {

View File

@ -71,9 +71,7 @@ settings_vector make_settings_vector() {
settings_vector ret;
ret.reserve(settings->size());
for (auto &setting : *settings) {
ret.push_back(setting.second);
}
for (auto &setting : *settings) { ret.push_back(setting.second); }
sort(ret.begin(), ret.end(), &priv::config_setting_base::seq_compare);
return ret;
@ -131,9 +129,7 @@ void config_setting_base::process_setting(lua::state &l, bool init) {
lua::stack_sentry s(l, -3);
config_setting_base *ptr = get_setting(l, -3);
if (ptr == nullptr) {
return;
}
if (ptr == nullptr) { return; }
ptr->lua_setter(l, init);
l.pushvalue(-2);

View File

@ -132,7 +132,8 @@ uint8_t smapi_bat_percentage(struct text_object *obj) {
return val;
}
void print_smapi_bat_temp(struct text_object *obj, char *p, unsigned int p_max_size) {
void print_smapi_bat_temp(struct text_object *obj, char *p,
unsigned int p_max_size) {
int idx, val;
if (obj->data.s && sscanf(obj->data.s, "%i", &idx) == 1) {
val = smapi_bat_installed_internal(idx)
@ -144,7 +145,8 @@ void print_smapi_bat_temp(struct text_object *obj, char *p, unsigned int p_max_s
NORM_ERR("argument to smapi_bat_temp must be an integer");
}
void print_smapi_bat_power(struct text_object *obj, char *p, unsigned int p_max_size) {
void print_smapi_bat_power(struct text_object *obj, char *p,
unsigned int p_max_size) {
int idx, val;
if (obj->data.s && sscanf(obj->data.s, "%i", &idx) == 1) {
val = smapi_bat_installed_internal(idx)
@ -165,9 +167,7 @@ double smapi_bat_barval(struct text_object *obj) {
int smapi_bat_installed(struct text_object *obj) {
int idx;
if (obj->data.s && sscanf(obj->data.s, "%i", &idx) == 1) {
if (!smapi_bat_installed_internal(idx)) {
return 0;
}
if (!smapi_bat_installed_internal(idx)) { return 0; }
} else
NORM_ERR("argument to if_smapi_bat_installed must be an integer");
return 1;

View File

@ -51,9 +51,7 @@ void get_sony_fanspeed(struct text_object *obj, char *p_client_buffer,
(void)obj;
if (!p_client_buffer || client_buffer_size <= 0) {
return;
}
if (!p_client_buffer || client_buffer_size <= 0) { return; }
snprintf(fan, 127, "%s/fanspeed", SONY_LAPTOP_DIR);
@ -62,12 +60,8 @@ void get_sony_fanspeed(struct text_object *obj, char *p_client_buffer,
while (!feof(fp)) {
char line[256];
if (fgets(line, 255, fp) == nullptr) {
break;
}
if (sscanf(line, "%u", &speed)) {
break;
}
if (fgets(line, 255, fp) == nullptr) { break; }
if (sscanf(line, "%u", &speed)) { break; }
}
} else {
CRIT_ERR(nullptr, NULL,

View File

@ -65,13 +65,9 @@ static void tailstring(char *string, int endofstring, int wantedlines) {
string[endofstring - 1] = 0;
}
for (i = endofstring - 1; i >= 0 && linescounted < wantedlines; i--) {
if (string[i] == '\n') {
linescounted++;
}
}
if (i > 0) {
strfold(string, i + 2);
if (string[i] == '\n') { linescounted++; }
}
if (i > 0) { strfold(string, i + 2); }
}
}
@ -124,9 +120,7 @@ static void print_tailhead(const char *type, struct text_object *obj, char *p,
struct stat st {};
auto *ht = static_cast<struct headtail *>(obj->data.opaque);
if (ht == nullptr) {
return;
}
if (ht == nullptr) { return; }
// empty the buffer and reset the counter if we used it the max number of
// times
@ -145,12 +139,8 @@ static void print_tailhead(const char *type, struct text_object *obj, char *p,
if (fd != -1) {
if (strcmp(type, "head") == 0) {
for (i = 0; linescounted < ht->wantedlines; i++) {
if (read(fd, p + i, 1) <= 0) {
break;
}
if (p[i] == '\n') {
linescounted++;
}
if (read(fd, p + i, 1) <= 0) { break; }
if (p[i] == '\n') { linescounted++; }
}
p[i] = 0;
} else if (strcmp(type, "tail") == 0) {
@ -175,7 +165,7 @@ static void print_tailhead(const char *type, struct text_object *obj, char *p,
endofstring = strlen(p);
}
} else if (strcmp(type, "tail") == 0) {
fseek(fp, - (long) p_max_size, SEEK_END);
fseek(fp, -(long)p_max_size, SEEK_END);
i = fread(p, 1, p_max_size - 1, fp);
tailstring(p, i, ht->wantedlines);
} else {
@ -219,9 +209,7 @@ void print_lines(struct text_object *obj, char *p, unsigned int p_max_size) {
lines = 0;
while (fgets(buf, BUFSZ, fp) != nullptr) {
for (j = 0; buf[j] != 0; j++) {
if (buf[j] == '\n') {
lines++;
}
if (buf[j] == '\n') { lines++; }
}
}
snprintf(p, p_max_size, "%d", lines);

View File

@ -17,10 +17,10 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
#include "tcp-portmon.h"
#include "conky.h"
#include "libtcp-portmon.h"
#include "logging.h"
#include "tcp-portmon.h"
#include "text_object.h"
static tcp_port_monitor_collection_t *pmc = nullptr;
@ -122,7 +122,8 @@ int tcp_portmon_init(struct text_object *obj, const char *arg) {
return 0;
}
void tcp_portmon_action(struct text_object *obj, char *p, unsigned int p_max_size) {
void tcp_portmon_action(struct text_object *obj, char *p,
unsigned int p_max_size) {
struct tcp_port_monitor_data *pmd = (tcp_port_monitor_data *)obj->data.opaque;
tcp_port_monitor_t *p_monitor;

View File

@ -41,9 +41,7 @@ static double fahrenheit_to_celsius(double n) { return ((n - 32) * 5 / 9); }
static double celsius_to_fahrenheit(double n) { return ((n * 9 / 5) + 32); }
static double convert_temp_output(double n, enum TEMP_UNIT input_unit) {
if (input_unit == output_unit.get(*state)) {
return n;
}
if (input_unit == output_unit.get(*state)) { return n; }
switch (output_unit.get(*state)) {
case TEMP_CELSIUS:
@ -55,8 +53,8 @@ static double convert_temp_output(double n, enum TEMP_UNIT input_unit) {
return 0.0;
}
int temp_print(char *p, size_t p_max_size, double n,
enum TEMP_UNIT input_unit, int to_int) {
int temp_print(char *p, size_t p_max_size, double n, enum TEMP_UNIT input_unit,
int to_int) {
int i_out = 0;
float f_out = 0.0;
size_t plen = 0;

View File

@ -184,7 +184,10 @@ char *find_and_replace_templates(const char *inbuf) {
if (*(p + 1) == '{') {
p += 2;
templ = p;
while ((*p != 0) && (isspace((unsigned char)*p) == 0) && *p != '{' && *p != '}') { p++; }
while ((*p != 0) && (isspace((unsigned char)*p) == 0) && *p != '{' &&
*p != '}') {
p++;
}
if (*p == '}') {
args = nullptr;
} else {

View File

@ -44,7 +44,8 @@ void scan_tztime(struct text_object *, const char *);
void print_time(struct text_object *, char *, unsigned int);
void print_utime(struct text_object *, char *, unsigned int);
void print_tztime(struct text_object *, char *, unsigned int);
void print_format_time(struct text_object *obj, char *p, unsigned int p_max_size);
void print_format_time(struct text_object *obj, char *p,
unsigned int p_max_size);
/* free object data */
void free_time(struct text_object *);

View File

@ -22,6 +22,7 @@
*
*/
#include "weather.h"
#include <ctype.h>
#include <time.h>
#include <array>
@ -34,9 +35,8 @@
#include "logging.h"
#include "temphelper.h"
#include "text_object.h"
#include "weather.h"
void print_weather(struct text_object *obj, char *p, unsigned int p_max_size) {
(void) obj;
strncpy(p ,"TODO...", p_max_size);
(void)obj;
strncpy(p, "TODO...", p_max_size);
}

View File

@ -289,9 +289,7 @@ int update_xmms2(void) {
/* initialize connection */
if (current_info->xmms2.conn_state == CONN_INIT) {
if (xmms2_conn == nullptr) {
xmms2_conn = xmmsc_init(PACKAGE_NAME);
}
if (xmms2_conn == nullptr) { xmms2_conn = xmmsc_init(PACKAGE_NAME); }
/* did init fail? */
if (xmms2_conn == nullptr) {
@ -351,20 +349,23 @@ int update_xmms2(void) {
return 0;
}
void print_xmms2_tracknr(struct text_object *obj, char *p, unsigned int p_max_size) {
void print_xmms2_tracknr(struct text_object *obj, char *p,
unsigned int p_max_size) {
(void)obj;
if (info.xmms2.tracknr != -1) {
snprintf(p, p_max_size, "%i", info.xmms2.tracknr);
}
}
void print_xmms2_elapsed(struct text_object *obj, char *p, unsigned int p_max_size) {
void print_xmms2_elapsed(struct text_object *obj, char *p,
unsigned int p_max_size) {
(void)obj;
snprintf(p, p_max_size, "%02d:%02d", info.xmms2.elapsed / 60000,
(info.xmms2.elapsed / 1000) % 60);
}
void print_xmms2_duration(struct text_object *obj, char *p, unsigned int p_max_size) {
void print_xmms2_duration(struct text_object *obj, char *p,
unsigned int p_max_size) {
(void)obj;
snprintf(p, p_max_size, "%02d:%02d", info.xmms2.duration / 60000,
(info.xmms2.duration / 1000) % 60);
@ -376,7 +377,8 @@ double xmms2_barval(struct text_object *obj) {
return info.xmms2.progress;
}
void print_xmms2_smart(struct text_object *obj, char *p, unsigned int p_max_size) {
void print_xmms2_smart(struct text_object *obj, char *p,
unsigned int p_max_size) {
(void)obj;
int artist_len = strlen(info.xmms2.artist);
int title_len = strlen(info.xmms2.title);
@ -389,11 +391,11 @@ void print_xmms2_smart(struct text_object *obj, char *p, unsigned int p_max_size
}
}
#define XMMS2_PRINT_GENERATOR(name, fmt) \
void print_xmms2_##name(struct text_object *obj, char *p, \
unsigned int p_max_size) { \
(void)obj; \
snprintf(p, p_max_size, fmt, info.xmms2.name); \
#define XMMS2_PRINT_GENERATOR(name, fmt) \
void print_xmms2_##name(struct text_object *obj, char *p, \
unsigned int p_max_size) { \
(void)obj; \
snprintf(p, p_max_size, fmt, info.xmms2.name); \
}
XMMS2_PRINT_GENERATOR(artist, "%s")

File diff suppressed because it is too large Load Diff