16f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/********************************************************************
26f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * COPYRIGHT:
36f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Copyright (c) 1999-2003, International Business Machines Corporation and
46f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * others. All Rights Reserved.
56f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org ********************************************************************/
66f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
76f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include "unicode/unistr.h"
86f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include "unicode/msgfmt.h"
96f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include "unicode/calendar.h"
106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include <stdio.h>
116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include <stdlib.h>
126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include "util.h"
136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org// The message format pattern.  It takes a single argument, an integer,
156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org// and formats it as "no", "one", or a number, using a NumberFormat.
166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgstatic UnicodeString PATTERN(
176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    "Received {0,choice,0#no arguments|1#one argument|2#{0,number,integer} arguments}"
186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    " on {1,date,long}."
196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org);
206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgint main(int argc, char **argv) {
226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UErrorCode status = U_ZERO_ERROR;
246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UnicodeString str;
256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    FieldPosition pos;
266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    // Create a message format
286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    MessageFormat msg(PATTERN, status);
296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    check(status, "MessageFormat::ct");
306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    // Create the argument list
326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    Formattable msgArgs[2];
336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    msgArgs[0].setLong(argc-1);
346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    msgArgs[1].setDate(Calendar::getNow());
356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    // Format the arguments
376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    msg.format(msgArgs, 2, str, pos, status);
386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    check(status, "MessageFormat::format");
396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    printf("Message: ");
416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    uprintf(str);
426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    printf("\n");
436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    printf("Exiting successfully\n");
456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    return 0;
466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org}
47