MagickCore  6.7.5
string-private.h
Go to the documentation of this file.
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