diff options
author | Timothy Pearson <[email protected]> | 2011-11-06 15:56:40 -0600 |
---|---|---|
committer | Timothy Pearson <[email protected]> | 2011-11-06 15:56:40 -0600 |
commit | e16866e072f94410321d70daedbcb855ea878cac (patch) | |
tree | ee3f52eabde7da1a0e6ca845fb9c2813cf1558cf /kdeprint/foomatic/make_driver_db_foomatic.c | |
parent | a58c20c1a7593631a1b50213c805507ebc16adaf (diff) | |
download | tdelibs-e16866e072f94410321d70daedbcb855ea878cac.tar.gz tdelibs-e16866e072f94410321d70daedbcb855ea878cac.zip |
Actually move the kde files that were renamed in the last commit
Diffstat (limited to 'kdeprint/foomatic/make_driver_db_foomatic.c')
-rw-r--r-- | kdeprint/foomatic/make_driver_db_foomatic.c | 192 |
1 files changed, 0 insertions, 192 deletions
diff --git a/kdeprint/foomatic/make_driver_db_foomatic.c b/kdeprint/foomatic/make_driver_db_foomatic.c deleted file mode 100644 index 986a24447..000000000 --- a/kdeprint/foomatic/make_driver_db_foomatic.c +++ /dev/null @@ -1,192 +0,0 @@ -/* - * This file is part of the KDE libraries - * Copyright (c) 2001 Michael Goffioul <[email protected]> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License version 2 as published by the Free Software Foundation. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - **/ - -#include <stdio.h> -#include <stdlib.h> -#include <ctype.h> -#include <string.h> - -#define BUFFER_SIZE 1024 -#define WORD_SIZE 256 - -int parseOverview(const char *dbdir, FILE *out); - -int main(int argc, char *argv[]) -{ - FILE *out; - - if (argc != 3) - { - fprintf(stderr,"usage: make_driver_db_foomatic <dbdirectory> <dbfilename>\n"); - exit(-1); - } - out = fopen(argv[2],"w"); - if (out == NULL) - { - fprintf(stderr,"Unable to open DB file: %s\n",argv[2]); - exit(-1); - } - /* first parse RHS driver DB */ - if (!parseOverview(argv[1], out)) - fprintf(stderr,"Unable to parse printer DB\n"); - return 0; -} - -char* skipSpaces(char *c) -{ - char *cc = c; - while (cc && *cc && isspace(*cc)) cc++; - return cc; -} - -int nextEntity(char *s, FILE *in) -{ - char c, p[WORD_SIZE] = {0}; - int index, istag; - - index = 0; - do - { - c = fgetc(in); - } while (isspace(c) && c != EOF); - if (c == EOF) - return -1; - if (c == '<') - { - istag = 1; - c = fgetc(in); - if (c != '/') - ungetc(c, in); - } - else - { - istag = 0; - p[index++] = c; - } - while (index < WORD_SIZE) - { - c = fgetc(in); - if (c != '>' && c != '<') - p[index++] = c; - else - { - if (c == '<') - ungetc(c, in); - break; - } - } - - p[WORD_SIZE - 1] = 0; - strcpy(s, p); - return istag; -} - -void discardTag(const char *tagname, FILE *in) -{ - char entity[WORD_SIZE]; - int istag; - - while ((istag=nextEntity(entity, in)) != -1) - { - if (istag == 1 && strcmp(tagname, entity) == 0) - break; - } -} - -void clearDrivers(char **d) -{ - int index = 0; - - while (d[index]) - { - free(d[index]); - d[index++] = 0; - } -} - -int parseOverview(const char *dbdir, FILE *out) -{ - FILE *in; - char printerid[WORD_SIZE], manu[WORD_SIZE], model[WORD_SIZE], tag[WORD_SIZE], driver[WORD_SIZE]; - char *drivers[20] = {0}; - int index = 0; - char cmd[BUFFER_SIZE] = {0}; - - snprintf(cmd, BUFFER_SIZE, "foomatic-combo-xml -O -l %s", dbdir); - in = popen(cmd, "r"); - if (in == NULL) - return 0; - if (nextEntity(tag, in) == 1 && strcmp(tag, "overview") == 0) - { - printf("-1\n"); - while (nextEntity(tag, in) == 1) - { - if (strcmp(tag, "overview") == 0 || strcmp(tag, "printer") != 0) - break; - strcpy(printerid, ""); - strcpy(manu, ""); - strcpy(model, ""); - clearDrivers(drivers); - while (nextEntity(tag, in) == 1) - { - if (strcmp(tag, "id") == 0) nextEntity(printerid, in); - else if (strcmp(tag, "make") == 0) nextEntity(manu, in); - else if (strcmp(tag, "model") == 0) nextEntity(model, in); - else if (strcmp(tag, "drivers") == 0) - { - index = 0; - while (nextEntity(tag, in) == 1 && strcmp(tag, "driver") == 0 && index < 20) - { - nextEntity(driver, in); - drivers[index++] = strdup(driver); - nextEntity(driver, in); - } - continue; - } - else if (strcmp(tag, "printer") == 0) - { - printf("%s %s\n", manu, model); - index = 0; - while (drivers[index]) - { - fprintf(out, "FILE=%s|%s\n", printerid, drivers[index]); - fprintf(out, "MANUFACTURER=%s\n", manu); - fprintf(out, "MODELNAME=%s\n", model); - fprintf(out, "MODEL=%s\n", model); - fprintf(out, "DESCRIPTION=%s %s (%s)\n", manu, model, drivers[index]); - fprintf(out, "\n"); - index++; - } - break; - } - else - { - discardTag(tag, in); - continue; - } - nextEntity(tag, in); - } - } - } - if (pclose(in) == 0) - index = 1; - else - index = 0; - return index; -} |