mirror of
				https://github.com/espressif/esp-protocols.git
				synced 2025-11-04 08:31:37 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			55 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
# SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
 | 
						|
# SPDX-License-Identifier: Apache-2.0
 | 
						|
import re
 | 
						|
import sys
 | 
						|
 | 
						|
# Configurable prefix for memory functions
 | 
						|
MDNS_MEM_PREFIX = 'mdns_mem_'  # Change this to modify the prefix
 | 
						|
 | 
						|
 | 
						|
def add_prefix_to_mem_funcs(content):
 | 
						|
    # List of memory functions to prefix
 | 
						|
    mem_funcs = [
 | 
						|
        'malloc',
 | 
						|
        'calloc',
 | 
						|
        'free',
 | 
						|
        'strdup',
 | 
						|
        'strndup'
 | 
						|
    ]
 | 
						|
 | 
						|
    # Create regex pattern matching the memory functions but not already prefixed ones
 | 
						|
    pattern = fr'(?<!{MDNS_MEM_PREFIX})(?<![\w])(' + '|'.join(mem_funcs) + r')(?=\s*\()'
 | 
						|
 | 
						|
    # Replace all occurrences with configured prefix
 | 
						|
    modified = re.sub(pattern, fr'{MDNS_MEM_PREFIX}\1', content)
 | 
						|
 | 
						|
    return modified
 | 
						|
 | 
						|
 | 
						|
def process_file(filename):
 | 
						|
    try:
 | 
						|
        # Read the file
 | 
						|
        with open(filename, 'r') as f:
 | 
						|
            content = f.read()
 | 
						|
 | 
						|
        # Add prefixes
 | 
						|
        modified = add_prefix_to_mem_funcs(content)
 | 
						|
 | 
						|
        # Write back to file
 | 
						|
        with open(filename, 'w') as f:
 | 
						|
            f.write(modified)
 | 
						|
 | 
						|
        print(f'Successfully processed {filename}')
 | 
						|
 | 
						|
    except Exception as e:
 | 
						|
        print(f'Error processing {filename}: {str(e)}')
 | 
						|
        sys.exit(1)
 | 
						|
 | 
						|
 | 
						|
if __name__ == '__main__':
 | 
						|
    if len(sys.argv) != 2:
 | 
						|
        print('Usage: python script.py <filename>')
 | 
						|
        sys.exit(1)
 | 
						|
 | 
						|
    process_file(sys.argv[1])
 |