diff options
Diffstat (limited to 'extensions/spellcheck/hunspell/patches/bug1410214.patch')
-rw-r--r-- | extensions/spellcheck/hunspell/patches/bug1410214.patch | 172 |
1 files changed, 172 insertions, 0 deletions
diff --git a/extensions/spellcheck/hunspell/patches/bug1410214.patch b/extensions/spellcheck/hunspell/patches/bug1410214.patch new file mode 100644 index 0000000000..a6e45140a9 --- /dev/null +++ b/extensions/spellcheck/hunspell/patches/bug1410214.patch @@ -0,0 +1,172 @@ +# HG changeset patch +# User Kris Maglione <maglione.k@gmail.com> +# Date 1524774544 25200 +# Thu Apr 26 13:29:04 2018 -0700 +# Node ID 3dd497b3e3f15b06e3e786d00addcd5ef85b97cb +# Parent 2f1e8f0e6b5316f9119a7111100af50c4b7025af +Bug 1410214: Part 2 - Add a stub Hunspell FileMgr that allows it to read URLs. r=masayuki + +This will allow us to store dictionaries in packed extension XPIs and/or +omni.ja, which should give us a significant startup performance win. + +MozReview-Commit-ID: K7fzJJAywjC + +diff --git a/extensions/spellcheck/hunspell/src/filemgr.cxx b/extensions/spellcheck/hunspell/src/filemgr.cxx +deleted file mode 100644 +--- a/extensions/spellcheck/hunspell/src/filemgr.cxx ++++ /dev/null +@@ -1,117 +0,0 @@ +-/* ***** BEGIN LICENSE BLOCK ***** +- * Version: MPL 1.1/GPL 2.0/LGPL 2.1 +- * +- * Copyright (C) 2002-2017 Németh László +- * +- * The contents of this file are subject to the Mozilla Public License Version +- * 1.1 (the "License"); you may not use this file except in compliance with +- * the License. You may obtain a copy of the License at +- * http://www.mozilla.org/MPL/ +- * +- * Software distributed under the License is distributed on an "AS IS" basis, +- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +- * for the specific language governing rights and limitations under the +- * License. +- * +- * Hunspell is based on MySpell which is Copyright (C) 2002 Kevin Hendricks. +- * +- * Contributor(s): David Einstein, Davide Prina, Giuseppe Modugno, +- * Gianluca Turconi, Simon Brouwer, Noll János, Bíró Árpád, +- * Goldman Eleonóra, Sarlós Tamás, Bencsáth Boldizsár, Halácsy Péter, +- * Dvornik László, Gefferth András, Nagy Viktor, Varga Dániel, Chris Halls, +- * Rene Engelhard, Bram Moolenaar, Dafydd Jones, Harri Pitkänen +- * +- * Alternatively, the contents of this file may be used under the terms of +- * either the GNU General Public License Version 2 or later (the "GPL"), or +- * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +- * in which case the provisions of the GPL or the LGPL are applicable instead +- * of those above. If you wish to allow use of your version of this file only +- * under the terms of either the GPL or the LGPL, and not to allow others to +- * use your version of this file under the terms of the MPL, indicate your +- * decision by deleting the provisions above and replace them with the notice +- * and other provisions required by the GPL or the LGPL. If you do not delete +- * the provisions above, a recipient may use your version of this file under +- * the terms of any one of the MPL, the GPL or the LGPL. +- * +- * ***** END LICENSE BLOCK ***** */ +-/* +- * Copyright 2002 Kevin B. Hendricks, Stratford, Ontario, Canada +- * And Contributors. All rights reserved. +- * +- * Redistribution and use in source and binary forms, with or without +- * modification, are permitted provided that the following conditions +- * are met: +- * +- * 1. Redistributions of source code must retain the above copyright +- * notice, this list of conditions and the following disclaimer. +- * +- * 2. Redistributions in binary form must reproduce the above copyright +- * notice, this list of conditions and the following disclaimer in the +- * documentation and/or other materials provided with the distribution. +- * +- * 3. All modifications to the source code must be clearly marked as +- * such. Binary redistributions based on modified source code +- * must be clearly marked as modified versions in the documentation +- * and/or other materials provided with the distribution. +- * +- * THIS SOFTWARE IS PROVIDED BY KEVIN B. HENDRICKS AND CONTRIBUTORS +- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +- * KEVIN B. HENDRICKS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +- * SUCH DAMAGE. +- */ +- +-#include <stdlib.h> +-#include <string.h> +-#include <stdio.h> +- +-#include "filemgr.hxx" +-#include "csutil.hxx" +- +-int FileMgr::fail(const char* err, const char* par) { +- fprintf(stderr, err, par); +- return -1; +-} +- +-FileMgr::FileMgr(const char* file, const char* key) : hin(NULL), linenum(0) { +- in[0] = '\0'; +- +- myopen(fin, file, std::ios_base::in); +- if (!fin.is_open()) { +- // check hzipped file +- std::string st(file); +- st.append(HZIP_EXTENSION); +- hin = new Hunzip(st.c_str(), key); +- } +- if (!fin.is_open() && !hin->is_open()) +- fail(MSG_OPEN, file); +-} +- +-FileMgr::~FileMgr() { +- delete hin; +-} +- +-bool FileMgr::getline(std::string& dest) { +- bool ret = false; +- ++linenum; +- if (fin.is_open()) { +- ret = static_cast<bool>(std::getline(fin, dest)); +- } else if (hin->is_open()) { +- ret = hin->getline(dest); +- } +- if (!ret) { +- --linenum; +- } +- return ret; +-} +- +-int FileMgr::getlinenum() { +- return linenum; +-} +diff --git a/extensions/spellcheck/hunspell/src/filemgr.hxx b/extensions/spellcheck/hunspell/src/filemgr.hxx +--- a/extensions/spellcheck/hunspell/src/filemgr.hxx ++++ b/extensions/spellcheck/hunspell/src/filemgr.hxx +@@ -67,32 +67,11 @@ + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + + /* file manager class - read lines of files [filename] OR [filename.hz] */ + #ifndef FILEMGR_HXX_ + #define FILEMGR_HXX_ + +-#include "hunzip.hxx" +-#include <stdio.h> +-#include <string> +-#include <fstream> +- +-class FileMgr { +- private: +- FileMgr(const FileMgr&); +- FileMgr& operator=(const FileMgr&); ++#include "mozHunspellFileMgrSandbox.h" + +- protected: +- std::ifstream fin; +- Hunzip* hin; +- char in[BUFSIZE + 50]; // input buffer +- int fail(const char* err, const char* par); +- int linenum; +- +- public: +- FileMgr(const char* filename, const char* key = NULL); +- ~FileMgr(); +- bool getline(std::string&); +- int getlinenum(); +-}; + #endif |