Initial commit.

This commit is contained in:
Nicolás A. Ortega Froysa 2025-01-23 14:36:28 +01:00
commit d45f0cb4ee
5 changed files with 182 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
/dbus-prettifier

17
LICENSE Normal file
View File

@ -0,0 +1,17 @@
Copyright (C) [year] Nicolás A. Ortega Froysa <nicolas@ortegas.org>
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.

57
Makefile Normal file
View File

@ -0,0 +1,57 @@
# Copyright (C) 2025 Nicolás Ortega Froysa <nicolas@ortegas.org> All rights reserved.
# Author: Nicolás Ortega Froysa <nicolas@ortegas.org>
#
# This software is provided 'as-is', without any express or implied
# warranty. In no event will the authors be held liable for any damages
# arising from the use of this software.
#
# Permission is granted to anyone to use this software for any purpose,
# including commercial applications, and to alter it and redistribute it
# freely, subject to the following restrictions:
#
# 1. The origin of this software must not be misrepresented; you must not
# claim that you wrote the original software. If you use this software
# in a product, an acknowledgment in the product documentation would be
# appreciated but is not required.
#
# 2. Altered source versions must be plainly marked as such, and must not be
# misrepresented as being the original software.
#
# 3. This notice may not be removed or altered from any source
# distribution.
DEBUG=0
INCFLAGS=
LDFLAGS=
DEFS=
CFLAGS=$(INCFLAGS) -std=gnu99 -Wall -Wextra -Wfatal-errors -Werror
HDRS=
OBJS=src/main.o
VERSION=1.0
ifeq ($(PREFIX),)
PREFIX := /usr/local
endif
ifeq ($(DEBUG),1)
CFLAGS+=-g -O0
else
CFLAGS+=-O2 -DNDEBUG
endif
%.o:%.cpp $(HDRS)
$(CC) -c -o $@ $< $(CFLAGS) -DVERSION=\"$(VERSION)\"
dbus-prettifier: $(OBJS)
$(CC) -o $@ $^ $(LDFLAGS)
.PHONY: clean distclean install
clean:
$(RM) $(OBJS)
distclean: clean
$(RM) dbus-prettifier
install: dbus-prettifier
install -Dm755 dbus-prettifier $(PREFIX)/bin/

10
README.md Normal file
View File

@ -0,0 +1,10 @@
# DBus Prettifier
## Usage
## Building
## License
This program is licensed under the terms & conditions of the [Zlib
License](LICENSE).

97
src/main.c Normal file
View File

@ -0,0 +1,97 @@
/*
* Copyright (C) 2025 Nicolás Ortega Froysa <nicolas@ortegas.org> All rights reserved.
* Author: Nicolás Ortega Froysa <nicolas@ortegas.org>
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any damages
* arising from the use of this software.
*
* Permission is granted to anyone to use this software for any purpose,
* including commercial applications, and to alter it and redistribute it
* freely, subject to the following restrictions:
*
* 1. The origin of this software must not be misrepresented; you must not
* claim that you wrote the original software. If you use this software
* in a product, an acknowledgment in the product documentation would be
* appreciated but is not required.
*
* 2. Altered source versions must be plainly marked as such, and must not be
* misrepresented as being the original software.
*
* 3. This notice may not be removed or altered from any source
* distribution.
*/
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
const char *in_file_path = argv[1], *out_file_path = argv[2];
FILE *in_file = NULL, *out_file = NULL;
int ret = EXIT_SUCCESS;
int tab_num = 0;
char ch, last_ch = 0;
if(argc != 3) {
printf("Usage: %s <in-file> <out-file>\n", argv[0]);
return EXIT_FAILURE;
}
in_file = fopen(in_file_path, "r");
if(!in_file) {
fprintf(stderr, "Failed to open file '%s'.", in_file_path);
ret = EXIT_FAILURE;
goto exit_err;
}
out_file = fopen(out_file_path, "w");
if(!out_file) {
fprintf(stderr, "Failed to open file '%s'.", out_file_path);
ret = EXIT_FAILURE;
goto exit_err;
}
ch = fgetc(in_file);
while(ch != EOF) {
switch(ch) {
case '[':
case '{':
tab_num++;
fprintf(out_file, "%c\n", ch);
for(int i = 0; i < tab_num; ++i)
fprintf(out_file, " ");
last_ch = ' ';
break;
case ']':
case '}':
tab_num--;
fputc('\n', out_file);
for(int i = 0; i < tab_num; ++i)
fprintf(out_file, " ");
fputc(ch, out_file);
break;
case ',':
fprintf(out_file, "%c\n", ch);
for(int i = 0; i < tab_num; ++i)
fprintf(out_file, " ");
last_ch = ' ';
break;
default:
if(ch != ' ' || last_ch != ' ') {
fputc(ch, out_file);
last_ch = ch;
}
break;
}
ch = fgetc(in_file);
}
exit_err:
if(in_file)
fclose(in_file);
if(out_file)
fclose(out_file);
return ret;
}