|
MagickCore
6.7.5
|
00001 /* 00002 Copyright 1999-2012 ImageMagick Studio LLC, a non-profit organization 00003 dedicated to making software imaging solutions freely available. 00004 00005 You may not use this file except in compliance with the License. 00006 obtain a copy of the License at 00007 00008 http://www.imagemagick.org/script/license.php 00009 00010 Unless required by applicable law or agreed to in writing, software 00011 distributed under the License is distributed on an "AS IS" BASIS, 00012 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00013 See the License for the specific language governing permissions and 00014 limitations under the License. 00015 00016 MagickCore private string methods. 00017 */ 00018 #ifndef _MAGICKCORE_STRING_PRIVATE_H 00019 #define _MAGICKCORE_STRING_PRIVATE_H 00020 00021 #if defined(__cplusplus) || defined(c_plusplus) 00022 extern "C" { 00023 #endif 00024 00025 #include <MagickCore/locale_.h> 00026 00027 static inline double SiPrefixToDoubleInterval(const char *string, 00028 const double interval) 00029 { 00030 char 00031 *q; 00032 00033 double 00034 value; 00035 00036 value=InterpretSiPrefixValue(string,&q); 00037 if (*q == '%') 00038 value*=interval/100.0; 00039 return(value); 00040 } 00041 00042 static inline double StringToDouble(const char *restrict string, 00043 char **restrict sentinal) 00044 { 00045 return(InterpretLocaleValue(string,sentinal)); 00046 } 00047 00048 static inline double StringToDoubleInterval(const char *string, 00049 const double interval) 00050 { 00051 char 00052 *q; 00053 00054 double 00055 value; 00056 00057 value=InterpretLocaleValue(string,&q); 00058 if (*q == '%') 00059 value*=interval/100.0; 00060 return(value); 00061 } 00062 00063 static inline int StringToInteger(const char *restrict value) 00064 { 00065 return((int) strtol(value,(char **) NULL,10)); 00066 } 00067 00068 static inline long StringToLong(const char *restrict value) 00069 { 00070 return(strtol(value,(char **) NULL,10)); 00071 } 00072 00073 static inline unsigned long StringToUnsignedLong(const char *restrict value) 00074 { 00075 return(strtoul(value,(char **) NULL,10)); 00076 } 00077 00078 #if defined(__cplusplus) || defined(c_plusplus) 00079 } 00080 #endif 00081 00082 #endif