Alias in function help

This commit is contained in:
llsth 2015-04-09 14:42:16 +02:00
parent 194830b64c
commit f30729980e
6 changed files with 90 additions and 3 deletions

View File

@ -143,6 +143,7 @@
<ClInclude Include="app\lib\numb.h" />
<ClInclude Include="app\lib\real.h" />
<ClInclude Include="app\localize\help.h" />
<ClInclude Include="app\localize\ialias.h" />
<ClInclude Include="app\localize\ident.h" />
<ClInclude Include="app\localize\lex.h" />
<ClInclude Include="app\localize\start.h" />
@ -268,4 +269,4 @@
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
</Project>

View File

@ -428,6 +428,9 @@
<ClInclude Include="app\localize\help.h">
<Filter>app\localize</Filter>
</ClInclude>
<ClInclude Include="app\localize\ialias.h">
<Filter>app\localize</Filter>
</ClInclude>
<ClInclude Include="app\localize\ident.h">
<Filter>app\localize</Filter>
</ClInclude>
@ -594,4 +597,4 @@
<Filter>lib\real</Filter>
</ClInclude>
</ItemGroup>
</Project>
</Project>

67
app/localize/ialias.h Normal file
View File

@ -0,0 +1,67 @@
/*
* Copyright (c) 2015 Carsten Larsen
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
#ifndef AMATH_TEXT_IDENT_ALIAS_H
#define AMATH_TEXT_IDENT_ALIAS_H
struct identalias {
const char *ident;
const char *alias;
};
static const identalias identaliases[] = {
{ "sqrt", "sqr" },
{ "cbrt", "cbr" },
{ "log2", "lb" },
{ "log", "lg" },
{ "log10", "lg" },
{ "arsin", "asin" },
{ "arcos", "acos" },
{ "artan", "atan" },
{ "arcot", "acot" },
{ "arsec", "asec" },
{ "arcsc", "acsc" },
{ "arcsin", "asin" },
{ "arccos", "acos" },
{ "arctan", "atan" },
{ "arccot", "acot" },
{ "arcsec", "asec" },
{ "arccsc", "acsc" },
{ "arsinh", "asinh" },
{ "arcosh", "acosh" },
{ "artanh", "atanh" },
{ "arcoth", "acoth" },
{ "arsech", "asech" },
{ "arcsch", "acsch" },
{ "arcsinh", "asinh" },
{ "arccosh", "acosh" },
{ "arctanh", "atanh" },
{ "arccoth", "acoth" },
{ "arcsech", "asech" },
{ "arccsch", "acsch" }
}
#endif

View File

@ -26,6 +26,7 @@
#include "clib.h"
#include "localize/tags.h"
#include "localize/ialias.h"
#include "system/language.h"
Language::Language()
@ -40,6 +41,18 @@ Language::~Language()
}
}
char* Language::FindAlias(const char* ident)
{
static const unsigned int count = sizeof(identaliases) / sizeof(identalias);
for (unsigned int i = 0; i < count; i++) {
if (StrIsEqual(identaliases[i].ident == ident)) {
return (char*)identaliases[i].alias;
}
}
return (char*)ident;
}
char* Language::UntagText(const char* text)
{
if (lastText != NOMEM) {

View File

@ -48,6 +48,7 @@ public:
virtual bool StrIsEqualLoc(const char *s1, const char *s2) = 0;
protected:
char* FindAlias(const char *ident);
char* UntagText(const char *text);
char* lastText;
};

View File

@ -86,10 +86,12 @@ char* AmigaLanguage::GetText(int id)
char* AmigaLanguage::GetHelpText(char* ident)
{
char *s = FindAlias(ident);
identhelpdef *def = NOMEM;
static const unsigned int count = sizeof(identtexts) / sizeof(identhelpdef);
for (unsigned int i = 0; i < count; i++) {
if (StrIsEqual(identtexts[i].ident, ident)) {
if (StrIsEqual(identtexts[i].ident, s)) {
def = (identhelpdef*)&identtexts[i];
break;
}