История изменений
Исправление LINUX-ORG-RU, (текущая версия) :
По поводу перезатираний уже сказали, поэтому просто сделаю по другому =)
dron@gnu:~$ gresource extract ./gtk.gresource /org/gnome/arc-theme/gtk-main-dark.css > ~/gtk.css
#include <stdio.h>
#include <stdbool.h>
#include <string.h>
#include <assert.h>
#define check(x,p) for(;!(x);puts(p),assert(x));
int main(int argc, char *argv[])
{
FILE * css_file = fopen(argv[argc-1],"r");
check(css_file,"Ошибка открытия файла");
char fg_color[0x10] = {"color_not_found"}; bool has_fg = false;
char bg_color[0x10] = {"color_not_found"}; bool has_bg = false;
char cur_line[0xFF] = {0};
while(fgets(cur_line,sizeof(cur_line),css_file))
{
if(!has_fg)
{
has_fg = (sscanf(cur_line,"@define-color fg_color #%15s;",fg_color) == 1);
}
if(!has_bg)
{
has_bg = (sscanf(cur_line,"@define-color bg_color #%15s;",bg_color) == 1);
}
}
(has_fg) ? fg_color[strlen(fg_color)-1] = '\0' : 0;
(has_bg) ? bg_color[strlen(bg_color)-1] = '\0' : 0;
printf("fg:%s | bg:%s \n",fg_color,bg_color);
return 0;
}
dron@gnu:~$ gcc test.c
dron@gnu:~$ ./a.out gtk.css
fg:D3DAE3 | bg:383C4A
dron@gnu:~$
Исправление LINUX-ORG-RU, :
По поводу перезатираний уже сказали, поэтому просто сделаю по другому =)
dron@gnu:~$ gresource extract ./gtk.gresource /org/gnome/arc-theme/gtk-main-dark.css > ~/gtk.css
#include <stdio.h>
#include <stdbool.h>
#include <string.h>
#include <assert.h>
#define check(x,p) for(;!(x);puts(p),assert(x));
int main(int argc, char *argv[])
{
FILE * css_file = fopen(argv[argc-1],"r");
check(css_file,"Ошибка открытия файла");
char fg_color[0x10] = {"color_not_found"}; bool has_fg = false;
char bg_color[0x10] = {"color_not_found"}; bool has_bg = false;
char cur_line[0xFF] = {0};
while(fgets(cur_line,sizeof(cur_line),css_file))
{
if(!has_fg)
{
has_fg = (sscanf(cur_line,"@define-color fg_color #%s;",fg_color) == 1);
}
if(!has_bg)
{
has_bg = (sscanf(cur_line,"@define-color bg_color #%s;",bg_color) == 1);
}
}
(has_fg) ? fg_color[strlen(fg_color)-1] = '\0' : 0;
(has_bg) ? bg_color[strlen(bg_color)-1] = '\0' : 0;
printf("fg:%s | bg:%s \n",fg_color,bg_color);
return 0;
}
dron@gnu:~$ gcc test.c
dron@gnu:~$ ./a.out gtk.css
fg:D3DAE3 | bg:383C4A
dron@gnu:~$
Исходная версия LINUX-ORG-RU, :
По поводу перезатираний уже сказали, поэтому просто сделаю по другому =)
dron@gnu:~$ gresource extract ./gtk.gresource /org/gnome/arc-theme/gtk-main-dark.css > ~/gtk.css
#include <stdio.h>
#include <stdbool.h>
#include <string.h>
#include <assert.h>
#define check(x,p) for(;!(x);puts(p),assert(x));
int main(int argc, char *argv[])
{
FILE * css_file = fopen(argv[argc-1],"r");
check(css_file,"Ошибка открытия файла");
char fg_color[0x10] = {"color_not_found"}; bool has_fg = false;
char bg_color[0x10] = {"color_not_found"}; bool has_bg = false;
char cur_line[0xFF] = {0};
while(fgets(cur_line,sizeof(cur_line),css_file))
{
if(!has_fg)
{
has_fg = (sscanf(cur_line,"@define-color fg_color #%s;",fg_color) == 1);
}
if(!has_bg)
{
has_bg = (sscanf(cur_line,"@define-color bg_color #%s;",bg_color) == 1);
}
}
(has_fg) ? fg_color[strlen(fg_color)-1] = '\0' : 0;
(has_bg) ? bg_color[strlen(bg_color)-1] = '\0' : 0;
printf("fg:%s | bg:%s \n",fg_color,bg_color);
return 0;
}
dron@gnu:~$ gcc test.c
dron@gnu:~$ ./a.out gtk.css
fg:D3DAE3 | bg:383C4A
dron@gnu:~$