Ascii.c
上传用户:lqx1163
上传日期:2014-08-13
资源大小:9183k
文件大小:11k
源码类别:

MTK

开发平台:

C/C++

  1. /*****************************************************************************
  2. *  Copyright Statement:
  3. *  --------------------
  4. *  This software is protected by Copyright and the information contained
  5. *  herein is confidential. The software may not be copied and the information
  6. *  contained herein may not be used or disclosed except with the written
  7. *  permission of MediaTek Inc. (C) 2005
  8. *
  9. *  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
  10. *  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
  11. *  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
  12. *  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
  13. *  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
  14. *  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
  15. *  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
  16. *  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
  17. *  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
  18. *  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
  19. *  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
  20. *  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
  21. *
  22. *  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
  23. *  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
  24. *  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
  25. *  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
  26. *  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. 
  27. *
  28. *  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
  29. *  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
  30. *  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
  31. *  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
  32. *  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
  33. *
  34. *****************************************************************************/
  35. /*******************************************************************************
  36.  * Filename:
  37.  * ---------
  38.  *  Ascii.c
  39.  *
  40.  * Project:
  41.  * --------
  42.  *  MAUI
  43.  *
  44.  * Description:
  45.  * ------------
  46.  *  
  47.  *
  48.  * Author:
  49.  * -------
  50.  *  
  51.  *
  52.  *==============================================================================
  53.  *             HISTORY
  54.  * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!! 
  55.  *------------------------------------------------------------------------------
  56.  * removed!
  57.  *
  58.  *------------------------------------------------------------------------------
  59.  * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!! 
  60.  *==============================================================================
  61.  *******************************************************************************/
  62. /**
  63.  * Copyright Notice
  64.  * ?2002 - 2003, Pixtel Communications, Inc., 1489 43rd Ave. W.,
  65.  * Vancouver, B.C. V6M 4K8 Canada. All Rights Reserved.
  66.  *  (It is illegal to remove this copyright notice from this software or any
  67.  *  portion of it)
  68.  */
  69. /**********************************************************************************
  70.    Filename:      Ascii.c
  71.    Author:        Manish
  72.    Date Created:  Feb 5-2003
  73.    Contains:      
  74. **********************************************************************************/
  75. #include "PixtelDataTypes.h"
  76. #include "Asciiprot.h"
  77. #include "string.h"
  78. #include "Unicodexdcl.h"
  79. /*****************************************************************************
  80.  * FUNCTION
  81.  *  AsciiStrlen
  82.  * DESCRIPTION
  83.  *  Gives the length of Ascii encoded string
  84.  * PARAMETERS
  85.  *  arrOut      [IN]        
  86.  *  PS8(?)      [IN]        > array containing  Ascii encoded characters
  87.  * RETURNS
  88.  *  U16 -> Status
  89.  *****************************************************************************/
  90. S32 AsciiStrlen(const S8 *arrOut)
  91. {
  92.     /*----------------------------------------------------------------*/
  93.     /* Local Variables                                                */
  94.     /*----------------------------------------------------------------*/
  95.     S32 count = 0;
  96.     /*----------------------------------------------------------------*/
  97.     /* Code Body                                                      */
  98.     /*----------------------------------------------------------------*/
  99.     while (*arrOut)
  100.     {
  101.         ++count;
  102.         ++arrOut;
  103.     }
  104.     return count;
  105. }
  106. /*****************************************************************************
  107.  * FUNCTION
  108.  *  AsciiStrcpy
  109.  * DESCRIPTION
  110.  *  
  111.  * PARAMETERS
  112.  *  strDestination      [?]         
  113.  *  strSource           [IN]        
  114.  *  PS8(?)              [IN]        > array containing  Ascii encoded characters
  115.  * RETURNS
  116.  *  PS8
  117.  *****************************************************************************/
  118. PS8 AsciiStrcpy(S8 *strDestination, const S8 *strSource)
  119. {
  120.     /*----------------------------------------------------------------*/
  121.     /* Local Variables                                                */
  122.     /*----------------------------------------------------------------*/
  123.     /*----------------------------------------------------------------*/
  124.     /* Code Body                                                      */
  125.     /*----------------------------------------------------------------*/
  126.     /* MTK added by JL 040130 for copy error issue */
  127.     while (!((*strDestination == 0) && (*strSource == 0)))
  128.     {
  129.         ++strDestination;
  130.         ++strSource;
  131.     }
  132.     strDestination = '';
  133.     return strDestination;
  134. }
  135. /*****************************************************************************
  136.  * FUNCTION
  137.  *  AsciiStrcmp
  138.  * DESCRIPTION
  139.  *  Compares the ascii encoded strings
  140.  * PARAMETERS
  141.  *  string1     [IN]        
  142.  *  string2     [IN]        
  143.  * RETURNS
  144.  *  S16 -> Status
  145.  *****************************************************************************/
  146. S32 AsciiStrcmp(const S8 *string1, const S8 *string2)
  147. {
  148.     /*----------------------------------------------------------------*/
  149.     /* Local Variables                                                */
  150.     /*----------------------------------------------------------------*/
  151.     /*----------------------------------------------------------------*/
  152.     /* Code Body                                                      */
  153.     /*----------------------------------------------------------------*/
  154.     /* while( (*string1) && (*string2) )
  155.        {
  156.        if((*string1 - *string2) != 0)
  157.        {
  158.        break;
  159.        }
  160.        else
  161.        {
  162.        string1++;
  163.        string2++;
  164.        
  165.        }
  166.        
  167.        }
  168.        return   (*string1 - *string2); */
  169.     while (*string1 == *string2)
  170.     {
  171.         if (*string1 == '')
  172.         {
  173.             return 0;
  174.         }
  175.         string1++;
  176.         string2++;
  177.     }
  178.     return (*string1 - *string2);
  179. }
  180. /*****************************************************************************
  181.  * FUNCTION
  182.  *  AsciiStrncmp
  183.  * DESCRIPTION
  184.  *  Compares the ascii encoded strings of specified length
  185.  * PARAMETERS
  186.  *  string1     [IN]        
  187.  *  string2     [IN]        
  188.  *  size        [IN]        
  189.  * RETURNS
  190.  *  S16 -> Status
  191.  *****************************************************************************/
  192. S32 AsciiStrncmp(const S8 *string1, const S8 *string2, U32 size)
  193. {
  194.     /*----------------------------------------------------------------*/
  195.     /* Local Variables                                                */
  196.     /*----------------------------------------------------------------*/
  197.     U32 count = 0;
  198.     /*----------------------------------------------------------------*/
  199.     /* Code Body                                                      */
  200.     /*----------------------------------------------------------------*/
  201.     while (count < size)
  202.     {
  203.         if (string1[count] != string2[count])
  204.         {
  205.             return string1[count] - string2[count];
  206.         }
  207.         ++count;
  208.     }
  209.     return 0;
  210. }
  211. /*****************************************************************************
  212.  * FUNCTION
  213.  *  AsciiStrncpy
  214.  * DESCRIPTION
  215.  *  
  216.  * PARAMETERS
  217.  *  strDestination      [?]         
  218.  *  strSource           [IN]        
  219.  *  size                [IN]        
  220.  *  PS8(?)              [IN]        > array containing  Ascii encoded characters
  221.  * RETURNS
  222.  *  PS8
  223.  *****************************************************************************/
  224. PS8 AsciiStrncpy(S8 *strDestination, const S8 *strSource, U32 size)
  225. {
  226.     /*----------------------------------------------------------------*/
  227.     /* Local Variables                                                */
  228.     /*----------------------------------------------------------------*/
  229.     U32 count = 0;
  230.     /*----------------------------------------------------------------*/
  231.     /* Code Body                                                      */
  232.     /*----------------------------------------------------------------*/
  233.     while ((*strDestination = *strSource) && (count < size))
  234.     {
  235.         ++strDestination;
  236.         ++strSource;
  237.         ++count;
  238.     }
  239.     strDestination = '';
  240.     return strDestination;
  241. }
  242. /*****************************************************************************
  243.  * FUNCTION
  244.  *  AsciiStrcat
  245.  * DESCRIPTION
  246.  *  
  247.  * PARAMETERS
  248.  *  strDestination      [?]         
  249.  *  strSource           [IN]        
  250.  * RETURNS
  251.  *  PS8
  252.  *****************************************************************************/
  253. PS8 AsciiStrcat(S8 *strDestination, const S8 *strSource)
  254. {
  255.     /*----------------------------------------------------------------*/
  256.     /* Local Variables                                                */
  257.     /*----------------------------------------------------------------*/
  258.     S8 *dest = strDestination;
  259.     /*----------------------------------------------------------------*/
  260.     /* Code Body                                                      */
  261.     /*----------------------------------------------------------------*/
  262.     dest = dest + AsciiStrlen(strDestination);
  263.     AsciiStrcpy(dest, strSource);
  264.     return strDestination;
  265. }
  266. /* Dummy funtion to be removed later on */
  267. /*****************************************************************************
  268.  * FUNCTION
  269.  *  AsciiStrtok
  270.  * DESCRIPTION
  271.  *  
  272.  * PARAMETERS
  273.  *  strToken        [?]         
  274.  *  strDelimit      [IN]        
  275.  * RETURNS
  276.  *  
  277.  *****************************************************************************/
  278. char *AsciiStrtok(char *strToken, const char *strDelimit)
  279. {
  280.     /*----------------------------------------------------------------*/
  281.     /* Local Variables                                                */
  282.     /*----------------------------------------------------------------*/
  283.     /*----------------------------------------------------------------*/
  284.     /* Code Body                                                      */
  285.     /*----------------------------------------------------------------*/
  286.     return "";
  287. }