Wed, 31 Dec 2014 13:27:57 +0100
Ignore runtime configuration files generated during quality assurance.
michael@0 | 1 | /******* BEGIN LICENSE BLOCK ******* |
michael@0 | 2 | * Version: MPL 1.1/GPL 2.0/LGPL 2.1 |
michael@0 | 3 | * |
michael@0 | 4 | * The contents of this file are subject to the Mozilla Public License Version |
michael@0 | 5 | * 1.1 (the "License"); you may not use this file except in compliance with |
michael@0 | 6 | * the License. You may obtain a copy of the License at |
michael@0 | 7 | * http://www.mozilla.org/MPL/ |
michael@0 | 8 | * |
michael@0 | 9 | * Software distributed under the License is distributed on an "AS IS" basis, |
michael@0 | 10 | * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License |
michael@0 | 11 | * for the specific language governing rights and limitations under the |
michael@0 | 12 | * License. |
michael@0 | 13 | * |
michael@0 | 14 | * The Initial Developers of the Original Code are Kevin Hendricks (MySpell) |
michael@0 | 15 | * and László Németh (Hunspell). Portions created by the Initial Developers |
michael@0 | 16 | * are Copyright (C) 2002-2005 the Initial Developers. All Rights Reserved. |
michael@0 | 17 | * |
michael@0 | 18 | * Contributor(s): László Németh (nemethl@gyorsposta.hu) |
michael@0 | 19 | * Caolan McNamara (caolanm@redhat.com) |
michael@0 | 20 | * |
michael@0 | 21 | * Alternatively, the contents of this file may be used under the terms of |
michael@0 | 22 | * either the GNU General Public License Version 2 or later (the "GPL"), or |
michael@0 | 23 | * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), |
michael@0 | 24 | * in which case the provisions of the GPL or the LGPL are applicable instead |
michael@0 | 25 | * of those above. If you wish to allow use of your version of this file only |
michael@0 | 26 | * under the terms of either the GPL or the LGPL, and not to allow others to |
michael@0 | 27 | * use your version of this file under the terms of the MPL, indicate your |
michael@0 | 28 | * decision by deleting the provisions above and replace them with the notice |
michael@0 | 29 | * and other provisions required by the GPL or the LGPL. If you do not delete |
michael@0 | 30 | * the provisions above, a recipient may use your version of this file under |
michael@0 | 31 | * the terms of any one of the MPL, the GPL or the LGPL. |
michael@0 | 32 | * |
michael@0 | 33 | ******* END LICENSE BLOCK *******/ |
michael@0 | 34 | |
michael@0 | 35 | #include <stdlib.h> |
michael@0 | 36 | #include <string.h> |
michael@0 | 37 | #include <stdio.h> |
michael@0 | 38 | |
michael@0 | 39 | #include "filemgr.hxx" |
michael@0 | 40 | |
michael@0 | 41 | int FileMgr::fail(const char * err, const char * par) { |
michael@0 | 42 | fprintf(stderr, err, par); |
michael@0 | 43 | return -1; |
michael@0 | 44 | } |
michael@0 | 45 | |
michael@0 | 46 | FileMgr::FileMgr(const char * file, const char * key) { |
michael@0 | 47 | linenum = 0; |
michael@0 | 48 | hin = NULL; |
michael@0 | 49 | fin = fopen(file, "r"); |
michael@0 | 50 | if (!fin) { |
michael@0 | 51 | // check hzipped file |
michael@0 | 52 | char * st = (char *) malloc(strlen(file) + strlen(HZIP_EXTENSION) + 1); |
michael@0 | 53 | if (st) { |
michael@0 | 54 | strcpy(st, file); |
michael@0 | 55 | strcat(st, HZIP_EXTENSION); |
michael@0 | 56 | hin = new Hunzip(st, key); |
michael@0 | 57 | free(st); |
michael@0 | 58 | } |
michael@0 | 59 | } |
michael@0 | 60 | if (!fin && !hin) fail(MSG_OPEN, file); |
michael@0 | 61 | } |
michael@0 | 62 | |
michael@0 | 63 | FileMgr::~FileMgr() |
michael@0 | 64 | { |
michael@0 | 65 | if (fin) fclose(fin); |
michael@0 | 66 | if (hin) delete hin; |
michael@0 | 67 | } |
michael@0 | 68 | |
michael@0 | 69 | char * FileMgr::getline() { |
michael@0 | 70 | const char * l; |
michael@0 | 71 | linenum++; |
michael@0 | 72 | if (fin) return fgets(in, BUFSIZE - 1, fin); |
michael@0 | 73 | if (hin && (l = hin->getline())) return strcpy(in, l); |
michael@0 | 74 | linenum--; |
michael@0 | 75 | return NULL; |
michael@0 | 76 | } |
michael@0 | 77 | |
michael@0 | 78 | int FileMgr::getlinenum() { |
michael@0 | 79 | return linenum; |
michael@0 | 80 | } |