Exemple #1
0
char *nls_maketime(int mode, int hour, int minute, int second, int fraction)
{	char buf[4 + 4 + sizeof(int) * 8 * 4 + 6];
	char *p, *q;
	int i, pm;

#ifdef FEATURE_NLS
	refreshNLS();
#define fmt nlsBuf->timefmt
#define sep nlsBuf->timeSep
#define dsep nlsBuf->decimalSep
#else
#define fmt 0
#define sep ":"
#define dsep "."
#endif

	/** Warning: condition always true -- if !NLS **/
	if(fmt == 0) {		/* 12hour display */

		if((pm = hour >= 12) != 0) {
			hour -= 12;
		}
		if(hour == 0)
			hour = 12;

		i = sprintf(p = buf, "%2u%s%02u", hour, sep, minute);
	} else {
		/** Warning: unreachable code -- if !defined(NLS) **/
		i = sprintf(p = buf, "%02u%s%02u", hour, sep, minute);
	}

	if(i == EOF) return 0;
	if(second >= 0) {
		i = sprintf(p += i, "%s%02u", sep, second);
		if(i == EOF) return 0;
		if(fraction) {
			i = sprintf(p += i, "%s%u", dsep, fraction);
			if(i == EOF) return 0;
		}
	}

	/** Warning: conditional always true -- if !NLS **/
	if(fmt == 0) {
		q = getString(pm? TEXT_STRING_PM: TEXT_STRING_AM);
		if(!q)		return 0;
		if(mode & NLS_MAKE_SHORT_AMPM) {
			*(p += i) = *ltrimsp(q);
			p[1] = 0;
		} else
			strcpy(p + i, q);
	}

	return strdup(buf);
}
Exemple #2
0
static int is_delim(int c)
{
  /*
   *  is character a delimeter when used on first word?
   */

#ifdef FEATURE_NLS
  refreshNLS();   /* refresh the NLS information */

#define uc unsigned char
  return c < (uc)nlsBuf->inclFirst || c > (uc)nlsBuf->inclLast
   || (c >= (uc)nlsBuf->exclFirst && c <= (uc)nlsBuf->exclLast)
   || _fmemchr(nlsBuf->illegalChars, c, nlsBuf->illegalLen);
#undef uc
#else
  return c <= ' ' || c == 0x7f || strchr(".\"/\\[]:|<>+=;,", c);
#endif
}
Exemple #3
0
void convert(unsigned long num, char * const des)
{
  char temp[sizeof(num) * 8];
  int c = 0;

  assert(des);

  if(num == 0) {
    des[0] = '0';
    des[1] = 0;
  } else {
    refreshNLS();
    assert(nlsBuf);
    temp[31] = 0;
   	do { 
      if (((c + 1) % 4) == 0)
        temp[30 - c++] = nlsBuf->thousendsSep[0];
      temp[30 - c++] = (char)(num % 10) + '0';
    } while((num /= 10) != 0);
    strcpy(des, &temp[31 - c]);
  }
}