updated the documentserver source code v3.0 -> v4.0
This commit is contained in:
parent
073f135e23
commit
1e2a61f6f4
12
.gitmodules
vendored
Normal file
12
.gitmodules
vendored
Normal file
|
@ -0,0 +1,12 @@
|
|||
[submodule "sdkjs"]
|
||||
path = sdkjs
|
||||
url = https://github.com/ONLYOFFICE/sdkjs.git
|
||||
[submodule "core"]
|
||||
path = core
|
||||
url = https://github.com/ONLYOFFICE/core.git
|
||||
[submodule "web-apps"]
|
||||
path = web-apps
|
||||
url = https://github.com/ONLYOFFICE/web-apps.git
|
||||
[submodule "server"]
|
||||
path = server
|
||||
url = https://github.com/ONLYOFFICE/server.git
|
138
3rd-Party.txt
138
3rd-Party.txt
|
@ -1,138 +0,0 @@
|
|||
ONLYOFFICE DocumentServer uses code from the following 3rd party projects.
|
||||
|
||||
1. Bootstrap - Bootstrap is a free collection of tools for creating websites and web applications. It contains HTML and CSS-based design templates for typography, forms, buttons, navigation and other interface components, as well as optional JavaScript extensions.
|
||||
|
||||
URL: http://getbootstrap.com
|
||||
License: Apache License Version 2.0
|
||||
License File: ThirdParty\License\Bootstrap.license
|
||||
|
||||
|
||||
2. RequireJS - RequireJS is a JavaScript file and module loader. It is optimized for in-browser use, but it can be used in other JavaScript environments, like Rhino and Node. Using a modular script loader like RequireJS will improve the speed and quality of your code.
|
||||
|
||||
URL: http://requirejs.org/
|
||||
License: The "New" BSD License, MIT License
|
||||
License File: ThirdParty\License\RequireJS.license
|
||||
|
||||
|
||||
3. jQuery - jQuery is a fast, small, and feature-rich JavaScript library.
|
||||
|
||||
URL: https://jquery.org
|
||||
License: MIT License
|
||||
License File: ThirdParty\License\jQuery.license
|
||||
|
||||
|
||||
4. Megapixel - MFixes iOS6 Safari's image file rendering issue for large size image (over mega-pixel), which causes unexpected subsampling when drawing it in canvas.
|
||||
|
||||
URL: https://github.com/stomita/ios-imagefile-megapixel
|
||||
License: MIT License
|
||||
License File: ThirdParty\License\Megapixel.license
|
||||
|
||||
|
||||
5. SockJS - WebSocket emulation - Javascript client
|
||||
|
||||
URL: http://sockjs.org
|
||||
License: MIT License
|
||||
License File: ThirdParty\License\SockJS.license
|
||||
|
||||
|
||||
6. Sencha Touch - a high-performance HTML5 mobile application framework, is the cornerstone of the Sencha HTML5 platform. Built for enabling world-class user experiences, Sencha Touch is the only framework that enables developers to build powerful apps that work on iOS, Android, BlackBerry, Windows Phone, and more.
|
||||
|
||||
URL: http://www.sencha.com/products/touch
|
||||
License: GPLv3
|
||||
License File: ThirdParty\License\Touch.license
|
||||
|
||||
|
||||
7. Underscore - Underscore is a utility-belt library for JavaScript that provides a lot of the functional programming support that you would expect in Prototype.js (or Ruby), but without extending any of the built-in JavaScript objects. It's the tie to go along with jQuery's tux, and Backbone.js's suspenders.
|
||||
|
||||
URL: https://github.com/jashkenas/underscore/
|
||||
License: MIT License
|
||||
License File: ThirdParty\License\Underscore.license
|
||||
|
||||
|
||||
8. XRegExp - XRegExp is an open source (MIT License) JavaScript library that provides augmented and extensible regular expressions. You get new syntax, flags, and methods beyond what browsers support natively. XRegExp is also a regex utility belt with tools to make your client-side grepping simpler and more powerful, while freeing you from worrying about pesky cross-browser inconsistencies and the dubious lastIndex property.
|
||||
|
||||
URL: http://xregexp.com/
|
||||
License: MIT License
|
||||
License File: ThirdParty\License\XRegExp.license
|
||||
|
||||
|
||||
9. ZeroClipboard - The ZeroClipboard library provides an easy way to copy text to the clipboard using an invisible Adobe Flash movie and a JavaScript interface.
|
||||
|
||||
URL: http://zeroclipboard.org
|
||||
License: MIT License
|
||||
License File: ThirdParty\License\ZeroClipboard.license
|
||||
|
||||
|
||||
10. Hunspell - Hunspell is the spell checker of LibreOffice, OpenOffice.org, Mozilla Firefox 3 & Thunderbird, Google Chrome, and it is also used by proprietary software packages, like Mac OS X, InDesign, memoQ, Opera and SDL Trados.
|
||||
|
||||
URL: http://sourceforge.net/projects/hunspell/
|
||||
License: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
License File: ThirdParty\License\Hunspell.license
|
||||
|
||||
|
||||
11. NodeHun - The Hunspell binding for nodejs that exposes as much of hunspell as possible and also adds new features.
|
||||
|
||||
URL: https://npmjs.org/package/nodehun
|
||||
License: MIT License
|
||||
License File: ThirdParty\License\NodeHun.license
|
||||
|
||||
12. AWSSDK - Amazon Web Services SDK for .NET.
|
||||
|
||||
URL: http://aws.amazon.com/sdkfornet/
|
||||
License: Apache 2.0 license
|
||||
License File: ThirdParty\License\AWS.license
|
||||
|
||||
|
||||
13. EnyimMemcached - C# Memcached client
|
||||
|
||||
URL: https://github.com/enyim/EnyimMemcached
|
||||
License: Apache 2.0 license
|
||||
License File: ThirdParty\License\EnyimMemcached.license
|
||||
|
||||
|
||||
14. Ionic.Zip - DotNetZip is a FAST, FREE class library and toolset for manipulating zip files. Use VB, C# or any .NET language to easily create, extract, or update zip files.
|
||||
|
||||
URL: http://dotnetzip.codeplex.com/
|
||||
License: Microsoft Public License (Ms-PL)
|
||||
License File: ThirdParty\License\DotNetZip.license
|
||||
|
||||
|
||||
15. log4net - log4net is a tool to help the programmer output log statements to a variety of output targets.
|
||||
|
||||
URL: http://logging.apache.org/log4net/
|
||||
License: Apache 2.0 license
|
||||
License File: ThirdParty\License\log4net.license
|
||||
|
||||
|
||||
16. MySQL.Data.dll - Connector/Net is a fully-managed ADO.NET driver for MySQL.
|
||||
|
||||
URL: http://dev.mysql.com/downloads/connector/net/1.0.html
|
||||
License: GPL License v.2
|
||||
License File: ThirdParty\License\MySQLDataMySQL.license
|
||||
|
||||
|
||||
17. Backbone - Backbone.js gives structure to web applications by providing models with key-value binding and custom events, collections with a rich API of enumerable functions, views with declarative event handling, and connects it all to your existing API over a RESTful JSON interface.
|
||||
|
||||
URL: http://backbonejs.org/
|
||||
License: MIT License
|
||||
License File: ThirdParty\License\Backbone.license
|
||||
|
||||
|
||||
18. Npgsql - Npgsql is a .Net Data Provider for Postgresql.
|
||||
URL: http://npgsql.projects.pgfoundry.org/
|
||||
License: Npgsql License
|
||||
License File: ThirdParty\License\Backbone.license
|
||||
|
||||
|
||||
19. jQuery.browser - A jQuery plugin for browser detection.
|
||||
|
||||
URL: http://api.jquery.com/jquery.browser/
|
||||
License: MIT License
|
||||
License File: ThirdParty\License\jQuery.browser.license
|
||||
|
||||
|
||||
20. PerfectScrollbar - Tiny but perfect jQuery scrollbar plugin.
|
||||
|
||||
URL: http://noraesae.github.com/perfect-scrollbar/
|
||||
License: MIT License
|
||||
License File: ThirdParty\License\PerfectScrollbar.license
|
|
@ -1,108 +0,0 @@
|
|||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2015
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia,
|
||||
* EU, LV-1021.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
using System;
|
||||
using System.Data;
|
||||
using System.Configuration;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Web.Security;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.HtmlControls;
|
||||
using System.Web.UI.WebControls;
|
||||
using System.Web.UI.WebControls.WebParts;
|
||||
using System.Xml.Linq;
|
||||
|
||||
public static class UrlBuilder
|
||||
{
|
||||
public static string UrlWithoutPath(HttpRequest oHttpRequest)
|
||||
{
|
||||
string sSiteUrl = "";
|
||||
try
|
||||
{
|
||||
string sHostHeader = oHttpRequest.Headers["Host"];
|
||||
string sForwardedHostHeader = oHttpRequest.Headers["X-Forwarded-Host"];
|
||||
string sForwardedProtoHeader = oHttpRequest.Headers["X-Forwarded-Proto"];
|
||||
|
||||
Uri oSiteUri = oHttpRequest.Url;
|
||||
|
||||
if (!String.IsNullOrEmpty(sForwardedProtoHeader))
|
||||
{
|
||||
sSiteUrl += sForwardedProtoHeader;
|
||||
}
|
||||
else
|
||||
{
|
||||
sSiteUrl += oSiteUri.Scheme;
|
||||
}
|
||||
|
||||
sSiteUrl += "://";
|
||||
|
||||
if (!String.IsNullOrEmpty(sForwardedHostHeader))
|
||||
{
|
||||
sSiteUrl += sForwardedHostHeader;
|
||||
}
|
||||
|
||||
else if (!String.IsNullOrEmpty(sHostHeader))
|
||||
{
|
||||
sSiteUrl += sHostHeader;
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
sSiteUrl += oSiteUri.Host;
|
||||
|
||||
if (-1 != oSiteUri.Port)
|
||||
sSiteUrl += ":" + oSiteUri.Port;
|
||||
}
|
||||
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
|
||||
return sSiteUrl;
|
||||
}
|
||||
public static string FullUrl(HttpRequest oHttpRequest)
|
||||
{
|
||||
string sSiteUrl = "";
|
||||
|
||||
try
|
||||
{
|
||||
sSiteUrl = UrlWithoutPath(oHttpRequest);
|
||||
sSiteUrl += oHttpRequest.Path;
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
|
||||
return sSiteUrl;
|
||||
}
|
||||
}
|
|
@ -1,157 +0,0 @@
|
|||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2015
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia,
|
||||
* EU, LV-1021.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Data;
|
||||
using System.Configuration;
|
||||
|
||||
namespace Odtff_fonts
|
||||
{
|
||||
public static class ZBase32Encoder
|
||||
{
|
||||
private const string EncodingTable = "ybndrfg8ejkmcpqxot1uwisza345h769";
|
||||
|
||||
private static readonly byte[] DecodingTable = new byte[128];
|
||||
|
||||
static ZBase32Encoder()
|
||||
{
|
||||
for (var i = 0; i < DecodingTable.Length; ++i)
|
||||
{
|
||||
DecodingTable[i] = byte.MaxValue;
|
||||
}
|
||||
|
||||
for (var i = 0; i < EncodingTable.Length; ++i)
|
||||
{
|
||||
DecodingTable[EncodingTable[i]] = (byte)i;
|
||||
}
|
||||
}
|
||||
|
||||
public static string Encode(byte[] data)
|
||||
{
|
||||
if (data == null)
|
||||
{
|
||||
throw new ArgumentNullException("data");
|
||||
}
|
||||
|
||||
var encodedResult = new StringBuilder((int)Math.Ceiling(data.Length * 8.0 / 5.0));
|
||||
|
||||
for (var i = 0; i < data.Length; i += 5)
|
||||
{
|
||||
var byteCount = Math.Min(5, data.Length - i);
|
||||
|
||||
ulong buffer = 0;
|
||||
for (var j = 0; j < byteCount; ++j)
|
||||
{
|
||||
buffer = (buffer << 8) | data[i + j];
|
||||
}
|
||||
|
||||
var bitCount = byteCount * 8;
|
||||
while (bitCount > 0)
|
||||
{
|
||||
var index = bitCount >= 5
|
||||
? (int)(buffer >> (bitCount - 5)) & 0x1f
|
||||
: (int)(buffer & (ulong)(0x1f >> (5 - bitCount))) << (5 - bitCount);
|
||||
|
||||
encodedResult.Append(EncodingTable[index]);
|
||||
bitCount -= 5;
|
||||
}
|
||||
}
|
||||
|
||||
return encodedResult.ToString();
|
||||
}
|
||||
|
||||
public static byte[] Decode(string data)
|
||||
{
|
||||
if (data == string.Empty)
|
||||
{
|
||||
return new byte[0];
|
||||
}
|
||||
|
||||
var result = new List<byte>((int)Math.Ceiling(data.Length * 5.0 / 8.0));
|
||||
|
||||
var index = new int[8];
|
||||
for (var i = 0; i < data.Length; )
|
||||
{
|
||||
i = CreateIndexByOctetAndMovePosition(ref data, i, ref index);
|
||||
|
||||
var shortByteCount = 0;
|
||||
ulong buffer = 0;
|
||||
for (var j = 0; j < 8 && index[j] != -1; ++j)
|
||||
{
|
||||
buffer = (buffer << 5) | (ulong)(DecodingTable[index[j]] & 0x1f);
|
||||
shortByteCount++;
|
||||
}
|
||||
|
||||
var bitCount = shortByteCount * 5;
|
||||
while (bitCount >= 8)
|
||||
{
|
||||
result.Add((byte)((buffer >> (bitCount - 8)) & 0xff));
|
||||
bitCount -= 8;
|
||||
}
|
||||
}
|
||||
|
||||
return result.ToArray();
|
||||
}
|
||||
|
||||
private static int CreateIndexByOctetAndMovePosition(ref string data, int currentPosition, ref int[] index)
|
||||
{
|
||||
var j = 0;
|
||||
while (j < 8)
|
||||
{
|
||||
if (currentPosition >= data.Length)
|
||||
{
|
||||
index[j++] = -1;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (IgnoredSymbol(data[currentPosition]))
|
||||
{
|
||||
currentPosition++;
|
||||
continue;
|
||||
}
|
||||
|
||||
index[j] = data[currentPosition];
|
||||
j++;
|
||||
currentPosition++;
|
||||
}
|
||||
|
||||
return currentPosition;
|
||||
}
|
||||
|
||||
private static bool IgnoredSymbol(char checkedSymbol)
|
||||
{
|
||||
return checkedSymbol >= DecodingTable.Length || DecodingTable[checkedSymbol] == byte.MaxValue;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,3 +0,0 @@
|
|||
<%@ WebHandler Language="C#" CodeBehind="CanvasService.ashx.cs" Class="DocService.CanvasService" %>
|
||||
|
||||
|
File diff suppressed because it is too large
Load diff
|
@ -1 +0,0 @@
|
|||
<%@ WebHandler Language="C#" CodeBehind="ConvertService.ashx.cs" Class="DocService.ConvertService" %>
|
|
@ -1,360 +0,0 @@
|
|||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2015
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia,
|
||||
* EU, LV-1021.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
|
||||
using System;
|
||||
using System.Net;
|
||||
using System.Configuration;
|
||||
using System.Web;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using System.Xml;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading;
|
||||
|
||||
using FileConverterUtils2;
|
||||
|
||||
using log4net;
|
||||
|
||||
namespace DocService
|
||||
{
|
||||
public class ConvertService : IHttpAsyncHandler
|
||||
{
|
||||
private readonly ILog _log = LogManager.GetLogger(typeof(ConvertService));
|
||||
|
||||
public IAsyncResult BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData)
|
||||
{
|
||||
TransportClassMainAshx oTransportClassMainAshx = new TransportClassMainAshx(context, cb);
|
||||
ErrorTypes eError = ErrorTypes.NoError;
|
||||
try
|
||||
{
|
||||
_log.Info("Starting process request...");
|
||||
_log.Info(context.Request.QueryString.ToString());
|
||||
|
||||
InputParams oInputParams = new InputParams();
|
||||
oInputParams.m_sKey = context.Request.QueryString["key"];
|
||||
oInputParams.m_svKey = context.Request.QueryString["vkey"];
|
||||
oInputParams.m_sUrl = context.Request.QueryString["url"];
|
||||
oInputParams.m_sEmbeddedfonts = context.Request.QueryString["embeddedfonts"];
|
||||
|
||||
int nIndexSep = oInputParams.m_sUrl.IndexOf(',');
|
||||
if (-1 != nIndexSep)
|
||||
oInputParams.m_sUrl = oInputParams.m_sUrl.Substring(0, nIndexSep);
|
||||
oInputParams.m_sTitle = context.Request.QueryString["title"];
|
||||
if (string.IsNullOrEmpty(oInputParams.m_sTitle))
|
||||
oInputParams.m_sTitle = "convert";
|
||||
oInputParams.m_sFiletype = context.Request.QueryString["filetype"];
|
||||
oInputParams.m_nOutputtype = FileFormats.FromString(context.Request.QueryString["outputtype"]);
|
||||
oInputParams.m_bAsyncConvert = Convert.ToBoolean(context.Request.QueryString["async"]);
|
||||
oInputParams.m_sCodepage = context.Request.QueryString["codePage"];
|
||||
oInputParams.m_sDelimiter = context.Request.QueryString["delimiter"];
|
||||
|
||||
if (ErrorTypes.NoError == eError)
|
||||
{
|
||||
ITaskResultInterface oTaskResult = TaskResult.NewTaskResult();
|
||||
TaskResultData oToAdd = new TaskResultData();
|
||||
|
||||
oInputParams.m_sKey = "conv_" + oInputParams.m_sKey;
|
||||
oToAdd.sKey = oInputParams.m_sKey;
|
||||
oToAdd.sFormat = oInputParams.m_sFiletype;
|
||||
oToAdd.eStatus = FileStatus.WaitQueue;
|
||||
oToAdd.sTitle = oInputParams.m_sTitle;
|
||||
TransportClass1 oTransportClass1 = new TransportClass1(oTransportClassMainAshx, oTaskResult, new CTaskQueue(), oInputParams);
|
||||
oTaskResult.GetOrCreateBegin(oInputParams.m_sKey, oToAdd, GetOrCreateCallback, oTransportClass1);
|
||||
}
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
eError = ErrorTypes.Unknown;
|
||||
|
||||
_log.Error(context.Request.QueryString.ToString());
|
||||
_log.Error("Exeption: ", e);
|
||||
}
|
||||
finally
|
||||
{
|
||||
if( ErrorTypes.NoError != eError )
|
||||
WriteOutputCommand(oTransportClassMainAshx, new OutputCommand(null, null, null, eError));
|
||||
}
|
||||
return new AsyncOperationData(extraData);
|
||||
}
|
||||
public void EndProcessRequest(IAsyncResult result)
|
||||
{
|
||||
}
|
||||
public void ProcessRequest(HttpContext context)
|
||||
{
|
||||
throw new InvalidOperationException();
|
||||
}
|
||||
|
||||
public bool IsReusable
|
||||
{
|
||||
get
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
private void WriteOutputCommand(TransportClassMainAshx oTransportClassMainAshx, OutputCommand oOutputCommand)
|
||||
{
|
||||
HttpContext oHttpContext = oTransportClassMainAshx.m_oHttpContext;
|
||||
AsyncCallback fAsyncCallback = oTransportClassMainAshx.m_oAsyncCallback;
|
||||
oHttpContext.Response.ContentType = "text/xml";
|
||||
oHttpContext.Response.Charset = "UTF-8";
|
||||
|
||||
string sXml = "<?xml version=\"1.0\" encoding=\"utf-8\"?><FileResult>";
|
||||
if (null != oOutputCommand.m_sFileUrl)
|
||||
sXml += string.Format("<FileUrl>{0}</FileUrl>", HttpUtility.HtmlEncode(oOutputCommand.m_sFileUrl));
|
||||
if (null != oOutputCommand.m_sPercent)
|
||||
sXml += string.Format("<Percent>{0}</Percent>", oOutputCommand.m_sPercent);
|
||||
if (true == oOutputCommand.m_bIsEndConvert.HasValue)
|
||||
sXml += string.Format("<EndConvert>{0}</EndConvert>", oOutputCommand.m_bIsEndConvert.Value.ToString());
|
||||
if (ErrorTypes.NoError != oOutputCommand.m_eError)
|
||||
sXml += string.Format("<Error>{0}</Error>", Utils.mapAscServerErrorToOldError(oOutputCommand.m_eError).ToString());
|
||||
sXml += "</FileResult>";
|
||||
|
||||
oHttpContext.Response.Write(sXml);
|
||||
|
||||
fAsyncCallback.Invoke(new AsyncOperationData(null));
|
||||
}
|
||||
private void GetOrCreateCallback(IAsyncResult ar)
|
||||
{
|
||||
TransportClass1 oTransportClass1 = ar.AsyncState as TransportClass1;
|
||||
try
|
||||
{
|
||||
TaskResultData oTaskResultData;
|
||||
bool bCreate;
|
||||
ErrorTypes eError = oTransportClass1.m_oTaskResult.GetOrCreateEnd(ar, out oTaskResultData, out bCreate);
|
||||
if (ErrorTypes.NoError == eError)
|
||||
{
|
||||
if(bCreate)
|
||||
{
|
||||
InputParams oInputParams = oTransportClass1.m_oInputParams;
|
||||
TaskQueueData oTaskQueueData = new TaskQueueData(oInputParams.m_sKey, oInputParams.m_nOutputtype, "output." + FileFormats.ToString(oInputParams.m_nOutputtype));
|
||||
oTaskQueueData.m_sFromUrl = oInputParams.m_sUrl;
|
||||
oTaskQueueData.m_sFromFormat = oInputParams.m_sFiletype;
|
||||
if (null != oInputParams.m_sDelimiter && string.Empty != oInputParams.m_sDelimiter)
|
||||
oTaskQueueData.m_nCsvDelimiter = int.Parse(oInputParams.m_sDelimiter);
|
||||
else
|
||||
oTaskQueueData.m_nCsvDelimiter = (int)CsvDelimiter.Comma;
|
||||
if (null != oInputParams.m_sCodepage && string.Empty != oInputParams.m_sCodepage)
|
||||
oTaskQueueData.m_nCsvTxtEncoding = int.Parse(oInputParams.m_sCodepage);
|
||||
else
|
||||
oTaskQueueData.m_nCsvTxtEncoding = Encoding.UTF8.CodePage;
|
||||
if ("true" == oInputParams.m_sEmbeddedfonts)
|
||||
oTaskQueueData.m_bEmbeddedFonts = true;
|
||||
oTransportClass1.m_oTaskQueue.AddTaskBegin(oTaskQueueData, Priority.Low, AddTaskCallback, oTransportClass1);
|
||||
}
|
||||
else
|
||||
CheckStatus(oTransportClass1, oTaskResultData);
|
||||
}
|
||||
else
|
||||
WriteOutputCommand(oTransportClass1, new OutputCommand(null, null, null, eError));
|
||||
}
|
||||
catch
|
||||
{
|
||||
WriteOutputCommand(oTransportClass1, new OutputCommand(null, null, null, ErrorTypes.Unknown));
|
||||
}
|
||||
}
|
||||
private void AddTaskCallback(IAsyncResult ar)
|
||||
{
|
||||
TransportClass1 oTransportClass1 = ar.AsyncState as TransportClass1;
|
||||
try
|
||||
{
|
||||
ErrorTypes eError = oTransportClass1.m_oTaskQueue.AddTaskEnd(ar);
|
||||
if (ErrorTypes.NoError == eError)
|
||||
{
|
||||
if (true == oTransportClass1.m_oInputParams.m_bAsyncConvert)
|
||||
WriteOutputCommand(oTransportClass1, new OutputCommand("", "0", false, ErrorTypes.NoError));
|
||||
else
|
||||
WaitEnd(oTransportClass1);
|
||||
}
|
||||
else
|
||||
WriteOutputCommand(oTransportClass1, new OutputCommand(null, null, null, eError));
|
||||
}
|
||||
catch
|
||||
{
|
||||
WriteOutputCommand(oTransportClass1, new OutputCommand(null, null, null, ErrorTypes.Unknown));
|
||||
}
|
||||
}
|
||||
private void CheckStatus(TransportClass1 oTransportClass1, TaskResultData oTaskResultData)
|
||||
{
|
||||
|
||||
switch (oTaskResultData.eStatus)
|
||||
{
|
||||
case FileStatus.Ok:
|
||||
string sFilename = HttpUtility.UrlEncode("output." + FileFormats.ToString(oTransportClass1.m_oInputParams.m_nOutputtype));
|
||||
string sPath = HttpUtility.UrlEncode(Path.GetFileNameWithoutExtension(oTransportClass1.m_oInputParams.m_sKey) + "/output." + FileFormats.ToString(oTransportClass1.m_oInputParams.m_nOutputtype));
|
||||
string sDeletePath = HttpUtility.UrlEncode(Path.GetFileNameWithoutExtension(oTransportClass1.m_oInputParams.m_sKey));
|
||||
|
||||
string sSiteUrl = UrlBuilder.UrlWithoutPath(oTransportClass1.m_oHttpContext.Request);
|
||||
|
||||
string strFileUrl = sSiteUrl + Constants.mc_sResourceServiceUrlRel + sPath + "&nocache=true" +"&deletepath=" + sDeletePath + "&filename=" + sFilename;
|
||||
WriteOutputCommand(oTransportClass1, new OutputCommand(strFileUrl, "100", true, ErrorTypes.NoError));
|
||||
break;
|
||||
case FileStatus.WaitQueue:
|
||||
if (oTransportClass1.m_oInputParams.m_bAsyncConvert)
|
||||
WriteOutputCommand(oTransportClass1, new OutputCommand("", "0", false, ErrorTypes.NoError));
|
||||
else
|
||||
WaitEnd(oTransportClass1);
|
||||
break;
|
||||
case FileStatus.Convert:
|
||||
if (oTransportClass1.m_oInputParams.m_bAsyncConvert)
|
||||
WriteOutputCommand(oTransportClass1, new OutputCommand("", oTaskResultData.nStatusInfo.ToString(), false, ErrorTypes.NoError));
|
||||
else
|
||||
WaitEnd(oTransportClass1);
|
||||
break;
|
||||
|
||||
case FileStatus.Err:
|
||||
case FileStatus.ErrToReload:
|
||||
AsyncClearCacheOperation oAsyncClearCacheOperation = new AsyncClearCacheOperation();
|
||||
TransportClass2 oTransportClass2 = new TransportClass2(oTransportClass1, oAsyncClearCacheOperation, (ErrorTypes)oTaskResultData.nStatusInfo);
|
||||
oAsyncClearCacheOperation.ClearCacheBegin(oTransportClass1.m_oInputParams.m_sKey, ClearCacheCallback, oTransportClass2);
|
||||
break;
|
||||
default:
|
||||
WriteOutputCommand(oTransportClass1, new OutputCommand(null, null, null, ErrorTypes.Unknown));
|
||||
break;
|
||||
}
|
||||
}
|
||||
private void WaitEnd(TransportClass1 oTransportClass1)
|
||||
{
|
||||
try
|
||||
{
|
||||
Timer oTimer = new Timer(WaitEndTimerCallback, oTransportClass1, TimeSpan.FromMilliseconds(-1), TimeSpan.FromMilliseconds(-1));
|
||||
oTransportClass1.m_oTimer = oTimer;
|
||||
oTimer.Change(TimeSpan.FromMilliseconds(1000), TimeSpan.FromMilliseconds(-1));
|
||||
}
|
||||
catch
|
||||
{
|
||||
WriteOutputCommand(oTransportClass1, new OutputCommand(null, null, null, ErrorTypes.Unknown));
|
||||
}
|
||||
}
|
||||
private void WaitEndTimerCallback(Object stateInfo)
|
||||
{
|
||||
TransportClass1 oTransportClass1 = stateInfo as TransportClass1;
|
||||
try
|
||||
{
|
||||
if (null != oTransportClass1.m_oTimer)
|
||||
oTransportClass1.m_oTimer.Dispose();
|
||||
oTransportClass1.m_oTaskResult.GetBegin(oTransportClass1.m_oInputParams.m_sKey, WaitEndCallback, oTransportClass1);
|
||||
}
|
||||
catch
|
||||
{
|
||||
WriteOutputCommand(oTransportClass1, new OutputCommand(null, null, null, ErrorTypes.Unknown));
|
||||
}
|
||||
}
|
||||
private void WaitEndCallback(IAsyncResult ar)
|
||||
{
|
||||
TransportClass1 oTransportClass1 = ar.AsyncState as TransportClass1;
|
||||
try
|
||||
{
|
||||
TaskResultData oTaskResultData;
|
||||
ErrorTypes eError = oTransportClass1.m_oTaskResult.GetEnd(ar, out oTaskResultData);
|
||||
if (ErrorTypes.NoError == eError)
|
||||
CheckStatus(oTransportClass1, oTaskResultData);
|
||||
else
|
||||
WriteOutputCommand(oTransportClass1, new OutputCommand(null, null, null, eError));
|
||||
}
|
||||
catch
|
||||
{
|
||||
WriteOutputCommand(oTransportClass1, new OutputCommand(null, null, null, ErrorTypes.Unknown));
|
||||
}
|
||||
}
|
||||
private void ClearCacheCallback(IAsyncResult ar)
|
||||
{
|
||||
TransportClass2 oTransportClass2 = ar.AsyncState as TransportClass2;
|
||||
try
|
||||
{
|
||||
ErrorTypes eError = oTransportClass2.m_oAsyncClearCacheOperation.ClearCacheEnd(ar);
|
||||
if (ErrorTypes.NoError == eError)
|
||||
{
|
||||
WriteOutputCommand(oTransportClass2, new OutputCommand(null, null, null, oTransportClass2.m_eError));
|
||||
}
|
||||
else
|
||||
WriteOutputCommand(oTransportClass2, new OutputCommand(null, null, null, eError));
|
||||
}
|
||||
catch
|
||||
{
|
||||
WriteOutputCommand(oTransportClass2, new OutputCommand(null, null, null, ErrorTypes.Unknown));
|
||||
}
|
||||
}
|
||||
private class TransportClass1 : TransportClassMainAshx
|
||||
{
|
||||
public ITaskResultInterface m_oTaskResult;
|
||||
public CTaskQueue m_oTaskQueue;
|
||||
public InputParams m_oInputParams;
|
||||
public Timer m_oTimer;
|
||||
public TransportClass1(TransportClassMainAshx oTransportClassMainAshx, ITaskResultInterface oTaskResult, CTaskQueue oTaskQueue, InputParams oInputParams)
|
||||
: base(oTransportClassMainAshx.m_oHttpContext, oTransportClassMainAshx.m_oAsyncCallback)
|
||||
{
|
||||
m_oTaskResult = oTaskResult;
|
||||
m_oInputParams = oInputParams;
|
||||
m_oTaskQueue = oTaskQueue;
|
||||
m_oTimer = null;
|
||||
}
|
||||
}
|
||||
private class TransportClass2 : TransportClassMainAshx
|
||||
{
|
||||
public AsyncClearCacheOperation m_oAsyncClearCacheOperation;
|
||||
public ErrorTypes m_eError;
|
||||
public TransportClass2(TransportClassMainAshx oTransportClassMainAshx, AsyncClearCacheOperation oAsyncClearCacheOperation, ErrorTypes eError)
|
||||
: base(oTransportClassMainAshx.m_oHttpContext, oTransportClassMainAshx.m_oAsyncCallback)
|
||||
{
|
||||
m_oAsyncClearCacheOperation = oAsyncClearCacheOperation;
|
||||
m_eError = eError;
|
||||
}
|
||||
}
|
||||
private class InputParams
|
||||
{
|
||||
public string m_sKey;
|
||||
public string m_svKey;
|
||||
public string m_sUrl;
|
||||
public string m_sTitle;
|
||||
public string m_sFiletype;
|
||||
public int m_nOutputtype;
|
||||
public bool m_bAsyncConvert;
|
||||
public string m_sEmbeddedfonts;
|
||||
public string m_sCodepage;
|
||||
public string m_sDelimiter;
|
||||
}
|
||||
private class OutputCommand
|
||||
{
|
||||
public string m_sFileUrl;
|
||||
public string m_sPercent;
|
||||
public bool? m_bIsEndConvert;
|
||||
public ErrorTypes m_eError;
|
||||
public OutputCommand(string strFileUrl, string strPercent, bool? bIsEndConvert, ErrorTypes eError)
|
||||
{
|
||||
m_sFileUrl = strFileUrl;
|
||||
m_sPercent = strPercent;
|
||||
m_bIsEndConvert = bIsEndConvert;
|
||||
m_eError = eError;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,174 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProductVersion>
|
||||
</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{6060D154-28A8-4E13-88A8-B82B02FDCA44}</ProjectGuid>
|
||||
<ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>DocService</RootNamespace>
|
||||
<AssemblyName>DocService</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
|
||||
<UseIISExpress>true</UseIISExpress>
|
||||
<IISExpressSSLPort />
|
||||
<IISExpressAnonymousAuthentication />
|
||||
<IISExpressWindowsAuthentication />
|
||||
<IISExpressUseClassicPipelineMode />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>Bin\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>none</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>Bin\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="ASC.Core.Common, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>Bin\ASC.Core.Common.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AWSSDK, Version=1.5.2.2, Culture=neutral, PublicKeyToken=cd2d24cd2bace800, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>Bin\AWSSDK.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Enyim.Caching, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>Bin\Enyim.Caching.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="FileConverterUtils2, Version=1.0.0.131, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>Bin\FileConverterUtils2.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Ionic.Zip.Reduced, Version=1.9.1.5, Culture=neutral, PublicKeyToken=edbe51ad942a3f5c, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>Bin\Ionic.Zip.Reduced.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>Bin\log4net.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="OpenMcdf, Version=1.5.4.22637, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>Bin\OpenMcdf.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Runtime.Serialization" />
|
||||
<Reference Include="System.Web.DynamicData" />
|
||||
<Reference Include="System.Web.Entity" />
|
||||
<Reference Include="System.Web.ApplicationServices" />
|
||||
<Reference Include="System.ComponentModel.DataAnnotations" />
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="System.Web.Extensions" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Web" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="System.Configuration" />
|
||||
<Reference Include="System.Web.Services" />
|
||||
<Reference Include="System.EnterpriseServices" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="Default.aspx" />
|
||||
<Content Include="Global.asax" />
|
||||
<None Include="Properties\PublishProfiles\Deploy.pubxml" />
|
||||
<Content Include="Web.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="App_Code\DocServiceUtils.cs" />
|
||||
<Compile Include="App_Code\ZBase32Encoder.cs" />
|
||||
<Compile Include="CanvasService.ashx.cs">
|
||||
<DependentUpon>CanvasService.ashx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="ConvertService.ashx.cs">
|
||||
<DependentUpon>ConvertService.ashx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="fileDownloader.ashx.cs">
|
||||
<DependentUpon>fileDownloader.ashx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="FileUploader.ashx.cs">
|
||||
<DependentUpon>FileUploader.ashx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="FontService.ashx.cs">
|
||||
<DependentUpon>FontService.ashx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Global.asax.cs">
|
||||
<DependentUpon>Global.asax</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="ResourceService.ashx.cs">
|
||||
<DependentUpon>ResourceService.ashx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="TrackingService.ashx.cs">
|
||||
<DependentUpon>TrackingService.ashx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="UploadService.ashx.cs">
|
||||
<DependentUpon>UploadService.ashx</DependentUpon>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="CanvasService.ashx" />
|
||||
<Content Include="ConvertService.ashx" />
|
||||
<Content Include="fileDownloader.ashx" />
|
||||
<Content Include="FileUploader.ashx" />
|
||||
<Content Include="FontService.ashx" />
|
||||
<Content Include="ResourceService.ashx" />
|
||||
<Content Include="TrackingService.ashx" />
|
||||
<Content Include="UploadService.ashx" />
|
||||
<None Include="Web.Debug.config">
|
||||
<DependentUpon>Web.config</DependentUpon>
|
||||
</None>
|
||||
<None Include="Web.Release.config">
|
||||
<DependentUpon>Web.config</DependentUpon>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
<PropertyGroup>
|
||||
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
|
||||
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
|
||||
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
|
||||
<ProjectExtensions>
|
||||
<VisualStudio>
|
||||
<FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
|
||||
<WebProjectProperties>
|
||||
<UseIIS>True</UseIIS>
|
||||
<AutoAssignPort>True</AutoAssignPort>
|
||||
<DevelopmentServerPort>54956</DevelopmentServerPort>
|
||||
<DevelopmentServerVPath>/</DevelopmentServerVPath>
|
||||
<IISUrl>http://localhost:54956/</IISUrl>
|
||||
<NTLMAuthentication>False</NTLMAuthentication>
|
||||
<UseCustomServer>False</UseCustomServer>
|
||||
<CustomServerUrl>
|
||||
</CustomServerUrl>
|
||||
<SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
|
||||
</WebProjectProperties>
|
||||
</FlavorProperties>
|
||||
</VisualStudio>
|
||||
</ProjectExtensions>
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
|
@ -1 +0,0 @@
|
|||
<%@ WebHandler Language="C#" CodeBehind="FileUploader.ashx.cs" Class="DocService.FileUploader" %>
|
|
@ -1,205 +0,0 @@
|
|||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2015
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia,
|
||||
* EU, LV-1021.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
|
||||
using System;
|
||||
using System.Net;
|
||||
using System.Configuration;
|
||||
using System.Web;
|
||||
using System.IO;
|
||||
using System.Xml;
|
||||
using System.Collections.Generic;
|
||||
using System.Web.Script.Serialization;
|
||||
using System.Collections.Specialized;
|
||||
|
||||
using FileConverterUtils2;
|
||||
|
||||
using log4net;
|
||||
|
||||
namespace DocService
|
||||
{
|
||||
public class FileUploader : IHttpAsyncHandler
|
||||
{
|
||||
private readonly ILog _log = LogManager.GetLogger(typeof(FileUploader));
|
||||
|
||||
public IAsyncResult BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData)
|
||||
{
|
||||
bool bStartAsync = false;
|
||||
ErrorTypes eError = ErrorTypes.Unknown;
|
||||
try
|
||||
{
|
||||
_log.Info("Starting process request...");
|
||||
_log.Info(context.Request.QueryString.ToString());
|
||||
|
||||
string vKey = context.Request.QueryString["vkey"];
|
||||
string sKey = context.Request.QueryString["key"];
|
||||
|
||||
if (null != sKey && false == string.IsNullOrEmpty(sKey))
|
||||
{
|
||||
eError = ErrorTypes.NoError;
|
||||
|
||||
if (ErrorTypes.NoError == eError)
|
||||
{
|
||||
bStartAsync = true;
|
||||
Storage oStorage = new Storage();
|
||||
string sTempKey = "temp_" + sKey;
|
||||
string sFilename = sKey + ".tmp";
|
||||
string sPath = sTempKey + "/" + sFilename;
|
||||
AsyncContextReadOperation asynch = new AsyncContextReadOperation();
|
||||
TransportClass oTransportClass = new TransportClass(context, cb, oStorage, asynch, sPath, sTempKey, sFilename);
|
||||
asynch.ReadContextBegin(context.Request.InputStream, ReadContextCallback, oTransportClass);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
eError = ErrorTypes.Unknown;
|
||||
|
||||
_log.Error(context.Request.QueryString.ToString());
|
||||
_log.Error("Exeption: ", e);
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (ErrorTypes.NoError != eError)
|
||||
writeXml(context, null, null, null, eError);
|
||||
}
|
||||
|
||||
TransportClass oTempTransportClass = new TransportClass(context, cb, null, null, null, null, null);
|
||||
if (false == bStartAsync)
|
||||
cb(new AsyncOperationData(oTempTransportClass));
|
||||
return new AsyncOperationData(oTempTransportClass);
|
||||
}
|
||||
public void EndProcessRequest(IAsyncResult result)
|
||||
{
|
||||
}
|
||||
public void ProcessRequest(HttpContext context)
|
||||
{
|
||||
throw new InvalidOperationException();
|
||||
}
|
||||
|
||||
public bool IsReusable {
|
||||
get {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
private void ReadContextCallback(IAsyncResult result)
|
||||
{
|
||||
TransportClass oTransportClass = result.AsyncState as TransportClass;
|
||||
try
|
||||
{
|
||||
oTransportClass.m_oAsyncContextRead.ReadContextEnd(result);
|
||||
oTransportClass.m_oAsyncContextRead.m_aOutput.Position = 0;
|
||||
oTransportClass.m_oStorage.WriteFileBegin(oTransportClass.m_sPath, oTransportClass.m_oAsyncContextRead.m_aOutput, WriteFileCallback, oTransportClass);
|
||||
}
|
||||
catch
|
||||
{
|
||||
writeXml(oTransportClass.m_oContext, null, null, null, ErrorTypes.StorageWrite);
|
||||
oTransportClass.m_oCallback(new AsyncOperationData(oTransportClass));
|
||||
}
|
||||
}
|
||||
private void WriteFileCallback(IAsyncResult result)
|
||||
{
|
||||
TransportClass oTransportClass = result.AsyncState as TransportClass;
|
||||
try
|
||||
{
|
||||
int nWriteBytes;
|
||||
ErrorTypes eError = oTransportClass.m_oStorage.WriteFileEnd(result, out nWriteBytes);
|
||||
if (ErrorTypes.NoError == eError)
|
||||
{
|
||||
string sSiteUrl = UrlBuilder.UrlWithoutPath(oTransportClass.m_oContext.Request);
|
||||
string sFileUrl = sSiteUrl + Constants.mc_sResourceServiceUrlRel + HttpUtility.UrlEncode(oTransportClass.m_sPath) + "&nocache=true" + "&deletepath=" + HttpUtility.UrlEncode(oTransportClass.m_sDeletePath) + "&filename=" + HttpUtility.UrlEncode(oTransportClass.m_sFilename);
|
||||
writeXml(oTransportClass.m_oContext, sFileUrl, "100", true, null);
|
||||
}
|
||||
else
|
||||
writeXml(oTransportClass.m_oContext, null, null, null, eError);
|
||||
oTransportClass.m_oCallback(new AsyncOperationData(oTransportClass));
|
||||
}
|
||||
catch
|
||||
{
|
||||
writeXml(oTransportClass.m_oContext, null, null, null, ErrorTypes.StorageWrite);
|
||||
oTransportClass.m_oCallback(new AsyncOperationData(oTransportClass));
|
||||
}
|
||||
}
|
||||
private void writeXml(HttpContext context, string strFileUrl, string strPercent, bool? bIsEndConvert, ErrorTypes? eError)
|
||||
{
|
||||
XmlDocument oDoc = new XmlDocument();
|
||||
XmlElement oRootElem = oDoc.CreateElement("FileResult");
|
||||
oDoc.AppendChild(oRootElem);
|
||||
if (null != strFileUrl)
|
||||
{
|
||||
XmlElement oFileUrl = oDoc.CreateElement("FileUrl");
|
||||
|
||||
oFileUrl.InnerText = strFileUrl;
|
||||
oRootElem.AppendChild(oFileUrl);
|
||||
}
|
||||
if (null != strPercent)
|
||||
{
|
||||
XmlElement oPercent = oDoc.CreateElement("Percent");
|
||||
oPercent.InnerText = strPercent;
|
||||
oRootElem.AppendChild(oPercent);
|
||||
}
|
||||
if (bIsEndConvert.HasValue)
|
||||
{
|
||||
XmlElement oEndConvert = oDoc.CreateElement("EndConvert");
|
||||
oEndConvert.InnerText = bIsEndConvert.Value.ToString();
|
||||
oRootElem.AppendChild(oEndConvert);
|
||||
}
|
||||
if (eError.HasValue)
|
||||
{
|
||||
XmlElement oError = oDoc.CreateElement("Error");
|
||||
oError.InnerText = Utils.mapAscServerErrorToOldError(eError.Value).ToString();
|
||||
oRootElem.AppendChild(oError);
|
||||
}
|
||||
oDoc.Save(context.Response.Output);
|
||||
context.Response.ContentType = "text/xml";
|
||||
}
|
||||
private class TransportClass
|
||||
{
|
||||
public HttpContext m_oContext;
|
||||
public AsyncCallback m_oCallback;
|
||||
public Storage m_oStorage;
|
||||
public AsyncContextReadOperation m_oAsyncContextRead;
|
||||
public string m_sPath;
|
||||
public string m_sDeletePath;
|
||||
public string m_sFilename;
|
||||
public TransportClass(HttpContext oContext, AsyncCallback oCallback, Storage oStorage, AsyncContextReadOperation oAsyncContextRead, string sPath, string sDeletePath, string sFilename)
|
||||
{
|
||||
m_oContext = oContext;
|
||||
m_oCallback = oCallback;
|
||||
m_oStorage = oStorage;
|
||||
m_oAsyncContextRead = oAsyncContextRead;
|
||||
m_sPath = sPath;
|
||||
m_sDeletePath = sDeletePath;
|
||||
m_sFilename = sFilename;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1 +0,0 @@
|
|||
<%@ WebHandler Language="C#" CodeBehind="FontService.ashx.cs" Class="DocService.FontService" %>
|
|
@ -1,364 +0,0 @@
|
|||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2015
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia,
|
||||
* EU, LV-1021.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
using System;
|
||||
using System.Net;
|
||||
using System.Configuration;
|
||||
using System.Web;
|
||||
using System.Web.Routing;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using System.Linq;
|
||||
using System.Collections.Generic;
|
||||
|
||||
using Microsoft.Win32;
|
||||
|
||||
using FileConverterUtils2;
|
||||
|
||||
using log4net;
|
||||
|
||||
namespace DocService
|
||||
{
|
||||
public class FontServiceRoute : IRouteHandler
|
||||
{
|
||||
public IHttpHandler GetHttpHandler(RequestContext requestContext)
|
||||
{
|
||||
return new FontService(requestContext);
|
||||
}
|
||||
}
|
||||
|
||||
public class FontService : IHttpAsyncHandler
|
||||
{
|
||||
private const string gc_sJsExtention = ".js";
|
||||
private readonly ILog _log = LogManager.GetLogger(typeof(FontServiceRoute));
|
||||
private string m_sFontName = null;
|
||||
private readonly static System.Collections.Generic.Dictionary<string, string> m_mapFontNameToFullPath;
|
||||
static FontService()
|
||||
{
|
||||
m_mapFontNameToFullPath = new System.Collections.Generic.Dictionary<string, string>();
|
||||
|
||||
string sConfigFontDir = ConfigurationManager.AppSettings["utils.common.fontdir"];
|
||||
|
||||
if (null != sConfigFontDir && string.Empty != sConfigFontDir)
|
||||
{
|
||||
string sConfigSearchPattern = ConfigurationSettings.AppSettings["utils.fonts.search_patterns"] ?? "*.ttf;*.ttc;*.otf";
|
||||
InitFontMapByFolder(sConfigFontDir, sConfigSearchPattern);
|
||||
}
|
||||
else
|
||||
{
|
||||
InitFontMapBySysFont();
|
||||
}
|
||||
|
||||
}
|
||||
static private void InitFontMapBySysFont()
|
||||
{
|
||||
|
||||
DirectoryInfo dirWindowsFolder = Directory.GetParent(Environment.GetFolderPath(Environment.SpecialFolder.System));
|
||||
string sWinFontDir = Path.Combine(dirWindowsFolder.FullName, "Fonts");
|
||||
RegistryKey key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts");
|
||||
if (null == key)
|
||||
key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Fonts");
|
||||
if (null != key)
|
||||
{
|
||||
string[] aValues = key.GetValueNames();
|
||||
for (int i = 0, length = aValues.Length; i < length; i++)
|
||||
{
|
||||
string sCurPath = key.GetValue(aValues[i]) as string;
|
||||
if (null != sCurPath && !string.IsNullOrEmpty(sCurPath))
|
||||
{
|
||||
if (Path.IsPathRooted(sCurPath))
|
||||
m_mapFontNameToFullPath[Path.GetFileName(sCurPath).ToUpper()] = sCurPath;
|
||||
else
|
||||
m_mapFontNameToFullPath[sCurPath.ToUpper()] = Path.Combine(sWinFontDir, sCurPath);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
static private void InitFontMapByFolder(string sConfigFontDir, string sConfigSearchPattern)
|
||||
{
|
||||
string sFontDir = Environment.ExpandEnvironmentVariables(sConfigFontDir);
|
||||
|
||||
char[] aDelemiters = { '|', ',', ';' };
|
||||
List<string> aSearchPatterns = (sConfigSearchPattern.Split(
|
||||
aDelemiters, StringSplitOptions.RemoveEmptyEntries)).ToList();
|
||||
|
||||
string[] aFontFiles = { };
|
||||
foreach (string sSearchPattern in aSearchPatterns)
|
||||
{
|
||||
|
||||
aFontFiles = aFontFiles.Concat(Directory.GetFiles(
|
||||
sFontDir, sSearchPattern, SearchOption.AllDirectories)).ToArray();
|
||||
}
|
||||
|
||||
foreach (string sFontFile in aFontFiles)
|
||||
{
|
||||
try
|
||||
{
|
||||
m_mapFontNameToFullPath.Add(
|
||||
Path.GetFileName(sFontFile).ToUpper(), sFontFile);
|
||||
}
|
||||
catch (ArgumentException)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
public FontService(RequestContext context)
|
||||
{
|
||||
m_sFontName = Convert.ToString(context.RouteData.Values["fontname"]);
|
||||
}
|
||||
|
||||
public IAsyncResult BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData)
|
||||
{
|
||||
bool bStartAsync = false;
|
||||
try
|
||||
{
|
||||
_log.Info("Starting process request...");
|
||||
_log.Info("fontname: " + m_sFontName);
|
||||
|
||||
string sNameToDecode;
|
||||
if (m_sFontName.Length > gc_sJsExtention.Length && gc_sJsExtention == m_sFontName.Substring(m_sFontName.Length - gc_sJsExtention.Length))
|
||||
sNameToDecode = m_sFontName.Substring(0, m_sFontName.Length - gc_sJsExtention.Length);
|
||||
else
|
||||
sNameToDecode = m_sFontName;
|
||||
byte[] data_decode = Odtff_fonts.ZBase32Encoder.Decode(sNameToDecode);
|
||||
string sFontNameDecoded = System.Text.Encoding.UTF8.GetString(data_decode);
|
||||
_log.Info("fontnameDecoded: " + sFontNameDecoded);
|
||||
|
||||
context.Response.Clear();
|
||||
context.Response.Cache.SetExpires(DateTime.Now.AddMinutes(double.Parse(ConfigurationManager.AppSettings["resource.expires"], Constants.mc_oCultureInfo)));
|
||||
context.Response.Cache.SetSlidingExpiration(false);
|
||||
context.Response.Cache.SetCacheability(HttpCacheability.Public);
|
||||
context.Response.ContentType = Utils.GetMimeType(sFontNameDecoded);
|
||||
string contentDisposition = Utils.GetContentDisposition(context.Request.UserAgent, context.Request.Browser.Browser, context.Request.Browser.Version, m_sFontName);
|
||||
context.Response.AppendHeader("Content-Disposition", contentDisposition);
|
||||
|
||||
string sRealFontName = sFontNameDecoded;
|
||||
if (gc_sJsExtention == Path.GetExtension(sRealFontName))
|
||||
sRealFontName = sRealFontName.Substring(0, sRealFontName.Length - gc_sJsExtention.Length);
|
||||
|
||||
string strFilepath;
|
||||
m_mapFontNameToFullPath.TryGetValue(sRealFontName.ToUpper(), out strFilepath);
|
||||
|
||||
FileInfo oFileInfo = new FileInfo(strFilepath);
|
||||
if (oFileInfo.Exists)
|
||||
{
|
||||
DateTime oLastModified = oFileInfo.LastWriteTimeUtc;
|
||||
string sETag = oLastModified.Ticks.ToString("x");
|
||||
|
||||
DateTime oDateTimeUtcNow = DateTime.UtcNow;
|
||||
|
||||
if (oLastModified.CompareTo(oDateTimeUtcNow) > 0)
|
||||
{
|
||||
_log.DebugFormat("LastModifiedTimeStamp changed from {0} to {1}", oLastModified, oDateTimeUtcNow);
|
||||
oLastModified = oDateTimeUtcNow;
|
||||
}
|
||||
|
||||
string sRequestIfModifiedSince = context.Request.Headers["If-Modified-Since"];
|
||||
string sRequestETag = context.Request.Headers["If-None-Match"];
|
||||
bool bNoModify = false;
|
||||
if (false == string.IsNullOrEmpty(sRequestETag) || false == string.IsNullOrEmpty(sRequestIfModifiedSince))
|
||||
{
|
||||
bool bRequestETag = true;
|
||||
if (false == string.IsNullOrEmpty(sRequestETag) && sRequestETag != sETag)
|
||||
bRequestETag = false;
|
||||
bool bRequestIfModifiedSince = true;
|
||||
if (false == string.IsNullOrEmpty(sRequestIfModifiedSince))
|
||||
{
|
||||
try
|
||||
{
|
||||
DateTime oRequestIfModifiedSince = DateTime.ParseExact(sRequestIfModifiedSince, "R", System.Globalization.CultureInfo.InvariantCulture);
|
||||
if ((oRequestIfModifiedSince - oLastModified).TotalSeconds > 1)
|
||||
bRequestIfModifiedSince = false;
|
||||
}
|
||||
catch
|
||||
{
|
||||
bRequestIfModifiedSince = false;
|
||||
}
|
||||
}
|
||||
if (bRequestETag && bRequestIfModifiedSince)
|
||||
{
|
||||
context.Response.StatusCode = (int)HttpStatusCode.NotModified;
|
||||
bNoModify = true;
|
||||
}
|
||||
}
|
||||
if (false == bNoModify)
|
||||
{
|
||||
context.Response.Cache.SetETag(sETag);
|
||||
|
||||
context.Response.Cache.SetLastModified(oLastModified.ToLocalTime());
|
||||
|
||||
FileStream oFileStreamInput = new FileStream(strFilepath, FileMode.Open, FileAccess.Read, FileShare.Read, (int)oFileInfo.Length, true);
|
||||
byte[] aBuffer = new byte[oFileStreamInput.Length];
|
||||
TransportClass oTransportClass = new TransportClass(context, cb, oFileStreamInput, aBuffer, sFontNameDecoded);
|
||||
oFileStreamInput.BeginRead(aBuffer, 0, aBuffer.Length, ReadFileCallback, oTransportClass);
|
||||
bStartAsync = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
context.Response.StatusCode = (int)HttpStatusCode.BadRequest;
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
context.Response.StatusCode = (int)HttpStatusCode.BadRequest;
|
||||
|
||||
_log.Error(context.Request.QueryString.ToString());
|
||||
_log.Error("Exeption catched in BeginProcessRequest:", e);
|
||||
}
|
||||
TransportClass oTempTransportClass = new TransportClass(context, cb, null, null, null);
|
||||
if (false == bStartAsync)
|
||||
cb(new AsyncOperationData(oTempTransportClass));
|
||||
return new AsyncOperationData(oTempTransportClass);
|
||||
}
|
||||
public void EndProcessRequest(IAsyncResult result)
|
||||
{
|
||||
}
|
||||
public void ProcessRequest(HttpContext context)
|
||||
{
|
||||
throw new InvalidOperationException();
|
||||
}
|
||||
|
||||
public bool IsReusable
|
||||
{
|
||||
get
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
private void ReadFileCallback(IAsyncResult result)
|
||||
{
|
||||
TransportClass oTransportClass = result.AsyncState as TransportClass;
|
||||
HttpContext context = oTransportClass.m_oContext;
|
||||
try
|
||||
{
|
||||
FileStream oFileStreamInput = oTransportClass.m_oFileStreamInput;
|
||||
oTransportClass.nReadWriteBytes = oFileStreamInput.EndRead(result);
|
||||
oFileStreamInput.Dispose();
|
||||
if (oTransportClass.nReadWriteBytes <= 0)
|
||||
{
|
||||
context.Response.StatusCode = (int)HttpStatusCode.BadRequest;
|
||||
oTransportClass.m_oCallback(new AsyncOperationData(oTransportClass));
|
||||
}
|
||||
else
|
||||
{
|
||||
byte[] aOutput = null;
|
||||
if (gc_sJsExtention == Path.GetExtension(oTransportClass.m_sFontNameDecoded))
|
||||
{
|
||||
aOutput = GetJsContent(oTransportClass.m_aBuffer, oTransportClass.m_sFontNameDecoded.Substring(0, oTransportClass.m_sFontNameDecoded.Length - gc_sJsExtention.Length));
|
||||
oTransportClass.nReadWriteBytes = aOutput.Length;
|
||||
}
|
||||
else
|
||||
{
|
||||
aOutput = oTransportClass.m_aBuffer;
|
||||
byte[] guidOdttf = {0xA0, 0x66, 0xD6, 0x20, 0x14, 0x96, 0x47, 0xfa, 0x95, 0x69, 0xB8, 0x50, 0xB0, 0x41, 0x49, 0x48};
|
||||
|
||||
int nMaxLen = Math.Min(32, aOutput.Length);
|
||||
for (int i = 0; i < nMaxLen; ++i)
|
||||
aOutput[i] ^= guidOdttf[i % 16];
|
||||
}
|
||||
context.Response.OutputStream.BeginWrite(aOutput, 0, aOutput.Length, WriteBufferCallback, oTransportClass);
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
context.Response.StatusCode = (int)HttpStatusCode.BadRequest;
|
||||
oTransportClass.m_oCallback(new AsyncOperationData(oTransportClass));
|
||||
|
||||
_log.Error("Exception catched in ReadFileCallback:", e);
|
||||
}
|
||||
}
|
||||
private void WriteBufferCallback(IAsyncResult result)
|
||||
{
|
||||
TransportClass oTransportClass = result.AsyncState as TransportClass;
|
||||
HttpContext context = oTransportClass.m_oContext;
|
||||
try
|
||||
{
|
||||
context.Response.OutputStream.EndWrite(result);
|
||||
context.Response.AppendHeader("Content-Length", oTransportClass.nReadWriteBytes.ToString());
|
||||
context.Response.StatusCode = (int)HttpStatusCode.OK;
|
||||
}
|
||||
catch (HttpException httpEx)
|
||||
{
|
||||
_log.Error("HttpException catched in WriteBufferCallback:", httpEx);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
_log.Error("Exception catched in WriteBufferCallback:", e);
|
||||
|
||||
context.Response.StatusCode = (int)HttpStatusCode.BadRequest;
|
||||
}
|
||||
try
|
||||
{
|
||||
if (context.Response.IsClientConnected)
|
||||
{
|
||||
context.Response.Flush();
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
_log.Error("Exception catched in WriteBufferCallback, while response end:", e);
|
||||
}
|
||||
finally
|
||||
{
|
||||
try
|
||||
{
|
||||
oTransportClass.m_oCallback(new AsyncOperationData(oTransportClass));
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
_log.Error("Exception catched in WriteBufferCallback, while callback:", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
private byte[] GetJsContent(byte[] aBuffer, string sFilename)
|
||||
{
|
||||
string data = Convert.ToBase64String(aBuffer);
|
||||
string sRes = string.Format("window[\"{0}\"] = \"{1};{2}\";", sFilename, aBuffer.Length, data);
|
||||
return Encoding.UTF8.GetBytes(sRes);
|
||||
}
|
||||
private class TransportClass
|
||||
{
|
||||
public HttpContext m_oContext;
|
||||
public AsyncCallback m_oCallback;
|
||||
public FileStream m_oFileStreamInput;
|
||||
public byte[] m_aBuffer;
|
||||
public int nReadWriteBytes;
|
||||
public string m_sFontNameDecoded;
|
||||
public TransportClass(HttpContext oContext, AsyncCallback oCallback, FileStream oFileStreamInput, byte[] aBuffer, string sFontNameDecoded)
|
||||
{
|
||||
m_oContext = oContext;
|
||||
m_oCallback = oCallback;
|
||||
m_oFileStreamInput = oFileStreamInput;
|
||||
m_aBuffer = aBuffer;
|
||||
m_sFontNameDecoded = sFontNameDecoded;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1 +0,0 @@
|
|||
<%@ Application Codebehind="Global.asax.cs" Inherits="DocService.Global" Language="C#" %>
|
|
@ -1,103 +0,0 @@
|
|||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2015
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia,
|
||||
* EU, LV-1021.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Threading;
|
||||
using System.Collections.Generic;
|
||||
using System.Web.Routing;
|
||||
using log4net.Config;
|
||||
using FileConverterUtils2;
|
||||
using System.Configuration;
|
||||
using System.Web;
|
||||
|
||||
namespace DocService
|
||||
{
|
||||
public class Global : System.Web.HttpApplication
|
||||
{
|
||||
static public Object lockThis = new Object();
|
||||
|
||||
public static void RegisterRoutes(RouteCollection routes)
|
||||
{
|
||||
string sRoute = ConfigurationSettings.AppSettings["fonts.route"] ?? "fonts/";
|
||||
routes.Add(new Route(sRoute + "native/{fontname}", new FontServiceRoute()));
|
||||
routes.Add(new Route(sRoute + "js/{fontname}", new FontServiceRoute()));
|
||||
routes.Add(new Route(sRoute + "odttf/{fontname}", new FontServiceRoute()));
|
||||
}
|
||||
|
||||
void Application_Start(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
System.Diagnostics.Debug.Print("Application_Start() fired!" + sender.ToString());
|
||||
|
||||
try
|
||||
{
|
||||
XmlConfigurator.Configure();
|
||||
}
|
||||
catch(Exception ex)
|
||||
{
|
||||
}
|
||||
|
||||
RegisterRoutes(RouteTable.Routes);
|
||||
|
||||
}
|
||||
|
||||
void Application_End(object sender, EventArgs e)
|
||||
{
|
||||
System.Diagnostics.Debug.Print("Application_End() fired!" + sender.ToString());
|
||||
}
|
||||
|
||||
void Application_Error(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void Session_Start(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void Session_End(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void CurrentDomain_AssemblyLoad(object sender, AssemblyLoadEventArgs args)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void Application_BeginRequest(Object sender, EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,50 +0,0 @@
|
|||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2015
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia,
|
||||
* EU, LV-1021.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
[assembly: AssemblyTitle("DocService")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("DocService")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2015")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
[assembly: Guid("868e7a06-b2c6-4e64-b900-b63bc55098ba")]
|
||||
|
||||
[assembly: AssemblyVersion("1.0.0.2")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.2")]
|
|
@ -1,2 +0,0 @@
|
|||
<%@ WebHandler Language="C#" CodeBehind="ResourceService.ashx.cs" Class="DocService.ResourceService" %>
|
||||
|
|
@ -1,355 +0,0 @@
|
|||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2015
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia,
|
||||
* EU, LV-1021.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
using System;
|
||||
using System.Net;
|
||||
using System.Configuration;
|
||||
using System.Web;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
|
||||
using FileConverterUtils2;
|
||||
|
||||
using log4net;
|
||||
|
||||
namespace DocService
|
||||
{
|
||||
public class ResourceService : IHttpAsyncHandler
|
||||
{
|
||||
private readonly ILog _log = LogManager.GetLogger(typeof(ResourceService));
|
||||
|
||||
public IAsyncResult BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData)
|
||||
{
|
||||
bool bStartAsync = false;
|
||||
try
|
||||
{
|
||||
_log.Info("Starting process request...");
|
||||
_log.Info(context.Request.QueryString.ToString());
|
||||
|
||||
Storage oStorage = new Storage();
|
||||
ITaskResultInterface oTaskResult = TaskResult.NewTaskResult();
|
||||
string sPathOriginal = context.Request.QueryString["path"];
|
||||
string sPath = null;
|
||||
if (null != sPathOriginal)
|
||||
{
|
||||
sPath = sPathOriginal.Replace("../", "").Replace("..\\", "");
|
||||
if (sPathOriginal != sPath)
|
||||
{
|
||||
_log.Error("Possible XSS attack:" + sPathOriginal);
|
||||
}
|
||||
}
|
||||
|
||||
string sOutputFilename = context.Request.QueryString["filename"];
|
||||
|
||||
string sDeletePathOriginal = context.Request.QueryString["deletepath"];
|
||||
string sDeletePath = null;
|
||||
if (null != sDeletePathOriginal)
|
||||
{
|
||||
sDeletePath = sDeletePathOriginal.Replace("../", "").Replace("..\\", "");
|
||||
if (sDeletePathOriginal != sDeletePath)
|
||||
{
|
||||
_log.Error("Possible XSS attack:" + sDeletePathOriginal);
|
||||
}
|
||||
}
|
||||
|
||||
string sNoCache = context.Request.QueryString["nocache"];
|
||||
if (string.IsNullOrEmpty(sOutputFilename))
|
||||
{
|
||||
if (null != sPath)
|
||||
{
|
||||
int nIndex1 = sPath.LastIndexOf('/');
|
||||
int nIndex2 = sPath.LastIndexOf('\\');
|
||||
if (-1 != nIndex1 || -1 != nIndex2)
|
||||
{
|
||||
int nIndex = Math.Max(nIndex1, nIndex2);
|
||||
sOutputFilename = sPath.Substring(nIndex + 1);
|
||||
}
|
||||
else
|
||||
sOutputFilename = "resource";
|
||||
}
|
||||
}
|
||||
|
||||
context.Response.Clear();
|
||||
|
||||
context.Response.Cache.SetCacheability(HttpCacheability.Public);
|
||||
context.Response.ContentType = Utils.GetMimeType(sOutputFilename);
|
||||
string contentDisposition = Utils.GetContentDisposition(context.Request.UserAgent, context.Request.Browser.Browser, context.Request.Browser.Version, sOutputFilename);
|
||||
context.Response.AppendHeader("Content-Disposition", contentDisposition);
|
||||
if (null != sPath)
|
||||
{
|
||||
TransportClass oTransportClass = new TransportClass(context, cb, oStorage, oTaskResult, sPath, sDeletePath);
|
||||
oStorage.GetFileInfoBegin(sPath, GetFileInfoCallback, oTransportClass);
|
||||
bStartAsync = true;
|
||||
}
|
||||
else
|
||||
context.Response.StatusCode = (int)HttpStatusCode.NotFound;
|
||||
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
context.Response.StatusCode = (int)HttpStatusCode.BadRequest;
|
||||
|
||||
_log.Error(context.Request.QueryString.ToString());
|
||||
_log.Error("Exeption catched in BeginProcessRequest:", e);
|
||||
}
|
||||
TransportClass oTempTransportClass = new TransportClass(context, cb, null, null, null, null);
|
||||
if (false == bStartAsync)
|
||||
cb(new AsyncOperationData(oTempTransportClass));
|
||||
return new AsyncOperationData(oTempTransportClass);
|
||||
}
|
||||
public void EndProcessRequest(IAsyncResult result)
|
||||
{
|
||||
return;
|
||||
}
|
||||
private void GetFileInfoCallback(IAsyncResult result)
|
||||
{
|
||||
TransportClass oTransportClass = result.AsyncState as TransportClass;
|
||||
HttpContext context = oTransportClass.m_oContext;
|
||||
bool bStartAsync = false;
|
||||
try
|
||||
{
|
||||
string sPath = oTransportClass.m_sPath;
|
||||
Storage oStorage = oTransportClass.m_oStorage;
|
||||
StorageFileInfo oStorageFileInfo;
|
||||
if (ErrorTypes.NoError == oStorage.GetFileInfoEnd(result, out oStorageFileInfo) && null != oStorageFileInfo)
|
||||
{
|
||||
string sETag = oStorageFileInfo.m_oLastModify.Ticks.ToString("x");
|
||||
DateTime oLastModified = oStorageFileInfo.m_oLastModify;
|
||||
|
||||
DateTime oDateTimeUtcNow = DateTime.UtcNow;
|
||||
_log.InfoFormat("oLastModified = {0}", oLastModified);
|
||||
_log.InfoFormat("oDateTimeUtcNow = {0}", oDateTimeUtcNow);
|
||||
|
||||
if (oLastModified.CompareTo(oDateTimeUtcNow) > 0)
|
||||
{
|
||||
_log.DebugFormat("LastModifiedTimeStamp changed from {0} to {1}", oLastModified, oDateTimeUtcNow);
|
||||
oLastModified = oDateTimeUtcNow;
|
||||
}
|
||||
|
||||
string sRequestIfModifiedSince = context.Request.Headers["If-Modified-Since"];
|
||||
string sRequestETag = context.Request.Headers["If-None-Match"];
|
||||
bool bNoModify = false;
|
||||
if (false == string.IsNullOrEmpty(sRequestETag) || false == string.IsNullOrEmpty(sRequestIfModifiedSince))
|
||||
{
|
||||
bool bRequestETag = true;
|
||||
if (false == string.IsNullOrEmpty(sRequestETag) && sRequestETag != sETag)
|
||||
bRequestETag = false;
|
||||
bool bRequestIfModifiedSince = true;
|
||||
if (false == string.IsNullOrEmpty(sRequestIfModifiedSince))
|
||||
{
|
||||
try
|
||||
{
|
||||
DateTime oRequestIfModifiedSince = DateTime.ParseExact(sRequestIfModifiedSince, "R", System.Globalization.CultureInfo.InvariantCulture);
|
||||
if ((oRequestIfModifiedSince - oLastModified).TotalSeconds > 1)
|
||||
bRequestIfModifiedSince = false;
|
||||
}
|
||||
catch
|
||||
{
|
||||
bRequestIfModifiedSince = false;
|
||||
}
|
||||
}
|
||||
if (bRequestETag && bRequestIfModifiedSince)
|
||||
{
|
||||
context.Response.StatusCode = (int)HttpStatusCode.NotModified;
|
||||
bNoModify = true;
|
||||
}
|
||||
}
|
||||
if (false == bNoModify)
|
||||
{
|
||||
context.Response.Cache.SetETag(sETag);
|
||||
|
||||
context.Response.Cache.SetLastModified(oLastModified.ToLocalTime());
|
||||
|
||||
oStorage.ReadFileBegin(sPath, context.Response.OutputStream, ReadFileCallback, oTransportClass);
|
||||
bStartAsync = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
context.Response.StatusCode = (int)HttpStatusCode.NotFound;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
_log.Error("Exception catched in GetFileInfoCallback:", e);
|
||||
|
||||
context.Response.StatusCode = (int)HttpStatusCode.BadRequest;
|
||||
}
|
||||
if (!bStartAsync)
|
||||
oTransportClass.m_oCallback(new AsyncOperationData(oTransportClass));
|
||||
}
|
||||
private void ReadFileCallback(IAsyncResult result)
|
||||
{
|
||||
SendResponse(result);
|
||||
DeletePath(result);
|
||||
}
|
||||
|
||||
private void DeletePath(IAsyncResult result)
|
||||
{
|
||||
TransportClass oTransportClass = result.AsyncState as TransportClass;
|
||||
try
|
||||
{
|
||||
if (null != oTransportClass.m_sDeletePath && false == string.IsNullOrEmpty(oTransportClass.m_sDeletePath))
|
||||
{
|
||||
ITaskResultInterface oTaskResult = oTransportClass.m_oTaskResult;
|
||||
|
||||
string sKey = oTransportClass.m_sDeletePath;
|
||||
|
||||
oTaskResult.RemoveBegin(sKey, RemoveTaskCallback, oTransportClass);
|
||||
}
|
||||
else
|
||||
{
|
||||
oTransportClass.m_oCallback(new AsyncOperationData(oTransportClass));
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
_log.Error("Exception catched in DeletePath:", e);
|
||||
|
||||
oTransportClass.m_oCallback(new AsyncOperationData(oTransportClass));
|
||||
}
|
||||
}
|
||||
|
||||
private void SendResponse(IAsyncResult result)
|
||||
{
|
||||
TransportClass oTransportClass = result.AsyncState as TransportClass;
|
||||
HttpContext context = oTransportClass.m_oContext;
|
||||
try
|
||||
{
|
||||
|
||||
Storage oStorage = oTransportClass.m_oStorage;
|
||||
if (null == oStorage)
|
||||
{
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
int nReadWriteBytes = 0;
|
||||
ErrorTypes eResult = oStorage.ReadFileEnd(result, out nReadWriteBytes);
|
||||
if (ErrorTypes.NoError == eResult)
|
||||
{
|
||||
context.Response.AppendHeader("Content-Length", nReadWriteBytes.ToString());
|
||||
context.Response.StatusCode = (int)HttpStatusCode.OK;
|
||||
}
|
||||
|
||||
}
|
||||
catch (HttpException httpEx)
|
||||
{
|
||||
_log.Error("HttpException catched in SendResponse:", httpEx);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
_log.Error("Exception catched in SendResponse:", e);
|
||||
|
||||
context.Response.StatusCode = (int)HttpStatusCode.BadRequest;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
if (context.Response.IsClientConnected)
|
||||
{
|
||||
context.Response.Flush();
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
_log.Error("Exception catched in SendResponse, while response end:", e);
|
||||
}
|
||||
}
|
||||
private void RemoveTaskCallback(IAsyncResult result)
|
||||
{
|
||||
TransportClass oTransportClass = result.AsyncState as TransportClass;
|
||||
try
|
||||
{
|
||||
ITaskResultInterface oTaskResult = oTransportClass.m_oTaskResult;
|
||||
|
||||
if (null != oTaskResult)
|
||||
oTaskResult.RemoveEnd(result);
|
||||
|
||||
Storage oStorage = oTransportClass.m_oStorage;
|
||||
|
||||
if (null != oStorage)
|
||||
oStorage.RemovePathBegin(oTransportClass.m_sDeletePath, RemoveFileCallback, oTransportClass);
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
_log.Error("Exception catched in RemoveTaskCallback:", e);
|
||||
|
||||
oTransportClass.m_oCallback(new AsyncOperationData(oTransportClass));
|
||||
}
|
||||
}
|
||||
private void RemoveFileCallback(IAsyncResult result)
|
||||
{
|
||||
TransportClass oTransportClass = result.AsyncState as TransportClass;
|
||||
HttpContext context = oTransportClass.m_oContext;
|
||||
try
|
||||
{
|
||||
Storage oStorage = oTransportClass.m_oStorage;
|
||||
if (null != oStorage)
|
||||
oStorage.RemovePathEnd(result);
|
||||
oTransportClass.m_oCallback(new AsyncOperationData(oTransportClass));
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
_log.Error("Exception catched in RemoveFileCallback:", e);
|
||||
|
||||
oTransportClass.m_oCallback(new AsyncOperationData(oTransportClass));
|
||||
}
|
||||
}
|
||||
public void ProcessRequest(HttpContext context)
|
||||
{
|
||||
throw new InvalidOperationException();
|
||||
}
|
||||
|
||||
public bool IsReusable
|
||||
{
|
||||
get
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
private class TransportClass
|
||||
{
|
||||
public HttpContext m_oContext;
|
||||
public AsyncCallback m_oCallback;
|
||||
public Storage m_oStorage;
|
||||
public ITaskResultInterface m_oTaskResult;
|
||||
public string m_sPath;
|
||||
public string m_sDeletePath;
|
||||
public TransportClass(HttpContext oContext, AsyncCallback oCallback, Storage oStorage, ITaskResultInterface oTaskResult, string sPath, string sDeletePath)
|
||||
{
|
||||
m_oContext = oContext;
|
||||
m_oCallback = oCallback;
|
||||
m_oStorage = oStorage;
|
||||
m_oTaskResult = oTaskResult;
|
||||
m_sPath = sPath;
|
||||
m_sDeletePath = sDeletePath;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1 +0,0 @@
|
|||
<%@ WebHandler Language="C#" CodeBehind="TrackingService.ashx.cs" Class="DocService.TrackingService" %>
|
|
@ -1,55 +0,0 @@
|
|||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2015
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia,
|
||||
* EU, LV-1021.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
|
||||
using System;
|
||||
using System.Web;
|
||||
using System.Xml;
|
||||
using System.Runtime.Serialization;
|
||||
using System.Runtime.Serialization.Json;
|
||||
using FileConverterUtils2;
|
||||
|
||||
namespace DocService
|
||||
{
|
||||
public class TrackingService : IHttpHandler {
|
||||
|
||||
public void ProcessRequest (HttpContext context)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public bool IsReusable {
|
||||
get {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,2 +0,0 @@
|
|||
<%@ WebHandler Language="C#" CodeBehind="UploadService.ashx.cs" Class="DocService.UploadService" %>
|
||||
|
|
@ -1,362 +0,0 @@
|
|||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2015
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia,
|
||||
* EU, LV-1021.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
using System;
|
||||
using System.Net;
|
||||
using System.Configuration;
|
||||
using System.Web;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using System.Xml;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Web.Script.Serialization;
|
||||
using System.Collections.Specialized;
|
||||
|
||||
using FileConverterUtils2;
|
||||
|
||||
using log4net;
|
||||
|
||||
namespace DocService
|
||||
{
|
||||
public class UploadService : IHttpAsyncHandler
|
||||
{
|
||||
private readonly ILog _log = LogManager.GetLogger(typeof(UploadService));
|
||||
|
||||
public IAsyncResult BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData)
|
||||
{
|
||||
|
||||
TransportClassMainAshx oTransportClassMainAshx = new TransportClassMainAshx(context, cb);
|
||||
ErrorTypes eError = ErrorTypes.NoError;
|
||||
try
|
||||
{
|
||||
_log.Info("Starting process request...");
|
||||
_log.Info(context.Request.QueryString.ToString());
|
||||
|
||||
string sGuid = context.Request.QueryString["key"];
|
||||
int nMaxBytes = Convert.ToInt32(ConfigurationSettings.AppSettings["limits.image.size"] ?? "25000000");
|
||||
if (context.Request.ContentLength <= nMaxBytes)
|
||||
{
|
||||
if (context.Request.Files.Count > 0)
|
||||
{
|
||||
|
||||
int nParamsCount = 0;
|
||||
string sInputParams = "";
|
||||
for (int i = 0, length = context.Request.QueryString.Count; i < length; ++i)
|
||||
{
|
||||
sInputParams += context.Request.QueryString.Get(i) + ":" + context.Request.QueryString.GetKey(i);
|
||||
if (nParamsCount > 0)
|
||||
sInputParams += ",";
|
||||
nParamsCount++;
|
||||
}
|
||||
AsyncMediaXmlOperation oAsyncMediaXmlOperation = new AsyncMediaXmlOperation();
|
||||
List<string> aUrls = new List<string>();
|
||||
TransportClass1 oTransportClass1 = new TransportClass1(oTransportClassMainAshx, oAsyncMediaXmlOperation, context.Request.QueryString, aUrls, sGuid, Path.Combine(sGuid, @"media/media.xml"), context.Request.Files, context.Request.Files.GetEnumerator());
|
||||
oAsyncMediaXmlOperation.GetMediaXmlBegin(oTransportClass1.m_sMediaXml, GetMediaXmlCallback, oTransportClass1);
|
||||
}
|
||||
else
|
||||
eError = ErrorTypes.UploadCountFiles;
|
||||
}
|
||||
else
|
||||
eError = ErrorTypes.UploadContentLength;
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
eError = ErrorTypes.Upload;
|
||||
|
||||
_log.Error(context.Request.QueryString.ToString());
|
||||
_log.Error("Exeption: ", e);
|
||||
}
|
||||
if (ErrorTypes.NoError != eError)
|
||||
WriteToResponse(oTransportClassMainAshx, eError, null, context.Request.QueryString);
|
||||
return new AsyncOperationData(extraData);
|
||||
}
|
||||
public void EndProcessRequest(IAsyncResult result)
|
||||
{
|
||||
}
|
||||
public void ProcessRequest(HttpContext context)
|
||||
{
|
||||
throw new InvalidOperationException();
|
||||
}
|
||||
|
||||
public bool IsReusable
|
||||
{
|
||||
get
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
#region HelpFunctions
|
||||
private void WriteToResponse(TransportClassMainAshx oTransportClassMainAshx, ErrorTypes eError, List<string> aUrls, NameValueCollection aNameValueCollection)
|
||||
{
|
||||
HttpContext oHttpContext = oTransportClassMainAshx.m_oHttpContext;
|
||||
AsyncCallback oAsyncCallback = oTransportClassMainAshx.m_oAsyncCallback;
|
||||
OutputCommand oOutputCommand = new OutputCommand();
|
||||
if (null != aNameValueCollection)
|
||||
{
|
||||
|
||||
for (int i = 0, length = aNameValueCollection.Count; i < length; ++i)
|
||||
oOutputCommand.input.Add(aNameValueCollection.GetKey(i), aNameValueCollection.Get(i));
|
||||
}
|
||||
oOutputCommand.urls = aUrls;
|
||||
oOutputCommand.error = (int)eError;
|
||||
oOutputCommand.type = (int)PostMessageType.UploadImage;
|
||||
|
||||
JavaScriptSerializer serializer = new JavaScriptSerializer();
|
||||
StringBuilder sb = new StringBuilder();
|
||||
serializer.Serialize(oOutputCommand, sb);
|
||||
string sJson = sb.ToString();
|
||||
|
||||
oHttpContext.Response.Write("<html><head><script type=\"text/javascript\">function load(){ parent.postMessage(\"" + sJson.Replace("\"", "\\\"") + "\", '*'); }</script></head><body onload='load()'></body></html>");
|
||||
|
||||
oAsyncCallback.Invoke(new AsyncOperationData(null));
|
||||
}
|
||||
#endregion
|
||||
#region Callbacks
|
||||
private void GetMediaXmlCallbackProcess(TransportClass1 oTransportClass1, Dictionary<string, string> aMediaXmlMapHash, Dictionary<string, string> aMediaXmlMapFilename)
|
||||
{
|
||||
AsyncContextReadOperation oAsyncContextReadOperation = new AsyncContextReadOperation();
|
||||
TransportClass2 oTransportClass2 = new TransportClass2(oTransportClass1, aMediaXmlMapHash, aMediaXmlMapFilename, oAsyncContextReadOperation);
|
||||
HttpPostedFile oCurrentFile = (HttpPostedFile)oTransportClass1.m_oFiles[(string)oTransportClass1.m_oFilesEnumerator.Current];
|
||||
oCurrentFile.InputStream.Position = 0;
|
||||
oAsyncContextReadOperation.ReadContextBegin(oCurrentFile.InputStream, ReadContextCallback, oTransportClass2);
|
||||
}
|
||||
private void GetMediaXmlCallback(IAsyncResult ar)
|
||||
{
|
||||
TransportClass1 oTransportClass1 = ar.AsyncState as TransportClass1;
|
||||
try
|
||||
{
|
||||
Dictionary<string, string> aMediaXmlMapHash;
|
||||
Dictionary<string, string> aMediaXmlMapFilename;
|
||||
ErrorTypes eError = oTransportClass1.m_oAsyncMediaXmlOperation.GetMediaXmlEnd(ar, out aMediaXmlMapHash, out aMediaXmlMapFilename);
|
||||
if (ErrorTypes.NoError == eError && oTransportClass1.m_oFilesEnumerator.MoveNext())
|
||||
{
|
||||
GetMediaXmlCallbackProcess(oTransportClass1, aMediaXmlMapHash, aMediaXmlMapFilename);
|
||||
}
|
||||
else
|
||||
WriteToResponse(oTransportClass1, eError, null, oTransportClass1.m_aInputParams);
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
_log.Error("Exeption: ", e);
|
||||
WriteToResponse(oTransportClass1, ErrorTypes.Upload, null, oTransportClass1.m_aInputParams);
|
||||
}
|
||||
}
|
||||
private void ReadContextCallback(IAsyncResult ar)
|
||||
{
|
||||
TransportClass2 oTransportClass2 = ar.AsyncState as TransportClass2;
|
||||
try
|
||||
{
|
||||
ErrorTypes eError = oTransportClass2.m_oAsyncContextReadOperation.ReadContextEnd(ar);
|
||||
if (ErrorTypes.NoError == eError)
|
||||
{
|
||||
HttpPostedFile oCurrentFile = ((HttpPostedFile)oTransportClass2.m_oFiles[(string)oTransportClass2.m_oFilesEnumerator.Current]);
|
||||
oCurrentFile.InputStream.Position = 0;
|
||||
Stream oImageStream = oCurrentFile.InputStream;
|
||||
byte[] aBuffer = oTransportClass2.m_oAsyncContextReadOperation.m_aOutput.ToArray();
|
||||
int nImageFormat = FormatChecker.GetFileFormat(aBuffer);
|
||||
string sSupportedFormats = ConfigurationSettings.AppSettings["limits.image.types.upload"] ?? "jpg";
|
||||
if (0 != (FileFormats.AVS_OFFICESTUDIO_FILE_IMAGE & nImageFormat) && -1 != sSupportedFormats.IndexOf(FileFormats.ToString(nImageFormat)))
|
||||
{
|
||||
if (FileFormats.AVS_OFFICESTUDIO_FILE_IMAGE_GIF == nImageFormat || FileFormats.AVS_OFFICESTUDIO_FILE_IMAGE_ICO == nImageFormat)
|
||||
{
|
||||
byte[] aNewBuffer;
|
||||
if (Utils.ConvertGifIcoToPng(aBuffer, nImageFormat, out aNewBuffer))
|
||||
{
|
||||
nImageFormat = FileFormats.AVS_OFFICESTUDIO_FILE_IMAGE_PNG;
|
||||
aBuffer = aNewBuffer;
|
||||
oImageStream = new MemoryStream(aBuffer);
|
||||
}
|
||||
}
|
||||
string sImageHash = null;
|
||||
using (MemoryStream ms = new MemoryStream(aBuffer))
|
||||
sImageHash = Utils.getMD5HexString(ms);
|
||||
|
||||
string sFileName;
|
||||
if (oTransportClass2.m_oMediaXmlMapHash.TryGetValue(sImageHash, out sFileName))
|
||||
{
|
||||
|
||||
ImageUrlProcess(oTransportClass2, Constants.mc_sResourceServiceUrlRel + Path.Combine(oTransportClass2.m_sKey, @"media\" + sFileName).Replace('\\', '/'));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
string sSearchName = "image";
|
||||
List<int> aIndexes = new List<int>();
|
||||
foreach (KeyValuePair<string, string> kvp in oTransportClass2.m_oMediaXmlMapFilename)
|
||||
{
|
||||
string sFilename = Path.GetFileNameWithoutExtension(kvp.Key);
|
||||
if (0 == sFilename.IndexOf(sSearchName))
|
||||
{
|
||||
int nCurIndex;
|
||||
if (int.TryParse(sFilename.Substring(sSearchName.Length), out nCurIndex))
|
||||
aIndexes.Add(nCurIndex);
|
||||
}
|
||||
}
|
||||
int nMaxIndex = -1;
|
||||
for (int i = 0, length = aIndexes.Count; i < length; ++i)
|
||||
{
|
||||
int nCurIndex = aIndexes[i];
|
||||
if (nMaxIndex < nCurIndex)
|
||||
nMaxIndex = nCurIndex;
|
||||
}
|
||||
int nNewIndex = 1;
|
||||
if (nMaxIndex >= nNewIndex)
|
||||
nNewIndex = nMaxIndex + 1;
|
||||
string sNewName = sSearchName + nNewIndex + "." + FileFormats.ToString(nImageFormat);
|
||||
|
||||
string sNewPath = Path.Combine(oTransportClass2.m_sKey, @"media\" + sNewName).Replace('\\', '/');
|
||||
Storage oStorage = new Storage();
|
||||
TransportClass3 oTransportClass3 = new TransportClass3(oTransportClass2, sNewName, sImageHash, sNewPath, oStorage);
|
||||
oTransportClass3.m_oStorage.WriteFileBegin(sNewPath, oImageStream, WriteUploadedFileCallback, oTransportClass3);
|
||||
}
|
||||
}
|
||||
else
|
||||
WriteToResponse(oTransportClass2, ErrorTypes.UploadExtension, null, oTransportClass2.m_aInputParams);
|
||||
}
|
||||
else
|
||||
WriteToResponse(oTransportClass2, eError, null, oTransportClass2.m_aInputParams);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
_log.Error("Exeption: ", e);
|
||||
WriteToResponse(oTransportClass2, ErrorTypes.Upload, null, oTransportClass2.m_aInputParams);
|
||||
}
|
||||
}
|
||||
private void ImageUrlProcess(TransportClass2 oTransportClass2, string sUrl)
|
||||
{
|
||||
oTransportClass2.m_aUrls.Add(sUrl);
|
||||
if (oTransportClass2.m_oFilesEnumerator.MoveNext())
|
||||
GetMediaXmlCallbackProcess(oTransportClass2, oTransportClass2.m_oMediaXmlMapHash, oTransportClass2.m_oMediaXmlMapFilename);
|
||||
else
|
||||
oTransportClass2.m_oAsyncMediaXmlOperation.WriteMediaXmlBegin(oTransportClass2.m_sMediaXml, oTransportClass2.m_oMediaXmlMapHash, WriteMediaXmlCallback, oTransportClass2);
|
||||
}
|
||||
private void WriteUploadedFileCallback(IAsyncResult ar)
|
||||
{
|
||||
TransportClass3 oTransportClass3 = ar.AsyncState as TransportClass3;
|
||||
try
|
||||
{
|
||||
int nReadWriteBytes;
|
||||
ErrorTypes eError = oTransportClass3.m_oStorage.WriteFileEnd(ar, out nReadWriteBytes);
|
||||
if (ErrorTypes.NoError == eError)
|
||||
{
|
||||
oTransportClass3.m_oMediaXmlMapHash.Add(oTransportClass3.m_sHash, oTransportClass3.m_sFilename);
|
||||
oTransportClass3.m_oMediaXmlMapFilename.Add(oTransportClass3.m_sFilename, oTransportClass3.m_sHash);
|
||||
ImageUrlProcess(oTransportClass3, Constants.mc_sResourceServiceUrlRel + oTransportClass3.m_sPath.Replace('\\', '/'));
|
||||
}
|
||||
else
|
||||
WriteToResponse(oTransportClass3, eError, null, oTransportClass3.m_aInputParams);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
_log.Error("Exeption: ", e);
|
||||
WriteToResponse(oTransportClass3, ErrorTypes.Upload, null, oTransportClass3.m_aInputParams);
|
||||
}
|
||||
}
|
||||
private void WriteMediaXmlCallback(IAsyncResult ar)
|
||||
{
|
||||
TransportClass1 oTransportClass1 = ar.AsyncState as TransportClass1;
|
||||
try
|
||||
{
|
||||
ErrorTypes eError = oTransportClass1.m_oAsyncMediaXmlOperation.WriteMediaXmlEnd(ar);
|
||||
if (ErrorTypes.NoError == eError)
|
||||
WriteToResponse(oTransportClass1, ErrorTypes.NoError, oTransportClass1.m_aUrls, oTransportClass1.m_aInputParams);
|
||||
else
|
||||
WriteToResponse(oTransportClass1, eError, null, oTransportClass1.m_aInputParams);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
_log.Error("Exeption: ", e);
|
||||
WriteToResponse(oTransportClass1, ErrorTypes.Upload, null, oTransportClass1.m_aInputParams);
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
#region TransportClass
|
||||
private class TransportClass1 : TransportClassMainAshx
|
||||
{
|
||||
public AsyncMediaXmlOperation m_oAsyncMediaXmlOperation;
|
||||
public NameValueCollection m_aInputParams;
|
||||
public List<string> m_aUrls = new List<string>();
|
||||
public string m_sKey;
|
||||
public string m_sMediaXml;
|
||||
public HttpFileCollection m_oFiles;
|
||||
public IEnumerator m_oFilesEnumerator;
|
||||
|
||||
public TransportClass1(TransportClassMainAshx oTransportClassMainAshx, AsyncMediaXmlOperation oAsyncMediaXmlOperation, NameValueCollection aInputParams, List<string> aUrls, string sKey, string sMediaXml, HttpFileCollection oFiles, IEnumerator oFilesEnumerator)
|
||||
: base(oTransportClassMainAshx.m_oHttpContext, oTransportClassMainAshx.m_oAsyncCallback)
|
||||
{
|
||||
m_oAsyncMediaXmlOperation = oAsyncMediaXmlOperation;
|
||||
m_aInputParams = aInputParams;
|
||||
m_sKey = sKey;
|
||||
m_oFiles = oFiles;
|
||||
m_oFilesEnumerator = oFilesEnumerator;
|
||||
m_sMediaXml = sMediaXml;
|
||||
m_aUrls = aUrls;
|
||||
}
|
||||
}
|
||||
private class TransportClass2 : TransportClass1
|
||||
{
|
||||
public Dictionary<string, string> m_oMediaXmlMapHash = new Dictionary<string, string>();
|
||||
public Dictionary<string, string> m_oMediaXmlMapFilename = new Dictionary<string, string>();
|
||||
public AsyncContextReadOperation m_oAsyncContextReadOperation;
|
||||
public TransportClass2(TransportClass1 oTransportClass1, Dictionary<string, string> oMediaXmlMapHash, Dictionary<string, string> oMediaXmlMapFilename, AsyncContextReadOperation oAsyncContextReadOperation)
|
||||
: base(oTransportClass1, oTransportClass1.m_oAsyncMediaXmlOperation, oTransportClass1.m_aInputParams, oTransportClass1.m_aUrls, oTransportClass1.m_sKey, oTransportClass1.m_sMediaXml, oTransportClass1.m_oFiles, oTransportClass1.m_oFilesEnumerator)
|
||||
{
|
||||
m_oMediaXmlMapHash = oMediaXmlMapHash;
|
||||
m_oMediaXmlMapFilename = oMediaXmlMapFilename;
|
||||
m_oAsyncContextReadOperation = oAsyncContextReadOperation;
|
||||
}
|
||||
}
|
||||
private class TransportClass3 : TransportClass2
|
||||
{
|
||||
public string m_sFilename;
|
||||
public string m_sHash;
|
||||
public string m_sPath;
|
||||
public Storage m_oStorage;
|
||||
public TransportClass3(TransportClass2 oTransportClass2, string sFilename, string sHash, string sPath, Storage oStorage)
|
||||
: base(oTransportClass2, oTransportClass2.m_oMediaXmlMapHash, oTransportClass2.m_oMediaXmlMapFilename, oTransportClass2.m_oAsyncContextReadOperation)
|
||||
{
|
||||
m_sFilename = sFilename;
|
||||
m_sHash = sHash;
|
||||
m_sPath = sPath;
|
||||
m_oStorage = oStorage;
|
||||
}
|
||||
}
|
||||
public class OutputCommand
|
||||
{
|
||||
public int type;
|
||||
public List<string> urls = new List<string>();
|
||||
public int error;
|
||||
public Dictionary<string, object> input = new Dictionary<string,object>();
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
<%@ Page Language="C#" %>
|
||||
<script runat="server">
|
||||
protected override void OnLoad(EventArgs e)
|
||||
{
|
||||
Response.Redirect(ConfigurationSettings.AppSettings["DefaultURL"]);
|
||||
base.OnLoad(e);
|
||||
}
|
||||
</script>
|
||||
|
|
@ -1 +0,0 @@
|
|||
<%@ WebHandler Language="C#" CodeBehind="fileDownloader.ashx.cs" Class="DocService.fileDownloader" %>
|
|
@ -1,105 +0,0 @@
|
|||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2015
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia,
|
||||
* EU, LV-1021.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
using System;
|
||||
using System.Net;
|
||||
using System.Configuration;
|
||||
using System.Web;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
|
||||
namespace DocService
|
||||
{
|
||||
public class fileDownloader : IHttpHandler {
|
||||
|
||||
public void ProcessRequest (HttpContext context) {
|
||||
try
|
||||
{
|
||||
|
||||
System.IO.FileInfo file = new System.IO.FileInfo(Convert.ToString(context.Server.MapPath(context.Server.UrlDecode("~" + context.Request.QueryString[0]))));
|
||||
string sOutputFilename = null;
|
||||
if (context.Request.QueryString.Count > 1)
|
||||
sOutputFilename = context.Server.UrlDecode(context.Request.QueryString[1]);
|
||||
if (string.IsNullOrEmpty(sOutputFilename))
|
||||
sOutputFilename = file.Name;
|
||||
if (!file.Exists)
|
||||
return;
|
||||
context.Response.Clear();
|
||||
context.Response.ContentType = "application/octet-stream";
|
||||
if (context.Request.ServerVariables.Get("HTTP_USER_AGENT").Contains("MSIE"))
|
||||
context.Response.AppendHeader("Content-Disposition", "attachment; filename=\"" + context.Server.UrlEncode(sOutputFilename) + "\"");
|
||||
else
|
||||
context.Response.AppendHeader("Content-Disposition", "attachment; filename=\"" + sOutputFilename + "\"");
|
||||
context.Response.AppendHeader("Content-Length", file.Length.ToString());
|
||||
context.Response.TransmitFile(file.FullName);
|
||||
context.Response.Flush();
|
||||
context.ApplicationInstance.CompleteRequest();
|
||||
}
|
||||
catch(Exception){}
|
||||
}
|
||||
|
||||
public bool IsReusable {
|
||||
get {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static string GetIP4Address()
|
||||
{
|
||||
string IP4Address = String.Empty;
|
||||
|
||||
foreach (IPAddress IPA in Dns.GetHostAddresses(HttpContext.Current.Request.UserHostAddress))
|
||||
{
|
||||
if (IPA.AddressFamily.ToString() == "InterNetwork")
|
||||
{
|
||||
IP4Address = IPA.ToString();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (IP4Address != String.Empty)
|
||||
{
|
||||
return IP4Address;
|
||||
}
|
||||
|
||||
foreach (IPAddress IPA in Dns.GetHostAddresses(Dns.GetHostName()))
|
||||
{
|
||||
if (IPA.AddressFamily.ToString() == "InterNetwork")
|
||||
{
|
||||
IP4Address = IPA.ToString();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return IP4Address;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,231 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
Note: As an alternative to hand editing this file you can use the
|
||||
web admin tool to configure settings for your application. Use
|
||||
the Website->Asp.Net Configuration option in Visual Studio.
|
||||
A full list of settings and comments can be found in
|
||||
machine.config.comments usually located in
|
||||
\Windows\Microsoft.Net\Framework\v2.x\Config
|
||||
-->
|
||||
<configuration>
|
||||
<configSections>
|
||||
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
|
||||
</configSections>
|
||||
<system.serviceModel>
|
||||
<client>
|
||||
<endpoint address="" binding="basicHttpBinding" contract="ASC.Core.Billing.IService" bindingConfiguration="billing" />
|
||||
</client>
|
||||
<bindings>
|
||||
<basicHttpBinding>
|
||||
<binding name="billing" maxReceivedMessageSize="1000000">
|
||||
<readerQuotas maxStringContentLength="1000000" />
|
||||
</binding>
|
||||
</basicHttpBinding>
|
||||
</bindings>
|
||||
</system.serviceModel>
|
||||
<log4net>
|
||||
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
|
||||
<layout type="log4net.Layout.PatternLayout">
|
||||
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
|
||||
<conversionPattern value="%date %-5level [%thread] %logger - %message%newline" />
|
||||
</layout>
|
||||
<file value="/var/log/onlyoffice/documentserver/DocService.log" />
|
||||
<appendToFile value="true" />
|
||||
<rollingStyle value="Date" />
|
||||
<datePattern value="yyyyMMdd-HHmm" />
|
||||
</appender>
|
||||
<root>
|
||||
<level value="WARN" />
|
||||
<appender-ref ref="RollingFileAppender" />
|
||||
</root>
|
||||
</log4net>
|
||||
<system.data>
|
||||
<DbProviderFactories>
|
||||
<clear />
|
||||
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data" />
|
||||
</DbProviderFactories>
|
||||
</system.data>
|
||||
<appSettings file="/var/www/onlyoffice/documentserver/DocService/Settings.config">
|
||||
<add key="WebCacheExpireSeconds" value="900" />
|
||||
<add key="ResourceServiceExpireSeconds" value="3600" />
|
||||
<add key="keyIp" value="ip" />
|
||||
<add key="keyKey" value="key" />
|
||||
<add key="keyDate" value="expire" />
|
||||
<add key="keyDateInterval" value="1" />
|
||||
<add key="keyPaid" value="paid" />
|
||||
<add key="keyKeyID" value="key_id" />
|
||||
<add key="keyUserCount" value="user_count" />
|
||||
<add key="FilesDir" value="TestDocs\files" />
|
||||
<add key="NewFilesDir" value="TestDocs\res" />
|
||||
<add key="DefaultURL" value="OnlineEditorsExample" />
|
||||
<!-- Necessary to test the efficiency of docs service -->
|
||||
<add key="urlTestValue" value="/TestSiteEfficiency/empty.docx" />
|
||||
<add key="fileTypeTestValue" value="docx" />
|
||||
<add key="isErrorRedirectPage" value="TestSiteEfficiency/error.html" />
|
||||
<!--Test Efficiency Site-->
|
||||
<add key="testEfficiencyGuidWord" value="test_site_efficiency_guid.docx" />
|
||||
<add key="testEfficiencyGuidExcel" value="test_site_efficiency_guid.xls" />
|
||||
<add key="testEfficiencyUrlWord" value="http://localhost/testdocs/res/new.docx" />
|
||||
<add key="testEfficiencyUrlExcel" value="http://localhost/testdocs/res/new.xls" />
|
||||
<add key="editor.settings.viewerformats" value="pdf;xps;djvu;tiff" />
|
||||
<add key="editor.settings.readerformats" value="doct;docx;doc;odt;rtf;txt;mht;html;htm;epub;mobi;fb2" />
|
||||
<add key="editor.settings.editorformats" value="doct;xlst;pptt;docx;doc;odt;xlsx;xls;ods;csv;pptx;ppt;ppsx;pps;odp;rtf;txt;mht;html;htm;epub;mobi;fb2" />
|
||||
<add key="editor.settings.autosave.enable" value="true" />
|
||||
<add key="editor.settings.autosave.mininterval" value="300" />
|
||||
<add key="editor.settings.coauthoring.url" value="/coauthoring" />
|
||||
<add key="editor.settings.spellchecker.url" value="/spellchecker" />
|
||||
<add key="resource.expires" value="1440" />
|
||||
<add key="limits.image.types.upload" value="jpg;png;gif;bmp;ico" />
|
||||
<add key="limits.image.types.copy" value="jpg;png;gif;bmp;emf;wmf;svg" />
|
||||
<add key="limits.image.size" value="25000000" />
|
||||
<add key="fonts.route" value="OfficeWeb/sdk/Fonts/" />
|
||||
<add key="sfc.webrequest.attempcount" value="3" />
|
||||
<add key="sfc.webrequest.attempdelay" value="1000" />
|
||||
</appSettings>
|
||||
<connectionStrings configSource="ConnectionStrings.config" />
|
||||
<system.web>
|
||||
<httpRuntime maxRequestLength="1048576" executionTimeout="3600" />
|
||||
<!--
|
||||
Set compilation debug="true" to insert debugging
|
||||
symbols into the compiled page. Because this
|
||||
affects performance, set this value to true only
|
||||
during development.
|
||||
-->
|
||||
<compilation debug="true" targetFramework="4.5">
|
||||
<assemblies>
|
||||
<add assembly="Accessibility, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
|
||||
<add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
|
||||
</assemblies>
|
||||
</compilation>
|
||||
<!--
|
||||
The <authentication> section enables configuration
|
||||
of the security authentication mode used by
|
||||
ASP.NET to identify an incoming user.
|
||||
-->
|
||||
<authentication mode="Windows" />
|
||||
<!--
|
||||
The <customErrors> section enables configuration
|
||||
of what to do if/when an unhandled error occurs
|
||||
during the execution of a request. Specifically,
|
||||
it enables developers to configure html error pages
|
||||
to be displayed in place of a error stack trace.
|
||||
|
||||
<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
|
||||
<error statusCode="403" redirect="NoAccess.htm" />
|
||||
<error statusCode="404" redirect="FileNotFound.htm" />
|
||||
</customErrors>
|
||||
-->
|
||||
<httpHandlers>
|
||||
<remove verb="POST,GET" path="template.ashx" />
|
||||
<remove verb="POST,GET" path="JavaScriptResource.ashx" />
|
||||
<remove verb="POST,GET" path="UploadProgress.ashx" />
|
||||
<remove verb="POST,GET" path="fckuploader.ashx" />
|
||||
<remove verb="POST,GET" path="ajaxupload.ashx" />
|
||||
<remove verb="POST,GET" path="ajaxpro/*.ashx" />
|
||||
</httpHandlers>
|
||||
<httpModules>
|
||||
<!--
|
||||
<remove name="UploadProgress" />
|
||||
<remove name="MobileDetector" />
|
||||
<remove name="TcpIpFilter" />
|
||||
-->
|
||||
</httpModules>
|
||||
<pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID" />
|
||||
<customErrors mode="Off" />
|
||||
</system.web>
|
||||
<system.codedom>
|
||||
<compilers>
|
||||
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="4">
|
||||
<providerOption name="CompilerVersion" value="v4.0" />
|
||||
<providerOption name="WarnAsError" value="false" />
|
||||
</compiler>
|
||||
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.VisualBasic.VBCodeProvider, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="4">
|
||||
<providerOption name="CompilerVersion" value="v4.0" />
|
||||
<providerOption name="OptionInfer" value="true" />
|
||||
<providerOption name="WarnAsError" value="false" />
|
||||
</compiler>
|
||||
</compilers>
|
||||
</system.codedom>
|
||||
<system.webServer>
|
||||
<security>
|
||||
<requestFiltering>
|
||||
<!-- same as in FileConverterService2.exe.config maxdownloadbytes=100000000 -->
|
||||
<requestLimits maxAllowedContentLength="100000000" />
|
||||
</requestFiltering>
|
||||
</security>
|
||||
<validation validateIntegratedModeConfiguration="false" />
|
||||
<modules runAllManagedModulesForAllRequests="true">
|
||||
<remove name="UploadProgress" />
|
||||
<remove name="MobileDetector" />
|
||||
<remove name="TcpIpFilter" />
|
||||
<remove name="UrlRoutingModule" />
|
||||
<add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, 
 System.Web, Version=4.0.0.0, Culture=neutral, 
 PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
</modules>
|
||||
<handlers>
|
||||
<remove name="Template" />
|
||||
<remove name="JavaScriptResource" />
|
||||
<remove name="UpProgress" />
|
||||
<remove name="FCKUp" />
|
||||
<remove name="AjaxUp" />
|
||||
<remove name="AjaxPro" />
|
||||
<add name="UrlRoutingHandler" preCondition="integratedMode" verb="*" path="UrlRouting.axd" type="System.Web.HttpForbiddenHandler,
 System.Web, Version=2.0.0.0, Culture=neutral,
 PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
</handlers>
|
||||
<staticContent>
|
||||
<remove fileExtension=".ods" />
|
||||
<remove fileExtension=".odt" />
|
||||
<remove fileExtension=".odp" />
|
||||
<remove fileExtension=".svg" />
|
||||
<remove fileExtension=".json" />
|
||||
<remove fileExtension=".epub" />
|
||||
<remove fileExtension=".djvu" />
|
||||
<remove fileExtension=".xps" />
|
||||
<remove fileExtension=".doct" />
|
||||
<remove fileExtension=".xlst" />
|
||||
<remove fileExtension=".pptt" />
|
||||
<remove fileExtension=".fb2" />
|
||||
<remove fileExtension=".ttc" />
|
||||
<remove fileExtension=".mobi" />
|
||||
<remove fileExtension=".prc" />
|
||||
<remove fileExtension=".otf" />
|
||||
<remove fileExtension=".woff" />
|
||||
<mimeMap fileExtension=".svg" mimeType="image/svg+xml" />
|
||||
<mimeMap fileExtension=".json" mimeType="application/json" />
|
||||
<mimeMap fileExtension=".ods" mimeType="application/vnd.oasis.opendocument.spreadsheet" />
|
||||
<mimeMap fileExtension=".odt" mimeType="application/vnd.oasis.opendocument.text" />
|
||||
<mimeMap fileExtension=".odp" mimeType="application/vnd.oasis.opendocument.presentation" />
|
||||
<mimeMap fileExtension=".epub" mimeType="application/epub+zip" />
|
||||
<mimeMap fileExtension=".djvu" mimeType="image/vnd.djvu" />
|
||||
<mimeMap fileExtension=".xps" mimeType="application/vnd.ms-xpsdocument" />
|
||||
<mimeMap fileExtension=".doct" mimeType="application/doct" />
|
||||
<mimeMap fileExtension=".xlst" mimeType="application/xlst" />
|
||||
<mimeMap fileExtension=".pptt" mimeType="application/pptt" />
|
||||
<mimeMap fileExtension=".fb2" mimeType="text/xml" />
|
||||
<mimeMap fileExtension=".ttc" mimeType="application/octet-stream" />
|
||||
<mimeMap fileExtension=".otf" mimeType="application/octet-stream" />
|
||||
<mimeMap fileExtension=".mobi" mimeType="application/x-mobipocket-ebook" />
|
||||
<mimeMap fileExtension=".prc" mimeType="application/x-mobipocket-ebook" />
|
||||
<mimeMap fileExtension=".template" mimeType="text/html" />
|
||||
<mimeMap fileExtension=".less" mimeType="text/css" />
|
||||
<mimeMap fileExtension=".woff" mimeType="application/font-woff" />
|
||||
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="365.00:00:00" />
|
||||
</staticContent>
|
||||
<defaultDocument>
|
||||
<files>
|
||||
<clear />
|
||||
<add value="Default.aspx" />
|
||||
<add value="Default.htm" />
|
||||
<add value="Default.asp" />
|
||||
<add value="index.htm" />
|
||||
<add value="index.html" />
|
||||
<add value="iisstart.htm" />
|
||||
</files>
|
||||
</defaultDocument>
|
||||
<urlCompression doDynamicCompression="true" />
|
||||
<httpProtocol>
|
||||
<customHeaders>
|
||||
<add name="Access-Control-Allow-Origin" value="*" />
|
||||
<add name="Access-Control-Allow-Credentials" value="true" />
|
||||
</customHeaders>
|
||||
</httpProtocol>
|
||||
</system.webServer>
|
||||
</configuration>
|
|
@ -1,13 +0,0 @@
|
|||
{
|
||||
"name": "coauthoring",
|
||||
"version": "1.0.0",
|
||||
"homepage": "http://www.onlyoffice.com",
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"express": "4.12.3",
|
||||
"sockjs": "0.3.15",
|
||||
"underscore": "1.8.2",
|
||||
"mysql": "2.6.1",
|
||||
"pg": "4.3.0"
|
||||
}
|
||||
}
|
File diff suppressed because it is too large
Load diff
|
@ -1,208 +0,0 @@
|
|||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2015
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia,
|
||||
* EU, LV-1021.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
var sqlDataBaseType = {
|
||||
mySql: "mysql",
|
||||
postgreSql: "postgres"
|
||||
};
|
||||
var config = require("./config.json");
|
||||
var configSql = config["sql"];
|
||||
var baseConnector = (sqlDataBaseType.mySql === configSql["type"]) ? require("./mySqlBaseConnector") : require("./postgreSqlBaseConnector");
|
||||
var tableChanges = configSql["tableChanges"],
|
||||
tableCallbacks = configSql["tableCallbacks"],
|
||||
tableResult = configSql["tableResult"],
|
||||
tablePucker = configSql["tablePucker"];
|
||||
var g_oCriticalSection = {};
|
||||
var maxPacketSize = configSql["max_allowed_packet"];
|
||||
function getDataFromTable(tableId, data, getCondition, callback) {
|
||||
var table = getTableById(tableId);
|
||||
var sqlCommand = "SELECT " + data + " FROM " + table + " WHERE " + getCondition + ";";
|
||||
baseConnector.sqlQuery(sqlCommand, callback);
|
||||
}
|
||||
function deleteFromTable(tableId, deleteCondition) {
|
||||
var table = getTableById(tableId);
|
||||
var sqlCommand = "DELETE FROM " + table + " WHERE " + deleteCondition + ";";
|
||||
baseConnector.sqlQuery(sqlCommand);
|
||||
}
|
||||
var c_oTableId = {
|
||||
pucker: 1,
|
||||
callbacks: 2,
|
||||
changes: 3
|
||||
};
|
||||
function getTableById(id) {
|
||||
var res;
|
||||
switch (id) {
|
||||
case c_oTableId.pucker:
|
||||
res = tablePucker;
|
||||
break;
|
||||
case c_oTableId.callbacks:
|
||||
res = tableCallbacks;
|
||||
break;
|
||||
case c_oTableId.changes:
|
||||
res = tableChanges;
|
||||
break;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
exports.tableId = c_oTableId;
|
||||
exports.loadTable = function (tableId, callbackFunction) {
|
||||
var table = getTableById(tableId);
|
||||
var sqlCommand = "SELECT * FROM " + table + ";";
|
||||
baseConnector.sqlQuery(sqlCommand, callbackFunction);
|
||||
};
|
||||
exports.insertInTable = function (tableId) {
|
||||
var table = getTableById(tableId);
|
||||
var sqlCommand = "INSERT INTO " + table + " VALUES (";
|
||||
for (var i = 1, l = arguments.length; i < l; ++i) {
|
||||
sqlCommand += "'" + arguments[i] + "'";
|
||||
if (i !== l - 1) {
|
||||
sqlCommand += ",";
|
||||
}
|
||||
}
|
||||
sqlCommand += ");";
|
||||
baseConnector.sqlQuery(sqlCommand);
|
||||
};
|
||||
exports.insertChanges = function (objChanges, docId, index, user) {
|
||||
lockCriticalSection(docId, function () {
|
||||
_insertChanges(0, objChanges, docId, index, user);
|
||||
});
|
||||
};
|
||||
function _lengthInUtf8Bytes(s) {
|
||||
return~ - encodeURI(s).split(/%..|./).length;
|
||||
}
|
||||
function _getDateTime(nTime) {
|
||||
var oDate = new Date(nTime);
|
||||
return oDate.getUTCFullYear() + "-" + ("0" + (oDate.getUTCMonth() + 1)).slice(-2) + "-" + ("0" + oDate.getUTCDate()).slice(-2) + " " + ("0" + oDate.getUTCHours()).slice(-2) + ":" + ("0" + oDate.getUTCMinutes()).slice(-2) + ":" + ("0" + oDate.getUTCSeconds()).slice(-2);
|
||||
}
|
||||
function _insertChanges(startIndex, objChanges, docId, index, user) {
|
||||
var sqlCommand = "INSERT INTO " + tableChanges + " VALUES";
|
||||
var i = startIndex,
|
||||
l = objChanges.length,
|
||||
sqlNextRow = "",
|
||||
lengthUtf8Current = 0,
|
||||
lengthUtf8Row = 0;
|
||||
if (i === l) {
|
||||
return;
|
||||
}
|
||||
for (; i < l; ++i, ++index) {
|
||||
sqlNextRow = "('" + docId + "','" + index + "','" + user.id + "','" + user.idOriginal + "'," + baseConnector.sqlEscape(user.name) + ",'" + objChanges[i].change + "','" + _getDateTime(objChanges[i].time) + "')";
|
||||
lengthUtf8Row = _lengthInUtf8Bytes(sqlNextRow) + 1;
|
||||
if (i === startIndex) {
|
||||
lengthUtf8Current = _lengthInUtf8Bytes(sqlCommand);
|
||||
sqlCommand += sqlNextRow;
|
||||
} else {
|
||||
if (lengthUtf8Row + lengthUtf8Current >= maxPacketSize) {
|
||||
sqlCommand += ";";
|
||||
(function (tmpStart, tmpIndex) {
|
||||
baseConnector.sqlQuery(sqlCommand, function () {
|
||||
_insertChanges(tmpStart, objChanges, docId, tmpIndex, user);
|
||||
});
|
||||
})(i, index);
|
||||
return;
|
||||
} else {
|
||||
sqlCommand += ",";
|
||||
sqlCommand += sqlNextRow;
|
||||
}
|
||||
}
|
||||
lengthUtf8Current += lengthUtf8Row;
|
||||
}
|
||||
sqlCommand += ";";
|
||||
baseConnector.sqlQuery(sqlCommand, function () {
|
||||
unLockCriticalSection(docId);
|
||||
});
|
||||
}
|
||||
exports.deleteChanges = function (docId, deleteIndex) {
|
||||
lockCriticalSection(docId, function () {
|
||||
_deleteChanges(docId, deleteIndex);
|
||||
});
|
||||
};
|
||||
function _deleteChanges(docId, deleteIndex) {
|
||||
var sqlCommand = "DELETE FROM " + tableChanges + " WHERE dc_key='" + docId + "'";
|
||||
if (null !== deleteIndex) {
|
||||
sqlCommand += " AND dc_change_id >= " + deleteIndex;
|
||||
}
|
||||
sqlCommand += ";";
|
||||
baseConnector.sqlQuery(sqlCommand, function () {
|
||||
unLockCriticalSection(docId);
|
||||
});
|
||||
}
|
||||
exports.deleteCallback = function (docId) {
|
||||
deleteFromTable(c_oTableId.callbacks, "dc_key='" + docId + "'");
|
||||
};
|
||||
exports.deletePucker = function (docId) {
|
||||
deleteFromTable(c_oTableId.pucker, "dp_key='" + docId + "'");
|
||||
};
|
||||
exports.getChanges = function (docId, callback) {
|
||||
lockCriticalSection(docId, function () {
|
||||
_getChanges(docId, callback);
|
||||
});
|
||||
};
|
||||
function _getChanges(docId, callback) {
|
||||
getDataFromTable(c_oTableId.changes, "*", "dc_key='" + docId + "'", function (error, result) {
|
||||
unLockCriticalSection(docId);
|
||||
if (callback) {
|
||||
callback(error, result);
|
||||
}
|
||||
});
|
||||
}
|
||||
exports.checkStatusFile = function (docId, callbackFunction) {
|
||||
var sqlCommand = "SELECT tr_status FROM " + tableResult + " WHERE tr_key='" + docId + "';";
|
||||
baseConnector.sqlQuery(sqlCommand, callbackFunction);
|
||||
};
|
||||
exports.updateStatusFile = function (docId) {
|
||||
var sqlCommand = "UPDATE " + tableResult + " SET tr_status=1 WHERE tr_key='" + docId + "';";
|
||||
baseConnector.sqlQuery(sqlCommand);
|
||||
};
|
||||
exports.updateIndexUser = function (docId, indexUser) {
|
||||
var sqlCommand = "UPDATE " + tablePucker + " SET dp_indexUser=" + indexUser + " WHERE dp_key='" + docId + "' AND dp_indexUser<" + indexUser + ";";
|
||||
baseConnector.sqlQuery(sqlCommand);
|
||||
};
|
||||
exports.isLockCriticalSection = function (id) {
|
||||
return !! (g_oCriticalSection[id]);
|
||||
};
|
||||
function lockCriticalSection(id, callback) {
|
||||
if (g_oCriticalSection[id]) {
|
||||
g_oCriticalSection[id].push(callback);
|
||||
return;
|
||||
}
|
||||
g_oCriticalSection[id] = [];
|
||||
g_oCriticalSection[id].push(callback);
|
||||
callback();
|
||||
}
|
||||
function unLockCriticalSection(id) {
|
||||
var arrCallbacks = g_oCriticalSection[id];
|
||||
arrCallbacks.shift();
|
||||
if (0 < arrCallbacks.length) {
|
||||
arrCallbacks[0]();
|
||||
} else {
|
||||
delete g_oCriticalSection[id];
|
||||
}
|
||||
}
|
|
@ -1,25 +0,0 @@
|
|||
{
|
||||
"server": {
|
||||
"port": 8000,
|
||||
"mode": "development"
|
||||
},
|
||||
"nono_mongodb": {
|
||||
"host": "localhost",
|
||||
"port": 8000,
|
||||
"database": "onlyoffice"
|
||||
},
|
||||
"sql": {
|
||||
"type" : "mysql",
|
||||
"tableChanges" : "doc_changes",
|
||||
"tableCallbacks" : "doc_callbacks",
|
||||
"tableResult" : "tast_result",
|
||||
"tablePucker" : "doc_pucker",
|
||||
"host" : "localhost",
|
||||
"dbport" : 3306,
|
||||
"database" : "onlyoffice",
|
||||
"user" : "root",
|
||||
"pass" : "onlyoffice",
|
||||
"charset" : "utf8",
|
||||
"max_allowed_packet" : 1048575
|
||||
}
|
||||
}
|
|
@ -1,114 +0,0 @@
|
|||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2015
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia,
|
||||
* EU, LV-1021.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
var mongoDB = require("mongodb");
|
||||
var config = require("./config.json");
|
||||
var _errorConnection = true;
|
||||
var logger = require("./../../Common/sources/logger");
|
||||
function CreateDbClient() {
|
||||
return new mongoDB.Db(config["mongodb"]["database"], new mongoDB.Server(config["mongodb"]["host"], config["mongodb"]["port"], {
|
||||
auto_reconnect: true
|
||||
}), {
|
||||
safe: false
|
||||
});
|
||||
}
|
||||
exports.insert = function (_collectionName, _newElement) {
|
||||
var _db = CreateDbClient();
|
||||
if (!_db) {
|
||||
logger.error("Error _db");
|
||||
return;
|
||||
}
|
||||
_db.open(function (err, db) {
|
||||
if (!err) {
|
||||
db.collection(_collectionName, function (err, collection) {
|
||||
if (!err) {
|
||||
collection.insert(_newElement);
|
||||
} else {
|
||||
logger.error("Error collection");
|
||||
return;
|
||||
}
|
||||
db.close();
|
||||
});
|
||||
} else {
|
||||
logger.error("Error open database");
|
||||
}
|
||||
});
|
||||
};
|
||||
exports.remove = function (_collectionName, _removeElements) {
|
||||
var _db = CreateDbClient();
|
||||
if (!_db) {
|
||||
logger.error("Error _db");
|
||||
return;
|
||||
}
|
||||
_db.open(function (err, db) {
|
||||
if (!err) {
|
||||
db.collection(_collectionName, function (err, collection) {
|
||||
if (!err) {
|
||||
collection.remove(_removeElements, function (err, collection) {
|
||||
logger.info("All elements remove");
|
||||
});
|
||||
} else {
|
||||
logger.error("Error collection");
|
||||
return;
|
||||
}
|
||||
db.close();
|
||||
});
|
||||
} else {
|
||||
logger.error("Error open database");
|
||||
}
|
||||
});
|
||||
};
|
||||
exports.load = function (_collectionName, callbackFunction) {
|
||||
var _db = CreateDbClient();
|
||||
if (!_db) {
|
||||
logger.error("Error _db");
|
||||
return callbackFunction(null);
|
||||
}
|
||||
var result = [];
|
||||
_db.open(function (err, db) {
|
||||
db.collection(_collectionName, function (err, collection) {
|
||||
collection.find(function (err, cursor) {
|
||||
cursor.each(function (err, item) {
|
||||
if (item != null) {
|
||||
if (!result.hasOwnProperty(item.docid)) {
|
||||
result[item.docid] = [item];
|
||||
} else {
|
||||
result[item.docid].push(item);
|
||||
}
|
||||
} else {
|
||||
callbackFunction(result);
|
||||
}
|
||||
});
|
||||
db.close();
|
||||
});
|
||||
});
|
||||
});
|
||||
};
|
|
@ -1,69 +0,0 @@
|
|||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2015
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia,
|
||||
* EU, LV-1021.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
var mysql = require("mysql");
|
||||
var config = require("./config.json");
|
||||
var configSql = config["sql"];
|
||||
var pool = mysql.createPool({
|
||||
host: configSql["host"],
|
||||
port: configSql["dbport"],
|
||||
user: configSql["user"],
|
||||
password: configSql["pass"],
|
||||
database: configSql["database"],
|
||||
charset: configSql["charset"]
|
||||
});
|
||||
var logger = require("./../../Common/sources/logger");
|
||||
exports.sqlQuery = function (sqlCommand, callbackFunction) {
|
||||
pool.getConnection(function (err, connection) {
|
||||
if (err) {
|
||||
logger.error("pool.getConnection error: %s", err);
|
||||
if (callbackFunction) {
|
||||
callbackFunction(err, null);
|
||||
}
|
||||
return;
|
||||
}
|
||||
connection.query(sqlCommand, function (error, result) {
|
||||
connection.release();
|
||||
if (error) {
|
||||
logger.error("________________________error_____________________");
|
||||
logger.error("sqlQuery: %s sqlCommand: %s", error.code, sqlCommand);
|
||||
logger.error(error);
|
||||
logger.error("_____________________end_error_____________________");
|
||||
}
|
||||
if (callbackFunction) {
|
||||
callbackFunction(error, result);
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
||||
exports.sqlEscape = function (value) {
|
||||
return pool.escape(value);
|
||||
};
|
|
@ -1,59 +0,0 @@
|
|||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2015
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia,
|
||||
* EU, LV-1021.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
var pg = require("pg");
|
||||
var config = require("./config.json");
|
||||
var configSql = config["sql"];
|
||||
var connectionString = "postgres://" + configSql["user"] + ":" + configSql["pass"] + "@" + configSql["host"] + (configSql["dbport"] ? (":" + configSql["dbport"]) : "") + "/" + configSql["database"];
|
||||
var logger = require("./../../Common/sources/logger");
|
||||
exports.sqlQuery = function (sqlCommand, callbackFunction) {
|
||||
pg.connect(connectionString, function (err, connection, done) {
|
||||
if (err) {
|
||||
logger.error("pool.getConnection error: %s", err);
|
||||
if (callbackFunction) {
|
||||
callbackFunction(err, null);
|
||||
}
|
||||
return;
|
||||
}
|
||||
connection.query(sqlCommand, function (error, result) {
|
||||
done();
|
||||
if (error) {
|
||||
logger.error("sqlQuery: %s sqlCommand: %s", error.message, sqlCommand.slice(0, 50));
|
||||
}
|
||||
if (callbackFunction) {
|
||||
callbackFunction(error, result ? result.rows : result);
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
||||
exports.sqlEscape = function (value) {
|
||||
return value.replace(/(\')/g, "\\'");
|
||||
};
|
|
@ -1,97 +0,0 @@
|
|||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2015
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia,
|
||||
* EU, LV-1021.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
var cluster = require("cluster");
|
||||
var config = require("./config.json");
|
||||
process.env.NODE_ENV = config["server"]["mode"];
|
||||
var logger = require("./../../Common/sources/logger");
|
||||
var workersCount = 1;
|
||||
if (cluster.isMaster) {
|
||||
logger.warn("start cluster with %s workers", workersCount);
|
||||
for (var nIndexWorker = 0; nIndexWorker < workersCount; ++nIndexWorker) {
|
||||
var worker = cluster.fork().process;
|
||||
logger.warn("worker %s started.", worker.pid);
|
||||
}
|
||||
cluster.on("exit", function (worker) {
|
||||
logger.warn("worker %s died. restart...", worker.process.pid);
|
||||
cluster.fork();
|
||||
});
|
||||
} else {
|
||||
var express = require("express"),
|
||||
http = require("http"),
|
||||
https = require("https"),
|
||||
fs = require("fs"),
|
||||
docsCoServer = require("./DocsCoServer"),
|
||||
app = express(),
|
||||
server = null;
|
||||
logger.warn("Express server starting...");
|
||||
var configSSL = config["ssl"];
|
||||
if (configSSL) {
|
||||
var privateKey = fs.readFileSync(configSSL["key"]).toString(),
|
||||
certificateKey = fs.readFileSync(configSSL["cert"]).toString(),
|
||||
trustedCertificate = fs.readFileSync(configSSL["ca"]).toString(),
|
||||
options = {
|
||||
key: privateKey,
|
||||
cert: certificateKey,
|
||||
ca: [trustedCertificate]
|
||||
};
|
||||
server = https.createServer(options, app);
|
||||
} else {
|
||||
server = http.createServer(app);
|
||||
}
|
||||
docsCoServer.install(server, function () {
|
||||
server.listen(config["server"]["port"], function () {
|
||||
logger.warn("Express server listening on port %d in %s mode", config["server"]["port"], app.settings.env);
|
||||
});
|
||||
app.get("/index.html", function (req, res) {
|
||||
res.send("Server is functioning normally. Version: " + docsCoServer.version);
|
||||
});
|
||||
app.get("/CommandService.ashx", onServiceCall);
|
||||
app.post("/CommandService.ashx", onServiceCall);
|
||||
function onServiceCall(req, res) {
|
||||
var result = docsCoServer.commandFromServer(req.query);
|
||||
result = JSON.stringify({
|
||||
"key": req.query.key,
|
||||
"error": result
|
||||
});
|
||||
res.setHeader("Content-Type", "application/json");
|
||||
res.setHeader("Content-Length", result.length);
|
||||
res.send(result);
|
||||
}
|
||||
});
|
||||
}
|
||||
process.on("uncaughtException", function (err) {
|
||||
logger.error((new Date).toUTCString() + " uncaughtException:", err.message);
|
||||
logger.error(err.stack);
|
||||
logger.shutdown(function () {
|
||||
process.exit(1);
|
||||
});
|
||||
});
|
|
@ -1,9 +0,0 @@
|
|||
{
|
||||
"name": "common",
|
||||
"version": "1.0.0",
|
||||
"homepage": "http://www.onlyoffice.com",
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"log4js": "0.6.22"
|
||||
}
|
||||
}
|
|
@ -1,13 +0,0 @@
|
|||
{
|
||||
"log": {
|
||||
"appenders": [
|
||||
{
|
||||
"type": "console"
|
||||
}
|
||||
],
|
||||
"replaceConsole": "true",
|
||||
"levels": {
|
||||
"nodeJS": "WARN"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,56 +0,0 @@
|
|||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2015
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia,
|
||||
* EU, LV-1021.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
var config = require("./config.json");
|
||||
var log4js = require("log4js");
|
||||
log4js.configure(config["log"]);
|
||||
var logger = log4js.getLogger("nodeJS");
|
||||
exports.trace = function () {
|
||||
return logger.trace.apply(logger, Array.prototype.slice.call(arguments));
|
||||
};
|
||||
exports.debug = function () {
|
||||
return logger.debug.apply(logger, Array.prototype.slice.call(arguments));
|
||||
};
|
||||
exports.info = function () {
|
||||
return logger.info.apply(logger, Array.prototype.slice.call(arguments));
|
||||
};
|
||||
exports.warn = function () {
|
||||
return logger.warn.apply(logger, Array.prototype.slice.call(arguments));
|
||||
};
|
||||
exports.error = function () {
|
||||
return logger.error.apply(logger, Array.prototype.slice.call(arguments));
|
||||
};
|
||||
exports.fatal = function () {
|
||||
return logger.fatal.apply(logger, Array.prototype.slice.call(arguments));
|
||||
};
|
||||
exports.shutdown = function (callback) {
|
||||
return log4js.shutdown(callback);
|
||||
};
|
27
NodeJsProjects/Common/sources/sockjs-0.3.min.js
vendored
27
NodeJsProjects/Common/sources/sockjs-0.3.min.js
vendored
File diff suppressed because one or more lines are too long
|
@ -1,2 +0,0 @@
|
|||
SET UTF-8
|
||||
TRY ÖŞşçə'-öüABCDEFGHKLMNOPQRSTUVXYZğabcdefghijİklımnopqrstuvxyzÇ
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -1,2 +0,0 @@
|
|||
LLICÈNCIES:
|
||||
Diccionari ortogràfic : LGPL, GPL
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -1,391 +0,0 @@
|
|||
Toto rozšíření obsahuje české slovníky pro OpenOffice.org.
|
||||
|
||||
Kontrola pravopisu
|
||||
------------------
|
||||
|
||||
Toto je cesky slovnik pro kontrolu pravopisu zalozeny na ceskem slovniku
|
||||
pro ispell, verze z 29. 10. 2006, ktery vytvoril Petr Kolar spolu s desitkami
|
||||
dalsich prispevatelu.
|
||||
|
||||
Jsou v nem provedeny drobne zmeny nutne pro kompatibilitu s OpenOffice.org.
|
||||
|
||||
Slovnik je licencovan pod GNU/GPL licenci, ktera je prilozena nize.
|
||||
|
||||
|
||||
Slovník synonym
|
||||
---------------
|
||||
|
||||
Copyright (c) 1994,2008 Karel Pala, Jan Všianský
|
||||
pala@fi.muni.cz
|
||||
|
||||
Slovník můžete volně využívat v kancelářském balíku OpenOffice.org (a odvozených).
|
||||
Nesmíte jej upravovat nebo využívat pro komerční účely bez souhlasu autora.
|
||||
|
||||
|
||||
Slovník pro dělení slov
|
||||
-----------------------
|
||||
|
||||
Language: Czech (Czech Republic) (cs CZ).
|
||||
Origin: Based on the TeX hyphenation tables
|
||||
License: GPL license, 2003
|
||||
Author: Pavel@Janik.cz (Pavel Janík)
|
||||
|
||||
HYPH cs CZ hyph_cs
|
||||
|
||||
These patterns were converted from TeX hyphenation patterns by the package
|
||||
lingucomponent-tools
|
||||
(http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/oo-cs/lingucomponent-tools/).
|
||||
|
||||
The license of original files is GNU GPL (they are both parts of csTeX). My
|
||||
work on them was to only run the scripts from lingucomponent-tools package
|
||||
(dual LGPL/SISSL license so it can be integrated).
|
||||
--
|
||||
Pavel Janík
|
||||
2003
|
||||
|
||||
|
||||
|
||||
===============
|
||||
LICENSE
|
||||
===============
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) 19yy <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) 19yy name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Library General
|
||||
Public License instead of this License.
|
||||
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -1,13 +0,0 @@
|
|||
Stavekontrolden - Danish dictionary files for Hunspell
|
||||
Version 1.6 - 2010-09-19
|
||||
da_DK.dic, da_DK.aff: © 2010 Foreningen for frit tilgængelige sprogværktøjer
|
||||
http://www.stavekontrolden.dk
|
||||
These files are published under the following open source licenses:
|
||||
|
||||
GNU GPL version 2.0
|
||||
GNU LGPL version 2.1
|
||||
Mozilla MPL version 1.1
|
||||
|
||||
This dictionary is based on data from Det Danske Sprog- og Litteraturselskab
|
||||
(The Danish Society for Language and Literature), http://www.dsl.dk.
|
||||
|
|
@ -1,717 +0,0 @@
|
|||
# This is the affix file of the de_AT-frami Hunspell dictionary
|
||||
# derived from the igerman98 dictionary
|
||||
#
|
||||
# Version: 20120607+frami20120609 (build 20120609)
|
||||
#
|
||||
# Copyright (C) 1998-2012 Bjoern Jacke <bjoern@j3e.de>; for the Addon: Franz Michael Baumann <fm.baumann@uni-muenster.de>
|
||||
#
|
||||
# License: GPLv2, GPLv3 or OASIS distribution license agreement
|
||||
# There should be a copy of both of this licenses included
|
||||
# with every distribution of this dictionary. Modified
|
||||
# versions using the GPL may only include the GPL
|
||||
|
||||
SET UTF-8
|
||||
TRY esijanrtolcdugmphbyfvkwqxzäüößáéêàâñESIJANRTOLCDUGMPHBYFVKWQXZÄÜÖÉ-.
|
||||
|
||||
PFX U Y 1
|
||||
PFX U 0 un .
|
||||
|
||||
PFX V Y 1
|
||||
PFX V 0 ver .
|
||||
|
||||
SFX F Y 35
|
||||
SFX F 0 nen in
|
||||
SFX F e in e
|
||||
SFX F e innen e
|
||||
SFX F 0 in [^i]n
|
||||
SFX F 0 innen [^i]n
|
||||
SFX F 0 in [^enr]
|
||||
SFX F 0 innen [^enr]
|
||||
SFX F 0 in [^e]r
|
||||
SFX F 0 innen [^e]r
|
||||
SFX F 0 in [^r]er
|
||||
SFX F 0 innen [^r]er
|
||||
SFX F 0 in [^e]rer
|
||||
SFX F 0 innen [^e]rer
|
||||
SFX F 0 in ierer
|
||||
SFX F 0 innen ierer
|
||||
SFX F er in [^i]erer
|
||||
SFX F er innen [^i]erer
|
||||
SFX F in In in
|
||||
SFX F in Innen in
|
||||
SFX F e In e
|
||||
SFX F e Innen e
|
||||
SFX F 0 In [^i]n
|
||||
SFX F 0 Innen [^i]n
|
||||
SFX F 0 In [^en]
|
||||
SFX F 0 Innen [^en]
|
||||
SFX F 0 In [^e]r
|
||||
SFX F 0 Innen [^e]r
|
||||
SFX F 0 In [^r]er
|
||||
SFX F 0 Innen [^r]er
|
||||
SFX F 0 In [^e]rer
|
||||
SFX F 0 Innen [^e]rer
|
||||
SFX F 0 In ierer
|
||||
SFX F 0 Innen ierer
|
||||
SFX F er In [^i]erer
|
||||
SFX F er Innen [^i]erer
|
||||
#SFX F en innen en
|
||||
#SFX F en Innen en
|
||||
|
||||
|
||||
SFX L N 12
|
||||
SFX L 0 tlich n
|
||||
SFX L 0 tliche n
|
||||
SFX L 0 tlicher n
|
||||
SFX L 0 tliches n
|
||||
SFX L 0 tlichem n
|
||||
SFX L 0 tlichen n
|
||||
SFX L 0 lich [^n]
|
||||
SFX L 0 liche [^n]
|
||||
SFX L 0 licher [^n]
|
||||
SFX L 0 liches [^n]
|
||||
SFX L 0 lichem [^n]
|
||||
SFX L 0 lichen [^n]
|
||||
|
||||
|
||||
#SFX H N 2
|
||||
#SFX H 0 heit .
|
||||
#SFX H 0 heiten .
|
||||
|
||||
|
||||
#SFX K N 2
|
||||
#SFX K 0 keit .
|
||||
#SFX K 0 keiten .
|
||||
|
||||
|
||||
SFX M N 10
|
||||
SFX M 0 chen [^se]
|
||||
SFX M 0 chens [^se]
|
||||
SFX M ass ässchen ass
|
||||
SFX M ass ässchens ass
|
||||
SFX M oss össchen oss
|
||||
SFX M oss össchens oss
|
||||
SFX M uss üsschen uss
|
||||
SFX M uss üsschens uss
|
||||
SFX M e chen e
|
||||
SFX M e chens e
|
||||
|
||||
|
||||
SFX A Y 46
|
||||
SFX A 0 r e
|
||||
SFX A 0 n e
|
||||
SFX A 0 m e
|
||||
SFX A 0 s e
|
||||
SFX A 0 e [^elr]
|
||||
SFX A 0 er [^elr]
|
||||
SFX A 0 en [^elr]
|
||||
SFX A 0 em [^elr]
|
||||
SFX A 0 es [^elr]
|
||||
SFX A 0 e [^e][rl]
|
||||
SFX A 0 er [^e][rl]
|
||||
SFX A 0 en [^e][rl]
|
||||
SFX A 0 em [^e][rl]
|
||||
SFX A 0 es [^e][rl]
|
||||
SFX A 0 e [^u]er
|
||||
SFX A 0 er [^u]er
|
||||
SFX A 0 en [^u]er
|
||||
SFX A 0 em [^u]er
|
||||
SFX A 0 es [^u]er
|
||||
SFX A er re uer
|
||||
SFX A er rer uer
|
||||
SFX A er ren uer
|
||||
SFX A er rem uer
|
||||
SFX A er res uer
|
||||
SFX A 0 e [eil]el
|
||||
SFX A 0 er [eil]el
|
||||
SFX A 0 en [eil]el
|
||||
SFX A 0 em [eil]el
|
||||
SFX A 0 es [eil]el
|
||||
SFX A el le [^eil]el
|
||||
SFX A el ler [^eil]el
|
||||
SFX A el len [^eil]el
|
||||
SFX A el lem [^eil]el
|
||||
SFX A el les [^eil]el
|
||||
SFX A lig elig [^aeiouhlräüö]lig
|
||||
SFX A lig elige [^aeiouhlräüö]lig
|
||||
SFX A lig eliger [^aeiouhlräüö]lig
|
||||
SFX A lig eligen [^aeiouhlräüö]lig
|
||||
SFX A lig eligem [^aeiouhlräüö]lig
|
||||
SFX A lig eliges [^aeiouhlräüö]lig
|
||||
SFX A erig rig [^hi]erig
|
||||
SFX A erig rige [^hi]erig
|
||||
SFX A erig riger [^hi]erig
|
||||
SFX A erig rigen [^hi]erig
|
||||
SFX A erig rigem [^hi]erig
|
||||
SFX A erig riges [^hi]erig
|
||||
|
||||
|
||||
SFX C Y 88
|
||||
SFX C 0 ere [^elr]
|
||||
SFX C 0 erer [^elr]
|
||||
SFX C 0 eren [^elr]
|
||||
SFX C 0 erem [^elr]
|
||||
SFX C 0 eres [^elr]
|
||||
SFX C 0 re e
|
||||
SFX C 0 rer e
|
||||
SFX C 0 ren e
|
||||
SFX C 0 rem e
|
||||
SFX C 0 res e
|
||||
SFX C 0 ere [^e][lr]
|
||||
SFX C 0 erer [^e][lr]
|
||||
SFX C 0 eren [^e][lr]
|
||||
SFX C 0 erem [^e][lr]
|
||||
SFX C 0 eres [^e][lr]
|
||||
SFX C el lere el
|
||||
SFX C el lerer el
|
||||
SFX C el leren el
|
||||
SFX C el lerem el
|
||||
SFX C el leres el
|
||||
SFX C er rere uer
|
||||
SFX C er rerer uer
|
||||
SFX C er reren uer
|
||||
SFX C er rerem uer
|
||||
SFX C er reres uer
|
||||
SFX C 0 ere [^u]er
|
||||
SFX C 0 erer [^u]er
|
||||
SFX C 0 eren [^u]er
|
||||
SFX C 0 erem [^u]er
|
||||
SFX C 0 eres [^u]er
|
||||
SFX C lig eligere [^aeiouhlräüö]lig
|
||||
SFX C lig eligerer [^aeiouhlräüö]lig
|
||||
SFX C lig eligeren [^aeiouhlräüö]lig
|
||||
SFX C lig eligerem [^aeiouhlräüö]lig
|
||||
SFX C lig eligeres [^aeiouhlräüö]lig
|
||||
SFX C erig rigere [^hi]erig
|
||||
SFX C erig rigerer [^hi]erig
|
||||
SFX C erig rigeren [^hi]erig
|
||||
SFX C erig rigerem [^hi]erig
|
||||
SFX C erig rigeres [^hi]erig
|
||||
SFX C 0 est [kßsuxz]
|
||||
SFX C 0 este [kßsuxz]
|
||||
SFX C 0 ester [kßsuxz]
|
||||
SFX C 0 esten [kßsuxz]
|
||||
SFX C 0 estem [kßsuxz]
|
||||
SFX C 0 estes [kßsuxz]
|
||||
SFX C 0 st et
|
||||
SFX C 0 ste et
|
||||
SFX C 0 ster et
|
||||
SFX C 0 sten et
|
||||
SFX C 0 stem et
|
||||
SFX C 0 stes et
|
||||
SFX C 0 est [^e]t
|
||||
SFX C 0 este [^e]t
|
||||
SFX C 0 ester [^e]t
|
||||
SFX C 0 esten [^e]t
|
||||
SFX C 0 estem [^e]t
|
||||
SFX C 0 estes [^e]t
|
||||
SFX C 0 st [^kßstxz]
|
||||
SFX C 0 ste [^kßstxz]
|
||||
SFX C 0 ster [^kßstxz]
|
||||
SFX C 0 sten [^kßstxz]
|
||||
SFX C 0 stem [^kßstxz]
|
||||
SFX C 0 stes [^kßstxz]
|
||||
SFX C 0 st nd
|
||||
SFX C 0 ste nd
|
||||
SFX C 0 ster nd
|
||||
SFX C 0 sten nd
|
||||
SFX C 0 stem nd
|
||||
SFX C 0 stes nd
|
||||
SFX C 0 est [^n]d
|
||||
SFX C 0 este [^n]d
|
||||
SFX C 0 ester [^n]d
|
||||
SFX C 0 esten [^n]d
|
||||
SFX C 0 estem [^n]d
|
||||
SFX C 0 estes [^n]d
|
||||
SFX C lig eligst [^aeiouhlräüö]lig
|
||||
SFX C lig eligste [^aeiouhlräüö]lig
|
||||
SFX C lig eligster [^aeiouhlräüö]lig
|
||||
SFX C lig eligsten [^aeiouhlräüö]lig
|
||||
SFX C lig eligstem [^aeiouhlräüö]lig
|
||||
SFX C lig eligstes [^aeiouhlräüö]lig
|
||||
SFX C erig rigst [^hi]erig
|
||||
SFX C erig rigste [^hi]erig
|
||||
SFX C erig rigster [^hi]erig
|
||||
SFX C erig rigsten [^hi]erig
|
||||
SFX C erig rigstem [^hi]erig
|
||||
SFX C erig rigstes [^hi]erig
|
||||
|
||||
|
||||
SFX E Y 1
|
||||
SFX E 0 e .
|
||||
|
||||
|
||||
SFX f Y 4
|
||||
SFX f ph f ph
|
||||
SFX f ph fen ph
|
||||
SFX f phie fie phie
|
||||
SFX f phie fien phie
|
||||
|
||||
|
||||
SFX N Y 1
|
||||
SFX N 0 n .
|
||||
|
||||
|
||||
SFX P Y 1
|
||||
SFX P 0 en .
|
||||
|
||||
|
||||
SFX p Y 26
|
||||
SFX p auf äufe auf
|
||||
SFX p auf äufen auf
|
||||
SFX p aus äuser [hH]aus
|
||||
SFX p aus äusern [hH]aus
|
||||
SFX p arkt ärkte [mM]arkt
|
||||
SFX p arkt ärkten [mM]arkt
|
||||
SFX p ang änge ang
|
||||
SFX p ang ängen ang
|
||||
SFX p uß üße uß
|
||||
SFX p uß üßen uß
|
||||
SFX p oß öße oß
|
||||
SFX p oß ößen oß
|
||||
SFX p aum äume aum
|
||||
SFX p aum äumen aum
|
||||
SFX p ag äge ag
|
||||
SFX p ag ägen ag
|
||||
SFX p ug üge ug
|
||||
SFX p ug ügen ug
|
||||
SFX p all älle all
|
||||
SFX p all ällen all
|
||||
SFX p ass ässe ass
|
||||
SFX p ass ässen ass
|
||||
SFX p uss üsse uss
|
||||
SFX p uss üssen uss
|
||||
SFX p oss össe oss
|
||||
SFX p oss össen oss
|
||||
# last ...oss rules are for swiss de_CH only - but do not affect de_DE
|
||||
|
||||
|
||||
SFX R Y 3
|
||||
SFX R 0 er [^e]
|
||||
SFX R 0 ern [^e]
|
||||
SFX R 0 r e
|
||||
|
||||
|
||||
SFX S Y 1
|
||||
SFX S 0 s .
|
||||
|
||||
|
||||
SFX q Y 2
|
||||
SFX q 0 se s
|
||||
SFX q 0 sen s
|
||||
|
||||
|
||||
SFX Q Y 1
|
||||
SFX Q 0 ses s
|
||||
#SFX Q 0 se s
|
||||
#SFX Q 0 sen s
|
||||
|
||||
|
||||
SFX T Y 1
|
||||
SFX T 0 es .
|
||||
|
||||
|
||||
SFX J Y 12
|
||||
SFX J n ung [bgkpßsz]eln
|
||||
SFX J n ungen [bgkpßsz]eln
|
||||
SFX J eln lung eln
|
||||
SFX J n ung ern
|
||||
SFX J en ung en
|
||||
SFX J eln lungen eln
|
||||
SFX J n ungen ern
|
||||
SFX J en ungen en
|
||||
SFX J 0 ung [^n]
|
||||
SFX J 0 ungen [^n]
|
||||
SFX J el lung el
|
||||
SFX J el lungen el
|
||||
|
||||
|
||||
SFX B N 12
|
||||
SFX B n bar e[lr]n
|
||||
SFX B n bare e[lr]n
|
||||
SFX B n baren e[lr]n
|
||||
SFX B n barer e[lr]n
|
||||
SFX B n bares e[lr]n
|
||||
SFX B n barem e[lr]n
|
||||
SFX B en bar en
|
||||
SFX B en bare en
|
||||
SFX B en baren en
|
||||
SFX B en barer en
|
||||
SFX B en bares en
|
||||
SFX B en barem en
|
||||
|
||||
|
||||
SFX D Y 6
|
||||
SFX D 0 d n
|
||||
SFX D 0 de n
|
||||
SFX D 0 den n
|
||||
SFX D 0 der n
|
||||
SFX D 0 des n
|
||||
SFX D 0 dem n
|
||||
|
||||
|
||||
|
||||
SFX W Y 5
|
||||
SFX W en 0 en
|
||||
SFX W n 0 [^e]n
|
||||
SFX W st 0 [^s]st
|
||||
SFX W t 0 sst
|
||||
SFX W t 0 [^s]t
|
||||
|
||||
|
||||
SFX I Y 16
|
||||
SFX I n 0 en
|
||||
SFX I eln le eln
|
||||
SFX I n e eln
|
||||
SFX I ern re ern
|
||||
SFX I n e ern
|
||||
SFX I n t e[lr]n
|
||||
SFX I n t [dt]en
|
||||
SFX I en t [^dimnt]en
|
||||
SFX I en t eien
|
||||
SFX I n t [^e]ien
|
||||
SFX I n t chnen
|
||||
SFX I en t [^c]h[mn]en
|
||||
SFX I n t [^aäehilmnoöuür][mn]en
|
||||
SFX I en t [aäeilmnoöuür][mn]en
|
||||
SFX I n e un
|
||||
SFX I n t un
|
||||
|
||||
|
||||
SFX X Y 26
|
||||
SFX X n t e[lr]n
|
||||
SFX X n t [dtw]en
|
||||
SFX X en t eien
|
||||
SFX X n t [^e]ien
|
||||
SFX X en t [^ditmnw]en
|
||||
SFX X n t chnen
|
||||
SFX X en t [^c]h[mn]en
|
||||
SFX X n t [^aäehilmnoöuür][mn]en
|
||||
SFX X en t [aäeilmnoöuür][mn]en
|
||||
SFX X n t un
|
||||
SFX X st 0 tst
|
||||
SFX X n st e[lr]n
|
||||
SFX X n st [dtw]en
|
||||
SFX X en st [^dimnßstwzx]en
|
||||
SFX X en st eien
|
||||
SFX X n st [^e]ien
|
||||
SFX X n st chnen
|
||||
SFX X en st [^c]h[mn]en
|
||||
SFX X n st [^aäehilmnoöuür][mn]en
|
||||
SFX X en st [aäeilmnoöuür][mn]en
|
||||
SFX X n st un
|
||||
SFX X n st [ßsxz]en
|
||||
SFX X n st ssen
|
||||
SFX X n st schen
|
||||
SFX X t st [^sz]t
|
||||
SFX X t est zt
|
||||
|
||||
|
||||
SFX Y Y 36
|
||||
SFX Y n te e[lr]n
|
||||
SFX Y n te [dtw]en
|
||||
SFX Y en te [^dimntw]en
|
||||
SFX Y en te eien
|
||||
SFX Y n te [^e]ien
|
||||
SFX Y n te chnen
|
||||
SFX Y en te [^c]h[mn]en
|
||||
SFX Y n te [^aäehilmnoöuür][mn]en
|
||||
SFX Y en te [aäeilmnoöuür][mn]en
|
||||
SFX Y n test e[lr]n
|
||||
SFX Y n test [dtw]en
|
||||
SFX Y en test [^dimntw]en
|
||||
SFX Y en test eien
|
||||
SFX Y n test [^e]ien
|
||||
SFX Y n test chnen
|
||||
SFX Y en test [^c]h[mn]en
|
||||
SFX Y n test [^aäehilmnoöuür][mn]en
|
||||
SFX Y en test [aäeilmnoöuür][mn]en
|
||||
SFX Y n tet e[lr]n
|
||||
SFX Y n tet [dtw]en
|
||||
SFX Y en tet [^dimntw]en
|
||||
SFX Y en tet eien
|
||||
SFX Y n tet [^e]ien
|
||||
SFX Y n tet chnen
|
||||
SFX Y en tet [^c]h[mn]en
|
||||
SFX Y n tet [^aäehilmnoöuür][mn]en
|
||||
SFX Y en tet [aäeilmnoöuür][mn]en
|
||||
SFX Y n ten e[lr]n
|
||||
SFX Y n ten [dtw]en
|
||||
SFX Y en ten [^dimntw]en
|
||||
SFX Y en ten eien
|
||||
SFX Y n ten [^e]ien
|
||||
SFX Y n ten chnen
|
||||
SFX Y en ten [^c]h[mn]en
|
||||
SFX Y n ten [^aäehilmnoöuür][mn]en
|
||||
SFX Y en ten [aäeilmnoöuür][mn]en
|
||||
|
||||
|
||||
SFX Z Y 15
|
||||
SFX Z 0 st [^hßsz]
|
||||
SFX Z 0 st [^c]h
|
||||
SFX Z 0 st [^s]ch
|
||||
SFX Z 0 est [dfkstz]
|
||||
SFX Z 0 est ch
|
||||
SFX Z 0 est [au]ß
|
||||
SFX Z 0 est ieß
|
||||
SFX Z 0 est [io]ss
|
||||
SFX Z 0 t [^dt]
|
||||
SFX Z 0 et [dt]
|
||||
SFX Z 0 n e
|
||||
SFX Z 0 en ie
|
||||
SFX Z 0 en [^e]
|
||||
SFX Z 0 est iess
|
||||
SFX Z 0 est [au]ss
|
||||
# last two ...ss rules only used for swiss de_CH - but de_DE is unaffected
|
||||
|
||||
|
||||
SFX O Y 21
|
||||
SFX O n tes e[lr]n
|
||||
SFX O n tes [dtw]en
|
||||
SFX O en tes [^dmntw]en
|
||||
SFX O n tes chnen
|
||||
SFX O en tes [^c]h[mn]en
|
||||
SFX O n tes [^aäehilmnoöuür][mn]en
|
||||
SFX O en tes [aäeilmnoöuür][mn]en
|
||||
SFX O n ter e[lr]n
|
||||
SFX O n ter [dtw]en
|
||||
SFX O en ter [^dmntw]en
|
||||
SFX O n ter chnen
|
||||
SFX O en ter [^c]h[mn]en
|
||||
SFX O n ter [^aäehilmnoöuür][mn]en
|
||||
SFX O en ter [aäeilmnoöuür][mn]en
|
||||
SFX O n tem e[lr]n
|
||||
SFX O n tem [dtw]en
|
||||
SFX O en tem [^dmntw]en
|
||||
SFX O n tem chnen
|
||||
SFX O en tem [^c]h[mn]en
|
||||
SFX O n tem [^aäehilmnoöuür][mn]en
|
||||
SFX O en tem [aäeilmnoöuür][mn]en
|
||||
|
||||
REP 28
|
||||
REP f ph
|
||||
REP ph f
|
||||
REP ß ss
|
||||
REP ss ß
|
||||
REP s ss
|
||||
REP ss s
|
||||
REP i ie
|
||||
REP ie i
|
||||
REP ee e
|
||||
REP o oh
|
||||
REP oh o
|
||||
REP a ah
|
||||
REP ah a
|
||||
REP e eh
|
||||
REP eh e
|
||||
REP ae ä
|
||||
REP oe ö
|
||||
REP ue ü
|
||||
REP Ae Ä
|
||||
REP Oe Ö
|
||||
REP Ue Ü
|
||||
REP d t
|
||||
REP t d
|
||||
REP th t
|
||||
REP t th
|
||||
REP r rh
|
||||
REP ch k
|
||||
REP k ch
|
||||
#REP eee ee-E
|
||||
|
||||
|
||||
# this one will allow "-Eltern" - Hunspell 1.1.5 bug, but CHECKSHARPS obsoletes LANG de_DE
|
||||
#LANG de_DE
|
||||
CHECKSHARPS
|
||||
|
||||
|
||||
COMPOUNDBEGIN x
|
||||
COMPOUNDMIDDLE y
|
||||
COMPOUNDEND z
|
||||
FORBIDDENWORD d
|
||||
|
||||
# Prefixes are allowed at the beginning of compounds,
|
||||
# suffixes are allowed at the end of compounds by default:
|
||||
# (prefix)?(root)+(affix)?
|
||||
# Affixes with COMPOUNDPERMITFLAG may be inside of compounds.
|
||||
COMPOUNDPERMITFLAG c
|
||||
|
||||
ONLYINCOMPOUND o
|
||||
|
||||
# my PSEUDOROOT h(elper) flag
|
||||
NEEDAFFIX h
|
||||
|
||||
# forbid uppercase characters at compound word bounds
|
||||
# BUT I want to take care about it myself ;-)
|
||||
# CHECKCOMPOUNDCASE
|
||||
KEEPCASE w
|
||||
|
||||
# Affixes signed with CIRCUMFIX flag may be on a word when this word also has a prefix with CIRCUMFIX flag and vice versa.
|
||||
# for decapitalizing nouns with fogemorphemes
|
||||
CIRCUMFIX f
|
||||
|
||||
# this one would make a separate dict entry "Denkmalsschutz" invalidate the
|
||||
# compound of "Denkmal"+"schutz". We do not want this feature here...
|
||||
# CHECKCOMPOUNDREP
|
||||
|
||||
# make not all possible suggestions for typos of Flicken or some rare words
|
||||
NOSUGGEST n
|
||||
|
||||
WORDCHARS ß-.
|
||||
|
||||
# - setting this to 2 decreases performance by 1/10 but is needed for "öl" and "ei"
|
||||
# - setting this to 1 for handling Fuge-elements with dashes (Arbeits-) dash will
|
||||
# be a special word but - is handled as a affix now
|
||||
COMPOUNDMIN 2
|
||||
|
||||
# this ones are for Duden R36 (old orthography)
|
||||
#CHECKCOMPOUNDPATTERN 2 #oldspell
|
||||
#CHECKCOMPOUNDPATTERN ee e #oldspell
|
||||
#CHECKCOMPOUNDPATTERN oo o #oldspell
|
||||
# also need oo o
|
||||
|
||||
# this one needs to be flagable to be used for old orthography
|
||||
#CHECKCOMPOUNDTRIPLE
|
||||
|
||||
|
||||
PFX i Y 1
|
||||
PFX i 0 -/coyf .
|
||||
|
||||
SFX j Y 3
|
||||
SFX j 0 0/xoc .
|
||||
SFX j 0 -/zocf .
|
||||
SFX j 0 -/cz .
|
||||
|
||||
# Female forms for compound/Compound words:
|
||||
# attention: [^e][^n] does also filter out "...er" !
|
||||
SFX g Y 12
|
||||
SFX g 0 innen/xyoc [^n]
|
||||
SFX g en innen/xyoc en
|
||||
SFX g 0 Innen/xyoc [^n]
|
||||
SFX g en Innen/xyoc en
|
||||
SFX g 0 innen/xyocf [^n]
|
||||
SFX g en innen/xyocf en
|
||||
SFX g 0 Innen/xyocf [^n]
|
||||
SFX g en Innen/xyocf en
|
||||
SFX g 0 innen-/cz [^n]
|
||||
SFX g en innen-/cz en
|
||||
SFX g 0 Innen-/cz [^n]
|
||||
SFX g en Innen-/cz en
|
||||
|
||||
|
||||
PFX k Y 2
|
||||
PFX k 0 -/coxf .
|
||||
PFX k 0 0/coy .
|
||||
|
||||
SFX e Y 2
|
||||
SFX e 0 0/yoc .
|
||||
SFX e 0 -/zc .
|
||||
|
||||
# for Uppercased end-words to prepend - and lowercase: (Tier/EPSm) (EX: Bettbezüge und *-laken*)
|
||||
# AND
|
||||
# for lowercased end-words to prepend - and re-uppercase : (tier/EPSozm) (EX: Arbeits*-Tier*)
|
||||
#PFX m A -a/co A
|
||||
#PFX m a -/ a
|
||||
PFX m Y 58
|
||||
PFX m A -a A
|
||||
PFX m B -b B
|
||||
PFX m C -c C
|
||||
PFX m D -d D
|
||||
PFX m E -e E
|
||||
PFX m F -f F
|
||||
PFX m G -g G
|
||||
PFX m H -h H
|
||||
PFX m I -i I
|
||||
PFX m J -j J
|
||||
PFX m K -k K
|
||||
PFX m L -l L
|
||||
PFX m M -m M
|
||||
PFX m N -n N
|
||||
PFX m O -o O
|
||||
PFX m P -p P
|
||||
PFX m Q -q Q
|
||||
PFX m R -r R
|
||||
PFX m S -s S
|
||||
PFX m T -t T
|
||||
PFX m U -u U
|
||||
PFX m V -v V
|
||||
PFX m W -w W
|
||||
PFX m X -x X
|
||||
PFX m Y -y Y
|
||||
PFX m Z -z Z
|
||||
PFX m Ä -ä Ä
|
||||
PFX m Ö -ö Ö
|
||||
PFX m Ü -ü Ü
|
||||
PFX m a -A/co a
|
||||
PFX m b -B/co b
|
||||
PFX m c -C/co c
|
||||
PFX m d -D/co d
|
||||
PFX m e -E/co e
|
||||
PFX m f -F/co f
|
||||
PFX m g -G/co g
|
||||
PFX m h -H/co h
|
||||
PFX m i -I/co i
|
||||
PFX m j -J/co j
|
||||
PFX m k -K/co k
|
||||
PFX m l -L/co l
|
||||
PFX m m -M/co m
|
||||
PFX m n -N/co n
|
||||
PFX m o -O/co o
|
||||
PFX m p -P/co p
|
||||
PFX m q -Q/co q
|
||||
PFX m r -R/co r
|
||||
PFX m s -S/co s
|
||||
PFX m t -T/co t
|
||||
PFX m u -U/co u
|
||||
PFX m v -V/co v
|
||||
PFX m w -W/co w
|
||||
PFX m x -X/co x
|
||||
PFX m y -Y/co y
|
||||
PFX m z -Z/co z
|
||||
PFX m ä -Ä/co ä
|
||||
PFX m ö -Ö/co ö
|
||||
PFX m ü -Ü/co ü
|
||||
|
||||
|
||||
# Decapitalizing: (not used ATM... )
|
||||
# /co(f) : compound permit, in coumpount only, (decapitalizing with fogemorphemes)
|
||||
#PFX l Y 29
|
||||
#PFX l A a/co A
|
||||
#PFX l Ä ä/co Ä
|
||||
#PFX l B b/co B
|
||||
#PFX l C c/co C
|
||||
#PFX l D d/co D
|
||||
#PFX l E e/co E
|
||||
#PFX l F f/co F
|
||||
#PFX l G g/co G
|
||||
#PFX l H h/co H
|
||||
#PFX l I i/co I
|
||||
#PFX l J j/co J
|
||||
#PFX l K k/co K
|
||||
#PFX l L l/co L
|
||||
#PFX l M m/co M
|
||||
#PFX l N n/co N
|
||||
#PFX l O o/co O
|
||||
#PFX l Ö ö/co Ö
|
||||
#PFX l P p/co P
|
||||
#PFX l Q q/co Q
|
||||
#PFX l R r/co R
|
||||
#PFX l S s/co S
|
||||
#PFX l T t/co T
|
||||
#PFX l U u/co U
|
||||
#PFX l Ü ü/co Ü
|
||||
#PFX l V v/co V
|
||||
#PFX l W w/co W
|
||||
#PFX l X x/co X
|
||||
#PFX l Y y/co Y
|
||||
#PFX l Z z/co Z
|
||||
|
||||
# private hunspell flags:
|
||||
# --x : not for capmain (rare words)
|
||||
|
||||
# With "BREAK -" some wrong forms are accepted but that is needed for US-Wirtschaft etc.
|
||||
# So enabling this is the lesser evil. No perfect solution found so far...
|
||||
BREAK 2
|
||||
BREAK -
|
||||
BREAK .
|
||||
|
File diff suppressed because it is too large
Load diff
|
@ -1,45 +0,0 @@
|
|||
|
||||
COMMENT OF THE EXTENSION OWNER
|
||||
|
||||
|
||||
Compatibility
|
||||
=============
|
||||
This extension is compatible with:
|
||||
- ApacheOpenOffice (Version 3.4)
|
||||
- LibreOffice (Versions 3.3, 3.4, 3.5)
|
||||
- OpenOffice.org (Versions 3.0 or later)
|
||||
|
||||
Spell checking
|
||||
==============
|
||||
de-AT_frami
|
||||
Version: 2012-06-09
|
||||
Author: Franz Michael Baumann <fm.baumann@uni-muenster.de>
|
||||
Based on igerman98 dictionary:
|
||||
Version: 2012-06-07
|
||||
Author: Björn Jacke <bjoern@j3e.de>
|
||||
Download: http://www.j3e.de/ispell/igerman98/dict/
|
||||
License: GNU GPL Version 2 or GPL Version 3 or OASIS 0.1
|
||||
|
||||
The frami dictionary contains the complete word list of igerman98
|
||||
and in addition numerous supplements by Franz Michael Baumann according to
|
||||
the reform of 2006-08-01.
|
||||
|
||||
Hyphenation
|
||||
===========
|
||||
Version: 2012-06-09
|
||||
Enhanced blacklist to improve the hyphenation module by Karl Zeiler
|
||||
Authors: Marco Huggenberger <marco@by-night.ch>
|
||||
Daniel Naber <naber@danielnaber.de>
|
||||
License: GNU LGPL Version 2.1 or later
|
||||
|
||||
Thesaurus
|
||||
=========
|
||||
OpenThesaurus - Deutscher Thesaurus - Synonyme und Assoziationen
|
||||
Version: 2012-06-15 AT
|
||||
License: GNU LGPL Version 2.1 or later
|
||||
http://www.openthesaurus.de
|
||||
|
||||
Please note
|
||||
===========
|
||||
Detecting errors or missing words, please contact the extension owner:
|
||||
Karl Zeiler <karl.zeiler@t-online.de>
|
|
@ -1,717 +0,0 @@
|
|||
# This is the affix file of the de_CH-frami Hunspell dictionary
|
||||
# derived from the igerman98 dictionary
|
||||
#
|
||||
# Version: 20120607+frami20120609 (build 20120609)
|
||||
#
|
||||
# Copyright (C) 1998-2012 Bjoern Jacke <bjoern@j3e.de>; for the Addon: Franz Michael Baumann <fm.baumann@uni-muenster.de>
|
||||
#
|
||||
# License: GPLv2, GPLv3 or OASIS distribution license agreement
|
||||
# There should be a copy of both of this licenses included
|
||||
# with every distribution of this dictionary. Modified
|
||||
# versions using the GPL may only include the GPL
|
||||
|
||||
SET UTF-8
|
||||
TRY esijanrtolcdugmphbyfvkwqxzäüößáéêàâñESIJANRTOLCDUGMPHBYFVKWQXZÄÜÖÉ-.
|
||||
|
||||
PFX U Y 1
|
||||
PFX U 0 un .
|
||||
|
||||
PFX V Y 1
|
||||
PFX V 0 ver .
|
||||
|
||||
SFX F Y 35
|
||||
SFX F 0 nen in
|
||||
SFX F e in e
|
||||
SFX F e innen e
|
||||
SFX F 0 in [^i]n
|
||||
SFX F 0 innen [^i]n
|
||||
SFX F 0 in [^enr]
|
||||
SFX F 0 innen [^enr]
|
||||
SFX F 0 in [^e]r
|
||||
SFX F 0 innen [^e]r
|
||||
SFX F 0 in [^r]er
|
||||
SFX F 0 innen [^r]er
|
||||
SFX F 0 in [^e]rer
|
||||
SFX F 0 innen [^e]rer
|
||||
SFX F 0 in ierer
|
||||
SFX F 0 innen ierer
|
||||
SFX F er in [^i]erer
|
||||
SFX F er innen [^i]erer
|
||||
SFX F in In in
|
||||
SFX F in Innen in
|
||||
SFX F e In e
|
||||
SFX F e Innen e
|
||||
SFX F 0 In [^i]n
|
||||
SFX F 0 Innen [^i]n
|
||||
SFX F 0 In [^en]
|
||||
SFX F 0 Innen [^en]
|
||||
SFX F 0 In [^e]r
|
||||
SFX F 0 Innen [^e]r
|
||||
SFX F 0 In [^r]er
|
||||
SFX F 0 Innen [^r]er
|
||||
SFX F 0 In [^e]rer
|
||||
SFX F 0 Innen [^e]rer
|
||||
SFX F 0 In ierer
|
||||
SFX F 0 Innen ierer
|
||||
SFX F er In [^i]erer
|
||||
SFX F er Innen [^i]erer
|
||||
#SFX F en innen en
|
||||
#SFX F en Innen en
|
||||
|
||||
|
||||
SFX L N 12
|
||||
SFX L 0 tlich n
|
||||
SFX L 0 tliche n
|
||||
SFX L 0 tlicher n
|
||||
SFX L 0 tliches n
|
||||
SFX L 0 tlichem n
|
||||
SFX L 0 tlichen n
|
||||
SFX L 0 lich [^n]
|
||||
SFX L 0 liche [^n]
|
||||
SFX L 0 licher [^n]
|
||||
SFX L 0 liches [^n]
|
||||
SFX L 0 lichem [^n]
|
||||
SFX L 0 lichen [^n]
|
||||
|
||||
|
||||
#SFX H N 2
|
||||
#SFX H 0 heit .
|
||||
#SFX H 0 heiten .
|
||||
|
||||
|
||||
#SFX K N 2
|
||||
#SFX K 0 keit .
|
||||
#SFX K 0 keiten .
|
||||
|
||||
|
||||
SFX M N 10
|
||||
SFX M 0 chen [^se]
|
||||
SFX M 0 chens [^se]
|
||||
SFX M ass ässchen ass
|
||||
SFX M ass ässchens ass
|
||||
SFX M oss össchen oss
|
||||
SFX M oss össchens oss
|
||||
SFX M uss üsschen uss
|
||||
SFX M uss üsschens uss
|
||||
SFX M e chen e
|
||||
SFX M e chens e
|
||||
|
||||
|
||||
SFX A Y 46
|
||||
SFX A 0 r e
|
||||
SFX A 0 n e
|
||||
SFX A 0 m e
|
||||
SFX A 0 s e
|
||||
SFX A 0 e [^elr]
|
||||
SFX A 0 er [^elr]
|
||||
SFX A 0 en [^elr]
|
||||
SFX A 0 em [^elr]
|
||||
SFX A 0 es [^elr]
|
||||
SFX A 0 e [^e][rl]
|
||||
SFX A 0 er [^e][rl]
|
||||
SFX A 0 en [^e][rl]
|
||||
SFX A 0 em [^e][rl]
|
||||
SFX A 0 es [^e][rl]
|
||||
SFX A 0 e [^u]er
|
||||
SFX A 0 er [^u]er
|
||||
SFX A 0 en [^u]er
|
||||
SFX A 0 em [^u]er
|
||||
SFX A 0 es [^u]er
|
||||
SFX A er re uer
|
||||
SFX A er rer uer
|
||||
SFX A er ren uer
|
||||
SFX A er rem uer
|
||||
SFX A er res uer
|
||||
SFX A 0 e [eil]el
|
||||
SFX A 0 er [eil]el
|
||||
SFX A 0 en [eil]el
|
||||
SFX A 0 em [eil]el
|
||||
SFX A 0 es [eil]el
|
||||
SFX A el le [^eil]el
|
||||
SFX A el ler [^eil]el
|
||||
SFX A el len [^eil]el
|
||||
SFX A el lem [^eil]el
|
||||
SFX A el les [^eil]el
|
||||
SFX A lig elig [^aeiouhlräüö]lig
|
||||
SFX A lig elige [^aeiouhlräüö]lig
|
||||
SFX A lig eliger [^aeiouhlräüö]lig
|
||||
SFX A lig eligen [^aeiouhlräüö]lig
|
||||
SFX A lig eligem [^aeiouhlräüö]lig
|
||||
SFX A lig eliges [^aeiouhlräüö]lig
|
||||
SFX A erig rig [^hi]erig
|
||||
SFX A erig rige [^hi]erig
|
||||
SFX A erig riger [^hi]erig
|
||||
SFX A erig rigen [^hi]erig
|
||||
SFX A erig rigem [^hi]erig
|
||||
SFX A erig riges [^hi]erig
|
||||
|
||||
|
||||
SFX C Y 88
|
||||
SFX C 0 ere [^elr]
|
||||
SFX C 0 erer [^elr]
|
||||
SFX C 0 eren [^elr]
|
||||
SFX C 0 erem [^elr]
|
||||
SFX C 0 eres [^elr]
|
||||
SFX C 0 re e
|
||||
SFX C 0 rer e
|
||||
SFX C 0 ren e
|
||||
SFX C 0 rem e
|
||||
SFX C 0 res e
|
||||
SFX C 0 ere [^e][lr]
|
||||
SFX C 0 erer [^e][lr]
|
||||
SFX C 0 eren [^e][lr]
|
||||
SFX C 0 erem [^e][lr]
|
||||
SFX C 0 eres [^e][lr]
|
||||
SFX C el lere el
|
||||
SFX C el lerer el
|
||||
SFX C el leren el
|
||||
SFX C el lerem el
|
||||
SFX C el leres el
|
||||
SFX C er rere uer
|
||||
SFX C er rerer uer
|
||||
SFX C er reren uer
|
||||
SFX C er rerem uer
|
||||
SFX C er reres uer
|
||||
SFX C 0 ere [^u]er
|
||||
SFX C 0 erer [^u]er
|
||||
SFX C 0 eren [^u]er
|
||||
SFX C 0 erem [^u]er
|
||||
SFX C 0 eres [^u]er
|
||||
SFX C lig eligere [^aeiouhlräüö]lig
|
||||
SFX C lig eligerer [^aeiouhlräüö]lig
|
||||
SFX C lig eligeren [^aeiouhlräüö]lig
|
||||
SFX C lig eligerem [^aeiouhlräüö]lig
|
||||
SFX C lig eligeres [^aeiouhlräüö]lig
|
||||
SFX C erig rigere [^hi]erig
|
||||
SFX C erig rigerer [^hi]erig
|
||||
SFX C erig rigeren [^hi]erig
|
||||
SFX C erig rigerem [^hi]erig
|
||||
SFX C erig rigeres [^hi]erig
|
||||
SFX C 0 est [kßsuxz]
|
||||
SFX C 0 este [kßsuxz]
|
||||
SFX C 0 ester [kßsuxz]
|
||||
SFX C 0 esten [kßsuxz]
|
||||
SFX C 0 estem [kßsuxz]
|
||||
SFX C 0 estes [kßsuxz]
|
||||
SFX C 0 st et
|
||||
SFX C 0 ste et
|
||||
SFX C 0 ster et
|
||||
SFX C 0 sten et
|
||||
SFX C 0 stem et
|
||||
SFX C 0 stes et
|
||||
SFX C 0 est [^e]t
|
||||
SFX C 0 este [^e]t
|
||||
SFX C 0 ester [^e]t
|
||||
SFX C 0 esten [^e]t
|
||||
SFX C 0 estem [^e]t
|
||||
SFX C 0 estes [^e]t
|
||||
SFX C 0 st [^kßstxz]
|
||||
SFX C 0 ste [^kßstxz]
|
||||
SFX C 0 ster [^kßstxz]
|
||||
SFX C 0 sten [^kßstxz]
|
||||
SFX C 0 stem [^kßstxz]
|
||||
SFX C 0 stes [^kßstxz]
|
||||
SFX C 0 st nd
|
||||
SFX C 0 ste nd
|
||||
SFX C 0 ster nd
|
||||
SFX C 0 sten nd
|
||||
SFX C 0 stem nd
|
||||
SFX C 0 stes nd
|
||||
SFX C 0 est [^n]d
|
||||
SFX C 0 este [^n]d
|
||||
SFX C 0 ester [^n]d
|
||||
SFX C 0 esten [^n]d
|
||||
SFX C 0 estem [^n]d
|
||||
SFX C 0 estes [^n]d
|
||||
SFX C lig eligst [^aeiouhlräüö]lig
|
||||
SFX C lig eligste [^aeiouhlräüö]lig
|
||||
SFX C lig eligster [^aeiouhlräüö]lig
|
||||
SFX C lig eligsten [^aeiouhlräüö]lig
|
||||
SFX C lig eligstem [^aeiouhlräüö]lig
|
||||
SFX C lig eligstes [^aeiouhlräüö]lig
|
||||
SFX C erig rigst [^hi]erig
|
||||
SFX C erig rigste [^hi]erig
|
||||
SFX C erig rigster [^hi]erig
|
||||
SFX C erig rigsten [^hi]erig
|
||||
SFX C erig rigstem [^hi]erig
|
||||
SFX C erig rigstes [^hi]erig
|
||||
|
||||
|
||||
SFX E Y 1
|
||||
SFX E 0 e .
|
||||
|
||||
|
||||
SFX f Y 4
|
||||
SFX f ph f ph
|
||||
SFX f ph fen ph
|
||||
SFX f phie fie phie
|
||||
SFX f phie fien phie
|
||||
|
||||
|
||||
SFX N Y 1
|
||||
SFX N 0 n .
|
||||
|
||||
|
||||
SFX P Y 1
|
||||
SFX P 0 en .
|
||||
|
||||
|
||||
SFX p Y 26
|
||||
SFX p auf äufe auf
|
||||
SFX p auf äufen auf
|
||||
SFX p aus äuser [hH]aus
|
||||
SFX p aus äusern [hH]aus
|
||||
SFX p arkt ärkte [mM]arkt
|
||||
SFX p arkt ärkten [mM]arkt
|
||||
SFX p ang änge ang
|
||||
SFX p ang ängen ang
|
||||
SFX p uß üße uß
|
||||
SFX p uß üßen uß
|
||||
SFX p oß öße oß
|
||||
SFX p oß ößen oß
|
||||
SFX p aum äume aum
|
||||
SFX p aum äumen aum
|
||||
SFX p ag äge ag
|
||||
SFX p ag ägen ag
|
||||
SFX p ug üge ug
|
||||
SFX p ug ügen ug
|
||||
SFX p all älle all
|
||||
SFX p all ällen all
|
||||
SFX p ass ässe ass
|
||||
SFX p ass ässen ass
|
||||
SFX p uss üsse uss
|
||||
SFX p uss üssen uss
|
||||
SFX p oss össe oss
|
||||
SFX p oss össen oss
|
||||
# last ...oss rules are for swiss de_CH only - but do not affect de_DE
|
||||
|
||||
|
||||
SFX R Y 3
|
||||
SFX R 0 er [^e]
|
||||
SFX R 0 ern [^e]
|
||||
SFX R 0 r e
|
||||
|
||||
|
||||
SFX S Y 1
|
||||
SFX S 0 s .
|
||||
|
||||
|
||||
SFX q Y 2
|
||||
SFX q 0 se s
|
||||
SFX q 0 sen s
|
||||
|
||||
|
||||
SFX Q Y 1
|
||||
SFX Q 0 ses s
|
||||
#SFX Q 0 se s
|
||||
#SFX Q 0 sen s
|
||||
|
||||
|
||||
SFX T Y 1
|
||||
SFX T 0 es .
|
||||
|
||||
|
||||
SFX J Y 12
|
||||
SFX J n ung [bgkpßsz]eln
|
||||
SFX J n ungen [bgkpßsz]eln
|
||||
SFX J eln lung eln
|
||||
SFX J n ung ern
|
||||
SFX J en ung en
|
||||
SFX J eln lungen eln
|
||||
SFX J n ungen ern
|
||||
SFX J en ungen en
|
||||
SFX J 0 ung [^n]
|
||||
SFX J 0 ungen [^n]
|
||||
SFX J el lung el
|
||||
SFX J el lungen el
|
||||
|
||||
|
||||
SFX B N 12
|
||||
SFX B n bar e[lr]n
|
||||
SFX B n bare e[lr]n
|
||||
SFX B n baren e[lr]n
|
||||
SFX B n barer e[lr]n
|
||||
SFX B n bares e[lr]n
|
||||
SFX B n barem e[lr]n
|
||||
SFX B en bar en
|
||||
SFX B en bare en
|
||||
SFX B en baren en
|
||||
SFX B en barer en
|
||||
SFX B en bares en
|
||||
SFX B en barem en
|
||||
|
||||
|
||||
SFX D Y 6
|
||||
SFX D 0 d n
|
||||
SFX D 0 de n
|
||||
SFX D 0 den n
|
||||
SFX D 0 der n
|
||||
SFX D 0 des n
|
||||
SFX D 0 dem n
|
||||
|
||||
|
||||
|
||||
SFX W Y 5
|
||||
SFX W en 0 en
|
||||
SFX W n 0 [^e]n
|
||||
SFX W st 0 [^s]st
|
||||
SFX W t 0 sst
|
||||
SFX W t 0 [^s]t
|
||||
|
||||
|
||||
SFX I Y 16
|
||||
SFX I n 0 en
|
||||
SFX I eln le eln
|
||||
SFX I n e eln
|
||||
SFX I ern re ern
|
||||
SFX I n e ern
|
||||
SFX I n t e[lr]n
|
||||
SFX I n t [dt]en
|
||||
SFX I en t [^dimnt]en
|
||||
SFX I en t eien
|
||||
SFX I n t [^e]ien
|
||||
SFX I n t chnen
|
||||
SFX I en t [^c]h[mn]en
|
||||
SFX I n t [^aäehilmnoöuür][mn]en
|
||||
SFX I en t [aäeilmnoöuür][mn]en
|
||||
SFX I n e un
|
||||
SFX I n t un
|
||||
|
||||
|
||||
SFX X Y 26
|
||||
SFX X n t e[lr]n
|
||||
SFX X n t [dtw]en
|
||||
SFX X en t eien
|
||||
SFX X n t [^e]ien
|
||||
SFX X en t [^ditmnw]en
|
||||
SFX X n t chnen
|
||||
SFX X en t [^c]h[mn]en
|
||||
SFX X n t [^aäehilmnoöuür][mn]en
|
||||
SFX X en t [aäeilmnoöuür][mn]en
|
||||
SFX X n t un
|
||||
SFX X st 0 tst
|
||||
SFX X n st e[lr]n
|
||||
SFX X n st [dtw]en
|
||||
SFX X en st [^dimnßstwzx]en
|
||||
SFX X en st eien
|
||||
SFX X n st [^e]ien
|
||||
SFX X n st chnen
|
||||
SFX X en st [^c]h[mn]en
|
||||
SFX X n st [^aäehilmnoöuür][mn]en
|
||||
SFX X en st [aäeilmnoöuür][mn]en
|
||||
SFX X n st un
|
||||
SFX X n st [ßsxz]en
|
||||
SFX X n st ssen
|
||||
SFX X n st schen
|
||||
SFX X t st [^sz]t
|
||||
SFX X t est zt
|
||||
|
||||
|
||||
SFX Y Y 36
|
||||
SFX Y n te e[lr]n
|
||||
SFX Y n te [dtw]en
|
||||
SFX Y en te [^dimntw]en
|
||||
SFX Y en te eien
|
||||
SFX Y n te [^e]ien
|
||||
SFX Y n te chnen
|
||||
SFX Y en te [^c]h[mn]en
|
||||
SFX Y n te [^aäehilmnoöuür][mn]en
|
||||
SFX Y en te [aäeilmnoöuür][mn]en
|
||||
SFX Y n test e[lr]n
|
||||
SFX Y n test [dtw]en
|
||||
SFX Y en test [^dimntw]en
|
||||
SFX Y en test eien
|
||||
SFX Y n test [^e]ien
|
||||
SFX Y n test chnen
|
||||
SFX Y en test [^c]h[mn]en
|
||||
SFX Y n test [^aäehilmnoöuür][mn]en
|
||||
SFX Y en test [aäeilmnoöuür][mn]en
|
||||
SFX Y n tet e[lr]n
|
||||
SFX Y n tet [dtw]en
|
||||
SFX Y en tet [^dimntw]en
|
||||
SFX Y en tet eien
|
||||
SFX Y n tet [^e]ien
|
||||
SFX Y n tet chnen
|
||||
SFX Y en tet [^c]h[mn]en
|
||||
SFX Y n tet [^aäehilmnoöuür][mn]en
|
||||
SFX Y en tet [aäeilmnoöuür][mn]en
|
||||
SFX Y n ten e[lr]n
|
||||
SFX Y n ten [dtw]en
|
||||
SFX Y en ten [^dimntw]en
|
||||
SFX Y en ten eien
|
||||
SFX Y n ten [^e]ien
|
||||
SFX Y n ten chnen
|
||||
SFX Y en ten [^c]h[mn]en
|
||||
SFX Y n ten [^aäehilmnoöuür][mn]en
|
||||
SFX Y en ten [aäeilmnoöuür][mn]en
|
||||
|
||||
|
||||
SFX Z Y 15
|
||||
SFX Z 0 st [^hßsz]
|
||||
SFX Z 0 st [^c]h
|
||||
SFX Z 0 st [^s]ch
|
||||
SFX Z 0 est [dfkstz]
|
||||
SFX Z 0 est ch
|
||||
SFX Z 0 est [au]ß
|
||||
SFX Z 0 est ieß
|
||||
SFX Z 0 est [io]ss
|
||||
SFX Z 0 t [^dt]
|
||||
SFX Z 0 et [dt]
|
||||
SFX Z 0 n e
|
||||
SFX Z 0 en ie
|
||||
SFX Z 0 en [^e]
|
||||
SFX Z 0 est iess
|
||||
SFX Z 0 est [au]ss
|
||||
# last two ...ss rules only used for swiss de_CH - but de_DE is unaffected
|
||||
|
||||
|
||||
SFX O Y 21
|
||||
SFX O n tes e[lr]n
|
||||
SFX O n tes [dtw]en
|
||||
SFX O en tes [^dmntw]en
|
||||
SFX O n tes chnen
|
||||
SFX O en tes [^c]h[mn]en
|
||||
SFX O n tes [^aäehilmnoöuür][mn]en
|
||||
SFX O en tes [aäeilmnoöuür][mn]en
|
||||
SFX O n ter e[lr]n
|
||||
SFX O n ter [dtw]en
|
||||
SFX O en ter [^dmntw]en
|
||||
SFX O n ter chnen
|
||||
SFX O en ter [^c]h[mn]en
|
||||
SFX O n ter [^aäehilmnoöuür][mn]en
|
||||
SFX O en ter [aäeilmnoöuür][mn]en
|
||||
SFX O n tem e[lr]n
|
||||
SFX O n tem [dtw]en
|
||||
SFX O en tem [^dmntw]en
|
||||
SFX O n tem chnen
|
||||
SFX O en tem [^c]h[mn]en
|
||||
SFX O n tem [^aäehilmnoöuür][mn]en
|
||||
SFX O en tem [aäeilmnoöuür][mn]en
|
||||
|
||||
REP 28
|
||||
REP f ph
|
||||
REP ph f
|
||||
REP ß ss
|
||||
REP ss ß
|
||||
REP s ss
|
||||
REP ss s
|
||||
REP i ie
|
||||
REP ie i
|
||||
REP ee e
|
||||
REP o oh
|
||||
REP oh o
|
||||
REP a ah
|
||||
REP ah a
|
||||
REP e eh
|
||||
REP eh e
|
||||
REP ae ä
|
||||
REP oe ö
|
||||
REP ue ü
|
||||
REP Ae Ä
|
||||
REP Oe Ö
|
||||
REP Ue Ü
|
||||
REP d t
|
||||
REP t d
|
||||
REP th t
|
||||
REP t th
|
||||
REP r rh
|
||||
REP ch k
|
||||
REP k ch
|
||||
#REP eee ee-E
|
||||
|
||||
|
||||
# this one will allow "-Eltern" - Hunspell 1.1.5 bug, but CHECKSHARPS obsoletes LANG de_DE
|
||||
#LANG de_DE
|
||||
CHECKSHARPS
|
||||
|
||||
|
||||
COMPOUNDBEGIN x
|
||||
COMPOUNDMIDDLE y
|
||||
COMPOUNDEND z
|
||||
FORBIDDENWORD d
|
||||
|
||||
# Prefixes are allowed at the beginning of compounds,
|
||||
# suffixes are allowed at the end of compounds by default:
|
||||
# (prefix)?(root)+(affix)?
|
||||
# Affixes with COMPOUNDPERMITFLAG may be inside of compounds.
|
||||
COMPOUNDPERMITFLAG c
|
||||
|
||||
ONLYINCOMPOUND o
|
||||
|
||||
# my PSEUDOROOT h(elper) flag
|
||||
NEEDAFFIX h
|
||||
|
||||
# forbid uppercase characters at compound word bounds
|
||||
# BUT I want to take care about it myself ;-)
|
||||
# CHECKCOMPOUNDCASE
|
||||
KEEPCASE w
|
||||
|
||||
# Affixes signed with CIRCUMFIX flag may be on a word when this word also has a prefix with CIRCUMFIX flag and vice versa.
|
||||
# for decapitalizing nouns with fogemorphemes
|
||||
CIRCUMFIX f
|
||||
|
||||
# this one would make a separate dict entry "Denkmalsschutz" invalidate the
|
||||
# compound of "Denkmal"+"schutz". We do not want this feature here...
|
||||
# CHECKCOMPOUNDREP
|
||||
|
||||
# make not all possible suggestions for typos of Flicken or some rare words
|
||||
NOSUGGEST n
|
||||
|
||||
WORDCHARS ß-.
|
||||
|
||||
# - setting this to 2 decreases performance by 1/10 but is needed for "öl" and "ei"
|
||||
# - setting this to 1 for handling Fuge-elements with dashes (Arbeits-) dash will
|
||||
# be a special word but - is handled as a affix now
|
||||
COMPOUNDMIN 2
|
||||
|
||||
# this ones are for Duden R36 (old orthography)
|
||||
#CHECKCOMPOUNDPATTERN 2 #oldspell
|
||||
#CHECKCOMPOUNDPATTERN ee e #oldspell
|
||||
#CHECKCOMPOUNDPATTERN oo o #oldspell
|
||||
# also need oo o
|
||||
|
||||
# this one needs to be flagable to be used for old orthography
|
||||
#CHECKCOMPOUNDTRIPLE
|
||||
|
||||
|
||||
PFX i Y 1
|
||||
PFX i 0 -/coyf .
|
||||
|
||||
SFX j Y 3
|
||||
SFX j 0 0/xoc .
|
||||
SFX j 0 -/zocf .
|
||||
SFX j 0 -/cz .
|
||||
|
||||
# Female forms for compound/Compound words:
|
||||
# attention: [^e][^n] does also filter out "...er" !
|
||||
SFX g Y 12
|
||||
SFX g 0 innen/xyoc [^n]
|
||||
SFX g en innen/xyoc en
|
||||
SFX g 0 Innen/xyoc [^n]
|
||||
SFX g en Innen/xyoc en
|
||||
SFX g 0 innen/xyocf [^n]
|
||||
SFX g en innen/xyocf en
|
||||
SFX g 0 Innen/xyocf [^n]
|
||||
SFX g en Innen/xyocf en
|
||||
SFX g 0 innen-/cz [^n]
|
||||
SFX g en innen-/cz en
|
||||
SFX g 0 Innen-/cz [^n]
|
||||
SFX g en Innen-/cz en
|
||||
|
||||
|
||||
PFX k Y 2
|
||||
PFX k 0 -/coxf .
|
||||
PFX k 0 0/coy .
|
||||
|
||||
SFX e Y 2
|
||||
SFX e 0 0/yoc .
|
||||
SFX e 0 -/zc .
|
||||
|
||||
# for Uppercased end-words to prepend - and lowercase: (Tier/EPSm) (EX: Bettbezüge und *-laken*)
|
||||
# AND
|
||||
# for lowercased end-words to prepend - and re-uppercase : (tier/EPSozm) (EX: Arbeits*-Tier*)
|
||||
#PFX m A -a/co A
|
||||
#PFX m a -/ a
|
||||
PFX m Y 58
|
||||
PFX m A -a A
|
||||
PFX m B -b B
|
||||
PFX m C -c C
|
||||
PFX m D -d D
|
||||
PFX m E -e E
|
||||
PFX m F -f F
|
||||
PFX m G -g G
|
||||
PFX m H -h H
|
||||
PFX m I -i I
|
||||
PFX m J -j J
|
||||
PFX m K -k K
|
||||
PFX m L -l L
|
||||
PFX m M -m M
|
||||
PFX m N -n N
|
||||
PFX m O -o O
|
||||
PFX m P -p P
|
||||
PFX m Q -q Q
|
||||
PFX m R -r R
|
||||
PFX m S -s S
|
||||
PFX m T -t T
|
||||
PFX m U -u U
|
||||
PFX m V -v V
|
||||
PFX m W -w W
|
||||
PFX m X -x X
|
||||
PFX m Y -y Y
|
||||
PFX m Z -z Z
|
||||
PFX m Ä -ä Ä
|
||||
PFX m Ö -ö Ö
|
||||
PFX m Ü -ü Ü
|
||||
PFX m a -A/co a
|
||||
PFX m b -B/co b
|
||||
PFX m c -C/co c
|
||||
PFX m d -D/co d
|
||||
PFX m e -E/co e
|
||||
PFX m f -F/co f
|
||||
PFX m g -G/co g
|
||||
PFX m h -H/co h
|
||||
PFX m i -I/co i
|
||||
PFX m j -J/co j
|
||||
PFX m k -K/co k
|
||||
PFX m l -L/co l
|
||||
PFX m m -M/co m
|
||||
PFX m n -N/co n
|
||||
PFX m o -O/co o
|
||||
PFX m p -P/co p
|
||||
PFX m q -Q/co q
|
||||
PFX m r -R/co r
|
||||
PFX m s -S/co s
|
||||
PFX m t -T/co t
|
||||
PFX m u -U/co u
|
||||
PFX m v -V/co v
|
||||
PFX m w -W/co w
|
||||
PFX m x -X/co x
|
||||
PFX m y -Y/co y
|
||||
PFX m z -Z/co z
|
||||
PFX m ä -Ä/co ä
|
||||
PFX m ö -Ö/co ö
|
||||
PFX m ü -Ü/co ü
|
||||
|
||||
|
||||
# Decapitalizing: (not used ATM... )
|
||||
# /co(f) : compound permit, in coumpount only, (decapitalizing with fogemorphemes)
|
||||
#PFX l Y 29
|
||||
#PFX l A a/co A
|
||||
#PFX l Ä ä/co Ä
|
||||
#PFX l B b/co B
|
||||
#PFX l C c/co C
|
||||
#PFX l D d/co D
|
||||
#PFX l E e/co E
|
||||
#PFX l F f/co F
|
||||
#PFX l G g/co G
|
||||
#PFX l H h/co H
|
||||
#PFX l I i/co I
|
||||
#PFX l J j/co J
|
||||
#PFX l K k/co K
|
||||
#PFX l L l/co L
|
||||
#PFX l M m/co M
|
||||
#PFX l N n/co N
|
||||
#PFX l O o/co O
|
||||
#PFX l Ö ö/co Ö
|
||||
#PFX l P p/co P
|
||||
#PFX l Q q/co Q
|
||||
#PFX l R r/co R
|
||||
#PFX l S s/co S
|
||||
#PFX l T t/co T
|
||||
#PFX l U u/co U
|
||||
#PFX l Ü ü/co Ü
|
||||
#PFX l V v/co V
|
||||
#PFX l W w/co W
|
||||
#PFX l X x/co X
|
||||
#PFX l Y y/co Y
|
||||
#PFX l Z z/co Z
|
||||
|
||||
# private hunspell flags:
|
||||
# --x : not for capmain (rare words)
|
||||
|
||||
# With "BREAK -" some wrong forms are accepted but that is needed for US-Wirtschaft etc.
|
||||
# So enabling this is the lesser evil. No perfect solution found so far...
|
||||
BREAK 2
|
||||
BREAK -
|
||||
BREAK .
|
||||
|
File diff suppressed because it is too large
Load diff
|
@ -1,45 +0,0 @@
|
|||
|
||||
COMMENT OF THE EXTENSION OWNER
|
||||
|
||||
|
||||
Compatibility
|
||||
=============
|
||||
This extension is compatible with:
|
||||
- ApacheOpenOffice (Version 3.4)
|
||||
- LibreOffice (Versions 3.3, 3.4, 3.5)
|
||||
- OpenOffice.org (Versions 3.0 or later)
|
||||
|
||||
Spell checking
|
||||
==============
|
||||
de-CH_frami
|
||||
Version: 2012-06-09
|
||||
Author: Franz Michael Baumann <fm.baumann@uni-muenster.de>
|
||||
Based on igerman98 dictionary:
|
||||
Version: 2012-06-07
|
||||
Author: Björn Jacke <bjoern@j3e.de>
|
||||
Download: http://www.j3e.de/ispell/igerman98/dict/
|
||||
License: GNU GPL Version 2 or GPL Version 3 or OASIS 0.1
|
||||
|
||||
The frami dictionary contains the complete word list of igerman98
|
||||
and in addition numerous supplements by Franz Michael Baumann according to
|
||||
the reform of 2006-08-01.
|
||||
|
||||
Hyphenation
|
||||
===========
|
||||
Version: 2012-06-09
|
||||
Enhanced blacklist to improve the hyphenation module by Karl Zeiler
|
||||
Authors: Marco Huggenberger <marco@by-night.ch>
|
||||
Daniel Naber <naber@danielnaber.de>
|
||||
License: GNU LGPL Version 2.1 or later
|
||||
|
||||
Thesaurus
|
||||
=========
|
||||
OpenThesaurus - Deutscher Thesaurus - Synonyme und Assoziationen
|
||||
Version: 2012-06-15 CH
|
||||
License: GNU LGPL Version 2.1 or later
|
||||
http://www.openthesaurus.de
|
||||
|
||||
Please note
|
||||
===========
|
||||
Detecting errors or missing words, please contact the extension owner:
|
||||
Karl Zeiler <karl.zeiler@t-online.de>
|
|
@ -1,717 +0,0 @@
|
|||
# this is the affix file of the de_DE Hunspell dictionary
|
||||
# derived from the igerman98 dictionary
|
||||
#
|
||||
# Version: 20090107+frami20090221 (build 20090221)
|
||||
#
|
||||
# Copyright (C) 1998-2009 Bjoern Jacke <bjoern@j3e.de>
|
||||
#
|
||||
# License: GPLv2, GPLv3 or OASIS distribution license agreement
|
||||
# There should be a copy of both of this licenses included
|
||||
# with every distribution of this dictionary. Modified
|
||||
# versions using the GPL may only include the GPL
|
||||
|
||||
SET ISO8859-1
|
||||
TRY esijanrtolcdugmphbyfvkwqxzäüößáéêàâñESIJANRTOLCDUGMPHBYFVKWQXZÄÜÖÉ-.
|
||||
|
||||
PFX U Y 1
|
||||
PFX U 0 un .
|
||||
|
||||
PFX V Y 1
|
||||
PFX V 0 ver .
|
||||
|
||||
SFX F Y 35
|
||||
SFX F 0 nen in
|
||||
SFX F e in e
|
||||
SFX F e innen e
|
||||
SFX F 0 in [^i]n
|
||||
SFX F 0 innen [^i]n
|
||||
SFX F 0 in [^enr]
|
||||
SFX F 0 innen [^enr]
|
||||
SFX F 0 in [^e]r
|
||||
SFX F 0 innen [^e]r
|
||||
SFX F 0 in [^r]er
|
||||
SFX F 0 innen [^r]er
|
||||
SFX F 0 in [^e]rer
|
||||
SFX F 0 innen [^e]rer
|
||||
SFX F 0 in ierer
|
||||
SFX F 0 innen ierer
|
||||
SFX F er in [^i]erer
|
||||
SFX F er innen [^i]erer
|
||||
SFX F in In in
|
||||
SFX F in Innen in
|
||||
SFX F e In e
|
||||
SFX F e Innen e
|
||||
SFX F 0 In [^i]n
|
||||
SFX F 0 Innen [^i]n
|
||||
SFX F 0 In [^en]
|
||||
SFX F 0 Innen [^en]
|
||||
SFX F 0 In [^e]r
|
||||
SFX F 0 Innen [^e]r
|
||||
SFX F 0 In [^r]er
|
||||
SFX F 0 Innen [^r]er
|
||||
SFX F 0 In [^e]rer
|
||||
SFX F 0 Innen [^e]rer
|
||||
SFX F 0 In ierer
|
||||
SFX F 0 Innen ierer
|
||||
SFX F er In [^i]erer
|
||||
SFX F er Innen [^i]erer
|
||||
#SFX F en innen en
|
||||
#SFX F en Innen en
|
||||
|
||||
|
||||
SFX L N 12
|
||||
SFX L 0 tlich n
|
||||
SFX L 0 tliche n
|
||||
SFX L 0 tlicher n
|
||||
SFX L 0 tliches n
|
||||
SFX L 0 tlichem n
|
||||
SFX L 0 tlichen n
|
||||
SFX L 0 lich [^n]
|
||||
SFX L 0 liche [^n]
|
||||
SFX L 0 licher [^n]
|
||||
SFX L 0 liches [^n]
|
||||
SFX L 0 lichem [^n]
|
||||
SFX L 0 lichen [^n]
|
||||
|
||||
|
||||
#SFX H N 2
|
||||
#SFX H 0 heit .
|
||||
#SFX H 0 heiten .
|
||||
|
||||
|
||||
#SFX K N 2
|
||||
#SFX K 0 keit .
|
||||
#SFX K 0 keiten .
|
||||
|
||||
|
||||
SFX M N 10
|
||||
SFX M 0 chen [^se]
|
||||
SFX M 0 chens [^se]
|
||||
SFX M ass ässchen ass
|
||||
SFX M ass ässchens ass
|
||||
SFX M oss össchen oss
|
||||
SFX M oss össchens oss
|
||||
SFX M uss üsschen uss
|
||||
SFX M uss üsschens uss
|
||||
SFX M e chen e
|
||||
SFX M e chens e
|
||||
|
||||
|
||||
SFX A Y 46
|
||||
SFX A 0 r e
|
||||
SFX A 0 n e
|
||||
SFX A 0 m e
|
||||
SFX A 0 s e
|
||||
SFX A 0 e [^elr]
|
||||
SFX A 0 er [^elr]
|
||||
SFX A 0 en [^elr]
|
||||
SFX A 0 em [^elr]
|
||||
SFX A 0 es [^elr]
|
||||
SFX A 0 e [^e][rl]
|
||||
SFX A 0 er [^e][rl]
|
||||
SFX A 0 en [^e][rl]
|
||||
SFX A 0 em [^e][rl]
|
||||
SFX A 0 es [^e][rl]
|
||||
SFX A 0 e [^u]er
|
||||
SFX A 0 er [^u]er
|
||||
SFX A 0 en [^u]er
|
||||
SFX A 0 em [^u]er
|
||||
SFX A 0 es [^u]er
|
||||
SFX A er re uer
|
||||
SFX A er rer uer
|
||||
SFX A er ren uer
|
||||
SFX A er rem uer
|
||||
SFX A er res uer
|
||||
SFX A 0 e [eil]el
|
||||
SFX A 0 er [eil]el
|
||||
SFX A 0 en [eil]el
|
||||
SFX A 0 em [eil]el
|
||||
SFX A 0 es [eil]el
|
||||
SFX A el le [^eil]el
|
||||
SFX A el ler [^eil]el
|
||||
SFX A el len [^eil]el
|
||||
SFX A el lem [^eil]el
|
||||
SFX A el les [^eil]el
|
||||
SFX A lig elig [^aeiouhlräüö]lig
|
||||
SFX A lig elige [^aeiouhlräüö]lig
|
||||
SFX A lig eliger [^aeiouhlräüö]lig
|
||||
SFX A lig eligen [^aeiouhlräüö]lig
|
||||
SFX A lig eligem [^aeiouhlräüö]lig
|
||||
SFX A lig eliges [^aeiouhlräüö]lig
|
||||
SFX A erig rig [^hi]erig
|
||||
SFX A erig rige [^hi]erig
|
||||
SFX A erig riger [^hi]erig
|
||||
SFX A erig rigen [^hi]erig
|
||||
SFX A erig rigem [^hi]erig
|
||||
SFX A erig riges [^hi]erig
|
||||
|
||||
|
||||
SFX C Y 88
|
||||
SFX C 0 ere [^elr]
|
||||
SFX C 0 erer [^elr]
|
||||
SFX C 0 eren [^elr]
|
||||
SFX C 0 erem [^elr]
|
||||
SFX C 0 eres [^elr]
|
||||
SFX C 0 re e
|
||||
SFX C 0 rer e
|
||||
SFX C 0 ren e
|
||||
SFX C 0 rem e
|
||||
SFX C 0 res e
|
||||
SFX C 0 ere [^e][lr]
|
||||
SFX C 0 erer [^e][lr]
|
||||
SFX C 0 eren [^e][lr]
|
||||
SFX C 0 erem [^e][lr]
|
||||
SFX C 0 eres [^e][lr]
|
||||
SFX C el lere el
|
||||
SFX C el lerer el
|
||||
SFX C el leren el
|
||||
SFX C el lerem el
|
||||
SFX C el leres el
|
||||
SFX C er rere uer
|
||||
SFX C er rerer uer
|
||||
SFX C er reren uer
|
||||
SFX C er rerem uer
|
||||
SFX C er reres uer
|
||||
SFX C 0 ere [^u]er
|
||||
SFX C 0 erer [^u]er
|
||||
SFX C 0 eren [^u]er
|
||||
SFX C 0 erem [^u]er
|
||||
SFX C 0 eres [^u]er
|
||||
SFX C lig eligere [^aeiouhlräüö]lig
|
||||
SFX C lig eligerer [^aeiouhlräüö]lig
|
||||
SFX C lig eligeren [^aeiouhlräüö]lig
|
||||
SFX C lig eligerem [^aeiouhlräüö]lig
|
||||
SFX C lig eligeres [^aeiouhlräüö]lig
|
||||
SFX C erig rigere [^hi]erig
|
||||
SFX C erig rigerer [^hi]erig
|
||||
SFX C erig rigeren [^hi]erig
|
||||
SFX C erig rigerem [^hi]erig
|
||||
SFX C erig rigeres [^hi]erig
|
||||
SFX C 0 est [kßsuxz]
|
||||
SFX C 0 este [kßsuxz]
|
||||
SFX C 0 ester [kßsuxz]
|
||||
SFX C 0 esten [kßsuxz]
|
||||
SFX C 0 estem [kßsuxz]
|
||||
SFX C 0 estes [kßsuxz]
|
||||
SFX C 0 st et
|
||||
SFX C 0 ste et
|
||||
SFX C 0 ster et
|
||||
SFX C 0 sten et
|
||||
SFX C 0 stem et
|
||||
SFX C 0 stes et
|
||||
SFX C 0 est [^e]t
|
||||
SFX C 0 este [^e]t
|
||||
SFX C 0 ester [^e]t
|
||||
SFX C 0 esten [^e]t
|
||||
SFX C 0 estem [^e]t
|
||||
SFX C 0 estes [^e]t
|
||||
SFX C 0 st [^kßstxz]
|
||||
SFX C 0 ste [^kßstxz]
|
||||
SFX C 0 ster [^kßstxz]
|
||||
SFX C 0 sten [^kßstxz]
|
||||
SFX C 0 stem [^kßstxz]
|
||||
SFX C 0 stes [^kßstxz]
|
||||
SFX C 0 st nd
|
||||
SFX C 0 ste nd
|
||||
SFX C 0 ster nd
|
||||
SFX C 0 sten nd
|
||||
SFX C 0 stem nd
|
||||
SFX C 0 stes nd
|
||||
SFX C 0 est [^n]d
|
||||
SFX C 0 este [^n]d
|
||||
SFX C 0 ester [^n]d
|
||||
SFX C 0 esten [^n]d
|
||||
SFX C 0 estem [^n]d
|
||||
SFX C 0 estes [^n]d
|
||||
SFX C lig eligst [^aeiouhlräüö]lig
|
||||
SFX C lig eligste [^aeiouhlräüö]lig
|
||||
SFX C lig eligster [^aeiouhlräüö]lig
|
||||
SFX C lig eligsten [^aeiouhlräüö]lig
|
||||
SFX C lig eligstem [^aeiouhlräüö]lig
|
||||
SFX C lig eligstes [^aeiouhlräüö]lig
|
||||
SFX C erig rigst [^hi]erig
|
||||
SFX C erig rigste [^hi]erig
|
||||
SFX C erig rigster [^hi]erig
|
||||
SFX C erig rigsten [^hi]erig
|
||||
SFX C erig rigstem [^hi]erig
|
||||
SFX C erig rigstes [^hi]erig
|
||||
|
||||
|
||||
SFX E Y 1
|
||||
SFX E 0 e .
|
||||
|
||||
|
||||
SFX f Y 4
|
||||
SFX f ph f ph
|
||||
SFX f ph fen ph
|
||||
SFX f phie fie phie
|
||||
SFX f phie fien phie
|
||||
|
||||
|
||||
SFX N Y 1
|
||||
SFX N 0 n .
|
||||
|
||||
|
||||
SFX P Y 1
|
||||
SFX P 0 en .
|
||||
|
||||
|
||||
SFX p Y 26
|
||||
SFX p auf äufe auf
|
||||
SFX p auf äufen auf
|
||||
SFX p aus äuser [hH]aus
|
||||
SFX p aus äusern [hH]aus
|
||||
SFX p arkt ärkte [mM]arkt
|
||||
SFX p arkt ärkten [mM]arkt
|
||||
SFX p ang änge ang
|
||||
SFX p ang ängen ang
|
||||
SFX p uß üße uß
|
||||
SFX p uß üßen uß
|
||||
SFX p oß öße oß
|
||||
SFX p oß ößen oß
|
||||
SFX p aum äume aum
|
||||
SFX p aum äumen aum
|
||||
SFX p ag äge ag
|
||||
SFX p ag ägen ag
|
||||
SFX p ug üge ug
|
||||
SFX p ug ügen ug
|
||||
SFX p all älle all
|
||||
SFX p all ällen all
|
||||
SFX p ass ässe ass
|
||||
SFX p ass ässen ass
|
||||
SFX p uss üsse uss
|
||||
SFX p uss üssen uss
|
||||
SFX p oss össe oss
|
||||
SFX p oss össen oss
|
||||
# last ...oss rules are for swiss de_CH only - but do not affect de_DE
|
||||
|
||||
|
||||
SFX R Y 3
|
||||
SFX R 0 er [^e]
|
||||
SFX R 0 ern [^e]
|
||||
SFX R 0 r e
|
||||
|
||||
|
||||
SFX S Y 1
|
||||
SFX S 0 s .
|
||||
|
||||
|
||||
SFX q Y 2
|
||||
SFX q 0 se s
|
||||
SFX q 0 sen s
|
||||
|
||||
|
||||
SFX Q Y 1
|
||||
SFX Q 0 ses s
|
||||
#SFX Q 0 se s
|
||||
#SFX Q 0 sen s
|
||||
|
||||
|
||||
SFX T Y 1
|
||||
SFX T 0 es .
|
||||
|
||||
|
||||
SFX J Y 12
|
||||
SFX J n ung [bgkpßsz]eln
|
||||
SFX J n ungen [bgkpßsz]eln
|
||||
SFX J eln lung eln
|
||||
SFX J n ung ern
|
||||
SFX J en ung en
|
||||
SFX J eln lungen eln
|
||||
SFX J n ungen ern
|
||||
SFX J en ungen en
|
||||
SFX J 0 ung [^n]
|
||||
SFX J 0 ungen [^n]
|
||||
SFX J el lung el
|
||||
SFX J el lungen el
|
||||
|
||||
|
||||
SFX B N 12
|
||||
SFX B n bar e[lr]n
|
||||
SFX B n bare e[lr]n
|
||||
SFX B n baren e[lr]n
|
||||
SFX B n barer e[lr]n
|
||||
SFX B n bares e[lr]n
|
||||
SFX B n barem e[lr]n
|
||||
SFX B en bar en
|
||||
SFX B en bare en
|
||||
SFX B en baren en
|
||||
SFX B en barer en
|
||||
SFX B en bares en
|
||||
SFX B en barem en
|
||||
|
||||
|
||||
SFX D Y 6
|
||||
SFX D 0 d n
|
||||
SFX D 0 de n
|
||||
SFX D 0 den n
|
||||
SFX D 0 der n
|
||||
SFX D 0 des n
|
||||
SFX D 0 dem n
|
||||
|
||||
|
||||
|
||||
SFX W Y 5
|
||||
SFX W en 0 en
|
||||
SFX W n 0 [^e]n
|
||||
SFX W st 0 [^s]st
|
||||
SFX W t 0 sst
|
||||
SFX W t 0 [^s]t
|
||||
|
||||
|
||||
SFX I Y 16
|
||||
SFX I n 0 en
|
||||
SFX I eln le eln
|
||||
SFX I n e eln
|
||||
SFX I ern re ern
|
||||
SFX I n e ern
|
||||
SFX I n t e[lr]n
|
||||
SFX I n t [dt]en
|
||||
SFX I en t [^dimnt]en
|
||||
SFX I en t eien
|
||||
SFX I n t [^e]ien
|
||||
SFX I n t chnen
|
||||
SFX I en t [^c]h[mn]en
|
||||
SFX I n t [^aäehilmnoöuür][mn]en
|
||||
SFX I en t [aäeilmnoöuür][mn]en
|
||||
SFX I n e un
|
||||
SFX I n t un
|
||||
|
||||
|
||||
SFX X Y 26
|
||||
SFX X n t e[lr]n
|
||||
SFX X n t [dtw]en
|
||||
SFX X en t eien
|
||||
SFX X n t [^e]ien
|
||||
SFX X en t [^ditmnw]en
|
||||
SFX X n t chnen
|
||||
SFX X en t [^c]h[mn]en
|
||||
SFX X n t [^aäehilmnoöuür][mn]en
|
||||
SFX X en t [aäeilmnoöuür][mn]en
|
||||
SFX X n t un
|
||||
SFX X st 0 tst
|
||||
SFX X n st e[lr]n
|
||||
SFX X n st [dtw]en
|
||||
SFX X en st [^dimnßstwzx]en
|
||||
SFX X en st eien
|
||||
SFX X n st [^e]ien
|
||||
SFX X n st chnen
|
||||
SFX X en st [^c]h[mn]en
|
||||
SFX X n st [^aäehilmnoöuür][mn]en
|
||||
SFX X en st [aäeilmnoöuür][mn]en
|
||||
SFX X n st un
|
||||
SFX X n st [ßsxz]en
|
||||
SFX X n st ssen
|
||||
SFX X n st schen
|
||||
SFX X t st [^sz]t
|
||||
SFX X t est zt
|
||||
|
||||
|
||||
SFX Y Y 36
|
||||
SFX Y n te e[lr]n
|
||||
SFX Y n te [dtw]en
|
||||
SFX Y en te [^dimntw]en
|
||||
SFX Y en te eien
|
||||
SFX Y n te [^e]ien
|
||||
SFX Y n te chnen
|
||||
SFX Y en te [^c]h[mn]en
|
||||
SFX Y n te [^aäehilmnoöuür][mn]en
|
||||
SFX Y en te [aäeilmnoöuür][mn]en
|
||||
SFX Y n test e[lr]n
|
||||
SFX Y n test [dtw]en
|
||||
SFX Y en test [^dimntw]en
|
||||
SFX Y en test eien
|
||||
SFX Y n test [^e]ien
|
||||
SFX Y n test chnen
|
||||
SFX Y en test [^c]h[mn]en
|
||||
SFX Y n test [^aäehilmnoöuür][mn]en
|
||||
SFX Y en test [aäeilmnoöuür][mn]en
|
||||
SFX Y n tet e[lr]n
|
||||
SFX Y n tet [dtw]en
|
||||
SFX Y en tet [^dimntw]en
|
||||
SFX Y en tet eien
|
||||
SFX Y n tet [^e]ien
|
||||
SFX Y n tet chnen
|
||||
SFX Y en tet [^c]h[mn]en
|
||||
SFX Y n tet [^aäehilmnoöuür][mn]en
|
||||
SFX Y en tet [aäeilmnoöuür][mn]en
|
||||
SFX Y n ten e[lr]n
|
||||
SFX Y n ten [dtw]en
|
||||
SFX Y en ten [^dimntw]en
|
||||
SFX Y en ten eien
|
||||
SFX Y n ten [^e]ien
|
||||
SFX Y n ten chnen
|
||||
SFX Y en ten [^c]h[mn]en
|
||||
SFX Y n ten [^aäehilmnoöuür][mn]en
|
||||
SFX Y en ten [aäeilmnoöuür][mn]en
|
||||
|
||||
|
||||
SFX Z Y 15
|
||||
SFX Z 0 st [^hßsz]
|
||||
SFX Z 0 st [^c]h
|
||||
SFX Z 0 st [^s]ch
|
||||
SFX Z 0 est [dfkstz]
|
||||
SFX Z 0 est ch
|
||||
SFX Z 0 est [au]ß
|
||||
SFX Z 0 est ieß
|
||||
SFX Z 0 est [io]ss
|
||||
SFX Z 0 t [^dt]
|
||||
SFX Z 0 et [dt]
|
||||
SFX Z 0 n e
|
||||
SFX Z 0 en ie
|
||||
SFX Z 0 en [^e]
|
||||
SFX Z 0 est iess
|
||||
SFX Z 0 est [au]ss
|
||||
# last two ...ss rules only used for swiss de_CH - but de_DE is unaffected
|
||||
|
||||
|
||||
SFX O Y 21
|
||||
SFX O n tes e[lr]n
|
||||
SFX O n tes [dtw]en
|
||||
SFX O en tes [^dmntw]en
|
||||
SFX O n tes chnen
|
||||
SFX O en tes [^c]h[mn]en
|
||||
SFX O n tes [^aäehilmnoöuür][mn]en
|
||||
SFX O en tes [aäeilmnoöuür][mn]en
|
||||
SFX O n ter e[lr]n
|
||||
SFX O n ter [dtw]en
|
||||
SFX O en ter [^dmntw]en
|
||||
SFX O n ter chnen
|
||||
SFX O en ter [^c]h[mn]en
|
||||
SFX O n ter [^aäehilmnoöuür][mn]en
|
||||
SFX O en ter [aäeilmnoöuür][mn]en
|
||||
SFX O n tem e[lr]n
|
||||
SFX O n tem [dtw]en
|
||||
SFX O en tem [^dmntw]en
|
||||
SFX O n tem chnen
|
||||
SFX O en tem [^c]h[mn]en
|
||||
SFX O n tem [^aäehilmnoöuür][mn]en
|
||||
SFX O en tem [aäeilmnoöuür][mn]en
|
||||
|
||||
REP 28
|
||||
REP f ph
|
||||
REP ph f
|
||||
REP ß ss
|
||||
REP ss ß
|
||||
REP s ss
|
||||
REP ss s
|
||||
REP i ie
|
||||
REP ie i
|
||||
REP ee e
|
||||
REP o oh
|
||||
REP oh o
|
||||
REP a ah
|
||||
REP ah a
|
||||
REP e eh
|
||||
REP eh e
|
||||
REP ae ä
|
||||
REP oe ö
|
||||
REP ue ü
|
||||
REP Ae Ä
|
||||
REP Oe Ö
|
||||
REP Ue Ü
|
||||
REP d t
|
||||
REP t d
|
||||
REP th t
|
||||
REP t th
|
||||
REP r rh
|
||||
REP ch k
|
||||
REP k ch
|
||||
#REP eee ee-E
|
||||
|
||||
|
||||
# this one will allow "-Eltern" - Hunspell 1.1.5 bug, but CHECKSHARPS obsoletes LANG de_DE
|
||||
#LANG de_DE
|
||||
CHECKSHARPS
|
||||
|
||||
|
||||
COMPOUNDBEGIN x
|
||||
COMPOUNDMIDDLE y
|
||||
COMPOUNDEND z
|
||||
FORBIDDENWORD d
|
||||
|
||||
# Prefixes are allowed at the beginning of compounds,
|
||||
# suffixes are allowed at the end of compounds by default:
|
||||
# (prefix)?(root)+(affix)?
|
||||
# Affixes with COMPOUNDPERMITFLAG may be inside of compounds.
|
||||
COMPOUNDPERMITFLAG c
|
||||
|
||||
ONLYINCOMPOUND o
|
||||
|
||||
# my PSEUDOROOT h(elper) flag
|
||||
NEEDAFFIX h
|
||||
|
||||
# forbid uppercase characters at compound word bounds
|
||||
# BUT I want to take care about it myself ;-)
|
||||
# CHECKCOMPOUNDCASE
|
||||
KEEPCASE w
|
||||
|
||||
# Affixes signed with CIRCUMFIX flag may be on a word when this word also has a prefix with CIRCUMFIX flag and vice versa.
|
||||
# for decapitalizing nouns with fogemorphemes
|
||||
CIRCUMFIX f
|
||||
|
||||
# this one would make a separate dict entry "Denkmalsschutz" invalidate the
|
||||
# compound of "Denkmal"+"schutz". We do not want this feature here...
|
||||
# CHECKCOMPOUNDREP
|
||||
|
||||
# make not all possible suggestions for typos of Flicken or some rare words
|
||||
NOSUGGEST n
|
||||
|
||||
WORDCHARS ß-.
|
||||
|
||||
# - setting this to 2 decreases performance by 1/10 but is needed for "öl" and "ei"
|
||||
# - setting this to 1 for handling Fuge-elements with dashes (Arbeits-) dash will
|
||||
# be a special word but - is handled as a affix now
|
||||
COMPOUNDMIN 2
|
||||
|
||||
# this ones are for Duden R36 (old orthography)
|
||||
#CHECKCOMPOUNDPATTERN 2
|
||||
#CHECKCOMPOUNDPATTERN ee e
|
||||
#CHECKCOMPOUNDPATTERN oo o
|
||||
# also need oo o
|
||||
|
||||
# this one needs to be flagable to be used for old orthography
|
||||
#CHECKCOMPOUNDTRIPLE
|
||||
|
||||
|
||||
PFX i Y 1
|
||||
PFX i 0 -/coyf .
|
||||
|
||||
SFX j Y 3
|
||||
SFX j 0 0/xoc .
|
||||
SFX j 0 -/zocf .
|
||||
SFX j 0 -/cz .
|
||||
|
||||
# Female forms for compound/Compound words:
|
||||
# attention: [^e][^n] does also filter out "...er" !
|
||||
SFX g Y 12
|
||||
SFX g 0 innen/xyoc [^n]
|
||||
SFX g en innen/xyoc en
|
||||
SFX g 0 Innen/xyoc [^n]
|
||||
SFX g en Innen/xyoc en
|
||||
SFX g 0 innen/xyocf [^n]
|
||||
SFX g en innen/xyocf en
|
||||
SFX g 0 Innen/xyocf [^n]
|
||||
SFX g en Innen/xyocf en
|
||||
SFX g 0 innen-/cz [^n]
|
||||
SFX g en innen-/cz en
|
||||
SFX g 0 Innen-/cz [^n]
|
||||
SFX g en Innen-/cz en
|
||||
|
||||
|
||||
PFX k Y 2
|
||||
PFX k 0 -/coxf .
|
||||
PFX k 0 0/coy .
|
||||
|
||||
SFX e Y 2
|
||||
SFX e 0 0/yoc .
|
||||
SFX e 0 -/zc .
|
||||
|
||||
# for Uppercased end-words to prepend - and lowercase: (Tier/EPSm) (EX: Bettbezüge und *-laken*)
|
||||
# AND
|
||||
# for lowercased end-words to prepend - and re-uppercase : (tier/EPSozm) (EX: Arbeits*-Tier*)
|
||||
#PFX m A -a/co A
|
||||
#PFX m a -/ a
|
||||
PFX m Y 58
|
||||
PFX m A -a A
|
||||
PFX m B -b B
|
||||
PFX m C -c C
|
||||
PFX m D -d D
|
||||
PFX m E -e E
|
||||
PFX m F -f F
|
||||
PFX m G -g G
|
||||
PFX m H -h H
|
||||
PFX m I -i I
|
||||
PFX m J -j J
|
||||
PFX m K -k K
|
||||
PFX m L -l L
|
||||
PFX m M -m M
|
||||
PFX m N -n N
|
||||
PFX m O -o O
|
||||
PFX m P -p P
|
||||
PFX m Q -q Q
|
||||
PFX m R -r R
|
||||
PFX m S -s S
|
||||
PFX m T -t T
|
||||
PFX m U -u U
|
||||
PFX m V -v V
|
||||
PFX m W -w W
|
||||
PFX m X -x X
|
||||
PFX m Y -y Y
|
||||
PFX m Z -z Z
|
||||
PFX m Ä -ä Ä
|
||||
PFX m Ö -ö Ö
|
||||
PFX m Ü -ü Ü
|
||||
PFX m a -A/co a
|
||||
PFX m b -B/co b
|
||||
PFX m c -C/co c
|
||||
PFX m d -D/co d
|
||||
PFX m e -E/co e
|
||||
PFX m f -F/co f
|
||||
PFX m g -G/co g
|
||||
PFX m h -H/co h
|
||||
PFX m i -I/co i
|
||||
PFX m j -J/co j
|
||||
PFX m k -K/co k
|
||||
PFX m l -L/co l
|
||||
PFX m m -M/co m
|
||||
PFX m n -N/co n
|
||||
PFX m o -O/co o
|
||||
PFX m p -P/co p
|
||||
PFX m q -Q/co q
|
||||
PFX m r -R/co r
|
||||
PFX m s -S/co s
|
||||
PFX m t -T/co t
|
||||
PFX m u -U/co u
|
||||
PFX m v -V/co v
|
||||
PFX m w -W/co w
|
||||
PFX m x -X/co x
|
||||
PFX m y -Y/co y
|
||||
PFX m z -Z/co z
|
||||
PFX m ä -Ä/co ä
|
||||
PFX m ö -Ö/co ö
|
||||
PFX m ü -Ü/co ü
|
||||
|
||||
|
||||
# Decapitalizing: (not used ATM... )
|
||||
# /co(f) : compound permit, in coumpount only, (decapitalizing with fogemorphemes)
|
||||
#PFX l Y 29
|
||||
#PFX l A a/co A
|
||||
#PFX l Ä ä/co Ä
|
||||
#PFX l B b/co B
|
||||
#PFX l C c/co C
|
||||
#PFX l D d/co D
|
||||
#PFX l E e/co E
|
||||
#PFX l F f/co F
|
||||
#PFX l G g/co G
|
||||
#PFX l H h/co H
|
||||
#PFX l I i/co I
|
||||
#PFX l J j/co J
|
||||
#PFX l K k/co K
|
||||
#PFX l L l/co L
|
||||
#PFX l M m/co M
|
||||
#PFX l N n/co N
|
||||
#PFX l O o/co O
|
||||
#PFX l Ö ö/co Ö
|
||||
#PFX l P p/co P
|
||||
#PFX l Q q/co Q
|
||||
#PFX l R r/co R
|
||||
#PFX l S s/co S
|
||||
#PFX l T t/co T
|
||||
#PFX l U u/co U
|
||||
#PFX l Ü ü/co Ü
|
||||
#PFX l V v/co V
|
||||
#PFX l W w/co W
|
||||
#PFX l X x/co X
|
||||
#PFX l Y y/co Y
|
||||
#PFX l Z z/co Z
|
||||
|
||||
# private hunspell flags:
|
||||
# --x : not for capmain (rare words)
|
||||
|
||||
# With "BREAK -" some wrong forms are accepted but that is needed for US-Wirtschaft etc.
|
||||
# So enabling this is the lesser evil. No perfect solution found so far...
|
||||
BREAK 2
|
||||
BREAK -
|
||||
BREAK .
|
||||
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -1,820 +0,0 @@
|
|||
# el_GR.aff
|
||||
# greek affix file
|
||||
# for MySpell (pspell)
|
||||
# GPL
|
||||
#
|
||||
#
|
||||
# LOG etc:
|
||||
# --------
|
||||
# Minor errors detected by Kevin Hendricks <kevin.hendricks@sympatico.ca>
|
||||
# and corrected by me 08/06/02 (evris)
|
||||
#
|
||||
# Fix the TRY order to be more useful. Added character mappings so the vowels
|
||||
# that have the same pronunciation be closely related to each other. Added a
|
||||
# replacement table to better describe the phonetic rules. 13/05/2004 (steve)
|
||||
#
|
||||
# Added 59 REP rules and one more letter for the TRY (patch by Nick Demou)
|
||||
#
|
||||
# Steve Stavropoulos <steve@math.upatras.gr> 01/05/2004
|
||||
#
|
||||
# Based on an older job :
|
||||
# Papakostas Evripidis evris@source.gr ep@rocketmail.com 27/01/02
|
||||
# Vryonis Panayotis vrypan@yassou.net 27/01/02
|
||||
#
|
||||
# Based on an older job :
|
||||
# greek.aff file
|
||||
# for ispell
|
||||
# Papakostas Evripidis evris@source.gr ep@rocketmail.com 1999
|
||||
#
|
||||
# Based on an older job :
|
||||
# ellhnika.aff for Greek language by Μήταλας Γιάννης and Σερασκέρης Νίκος
|
||||
# Καρλόβασι, Σάμος ,24-9-97
|
||||
|
||||
SET UTF-8
|
||||
# You are likely to forget the accent, so accented characters come first. If
|
||||
# you don't forget the accent, this order won't do any harm because it is higly
|
||||
# unlikely for a word that differs in one accented char plus some other mistake
|
||||
# to pop up in the possible suggestions (there has to be a closer match granted
|
||||
# that the word you are looking for exists).
|
||||
TRY άόίϊΐέήύϋΰώιηυωοεατνρσκμπλςγδθφβζξψχ
|
||||
|
||||
MAP 5
|
||||
MAP αά
|
||||
MAP εέ
|
||||
MAP ωώοό
|
||||
MAP ηήύϋυιίϊΐ
|
||||
MAP σς
|
||||
|
||||
# Do we have to put the accented characters in here or the MAP above is enough?
|
||||
# ANSWER: Looks like it is not! Maybe the map is only useful for the
|
||||
# suggestion order...
|
||||
#
|
||||
# Because of the automatic generation of the following REP there are some
|
||||
# combinations of letters that the greek language never uses, but I don't
|
||||
# think they will do any harm.
|
||||
REP 523
|
||||
REP α ά
|
||||
REP ά α
|
||||
REP γκ γγ
|
||||
REP γγ γκ
|
||||
REP πσ ψ
|
||||
REP ψ πσ
|
||||
REP κσ ξ
|
||||
REP ξ κσ
|
||||
REP άΰ άΰ
|
||||
REP άΰ άβ
|
||||
REP άΰ άυ
|
||||
REP άΰ άϋ
|
||||
REP άΰ άύ
|
||||
REP άΰ αΰ
|
||||
REP άΰ αβ
|
||||
REP άΰ αυ
|
||||
REP άΰ αϋ
|
||||
REP άΰ αύ
|
||||
REP άβ άΰ
|
||||
REP άβ άβ
|
||||
REP άβ άυ
|
||||
REP άβ άϋ
|
||||
REP άβ άύ
|
||||
REP άβ αΰ
|
||||
REP άβ αβ
|
||||
REP άβ αυ
|
||||
REP άβ αϋ
|
||||
REP άβ αύ
|
||||
REP άυ άΰ
|
||||
REP άυ άβ
|
||||
REP άυ άυ
|
||||
REP άυ άϋ
|
||||
REP άυ άύ
|
||||
REP άυ αΰ
|
||||
REP άυ αβ
|
||||
REP άυ αυ
|
||||
REP άυ αϋ
|
||||
REP άυ αύ
|
||||
REP άϋ άΰ
|
||||
REP άϋ άβ
|
||||
REP άϋ άυ
|
||||
REP άϋ άϋ
|
||||
REP άϋ άύ
|
||||
REP άϋ αΰ
|
||||
REP άϋ αβ
|
||||
REP άϋ αυ
|
||||
REP άϋ αϋ
|
||||
REP άϋ αύ
|
||||
REP άύ άΰ
|
||||
REP άύ άβ
|
||||
REP άύ άυ
|
||||
REP άύ άϋ
|
||||
REP άύ άύ
|
||||
REP άύ αΰ
|
||||
REP άύ αβ
|
||||
REP άύ αυ
|
||||
REP άύ αϋ
|
||||
REP άύ αύ
|
||||
REP αΰ άΰ
|
||||
REP αΰ άβ
|
||||
REP αΰ άυ
|
||||
REP αΰ άϋ
|
||||
REP αΰ άύ
|
||||
REP αΰ αΰ
|
||||
REP αΰ αβ
|
||||
REP αΰ αυ
|
||||
REP αΰ αϋ
|
||||
REP αΰ αύ
|
||||
REP αβ άΰ
|
||||
REP αβ άβ
|
||||
REP αβ άυ
|
||||
REP αβ άϋ
|
||||
REP αβ άύ
|
||||
REP αβ αΰ
|
||||
REP αβ αβ
|
||||
REP αβ αυ
|
||||
REP αβ αϋ
|
||||
REP αβ αύ
|
||||
REP αυ άΰ
|
||||
REP αυ άβ
|
||||
REP αυ άυ
|
||||
REP αυ άϋ
|
||||
REP αυ άύ
|
||||
REP αυ αΰ
|
||||
REP αυ αβ
|
||||
REP αυ αυ
|
||||
REP αυ αϋ
|
||||
REP αυ αύ
|
||||
REP αϋ άΰ
|
||||
REP αϋ άβ
|
||||
REP αϋ άυ
|
||||
REP αϋ άϋ
|
||||
REP αϋ άύ
|
||||
REP αϋ αΰ
|
||||
REP αϋ αβ
|
||||
REP αϋ αυ
|
||||
REP αϋ αϋ
|
||||
REP αϋ αύ
|
||||
REP αύ άΰ
|
||||
REP αύ άβ
|
||||
REP αύ άυ
|
||||
REP αύ άϋ
|
||||
REP αύ άύ
|
||||
REP αύ αΰ
|
||||
REP αύ αβ
|
||||
REP αύ αυ
|
||||
REP αύ αϋ
|
||||
REP αύ αύ
|
||||
REP ι ί
|
||||
REP ί ι
|
||||
REP ι ϊ
|
||||
REP ϊ ι
|
||||
REP ι ΐ
|
||||
REP ΐ ι
|
||||
REP ι η
|
||||
REP η ι
|
||||
REP ι ή
|
||||
REP ή ι
|
||||
REP ι υ
|
||||
REP υ ι
|
||||
REP ι ύ
|
||||
REP ύ ι
|
||||
REP ι ϋ
|
||||
REP ϋ ι
|
||||
REP ι ΰ
|
||||
REP ΰ ι
|
||||
REP ί ϊ
|
||||
REP ϊ ί
|
||||
REP ί ΐ
|
||||
REP ΐ ί
|
||||
REP ί η
|
||||
REP η ί
|
||||
REP ί ή
|
||||
REP ή ί
|
||||
REP ί υ
|
||||
REP υ ί
|
||||
REP ί ύ
|
||||
REP ύ ί
|
||||
REP ί ϋ
|
||||
REP ϋ ί
|
||||
REP ί ΰ
|
||||
REP ΰ ί
|
||||
REP ϊ ΐ
|
||||
REP ΐ ϊ
|
||||
REP ϊ η
|
||||
REP η ϊ
|
||||
REP ϊ ή
|
||||
REP ή ϊ
|
||||
REP ϊ υ
|
||||
REP υ ϊ
|
||||
REP ϊ ύ
|
||||
REP ύ ϊ
|
||||
REP ϊ ϋ
|
||||
REP ϋ ϊ
|
||||
REP ϊ ΰ
|
||||
REP ΰ ϊ
|
||||
REP ΐ η
|
||||
REP η ΐ
|
||||
REP ΐ ή
|
||||
REP ή ΐ
|
||||
REP ΐ υ
|
||||
REP υ ΐ
|
||||
REP ΐ ύ
|
||||
REP ύ ΐ
|
||||
REP ΐ ϋ
|
||||
REP ϋ ΐ
|
||||
REP ΐ ΰ
|
||||
REP ΰ ΐ
|
||||
REP η ή
|
||||
REP ή η
|
||||
REP η υ
|
||||
REP υ η
|
||||
REP η ύ
|
||||
REP ύ η
|
||||
REP η ϋ
|
||||
REP ϋ η
|
||||
REP η ΰ
|
||||
REP ΰ η
|
||||
REP ή υ
|
||||
REP υ ή
|
||||
REP ή ύ
|
||||
REP ύ ή
|
||||
REP ή ϋ
|
||||
REP ϋ ή
|
||||
REP ή ΰ
|
||||
REP ΰ ή
|
||||
REP υ ύ
|
||||
REP ύ υ
|
||||
REP υ ϋ
|
||||
REP ϋ υ
|
||||
REP υ ΰ
|
||||
REP ΰ υ
|
||||
REP ύ ϋ
|
||||
REP ϋ ύ
|
||||
REP ύ ΰ
|
||||
REP ΰ ύ
|
||||
REP ϋ ΰ
|
||||
REP ΰ ϋ
|
||||
REP ο ό
|
||||
REP ό ο
|
||||
REP ο ω
|
||||
REP ω ο
|
||||
REP ο ώ
|
||||
REP ώ ο
|
||||
REP ό ω
|
||||
REP ω ό
|
||||
REP ό ώ
|
||||
REP ώ ό
|
||||
REP ω ώ
|
||||
REP ώ ω
|
||||
REP έΰ έΰ
|
||||
REP έΰ έβ
|
||||
REP έΰ έυ
|
||||
REP έΰ έϋ
|
||||
REP έΰ έύ
|
||||
REP έΰ εΰ
|
||||
REP έΰ εβ
|
||||
REP έΰ ευ
|
||||
REP έΰ εϋ
|
||||
REP έΰ εύ
|
||||
REP έβ έΰ
|
||||
REP έβ έβ
|
||||
REP έβ έυ
|
||||
REP έβ έϋ
|
||||
REP έβ έύ
|
||||
REP έβ εΰ
|
||||
REP έβ εβ
|
||||
REP έβ ευ
|
||||
REP έβ εϋ
|
||||
REP έβ εύ
|
||||
REP έυ έΰ
|
||||
REP έυ έβ
|
||||
REP έυ έυ
|
||||
REP έυ έϋ
|
||||
REP έυ έύ
|
||||
REP έυ εΰ
|
||||
REP έυ εβ
|
||||
REP έυ ευ
|
||||
REP έυ εϋ
|
||||
REP έυ εύ
|
||||
REP έϋ έΰ
|
||||
REP έϋ έβ
|
||||
REP έϋ έυ
|
||||
REP έϋ έϋ
|
||||
REP έϋ έύ
|
||||
REP έϋ εΰ
|
||||
REP έϋ εβ
|
||||
REP έϋ ευ
|
||||
REP έϋ εϋ
|
||||
REP έϋ εύ
|
||||
REP έύ έΰ
|
||||
REP έύ έβ
|
||||
REP έύ έυ
|
||||
REP έύ έϋ
|
||||
REP έύ έύ
|
||||
REP έύ εΰ
|
||||
REP έύ εβ
|
||||
REP έύ ευ
|
||||
REP έύ εϋ
|
||||
REP έύ εύ
|
||||
REP εΰ έΰ
|
||||
REP εΰ έβ
|
||||
REP εΰ έυ
|
||||
REP εΰ έϋ
|
||||
REP εΰ έύ
|
||||
REP εΰ εΰ
|
||||
REP εΰ εβ
|
||||
REP εΰ ευ
|
||||
REP εΰ εϋ
|
||||
REP εΰ εύ
|
||||
REP εβ έΰ
|
||||
REP εβ έβ
|
||||
REP εβ έυ
|
||||
REP εβ έϋ
|
||||
REP εβ έύ
|
||||
REP εβ εΰ
|
||||
REP εβ εβ
|
||||
REP εβ ευ
|
||||
REP εβ εϋ
|
||||
REP εβ εύ
|
||||
REP ευ έΰ
|
||||
REP ευ έβ
|
||||
REP ευ έυ
|
||||
REP ευ έϋ
|
||||
REP ευ έύ
|
||||
REP ευ εΰ
|
||||
REP ευ εβ
|
||||
REP ευ ευ
|
||||
REP ευ εϋ
|
||||
REP ευ εύ
|
||||
REP εϋ έΰ
|
||||
REP εϋ έβ
|
||||
REP εϋ έυ
|
||||
REP εϋ έϋ
|
||||
REP εϋ έύ
|
||||
REP εϋ εΰ
|
||||
REP εϋ εβ
|
||||
REP εϋ ευ
|
||||
REP εϋ εϋ
|
||||
REP εϋ εύ
|
||||
REP εύ έΰ
|
||||
REP εύ έβ
|
||||
REP εύ έυ
|
||||
REP εύ έϋ
|
||||
REP εύ έύ
|
||||
REP εύ εΰ
|
||||
REP εύ εβ
|
||||
REP εύ ευ
|
||||
REP εύ εϋ
|
||||
REP εύ εύ
|
||||
REP έΐ έΐ
|
||||
REP έΐ έί
|
||||
REP έΐ έι
|
||||
REP έΐ έϊ
|
||||
REP έΐ εΐ
|
||||
REP έΐ εί
|
||||
REP έΐ ει
|
||||
REP έΐ εϊ
|
||||
REP έί έΐ
|
||||
REP έί έί
|
||||
REP έί έι
|
||||
REP έί έϊ
|
||||
REP έί εΐ
|
||||
REP έί εί
|
||||
REP έί ει
|
||||
REP έί εϊ
|
||||
REP έι έΐ
|
||||
REP έι έί
|
||||
REP έι έι
|
||||
REP έι έϊ
|
||||
REP έι εΐ
|
||||
REP έι εί
|
||||
REP έι ει
|
||||
REP έι εϊ
|
||||
REP έϊ έΐ
|
||||
REP έϊ έί
|
||||
REP έϊ έι
|
||||
REP έϊ έϊ
|
||||
REP έϊ εΐ
|
||||
REP έϊ εί
|
||||
REP έϊ ει
|
||||
REP έϊ εϊ
|
||||
REP εΐ έΐ
|
||||
REP εΐ έί
|
||||
REP εΐ έι
|
||||
REP εΐ έϊ
|
||||
REP εΐ εΐ
|
||||
REP εΐ εί
|
||||
REP εΐ ει
|
||||
REP εΐ εϊ
|
||||
REP εί έΐ
|
||||
REP εί έί
|
||||
REP εί έι
|
||||
REP εί έϊ
|
||||
REP εί εΐ
|
||||
REP εί εί
|
||||
REP εί ει
|
||||
REP εί εϊ
|
||||
REP ει έΐ
|
||||
REP ει έί
|
||||
REP ει έι
|
||||
REP ει έϊ
|
||||
REP ει εΐ
|
||||
REP ει εί
|
||||
REP ει ει
|
||||
REP ει εϊ
|
||||
REP εϊ έΐ
|
||||
REP εϊ έί
|
||||
REP εϊ έι
|
||||
REP εϊ έϊ
|
||||
REP εϊ εΐ
|
||||
REP εϊ εί
|
||||
REP εϊ ει
|
||||
REP εϊ εϊ
|
||||
REP άΐ άΐ
|
||||
REP άΐ άί
|
||||
REP άΐ άι
|
||||
REP άΐ άϊ
|
||||
REP άΐ αΐ
|
||||
REP άΐ αί
|
||||
REP άΐ αι
|
||||
REP άΐ αϊ
|
||||
REP άί άΐ
|
||||
REP άί άί
|
||||
REP άί άι
|
||||
REP άί άϊ
|
||||
REP άί αΐ
|
||||
REP άί αί
|
||||
REP άί αι
|
||||
REP άί αϊ
|
||||
REP άι άΐ
|
||||
REP άι άί
|
||||
REP άι άι
|
||||
REP άι άϊ
|
||||
REP άι αΐ
|
||||
REP άι αί
|
||||
REP άι αι
|
||||
REP άι αϊ
|
||||
REP άϊ άΐ
|
||||
REP άϊ άί
|
||||
REP άϊ άι
|
||||
REP άϊ άϊ
|
||||
REP άϊ αΐ
|
||||
REP άϊ αί
|
||||
REP άϊ αι
|
||||
REP άϊ αϊ
|
||||
REP αΐ άΐ
|
||||
REP αΐ άί
|
||||
REP αΐ άι
|
||||
REP αΐ άϊ
|
||||
REP αΐ αΐ
|
||||
REP αΐ αί
|
||||
REP αΐ αι
|
||||
REP αΐ αϊ
|
||||
REP αί άΐ
|
||||
REP αί άί
|
||||
REP αί άι
|
||||
REP αί άϊ
|
||||
REP αί αΐ
|
||||
REP αί αί
|
||||
REP αί αι
|
||||
REP αί αϊ
|
||||
REP αι άΐ
|
||||
REP αι άί
|
||||
REP αι άι
|
||||
REP αι άϊ
|
||||
REP αι αΐ
|
||||
REP αι αί
|
||||
REP αι αι
|
||||
REP αι αϊ
|
||||
REP αϊ άΐ
|
||||
REP αϊ άί
|
||||
REP αϊ άι
|
||||
REP αϊ άϊ
|
||||
REP αϊ αΐ
|
||||
REP αϊ αί
|
||||
REP αϊ αι
|
||||
REP αϊ αϊ
|
||||
REP άί έ
|
||||
REP άί ε
|
||||
REP άι έ
|
||||
REP άι ε
|
||||
REP έ άί
|
||||
REP έ άι
|
||||
REP έ αΐ
|
||||
REP έ αί
|
||||
REP έ αι
|
||||
REP έ αϊ
|
||||
REP έ ε
|
||||
REP αΐ έ
|
||||
REP αΐ ε
|
||||
REP αί έ
|
||||
REP αί ε
|
||||
REP αι έ
|
||||
REP αι ε
|
||||
REP αϊ έ
|
||||
REP αϊ ε
|
||||
REP ε άί
|
||||
REP ε άι
|
||||
REP ε έ
|
||||
REP ε αΐ
|
||||
REP ε αί
|
||||
REP ε αι
|
||||
REP ε αϊ
|
||||
REP ή ει
|
||||
REP ή οι
|
||||
REP ί ει
|
||||
REP ί οι
|
||||
REP εί η
|
||||
REP εί ι
|
||||
REP εί οι
|
||||
REP εί υ
|
||||
REP ει ή
|
||||
REP ει ί
|
||||
REP ει η
|
||||
REP ει ι
|
||||
REP ει οί
|
||||
REP ει οι
|
||||
REP ει υ
|
||||
REP ει ύ
|
||||
REP η εί
|
||||
REP η ει
|
||||
REP η οί
|
||||
REP η οι
|
||||
REP ηβ ηυ
|
||||
REP ηυ ηβ
|
||||
REP ι εί
|
||||
REP ι ει
|
||||
REP ι οί
|
||||
REP ι οι
|
||||
REP κ κκ
|
||||
REP κκ κ
|
||||
REP λ λλ
|
||||
REP λλ λ
|
||||
REP μ μμ
|
||||
REP μμ μ
|
||||
REP οί ει
|
||||
REP οί η
|
||||
REP οί ι
|
||||
REP οί υ
|
||||
REP οι ή
|
||||
REP οι ί
|
||||
REP οι εί
|
||||
REP οι ει
|
||||
REP οι η
|
||||
REP οι ι
|
||||
REP οι υ
|
||||
REP οι ύ
|
||||
REP π ππ
|
||||
REP ππ π
|
||||
REP ρ ρρ
|
||||
REP ρρ ρ
|
||||
REP σ σσ
|
||||
REP σσ σ
|
||||
REP τ ττ
|
||||
REP ττ τ
|
||||
REP υ εί
|
||||
REP υ ει
|
||||
REP υ οί
|
||||
REP υ οι
|
||||
REP υ ϋ υ
|
||||
REP ύ ει
|
||||
REP ύ οι
|
||||
|
||||
|
||||
# prefix rules
|
||||
|
||||
|
||||
PFX A Y 1
|
||||
PFX A 0 α . # βάσιμος > αβάσιμος
|
||||
|
||||
PFX B Y 1
|
||||
PFX B 0 ξανα . # ζητώ > ξαναζητώ
|
||||
|
||||
PFX C Y 1
|
||||
PFX C 0 απο . # σύνθεση > αποσύνθεση
|
||||
|
||||
PFX D Y 1
|
||||
PFX D 0 κατα . # στροφή > καταστροφή
|
||||
|
||||
PFX E Y 1
|
||||
PFX E 0 παρα . # βλέπω > παραβλέπω
|
||||
|
||||
|
||||
# suffix rules
|
||||
|
||||
SFX F Y 4
|
||||
SFX F ώ ά . # αγαπώ > αγαπά
|
||||
SFX F ός ά . # καλός > καλά
|
||||
SFX F ό ά . # βουνό > βουνά
|
||||
SFX F άς ά . # σφουγγαράς > σφουγγαρά
|
||||
|
||||
SFX G Y 7
|
||||
SFX G ώ άς . # αγαπώ > αγαπάς
|
||||
SFX G 0 ς ά # καρδιά > καρδιάς
|
||||
SFX G ός ού . # ουρανός > ουρανού
|
||||
SFX G ό ού . # βουνό > βουνού
|
||||
SFX G ούς ού . # παππούς > παππού
|
||||
SFX G ω εις . # δένω > δένεις
|
||||
SFX G η εις . # σκέψη > σκέψεις
|
||||
|
||||
SFX H Y 3
|
||||
SFX H 0 ς [ώω] # Αργυρώ > Αργυρώς Δέσπω > Δέσπως
|
||||
SFX H ός ώς . # καλός > καλώς τελευταίος τελευταίως
|
||||
SFX H ής ώς . # # συνεχής > συνεχώς
|
||||
|
||||
SFX I Y 5
|
||||
SFX I ώ είς . # αγαπηθώ > αγαπηθείς
|
||||
SFX I ος α . # ωραίος > ωραία
|
||||
SFX I ο α . # βιβλίο > βιβλία
|
||||
SFX I ης α . # ζηλιάρης > ζηλιάρα
|
||||
SFX I ας α . # αγώνας > αγώνα
|
||||
|
||||
SFX J Y 5
|
||||
SFX J ώ εί . # αγαπηθώ > αγαπηθεί
|
||||
SFX J ός έ . # ουρανός > ουρανέ
|
||||
SFX J ές έ . # καφές > καφέ
|
||||
SFX J ύς ιούς . # βαθύς > βαθιούς
|
||||
SFX J ω οντας . # δένω > δένοντας
|
||||
|
||||
SFX K Y 4
|
||||
SFX K ώ ούμε . # αγαπώ > αγαπούμε
|
||||
SFX K ός οί . # ουρανός > ουρανοί
|
||||
SFX K ές έδες . # καφές > καφέδες
|
||||
SFX K 0 ς η # νίκη > νίκης
|
||||
|
||||
SFX L Y 5
|
||||
SFX L ός ών . # ουρανός > ουρανών
|
||||
SFX L ής ών . # νικητής > νικητών
|
||||
SFX L ά ών . # καρδιά > καρδιών
|
||||
SFX L ή ών . # ψυχή > ψυχών
|
||||
SFX L ό ών . # βουνό > βουνών
|
||||
|
||||
SFX M Y 4
|
||||
SFX M ώ ούν . # αγαπώ > αγαπούν
|
||||
SFX M ός ούς . # ουρανός > ουρανούς
|
||||
SFX M ώς ώτων . # καθεστώς > καθεστώτων
|
||||
SFX M ί ιού . # πουλί > πουλιού
|
||||
|
||||
SFX N Y 5
|
||||
SFX N ούς ούδων . # παππούς > παππούδων
|
||||
SFX N ας ες . # αγώνας > αγώνες
|
||||
SFX N α ες . # ώρα > ώρες
|
||||
SFX N η ες . # νίκη > νίκες
|
||||
SFX N ης ες . # ναύτης > ναύτες
|
||||
|
||||
SFX O Y 5
|
||||
SFX O ώ άμε . # αγαπώ > αγαπάμε
|
||||
SFX O ός ιά . # γλυκός > γλυκιά
|
||||
SFX O ής ιά . # σταχτής > σταχτιά
|
||||
SFX O ί ιά . # πουλί > πουλιά
|
||||
SFX O ύς ιά . # βαθύς > βαθιά
|
||||
|
||||
SFX P Y 4
|
||||
SFX P ώ άτε . # αγαπώ > αγαπάτε
|
||||
SFX P ός ότος . # γεγονός > γεγονότος
|
||||
SFX P ω ετε . # δένω > δένετε
|
||||
SFX P η εως . # σκέψη > σκέψεως
|
||||
|
||||
SFX Q Y 5
|
||||
SFX Q ώ άστε . # λυπώ > λυπάστε
|
||||
SFX Q ας ων . # αγώνας > αγώνων
|
||||
SFX Q ος ων . # δρόμος > δρόμων
|
||||
SFX Q ο ων . # σίδερο > σίδερων
|
||||
SFX Q ύς ύ . # βαθύς > βαθύ
|
||||
|
||||
|
||||
SFX R Y 4
|
||||
SFX R ώ ιέμαι . # αγαπώ > αγαπιέμαι
|
||||
SFX R ής άδες . # πραματευτής > πραματευτάδες
|
||||
SFX R άς άδες . # σφουγγαράς > σφουγγαράδες
|
||||
SFX R ω ομαι . # δένω > δένομαι
|
||||
|
||||
|
||||
SFX S Y 4
|
||||
SFX S ώ ιέσαι . # αγαπώ > αγαπιέσαι
|
||||
SFX S ής άδων . # πραματευτής > πραματευτάδων
|
||||
SFX S άς άδων . # σφουγγαράς > σφουγγαράδων
|
||||
SFX S ω εσαι . # δένω > δένεσαι
|
||||
|
||||
SFX T Y 4
|
||||
SFX T ώ άν . # αγαπώ > αγαπάν
|
||||
SFX T ός ότα . # γεγονός > γεγονότα
|
||||
SFX T ω ουν . # δένω > δένουν
|
||||
SFX T ας ατα . # κρέας > κρέατα
|
||||
|
||||
|
||||
SFX U Y 4
|
||||
SFX U ώ ιέται . # αγαπώ > αγαπιέται
|
||||
SFX U ής ήδες . # μπαλωματής > μπαλωματήδες
|
||||
SFX U ί ιών . # πουλί > πουλιών
|
||||
SFX U ύς ιών . # βαθύς > βαθιών
|
||||
|
||||
|
||||
SFX V Y 5
|
||||
SFX V ώ ιέστε . # αγαπώ > αγαπιέστε
|
||||
SFX V ούς ούδες . # παππούς > παππούδες
|
||||
SFX V ής ί . # σταχτής > σταχτί
|
||||
SFX V ω εστε . # δένω > δένεστε
|
||||
SFX V 0 τα μα # κύμα > κύματα
|
||||
|
||||
SFX W Y 5
|
||||
SFX W ώ ιούνται . # αγαπώ > αγαπιούνται
|
||||
SFX W ώς ώτα . # καθεστώς > καθεστώτα
|
||||
SFX W ω ονται . # δένω > δένονται
|
||||
SFX W 0 τος μα # κύμα > κύματος
|
||||
SFX W 0 ς ή # ψυχή > ψυχής
|
||||
|
||||
SFX X Y 5
|
||||
SFX X ώ ιόμουν . # αγαπώ > αγαπιόμουν
|
||||
SFX X ός ή . # καλός > καλή
|
||||
SFX X ος η . # δάσος > δάση
|
||||
SFX X ής ή . # νικητής > νικητή
|
||||
SFX X ης η . # ναύτης > ναύτη
|
||||
|
||||
SFX Y Y 4
|
||||
SFX Y ώ ιόσουν . # αγαπώ > αγαπιόσουν
|
||||
SFX Y όμουν όσουν . # δενόμουν > δενόσουν
|
||||
SFX Y ω ουμε . # δένω > δένουμε
|
||||
SFX Y η εων . # σκέψη > σκέψεων
|
||||
|
||||
|
||||
SFX Z Y 3
|
||||
SFX Z ώ ιόταν . # αγαπώ > αγαπιόταν
|
||||
SFX Z μουν ταν όμουν # δενόμουν > δενόταν
|
||||
SFX Z ς δων ές # καφές > καφέδων
|
||||
|
||||
SFX a Y 4
|
||||
SFX a ώ ιόμαστε . # αγαπώ > αγαπιόμαστε
|
||||
SFX a ός ό . # καλός > καλό
|
||||
SFX a ω αμε . # δένω > δέναμε
|
||||
SFX a 0 με α # αγαπούσα > αγαπούσαμε
|
||||
|
||||
|
||||
SFX b Y 4
|
||||
SFX b ώ ιόσαστε . # αγαπώ > αγαπιόσαστε
|
||||
SFX b ω ατε . # δένω > δένατε
|
||||
SFX b με τε αμε # αγαπήσαμε > αγαπήσατε
|
||||
SFX b 0 τε α # αγαπούσα > αγαπούσατε
|
||||
|
||||
SFX c Y 3
|
||||
SFX c ώ ιόνταν . # αγαπώ > αγαπιόνταν
|
||||
SFX c όμουν όνταν . # θυμόμουν > θυμόνταν
|
||||
SFX c ω ονταν . # δένω > δένονταν
|
||||
|
||||
SFX d Y 4
|
||||
SFX d ώ ιούνταν . # αγαπώ > αγαπιούνταν
|
||||
SFX d ω ου . # δένω > δένου
|
||||
SFX d 0 υ ο # σίδερο > σίδερου
|
||||
SFX d ς υ ος # δρόμος > δρόμου
|
||||
|
||||
SFX e Y 4
|
||||
SFX e ώ ούνται . # λυπώ > λυπούνται
|
||||
SFX e ω ε . # δένω > δένε
|
||||
SFX e ος ε . # δρόμος > δρόμε
|
||||
SFX e α ε . # αγαπούσα > αγαπούσε
|
||||
|
||||
SFX f Y 3
|
||||
SFX f ώ άσαι . # λυπώ > λυπάσαι
|
||||
SFX f ί ιού . # πουλί > πουλιού
|
||||
SFX f ς δες ης # νοικοκύρης > νοικοκύρηδες
|
||||
|
||||
SFX g Y 4
|
||||
SFX g ώ άται . # λυπώ > λυπάται
|
||||
SFX g ός ότων . # γεγονός γεγονότων
|
||||
SFX g ης ηδων . # νοικοκύρης > νοικοκύρηδων
|
||||
SFX g α αν . # αγαπούσα > αγαπούσαν
|
||||
|
||||
SFX h Y 4
|
||||
SFX h ώ ούμαστε . # λυπώ > λυπούμαστε
|
||||
SFX h ώς ώτος . # καθεστώς > καθεστώτος
|
||||
SFX h όμουν όμαστε . # δενόμουν > δενόμαστε
|
||||
SFX h α ας . # ώρα > ώρας
|
||||
|
||||
SFX i Y 4
|
||||
SFX i ώ ώντας . # αγαπώ > αγαπώντας
|
||||
SFX i ής ές . # νικητής > νικητές
|
||||
SFX i ά ές . # καρδιά > καρδιές
|
||||
SFX i ή ές . # ψυχή > ψυχές
|
||||
|
||||
SFX j Y 3
|
||||
SFX j ης ικο . # ζηλιάρης > ζηλιάρικο
|
||||
SFX j ω τε . # δέσω > δέστε
|
||||
SFX j ος ους . # δρόμος > δρόμους
|
||||
|
||||
SFX k Y 3
|
||||
SFX k ω εται . # δένω > δένεται
|
||||
SFX k ος οι . # δρόμος > δρόμοι
|
||||
SFX k ας ατος . # κρέας > κρέατος
|
||||
|
||||
SFX l Y 4
|
||||
SFX l υ ια . # βράδυ > βράδια
|
||||
SFX l ι ια . # καλοκαίρι > καλοκαίρια
|
||||
SFX l ώ ούμαι . # λυπώ > λυπούμαι
|
||||
SFX l ής ήδων . # μπαλωματής > μπαλωματήδων
|
||||
|
||||
SFX m Y 3
|
||||
SFX m ώ άει . # αγαπώ > αγαπάει
|
||||
SFX m όμουν όσαστε . # δενόμουν > δενόσαστε
|
||||
SFX m ω ει . # δένω > δένει
|
||||
|
||||
SFX n Y 3
|
||||
SFX n ύς ιοί . # βαθύς > βαθιοί
|
||||
SFX n ώ είτε . # αγαπηθώ > αγαπηθείτε
|
||||
SFX n ος ο . # δρόμος > δρόμο
|
File diff suppressed because it is too large
Load diff
|
@ -1,58 +0,0 @@
|
|||
name : el_GR 0.7 version of the greek dictionary
|
||||
dd/mm/yyyy: 15/09/2006
|
||||
License : MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
contact : Steve Stavropoulos
|
||||
URL : http://elspell.math.upatras.gr
|
||||
|
||||
This release added the MPL and LGPL to the available licences and an
|
||||
update to the .aff file (by Nick Demou).
|
||||
The dictionary is triple licenced now and it is based on earlier work
|
||||
done by Evripidis Papakostas. [mentioned below]
|
||||
The new licence is also mentioned below.
|
||||
|
||||
Steve Stavropoulos
|
||||
|
||||
==================
|
||||
|
||||
name : el_GR (v.003) Enhanced Version
|
||||
dd/mm/yyyy: 08/02/2002
|
||||
License : GNU GPL
|
||||
contact : evris@source.gr
|
||||
URL : ispell.source.gr
|
||||
-----------------------------------------------
|
||||
This dictionary is based on greek wordlist and affixes used by ispell
|
||||
(which based on older work of Mitalas and Seraskeris). Many thanks to
|
||||
Voula Sanida (voulariba@source.gr) and Panayotis Vryonis (vrypan@yassou.net)
|
||||
for their help in converting the affix rules and to all the people that
|
||||
contributed words to the vocabulary.
|
||||
Evripidis Papakostas (evris@source.gr)
|
||||
|
||||
==================
|
||||
|
||||
The new Licence:
|
||||
|
||||
Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -1,165 +0,0 @@
|
|||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
|
||||
This version of the GNU Lesser General Public License incorporates
|
||||
the terms and conditions of version 3 of the GNU General Public
|
||||
License, supplemented by the additional permissions listed below.
|
||||
|
||||
0. Additional Definitions.
|
||||
|
||||
As used herein, "this License" refers to version 3 of the GNU Lesser
|
||||
General Public License, and the "GNU GPL" refers to version 3 of the GNU
|
||||
General Public License.
|
||||
|
||||
"The Library" refers to a covered work governed by this License,
|
||||
other than an Application or a Combined Work as defined below.
|
||||
|
||||
An "Application" is any work that makes use of an interface provided
|
||||
by the Library, but which is not otherwise based on the Library.
|
||||
Defining a subclass of a class defined by the Library is deemed a mode
|
||||
of using an interface provided by the Library.
|
||||
|
||||
A "Combined Work" is a work produced by combining or linking an
|
||||
Application with the Library. The particular version of the Library
|
||||
with which the Combined Work was made is also called the "Linked
|
||||
Version".
|
||||
|
||||
The "Minimal Corresponding Source" for a Combined Work means the
|
||||
Corresponding Source for the Combined Work, excluding any source code
|
||||
for portions of the Combined Work that, considered in isolation, are
|
||||
based on the Application, and not on the Linked Version.
|
||||
|
||||
The "Corresponding Application Code" for a Combined Work means the
|
||||
object code and/or source code for the Application, including any data
|
||||
and utility programs needed for reproducing the Combined Work from the
|
||||
Application, but excluding the System Libraries of the Combined Work.
|
||||
|
||||
1. Exception to Section 3 of the GNU GPL.
|
||||
|
||||
You may convey a covered work under sections 3 and 4 of this License
|
||||
without being bound by section 3 of the GNU GPL.
|
||||
|
||||
2. Conveying Modified Versions.
|
||||
|
||||
If you modify a copy of the Library, and, in your modifications, a
|
||||
facility refers to a function or data to be supplied by an Application
|
||||
that uses the facility (other than as an argument passed when the
|
||||
facility is invoked), then you may convey a copy of the modified
|
||||
version:
|
||||
|
||||
a) under this License, provided that you make a good faith effort to
|
||||
ensure that, in the event an Application does not supply the
|
||||
function or data, the facility still operates, and performs
|
||||
whatever part of its purpose remains meaningful, or
|
||||
|
||||
b) under the GNU GPL, with none of the additional permissions of
|
||||
this License applicable to that copy.
|
||||
|
||||
3. Object Code Incorporating Material from Library Header Files.
|
||||
|
||||
The object code form of an Application may incorporate material from
|
||||
a header file that is part of the Library. You may convey such object
|
||||
code under terms of your choice, provided that, if the incorporated
|
||||
material is not limited to numerical parameters, data structure
|
||||
layouts and accessors, or small macros, inline functions and templates
|
||||
(ten or fewer lines in length), you do both of the following:
|
||||
|
||||
a) Give prominent notice with each copy of the object code that the
|
||||
Library is used in it and that the Library and its use are
|
||||
covered by this License.
|
||||
|
||||
b) Accompany the object code with a copy of the GNU GPL and this license
|
||||
document.
|
||||
|
||||
4. Combined Works.
|
||||
|
||||
You may convey a Combined Work under terms of your choice that,
|
||||
taken together, effectively do not restrict modification of the
|
||||
portions of the Library contained in the Combined Work and reverse
|
||||
engineering for debugging such modifications, if you also do each of
|
||||
the following:
|
||||
|
||||
a) Give prominent notice with each copy of the Combined Work that
|
||||
the Library is used in it and that the Library and its use are
|
||||
covered by this License.
|
||||
|
||||
b) Accompany the Combined Work with a copy of the GNU GPL and this license
|
||||
document.
|
||||
|
||||
c) For a Combined Work that displays copyright notices during
|
||||
execution, include the copyright notice for the Library among
|
||||
these notices, as well as a reference directing the user to the
|
||||
copies of the GNU GPL and this license document.
|
||||
|
||||
d) Do one of the following:
|
||||
|
||||
0) Convey the Minimal Corresponding Source under the terms of this
|
||||
License, and the Corresponding Application Code in a form
|
||||
suitable for, and under terms that permit, the user to
|
||||
recombine or relink the Application with a modified version of
|
||||
the Linked Version to produce a modified Combined Work, in the
|
||||
manner specified by section 6 of the GNU GPL for conveying
|
||||
Corresponding Source.
|
||||
|
||||
1) Use a suitable shared library mechanism for linking with the
|
||||
Library. A suitable mechanism is one that (a) uses at run time
|
||||
a copy of the Library already present on the user's computer
|
||||
system, and (b) will operate properly with a modified version
|
||||
of the Library that is interface-compatible with the Linked
|
||||
Version.
|
||||
|
||||
e) Provide Installation Information, but only if you would otherwise
|
||||
be required to provide such information under section 6 of the
|
||||
GNU GPL, and only to the extent that such information is
|
||||
necessary to install and execute a modified version of the
|
||||
Combined Work produced by recombining or relinking the
|
||||
Application with a modified version of the Linked Version. (If
|
||||
you use option 4d0, the Installation Information must accompany
|
||||
the Minimal Corresponding Source and Corresponding Application
|
||||
Code. If you use option 4d1, you must provide the Installation
|
||||
Information in the manner specified by section 6 of the GNU GPL
|
||||
for conveying Corresponding Source.)
|
||||
|
||||
5. Combined Libraries.
|
||||
|
||||
You may place library facilities that are a work based on the
|
||||
Library side by side in a single library together with other library
|
||||
facilities that are not Applications and are not covered by this
|
||||
License, and convey such a combined library under terms of your
|
||||
choice, if you do both of the following:
|
||||
|
||||
a) Accompany the combined library with a copy of the same work based
|
||||
on the Library, uncombined with any other library facilities,
|
||||
conveyed under the terms of this License.
|
||||
|
||||
b) Give prominent notice with the combined library that part of it
|
||||
is a work based on the Library, and explaining where to find the
|
||||
accompanying uncombined form of the same work.
|
||||
|
||||
6. Revised Versions of the GNU Lesser General Public License.
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions
|
||||
of the GNU Lesser General Public License from time to time. Such new
|
||||
versions will be similar in spirit to the present version, but may
|
||||
differ in detail to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
Library as you received it specifies that a certain numbered version
|
||||
of the GNU Lesser General Public License "or any later version"
|
||||
applies to it, you have the option of following the terms and
|
||||
conditions either of that published version or of any later version
|
||||
published by the Free Software Foundation. If the Library as you
|
||||
received it does not specify a version number of the GNU Lesser
|
||||
General Public License, you may choose any version of the GNU Lesser
|
||||
General Public License ever published by the Free Software Foundation.
|
||||
|
||||
If the Library as you received it specifies that a proxy can decide
|
||||
whether future versions of the GNU Lesser General Public License shall
|
||||
apply, that proxy's public statement of acceptance of any version is
|
||||
permanent authorization for you to choose that version for the
|
||||
Library.
|
|
@ -1,470 +0,0 @@
|
|||
MOZILLA PUBLIC LICENSE
|
||||
Version 1.1
|
||||
|
||||
---------------
|
||||
|
||||
1. Definitions.
|
||||
|
||||
1.0.1. "Commercial Use" means distribution or otherwise making the
|
||||
Covered Code available to a third party.
|
||||
|
||||
1.1. "Contributor" means each entity that creates or contributes to
|
||||
the creation of Modifications.
|
||||
|
||||
1.2. "Contributor Version" means the combination of the Original
|
||||
Code, prior Modifications used by a Contributor, and the Modifications
|
||||
made by that particular Contributor.
|
||||
|
||||
1.3. "Covered Code" means the Original Code or Modifications or the
|
||||
combination of the Original Code and Modifications, in each case
|
||||
including portions thereof.
|
||||
|
||||
1.4. "Electronic Distribution Mechanism" means a mechanism generally
|
||||
accepted in the software development community for the electronic
|
||||
transfer of data.
|
||||
|
||||
1.5. "Executable" means Covered Code in any form other than Source
|
||||
Code.
|
||||
|
||||
1.6. "Initial Developer" means the individual or entity identified
|
||||
as the Initial Developer in the Source Code notice required by Exhibit
|
||||
A.
|
||||
|
||||
1.7. "Larger Work" means a work which combines Covered Code or
|
||||
portions thereof with code not governed by the terms of this License.
|
||||
|
||||
1.8. "License" means this document.
|
||||
|
||||
1.8.1. "Licensable" means having the right to grant, to the maximum
|
||||
extent possible, whether at the time of the initial grant or
|
||||
subsequently acquired, any and all of the rights conveyed herein.
|
||||
|
||||
1.9. "Modifications" means any addition to or deletion from the
|
||||
substance or structure of either the Original Code or any previous
|
||||
Modifications. When Covered Code is released as a series of files, a
|
||||
Modification is:
|
||||
A. Any addition to or deletion from the contents of a file
|
||||
containing Original Code or previous Modifications.
|
||||
|
||||
B. Any new file that contains any part of the Original Code or
|
||||
previous Modifications.
|
||||
|
||||
1.10. "Original Code" means Source Code of computer software code
|
||||
which is described in the Source Code notice required by Exhibit A as
|
||||
Original Code, and which, at the time of its release under this
|
||||
License is not already Covered Code governed by this License.
|
||||
|
||||
1.10.1. "Patent Claims" means any patent claim(s), now owned or
|
||||
hereafter acquired, including without limitation, method, process,
|
||||
and apparatus claims, in any patent Licensable by grantor.
|
||||
|
||||
1.11. "Source Code" means the preferred form of the Covered Code for
|
||||
making modifications to it, including all modules it contains, plus
|
||||
any associated interface definition files, scripts used to control
|
||||
compilation and installation of an Executable, or source code
|
||||
differential comparisons against either the Original Code or another
|
||||
well known, available Covered Code of the Contributor's choice. The
|
||||
Source Code can be in a compressed or archival form, provided the
|
||||
appropriate decompression or de-archiving software is widely available
|
||||
for no charge.
|
||||
|
||||
1.12. "You" (or "Your") means an individual or a legal entity
|
||||
exercising rights under, and complying with all of the terms of, this
|
||||
License or a future version of this License issued under Section 6.1.
|
||||
For legal entities, "You" includes any entity which controls, is
|
||||
controlled by, or is under common control with You. For purposes of
|
||||
this definition, "control" means (a) the power, direct or indirect,
|
||||
to cause the direction or management of such entity, whether by
|
||||
contract or otherwise, or (b) ownership of more than fifty percent
|
||||
(50%) of the outstanding shares or beneficial ownership of such
|
||||
entity.
|
||||
|
||||
2. Source Code License.
|
||||
|
||||
2.1. The Initial Developer Grant.
|
||||
The Initial Developer hereby grants You a world-wide, royalty-free,
|
||||
non-exclusive license, subject to third party intellectual property
|
||||
claims:
|
||||
(a) under intellectual property rights (other than patent or
|
||||
trademark) Licensable by Initial Developer to use, reproduce,
|
||||
modify, display, perform, sublicense and distribute the Original
|
||||
Code (or portions thereof) with or without Modifications, and/or
|
||||
as part of a Larger Work; and
|
||||
|
||||
(b) under Patents Claims infringed by the making, using or
|
||||
selling of Original Code, to make, have made, use, practice,
|
||||
sell, and offer for sale, and/or otherwise dispose of the
|
||||
Original Code (or portions thereof).
|
||||
|
||||
(c) the licenses granted in this Section 2.1(a) and (b) are
|
||||
effective on the date Initial Developer first distributes
|
||||
Original Code under the terms of this License.
|
||||
|
||||
(d) Notwithstanding Section 2.1(b) above, no patent license is
|
||||
granted: 1) for code that You delete from the Original Code; 2)
|
||||
separate from the Original Code; or 3) for infringements caused
|
||||
by: i) the modification of the Original Code or ii) the
|
||||
combination of the Original Code with other software or devices.
|
||||
|
||||
2.2. Contributor Grant.
|
||||
Subject to third party intellectual property claims, each Contributor
|
||||
hereby grants You a world-wide, royalty-free, non-exclusive license
|
||||
|
||||
(a) under intellectual property rights (other than patent or
|
||||
trademark) Licensable by Contributor, to use, reproduce, modify,
|
||||
display, perform, sublicense and distribute the Modifications
|
||||
created by such Contributor (or portions thereof) either on an
|
||||
unmodified basis, with other Modifications, as Covered Code
|
||||
and/or as part of a Larger Work; and
|
||||
|
||||
(b) under Patent Claims infringed by the making, using, or
|
||||
selling of Modifications made by that Contributor either alone
|
||||
and/or in combination with its Contributor Version (or portions
|
||||
of such combination), to make, use, sell, offer for sale, have
|
||||
made, and/or otherwise dispose of: 1) Modifications made by that
|
||||
Contributor (or portions thereof); and 2) the combination of
|
||||
Modifications made by that Contributor with its Contributor
|
||||
Version (or portions of such combination).
|
||||
|
||||
(c) the licenses granted in Sections 2.2(a) and 2.2(b) are
|
||||
effective on the date Contributor first makes Commercial Use of
|
||||
the Covered Code.
|
||||
|
||||
(d) Notwithstanding Section 2.2(b) above, no patent license is
|
||||
granted: 1) for any code that Contributor has deleted from the
|
||||
Contributor Version; 2) separate from the Contributor Version;
|
||||
3) for infringements caused by: i) third party modifications of
|
||||
Contributor Version or ii) the combination of Modifications made
|
||||
by that Contributor with other software (except as part of the
|
||||
Contributor Version) or other devices; or 4) under Patent Claims
|
||||
infringed by Covered Code in the absence of Modifications made by
|
||||
that Contributor.
|
||||
|
||||
3. Distribution Obligations.
|
||||
|
||||
3.1. Application of License.
|
||||
The Modifications which You create or to which You contribute are
|
||||
governed by the terms of this License, including without limitation
|
||||
Section 2.2. The Source Code version of Covered Code may be
|
||||
distributed only under the terms of this License or a future version
|
||||
of this License released under Section 6.1, and You must include a
|
||||
copy of this License with every copy of the Source Code You
|
||||
distribute. You may not offer or impose any terms on any Source Code
|
||||
version that alters or restricts the applicable version of this
|
||||
License or the recipients' rights hereunder. However, You may include
|
||||
an additional document offering the additional rights described in
|
||||
Section 3.5.
|
||||
|
||||
3.2. Availability of Source Code.
|
||||
Any Modification which You create or to which You contribute must be
|
||||
made available in Source Code form under the terms of this License
|
||||
either on the same media as an Executable version or via an accepted
|
||||
Electronic Distribution Mechanism to anyone to whom you made an
|
||||
Executable version available; and if made available via Electronic
|
||||
Distribution Mechanism, must remain available for at least twelve (12)
|
||||
months after the date it initially became available, or at least six
|
||||
(6) months after a subsequent version of that particular Modification
|
||||
has been made available to such recipients. You are responsible for
|
||||
ensuring that the Source Code version remains available even if the
|
||||
Electronic Distribution Mechanism is maintained by a third party.
|
||||
|
||||
3.3. Description of Modifications.
|
||||
You must cause all Covered Code to which You contribute to contain a
|
||||
file documenting the changes You made to create that Covered Code and
|
||||
the date of any change. You must include a prominent statement that
|
||||
the Modification is derived, directly or indirectly, from Original
|
||||
Code provided by the Initial Developer and including the name of the
|
||||
Initial Developer in (a) the Source Code, and (b) in any notice in an
|
||||
Executable version or related documentation in which You describe the
|
||||
origin or ownership of the Covered Code.
|
||||
|
||||
3.4. Intellectual Property Matters
|
||||
(a) Third Party Claims.
|
||||
If Contributor has knowledge that a license under a third party's
|
||||
intellectual property rights is required to exercise the rights
|
||||
granted by such Contributor under Sections 2.1 or 2.2,
|
||||
Contributor must include a text file with the Source Code
|
||||
distribution titled "LEGAL" which describes the claim and the
|
||||
party making the claim in sufficient detail that a recipient will
|
||||
know whom to contact. If Contributor obtains such knowledge after
|
||||
the Modification is made available as described in Section 3.2,
|
||||
Contributor shall promptly modify the LEGAL file in all copies
|
||||
Contributor makes available thereafter and shall take other steps
|
||||
(such as notifying appropriate mailing lists or newsgroups)
|
||||
reasonably calculated to inform those who received the Covered
|
||||
Code that new knowledge has been obtained.
|
||||
|
||||
(b) Contributor APIs.
|
||||
If Contributor's Modifications include an application programming
|
||||
interface and Contributor has knowledge of patent licenses which
|
||||
are reasonably necessary to implement that API, Contributor must
|
||||
also include this information in the LEGAL file.
|
||||
|
||||
(c) Representations.
|
||||
Contributor represents that, except as disclosed pursuant to
|
||||
Section 3.4(a) above, Contributor believes that Contributor's
|
||||
Modifications are Contributor's original creation(s) and/or
|
||||
Contributor has sufficient rights to grant the rights conveyed by
|
||||
this License.
|
||||
|
||||
3.5. Required Notices.
|
||||
You must duplicate the notice in Exhibit A in each file of the Source
|
||||
Code. If it is not possible to put such notice in a particular Source
|
||||
Code file due to its structure, then You must include such notice in a
|
||||
location (such as a relevant directory) where a user would be likely
|
||||
to look for such a notice. If You created one or more Modification(s)
|
||||
You may add your name as a Contributor to the notice described in
|
||||
Exhibit A. You must also duplicate this License in any documentation
|
||||
for the Source Code where You describe recipients' rights or ownership
|
||||
rights relating to Covered Code. You may choose to offer, and to
|
||||
charge a fee for, warranty, support, indemnity or liability
|
||||
obligations to one or more recipients of Covered Code. However, You
|
||||
may do so only on Your own behalf, and not on behalf of the Initial
|
||||
Developer or any Contributor. You must make it absolutely clear than
|
||||
any such warranty, support, indemnity or liability obligation is
|
||||
offered by You alone, and You hereby agree to indemnify the Initial
|
||||
Developer and every Contributor for any liability incurred by the
|
||||
Initial Developer or such Contributor as a result of warranty,
|
||||
support, indemnity or liability terms You offer.
|
||||
|
||||
3.6. Distribution of Executable Versions.
|
||||
You may distribute Covered Code in Executable form only if the
|
||||
requirements of Section 3.1-3.5 have been met for that Covered Code,
|
||||
and if You include a notice stating that the Source Code version of
|
||||
the Covered Code is available under the terms of this License,
|
||||
including a description of how and where You have fulfilled the
|
||||
obligations of Section 3.2. The notice must be conspicuously included
|
||||
in any notice in an Executable version, related documentation or
|
||||
collateral in which You describe recipients' rights relating to the
|
||||
Covered Code. You may distribute the Executable version of Covered
|
||||
Code or ownership rights under a license of Your choice, which may
|
||||
contain terms different from this License, provided that You are in
|
||||
compliance with the terms of this License and that the license for the
|
||||
Executable version does not attempt to limit or alter the recipient's
|
||||
rights in the Source Code version from the rights set forth in this
|
||||
License. If You distribute the Executable version under a different
|
||||
license You must make it absolutely clear that any terms which differ
|
||||
from this License are offered by You alone, not by the Initial
|
||||
Developer or any Contributor. You hereby agree to indemnify the
|
||||
Initial Developer and every Contributor for any liability incurred by
|
||||
the Initial Developer or such Contributor as a result of any such
|
||||
terms You offer.
|
||||
|
||||
3.7. Larger Works.
|
||||
You may create a Larger Work by combining Covered Code with other code
|
||||
not governed by the terms of this License and distribute the Larger
|
||||
Work as a single product. In such a case, You must make sure the
|
||||
requirements of this License are fulfilled for the Covered Code.
|
||||
|
||||
4. Inability to Comply Due to Statute or Regulation.
|
||||
|
||||
If it is impossible for You to comply with any of the terms of this
|
||||
License with respect to some or all of the Covered Code due to
|
||||
statute, judicial order, or regulation then You must: (a) comply with
|
||||
the terms of this License to the maximum extent possible; and (b)
|
||||
describe the limitations and the code they affect. Such description
|
||||
must be included in the LEGAL file described in Section 3.4 and must
|
||||
be included with all distributions of the Source Code. Except to the
|
||||
extent prohibited by statute or regulation, such description must be
|
||||
sufficiently detailed for a recipient of ordinary skill to be able to
|
||||
understand it.
|
||||
|
||||
5. Application of this License.
|
||||
|
||||
This License applies to code to which the Initial Developer has
|
||||
attached the notice in Exhibit A and to related Covered Code.
|
||||
|
||||
6. Versions of the License.
|
||||
|
||||
6.1. New Versions.
|
||||
Netscape Communications Corporation ("Netscape") may publish revised
|
||||
and/or new versions of the License from time to time. Each version
|
||||
will be given a distinguishing version number.
|
||||
|
||||
6.2. Effect of New Versions.
|
||||
Once Covered Code has been published under a particular version of the
|
||||
License, You may always continue to use it under the terms of that
|
||||
version. You may also choose to use such Covered Code under the terms
|
||||
of any subsequent version of the License published by Netscape. No one
|
||||
other than Netscape has the right to modify the terms applicable to
|
||||
Covered Code created under this License.
|
||||
|
||||
6.3. Derivative Works.
|
||||
If You create or use a modified version of this License (which you may
|
||||
only do in order to apply it to code which is not already Covered Code
|
||||
governed by this License), You must (a) rename Your license so that
|
||||
the phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape",
|
||||
"MPL", "NPL" or any confusingly similar phrase do not appear in your
|
||||
license (except to note that your license differs from this License)
|
||||
and (b) otherwise make it clear that Your version of the license
|
||||
contains terms which differ from the Mozilla Public License and
|
||||
Netscape Public License. (Filling in the name of the Initial
|
||||
Developer, Original Code or Contributor in the notice described in
|
||||
Exhibit A shall not of themselves be deemed to be modifications of
|
||||
this License.)
|
||||
|
||||
7. DISCLAIMER OF WARRANTY.
|
||||
|
||||
COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
|
||||
WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF
|
||||
DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING.
|
||||
THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE
|
||||
IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT,
|
||||
YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE
|
||||
COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER
|
||||
OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF
|
||||
ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
|
||||
|
||||
8. TERMINATION.
|
||||
|
||||
8.1. This License and the rights granted hereunder will terminate
|
||||
automatically if You fail to comply with terms herein and fail to cure
|
||||
such breach within 30 days of becoming aware of the breach. All
|
||||
sublicenses to the Covered Code which are properly granted shall
|
||||
survive any termination of this License. Provisions which, by their
|
||||
nature, must remain in effect beyond the termination of this License
|
||||
shall survive.
|
||||
|
||||
8.2. If You initiate litigation by asserting a patent infringement
|
||||
claim (excluding declatory judgment actions) against Initial Developer
|
||||
or a Contributor (the Initial Developer or Contributor against whom
|
||||
You file such action is referred to as "Participant") alleging that:
|
||||
|
||||
(a) such Participant's Contributor Version directly or indirectly
|
||||
infringes any patent, then any and all rights granted by such
|
||||
Participant to You under Sections 2.1 and/or 2.2 of this License
|
||||
shall, upon 60 days notice from Participant terminate prospectively,
|
||||
unless if within 60 days after receipt of notice You either: (i)
|
||||
agree in writing to pay Participant a mutually agreeable reasonable
|
||||
royalty for Your past and future use of Modifications made by such
|
||||
Participant, or (ii) withdraw Your litigation claim with respect to
|
||||
the Contributor Version against such Participant. If within 60 days
|
||||
of notice, a reasonable royalty and payment arrangement are not
|
||||
mutually agreed upon in writing by the parties or the litigation claim
|
||||
is not withdrawn, the rights granted by Participant to You under
|
||||
Sections 2.1 and/or 2.2 automatically terminate at the expiration of
|
||||
the 60 day notice period specified above.
|
||||
|
||||
(b) any software, hardware, or device, other than such Participant's
|
||||
Contributor Version, directly or indirectly infringes any patent, then
|
||||
any rights granted to You by such Participant under Sections 2.1(b)
|
||||
and 2.2(b) are revoked effective as of the date You first made, used,
|
||||
sold, distributed, or had made, Modifications made by that
|
||||
Participant.
|
||||
|
||||
8.3. If You assert a patent infringement claim against Participant
|
||||
alleging that such Participant's Contributor Version directly or
|
||||
indirectly infringes any patent where such claim is resolved (such as
|
||||
by license or settlement) prior to the initiation of patent
|
||||
infringement litigation, then the reasonable value of the licenses
|
||||
granted by such Participant under Sections 2.1 or 2.2 shall be taken
|
||||
into account in determining the amount or value of any payment or
|
||||
license.
|
||||
|
||||
8.4. In the event of termination under Sections 8.1 or 8.2 above,
|
||||
all end user license agreements (excluding distributors and resellers)
|
||||
which have been validly granted by You or any distributor hereunder
|
||||
prior to termination shall survive termination.
|
||||
|
||||
9. LIMITATION OF LIABILITY.
|
||||
|
||||
UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
|
||||
(INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL
|
||||
DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE,
|
||||
OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR
|
||||
ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY
|
||||
CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL,
|
||||
WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
|
||||
COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN
|
||||
INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF
|
||||
LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY
|
||||
RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW
|
||||
PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE
|
||||
EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO
|
||||
THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
|
||||
|
||||
10. U.S. GOVERNMENT END USERS.
|
||||
|
||||
The Covered Code is a "commercial item," as that term is defined in
|
||||
48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer
|
||||
software" and "commercial computer software documentation," as such
|
||||
terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48
|
||||
C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995),
|
||||
all U.S. Government End Users acquire Covered Code with only those
|
||||
rights set forth herein.
|
||||
|
||||
11. MISCELLANEOUS.
|
||||
|
||||
This License represents the complete agreement concerning subject
|
||||
matter hereof. If any provision of this License is held to be
|
||||
unenforceable, such provision shall be reformed only to the extent
|
||||
necessary to make it enforceable. This License shall be governed by
|
||||
California law provisions (except to the extent applicable law, if
|
||||
any, provides otherwise), excluding its conflict-of-law provisions.
|
||||
With respect to disputes in which at least one party is a citizen of,
|
||||
or an entity chartered or registered to do business in the United
|
||||
States of America, any litigation relating to this License shall be
|
||||
subject to the jurisdiction of the Federal Courts of the Northern
|
||||
District of California, with venue lying in Santa Clara County,
|
||||
California, with the losing party responsible for costs, including
|
||||
without limitation, court costs and reasonable attorneys' fees and
|
||||
expenses. The application of the United Nations Convention on
|
||||
Contracts for the International Sale of Goods is expressly excluded.
|
||||
Any law or regulation which provides that the language of a contract
|
||||
shall be construed against the drafter shall not apply to this
|
||||
License.
|
||||
|
||||
12. RESPONSIBILITY FOR CLAIMS.
|
||||
|
||||
As between Initial Developer and the Contributors, each party is
|
||||
responsible for claims and damages arising, directly or indirectly,
|
||||
out of its utilization of rights under this License and You agree to
|
||||
work with Initial Developer and Contributors to distribute such
|
||||
responsibility on an equitable basis. Nothing herein is intended or
|
||||
shall be deemed to constitute any admission of liability.
|
||||
|
||||
13. MULTIPLE-LICENSED CODE.
|
||||
|
||||
Initial Developer may designate portions of the Covered Code as
|
||||
"Multiple-Licensed". "Multiple-Licensed" means that the Initial
|
||||
Developer permits you to utilize portions of the Covered Code under
|
||||
Your choice of the NPL or the alternative licenses, if any, specified
|
||||
by the Initial Developer in the file described in Exhibit A.
|
||||
|
||||
EXHIBIT A -Mozilla Public License.
|
||||
|
||||
``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.
|
||||
|
||||
The Original Code is ______________________________________.
|
||||
|
||||
The Initial Developer of the Original Code is ________________________.
|
||||
Portions created by ______________________ are Copyright (C) ______
|
||||
_______________________. All Rights Reserved.
|
||||
|
||||
Contributor(s): ______________________________________.
|
||||
|
||||
Alternatively, the contents of this file may be used under the terms
|
||||
of the _____ license (the "[___] License"), in which case the
|
||||
provisions of [______] License are applicable instead of those
|
||||
above. If you wish to allow use of your version of this file only
|
||||
under the terms of the [____] License and not to allow others to use
|
||||
your version of this file under the MPL, indicate your decision by
|
||||
deleting the provisions above and replace them with the notice and
|
||||
other provisions required by the [___] License. If you do not delete
|
||||
the provisions above, a recipient may use your version of this file
|
||||
under either the MPL or the [___] License."
|
||||
|
||||
[NOTE: The text of this Exhibit A may differ slightly from the text of
|
||||
the notices in the Source Code files of the Original Code. You should
|
||||
use the text of this Exhibit A rather than the text found in the
|
||||
Original Code Source Code for Your Modifications.]
|
||||
|
|
@ -1,877 +0,0 @@
|
|||
ISO8859-1
|
||||
1b2ra
|
||||
1b2rá
|
||||
1b2re
|
||||
1b2ré
|
||||
1b2ri
|
||||
1b2rí
|
||||
1b2ro
|
||||
1b2ró
|
||||
1b2ru
|
||||
1b2rú
|
||||
1b2la
|
||||
1b2lá
|
||||
1b2le
|
||||
1b2lé
|
||||
1b2li
|
||||
1b2lí
|
||||
1b2lo
|
||||
1b2ló
|
||||
1b2lu
|
||||
1b2lú
|
||||
1c2ra
|
||||
1c2rá
|
||||
1c2re
|
||||
1c2ré
|
||||
1c2ri
|
||||
1c2rí
|
||||
1c2ro
|
||||
1c2ró
|
||||
1c2ru
|
||||
1c2rú
|
||||
1c2la
|
||||
1c2lá
|
||||
1c2le
|
||||
1c2lé
|
||||
1c2li
|
||||
1c2lí
|
||||
1c2lo
|
||||
1c2ló
|
||||
1c2lu
|
||||
1c2lú
|
||||
1d2ra
|
||||
1d2rá
|
||||
1d2re
|
||||
1d2ré
|
||||
1d2ri
|
||||
1d2rí
|
||||
1d2ro
|
||||
1d2ró
|
||||
1d2ru
|
||||
1d2rú
|
||||
1f2ra
|
||||
1d2rá
|
||||
1d2re
|
||||
1d2ré
|
||||
1d2ri
|
||||
1d2rí
|
||||
1d2ro
|
||||
1d2ró
|
||||
1d2ru
|
||||
1d2rú
|
||||
1f2la
|
||||
1f2lá
|
||||
1f2le
|
||||
1f2lé
|
||||
1f2li
|
||||
1f2lí
|
||||
1f2lo
|
||||
1f2ló
|
||||
1f2lu
|
||||
1f2lú
|
||||
1f2ra
|
||||
1f2rá
|
||||
1f2re
|
||||
1f2ré
|
||||
1f2ri
|
||||
1f2rí
|
||||
1f2ro
|
||||
1f2ró
|
||||
1f2ru
|
||||
1f2rú
|
||||
1g2ra
|
||||
1g2rá
|
||||
1g2re
|
||||
1g2ré
|
||||
1g2ri
|
||||
1g2rí
|
||||
1g2ro
|
||||
1g2ró
|
||||
1g2ru
|
||||
1g2rú
|
||||
1g2la
|
||||
1g2lá
|
||||
1g2le
|
||||
1g2lé
|
||||
1g2li
|
||||
1g2lí
|
||||
1g2lo
|
||||
1g2ló
|
||||
1g2lu
|
||||
1g2lú
|
||||
1k2ra
|
||||
1k2rá
|
||||
1k2re
|
||||
1k2ré
|
||||
1k2ri
|
||||
1k2rí
|
||||
1k2ro
|
||||
1k2ró
|
||||
1k2ru
|
||||
1k2rú
|
||||
1l2la
|
||||
1l2lá
|
||||
1l2le
|
||||
1l2lé
|
||||
1l2li
|
||||
1l2lí
|
||||
1l2lo
|
||||
1l2ló
|
||||
1l2lu
|
||||
1l2lú
|
||||
1p2ra
|
||||
1p2rá
|
||||
1p2re
|
||||
1p2ré
|
||||
1p2ri
|
||||
1p2rí
|
||||
1p2ro
|
||||
1p2ró
|
||||
1p2ru
|
||||
1p2rú
|
||||
1p2la
|
||||
1p2lá
|
||||
1p2le
|
||||
1p2lé
|
||||
1p2li
|
||||
1p2lí
|
||||
1p2lo
|
||||
1p2ló
|
||||
1p2lu
|
||||
1p2lú
|
||||
1t2ra
|
||||
1t2rá
|
||||
1t2re
|
||||
1t2ré
|
||||
1t2ri
|
||||
1t2rí
|
||||
1t2ro
|
||||
1t2ró
|
||||
1t2ru
|
||||
1t2rú
|
||||
1r2ra
|
||||
1r2rá
|
||||
1r2re
|
||||
1r2ré
|
||||
1r2ri
|
||||
1r2rí
|
||||
1r2ro
|
||||
1r2ró
|
||||
1r2ru
|
||||
1r2rú
|
||||
1c2ha
|
||||
1c2há
|
||||
1c2he
|
||||
1c2hé
|
||||
1c2hi
|
||||
1c2hí
|
||||
1c2ho
|
||||
1c2hó
|
||||
1c2hu
|
||||
1c2hú
|
||||
|
||||
1ba
|
||||
1bá
|
||||
1be
|
||||
1bé
|
||||
1bi
|
||||
1bí
|
||||
1bo
|
||||
1bó
|
||||
1bu
|
||||
1bú
|
||||
1bü
|
||||
1ca
|
||||
1cá
|
||||
1ce
|
||||
1cé
|
||||
1ci
|
||||
1cí
|
||||
1co
|
||||
1có
|
||||
1cu
|
||||
1cú
|
||||
1cü
|
||||
1da
|
||||
1dá
|
||||
1de
|
||||
1dé
|
||||
1di
|
||||
1dí
|
||||
1do
|
||||
1dó
|
||||
1du
|
||||
1dú
|
||||
1dü
|
||||
1fa
|
||||
1fá
|
||||
1fe
|
||||
1fé
|
||||
1fi
|
||||
1fí
|
||||
1fo
|
||||
1fó
|
||||
1fu
|
||||
1fú
|
||||
1fü
|
||||
1ga
|
||||
1gá
|
||||
1ge
|
||||
1gé
|
||||
1gi
|
||||
1gí
|
||||
1go
|
||||
1gó
|
||||
1gu
|
||||
1gú
|
||||
1gü
|
||||
1ja
|
||||
1já
|
||||
1je
|
||||
1jé
|
||||
1ji
|
||||
1jí
|
||||
1jo
|
||||
1jó
|
||||
1ju
|
||||
1jú
|
||||
1jü
|
||||
1ka
|
||||
1ká
|
||||
1ke
|
||||
1ké
|
||||
1ki
|
||||
1kí
|
||||
1ko
|
||||
1kó
|
||||
1ku
|
||||
1kú
|
||||
1kü
|
||||
1la
|
||||
1lá
|
||||
1le
|
||||
1lé
|
||||
1li
|
||||
1lí
|
||||
1lo
|
||||
1ló
|
||||
1lu
|
||||
1lú
|
||||
1lü
|
||||
1ma
|
||||
1má
|
||||
1me
|
||||
1mé
|
||||
1mi
|
||||
1mí
|
||||
1mo
|
||||
1mó
|
||||
1mu
|
||||
1mú
|
||||
1mü
|
||||
1na
|
||||
1ná
|
||||
1ne
|
||||
1né
|
||||
1ni
|
||||
1ní
|
||||
1no
|
||||
1nó
|
||||
1nu
|
||||
1nú
|
||||
1nü
|
||||
1ña
|
||||
1ñá
|
||||
1ñe
|
||||
1ñé
|
||||
1ñi
|
||||
1ñí
|
||||
1ño
|
||||
1ñó
|
||||
1ñu
|
||||
1ñú
|
||||
1ñü
|
||||
1pa
|
||||
1pá
|
||||
1pe
|
||||
1pé
|
||||
1pi
|
||||
1pí
|
||||
1po
|
||||
1pó
|
||||
1pu
|
||||
1pú
|
||||
1pü
|
||||
1qa
|
||||
1qá
|
||||
1qe
|
||||
1qé
|
||||
1qi
|
||||
1qí
|
||||
1qo
|
||||
1qó
|
||||
1qú
|
||||
1qü
|
||||
1ra
|
||||
1rá
|
||||
1re
|
||||
1ré
|
||||
1ri
|
||||
1rí
|
||||
1ro
|
||||
1ró
|
||||
1ru
|
||||
1rú
|
||||
1rü
|
||||
1sa
|
||||
1sá
|
||||
1se
|
||||
1sé
|
||||
1si
|
||||
1sí
|
||||
1so
|
||||
1só
|
||||
1su
|
||||
1sú
|
||||
1sü
|
||||
1ta
|
||||
1tá
|
||||
1te
|
||||
1té
|
||||
1ti
|
||||
1tí
|
||||
1to
|
||||
1tó
|
||||
1tu
|
||||
1tú
|
||||
1tü
|
||||
1va
|
||||
1vá
|
||||
1ve
|
||||
1vé
|
||||
1vi
|
||||
1ví
|
||||
1vo
|
||||
1vó
|
||||
1vu
|
||||
1vú
|
||||
1vü
|
||||
1wa
|
||||
1wá
|
||||
1we
|
||||
1wé
|
||||
1wi
|
||||
1wí
|
||||
1wo
|
||||
1wó
|
||||
1wu
|
||||
1wú
|
||||
1wü
|
||||
1xa
|
||||
1xá
|
||||
1xe
|
||||
1xé
|
||||
1xi
|
||||
1xí
|
||||
1xo
|
||||
1xó
|
||||
1xu
|
||||
1xú
|
||||
1xü
|
||||
1ya
|
||||
1yá
|
||||
1ye
|
||||
1yé
|
||||
1yi
|
||||
1yí
|
||||
1yo
|
||||
1yó
|
||||
1yu
|
||||
1yú
|
||||
1yü
|
||||
1za
|
||||
1zá
|
||||
1ze
|
||||
1zé
|
||||
1zi
|
||||
1zí
|
||||
1zo
|
||||
1zó
|
||||
1zu
|
||||
1zú
|
||||
1zü
|
||||
h1b
|
||||
h1c
|
||||
h1d
|
||||
h1f
|
||||
h1g
|
||||
h1h
|
||||
h1j
|
||||
h1k
|
||||
h1l
|
||||
h1m
|
||||
h1n
|
||||
h1ñ
|
||||
h1p
|
||||
h1q
|
||||
h1r
|
||||
h1s
|
||||
h1t
|
||||
h1v
|
||||
h1w
|
||||
h1x
|
||||
h1y
|
||||
h1z
|
||||
1ai
|
||||
1au
|
||||
1ei
|
||||
1eu
|
||||
1io
|
||||
1ou
|
||||
1ia
|
||||
1ua
|
||||
1ie
|
||||
1ue
|
||||
1oi
|
||||
1uo
|
||||
1ui
|
||||
1iu
|
||||
1ay
|
||||
1ey
|
||||
1oy
|
||||
a1a
|
||||
a1e
|
||||
a1o
|
||||
e1a
|
||||
e1e
|
||||
e1o
|
||||
o1a
|
||||
o1e
|
||||
o1o
|
||||
|
||||
a1ha
|
||||
a1há
|
||||
á1ha
|
||||
a1he
|
||||
a1hé
|
||||
á1he
|
||||
a1ho
|
||||
a1hó
|
||||
á1ho
|
||||
e1ha
|
||||
e1há
|
||||
é1ha
|
||||
e1he
|
||||
e1hé
|
||||
é1he
|
||||
e1ho
|
||||
e1hó
|
||||
é1ho
|
||||
o1ha
|
||||
o1há
|
||||
ó1ha
|
||||
o1he
|
||||
o1hé
|
||||
ó1he
|
||||
o1ho
|
||||
o1hó
|
||||
ó1ho
|
||||
|
||||
1ahy
|
||||
1ehy
|
||||
1ohy
|
||||
1iai
|
||||
1iei
|
||||
1uai
|
||||
1uei
|
||||
1uau
|
||||
1iau
|
||||
1uay
|
||||
1uey
|
||||
|
||||
1guay
|
||||
|
||||
1gua
|
||||
1güa
|
||||
1gue
|
||||
1güe
|
||||
1gui
|
||||
1güi
|
||||
1guo
|
||||
1güo
|
||||
|
||||
1bai
|
||||
1cai
|
||||
1dai
|
||||
1fai
|
||||
1gai
|
||||
1jai
|
||||
1kai
|
||||
1lai
|
||||
1mai
|
||||
1nai
|
||||
1ñai
|
||||
1pai
|
||||
1rai
|
||||
1sai
|
||||
1tai
|
||||
1vai
|
||||
1wai
|
||||
1xai
|
||||
1zai
|
||||
1bau
|
||||
1cau
|
||||
1dau
|
||||
1fau
|
||||
1gau
|
||||
1jau
|
||||
1kau
|
||||
1lau
|
||||
1mau
|
||||
1nau
|
||||
1ñau
|
||||
1pau
|
||||
1rau
|
||||
1sau
|
||||
1tau
|
||||
1vau
|
||||
1wau
|
||||
1xau
|
||||
1zau
|
||||
1bei
|
||||
1cei
|
||||
1dei
|
||||
1fei
|
||||
1gei
|
||||
1jei
|
||||
1kei
|
||||
1lei
|
||||
1mei
|
||||
1nei
|
||||
1ñei
|
||||
1pei
|
||||
1rei
|
||||
1sei
|
||||
1tei
|
||||
1vei
|
||||
1wei
|
||||
1xei
|
||||
1zei
|
||||
1beu
|
||||
1ceu
|
||||
1deu
|
||||
1feu
|
||||
1geu
|
||||
1jeu
|
||||
1keu
|
||||
1leu
|
||||
1meu
|
||||
1neu
|
||||
1ñeu
|
||||
1peu
|
||||
1reu
|
||||
1seu
|
||||
1teu
|
||||
1veu
|
||||
1weu
|
||||
1xeu
|
||||
1zeu
|
||||
1bio
|
||||
1cio
|
||||
1dio
|
||||
1fio
|
||||
1gio
|
||||
1jio
|
||||
1kio
|
||||
1lio
|
||||
1mio
|
||||
1nio
|
||||
1ñio
|
||||
1pio
|
||||
1rio
|
||||
1sio
|
||||
1tio
|
||||
1vio
|
||||
1wio
|
||||
1xio
|
||||
1zio
|
||||
1bou
|
||||
1cou
|
||||
1dou
|
||||
1fou
|
||||
1gou
|
||||
1jou
|
||||
1kou
|
||||
1lou
|
||||
1mou
|
||||
1nou
|
||||
1ñou
|
||||
1pou
|
||||
1rou
|
||||
1sou
|
||||
1tou
|
||||
1vou
|
||||
1wou
|
||||
1xou
|
||||
1zou
|
||||
1bia
|
||||
1cia
|
||||
1dia
|
||||
1fia
|
||||
1gia
|
||||
1jia
|
||||
1kia
|
||||
1lia
|
||||
1mia
|
||||
1nia
|
||||
1ñia
|
||||
1pia
|
||||
1ria
|
||||
1sia
|
||||
1tia
|
||||
1via
|
||||
1wia
|
||||
1xia
|
||||
1zia
|
||||
1bua
|
||||
1cua
|
||||
1dua
|
||||
1fua
|
||||
|
||||
1jua
|
||||
1kua
|
||||
1lua
|
||||
1mua
|
||||
1nua
|
||||
1ñua
|
||||
1pua
|
||||
1qua
|
||||
1rua
|
||||
1sua
|
||||
1tua
|
||||
1vua
|
||||
1wua
|
||||
1xua
|
||||
1zua
|
||||
1bie
|
||||
1cie
|
||||
1die
|
||||
1fie
|
||||
1gie
|
||||
1jie
|
||||
1kie
|
||||
1lie
|
||||
1mie
|
||||
1nie
|
||||
1ñie
|
||||
1pie
|
||||
1rie
|
||||
1sie
|
||||
1tie
|
||||
1vie
|
||||
1wie
|
||||
1xie
|
||||
1zie
|
||||
1bue
|
||||
1cue
|
||||
1due
|
||||
1fue
|
||||
|
||||
1jue
|
||||
1kue
|
||||
1lue
|
||||
1mue
|
||||
1nue
|
||||
1ñue
|
||||
1pue
|
||||
1que
|
||||
1qué
|
||||
1rue
|
||||
1sue
|
||||
1tue
|
||||
1vue
|
||||
1wue
|
||||
1xue
|
||||
1zue
|
||||
1boi
|
||||
1coi
|
||||
1doi
|
||||
1foi
|
||||
1goi
|
||||
1joi
|
||||
1koi
|
||||
1loi
|
||||
1moi
|
||||
1noi
|
||||
1ñoi
|
||||
1poi
|
||||
1roi
|
||||
1soi
|
||||
1toi
|
||||
1voi
|
||||
1woi
|
||||
1xoi
|
||||
1zoi
|
||||
1buo
|
||||
1cuo
|
||||
1duo
|
||||
1fuo
|
||||
|
||||
1juo
|
||||
1kuo
|
||||
1luo
|
||||
1muo
|
||||
1nuo
|
||||
1ñuo
|
||||
1puo
|
||||
1quo
|
||||
1ruo
|
||||
1suo
|
||||
1tuo
|
||||
1vuo
|
||||
1wuo
|
||||
1xuo
|
||||
1zuo
|
||||
1bui
|
||||
1cui
|
||||
1dui
|
||||
1fui
|
||||
|
||||
1jui
|
||||
1kui
|
||||
1lui
|
||||
1mui
|
||||
1nui
|
||||
1ñui
|
||||
1pui
|
||||
1qui
|
||||
1rui
|
||||
1sui
|
||||
1tui
|
||||
1vui
|
||||
1wui
|
||||
1xui
|
||||
1zui
|
||||
1biu
|
||||
1ciu
|
||||
1diu
|
||||
1fiu
|
||||
1giu
|
||||
1jiu
|
||||
1kiu
|
||||
1liu
|
||||
1miu
|
||||
1niu
|
||||
1ñiu
|
||||
1piu
|
||||
1riu
|
||||
1siu
|
||||
1tiu
|
||||
1viu
|
||||
1wiu
|
||||
1xiu
|
||||
1ziu
|
||||
1bay
|
||||
1cay
|
||||
1day
|
||||
1fay
|
||||
1gay
|
||||
1jay
|
||||
1kay
|
||||
1lay
|
||||
1may
|
||||
1nay
|
||||
1ñay
|
||||
1pay
|
||||
1ray
|
||||
1say
|
||||
1tay
|
||||
1vay
|
||||
1way
|
||||
1xay
|
||||
1zay
|
||||
1bey
|
||||
1cey
|
||||
1dey
|
||||
1fey
|
||||
1gey
|
||||
1jey
|
||||
1key
|
||||
1ley
|
||||
1mey
|
||||
1ney
|
||||
1ñey
|
||||
1pey
|
||||
1rey
|
||||
1sey
|
||||
1tey
|
||||
1vey
|
||||
1wey
|
||||
1xey
|
||||
1zey
|
||||
1boy
|
||||
1coy
|
||||
1doy
|
||||
1foy
|
||||
1goy
|
||||
1joy
|
||||
1koy
|
||||
1loy
|
||||
1moy
|
||||
1noy
|
||||
1ñoy
|
||||
1poy
|
||||
1roy
|
||||
1soy
|
||||
1toy
|
||||
1voy
|
||||
1woy
|
||||
1xoy
|
||||
1zoy
|
||||
|
||||
í1a
|
||||
a1í
|
||||
a1ú
|
||||
ú1a
|
||||
e1í
|
||||
í1e
|
||||
e1ú
|
||||
ú1e
|
||||
í1o
|
||||
o1í
|
||||
o1ú
|
||||
ú1o
|
||||
ú1i
|
||||
í1u
|
||||
|
||||
quei
|
||||
quéi
|
||||
queí
|
||||
queu
|
||||
quéu
|
||||
queú
|
||||
quio
|
||||
quío
|
||||
quió
|
||||
quia
|
||||
quía
|
||||
quiá
|
||||
quie
|
||||
quíe
|
||||
quié
|
||||
|
||||
guei
|
||||
guéi
|
||||
gueí
|
||||
gueu
|
||||
guéu
|
||||
gueú
|
||||
guio
|
||||
guío
|
||||
guió
|
||||
guia
|
||||
guía
|
||||
guiá
|
||||
guie
|
||||
guíe
|
||||
guié
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -1,72 +0,0 @@
|
|||
_______________________________________________________________________________
|
||||
|
||||
DICTIONNAIRES ORTHOGRAPHIQUES FRANÇAIS
|
||||
version 4.11
|
||||
|
||||
Olivier R. - dicollecte<at>free<dot>fr
|
||||
Dicollecte : http://www.dicollecte.org/
|
||||
|
||||
Licence :
|
||||
MPL : Mozilla Public License
|
||||
version 2.0 -- http://www.mozilla.org/MPL/2.0/
|
||||
|
||||
Ce dictionnaire ne peut fonctionner qu’avec un logiciel utilisant le
|
||||
correcteur Hunspell : OpenOffice.org 3.2+, Firefox 4+, Thunderbird 5+
|
||||
|
||||
Principaux contributeurs :
|
||||
- Sylvain P. ;
|
||||
- Laurent Dubois ;
|
||||
- Jean-Luc T. ;
|
||||
- Pierre Poisson ;
|
||||
- Dominique Pellé ;
|
||||
- Pierre-Yves ;
|
||||
- Leywen ;
|
||||
- Romain Muller et Serge Bibauw, de l’association RENOUVO, grâce à qui
|
||||
la nouvelle orthographe et ses anciennes variantes ont pu être établies ;
|
||||
- Chantal Contant, pour ses recherches sur la réforme de 1990 ;
|
||||
- Benoît Sagot, qui nous a autorisé à comparer notre lexique avec Lefff,
|
||||
ce qui a mis en évidence des dizaines d’erreurs d’étiquetage grammatical ;
|
||||
- Philipp Burgess, pour la normalisation Unicode avec Hunspell.
|
||||
|
||||
Merci aussi à tous ceux qui ont apporté leur pierre à l’édifice.
|
||||
http://www.dicollecte.org/members.php?prj=fr
|
||||
|
||||
Pour participer à l’amélioration du dictionnaire, allez sur :
|
||||
http://www.dicollecte.org/home.php?prj=fr
|
||||
|
||||
_______________________________________________________________________________
|
||||
|
||||
À propos des différents dictionnaires français
|
||||
_______________________________________________________________________________
|
||||
|
||||
En 1990, le Conseil supérieur à la langue française et l’Académie française
|
||||
ont proposé une réforme de l’orthographe qui concerne plusieurs milliers de
|
||||
mots. L’emploi des nouvelles graphies n’est pas obligatoire. Les anciennes
|
||||
comme les nouvelles sont considérées comme correctes.
|
||||
|
||||
Pour en savoir plus sur la réforme de 1990 :
|
||||
http://www.renouvo.org/regles.php
|
||||
http://www.orthographe-recommandee.info/
|
||||
|
||||
Malgré les rectifications modestes apportées par cette réforme, la nouvelle
|
||||
orthographe suscite beaucoup de polémiques. Afin de satisfaire les exigences
|
||||
de chacun, quatre dictionnaires existent, respectant différemment cette
|
||||
réforme.
|
||||
|
||||
Dictionnaire «Moderne»
|
||||
Ce dictionnaire propose une sélection des graphies classiques et
|
||||
réformées, suivant la lente évolution de l’orthographe actuelle. Ce
|
||||
dictionnaire contient les graphies les moins polémiques de la réforme.
|
||||
|
||||
Dictionnaire «Classique» [recommandé]
|
||||
Ce dictionnaire est une extension du dictionnaire «Moderne» et propose
|
||||
en sus des graphies alternatives, parfois encore très usitées, parfois
|
||||
tombées en désuétude.
|
||||
|
||||
Dictionnaire «Réforme 1990»
|
||||
Ce dictionnaire ne connaît que les graphies nouvelles des mots concernés
|
||||
par la réforme de 1990.
|
||||
|
||||
Dictionnaire «Toutes variantes»
|
||||
Ce dictionnaire contient les nouvelles et les anciennes graphies des
|
||||
mots concernés par la réforme de 1990.
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -1,37 +0,0 @@
|
|||
Magyar Ispell helyesírási szótár – 1.6.1-es szótárállományok morfológiai adatokkal
|
||||
|
||||
Követelmény: Hunspell helyesírás-ellenőrző 1.1.3-as vagy újabb változata
|
||||
|
||||
A következő nyílt forráskódú licencek bármelyike alapján
|
||||
szabadon felhasználható, de mindenféle garancia nélkül:
|
||||
|
||||
GNU GPL 2.0, GNU LGPL 2.1 vagy MPL 1.1
|
||||
|
||||
(c) Németh László és Godó Ferenc, 2010
|
||||
|
||||
Honlap: http://magyarispell.sf.net
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
Hungarian Hunspell dictionaries version 1.6.1 with morphological data
|
||||
|
||||
Requirements: Hunspell 1.1.3 or newer
|
||||
|
||||
License
|
||||
|
||||
GPL 2.0/LGPL 2.1/MPL 1.1 tri-license
|
||||
|
||||
The contents of this software may be used under the terms of
|
||||
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",
|
||||
see COPYING.LGPL) or (excepting the LGPLed GNU gettext library in the
|
||||
intl/ directory) the Mozilla Public License Version 1.1 or later
|
||||
(the "MPL", see COPYING.MPL).
|
||||
|
||||
Software distributed under these licenses is distributed on an "AS IS" basis,
|
||||
WITHOUT WARRANTY OF ANY KIND, either express or implied. See the licences
|
||||
for the specific language governing rights and limitations under the licenses.
|
||||
|
||||
2010 (c) László Németh & Ferenc Godó
|
||||
|
||||
Home: http://magyarispell.sf.net
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -1,447 +0,0 @@
|
|||
Version 2.4 (01/09/2007) (dd/mm/yyyy)
|
||||
|
||||
Home page: http://linguistico.sf.net/wiki
|
||||
|
||||
For English Readers: please see the text at the end of this document
|
||||
|
||||
**********************************
|
||||
*********** Italiano ***********
|
||||
**********************************
|
||||
|
||||
Il dizionario italiano
|
||||
|
||||
SOMMARIO
|
||||
|
||||
1. Licenza
|
||||
2. Avvertenze importanti (leggere assolutamente)
|
||||
3. Modalità d'installazione in OpenOffice.org
|
||||
4. Integrazione con altri prodotti
|
||||
5. Altri correttori ortografici che fanno uso di questo dizionario
|
||||
6. Ringraziamenti
|
||||
|
||||
|
||||
**********
|
||||
1. Licenza
|
||||
|
||||
Il file affix e il dizionario italiano per il correttore ortografico MySpell
|
||||
usato da OpenOffice.org sono rilasciati da Davide Prina
|
||||
davideprina<at>yahoo<dot>com (sostituire <at> con @ e <dot> con . per il
|
||||
contatto via E-Mail) sotto i termini e le condizioni della GNU General Public
|
||||
License (GPL) 3.0 o successiva. Una volta accettata la licenza per
|
||||
l'uso, la distribuzione e la modifica di questo prodotto, l'accettante dovrà
|
||||
rispettare tutti i termini e le condizioni riportate nella licenza scelta.
|
||||
|
||||
La copia della licenza applicabile a questo lavoro è disponibile presso il sito
|
||||
del progetto GNU:
|
||||
|
||||
http://www.gnu.org/
|
||||
|
||||
La licenza è anche allegata nel file it_IT_COPYING
|
||||
|
||||
************************************************
|
||||
2. Avvertenze importanti (leggere assolutamente)
|
||||
|
||||
A partire da OpenOffice.org 1.1, il dizionario italiano per la correzione
|
||||
ortografica è direttamente integrato nella suite e perciò non necessita più di
|
||||
alcuna installazione manuale. L'unico problema è che non è aggiornato all'ultima
|
||||
versione e quindi è consigliato effettuare l'aggiornamento manuale o automatico
|
||||
ad ogni nuova versione rilasciata, come è indicato di seguito.
|
||||
|
||||
È opportuno verificare che il dizionario sia attivo, selezionando dalla barra
|
||||
dei menù Strumenti->Opzioni->Impostazione Lingua->Lingue e controllando che
|
||||
sotto lingue standard/Occidentale, l'opzione di scelta "Italiano (Italia)" sia
|
||||
selezionata e abbia al suo fianco un segno di spunta sormontato dalle lettere
|
||||
ABC.
|
||||
|
||||
Nel caso il correttore non risultasse attivo, è sufficiente scegliere dalla
|
||||
barra dei menù Strumenti->Opzioni->Impostazione Lingua->Linguistica e dopo avere
|
||||
premuto sul pulsante "Modifica" della finestra di dialogo, attivarlo seleziondo
|
||||
l'apposita voce.
|
||||
|
||||
Se tuttavia il correttore non risultasse ancora attivo o nell'eventualità che si
|
||||
voglia aggiornare la versione del dizionario installata è possibile utilizzare
|
||||
le procedure di installazione indicate oltre.
|
||||
|
||||
È vivamente consigliato l'aggiornamento del dizionario perché le ultime versioni
|
||||
contengono molte correzioni rispetto alle precedenti e sono meno esose di
|
||||
risorse.
|
||||
|
||||
******************************************************************************
|
||||
3. Modalità d'installazione (procedura corretta a partire dalla versione 641c)
|
||||
|
||||
Ulteriore documentazione può essere trovata qui:
|
||||
http://linguistico.sourceforge.net/wiki
|
||||
|
||||
Esistono principalmente due modalità per installare il dizionario italiano:
|
||||
|
||||
a) in automatico, grazie a due comodi installer creati da membri della comunità
|
||||
che si occupano di tutte le fasi dell'installazione.
|
||||
|
||||
Nota: non è detto che l'aggiornamento automatico prelevi l'ultima versione del
|
||||
dizionario, in alcuni casi potrebbe addirittura installare una versione
|
||||
più vecchia rispetto a quella presente sul proprio sistema.
|
||||
L'installazione manuale/semimanuale è quella sempre corretta ed è molto
|
||||
semplice da effettuare.
|
||||
|
||||
La versione per MS Windows si trova su
|
||||
|
||||
http://www.ooodocs.org/dictinstall/
|
||||
|
||||
Mentre la versione per Linux è reperibile presso
|
||||
|
||||
http://www.deadletterdrop.worldonline.co.uk/OOo/
|
||||
|
||||
oppure
|
||||
|
||||
http://ooodi.sourceforge.net/
|
||||
|
||||
Nelle ultime versioni l'installatore dei dizionari è già inserito in OOo e
|
||||
quindi è possibile effettuare un'installazine semiautomatica seguendo i seguenti
|
||||
punti:
|
||||
* scaricare l'ultima versione del dizionario da
|
||||
http://sourceforge.net/projects/linguistico/
|
||||
andando sulla sezione download
|
||||
|
||||
Nota: è possibile prendere il file più recente contenuto in:
|
||||
- Strumenti Linguistici DicOOo <- contiene sia il dizionario che il
|
||||
thesaurus, però bisogna scegliere il
|
||||
pacchetto corretto rispetto alla
|
||||
propria versione di OOo (2.0 o 1.1.x)
|
||||
|
||||
* aprire qualsiasi documento di OOo od il contenitore soffice
|
||||
* dal menù: File->Pilota automatico->Installa nuovi dizionari
|
||||
Nota: il documento contiene una macro necessaria per l'installazione
|
||||
automatica
|
||||
* selezionare l'italiano
|
||||
* premere il bottone Avvia DicOOo
|
||||
* mettere il check su "Installazione pacchetto linguistico off-line"
|
||||
* premere sul bottone "sfoglia", cercare e selezionare il file scaricato nel
|
||||
primo punto
|
||||
* selezionare gli strumeti linguistici che si vogliono installare
|
||||
|
||||
b) manualmente
|
||||
I nuovi dizionari sono scaricabili da qui:
|
||||
http://sourceforge.net/projects/linguistico/
|
||||
nella sezione download -> "Dizionario italiano per OOo"
|
||||
|
||||
Scompattate il file compresso (.zip, tar.gz, bzip,...) nella directory/cartella
|
||||
corretta; tale directory dipende dal sistema operativo usato e dalla propria
|
||||
versione di OOo (per visualizzare la propria versione è sufficiente aprire un
|
||||
documento di OOo, aprire il menù ? e selezionare la voce "Informazioni su
|
||||
OpenOffice.org ...)
|
||||
|
||||
Per Debian GNU/Linux: /usr/share/myspell/dict
|
||||
|
||||
Per le versioni ufficiali Sun:
|
||||
* per le versioni maggiori o uguale alla 1.0.1 la directory su windows è:
|
||||
<Directory di installazione di OpenOffice.org>/share/dict/ooo
|
||||
* per le versioni inferiori alla versione 1.0.1 la directory è:
|
||||
<Directory di installazione di OpenOffice.org>/user/wordbook/
|
||||
|
||||
Se il vostro sistema operativo è differente e/o non riuscite a trovare la
|
||||
directory in cui effettuare l'installazione, allora è possibile cercare il file
|
||||
dictionary.lst; la directory dove trovare questo file è quella in cui dovete
|
||||
installare il dizionario.
|
||||
|
||||
Aprite in un qualsiasi editor di testo il file dictionary.lst che troverete
|
||||
nella cartella citata precedentemente, in modo da poter inserire il codice
|
||||
della lingua e della regione che vi interessa.
|
||||
|
||||
Per esempio:
|
||||
nel vostro editor di testo aggiungete questa linea al file dictionary.lst:
|
||||
|
||||
DICT it IT it_IT
|
||||
|
||||
ATTENZIONE: la riga sopra indicata non deve iniziare con il simbolo #,
|
||||
altrimenti l'istruzione è commentata e di conseguenza non è eseguita.
|
||||
È indispensabile che siano rispettati i caratteri maiuscoli e minuscoli come
|
||||
riportato nell'esempio, altrimenti non funziona. Inoltre è consigliabile
|
||||
controllare che tale riga sia presente una sola volta nel file, altrimenti il
|
||||
dizionario verrà caricato più volte (una volta per ogni riga presente) causando
|
||||
uno spreco di memoria RAM e l'inconveniente di fornire più volte gli stessi
|
||||
suggerimenti alle parole errate.
|
||||
|
||||
Quindi salvate il file con le vostre modifiche.
|
||||
I significati dei vari campi sono:
|
||||
|
||||
Campo 1: Tipo di stringa: "DICT" , al momento è l'unica voce disponibile.
|
||||
Campo 2: Codice linguistico "it" o "de" o "en" ...(vedi Codici Linguistici ISO)
|
||||
Campo 3: Codice Regionale "IT" o"DE" o "US" ... (vedi Codici Regionali ISO)
|
||||
Campo 4: Il nome del dizionario da utilizzare "it_IT" o "it_CH" o ...
|
||||
Senza aggiungere le estensioni .aff o .dic dei files. Questa voce è
|
||||
particolarmente utile se vogliamo creare i nostri dizionari
|
||||
specialistici. Per esempio it_INFORMATICA o it_DIRITTO. Sarà
|
||||
sufficiente aggiungere un'altra linea al file dictionary.lst cambiando
|
||||
solo il nome del dizionario e il correttore ortografico di
|
||||
OpenOffice.org controllerà i vostri documenti usando in successione
|
||||
tutti i dizionari elencati e presenti nella cartella wordbook per la
|
||||
lingua italiana.
|
||||
|
||||
Ora è necessario chiudere tutte le applicazione di OpenOffice.org attive,
|
||||
compreso il quick start. Questo passo serve per permettere ad OOo di vedere le
|
||||
modifiche apportate e di utilizzarle.
|
||||
|
||||
Successivamente :
|
||||
|
||||
1) Aprite un nuovo documento di OpenOffice.org e scegliete dalla barra dei menù
|
||||
il comando:
|
||||
Strumenti->Opzioni->Impostazioni Lingua->Lingue
|
||||
(Tools->Options->Language settings->Languages nella versione inglese)
|
||||
2) Impostate nell'elenco a discesa che vedete sulla destra la lingua italiana
|
||||
quale linguaggio di default per i vostri documenti
|
||||
3) selezionando l'elemento Linguistica (Writing Aids) che troverete nella
|
||||
sezione Impostazioni Lingua (Language Settings) e premendo il tasto di
|
||||
modifica della sezione Moduli Linguistici Disponibili (Available language
|
||||
modules) collocato sulla destra della finestra di dialogo, potrete accedere
|
||||
alla sezione che vi permetterà di impostare il correttore in italiano. Sarà
|
||||
sufficiente scegliere la nostra lingua dall'elenco a discesa che mostra tutti
|
||||
i dizionari disponibili nella Suite, facendo attenzione a selezionare con un
|
||||
segno di spunta, la funzione di correzione ortografica nel riquadro
|
||||
immediatamente sottostante l'elenco a discesa.
|
||||
|
||||
Attenzione: La denominazione dei comandi di menù o delle finestre può subire
|
||||
modifiche o la loro collocazione può essere modificata nel passaggio da una
|
||||
versione ad un'altra.
|
||||
|
||||
Attenzione: gli utenti di OpenOffice.org per MS Windows, devono riavviare anche
|
||||
il quickstarter della Suite, la piccola icona con i gabbiani (versione 1.0 o
|
||||
superiore) che dovrebbe apparire sulla System Tray nell'angolo in basso a destra
|
||||
dello schermo, proprio a fianco dell'orologio di sistema. È sufficiente cliccare
|
||||
col tasto destro del mouse sull'icona e scegliere esci o exit dal menù di
|
||||
contesto. Successivamente, si dovrà effettuare l'installazione del dizionario,
|
||||
mantenendo disattivato il quickstarter durante tutta la procedura, chiudere il
|
||||
documento dal quale si sono modificate le opzioni generali e riaprirne uno nuovo
|
||||
per verificare il funzionamento del correttore italiano.
|
||||
|
||||
Questo è tutto, il correttore ortografico in italiano dovrebbe funzionare in
|
||||
modo adeguato.
|
||||
|
||||
|
||||
**********************************
|
||||
4. Integrazione con altri prodotti
|
||||
|
||||
Il dizionario italiano può essere usato con vari programmi.
|
||||
Qui di seguito ne vengono riportati alcuni:
|
||||
* OpenOffice.org: in modo nativo
|
||||
Caratteristiche: controllo ortografico durante la digitazione o su richiesta
|
||||
http://it.openoffice.org
|
||||
|
||||
* Mozilla-ThunderBird (è un client di posta): in modo nativo
|
||||
Caratteristiche: controllo ortografico solo su richiesta)
|
||||
http://www.mozilla.org/products/thunderbird/
|
||||
* Mozilla (browser con client di posta): in modo nativo
|
||||
Caratteristiche: controllo ortografico solo su richiesta
|
||||
http://www.mozilla.org
|
||||
* Mozilla-FireFox (è un browser): con l'estensione SpellBound
|
||||
Caratteristiche: controllo ortografico durante la digitazione o su richiesta
|
||||
Nota: il dizionario è installato in una directory differente
|
||||
http://spellbound.sourceforge.net/
|
||||
* Mozilla-ThunderBird (è un client di posta): con l'estensione Thunderbird
|
||||
In-Line SpellChecker
|
||||
Caratteristiche: controllo ortografico durante la digitazione
|
||||
http://www.supportware.net/mozilla/#ext8
|
||||
|
||||
* vim: è possibile convertire un dizionario per MySpell in modo da poter essere
|
||||
usato direttamente anche da vim. Per ora tale funzionalità è disponibile solo
|
||||
sulla versione in sviluppo di vim.
|
||||
|
||||
* gaim
|
||||
|
||||
Nota: è possibile scaricarsi i dizionari anche dal sito di mozilla (ma non è
|
||||
detto che siano aggiornati all'ultima versione): http://www.mozdev.org/
|
||||
|
||||
* ...
|
||||
|
||||
|
||||
******************************************************************
|
||||
5. Altri correttori ortografici che fanno uso di questo dizionario
|
||||
|
||||
Questo dizionario può essere usato dai seguenti programmi di correzione
|
||||
ortografica:
|
||||
* MySpell. http://lingucomponent.openoffice.org
|
||||
* Aspell. http://aspell.net
|
||||
* HunSpell. http://hunspell.sf.net
|
||||
|
||||
|
||||
************************************************
|
||||
6. Ringraziamenti
|
||||
|
||||
Gli utenti di un elaboratore di testi, come di qualunque altra applicazione
|
||||
software che utilizzi un correttore ortografico, spesso sottovalutano il lavoro
|
||||
necessario per produrre questo strumento fondamentale. I problemi sono molti:
|
||||
la lingua italiana non è statica, ma in continua evoluzione; semplici errori di
|
||||
digitazione in un dizionario digitale possono portare a gravi conseguenze sul
|
||||
funzionamento del correttore; ciò che si usa correntemente nella lingua parlata
|
||||
non sempre è corretto in quella scritta.
|
||||
|
||||
Proprio per ovviare a tali difficoltà, i volontari della Comunità OpenOffice.org
|
||||
hanno partecipato attivamente al controllo di qualità del contenuto dell'attuale
|
||||
dizionario per la correzione ortografica. Con questa sezione si vuole rendere
|
||||
merito a tutti coloro che hanno collaborato in questa attività.
|
||||
|
||||
È possibile vedere l'elenco dei volontari all'interno del file AUTHOURS
|
||||
|
||||
|
||||
**********************************
|
||||
*********** English ************
|
||||
**********************************
|
||||
|
||||
The Italian dictionary.
|
||||
|
||||
INDEX
|
||||
|
||||
1. License
|
||||
2. Warnings (to read absolutely)
|
||||
3. How to install it in OpenOffice.org
|
||||
4. Others product that can use this dictionary
|
||||
5. Other spell checking program that can use this dictionary
|
||||
6. Thanks
|
||||
|
||||
|
||||
**********
|
||||
1. License
|
||||
|
||||
The Italian dictionary and affix file for the MySpell spell-checker used by
|
||||
OpenOffice.org are released by Davide Prina davideprina<at>yahoo<dot>com (please
|
||||
change <at> with @ and <dot> with . in order to contact the authors) under the
|
||||
terms and conditions of the GNU General Public License (GPL) version 3.0 or
|
||||
above. The user, distributor and/or programmer after accept this license when
|
||||
he/she uses, distributes and/or modifies these files. He/she must agree with
|
||||
every term and condition included in the chosen license.
|
||||
|
||||
A copy of the licenses applicable to this work is available at:
|
||||
|
||||
http://www.gnu.org/
|
||||
|
||||
A copy of the license is in the GPL.txt file
|
||||
|
||||
|
||||
********************************
|
||||
2. Warnings (to read absolutely)
|
||||
|
||||
Warning: Since the release of OpenOffice.org 1.1 the Italian dictionary is
|
||||
directly integrated into the applications and so it doesn't need any manual
|
||||
installation. Probably in OpenOffice.org there is not the last version so it is
|
||||
better to install it as show below. It is a good norm to verify that the
|
||||
dictionary has been activate. You can do so simply by selecting from the menu
|
||||
bar Tools->Options->Language Settings->Languages and by checking that the item
|
||||
"Italian (italy)" is selected and a slash with the letters ABC is displayed to
|
||||
its side.
|
||||
|
||||
If the dictionary is not activated yet, you can perform this action by selecting
|
||||
from the menu bar Tools->Options->Language Settings->Writing Aids and by
|
||||
clicking on the "Edit..." button you will find in the dialog window. In the new
|
||||
dialog that will appear, you can activate the dictionary.
|
||||
|
||||
In the case the dictionary doesn't still work or you wish to upgarde the version
|
||||
of your installed dictionary you can follow the procedures explained below.
|
||||
|
||||
|
||||
**************************************
|
||||
3. How to install it in OpenOffice.org
|
||||
|
||||
Note: new dictionary versions are avaiable from here:
|
||||
http://sourceforge.net/projects/linguistico/
|
||||
|
||||
a) To install these dictionaries in OOo build 641c and greater:
|
||||
A. Unzip the dictionary files, *.aff and *.dic,
|
||||
into your <OpenOffice.org>\user\wordbook\*.* directory
|
||||
|
||||
Attention: since OpenOffice.org 1.0.1 the right folder for the dictionary is
|
||||
<OpenOffice.org>\share\dict\ooo
|
||||
|
||||
B. Edit the dictionary.lst file that is in that same directory
|
||||
using any text editor to register a dictionary for a specific
|
||||
locale (the same dictionary can be registered for multiple locales).
|
||||
|
||||
For example:
|
||||
To add the it_IT.zip dictionary under the Italian (Italy) locale to OOo you
|
||||
would:
|
||||
cd <OpenOffice.org641>\user\wordbook (or <OpenOffice.org>\share\dict\ooo)
|
||||
unzip it_IT.zip
|
||||
|
||||
|
||||
b) And then, using any text editor, add the following line to dictionary.lst:
|
||||
DICT it IT it_IT
|
||||
|
||||
This line tells OOo to register the affix file it_IT.aff and the wordlist
|
||||
it_IT.dic to the locale it IT, which is Italian (Italy). The specific fields of
|
||||
this line are:
|
||||
|
||||
Field 1: Entry Type "DICT" is the only supported entry type so far
|
||||
Field 2: Language code from Locale "en" or "it" or "pt" ...
|
||||
(see {ISO Language Code} page)
|
||||
Field 3: Country code from Locale "IT" ...
|
||||
(see {ISO Country Code} page)
|
||||
Field 4: Root name of Dictionary "italian" or "it_it" ...
|
||||
(do not add the .aff or .dic extensions to the name)
|
||||
|
||||
|
||||
c) Start up OpenOffice.org. and go to:
|
||||
|
||||
Tools->Options->LanguageSettings->WritingAids
|
||||
|
||||
Hit "Edit" and use the pull down menu to select your locale, Italy,
|
||||
and then make sure to check the MySpell SpellChecker for that locale.
|
||||
|
||||
That it! Your dictionary is installed and registered for that language.
|
||||
|
||||
|
||||
**********************************************
|
||||
4. Others product that can use this dictionary
|
||||
|
||||
The Italian dictionary can be used with many programs.
|
||||
Here is some programs that can use this dictionary:
|
||||
|
||||
* OpenOffice.org
|
||||
spell checking when you type or upon request
|
||||
http://it.openoffice.org
|
||||
|
||||
* Mozilla-ThunderBird
|
||||
spell checking only upon request
|
||||
http://www.mozilla.org/products/thunderbird/
|
||||
* Mozilla con il client di posta: in modo nativo
|
||||
spell checking only upon request
|
||||
http://www.mozilla.org
|
||||
* Mozilla-FireFox: with SpellBound extension
|
||||
spell checking when you type or upon request
|
||||
Note: the dictionary is installed under a different directory
|
||||
http://spellbound.sourceforge.net/
|
||||
* Mozilla-ThunderBird: with "Thunderbird In-Line SpellChecker" extension
|
||||
spell checking when you type
|
||||
http://www.supportware.net/mozilla/#ext8
|
||||
|
||||
* vim: the MySpell dictionary can be converted and used with the last vim
|
||||
version
|
||||
|
||||
Note: you can download dictionary at mozilla site: http://www.mozdev.org/
|
||||
|
||||
* ...
|
||||
|
||||
|
||||
************************************************************
|
||||
5. Other spell checking program that can use this dictionary
|
||||
|
||||
This dictionary can be used with different spell checking programs:
|
||||
* MySpell. http://lingucomponent.openoffice.org
|
||||
* Aspell. http://aspell.net
|
||||
* HunSpell. http://hunspell.sf.net
|
||||
|
||||
|
||||
*********
|
||||
6. Thanks
|
||||
|
||||
The users of a word processor, like of whatever application that utilizes a
|
||||
spell checker, often underestimate the work needed to produce this basic tool.
|
||||
There are a lot of problems: the Italian language is not static, but always
|
||||
evolving; simple misspelled words in a digital dictionary can cause several
|
||||
problems to the spell checker; what is commonly used in the spoken language, it
|
||||
is not always right in the written one.
|
||||
|
||||
Just to overcome such difficulties, the volunteers of the OpenOffice.org
|
||||
Community have actively took part into the quality check of this dictionary
|
||||
content. With this section, we want to give the right credit to all people who
|
||||
have collaborated in this activity.
|
||||
|
||||
You can read the volunteers names in the file AUTHOURS
|
||||
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -1,35 +0,0 @@
|
|||
***** BEGIN LICENSE BLOCK *****
|
||||
Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
|
||||
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.
|
||||
|
||||
The Original Code is Hunspell Korean spellchecking dictionary.
|
||||
|
||||
The Initial Developer of the Original Code is
|
||||
Changwoo Ryu.
|
||||
Portions created by the Initial Developer are Copyright (C) 2008
|
||||
the Initial Developer. All Rights Reserved.
|
||||
|
||||
Contributor(s): Changwoo Ryu <cwryu@debian.org>
|
||||
|
||||
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 *****
|
|
@ -1,339 +0,0 @@
|
|||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Lesser General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License.
|
|
@ -1,510 +0,0 @@
|
|||
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
Version 2.1, February 1999
|
||||
|
||||
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
|
||||
51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
[This is the first released version of the Lesser GPL. It also counts
|
||||
as the successor of the GNU Library Public License, version 2, hence
|
||||
the version number 2.1.]
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
Licenses are intended to guarantee your freedom to share and change
|
||||
free software--to make sure the software is free for all its users.
|
||||
|
||||
This license, the Lesser General Public License, applies to some
|
||||
specially designated software packages--typically libraries--of the
|
||||
Free Software Foundation and other authors who decide to use it. You
|
||||
can use it too, but we suggest you first think carefully about whether
|
||||
this license or the ordinary General Public License is the better
|
||||
strategy to use in any particular case, based on the explanations
|
||||
below.
|
||||
|
||||
When we speak of free software, we are referring to freedom of use,
|
||||
not price. Our General Public Licenses are designed to make sure that
|
||||
you have the freedom to distribute copies of free software (and charge
|
||||
for this service if you wish); that you receive source code or can get
|
||||
it if you want it; that you can change the software and use pieces of
|
||||
it in new free programs; and that you are informed that you can do
|
||||
these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
distributors to deny you these rights or to ask you to surrender these
|
||||
rights. These restrictions translate to certain responsibilities for
|
||||
you if you distribute copies of the library or if you modify it.
|
||||
|
||||
For example, if you distribute copies of the library, whether gratis
|
||||
or for a fee, you must give the recipients all the rights that we gave
|
||||
you. You must make sure that they, too, receive or can get the source
|
||||
code. If you link other code with the library, you must provide
|
||||
complete object files to the recipients, so that they can relink them
|
||||
with the library after making changes to the library and recompiling
|
||||
it. And you must show them these terms so they know their rights.
|
||||
|
||||
We protect your rights with a two-step method: (1) we copyright the
|
||||
library, and (2) we offer you this license, which gives you legal
|
||||
permission to copy, distribute and/or modify the library.
|
||||
|
||||
To protect each distributor, we want to make it very clear that
|
||||
there is no warranty for the free library. Also, if the library is
|
||||
modified by someone else and passed on, the recipients should know
|
||||
that what they have is not the original version, so that the original
|
||||
author's reputation will not be affected by problems that might be
|
||||
introduced by others.
|
||||
|
||||
Finally, software patents pose a constant threat to the existence of
|
||||
any free program. We wish to make sure that a company cannot
|
||||
effectively restrict the users of a free program by obtaining a
|
||||
restrictive license from a patent holder. Therefore, we insist that
|
||||
any patent license obtained for a version of the library must be
|
||||
consistent with the full freedom of use specified in this license.
|
||||
|
||||
Most GNU software, including some libraries, is covered by the
|
||||
ordinary GNU General Public License. This license, the GNU Lesser
|
||||
General Public License, applies to certain designated libraries, and
|
||||
is quite different from the ordinary General Public License. We use
|
||||
this license for certain libraries in order to permit linking those
|
||||
libraries into non-free programs.
|
||||
|
||||
When a program is linked with a library, whether statically or using
|
||||
a shared library, the combination of the two is legally speaking a
|
||||
combined work, a derivative of the original library. The ordinary
|
||||
General Public License therefore permits such linking only if the
|
||||
entire combination fits its criteria of freedom. The Lesser General
|
||||
Public License permits more lax criteria for linking other code with
|
||||
the library.
|
||||
|
||||
We call this license the "Lesser" General Public License because it
|
||||
does Less to protect the user's freedom than the ordinary General
|
||||
Public License. It also provides other free software developers Less
|
||||
of an advantage over competing non-free programs. These disadvantages
|
||||
are the reason we use the ordinary General Public License for many
|
||||
libraries. However, the Lesser license provides advantages in certain
|
||||
special circumstances.
|
||||
|
||||
For example, on rare occasions, there may be a special need to
|
||||
encourage the widest possible use of a certain library, so that it
|
||||
becomes a de-facto standard. To achieve this, non-free programs must
|
||||
be allowed to use the library. A more frequent case is that a free
|
||||
library does the same job as widely used non-free libraries. In this
|
||||
case, there is little to gain by limiting the free library to free
|
||||
software only, so we use the Lesser General Public License.
|
||||
|
||||
In other cases, permission to use a particular library in non-free
|
||||
programs enables a greater number of people to use a large body of
|
||||
free software. For example, permission to use the GNU C Library in
|
||||
non-free programs enables many more people to use the whole GNU
|
||||
operating system, as well as its variant, the GNU/Linux operating
|
||||
system.
|
||||
|
||||
Although the Lesser General Public License is Less protective of the
|
||||
users' freedom, it does ensure that the user of a program that is
|
||||
linked with the Library has the freedom and the wherewithal to run
|
||||
that program using a modified version of the Library.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow. Pay close attention to the difference between a
|
||||
"work based on the library" and a "work that uses the library". The
|
||||
former contains code derived from the library, whereas the latter must
|
||||
be combined with the library in order to run.
|
||||
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License Agreement applies to any software library or other
|
||||
program which contains a notice placed by the copyright holder or
|
||||
other authorized party saying it may be distributed under the terms of
|
||||
this Lesser General Public License (also called "this License").
|
||||
Each licensee is addressed as "you".
|
||||
|
||||
A "library" means a collection of software functions and/or data
|
||||
prepared so as to be conveniently linked with application programs
|
||||
(which use some of those functions and data) to form executables.
|
||||
|
||||
The "Library", below, refers to any such software library or work
|
||||
which has been distributed under these terms. A "work based on the
|
||||
Library" means either the Library or any derivative work under
|
||||
copyright law: that is to say, a work containing the Library or a
|
||||
portion of it, either verbatim or with modifications and/or translated
|
||||
straightforwardly into another language. (Hereinafter, translation is
|
||||
included without limitation in the term "modification".)
|
||||
|
||||
"Source code" for a work means the preferred form of the work for
|
||||
making modifications to it. For a library, complete source code means
|
||||
all the source code for all modules it contains, plus any associated
|
||||
interface definition files, plus the scripts used to control
|
||||
compilation and installation of the library.
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running a program using the Library is not restricted, and output from
|
||||
such a program is covered only if its contents constitute a work based
|
||||
on the Library (independent of the use of the Library in a tool for
|
||||
writing it). Whether that is true depends on what the Library does
|
||||
and what the program that uses the Library does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Library's
|
||||
complete source code as you receive it, in any medium, provided that
|
||||
you conspicuously and appropriately publish on each copy an
|
||||
appropriate copyright notice and disclaimer of warranty; keep intact
|
||||
all the notices that refer to this License and to the absence of any
|
||||
warranty; and distribute a copy of this License along with the
|
||||
Library.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy,
|
||||
and you may at your option offer warranty protection in exchange for a
|
||||
fee.
|
||||
|
||||
2. You may modify your copy or copies of the Library or any portion
|
||||
of it, thus forming a work based on the Library, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) The modified work must itself be a software library.
|
||||
|
||||
b) You must cause the files modified to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
c) You must cause the whole of the work to be licensed at no
|
||||
charge to all third parties under the terms of this License.
|
||||
|
||||
d) If a facility in the modified Library refers to a function or a
|
||||
table of data to be supplied by an application program that uses
|
||||
the facility, other than as an argument passed when the facility
|
||||
is invoked, then you must make a good faith effort to ensure that,
|
||||
in the event an application does not supply such function or
|
||||
table, the facility still operates, and performs whatever part of
|
||||
its purpose remains meaningful.
|
||||
|
||||
(For example, a function in a library to compute square roots has
|
||||
a purpose that is entirely well-defined independent of the
|
||||
application. Therefore, Subsection 2d requires that any
|
||||
application-supplied function or table used by this function must
|
||||
be optional: if the application does not supply it, the square
|
||||
root function must still compute square roots.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Library,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Library, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote
|
||||
it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Library.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Library
|
||||
with the Library (or with a work based on the Library) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may opt to apply the terms of the ordinary GNU General Public
|
||||
License instead of this License to a given copy of the Library. To do
|
||||
this, you must alter all the notices that refer to this License, so
|
||||
that they refer to the ordinary GNU General Public License, version 2,
|
||||
instead of to this License. (If a newer version than version 2 of the
|
||||
ordinary GNU General Public License has appeared, then you can specify
|
||||
that version instead if you wish.) Do not make any other change in
|
||||
these notices.
|
||||
|
||||
Once this change is made in a given copy, it is irreversible for
|
||||
that copy, so the ordinary GNU General Public License applies to all
|
||||
subsequent copies and derivative works made from that copy.
|
||||
|
||||
This option is useful when you wish to copy part of the code of
|
||||
the Library into a program that is not a library.
|
||||
|
||||
4. You may copy and distribute the Library (or a portion or
|
||||
derivative of it, under Section 2) in object code or executable form
|
||||
under the terms of Sections 1 and 2 above provided that you accompany
|
||||
it with the complete corresponding machine-readable source code, which
|
||||
must be distributed under the terms of Sections 1 and 2 above on a
|
||||
medium customarily used for software interchange.
|
||||
|
||||
If distribution of object code is made by offering access to copy
|
||||
from a designated place, then offering equivalent access to copy the
|
||||
source code from the same place satisfies the requirement to
|
||||
distribute the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
5. A program that contains no derivative of any portion of the
|
||||
Library, but is designed to work with the Library by being compiled or
|
||||
linked with it, is called a "work that uses the Library". Such a
|
||||
work, in isolation, is not a derivative work of the Library, and
|
||||
therefore falls outside the scope of this License.
|
||||
|
||||
However, linking a "work that uses the Library" with the Library
|
||||
creates an executable that is a derivative of the Library (because it
|
||||
contains portions of the Library), rather than a "work that uses the
|
||||
library". The executable is therefore covered by this License.
|
||||
Section 6 states terms for distribution of such executables.
|
||||
|
||||
When a "work that uses the Library" uses material from a header file
|
||||
that is part of the Library, the object code for the work may be a
|
||||
derivative work of the Library even though the source code is not.
|
||||
Whether this is true is especially significant if the work can be
|
||||
linked without the Library, or if the work is itself a library. The
|
||||
threshold for this to be true is not precisely defined by law.
|
||||
|
||||
If such an object file uses only numerical parameters, data
|
||||
structure layouts and accessors, and small macros and small inline
|
||||
functions (ten lines or less in length), then the use of the object
|
||||
file is unrestricted, regardless of whether it is legally a derivative
|
||||
work. (Executables containing this object code plus portions of the
|
||||
Library will still fall under Section 6.)
|
||||
|
||||
Otherwise, if the work is a derivative of the Library, you may
|
||||
distribute the object code for the work under the terms of Section 6.
|
||||
Any executables containing that work also fall under Section 6,
|
||||
whether or not they are linked directly with the Library itself.
|
||||
|
||||
6. As an exception to the Sections above, you may also combine or
|
||||
link a "work that uses the Library" with the Library to produce a
|
||||
work containing portions of the Library, and distribute that work
|
||||
under terms of your choice, provided that the terms permit
|
||||
modification of the work for the customer's own use and reverse
|
||||
engineering for debugging such modifications.
|
||||
|
||||
You must give prominent notice with each copy of the work that the
|
||||
Library is used in it and that the Library and its use are covered by
|
||||
this License. You must supply a copy of this License. If the work
|
||||
during execution displays copyright notices, you must include the
|
||||
copyright notice for the Library among them, as well as a reference
|
||||
directing the user to the copy of this License. Also, you must do one
|
||||
of these things:
|
||||
|
||||
a) Accompany the work with the complete corresponding
|
||||
machine-readable source code for the Library including whatever
|
||||
changes were used in the work (which must be distributed under
|
||||
Sections 1 and 2 above); and, if the work is an executable linked
|
||||
with the Library, with the complete machine-readable "work that
|
||||
uses the Library", as object code and/or source code, so that the
|
||||
user can modify the Library and then relink to produce a modified
|
||||
executable containing the modified Library. (It is understood
|
||||
that the user who changes the contents of definitions files in the
|
||||
Library will not necessarily be able to recompile the application
|
||||
to use the modified definitions.)
|
||||
|
||||
b) Use a suitable shared library mechanism for linking with the
|
||||
Library. A suitable mechanism is one that (1) uses at run time a
|
||||
copy of the library already present on the user's computer system,
|
||||
rather than copying library functions into the executable, and (2)
|
||||
will operate properly with a modified version of the library, if
|
||||
the user installs one, as long as the modified version is
|
||||
interface-compatible with the version that the work was made with.
|
||||
|
||||
c) Accompany the work with a written offer, valid for at least
|
||||
three years, to give the same user the materials specified in
|
||||
Subsection 6a, above, for a charge no more than the cost of
|
||||
performing this distribution.
|
||||
|
||||
d) If distribution of the work is made by offering access to copy
|
||||
from a designated place, offer equivalent access to copy the above
|
||||
specified materials from the same place.
|
||||
|
||||
e) Verify that the user has already received a copy of these
|
||||
materials or that you have already sent this user a copy.
|
||||
|
||||
For an executable, the required form of the "work that uses the
|
||||
Library" must include any data and utility programs needed for
|
||||
reproducing the executable from it. However, as a special exception,
|
||||
the materials to be distributed need not include anything that is
|
||||
normally distributed (in either source or binary form) with the major
|
||||
components (compiler, kernel, and so on) of the operating system on
|
||||
which the executable runs, unless that component itself accompanies
|
||||
the executable.
|
||||
|
||||
It may happen that this requirement contradicts the license
|
||||
restrictions of other proprietary libraries that do not normally
|
||||
accompany the operating system. Such a contradiction means you cannot
|
||||
use both them and the Library together in an executable that you
|
||||
distribute.
|
||||
|
||||
7. You may place library facilities that are a work based on the
|
||||
Library side-by-side in a single library together with other library
|
||||
facilities not covered by this License, and distribute such a combined
|
||||
library, provided that the separate distribution of the work based on
|
||||
the Library and of the other library facilities is otherwise
|
||||
permitted, and provided that you do these two things:
|
||||
|
||||
a) Accompany the combined library with a copy of the same work
|
||||
based on the Library, uncombined with any other library
|
||||
facilities. This must be distributed under the terms of the
|
||||
Sections above.
|
||||
|
||||
b) Give prominent notice with the combined library of the fact
|
||||
that part of it is a work based on the Library, and explaining
|
||||
where to find the accompanying uncombined form of the same work.
|
||||
|
||||
8. You may not copy, modify, sublicense, link with, or distribute
|
||||
the Library except as expressly provided under this License. Any
|
||||
attempt otherwise to copy, modify, sublicense, link with, or
|
||||
distribute the Library is void, and will automatically terminate your
|
||||
rights under this License. However, parties who have received copies,
|
||||
or rights, from you under this License will not have their licenses
|
||||
terminated so long as such parties remain in full compliance.
|
||||
|
||||
9. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Library or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Library (or any work based on the
|
||||
Library), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Library or works based on it.
|
||||
|
||||
10. Each time you redistribute the Library (or any work based on the
|
||||
Library), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute, link with or modify the Library
|
||||
subject to these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties with
|
||||
this License.
|
||||
|
||||
11. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Library at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Library by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Library.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply, and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
12. If the distribution and/or use of the Library is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Library under this License
|
||||
may add an explicit geographical distribution limitation excluding those
|
||||
countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
13. The Free Software Foundation may publish revised and/or new
|
||||
versions of the Lesser General Public License from time to time.
|
||||
Such new versions will be similar in spirit to the present version,
|
||||
but may differ in detail to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Library
|
||||
specifies a version number of this License which applies to it and
|
||||
"any later version", you have the option of following the terms and
|
||||
conditions either of that version or of any later version published by
|
||||
the Free Software Foundation. If the Library does not specify a
|
||||
license version number, you may choose any version ever published by
|
||||
the Free Software Foundation.
|
||||
|
||||
14. If you wish to incorporate parts of the Library into other free
|
||||
programs whose distribution conditions are incompatible with these,
|
||||
write to the author to ask for permission. For software which is
|
||||
copyrighted by the Free Software Foundation, write to the Free
|
||||
Software Foundation; we sometimes make exceptions for this. Our
|
||||
decision will be guided by the two goals of preserving the free status
|
||||
of all derivatives of our free software and of promoting the sharing
|
||||
and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
|
||||
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
|
||||
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
|
||||
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
|
||||
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
|
||||
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
|
||||
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
|
||||
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
|
||||
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
|
||||
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
|
||||
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
|
||||
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
|
||||
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
|
||||
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
|
||||
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
||||
DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Libraries
|
||||
|
||||
If you develop a new library, and you want it to be of the greatest
|
||||
possible use to the public, we recommend making it free software that
|
||||
everyone can redistribute and change. You can do so by permitting
|
||||
redistribution under these terms (or, alternatively, under the terms
|
||||
of the ordinary General Public License).
|
||||
|
||||
To apply these terms, attach the following notices to the library.
|
||||
It is safest to attach them to the start of each source file to most
|
||||
effectively convey the exclusion of warranty; and each file should
|
||||
have at least the "copyright" line and a pointer to where the full
|
||||
notice is found.
|
||||
|
||||
|
||||
<one line to give the library's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
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
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or
|
||||
your school, if any, to sign a "copyright disclaimer" for the library,
|
||||
if necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the
|
||||
library `Frob' (a library for tweaking knobs) written by James
|
||||
Random Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1990
|
||||
Ty Coon, President of Vice
|
||||
|
||||
That's all there is to it!
|
||||
|
||||
|
|
@ -1,567 +0,0 @@
|
|||
MOZILLA PUBLIC LICENSE
|
||||
Version 1.1
|
||||
|
||||
---------------
|
||||
|
||||
1. Definitions.
|
||||
|
||||
1.0.1. "Commercial Use" means distribution or otherwise making the
|
||||
Covered Code available to a third party.
|
||||
|
||||
1.1. "Contributor" means each entity that creates or contributes to
|
||||
the creation of Modifications.
|
||||
|
||||
1.2. "Contributor Version" means the combination of the Original
|
||||
Code, prior Modifications used by a Contributor, and the Modifications
|
||||
made by that particular Contributor.
|
||||
|
||||
1.3. "Covered Code" means the Original Code or Modifications or the
|
||||
combination of the Original Code and Modifications, in each case
|
||||
including portions thereof.
|
||||
|
||||
1.4. "Electronic Distribution Mechanism" means a mechanism generally
|
||||
accepted in the software development community for the electronic
|
||||
transfer of data.
|
||||
|
||||
1.5. "Executable" means Covered Code in any form other than Source
|
||||
Code.
|
||||
|
||||
1.6. "Initial Developer" means the individual or entity identified
|
||||
as the Initial Developer in the Source Code notice required by Exhibit
|
||||
A.
|
||||
|
||||
1.7. "Larger Work" means a work which combines Covered Code or
|
||||
portions thereof with code not governed by the terms of this License.
|
||||
|
||||
1.8. "License" means this document.
|
||||
|
||||
1.8.1. "Licensable" means having the right to grant, to the maximum
|
||||
extent possible, whether at the time of the initial grant or
|
||||
subsequently acquired, any and all of the rights conveyed herein.
|
||||
|
||||
1.9. "Modifications" means any addition to or deletion from the
|
||||
substance or structure of either the Original Code or any previous
|
||||
Modifications. When Covered Code is released as a series of files, a
|
||||
Modification is:
|
||||
A. Any addition to or deletion from the contents of a file
|
||||
containing Original Code or previous Modifications.
|
||||
|
||||
B. Any new file that contains any part of the Original Code or
|
||||
previous Modifications.
|
||||
|
||||
1.10. "Original Code" means Source Code of computer software code
|
||||
which is described in the Source Code notice required by Exhibit A as
|
||||
Original Code, and which, at the time of its release under this
|
||||
License is not already Covered Code governed by this License.
|
||||
|
||||
1.10.1. "Patent Claims" means any patent claim(s), now owned or
|
||||
hereafter acquired, including without limitation, method, process,
|
||||
and apparatus claims, in any patent Licensable by grantor.
|
||||
|
||||
1.11. "Source Code" means the preferred form of the Covered Code for
|
||||
making modifications to it, including all modules it contains, plus
|
||||
any associated interface definition files, scripts used to control
|
||||
compilation and installation of an Executable, or source code
|
||||
differential comparisons against either the Original Code or another
|
||||
well known, available Covered Code of the Contributor's choice. The
|
||||
Source Code can be in a compressed or archival form, provided the
|
||||
appropriate decompression or de-archiving software is widely available
|
||||
for no charge.
|
||||
|
||||
1.12. "You" (or "Your") means an individual or a legal entity
|
||||
exercising rights under, and complying with all of the terms of, this
|
||||
License or a future version of this License issued under Section 6.1.
|
||||
For legal entities, "You" includes any entity which controls, is
|
||||
controlled by, or is under common control with You. For purposes of
|
||||
this definition, "control" means (a) the power, direct or indirect,
|
||||
to cause the direction or management of such entity, whether by
|
||||
contract or otherwise, or (b) ownership of more than fifty percent
|
||||
(50%) of the outstanding shares or beneficial ownership of such
|
||||
entity.
|
||||
|
||||
2. Source Code License.
|
||||
|
||||
2.1. The Initial Developer Grant.
|
||||
The Initial Developer hereby grants You a world-wide, royalty-free,
|
||||
non-exclusive license, subject to third party intellectual property
|
||||
claims:
|
||||
(a) under intellectual property rights (other than patent or
|
||||
trademark) Licensable by Initial Developer to use, reproduce,
|
||||
modify, display, perform, sublicense and distribute the Original
|
||||
Code (or portions thereof) with or without Modifications, and/or
|
||||
as part of a Larger Work; and
|
||||
|
||||
(b) under Patents Claims infringed by the making, using or
|
||||
selling of Original Code, to make, have made, use, practice,
|
||||
sell, and offer for sale, and/or otherwise dispose of the
|
||||
Original Code (or portions thereof).
|
||||
|
||||
(c) the licenses granted in this Section 2.1(a) and (b) are
|
||||
effective on the date Initial Developer first distributes
|
||||
Original Code under the terms of this License.
|
||||
|
||||
(d) Notwithstanding Section 2.1(b) above, no patent license is
|
||||
granted: 1) for code that You delete from the Original Code; 2)
|
||||
separate from the Original Code; or 3) for infringements caused
|
||||
by: i) the modification of the Original Code or ii) the
|
||||
combination of the Original Code with other software or devices.
|
||||
|
||||
2.2. Contributor Grant.
|
||||
Subject to third party intellectual property claims, each Contributor
|
||||
hereby grants You a world-wide, royalty-free, non-exclusive license
|
||||
|
||||
(a) under intellectual property rights (other than patent or
|
||||
trademark) Licensable by Contributor, to use, reproduce, modify,
|
||||
display, perform, sublicense and distribute the Modifications
|
||||
created by such Contributor (or portions thereof) either on an
|
||||
unmodified basis, with other Modifications, as Covered Code
|
||||
and/or as part of a Larger Work; and
|
||||
|
||||
(b) under Patent Claims infringed by the making, using, or
|
||||
selling of Modifications made by that Contributor either alone
|
||||
and/or in combination with its Contributor Version (or portions
|
||||
of such combination), to make, use, sell, offer for sale, have
|
||||
made, and/or otherwise dispose of: 1) Modifications made by that
|
||||
Contributor (or portions thereof); and 2) the combination of
|
||||
Modifications made by that Contributor with its Contributor
|
||||
Version (or portions of such combination).
|
||||
|
||||
(c) the licenses granted in Sections 2.2(a) and 2.2(b) are
|
||||
effective on the date Contributor first makes Commercial Use of
|
||||
the Covered Code.
|
||||
|
||||
(d) Notwithstanding Section 2.2(b) above, no patent license is
|
||||
granted: 1) for any code that Contributor has deleted from the
|
||||
Contributor Version; 2) separate from the Contributor Version;
|
||||
3) for infringements caused by: i) third party modifications of
|
||||
Contributor Version or ii) the combination of Modifications made
|
||||
by that Contributor with other software (except as part of the
|
||||
Contributor Version) or other devices; or 4) under Patent Claims
|
||||
infringed by Covered Code in the absence of Modifications made by
|
||||
that Contributor.
|
||||
|
||||
3. Distribution Obligations.
|
||||
|
||||
3.1. Application of License.
|
||||
The Modifications which You create or to which You contribute are
|
||||
governed by the terms of this License, including without limitation
|
||||
Section 2.2. The Source Code version of Covered Code may be
|
||||
distributed only under the terms of this License or a future version
|
||||
of this License released under Section 6.1, and You must include a
|
||||
copy of this License with every copy of the Source Code You
|
||||
distribute. You may not offer or impose any terms on any Source Code
|
||||
version that alters or restricts the applicable version of this
|
||||
License or the recipients' rights hereunder. However, You may include
|
||||
an additional document offering the additional rights described in
|
||||
Section 3.5.
|
||||
|
||||
3.2. Availability of Source Code.
|
||||
Any Modification which You create or to which You contribute must be
|
||||
made available in Source Code form under the terms of this License
|
||||
either on the same media as an Executable version or via an accepted
|
||||
Electronic Distribution Mechanism to anyone to whom you made an
|
||||
Executable version available; and if made available via Electronic
|
||||
Distribution Mechanism, must remain available for at least twelve (12)
|
||||
months after the date it initially became available, or at least six
|
||||
(6) months after a subsequent version of that particular Modification
|
||||
has been made available to such recipients. You are responsible for
|
||||
ensuring that the Source Code version remains available even if the
|
||||
Electronic Distribution Mechanism is maintained by a third party.
|
||||
|
||||
3.3. Description of Modifications.
|
||||
You must cause all Covered Code to which You contribute to contain a
|
||||
file documenting the changes You made to create that Covered Code and
|
||||
the date of any change. You must include a prominent statement that
|
||||
the Modification is derived, directly or indirectly, from Original
|
||||
Code provided by the Initial Developer and including the name of the
|
||||
Initial Developer in (a) the Source Code, and (b) in any notice in an
|
||||
Executable version or related documentation in which You describe the
|
||||
origin or ownership of the Covered Code.
|
||||
|
||||
3.4. Intellectual Property Matters
|
||||
(a) Third Party Claims.
|
||||
If Contributor has knowledge that a license under a third party's
|
||||
intellectual property rights is required to exercise the rights
|
||||
granted by such Contributor under Sections 2.1 or 2.2,
|
||||
Contributor must include a text file with the Source Code
|
||||
distribution titled "LEGAL" which describes the claim and the
|
||||
party making the claim in sufficient detail that a recipient will
|
||||
know whom to contact. If Contributor obtains such knowledge after
|
||||
the Modification is made available as described in Section 3.2,
|
||||
Contributor shall promptly modify the LEGAL file in all copies
|
||||
Contributor makes available thereafter and shall take other steps
|
||||
(such as notifying appropriate mailing lists or newsgroups)
|
||||
reasonably calculated to inform those who received the Covered
|
||||
Code that new knowledge has been obtained.
|
||||
|
||||
(b) Contributor APIs.
|
||||
If Contributor's Modifications include an application programming
|
||||
interface and Contributor has knowledge of patent licenses which
|
||||
are reasonably necessary to implement that API, Contributor must
|
||||
also include this information in the LEGAL file.
|
||||
|
||||
(c) Representations.
|
||||
Contributor represents that, except as disclosed pursuant to
|
||||
Section 3.4(a) above, Contributor believes that Contributor's
|
||||
Modifications are Contributor's original creation(s) and/or
|
||||
Contributor has sufficient rights to grant the rights conveyed by
|
||||
this License.
|
||||
|
||||
3.5. Required Notices.
|
||||
You must duplicate the notice in Exhibit A in each file of the Source
|
||||
Code. If it is not possible to put such notice in a particular Source
|
||||
Code file due to its structure, then You must include such notice in a
|
||||
location (such as a relevant directory) where a user would be likely
|
||||
to look for such a notice. If You created one or more Modification(s)
|
||||
You may add your name as a Contributor to the notice described in
|
||||
Exhibit A. You must also duplicate this License in any documentation
|
||||
for the Source Code where You describe recipients' rights or ownership
|
||||
rights relating to Covered Code. You may choose to offer, and to
|
||||
charge a fee for, warranty, support, indemnity or liability
|
||||
obligations to one or more recipients of Covered Code. However, You
|
||||
may do so only on Your own behalf, and not on behalf of the Initial
|
||||
Developer or any Contributor. You must make it absolutely clear than
|
||||
any such warranty, support, indemnity or liability obligation is
|
||||
offered by You alone, and You hereby agree to indemnify the Initial
|
||||
Developer and every Contributor for any liability incurred by the
|
||||
Initial Developer or such Contributor as a result of warranty,
|
||||
support, indemnity or liability terms You offer.
|
||||
|
||||
3.6. Distribution of Executable Versions.
|
||||
You may distribute Covered Code in Executable form only if the
|
||||
requirements of Section 3.1-3.5 have been met for that Covered Code,
|
||||
and if You include a notice stating that the Source Code version of
|
||||
the Covered Code is available under the terms of this License,
|
||||
including a description of how and where You have fulfilled the
|
||||
obligations of Section 3.2. The notice must be conspicuously included
|
||||
in any notice in an Executable version, related documentation or
|
||||
collateral in which You describe recipients' rights relating to the
|
||||
Covered Code. You may distribute the Executable version of Covered
|
||||
Code or ownership rights under a license of Your choice, which may
|
||||
contain terms different from this License, provided that You are in
|
||||
compliance with the terms of this License and that the license for the
|
||||
Executable version does not attempt to limit or alter the recipient's
|
||||
rights in the Source Code version from the rights set forth in this
|
||||
License. If You distribute the Executable version under a different
|
||||
license You must make it absolutely clear that any terms which differ
|
||||
from this License are offered by You alone, not by the Initial
|
||||
Developer or any Contributor. You hereby agree to indemnify the
|
||||
Initial Developer and every Contributor for any liability incurred by
|
||||
the Initial Developer or such Contributor as a result of any such
|
||||
terms You offer.
|
||||
|
||||
3.7. Larger Works.
|
||||
You may create a Larger Work by combining Covered Code with other code
|
||||
not governed by the terms of this License and distribute the Larger
|
||||
Work as a single product. In such a case, You must make sure the
|
||||
requirements of this License are fulfilled for the Covered Code.
|
||||
|
||||
4. Inability to Comply Due to Statute or Regulation.
|
||||
|
||||
If it is impossible for You to comply with any of the terms of this
|
||||
License with respect to some or all of the Covered Code due to
|
||||
statute, judicial order, or regulation then You must: (a) comply with
|
||||
the terms of this License to the maximum extent possible; and (b)
|
||||
describe the limitations and the code they affect. Such description
|
||||
must be included in the LEGAL file described in Section 3.4 and must
|
||||
be included with all distributions of the Source Code. Except to the
|
||||
extent prohibited by statute or regulation, such description must be
|
||||
sufficiently detailed for a recipient of ordinary skill to be able to
|
||||
understand it.
|
||||
|
||||
5. Application of this License.
|
||||
|
||||
This License applies to code to which the Initial Developer has
|
||||
attached the notice in Exhibit A and to related Covered Code.
|
||||
|
||||
6. Versions of the License.
|
||||
|
||||
6.1. New Versions.
|
||||
Netscape Communications Corporation ("Netscape") may publish revised
|
||||
and/or new versions of the License from time to time. Each version
|
||||
will be given a distinguishing version number.
|
||||
|
||||
6.2. Effect of New Versions.
|
||||
Once Covered Code has been published under a particular version of the
|
||||
License, You may always continue to use it under the terms of that
|
||||
version. You may also choose to use such Covered Code under the terms
|
||||
of any subsequent version of the License published by Netscape. No one
|
||||
other than Netscape has the right to modify the terms applicable to
|
||||
Covered Code created under this License.
|
||||
|
||||
6.3. Derivative Works.
|
||||
If You create or use a modified version of this License (which you may
|
||||
only do in order to apply it to code which is not already Covered Code
|
||||
governed by this License), You must (a) rename Your license so that
|
||||
the phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape",
|
||||
"MPL", "NPL" or any confusingly similar phrase do not appear in your
|
||||
license (except to note that your license differs from this License)
|
||||
and (b) otherwise make it clear that Your version of the license
|
||||
contains terms which differ from the Mozilla Public License and
|
||||
Netscape Public License. (Filling in the name of the Initial
|
||||
Developer, Original Code or Contributor in the notice described in
|
||||
Exhibit A shall not of themselves be deemed to be modifications of
|
||||
this License.)
|
||||
|
||||
7. DISCLAIMER OF WARRANTY.
|
||||
|
||||
COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
|
||||
WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF
|
||||
DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING.
|
||||
THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE
|
||||
IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT,
|
||||
YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE
|
||||
COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER
|
||||
OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF
|
||||
ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
|
||||
|
||||
8. TERMINATION.
|
||||
|
||||
8.1. This License and the rights granted hereunder will terminate
|
||||
automatically if You fail to comply with terms herein and fail to cure
|
||||
such breach within 30 days of becoming aware of the breach. All
|
||||
sublicenses to the Covered Code which are properly granted shall
|
||||
survive any termination of this License. Provisions which, by their
|
||||
nature, must remain in effect beyond the termination of this License
|
||||
shall survive.
|
||||
|
||||
8.2. If You initiate litigation by asserting a patent infringement
|
||||
claim (excluding declatory judgment actions) against Initial Developer
|
||||
or a Contributor (the Initial Developer or Contributor against whom
|
||||
You file such action is referred to as "Participant") alleging that:
|
||||
|
||||
(a) such Participant's Contributor Version directly or indirectly
|
||||
infringes any patent, then any and all rights granted by such
|
||||
Participant to You under Sections 2.1 and/or 2.2 of this License
|
||||
shall, upon 60 days notice from Participant terminate prospectively,
|
||||
unless if within 60 days after receipt of notice You either: (i)
|
||||
agree in writing to pay Participant a mutually agreeable reasonable
|
||||
royalty for Your past and future use of Modifications made by such
|
||||
Participant, or (ii) withdraw Your litigation claim with respect to
|
||||
the Contributor Version against such Participant. If within 60 days
|
||||
of notice, a reasonable royalty and payment arrangement are not
|
||||
mutually agreed upon in writing by the parties or the litigation claim
|
||||
is not withdrawn, the rights granted by Participant to You under
|
||||
Sections 2.1 and/or 2.2 automatically terminate at the expiration of
|
||||
the 60 day notice period specified above.
|
||||
|
||||
(b) any software, hardware, or device, other than such Participant's
|
||||
Contributor Version, directly or indirectly infringes any patent, then
|
||||
any rights granted to You by such Participant under Sections 2.1(b)
|
||||
and 2.2(b) are revoked effective as of the date You first made, used,
|
||||
sold, distributed, or had made, Modifications made by that
|
||||
Participant.
|
||||
|
||||
8.3. If You assert a patent infringement claim against Participant
|
||||
alleging that such Participant's Contributor Version directly or
|
||||
indirectly infringes any patent where such claim is resolved (such as
|
||||
by license or settlement) prior to the initiation of patent
|
||||
infringement litigation, then the reasonable value of the licenses
|
||||
granted by such Participant under Sections 2.1 or 2.2 shall be taken
|
||||
into account in determining the amount or value of any payment or
|
||||
license.
|
||||
|
||||
8.4. In the event of termination under Sections 8.1 or 8.2 above,
|
||||
all end user license agreements (excluding distributors and resellers)
|
||||
which have been validly granted by You or any distributor hereunder
|
||||
prior to termination shall survive termination.
|
||||
|
||||
9. LIMITATION OF LIABILITY.
|
||||
|
||||
UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
|
||||
(INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL
|
||||
DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE,
|
||||
OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR
|
||||
ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY
|
||||
CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL,
|
||||
WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
|
||||
COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN
|
||||
INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF
|
||||
LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY
|
||||
RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW
|
||||
PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE
|
||||
EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO
|
||||
THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
|
||||
|
||||
10. U.S. GOVERNMENT END USERS.
|
||||
|
||||
The Covered Code is a "commercial item," as that term is defined in
|
||||
48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer
|
||||
software" and "commercial computer software documentation," as such
|
||||
terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48
|
||||
C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995),
|
||||
all U.S. Government End Users acquire Covered Code with only those
|
||||
rights set forth herein.
|
||||
|
||||
11. MISCELLANEOUS.
|
||||
|
||||
This License represents the complete agreement concerning subject
|
||||
matter hereof. If any provision of this License is held to be
|
||||
unenforceable, such provision shall be reformed only to the extent
|
||||
necessary to make it enforceable. This License shall be governed by
|
||||
California law provisions (except to the extent applicable law, if
|
||||
any, provides otherwise), excluding its conflict-of-law provisions.
|
||||
With respect to disputes in which at least one party is a citizen of,
|
||||
or an entity chartered or registered to do business in the United
|
||||
States of America, any litigation relating to this License shall be
|
||||
subject to the jurisdiction of the Federal Courts of the Northern
|
||||
District of California, with venue lying in Santa Clara County,
|
||||
California, with the losing party responsible for costs, including
|
||||
without limitation, court costs and reasonable attorneys' fees and
|
||||
expenses. The application of the United Nations Convention on
|
||||
Contracts for the International Sale of Goods is expressly excluded.
|
||||
Any law or regulation which provides that the language of a contract
|
||||
shall be construed against the drafter shall not apply to this
|
||||
License.
|
||||
|
||||
12. RESPONSIBILITY FOR CLAIMS.
|
||||
|
||||
As between Initial Developer and the Contributors, each party is
|
||||
responsible for claims and damages arising, directly or indirectly,
|
||||
out of its utilization of rights under this License and You agree to
|
||||
work with Initial Developer and Contributors to distribute such
|
||||
responsibility on an equitable basis. Nothing herein is intended or
|
||||
shall be deemed to constitute any admission of liability.
|
||||
|
||||
13. MULTIPLE-LICENSED CODE.
|
||||
|
||||
Initial Developer may designate portions of the Covered Code as
|
||||
"Multiple-Licensed". "Multiple-Licensed" means that the Initial
|
||||
Developer permits you to utilize portions of the Covered Code under
|
||||
Your choice of the NPL or the alternative licenses, if any, specified
|
||||
by the Initial Developer in the file described in Exhibit A.
|
||||
|
||||
EXHIBIT A -Mozilla Public License.
|
||||
|
||||
``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.
|
||||
|
||||
The Original Code is ______________________________________.
|
||||
|
||||
The Initial Developer of the Original Code is ________________________.
|
||||
Portions created by ______________________ are Copyright (C) ______
|
||||
_______________________. All Rights Reserved.
|
||||
|
||||
Contributor(s): ______________________________________.
|
||||
|
||||
Alternatively, the contents of this file may be used under the terms
|
||||
of the _____ license (the "[___] License"), in which case the
|
||||
provisions of [______] License are applicable instead of those
|
||||
above. If you wish to allow use of your version of this file only
|
||||
under the terms of the [____] License and not to allow others to use
|
||||
your version of this file under the MPL, indicate your decision by
|
||||
deleting the provisions above and replace them with the notice and
|
||||
other provisions required by the [___] License. If you do not delete
|
||||
the provisions above, a recipient may use your version of this file
|
||||
under either the MPL or the [___] License."
|
||||
|
||||
[NOTE: The text of this Exhibit A may differ slightly from the text of
|
||||
the notices in the Source Code files of the Original Code. You should
|
||||
use the text of this Exhibit A rather than the text found in the
|
||||
Original Code Source Code for Your Modifications.]
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
AMENDMENTS
|
||||
|
||||
The Netscape Public License Version 1.1 ("NPL") consists of the
|
||||
Mozilla Public License Version 1.1 with the following Amendments,
|
||||
including Exhibit A-Netscape Public License. Files identified with
|
||||
"Exhibit A-Netscape Public License" are governed by the Netscape
|
||||
Public License Version 1.1.
|
||||
|
||||
Additional Terms applicable to the Netscape Public License.
|
||||
I. Effect.
|
||||
These additional terms described in this Netscape Public
|
||||
License -- Amendments shall apply to the Mozilla Communicator
|
||||
client code and to all Covered Code under this License.
|
||||
|
||||
II. "Netscape's Branded Code" means Covered Code that Netscape
|
||||
distributes and/or permits others to distribute under one or more
|
||||
trademark(s) which are controlled by Netscape but which are not
|
||||
licensed for use under this License.
|
||||
|
||||
III. Netscape and logo.
|
||||
This License does not grant any rights to use the trademarks
|
||||
"Netscape", the "Netscape N and horizon" logo or the "Netscape
|
||||
lighthouse" logo, "Netcenter", "Gecko", "Java" or "JavaScript",
|
||||
"Smart Browsing" even if such marks are included in the Original
|
||||
Code or Modifications.
|
||||
|
||||
IV. Inability to Comply Due to Contractual Obligation.
|
||||
Prior to licensing the Original Code under this License, Netscape
|
||||
has licensed third party code for use in Netscape's Branded Code.
|
||||
To the extent that Netscape is limited contractually from making
|
||||
such third party code available under this License, Netscape may
|
||||
choose to reintegrate such code into Covered Code without being
|
||||
required to distribute such code in Source Code form, even if
|
||||
such code would otherwise be considered "Modifications" under
|
||||
this License.
|
||||
|
||||
V. Use of Modifications and Covered Code by Initial Developer.
|
||||
V.1. In General.
|
||||
The obligations of Section 3 apply to Netscape, except to
|
||||
the extent specified in this Amendment, Section V.2 and V.3.
|
||||
|
||||
V.2. Other Products.
|
||||
Netscape may include Covered Code in products other than the
|
||||
Netscape's Branded Code which are released by Netscape
|
||||
during the two (2) years following the release date of the
|
||||
Original Code, without such additional products becoming
|
||||
subject to the terms of this License, and may license such
|
||||
additional products on different terms from those contained
|
||||
in this License.
|
||||
|
||||
V.3. Alternative Licensing.
|
||||
Netscape may license the Source Code of Netscape's Branded
|
||||
Code, including Modifications incorporated therein, without
|
||||
such Netscape Branded Code becoming subject to the terms of
|
||||
this License, and may license such Netscape Branded Code on
|
||||
different terms from those contained in this License.
|
||||
|
||||
VI. Litigation.
|
||||
Notwithstanding the limitations of Section 11 above, the
|
||||
provisions regarding litigation in Section 11(a), (b) and (c) of
|
||||
the License shall apply to all disputes relating to this License.
|
||||
|
||||
EXHIBIT A-Netscape Public License.
|
||||
|
||||
"The contents of this file are subject to the Netscape 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/NPL/
|
||||
|
||||
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.
|
||||
|
||||
The Original Code is Mozilla Communicator client code, released
|
||||
March 31, 1998.
|
||||
|
||||
The Initial Developer of the Original Code is Netscape
|
||||
Communications Corporation. Portions created by Netscape are
|
||||
Copyright (C) 1998-1999 Netscape Communications Corporation. All
|
||||
Rights Reserved.
|
||||
|
||||
Contributor(s): ______________________________________.
|
||||
|
||||
Alternatively, the contents of this file may be used under the
|
||||
terms of the _____ license (the "[___] License"), in which case
|
||||
the provisions of [______] License are applicable instead of
|
||||
those above. If you wish to allow use of your version of this
|
||||
file only under the terms of the [____] License and not to allow
|
||||
others to use your version of this file under the NPL, indicate
|
||||
your decision by deleting the provisions above and replace them
|
||||
with the notice and other provisions required by the [___]
|
||||
License. If you do not delete the provisions above, a recipient
|
||||
may use your version of this file under either the NPL or the
|
||||
[___] License."
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -1,19 +0,0 @@
|
|||
ispell-lt
|
||||
=========
|
||||
|
||||
You are looking at the dictionaries and affix files for spellchecking
|
||||
of Lithuanian texts.
|
||||
|
||||
The latest version of the affix tables and dictionaries can be found
|
||||
at https://launchpad.net/ispell-lt . The mailing list of the project
|
||||
is available at https://lists.akl.lt/mailman/listinfo/ispell-lt .
|
||||
Bazaar is used for version control and it is available at
|
||||
https://code.launchpad.net/~ispell-lt/ispell-lt/trunk .
|
||||
|
||||
The software is available under the provisions of a BSD-style license.
|
||||
The full text of the license is available in the COPYING file.
|
||||
|
||||
The project has been sponsored by the Information Society Development
|
||||
Committee of the Government of Republic of Lithuania.
|
||||
|
||||
Albertas Agejevas <alga@akl.lt>
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -1,458 +0,0 @@
|
|||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
Version 2.1, February 1999
|
||||
|
||||
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
|
||||
51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
[This is the first released version of the Lesser GPL. It also counts
|
||||
as the successor of the GNU Library Public License, version 2, hence
|
||||
the version number 2.1.]
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
Licenses are intended to guarantee your freedom to share and change
|
||||
free software--to make sure the software is free for all its users.
|
||||
|
||||
This license, the Lesser General Public License, applies to some
|
||||
specially designated software packages--typically libraries--of the
|
||||
Free Software Foundation and other authors who decide to use it. You
|
||||
can use it too, but we suggest you first think carefully about whether
|
||||
this license or the ordinary General Public License is the better
|
||||
strategy to use in any particular case, based on the explanations below.
|
||||
|
||||
When we speak of free software, we are referring to freedom of use,
|
||||
not price. Our General Public Licenses are designed to make sure that
|
||||
you have the freedom to distribute copies of free software (and charge
|
||||
for this service if you wish); that you receive source code or can get
|
||||
it if you want it; that you can change the software and use pieces of
|
||||
it in new free programs; and that you are informed that you can do
|
||||
these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
distributors to deny you these rights or to ask you to surrender these
|
||||
rights. These restrictions translate to certain responsibilities for
|
||||
you if you distribute copies of the library or if you modify it.
|
||||
|
||||
For example, if you distribute copies of the library, whether gratis
|
||||
or for a fee, you must give the recipients all the rights that we gave
|
||||
you. You must make sure that they, too, receive or can get the source
|
||||
code. If you link other code with the library, you must provide
|
||||
complete object files to the recipients, so that they can relink them
|
||||
with the library after making changes to the library and recompiling
|
||||
it. And you must show them these terms so they know their rights.
|
||||
|
||||
We protect your rights with a two-step method: (1) we copyright the
|
||||
library, and (2) we offer you this license, which gives you legal
|
||||
permission to copy, distribute and/or modify the library.
|
||||
|
||||
To protect each distributor, we want to make it very clear that
|
||||
there is no warranty for the free library. Also, if the library is
|
||||
modified by someone else and passed on, the recipients should know
|
||||
that what they have is not the original version, so that the original
|
||||
author's reputation will not be affected by problems that might be
|
||||
introduced by others.
|
||||
|
||||
Finally, software patents pose a constant threat to the existence of
|
||||
any free program. We wish to make sure that a company cannot
|
||||
effectively restrict the users of a free program by obtaining a
|
||||
restrictive license from a patent holder. Therefore, we insist that
|
||||
any patent license obtained for a version of the library must be
|
||||
consistent with the full freedom of use specified in this license.
|
||||
|
||||
Most GNU software, including some libraries, is covered by the
|
||||
ordinary GNU General Public License. This license, the GNU Lesser
|
||||
General Public License, applies to certain designated libraries, and
|
||||
is quite different from the ordinary General Public License. We use
|
||||
this license for certain libraries in order to permit linking those
|
||||
libraries into non-free programs.
|
||||
|
||||
When a program is linked with a library, whether statically or using
|
||||
a shared library, the combination of the two is legally speaking a
|
||||
combined work, a derivative of the original library. The ordinary
|
||||
General Public License therefore permits such linking only if the
|
||||
entire combination fits its criteria of freedom. The Lesser General
|
||||
Public License permits more lax criteria for linking other code with
|
||||
the library.
|
||||
|
||||
We call this license the "Lesser" General Public License because it
|
||||
does Less to protect the user's freedom than the ordinary General
|
||||
Public License. It also provides other free software developers Less
|
||||
of an advantage over competing non-free programs. These disadvantages
|
||||
are the reason we use the ordinary General Public License for many
|
||||
libraries. However, the Lesser license provides advantages in certain
|
||||
special circumstances.
|
||||
|
||||
For example, on rare occasions, there may be a special need to
|
||||
encourage the widest possible use of a certain library, so that it becomes
|
||||
a de-facto standard. To achieve this, non-free programs must be
|
||||
allowed to use the library. A more frequent case is that a free
|
||||
library does the same job as widely used non-free libraries. In this
|
||||
case, there is little to gain by limiting the free library to free
|
||||
software only, so we use the Lesser General Public License.
|
||||
|
||||
In other cases, permission to use a particular library in non-free
|
||||
programs enables a greater number of people to use a large body of
|
||||
free software. For example, permission to use the GNU C Library in
|
||||
non-free programs enables many more people to use the whole GNU
|
||||
operating system, as well as its variant, the GNU/Linux operating
|
||||
system.
|
||||
|
||||
Although the Lesser General Public License is Less protective of the
|
||||
users' freedom, it does ensure that the user of a program that is
|
||||
linked with the Library has the freedom and the wherewithal to run
|
||||
that program using a modified version of the Library.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow. Pay close attention to the difference between a
|
||||
"work based on the library" and a "work that uses the library". The
|
||||
former contains code derived from the library, whereas the latter must
|
||||
be combined with the library in order to run.
|
||||
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License Agreement applies to any software library or other
|
||||
program which contains a notice placed by the copyright holder or
|
||||
other authorized party saying it may be distributed under the terms of
|
||||
this Lesser General Public License (also called "this License").
|
||||
Each licensee is addressed as "you".
|
||||
|
||||
A "library" means a collection of software functions and/or data
|
||||
prepared so as to be conveniently linked with application programs
|
||||
(which use some of those functions and data) to form executables.
|
||||
|
||||
The "Library", below, refers to any such software library or work
|
||||
which has been distributed under these terms. A "work based on the
|
||||
Library" means either the Library or any derivative work under
|
||||
copyright law: that is to say, a work containing the Library or a
|
||||
portion of it, either verbatim or with modifications and/or translated
|
||||
straightforwardly into another language. (Hereinafter, translation is
|
||||
included without limitation in the term "modification".)
|
||||
|
||||
"Source code" for a work means the preferred form of the work for
|
||||
making modifications to it. For a library, complete source code means
|
||||
all the source code for all modules it contains, plus any associated
|
||||
interface definition files, plus the scripts used to control compilation
|
||||
and installation of the library.
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running a program using the Library is not restricted, and output from
|
||||
such a program is covered only if its contents constitute a work based
|
||||
on the Library (independent of the use of the Library in a tool for
|
||||
writing it). Whether that is true depends on what the Library does
|
||||
and what the program that uses the Library does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Library's
|
||||
complete source code as you receive it, in any medium, provided that
|
||||
you conspicuously and appropriately publish on each copy an
|
||||
appropriate copyright notice and disclaimer of warranty; keep intact
|
||||
all the notices that refer to this License and to the absence of any
|
||||
warranty; and distribute a copy of this License along with the
|
||||
Library.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy,
|
||||
and you may at your option offer warranty protection in exchange for a
|
||||
fee.
|
||||
|
||||
2. You may modify your copy or copies of the Library or any portion
|
||||
of it, thus forming a work based on the Library, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) The modified work must itself be a software library.
|
||||
|
||||
b) You must cause the files modified to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
c) You must cause the whole of the work to be licensed at no
|
||||
charge to all third parties under the terms of this License.
|
||||
|
||||
d) If a facility in the modified Library refers to a function or a
|
||||
table of data to be supplied by an application program that uses
|
||||
the facility, other than as an argument passed when the facility
|
||||
is invoked, then you must make a good faith effort to ensure that,
|
||||
in the event an application does not supply such function or
|
||||
table, the facility still operates, and performs whatever part of
|
||||
its purpose remains meaningful.
|
||||
|
||||
(For example, a function in a library to compute square roots has
|
||||
a purpose that is entirely well-defined independent of the
|
||||
application. Therefore, Subsection 2d requires that any
|
||||
application-supplied function or table used by this function must
|
||||
be optional: if the application does not supply it, the square
|
||||
root function must still compute square roots.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Library,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Library, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote
|
||||
it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Library.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Library
|
||||
with the Library (or with a work based on the Library) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may opt to apply the terms of the ordinary GNU General Public
|
||||
License instead of this License to a given copy of the Library. To do
|
||||
this, you must alter all the notices that refer to this License, so
|
||||
that they refer to the ordinary GNU General Public License, version 2,
|
||||
instead of to this License. (If a newer version than version 2 of the
|
||||
ordinary GNU General Public License has appeared, then you can specify
|
||||
that version instead if you wish.) Do not make any other change in
|
||||
these notices.
|
||||
|
||||
Once this change is made in a given copy, it is irreversible for
|
||||
that copy, so the ordinary GNU General Public License applies to all
|
||||
subsequent copies and derivative works made from that copy.
|
||||
|
||||
This option is useful when you wish to copy part of the code of
|
||||
the Library into a program that is not a library.
|
||||
|
||||
4. You may copy and distribute the Library (or a portion or
|
||||
derivative of it, under Section 2) in object code or executable form
|
||||
under the terms of Sections 1 and 2 above provided that you accompany
|
||||
it with the complete corresponding machine-readable source code, which
|
||||
must be distributed under the terms of Sections 1 and 2 above on a
|
||||
medium customarily used for software interchange.
|
||||
|
||||
If distribution of object code is made by offering access to copy
|
||||
from a designated place, then offering equivalent access to copy the
|
||||
source code from the same place satisfies the requirement to
|
||||
distribute the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
5. A program that contains no derivative of any portion of the
|
||||
Library, but is designed to work with the Library by being compiled or
|
||||
linked with it, is called a "work that uses the Library". Such a
|
||||
work, in isolation, is not a derivative work of the Library, and
|
||||
therefore falls outside the scope of this License.
|
||||
|
||||
However, linking a "work that uses the Library" with the Library
|
||||
creates an executable that is a derivative of the Library (because it
|
||||
contains portions of the Library), rather than a "work that uses the
|
||||
library". The executable is therefore covered by this License.
|
||||
Section 6 states terms for distribution of such executables.
|
||||
|
||||
When a "work that uses the Library" uses material from a header file
|
||||
that is part of the Library, the object code for the work may be a
|
||||
derivative work of the Library even though the source code is not.
|
||||
Whether this is true is especially significant if the work can be
|
||||
linked without the Library, or if the work is itself a library. The
|
||||
threshold for this to be true is not precisely defined by law.
|
||||
|
||||
If such an object file uses only numerical parameters, data
|
||||
structure layouts and accessors, and small macros and small inline
|
||||
functions (ten lines or less in length), then the use of the object
|
||||
file is unrestricted, regardless of whether it is legally a derivative
|
||||
work. (Executables containing this object code plus portions of the
|
||||
Library will still fall under Section 6.)
|
||||
|
||||
Otherwise, if the work is a derivative of the Library, you may
|
||||
distribute the object code for the work under the terms of Section 6.
|
||||
Any executables containing that work also fall under Section 6,
|
||||
whether or not they are linked directly with the Library itself.
|
||||
|
||||
6. As an exception to the Sections above, you may also combine or
|
||||
link a "work that uses the Library" with the Library to produce a
|
||||
work containing portions of the Library, and distribute that work
|
||||
under terms of your choice, provided that the terms permit
|
||||
modification of the work for the customer's own use and reverse
|
||||
engineering for debugging such modifications.
|
||||
|
||||
You must give prominent notice with each copy of the work that the
|
||||
Library is used in it and that the Library and its use are covered by
|
||||
this License. You must supply a copy of this License. If the work
|
||||
during execution displays copyright notices, you must include the
|
||||
copyright notice for the Library among them, as well as a reference
|
||||
directing the user to the copy of this License. Also, you must do one
|
||||
of these things:
|
||||
|
||||
a) Accompany the work with the complete corresponding
|
||||
machine-readable source code for the Library including whatever
|
||||
changes were used in the work (which must be distributed under
|
||||
Sections 1 and 2 above); and, if the work is an executable linked
|
||||
with the Library, with the complete machine-readable "work that
|
||||
uses the Library", as object code and/or source code, so that the
|
||||
user can modify the Library and then relink to produce a modified
|
||||
executable containing the modified Library. (It is understood
|
||||
that the user who changes the contents of definitions files in the
|
||||
Library will not necessarily be able to recompile the application
|
||||
to use the modified definitions.)
|
||||
|
||||
b) Use a suitable shared library mechanism for linking with the
|
||||
Library. A suitable mechanism is one that (1) uses at run time a
|
||||
copy of the library already present on the user's computer system,
|
||||
rather than copying library functions into the executable, and (2)
|
||||
will operate properly with a modified version of the library, if
|
||||
the user installs one, as long as the modified version is
|
||||
interface-compatible with the version that the work was made with.
|
||||
|
||||
c) Accompany the work with a written offer, valid for at
|
||||
least three years, to give the same user the materials
|
||||
specified in Subsection 6a, above, for a charge no more
|
||||
than the cost of performing this distribution.
|
||||
|
||||
d) If distribution of the work is made by offering access to copy
|
||||
from a designated place, offer equivalent access to copy the above
|
||||
specified materials from the same place.
|
||||
|
||||
e) Verify that the user has already received a copy of these
|
||||
materials or that you have already sent this user a copy.
|
||||
|
||||
For an executable, the required form of the "work that uses the
|
||||
Library" must include any data and utility programs needed for
|
||||
reproducing the executable from it. However, as a special exception,
|
||||
the materials to be distributed need not include anything that is
|
||||
normally distributed (in either source or binary form) with the major
|
||||
components (compiler, kernel, and so on) of the operating system on
|
||||
which the executable runs, unless that component itself accompanies
|
||||
the executable.
|
||||
|
||||
It may happen that this requirement contradicts the license
|
||||
restrictions of other proprietary libraries that do not normally
|
||||
accompany the operating system. Such a contradiction means you cannot
|
||||
use both them and the Library together in an executable that you
|
||||
distribute.
|
||||
|
||||
7. You may place library facilities that are a work based on the
|
||||
Library side-by-side in a single library together with other library
|
||||
facilities not covered by this License, and distribute such a combined
|
||||
library, provided that the separate distribution of the work based on
|
||||
the Library and of the other library facilities is otherwise
|
||||
permitted, and provided that you do these two things:
|
||||
|
||||
a) Accompany the combined library with a copy of the same work
|
||||
based on the Library, uncombined with any other library
|
||||
facilities. This must be distributed under the terms of the
|
||||
Sections above.
|
||||
|
||||
b) Give prominent notice with the combined library of the fact
|
||||
that part of it is a work based on the Library, and explaining
|
||||
where to find the accompanying uncombined form of the same work.
|
||||
|
||||
8. You may not copy, modify, sublicense, link with, or distribute
|
||||
the Library except as expressly provided under this License. Any
|
||||
attempt otherwise to copy, modify, sublicense, link with, or
|
||||
distribute the Library is void, and will automatically terminate your
|
||||
rights under this License. However, parties who have received copies,
|
||||
or rights, from you under this License will not have their licenses
|
||||
terminated so long as such parties remain in full compliance.
|
||||
|
||||
9. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Library or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Library (or any work based on the
|
||||
Library), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Library or works based on it.
|
||||
|
||||
10. Each time you redistribute the Library (or any work based on the
|
||||
Library), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute, link with or modify the Library
|
||||
subject to these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties with
|
||||
this License.
|
||||
|
||||
11. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Library at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Library by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Library.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under any
|
||||
particular circumstance, the balance of the section is intended to apply,
|
||||
and the section as a whole is intended to apply in other circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
12. If the distribution and/or use of the Library is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Library under this License may add
|
||||
an explicit geographical distribution limitation excluding those countries,
|
||||
so that distribution is permitted only in or among countries not thus
|
||||
excluded. In such case, this License incorporates the limitation as if
|
||||
written in the body of this License.
|
||||
|
||||
13. The Free Software Foundation may publish revised and/or new
|
||||
versions of the Lesser General Public License from time to time.
|
||||
Such new versions will be similar in spirit to the present version,
|
||||
but may differ in detail to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Library
|
||||
specifies a version number of this License which applies to it and
|
||||
"any later version", you have the option of following the terms and
|
||||
conditions either of that version or of any later version published by
|
||||
the Free Software Foundation. If the Library does not specify a
|
||||
license version number, you may choose any version ever published by
|
||||
the Free Software Foundation.
|
||||
|
||||
14. If you wish to incorporate parts of the Library into other free
|
||||
programs whose distribution conditions are incompatible with these,
|
||||
write to the author to ask for permission. For software which is
|
||||
copyrighted by the Free Software Foundation, write to the Free
|
||||
Software Foundation; we sometimes make exceptions for this. Our
|
||||
decision will be guided by the two goals of preserving the free status
|
||||
of all derivatives of our free software and of promoting the sharing
|
||||
and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
|
||||
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
|
||||
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
|
||||
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
|
||||
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
|
||||
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
|
||||
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
|
||||
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
|
||||
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
|
||||
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
|
||||
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
|
||||
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
|
||||
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
|
||||
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
|
||||
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
||||
DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
|
@ -1,627 +0,0 @@
|
|||
SET UTF-8
|
||||
|
||||
# This is generated from
|
||||
# make words.nb; perl -ne 'print join "\n", split //' words.nb | \
|
||||
# sort | uniq -c | sort -rn | awk '{print $2}' | tr -d "\n"
|
||||
TRY ensrtialkogdmpuvfbjhøyåæcézSwBHAMKTFxGLNRVEODôèCPJIqUWØÅYüZçäQêöòXëÄ
|
||||
|
||||
COMPOUNDFLAG z
|
||||
|
||||
COMPOUNDMIN 4
|
||||
|
||||
|
||||
PFX a Y 1
|
||||
PFX a 0 u .
|
||||
|
||||
PFX b Y 1
|
||||
PFX b 0 for .
|
||||
|
||||
PFX c Y 1
|
||||
PFX c 0 gjen .
|
||||
|
||||
PFX d Y 1
|
||||
PFX d 0 hoved .
|
||||
|
||||
PFX e Y 1
|
||||
PFX e 0 mis .
|
||||
|
||||
PFX f Y 1
|
||||
PFX f 0 sam .
|
||||
|
||||
PFX g Y 4
|
||||
PFX g 0 in [^blmpr]
|
||||
PFX g 0 il l
|
||||
PFX g 0 im [bmp]
|
||||
PFX g 0 ir r
|
||||
|
||||
PFX h Y 1
|
||||
PFX h 0 etter .
|
||||
|
||||
PFX i Y 1
|
||||
PFX i 0 til .
|
||||
|
||||
PFX j Y 1
|
||||
PFX j 0 over .
|
||||
|
||||
PFX k Y 1
|
||||
PFX k 0 under .
|
||||
|
||||
PFX l Y 1
|
||||
PFX l 0 på .
|
||||
|
||||
PFX m Y 1
|
||||
PFX m 0 av .
|
||||
|
||||
PFX n Y 1
|
||||
PFX n 0 inn .
|
||||
|
||||
PFX o Y 1
|
||||
PFX o 0 ut .
|
||||
|
||||
PFX p Y 1
|
||||
PFX p 0 opp .
|
||||
|
||||
PFX q Y 1
|
||||
PFX q 0 ned .
|
||||
|
||||
PFX r Y 1
|
||||
PFX r 0 om .
|
||||
|
||||
PFX s Y 1
|
||||
PFX s 0 sammen .
|
||||
|
||||
SFX t Y 8
|
||||
SFX t e ing e
|
||||
SFX t e ingen e
|
||||
SFX t e ingens e
|
||||
SFX t e inga e
|
||||
SFX t 0 ing [aiouyøå]
|
||||
SFX t 0 ingen [aiouyøå]
|
||||
SFX t 0 ingens [aiouyøå]
|
||||
SFX t 0 inga [aiouyøå]
|
||||
|
||||
SFX u N 6
|
||||
SFX u 0 lig [^lm]
|
||||
SFX u 0 lige [^lm]
|
||||
SFX u 0 ig l
|
||||
SFX u 0 ige l
|
||||
SFX u 0 melig m
|
||||
SFX u 0 melige m
|
||||
|
||||
SFX v Y 6
|
||||
SFX v 0 lse e
|
||||
SFX v 0 lsen e
|
||||
SFX v 0 lsens e
|
||||
SFX v 0 else [ioå]
|
||||
SFX v 0 elsen [ioå]
|
||||
SFX v 0 elsens [ioå]
|
||||
|
||||
SFX w Y 3
|
||||
SFX w 0 het .
|
||||
SFX w 0 heten .
|
||||
SFX w 0 hetens .
|
||||
|
||||
SFX x Y 2
|
||||
SFX x 0 skap [^e]
|
||||
SFX x e skap e
|
||||
|
||||
SFX y Y 12
|
||||
SFX y 0 itet [aeiouyø][dlmnrsv]
|
||||
SFX y 0 iteten [aeiouyø][dlmnrsv]
|
||||
SFX y 0 itetens [aeiouyø][dlmnrsv]
|
||||
SFX y ell alitet ell
|
||||
SFX y ell aliteten ell
|
||||
SFX y ell alitetens ell
|
||||
SFX y ær aritet ær
|
||||
SFX y ær ariteten ær
|
||||
SFX y ær aritetens ær
|
||||
SFX y e ning e
|
||||
SFX y e ningen e
|
||||
SFX y e ningens e
|
||||
|
||||
SFX A Y 24
|
||||
SFX A 0 n e
|
||||
SFX A 0 ns e
|
||||
SFX A é een é
|
||||
SFX A é eens é
|
||||
SFX A 0 en [^eém]
|
||||
SFX A 0 ens [^eém]
|
||||
SFX A 0 men [aø]m
|
||||
SFX A 0 mens [aø]m
|
||||
SFX A 0 men [^k][lr]em
|
||||
SFX A 0 mens [^k][lr]em
|
||||
SFX A 0 en krem
|
||||
SFX A 0 ens krem
|
||||
SFX A 0 en [^lr]em
|
||||
SFX A 0 ens [^lr]em
|
||||
SFX A 0 en [^aeouø]m
|
||||
SFX A 0 ens [^aeouø]m
|
||||
SFX A 0 men [bdglv]om
|
||||
SFX A 0 mens [bdglv]om
|
||||
SFX A 0 en [^bdglv]om
|
||||
SFX A 0 ens [^bdglv]om
|
||||
SFX A 0 men [skl]um
|
||||
SFX A 0 mens [skl]um
|
||||
SFX A 0 en [^skl]um
|
||||
SFX A 0 ens [^skl]um
|
||||
|
||||
SFX B Y 36
|
||||
SFX B 0 t e
|
||||
SFX B 0 ts e
|
||||
SFX B é eet é
|
||||
SFX B é eets é
|
||||
SFX B er ret [^drt][dt]er
|
||||
SFX B er rets [^drt][dt]er
|
||||
SFX B el let [fgkpsv]el
|
||||
SFX B el lets [fgkpsv]el
|
||||
SFX B del let ddel
|
||||
SFX B del lets ddel
|
||||
SFX B tel let ttel
|
||||
SFX B tel lets ttel
|
||||
SFX B 0 et [^eém]
|
||||
SFX B 0 ets [^eém]
|
||||
SFX B 0 et [^aeou]m
|
||||
SFX B 0 ets [^aeou]m
|
||||
SFX B 0 met [^e]am
|
||||
SFX B 0 mets [^e]am
|
||||
SFX B 0 et eam
|
||||
SFX B 0 ets eam
|
||||
SFX B 0 met [jv]em
|
||||
SFX B 0 mets [jv]em
|
||||
SFX B 0 et [^jlv]em
|
||||
SFX B 0 ets [^jlv]em
|
||||
SFX B 0 met dlem
|
||||
SFX B 0 mets dlem
|
||||
SFX B 0 et [^d]lem
|
||||
SFX B 0 ets [^d]lem
|
||||
SFX B 0 met [rk]om
|
||||
SFX B 0 mets [rk]om
|
||||
SFX B 0 et [^rk]om
|
||||
SFX B 0 ets [^rk]om
|
||||
SFX B 0 et [^ei]um
|
||||
SFX B 0 ets [^ei]um
|
||||
SFX B um et [ei]um
|
||||
SFX B um ets [ei]um
|
||||
|
||||
SFX C Y 33
|
||||
SFX C e a e
|
||||
SFX C é ea é
|
||||
SFX C 0 a [^eélmrt]
|
||||
SFX C 0 a [^e]t
|
||||
SFX C et a et
|
||||
SFX C 0 a [^e][lr]
|
||||
SFX C el la [^dfkmnpstj]el
|
||||
SFX C 0 a jel
|
||||
SFX C del la ddel
|
||||
SFX C 0 a [^d]del
|
||||
SFX C fel la ffel
|
||||
SFX C kel la kkel
|
||||
SFX C el la [^k]kel
|
||||
SFX C mel la mmel
|
||||
SFX C 0 a [^m]mel
|
||||
SFX C 0 a nel
|
||||
SFX C pel la ppel
|
||||
SFX C el la [^p]pel
|
||||
SFX C sel la ssel
|
||||
SFX C el la [^s]sel
|
||||
SFX C tel la ttel
|
||||
SFX C el la [^t]tel
|
||||
SFX C er ra [^fm]er
|
||||
SFX C fer ra fer
|
||||
SFX C mer ra mer
|
||||
SFX C 0 a [^aeou]m
|
||||
SFX C 0 ma am
|
||||
SFX C 0 ma jem
|
||||
SFX C 0 a [^j]em
|
||||
SFX C 0 ma [rv]om
|
||||
SFX C 0 a [^rv]om
|
||||
SFX C 0 a [^eir]um
|
||||
SFX C um a [eir]um
|
||||
|
||||
SFX D Y 30
|
||||
SFX D e as e
|
||||
SFX D é eas é
|
||||
SFX D 0 as [^eélmr]
|
||||
SFX D 0 as [^e][lr]
|
||||
SFX D el las [^dfkmnpstj]el
|
||||
SFX D 0 as jel
|
||||
SFX D del las ddel
|
||||
SFX D 0 as [^d]del
|
||||
SFX D fel las ffel
|
||||
SFX D kel las kkel
|
||||
SFX D el las [^k]kel
|
||||
SFX D mel las mmel
|
||||
SFX D 0 as [^m]mel
|
||||
SFX D 0 as nel
|
||||
SFX D pel las ppel
|
||||
SFX D el las [^p]pel
|
||||
SFX D sel las ssel
|
||||
SFX D el las [^s]sel
|
||||
SFX D tel las ttel
|
||||
SFX D el las [^t]tel
|
||||
SFX D er ras [^fm]er
|
||||
SFX D fer ras fer
|
||||
SFX D mer ras mer
|
||||
SFX D 0 as [^eou]m
|
||||
SFX D 0 mas jem
|
||||
SFX D 0 as [^j]em
|
||||
SFX D 0 mas [rv]om
|
||||
SFX D 0 as [^rv]om
|
||||
SFX D 0 as [^ei]um
|
||||
SFX D um as [ei]um
|
||||
|
||||
SFX E Y 36
|
||||
SFX E 0 r e
|
||||
SFX E é eer é
|
||||
SFX E 0 er [^eélmr]
|
||||
SFX E 0 er [^e][lr]
|
||||
SFX E el ler [^dfkmnpstj]el
|
||||
SFX E 0 er jel
|
||||
SFX E del ler ddel
|
||||
SFX E 0 er [^d]del
|
||||
SFX E fel ler ffel
|
||||
SFX E kel ler kkel
|
||||
SFX E el ler [^k]kel
|
||||
SFX E mel ler mmel
|
||||
SFX E 0 er [^m]mel
|
||||
SFX E 0 er nel
|
||||
SFX E pel ler ppel
|
||||
SFX E el ler [^p]pel
|
||||
SFX E sel ler ssel
|
||||
SFX E el ler [^s]sel
|
||||
SFX E tel ler ttel
|
||||
SFX E el ler [^t]tel
|
||||
SFX E er re [^fmk]er
|
||||
SFX E fer re fer
|
||||
SFX E mer re mer
|
||||
SFX E ker re ker
|
||||
SFX E 0 er [^aeouø]m
|
||||
SFX E 0 mer dlem
|
||||
SFX E 0 er blem
|
||||
SFX E 0 er [^lr]em
|
||||
SFX E 0 mer [^kbd][lr]em
|
||||
SFX E 0 er krem
|
||||
SFX E 0 mer [aø]m
|
||||
SFX E 0 mer [bdgl]om
|
||||
SFX E 0 er [^bdgl]om
|
||||
SFX E 0 er [^eiks]um
|
||||
SFX E 0 mer [ks]um
|
||||
SFX E um er [ei]um
|
||||
|
||||
SFX F Y 36
|
||||
SFX F 0 rs e
|
||||
SFX F é eers é
|
||||
SFX F 0 ers [^eélmr]
|
||||
SFX F 0 ers [^e][lr]
|
||||
SFX F el lers [^dfkmnpstj]el
|
||||
SFX F 0 ers jel
|
||||
SFX F del lers ddel
|
||||
SFX F 0 ers [^d]del
|
||||
SFX F fel lers ffel
|
||||
SFX F kel lers kkel
|
||||
SFX F el lers [^k]kel
|
||||
SFX F mel lers mmel
|
||||
SFX F 0 ers [^m]mel
|
||||
SFX F 0 ers nel
|
||||
SFX F pel lers ppel
|
||||
SFX F el lers [^p]pel
|
||||
SFX F sel lers ssel
|
||||
SFX F el lers [^s]sel
|
||||
SFX F tel lers ttel
|
||||
SFX F el lers [^t]tel
|
||||
SFX F er res [^fmk]er
|
||||
SFX F fer res fer
|
||||
SFX F mer res mer
|
||||
SFX F ker res ker
|
||||
SFX F 0 ers [^aeouø]m
|
||||
SFX F 0 mers dlem
|
||||
SFX F 0 ers blem
|
||||
SFX F 0 ers [^lr]em
|
||||
SFX F 0 mers [^kbd][lr]em
|
||||
SFX F 0 ers krem
|
||||
SFX F 0 mers [aø]m
|
||||
SFX F 0 mers [bdgl]om
|
||||
SFX F 0 ers [^bdgl]om
|
||||
SFX F 0 ers [^eiks]um
|
||||
SFX F 0 mers [ks]um
|
||||
SFX F um ers [ei]um
|
||||
|
||||
SFX G Y 36
|
||||
SFX G 0 ne e
|
||||
SFX G é eene é
|
||||
SFX G 0 ene [^eélmr]
|
||||
SFX G 0 ene [^e][lr]
|
||||
SFX G el lene [^dfkmnpstj]el
|
||||
SFX G 0 ene jel
|
||||
SFX G del lene ddel
|
||||
SFX G 0 ene [^d]del
|
||||
SFX G fel lene ffel
|
||||
SFX G kel lene kkel
|
||||
SFX G el lene [^k]kel
|
||||
SFX G mel lene mmel
|
||||
SFX G 0 ene [^m]mel
|
||||
SFX G 0 ene nel
|
||||
SFX G pel lene ppel
|
||||
SFX G el lene [^p]pel
|
||||
SFX G sel lene ssel
|
||||
SFX G el lene [^s]sel
|
||||
SFX G tel lene ttel
|
||||
SFX G el lene [^t]tel
|
||||
SFX G er rene [^fm]er
|
||||
SFX G fer rene fer
|
||||
SFX G mer rene mer
|
||||
SFX G 0 ene [^aeouø]m
|
||||
SFX G 0 mene [aø]m
|
||||
SFX G 0 mene jem
|
||||
SFX G 0 mene dlem
|
||||
SFX G 0 ene blem
|
||||
SFX G 0 mene [^kbd][lr]em
|
||||
SFX G 0 ene krem
|
||||
SFX G 0 ene [^jlr]em
|
||||
SFX G 0 mene [bdglr]om
|
||||
SFX G 0 ene [^bdglr]om
|
||||
SFX G 0 ene [^eiks]um
|
||||
SFX G 0 mene [ks]um
|
||||
SFX G um ene [ei]um
|
||||
|
||||
SFX H Y 36
|
||||
SFX H 0 nes e
|
||||
SFX H é eenes é
|
||||
SFX H 0 enes [^eélmr]
|
||||
SFX H 0 enes [^e][lr]
|
||||
SFX H el lenes [^dfkmnpstj]el
|
||||
SFX H 0 enes jel
|
||||
SFX H del lenes ddel
|
||||
SFX H 0 enes [^d]del
|
||||
SFX H fel lenes ffel
|
||||
SFX H kel lenes kkel
|
||||
SFX H el lenes [^k]kel
|
||||
SFX H mel lenes mmel
|
||||
SFX H 0 enes [^m]mel
|
||||
SFX H 0 enes nel
|
||||
SFX H pel lenes ppel
|
||||
SFX H el lenes [^p]pel
|
||||
SFX H sel lenes ssel
|
||||
SFX H el lenes [^s]sel
|
||||
SFX H tel lenes ttel
|
||||
SFX H el lenes [^t]tel
|
||||
SFX H er renes [^fm]er
|
||||
SFX H fer renes fer
|
||||
SFX H mer renes mer
|
||||
SFX H 0 enes [^aeouø]m
|
||||
SFX H 0 menes [aø]m
|
||||
SFX H 0 menes jem
|
||||
SFX H 0 menes dlem
|
||||
SFX H 0 enes blem
|
||||
SFX H 0 menes [^kbd][lr]em
|
||||
SFX H 0 enes krem
|
||||
SFX H 0 enes [^jlr]em
|
||||
SFX H 0 menes [bdglr]om
|
||||
SFX H 0 enes [^bdglr]om
|
||||
SFX H 0 enes [^eiks]um
|
||||
SFX H 0 menes [ks]um
|
||||
SFX H um enes [ei]um
|
||||
|
||||
SFX I Y 16
|
||||
SFX I 0 e er
|
||||
SFX I 0 es er
|
||||
SFX I 0 ne er
|
||||
SFX I 0 nes er
|
||||
SFX I 0 ne [æø]r
|
||||
SFX I 0 nes [æø]r
|
||||
SFX I en nene en
|
||||
SFX I en nenes en
|
||||
SFX I e ne ye
|
||||
SFX I e nene ye
|
||||
SFX I ive ev ive
|
||||
SFX I ive evet ive
|
||||
SFX I ike ek ike
|
||||
SFX I ike eket ike
|
||||
SFX I 0 et um
|
||||
SFX I 0 ets um
|
||||
|
||||
SFX J Y 1
|
||||
SFX J 0 s [^s]
|
||||
|
||||
SFX K Y 5
|
||||
SFX K 0 es [^er]
|
||||
SFX K e ær e
|
||||
SFX K e ærne e
|
||||
SFX K er sk er
|
||||
SFX K er ske er
|
||||
|
||||
SFX L Y 7
|
||||
SFX L 0 r [aiouyøå]
|
||||
SFX L 0 er er
|
||||
SFX L 0 ers er
|
||||
SFX L 0 ene er
|
||||
SFX L 0 enes er
|
||||
SFX L 0 et e
|
||||
SFX L 0 ets e
|
||||
|
||||
SFX M Y 30
|
||||
SFX M 0 t e
|
||||
SFX M 0 de e
|
||||
SFX M t de et
|
||||
SFX M ok øker ok
|
||||
SFX M ok økene ok
|
||||
SFX M ok økenes ok
|
||||
SFX M or ødre or
|
||||
SFX M or ødrene or
|
||||
SFX M or ødrenes or
|
||||
SFX M ar edre ar
|
||||
SFX M ar edrene ar
|
||||
SFX M ar edrenes ar
|
||||
SFX M aft efter aft
|
||||
SFX M aft eftene aft
|
||||
SFX M aft eftenes aft
|
||||
SFX M ot øter [bn]ot
|
||||
SFX M ot øtene [bn]ot
|
||||
SFX M ot øtter [fr]ot
|
||||
SFX M ot øttene [fr]ot
|
||||
SFX M ann enn ann
|
||||
SFX M ann enns ann
|
||||
SFX M ann ennene ann
|
||||
SFX M ann ennenes ann
|
||||
SFX M ang enger ang
|
||||
SFX M ang engene ang
|
||||
SFX M ang engenes ang
|
||||
SFX M er ene er
|
||||
SFX M er enes er
|
||||
SFX M å od å
|
||||
SFX M a ok ta
|
||||
|
||||
SFX N Y 9
|
||||
SFX N 0 en e
|
||||
SFX N 0 ens e
|
||||
SFX N 0 er e
|
||||
SFX N 0 ene e
|
||||
SFX N er rer [^m]er
|
||||
SFX N er rers [^m]er
|
||||
SFX N mer rer mer
|
||||
SFX N mer rers mer
|
||||
SFX N å o å
|
||||
|
||||
SFX O Y 9
|
||||
SFX O e te [^t]e
|
||||
SFX O e t [^t]e
|
||||
SFX O 0 a atter
|
||||
SFX O atter øtre atter
|
||||
SFX O atter øtrer atter
|
||||
SFX O atter øtrene atter
|
||||
SFX O a og a
|
||||
SFX O 0 dd a
|
||||
SFX O 0 tt a
|
||||
|
||||
SFX P Y 2
|
||||
SFX P 0 dde [aeiouyøå]
|
||||
SFX P 0 dd [aeiouyøå]
|
||||
|
||||
SFX Q Y 2
|
||||
SFX Q e de e
|
||||
SFX Q e d e
|
||||
|
||||
SFX R Y 4
|
||||
SFX R e 0 [^m]e
|
||||
SFX R e 0 [^m]me
|
||||
SFX R me 0 mme
|
||||
SFX R ere ér ere
|
||||
|
||||
SFX S Y 2
|
||||
SFX S 0 nde e
|
||||
SFX S 0 ende [aiouyæøå]
|
||||
|
||||
SFX T Y 3
|
||||
SFX T 0 t e
|
||||
SFX T 0 te e
|
||||
SFX T 0 e et
|
||||
|
||||
SFX U Y 11
|
||||
SFX U t n et
|
||||
SFX U et ne [^m]et
|
||||
SFX U met ne met
|
||||
SFX U ele al ele
|
||||
SFX U ele ålet ele
|
||||
SFX U øre orde øre
|
||||
SFX U øre ort øre
|
||||
SFX U egge agt egge
|
||||
SFX U egge agte egge
|
||||
SFX U um a um
|
||||
SFX U gi av gi
|
||||
|
||||
SFX V Y 14
|
||||
SFX V 0 e [^lmneo]
|
||||
SFX V 0 e [^e][ln]
|
||||
SFX V el le [^m]el
|
||||
SFX V fen ne fen
|
||||
SFX V mel le mel
|
||||
SFX V en ne [^fkls]en
|
||||
SFX V sen ne ssen
|
||||
SFX V en ne [^s]sen
|
||||
SFX V ken ne kken
|
||||
SFX V en ne [^k]ken
|
||||
SFX V len ne llen
|
||||
SFX V en ne [^l]len
|
||||
SFX V 0 me [aeiouø]m
|
||||
SFX V 0 e [^aeiouø]m
|
||||
|
||||
SFX W Y 13
|
||||
SFX W 0 t [^fklntiaøå]
|
||||
SFX W 0 t [^f]f
|
||||
SFX W f t ff
|
||||
SFX W 0 t [^k]k
|
||||
SFX W k t kk
|
||||
SFX W 0 t [^l]l
|
||||
SFX W 0 t ull
|
||||
SFX W l t [^u]ll
|
||||
SFX W 0 t [^n]n
|
||||
SFX W n t nn
|
||||
SFX W 0 t ei
|
||||
SFX W 0 tt [^e]i
|
||||
SFX W 0 tt [aøå]
|
||||
|
||||
SFX X Y 22
|
||||
SFX X 0 ere [^e][^me]
|
||||
SFX X 0 ere [eo][^lrnem]
|
||||
SFX X el lere el
|
||||
SFX X er rere er
|
||||
SFX X en nere en
|
||||
SFX X 0 mere [aou]m
|
||||
SFX X 0 est [^e][^mge]
|
||||
SFX X 0 este [^e][^mge]
|
||||
SFX X 0 st [^e][oi][mge]
|
||||
SFX X 0 ste [^e][oi][mge]
|
||||
SFX X 0 est e[oi][mge]
|
||||
SFX X 0 este e[oi][mge]
|
||||
SFX X 0 est e[^lrne]
|
||||
SFX X 0 este e[^lrne]
|
||||
SFX X el lest el
|
||||
SFX X el leste el
|
||||
SFX X er rest er
|
||||
SFX X er reste er
|
||||
SFX X en nest en
|
||||
SFX X en neste en
|
||||
SFX X 0 mest [au]m
|
||||
SFX X 0 meste [au]m
|
||||
|
||||
SFX Y Y 4
|
||||
SFX Y e inger e
|
||||
SFX Y e ingene e
|
||||
SFX Y 0 inger [aiouyøå]
|
||||
SFX Y 0 ingene [aiouyøå]
|
||||
|
||||
SFX Z N 5
|
||||
SFX Z 0 elig [^e]
|
||||
SFX Z 0 elige [^e]
|
||||
SFX Z e bar e
|
||||
SFX Z e bart e
|
||||
SFX Z e bare e
|
||||
|
||||
# SFX \[ N 2
|
||||
# SFX \[ 0 messig .
|
||||
# SFX \[ 0 messige .
|
||||
|
||||
# SFX \] N 2
|
||||
# SFX \] 0 smessig .
|
||||
# SFX \] 0 smessige .
|
||||
|
||||
# SFX \^ N 2
|
||||
# SFX \^ 0 aktig .
|
||||
# SFX \^ 0 aktige .
|
||||
|
||||
# SFX ~\\ N 1
|
||||
# SFX ~\\ 0 s [^s]
|
||||
|
||||
# SFX ~\_ N 7
|
||||
# SFX ~\_ e ings e
|
||||
# SFX ~\_ 0 e [dgknprstuv]
|
||||
# SFX ~\_ um e um
|
||||
# SFX ~\_ 0 e [lr]m
|
||||
# SFX ~\_ el le gel
|
||||
# SFX ~\_ 0 e [^g]el
|
||||
# SFX ~\_ 0 e [^e]l
|
||||
|
||||
# SFX ~\` N 2
|
||||
# SFX ~\` e nings e
|
||||
# SFX ~\` zyzyzy 0 zyzyzy
|
||||
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue