summaryrefslogtreecommitdiffstats
path: root/extensions/spellcheck/hunspell/patches/bug1410214.patch
diff options
context:
space:
mode:
Diffstat (limited to 'extensions/spellcheck/hunspell/patches/bug1410214.patch')
-rw-r--r--extensions/spellcheck/hunspell/patches/bug1410214.patch172
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