"Fossies" - the Fresh Open Source Software Archive

Member "detox-1.4.5/src/config_file_spoof.c" (15 Aug 2021, 2635 Bytes) of package /linux/privat/detox-1.4.5.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. For more information about "config_file_spoof.c" see the Fossies "Dox" file reference documentation.

    1 /**
    2  * This file is part of the Detox package.
    3  *
    4  * Copyright (c) Doug Harple <detox.dharple@gmail.com>
    5  *
    6  * For the full copyright and license information, please view the LICENSE
    7  * file that was distributed with this source code.
    8  */
    9 
   10 #include "config.h"
   11 
   12 #include <stdio.h>
   13 #include <stdlib.h>
   14 #include <string.h>
   15 #include <errno.h>
   16 
   17 #include "detox.h"
   18 #include "config_file_spoof.h"
   19 #include "clean_string.h"
   20 
   21 struct detox_parse_results *spoof_config_file(struct detox_options *main_options)
   22 {
   23     struct detox_parse_results *ret = NULL;
   24     struct detox_sequence_list *sequences = NULL;
   25     struct detox_sequence_entry *work = NULL;
   26 
   27     /*
   28      * Initialize return
   29      */
   30 
   31     ret = malloc(sizeof(struct detox_parse_results));
   32     if (ret == NULL) {
   33         fprintf(stderr, "out of memory: %s\n", strerror(errno));
   34         exit(EXIT_FAILURE);
   35     }
   36 
   37     memset(ret, 0, sizeof(struct detox_parse_results));
   38 
   39     /*
   40      * Head of sequence
   41      */
   42 
   43     sequences = malloc(sizeof(struct detox_sequence_list));
   44     if (sequences == NULL) {
   45         fprintf(stderr, "out of memory: %s\n", strerror(errno));
   46         exit(EXIT_FAILURE);
   47     }
   48 
   49     memset(sequences, 0, sizeof(struct detox_sequence_list));
   50 
   51     sequences->name = strdup("default");
   52     sequences->source_filename = strdup("inside the beast");
   53 
   54     /*
   55      * Step 1 - ISO8859_1
   56      */
   57 
   58     sequences->head = malloc(sizeof(struct detox_sequence_entry));
   59     if (sequences->head == NULL) {
   60         fprintf(stderr, "out of memory: %s\n", strerror(errno));
   61         exit(EXIT_FAILURE);
   62     }
   63 
   64     work = sequences->head;
   65     memset(work, 0, sizeof(struct detox_sequence_entry));
   66 
   67     work->cleaner = &clean_iso8859_1;
   68 
   69     /*
   70      * Step 2 - Safe
   71      */
   72 
   73     work->next = malloc(sizeof(struct detox_sequence_entry));
   74     if (work->next == NULL) {
   75         fprintf(stderr, "out of memory: %s\n", strerror(errno));
   76         exit(EXIT_FAILURE);
   77     }
   78 
   79     work = work->next;
   80     memset(work, 0, sizeof(struct detox_sequence_entry));
   81 
   82     work->cleaner = &clean_safe;
   83 
   84     /*
   85      * Step 3 - Wipe Up
   86      */
   87 
   88     work->next = malloc(sizeof(struct detox_sequence_entry));
   89     if (work->next == NULL) {
   90         fprintf(stderr, "out of memory: %s\n", strerror(errno));
   91         exit(EXIT_FAILURE);
   92     }
   93 
   94     work = work->next;
   95     memset(work, 0, sizeof(struct detox_sequence_entry));
   96 
   97     work->cleaner = &clean_wipeup;
   98 
   99     /*
  100      * Deprecated
  101      */
  102     if (main_options->remove_trailing) {
  103         static struct clean_string_options *csopts;
  104 
  105         csopts = malloc(sizeof(struct clean_string_options));
  106         if (csopts == NULL) {
  107             fprintf(stderr, "out of memory: %s\n", strerror(errno));
  108             exit(EXIT_FAILURE);
  109         }
  110 
  111         memset(csopts, 0, sizeof(struct clean_string_options));
  112         csopts->remove_trailing = 1;
  113 
  114         work->options = csopts;
  115     }
  116 
  117     /*
  118      *
  119      */
  120 
  121     ret->sequences = sequences;
  122 
  123     return ret;
  124 }