X-Git-Url: https://git.teslayout.com/public/public/public/?a=blobdiff_plain;f=source%2Fcore%2Ffunctions.cpp;h=567fb715a507a6e4e0b2c3a7547fc05490b68ba1;hb=30def5757c5b3411f77fff62a163241ecc616337;hp=1a6a2910d926cb62e20d41af54f97d42559c6689;hpb=ab67c412220051d6a96be8c65179ee29712bf006;p=anna.git diff --git a/source/core/functions.cpp b/source/core/functions.cpp index 1a6a291..567fb71 100644 --- a/source/core/functions.cpp +++ b/source/core/functions.cpp @@ -1,37 +1,9 @@ -// ANNA - Anna is Not Nothingness Anymore -// -// (c) Copyright 2005-2014 Eduardo Ramos Testillano & Francisco Ruiz Rayo -// -// http://redmine.teslayout.com/projects/anna-suite -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * 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. -// * Neither the name of the copyright holder nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Authors: eduardo.ramos.testillano@gmail.com -// cisco.tierra@gmail.com +// ANNA - Anna is Not Nothingness Anymore // +// // +// (c) Copyright 2005-2015 Eduardo Ramos Testillano & Francisco Ruiz Rayo // +// // +// See project site at http://redmine.teslayout.com/projects/anna-suite // +// See accompanying file LICENSE or copy at http://www.teslayout.com/projects/public/anna.LICENSE // #include @@ -65,9 +37,6 @@ using namespace std; #define PAGE_WIDTH_LENGTH 80 -ExclusiveHash functions::st_stringExclusiveHash; -ExclusiveHash functions::st_string2intExclusiveHash; - string functions::getVersion() throw() { static const int version = ANNA_VERSION; string result; @@ -119,21 +88,15 @@ throw() { return string(aux); } -string functions::asString(const unsigned long number) -throw() { - return asString((U64)number); -} - string functions::asString(const S64 number) throw() { char aux [24]; - sprintf(aux, "%lld", number); - /*#ifdef __anna64__ + //sprintf(aux, "%lld", number); + #ifdef __anna64__ sprintf (aux, "%ld", number); #else sprintf (aux, "%lld", number); #endif - */ return string(aux); } @@ -147,14 +110,12 @@ throw() { string functions::asString(const U64 number) throw() { char aux [16]; - sprintf(aux, "%llu", number); - /* + //sprintf(aux, "%llu", number); #ifdef __anna64__ sprintf (aux, "%lu", number); #else sprintf (aux, "%llu", number); #endif - */ return string(aux); } @@ -201,22 +162,15 @@ throw() { return string(aux); } -string functions::asHexString(const long number) -throw() { - return asHexString((S64)number); -} - string functions::asHexString(const S64 number) throw() { char aux [32]; - sprintf(aux, "0x%llx", number); - /* + //sprintf(aux, "0x%llx", number); #ifdef __anna64__ sprintf (aux, "0x%lx", number); #else sprintf (aux, "0x%llx", number); #endif - */ return string(aux); } @@ -277,7 +231,6 @@ throw(RuntimeException) { const char* src = hexString.data(); unsigned char hex; int aux; - int j = 0; for(int ii = 1, maxii = hexString.length(); ii < maxii; ii += 2) { if(isxdigit(aux = src [ii - 1]) == 0) @@ -348,14 +301,12 @@ throw(RuntimeException) { S64 functions::asInteger64(const char* str) throw() { S64 number = 0; - sscanf(str, "%lld", &number); - /* + //sscanf(str, "%lld", &number); #ifdef __anna64__ sscanf (str, "%ld", &number); #else sscanf (str, "%lld", &number); #endif - */ return number; } @@ -454,8 +405,8 @@ throw() { int r = -1; // r will be lg(v) unsigned int t, tt; // temporaries - if(tt = v >> 16) { - r = (t = tt >> 8) ? 24 + LogTable256[t] : 16 + LogTable256[tt]; + if((tt = v >> 16)) { + r = ((t = tt >> 8)) ? 24 + LogTable256[t] : 16 + LogTable256[tt]; } else { r = (t = v >> 8) ? 8 + LogTable256[t] : LogTable256[v]; } @@ -751,7 +702,6 @@ std::string functions::getHostnameIP() throw() { std::string result = ""; struct hostent *he; struct in_addr **addr_list; - struct in_addr ipv4addr; char hostname[128]; gethostname(hostname, sizeof hostname); @@ -1520,17 +1470,17 @@ void functions::codeIsupNumber(const isup_number_t & isupNumber, bool calledOrCa bool filler = isupNumber.OddEven; bool hasDigits = (isupNumber.Digits.size() > 0); byte = filler ? 0x80 : 0x00; - byte = byte |= isupNumber.NatureOfAddress; + byte |= isupNumber.NatureOfAddress; target += byte; if(calledOrCalling) { byte = isupNumber.InternalNetworkNumber << 7; - byte = byte |= (isupNumber.NumberingPlan << 4); + byte |= (isupNumber.NumberingPlan << 4); } else { byte = isupNumber.NumberIncomplete << 7; - byte = byte |= (isupNumber.NumberingPlan << 4); - byte = byte |= (isupNumber.AddressPresentationRestricted << 2); - byte = byte |= isupNumber.Screening; + byte |= (isupNumber.NumberingPlan << 4); + byte |= (isupNumber.AddressPresentationRestricted << 2); + byte |= isupNumber.Screening; } target += byte;