summaryrefslogtreecommitdiff
path: root/mysys/mf_getdate.c
diff options
context:
space:
mode:
authorunknown <bell@sanja.is.com.ua>2004-05-11 23:23:49 +0300
committerunknown <bell@sanja.is.com.ua>2004-05-11 23:23:49 +0300
commite66b74059812d5b7fc898fc370166c878fd635ed (patch)
tree4a14eff8f720b5252a8bce7d5b88155fd0dabffb /mysys/mf_getdate.c
parentd7938b9fef9e67145d6beeef65ae6e316fc01e07 (diff)
downloadmariadb-git-e66b74059812d5b7fc898fc370166c878fd635ed.tar.gz
file parser for new .frm
include/my_sys.h: names for get_date format flags include/mysqld_error.h: error of parser libmysqld/Makefile.am: parser file added mysys/mf_getdate.c: function comment for get_date() 2 new flags added names for get_date format flags sql/Makefile.am: parser file added sql/mysql_priv.h: parser file added sql/share/czech/errmsg.txt: file parser errors sql/share/danish/errmsg.txt: file parser errors sql/share/dutch/errmsg.txt: file parser errors sql/share/english/errmsg.txt: file parser errors sql/share/estonian/errmsg.txt: file parser errors sql/share/french/errmsg.txt: file parser errors sql/share/german/errmsg.txt: file parser errors sql/share/greek/errmsg.txt: file parser errors sql/share/hungarian/errmsg.txt: file parser errors sql/share/italian/errmsg.txt: file parser errors sql/share/japanese/errmsg.txt: file parser errors sql/share/korean/errmsg.txt: file parser errors sql/share/norwegian-ny/errmsg.txt: file parser errors sql/share/norwegian/errmsg.txt: file parser errors sql/share/polish/errmsg.txt: file parser errors sql/share/portuguese/errmsg.txt: file parser errors sql/share/romanian/errmsg.txt: file parser errors sql/share/russian/errmsg.txt: file parser errors sql/share/serbian/errmsg.txt: file parser errors sql/share/slovak/errmsg.txt: file parser errors sql/share/spanish/errmsg.txt: file parser errors sql/share/swedish/errmsg.txt: file parser errors sql/share/ukrainian/errmsg.txt: file parser errors BitKeeper/etc/ignore: Added libmysqld/parse_file.cc to the ignore list
Diffstat (limited to 'mysys/mf_getdate.c')
-rw-r--r--mysys/mf_getdate.c42
1 files changed, 30 insertions, 12 deletions
diff --git a/mysys/mf_getdate.c b/mysys/mf_getdate.c
index 189d43e782a..b12e68cc1f9 100644
--- a/mysys/mf_getdate.c
+++ b/mysys/mf_getdate.c
@@ -19,11 +19,20 @@
#include "mysys_priv.h"
#include <m_string.h>
- /*
- If flag & 1 Return date and time
- If flag & 2 Return short date format YYMMDD
- if flag & 4 Return time in HHMMDD format.
- */
+/*
+ get date as string
+
+ SYNOPSIS
+ get_date()
+ to - string where date will be written
+ flag - format of date:
+ If flag & GETDATE_TIME Return date and time
+ If flag & GETDATE_SHORT_DATE Return short date format YYMMDD
+ If flag & GETDATE_HHMMSSTIME Return time in HHMMDD format.
+ If flag & GETDATE_GMT Date/time in GMT
+ If flag & GETDATE_FIXEDLENGTH Return fixed length date/time
+ date - for conversion
+*/
void get_date(register my_string to, int flag, time_t date)
@@ -36,27 +45,36 @@ void get_date(register my_string to, int flag, time_t date)
skr=date ? (time_t) date : time((time_t*) 0);
#if defined(HAVE_LOCALTIME_R) && defined(_REENTRANT)
- localtime_r(&skr,&tm_tmp);
+ if (flag & GETDATE_GMT)
+ localtime_r(&skr,&tm_tmp);
+ else
+ gmtime_r(&skr,&tm_tmp);
start_time= &tm_tmp;
#else
- start_time=localtime(&skr);
+ if (flag & GETDATE_GMT)
+ start_time= localtime(&skr);
+ else
+ gmtime(&skr,&tm_tmp);
#endif
- if (flag & 2)
+ if (flag & GETDATE_SHORT_DATE)
sprintf(to,"%02d%02d%02d",
start_time->tm_year % 100,
start_time->tm_mon+1,
start_time->tm_mday);
else
- sprintf(to,"%d-%02d-%02d",
+ sprintf(to, ((flag & GETDATE_FIXEDLENGTH) ?
+ "%4d-%02d-%02d" : "%d-%02d-%02d"),
start_time->tm_year+1900,
start_time->tm_mon+1,
start_time->tm_mday);
- if (flag & 1)
- sprintf(strend(to)," %2d:%02d:%02d",
+ if (flag & GETDATE_DATE_TIME)
+ sprintf(strend(to),
+ ((flag & GETDATE_FIXEDLENGTH) ?
+ " %02d:%02d:%02d" : " %2d:%02d:%02d"),
start_time->tm_hour,
start_time->tm_min,
start_time->tm_sec);
- else if (flag & 4)
+ else if (flag & GETDATE_HHMMSSTIME)
sprintf(strend(to),"%02d%02d%02d",
start_time->tm_hour,
start_time->tm_min,