00001 // --8<--8<--8<--8<-- 00002 // 00003 // Copyright (C) 2006 Smithsonian Astrophysical Observatory 00004 // 00005 // This file is part of suplibxx 00006 // 00007 // suplibxx is free software; you can redistribute it and/or 00008 // modify it under the terms of the GNU General Public License 00009 // as published by the Free Software Foundation; either version 2 00010 // of the License, or (at your option) any later version. 00011 // 00012 // suplibxx is distributed in the hope that it will be useful, 00013 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00015 // GNU General Public License for more details. 00016 // 00017 // You should have received a copy of the GNU General Public License 00018 // along with this program; if not, write to the 00019 // Free Software Foundation, Inc. 00020 // 51 Franklin Street, Fifth Floor 00021 // Boston, MA 02110-1301, USA 00022 // 00023 // -->8-->8-->8-->8-- 00024 00025 #include <limits.h> 00026 #include "str.h" 00027 00040 int suplib::str2i( const char* txt, int base ) throw( Exception ) { 00041 00042 try { 00043 00044 long lresult = str2l( txt, base ); 00045 00046 if ( lresult < INT_MIN || INT_MAX < lresult ) 00047 throw Exception( "suplib::str2i( " + string( txt ) + "int ) " 00048 "Integer out of range" ); 00049 00050 return (int) lresult; 00051 00052 } catch( Exception& E ) { 00053 00054 throw; 00055 00056 } 00057 00058 }