Changeset 18729
- Timestamp:
- Jul 24, 2008, 4:06:01 PM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branch_20080719/psModules/src/config/pmConfigMask.c
r18605 r18729 138 138 } 139 139 140 // Remove from the header keywords starting with the provided string 141 static int maskRemoveHeader(psMetadata *header, // Header from which to remove keywords 142 const char *start // Remove keywords that start with this string 143 ) 144 { 145 psString regex = NULL; // Regular expression for keywords 146 psStringAppend(®ex, "^%s[0-9][0-9]", start); 147 psMetadataIterator *iter = psMetadataIteratorAlloc(header, PS_LIST_HEAD, regex); // Iterator 148 psFree(regex); 149 psMetadataItem *item; // Item from iteration 150 int num = 0; // Number of items removed 151 while ((item = psMetadataGetAndIncrement(iter))) { 152 psMetadataRemoveKey(header, item->name); 153 num++; 154 } 155 psFree(iter); 156 return num; 157 } 158 159 140 160 // write the named mask bits to the header 141 161 bool pmConfigMaskWriteHeader(const pmConfig *config, psMetadata *header) … … 143 163 PS_ASSERT_PTR_NON_NULL(config, false); 144 164 PS_ASSERT_METADATA_NON_NULL(header, false); 165 166 maskRemoveHeader(header, "MSKNAM"); 167 maskRemoveHeader(header, "MSKVAL"); 168 if (psMetadataLookup(header, "MSKNUM")) { 169 psMetadataRemoveKey(header, "MSKNUM"); 170 } 145 171 146 172 char namekey[80]; … … 159 185 psMetadataItem *item; // Item from iteration 160 186 while ((item = psMetadataGetAndIncrement(iter))) { 187 if (strcmp(item->name + strlen(item->name) - strlen(".ALREADY"), ".ALREADY") == 0) { 188 continue; 189 } 161 190 162 191 if (item->type != PS_DATA_U8) { … … 165 194 } 166 195 167 snprintf (namekey, 64, "MSKNAM%02d", nMask);168 snprintf (valuekey, 64, "MSKVAL%02d", nMask);169 170 psMetadataAddStr (header, PS_LIST_TAIL, namekey, 0, "Bitmask bit name", item->name);171 psMetadataAddU8 (header, PS_LIST_TAIL, valuekey, 0, "Bitmask bit value", item->data.U8);172 nMask ++;173 } 174 175 psMetadataAddS32 (header, PS_LIST_TAIL, "MSKNUM", 0, "Bitmask bit count", nMask);196 snprintf(namekey, 64, "MSKNAM%02d", nMask); 197 snprintf(valuekey, 64, "MSKVAL%02d", nMask); 198 199 psMetadataAddStr(header, PS_LIST_TAIL, namekey, 0, "Bitmask bit name", item->name); 200 psMetadataAddU8(header, PS_LIST_TAIL, valuekey, 0, "Bitmask bit value", item->data.U8); 201 nMask++; 202 } 203 204 psMetadataAddS32(header, PS_LIST_TAIL, "MSKNUM", 0, "Bitmask bit count", nMask); 176 205 return true; 177 206 }
Note:
See TracChangeset
for help on using the changeset viewer.
