ObjFW  Diff

Differences From Artifact [c708164613]:

To Artifact [2eebe7783d]:


21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57

#import "macros.h"

const char *
OFStrPTime(const char *buffer, const char *format, struct tm *tm, short *tz)
{
	enum {
		StateSearchConversionSpecifier,
		StateInConversionSpecifier
	} state = StateSearchConversionSpecifier;
	size_t j, bufferLen, formatLen;

	bufferLen = strlen(buffer);
	formatLen = strlen(format);

	j = 0;
	for (size_t i = 0; i < formatLen; i++) {
		if (j >= bufferLen)
			return NULL;

		switch (state) {
		case StateSearchConversionSpecifier:
			if (format[i] == '%')
				state = StateInConversionSpecifier;
			else if (format[i] != buffer[j++])
				return NULL;

			break;

		case StateInConversionSpecifier:;
			int k, maxLen, number = 0;

			switch (format[i]) {
			case 'd':
			case 'e':
			case 'H':
			case 'm':







|
|
|











|

|




<
|







21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48

49
50
51
52
53
54
55
56

#import "macros.h"

const char *
OFStrPTime(const char *buffer, const char *format, struct tm *tm, short *tz)
{
	enum {
		stateSearchConversionSpecifier,
		stateInConversionSpecifier
	} state = stateSearchConversionSpecifier;
	size_t j, bufferLen, formatLen;

	bufferLen = strlen(buffer);
	formatLen = strlen(format);

	j = 0;
	for (size_t i = 0; i < formatLen; i++) {
		if (j >= bufferLen)
			return NULL;

		switch (state) {
		case stateSearchConversionSpecifier:
			if (format[i] == '%')
				state = stateInConversionSpecifier;
			else if (format[i] != buffer[j++])
				return NULL;

			break;

		case stateInConversionSpecifier:;
			int k, maxLen, number = 0;

			switch (format[i]) {
			case 'd':
			case 'e':
			case 'H':
			case 'm':
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
				break;
			case 't':
				if (buffer[j++] != '\t')
					return NULL;
				break;
			}

			state = StateSearchConversionSpecifier;

			break;
		}
	}

	return buffer + j;
}







|







216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
				break;
			case 't':
				if (buffer[j++] != '\t')
					return NULL;
				break;
			}

			state = stateSearchConversionSpecifier;

			break;
		}
	}

	return buffer + j;
}