gecko-dev/include/xplocale.h
1998-03-28 02:44:41 +00:00

156 lines
4.3 KiB
C

/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#include <string.h>
#include <time.h>
#include "xp_core.h"
#include "ntypes.h"
#ifndef __XPLOCALE__
#define __XPLOCALE__
XP_BEGIN_PROTOS
/**@name Locale Sensitive Operations */
/*@{*/
/**
* Collate strings according to global locale.
*
* Compares two strings in the global locale.
* Returns a number less than 0 if the second string is greater,
* 0 if they are the same, and greater than 0 if the first string is
* greater, according to the sorting rules appropriate for the current
* locale.
* This routine currently does not handle multiple charsets.
* The locale is controlled by the platform through a control panel or
* the LC_TIME environment variable.
*
* @param s1 Specifies string 1, in the global locale's charset
* @param s2 Specifies string 2, in the global locale's charset
* @return 0 if s1 is equal to s2,
* less than 0 if s2 is greater,
* greater than 0 if s1 is greater
*/
PUBLIC int XP_StrColl(
const char *s1,
const char *s2
);
/**
* Constants for XP_StrfTime.
*
* <UL>
* <LI>
* XP_TIME_FORMAT - format the date/time into time format.
* <LI>
* XP_TIME_WEEKDAY_TIME_FORMAT - format the date/time into "weekday name plus
* time" format.
* <LI>
* XP_DATE_TIME_FORMAT - format the date/time into "date plus time" format.
* <LI>
* XP_LONG_DATE_TIME_FORMAT - format the date/time into "long date plus time"
* format.
* </UL>
*/
enum XP_TIME_FORMAT_TYPE {
XP_TIME_FORMAT = 0,
XP_WEEKDAY_TIME_FORMAT = 1,
XP_DATE_TIME_FORMAT = 2,
XP_LONG_DATE_TIME_FORMAT = 3
};
/**
* Format date/time string.
*
* This routine takes a context as argument and figures out what charset the
* context is in. Then it formats the specified time into a string using
* the platform's date/time formatting support. The locale is controlled by
* the platform through a control panel or the LC_TIME environment variable.
*
* @param context Specifies the context to access charset information
* @param result Returns the formatted date/time string
* @param maxsize Specifies the size of the result buffer
* @param format Specifies the desired format
* @param timeptr Specifies the date/time
* @return the size of the formatted date/time string.
* @see INTL_ctime
*/
PUBLIC size_t XP_StrfTime(
MWContext *context,
char *result,
size_t maxsize,
int format,
const struct tm *timeptr
);
/**
* Locale sensitive version of ANSI C ctime().
*
* This routine converts the specified date/time into a string using the
* platform's date/time formatting support. The returned string is similar to
* that returned by the ctime function, except that the locale is respected.
* The locale is controlled by the platform through a control panel or the
* LC_TIME environment variable.
*
* @param context Specifies the context to access charset information
* @param date Specifies the date/time
* @return the formatted date/time string in ctime style.
* @see XP_StrfTime
*/
PUBLIC const char *INTL_ctime(
MWContext *context,
time_t *date
);
/**
* The Front End function that implements XP_StrColl.
*
* Don't call this API. Use XP_StrColl instead.
*
* @see XP_StrColl
*/
MODULE_PRIVATE extern int FE_StrColl(
const char *s1,
const char *s2
);
/**
* The Front End function that implements XP_StrfTime.
*
* Don't call this API. Use XP_StrfTime instead.
*
* @see XP_StrfTime
*/
MODULE_PRIVATE extern size_t FE_StrfTime(
MWContext *context,
char *result,
size_t maxsize,
int format,
const struct tm *timeptr
);
/*@}*/
XP_END_PROTOS
#endif