#include "strptime.bmx.release.win32.x64.h"
BBINT database_core_strptime_dbStrptime(BBSTRING bbt_date,BBSTRING bbt_format,BBINT* bbt_y,BBINT* bbt_m,BBINT* bbt_d,BBINT* bbt_hh,BBINT* bbt_mm,BBINT* bbt_ss){
	BBINT bbt_b=0;
	BBINT bbt_c=0;
	BBINT bbt_p=0;
	while(bbt_p<(bbt_format->length)){
		bbt_c=bbt_p;
		bbt_p+=1;
		if((bbt_format)->buf[((BBUINT)bbt_c)]!=37){
			if(isspace((bbt_format)->buf[((BBUINT)bbt_c)])!=0){
				while((bbt_b<(bbt_date->length)) && (isspace((bbt_date)->buf[((BBUINT)bbt_b)])!=0)){
					bbt_b+=1;
				}
			}else{
				if((bbt_format)->buf[((BBUINT)bbt_c)]!=(bbt_date)->buf[((BBUINT)bbt_b)]){
					return 0;
				}
				bbt_b+=1;
			}
			continue;
		}
		bbt_c=bbt_p;
		bbt_p+=1;
		if(bbt_c>=(bbt_format->length)){
			return 0;
		}
		BBINT bbt_=(bbt_format)->buf[((BBUINT)bbt_c)];
		if(bbt_==37){
			if((bbt_date)->buf[((BBUINT)bbt_b)]!=37){
				return 0;
			}
			continue;
		}else{
			if((bbt_==77) || (bbt_==83)){
				if((bbt_b<(bbt_date->length)) && !(isspace((bbt_date)->buf[((BBUINT)bbt_b)])!=0)){
					if(!(isdigit((bbt_date)->buf[((BBUINT)bbt_b)])!=0)){
						return 0;
					}
					BBINT bbt_i=0;
					while((bbt_b<(bbt_date->length)) && (isdigit((bbt_date)->buf[((BBUINT)bbt_b)])!=0)){
						bbt_i*=10;
						bbt_i+=((bbt_date)->buf[((BBUINT)bbt_b)]-48);
						bbt_b+=1;
					}
					if(bbt_i>59){
						return 0;
					}
					if((bbt_format)->buf[((BBUINT)bbt_c)]==77){
						*bbt_mm=bbt_i;
					}else{
						*bbt_ss=bbt_i;
					}
				}else{
					continue;
				}
			}else{
				if(bbt_==72){
					if(!(isdigit((bbt_date)->buf[((BBUINT)bbt_b)])!=0)){
						return 0;
					}
					BBINT bbt_i2=0;
					while((bbt_b<(bbt_date->length)) && (isdigit((bbt_date)->buf[((BBUINT)bbt_b)])!=0)){
						bbt_i2*=10;
						bbt_i2+=((bbt_date)->buf[((BBUINT)bbt_b)]-48);
						bbt_b+=1;
					}
					if(bbt_i2>23){
						return 0;
					}
					*bbt_hh=bbt_i2;
				}else{
					if(bbt_==100){
						if(!(isdigit((bbt_date)->buf[((BBUINT)bbt_b)])!=0)){
							return 0;
						}
						BBINT bbt_i3=0;
						while((bbt_b<(bbt_date->length)) && (isdigit((bbt_date)->buf[((BBUINT)bbt_b)])!=0)){
							bbt_i3*=10;
							bbt_i3+=((bbt_date)->buf[((BBUINT)bbt_b)]-48);
							bbt_b+=1;
						}
						if(bbt_i3>31){
							return 0;
						}
						*bbt_d=bbt_i3;
					}else{
						if(bbt_==109){
							if(!(isdigit((bbt_date)->buf[((BBUINT)bbt_b)])!=0)){
								return 0;
							}
							BBINT bbt_i4=0;
							while((bbt_b<(bbt_date->length)) && (isdigit((bbt_date)->buf[((BBUINT)bbt_b)])!=0)){
								bbt_i4*=10;
								bbt_i4+=((bbt_date)->buf[((BBUINT)bbt_b)]-48);
								bbt_b+=1;
							}
							if((bbt_i4<1) || (bbt_i4>12)){
								return 0;
							}
							*bbt_m=bbt_i4;
						}else{
							if(bbt_==89){
								if((bbt_b<(bbt_date->length)) && !(isspace((bbt_date)->buf[((BBUINT)bbt_b)])!=0)){
									if(!(isdigit((bbt_date)->buf[((BBUINT)bbt_b)])!=0)){
										return 0;
									}
									BBINT bbt_i5=0;
									while((bbt_b<(bbt_date->length)) && (isdigit((bbt_date)->buf[((BBUINT)bbt_b)])!=0)){
										bbt_i5*=10;
										bbt_i5+=((bbt_date)->buf[((BBUINT)bbt_b)]-48);
										bbt_b+=1;
									}
									*bbt_y=bbt_i5;
								}
							}
						}
					}
				}
			}
		}
		if((bbt_b<(bbt_date->length)) && (isspace((bbt_date)->buf[((BBUINT)bbt_b)])!=0)){
			while((bbt_p<(bbt_format->length)) && !(isspace((bbt_format)->buf[((BBUINT)bbt_p)])!=0)){
				bbt_p+=1;
			}
		}
	}
	return 1;
}
static int _bb_database_core_strptime_inited = 0;
int _bb_database_core_strptime(){
	if (!_bb_database_core_strptime_inited) {
		_bb_database_core_strptime_inited = 1;
		__bb_brl_blitz_blitz();
		return 0;
	}
	return 0;
}