    /********************************************************/
    /*                                                      */
    /*                                                      */
    /*         Copyright (C), 1993  SEIKO EPSON Corp.       */
    /*         ALL RIGHTS RESERVED                          */
    /*                                                      */
    /*                                                      */
    /*  file name : limits.h                                */
    /*                                                      */
    /*  Revision history                                    */
    /*      93/12/17    first release       S.Akaiwa        */
    /*      11/11/22    modify for P/ECE    Naoyuki Sawa    */
    /*      13/07/26    modify for P/ECE    Naoyuki Sawa    */
    /*                                                      */
    /********************************************************/

/* * Tue Nov 22 01:13:37 JST 2011 Naoyuki Sawa
 * - /usr/PIECE/include にあるファイルよりも、このファイルが優先されるよう、clip.mkにて、インクルードパスを設定してあります。
 * - INT_MINとLONG_MINの定義を修正しました。(INT_MINとLONG_MINをこのように定義して警告を回避するのは、C言語の定石です。)
 * - これまではclipstd.hの中でlimits.hをインクルード後にINT_MINとLONG_MINを再定義して対応していましたが、今後はlimits.hを直接変更して対応することにしました。
 *   このように変更した理由は、フリーウェアのコンパイル時など、clipstd.hを経由せずにlimits.hを直接インクルードした場合にも、修正が適用されるようにしたいからです。
 * - この変更に伴い、clipstd.hでのINT_MINとLONG_MINの再定義は不要になったため、clipstd.hの当該箇所をコメントアウトしました。
 * * Fri Jul 26 02:12:16 JST 2013 Naoyuki Sawa
 * - UINT_MAX,LONG_MAX,ULONG_MAXの定義に、"U,L,UL"のサフィクスを追加しました。
 *   "U"のサフィクスが付いていないと、「warning: decimal constant is so large that it is unsigned」という警告が出るからです。
 *   "L"のサフィクスは必須では有りませんが、安全のために付けることにしました。
 */

#ifndef _LIMITS_H
#define _LIMITS_H

#define MB_LEN_MAX  1               /* multibyte characters max */

#define CHAR_BIT    8               /* number of bits in char */

#define CHAR_MIN    (-128)          /* min value a char */
#define CHAR_MAX    127             /* max value a char */

#define SCHAR_MIN   (-128)          /* min value a signed char */
#define SCHAR_MAX   127             /* max value a signed char */ 

#define UCHAR_MAX   255             /* max value a unsigned char */

#define SHRT_MIN    (-32768)        /* min value a signed short */
#define SHRT_MAX    32767           /* max value a signed short */

//{{2011/11/22:変更
//#define INT_MIN     (-2147483648)   /* min value a signed int */
//↓2011/11/22:変更
#define INT_MIN   (-2147483647-1)   /* min value a signed int */
//}}2011/11/22:変更
#define INT_MAX     2147483647      /* max value a signed int */

//{{2013/07/26:変更
//#define UINT_MAX    4294967295      /* max value a unsigned int */
//↓2013/07/26:変更
#define UINT_MAX    4294967295U     /* max value a unsigned int */
//}}2013/07/26:変更

#define USHRT_MAX   65535           /* max value a unsigned short */

//{{2011/11/22:変更
//#define LONG_MIN    (-2147483648)   /* min value a signed long */
//↓2011/11/22:変更
#define LONG_MIN  (-2147483647L-1)  /* min value a signed long */
//}}2011/11/22:変更
//{{2013/07/26:変更
//#define LONG_MAX    2147483647      /* max value a signed long */
//↓2013/07/26:変更
#define LONG_MAX    2147483647L     /* max value a signed long */
//}}2013/07/26:変更

//{{2013/07/26:変更
//#define ULONG_MAX   4294967295      /* max value a unsigned long */
//↓2013/07/26:変更
#define ULONG_MAX   4294967295UL    /* max value a unsigned long */
//}}2013/07/26:変更

#endif  _LIMITS_H

