string-private.h

Go to the documentation of this file.
00001 /*
00002   Copyright 1999-2019 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.  You may
00006   obtain a copy of the License at
00007 
00008     https://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 #include "magick/locale_.h"
00022 
00023 #if defined(__cplusplus) || defined(c_plusplus)
00024 extern "C" {
00025 #endif
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 *magick_restrict string,
00043   char **magick_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 *magick_restrict value)
00064 {
00065   return((int) strtol(value,(char **) NULL,10));
00066 }
00067 
00068 static inline long StringToLong(const char *magick_restrict value)
00069 {
00070   return(strtol(value,(char **) NULL,10));
00071 }
00072 
00073 static inline unsigned long StringToUnsignedLong(
00074   const char *magick_restrict value)
00075 {
00076   return(strtoul(value,(char **) NULL,10));
00077 }
00078 
00079 #if defined(__cplusplus) || defined(c_plusplus)
00080 }
00081 #endif
00082 
00083 #endif

Generated on 31 Oct 2019 for MagickCore by  doxygen 1.6.1