Lines Matching full:entries
223 # Sort each page's entries by offset
230 """Compress consecutive entries with the same fallback character into ranges.
231 A range is only compressed if it contains 3 or more consecutive entries."""
235 for page, entries in page_groups.items():
238 while i < len(entries):
239 start_offset, fallback = entries[i]
241 # Look ahead to find consecutive entries with the same fallback
243 while (j < len(entries) and
244 entries[j][0] == entries[j-1][0] + 1 and # consecutive offsets
245 entries[j][1] == fallback): # same fallback
249 end_offset = entries[j-1][0]
251 # If we found a range with 3 or more entries (worth compressing)
257 # Add the individual entries as is
259 compressed_entries.append(entries[k])
286 total_compressed_entries = sum(len(entries) for entries in compressed_pages.values())
287 print(f"Total compressed entries: {total_compressed_entries}")
309 # Convert compressed_pages to a sorted list of (page, entries) tuples
316 for page, entries in sorted_pages:
317 count = len(entries)
321 # Write entries array
325 /* Page entries array (referenced by page descriptors) */
329 # Write all entries
330 for page, entries in sorted_pages:
332 f.write(f"\t/* Entries for page {page_hex} */\n")
334 for i, (offset, fallback) in enumerate(entries):