Changeset 3922 for trunk/src/riched32/charlist.c
- Timestamp:
- Aug 2, 2000, 4:58:40 PM (25 years ago)
- File:
-
- 1 edited
-
trunk/src/riched32/charlist.c (modified) (9 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/riched32/charlist.c
r3515 r3922 1 /* $Id: charlist.c,v 1.2 2000-08-02 14:58:40 bird Exp $ */ 1 2 /* 2 * 3 * 3 4 * Character List 4 * 5 * 5 6 * Copyright (c) 2000 by Jean-Claude Batista 6 * 7 * 7 8 */ 8 9 … … 18 19 19 20 void CHARLIST_Enqueue( CHARLIST* pCharList, char myChar ) 20 { 21 { 21 22 CHARLISTENTRY* pNewEntry = HeapAlloc(RICHED32_hHeap, 0,sizeof(CHARLISTENTRY)); 22 23 pNewEntry->pNext = NULL; 23 24 pNewEntry->myChar = myChar; 24 25 25 26 if(pCharList->pTail == NULL) 26 27 { … … 29 30 else 30 31 { 31 CHARLISTENTRY* pCurrent = pCharList->pTail; 32 CHARLISTENTRY* pCurrent = pCharList->pTail; 32 33 pCharList->pTail = pCurrent->pNext = pNewEntry; 33 34 } … … 37 38 38 39 void CHARLIST_Push( CHARLIST* pCharList, char myChar) 39 { 40 { 40 41 CHARLISTENTRY* pNewEntry = malloc(sizeof(CHARLISTENTRY)); 41 42 42 43 pNewEntry->myChar = myChar; 43 44 44 45 if(pCharList->pHead == NULL) 45 46 { … … 62 63 char myChar; 63 64 64 if(pCharList->nCount == 0) 65 if(pCharList->nCount == 0) 65 66 return 0; 66 67 67 68 pCharList->nCount--; 68 69 myChar = pCharList->pHead->myChar; 69 70 pCurrent = pCharList->pHead->pNext; 70 71 HeapFree(RICHED32_hHeap, 0,pCharList->pHead); 71 72 72 73 if(pCharList->nCount == 0) 73 74 { … … 79 80 } 80 81 81 return myChar; 82 return myChar; 82 83 } 83 84 … … 89 90 void CHARLIST_FreeList(CHARLIST* pCharList){ 90 91 while(pCharList->nCount) 91 CHARLIST_Dequeue(pCharList); 92 CHARLIST_Dequeue(pCharList); 92 93 } 93 94 … … 97 98 CHARLISTENTRY *pCurrent; 98 99 int nCount = 0; 99 100 100 101 for(pCurrent =pCharList->pHead ;pCurrent;pCurrent=pCurrent->pNext) 101 102 if(pCurrent->myChar == myChar) 102 103 nCount++; 103 104 104 105 return nCount; 105 106 } … … 107 108 int CHARLIST_toBuffer(CHARLIST* pCharList, char* pBuffer, int nBufferSize) 108 109 { 109 110 110 111 /* we add one to store a NULL caracter */ 111 if(nBufferSize < pCharList->nCount + 1) 112 if(nBufferSize < pCharList->nCount + 1) 112 113 return pCharList->nCount; 113 114 114 115 for(;pCharList->nCount;pBuffer++) 115 116 *pBuffer = CHARLIST_Dequeue(pCharList); 116 117 117 118 *pBuffer = '\0'; 118 119
Note:
See TracChangeset
for help on using the changeset viewer.
