/[dtapublic]/projs/dtats/trunk/projs/2018/20180707_cgi_web_tools_aux_exe/auxfuncs.c
ViewVC logotype

Annotation of /projs/dtats/trunk/projs/2018/20180707_cgi_web_tools_aux_exe/auxfuncs.c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 175 - (hide annotations) (download)
Mon Jul 9 00:00:34 2018 UTC (6 years, 4 months ago) by dashley
File MIME type: text/plain
File size: 4593 byte(s)
Update license (GPL->MIT) and copyright information.  Remove CVS log, which SVN does not support.
1 dashley 172 //$Header$
2     //********************************************************************************
3 dashley 175 //Copyright (c) 2003, 2018 David T. Ashley.
4 dashley 172 //********************************************************************************
5 dashley 175 //This file is part of "arith_large_cgi", a program that is designed to be
6     //invoked by a PHP script as part of serving a web page that performs
7     //calculations involving large integers. (A secondary compiled program is
8     //used because a compiled program can perform certain calculation-intensive
9     //tasks far more efficiently than a PHP script.) This program is provided by
10     //David T. Ashley (dashley@gmail.com) under the MIT License (reproduced
11     //immediately below).
12     //********************************************************************************
13     //Permission is hereby granted, free of charge, to any person obtaining a copy
14     //of this software and associated documentation files (the "Software"), to deal
15     //in the Software without restriction, including without limitation the rights
16     //to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
17     //copies of the Software, and to permit persons to whom the Software is
18     //furnished to do so, subject to the following conditions:
19 dashley 172 //
20 dashley 175 //The above copyright notice and this permission notice shall be included in all
21     //copies or substantial portions of the Software.
22 dashley 172 //
23 dashley 175 //THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
24     //IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
25     //FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
26     //AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
27     //LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
28     //OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
29     //SOFTWARE.
30 dashley 172 //********************************************************************************
31     //
32     #define MODULE_AUXFUNCS
33    
34     #include <assert.h>
35     #include <ctype.h>
36     #include <stddef.h>
37     #include <stdio.h>
38     #include <string.h>
39     #include <time.h>
40    
41     #include "auxfuncs.h"
42    
43    
44     /******************************************************************/
45     /*** CHARACTER CLASSIFICATION FUNCTIONS ************************/
46     /******************************************************************/
47     int AUXFUNCS_is_digit(char c)
48     {
49     if ((c >= '0') && (c <= '9'))
50     return(1);
51     else
52     return(0);
53     }
54    
55     int AUXFUNCS_digit_to_val(char digit)
56     {
57     switch (digit)
58     {
59     case '0': return(0);
60     break;
61     case '1': return(1);
62     break;
63     case '2': return(2);
64     break;
65     case '3': return(3);
66     break;
67     case '4': return(4);
68     break;
69     case '5': return(5);
70     break;
71     case '6': return(6);
72     break;
73     case '7': return(7);
74     break;
75     case '8': return(8);
76     break;
77     case '9': return(9);
78     break;
79     default: return(-1);
80     break;
81     }
82     }
83    
84     /******************************************************************/
85     /*** INTEGER SIZE_T FUNCTIONS ************************/
86     /******************************************************************/
87     size_t AUXFUNCS_size_t_min(size_t a, size_t b)
88     {
89     if (a < b)
90     return(a);
91     else
92     return(b);
93     }
94    
95     size_t AUXFUNCS_size_t_max(size_t a, size_t b)
96     {
97     if (a > b)
98     return(a);
99     else
100     return(b);
101     }
102    
103    
104     /******************************************************************/
105     /*** CONTRACTING STRING FUNCTIONS *******************************/
106     /******************************************************************/
107     void AUXFUNCS_remove_non_digits(char *s)
108     {
109     char *src;
110     char *dst;
111    
112     src = s;
113     dst = s;
114    
115     while(*src)
116     {
117     if (AUXFUNCS_is_digit(*src))
118     {
119     *dst = *src;
120     dst++;
121     }
122     src++;
123     }
124    
125     *dst = 0;
126     }
127    
128     void AUXFUNCS_remove_leading_zeros(char *s)
129     {
130     char *src;
131     char *dst;
132    
133     src = s;
134     dst = s;
135    
136     while((*src) && (*src == '0'))
137     {
138     src++;
139     }
140    
141     while(*src)
142     {
143     *dst = *src;
144     src++;
145     dst++;
146     }
147    
148     *dst = 0;
149     }
150    
151    
152     /******************************************************************/
153     /*** VERSION CONTROL IDENTITY FUNCTIONS ************************/
154     /******************************************************************/
155     const char *AUXFUNCS_cvcinfo(void)
156     {
157     return("$Header$");
158     }
159    
160     const char *AUXFUNCS_hvcinfo(void)
161     {
162     return(AUXFUNCS_H_VERSION);
163     }
164    
165     //********************************************************************************
166     // End of AUXFUNCS.C.
167     //********************************************************************************

Properties

Name Value
svn:eol-style native
svn:keywords Header

dashley@gmail.com
ViewVC Help
Powered by ViewVC 1.1.25