Un programa de idioma de usuario puede reutilizar código en otros archivos ULP mediante la directiva #include. Esta es la sintaxis:
#include "filename"
El archivo filename se busca primero en el mismo directorio que el archivo de origen actual (es decir, el archivo que contiene la directiva #include). Si no se encuentra allí, se busca en los directorios que se encuentran en la ruta del directorio ULP.
La profundidad máxima de inclusión es 10.
Cada directiva #include se procesa una sola vez. De este modo, se garantiza que no haya varias definiciones de las mismas variables o funciones, lo que podría provocar errores.
Si filename contiene una ruta de directorio, es mejor utilizar siempre la barra como separador de directorio (incluso en Windows). Se deben evitar las letras de unidad de Windows. De este modo, se ejecutará un programa de idioma de usuario en todas las plataformas.
Con el tiempo, puede suceder que las versiones más recientes de EAGLE implementen funciones de idioma de usuario nuevas o modificadas, lo que puede provocar mensajes de error cuando se ejecuta un ULP desde una versión anterior de EAGLE. Para proporcionar al usuario un mensaje específico que indique que este ULP requiere al menos una versión determinada de EAGLE, un ULP puede contener la directiva #require. Esta es la sintaxis:
#require version
La version debe ser dada como una constante real del formulario
V.RRrr
donde V es el número de versión, RR es el número de lanzamiento y rr es el número de revisión (opcional) (ambos se rellenan con ceros a la izquierda si son inferiores a 10). Por ejemplo, si un ULP requiere al menos la versión 4.11r06 de EAGLE (que es la versión beta que implementó por primera vez la directiva #require), podría utilizar
#require 4.1106
La directiva adecuada para la versión 5.1.2 sería
#require 5.0102
Cada programa de idioma de usuario debe contener información sobre su función, cómo utilizarla y, tal vez, quién la escribió. La directiva
#usage text [, text...]
implementa un método estándar para que esta información esté disponible. Si la directiva #usage está presente, su texto (que debe ser una constante de cadena) se utilizará en el Panel de control para mostrar una descripción del programa.
En caso de que el ULP necesite utilizar esta información, por ejemplo, en dlgMessageBox(), el texto estará disponible para el programa a través del uso constante integrado.
Solo se aplicará la directiva #usage del archivo de programa principal (es decir, el que se inicia con el comando RUN). Por lo tanto, los archivos de inclusión puros pueden (y deben) tener directivas #usage propias.
Es mejor tener la directiva #usage al principio del archivo, de modo que el Panel de control no tenga que analizar todo el resto del texto cuando se busque la información que se va a mostrar.
Si la información de uso se facilita en varios idiomas, los textos de los idiomas individuales deberán separarse con comas. Cada uno de estos textos tiene que comenzar con el código de dos letras del idioma respectivo (tal como lo entrega la función language()), seguido de dos puntos y de cualquier número de espacios. Si no se encuentra texto adecuado para el idioma utilizado en el sistema real, se utilizará el primer texto dado (este suele ser inglés para que el programa esté disponible para el mayor número de usuarios).
Ejemplo:
#usage "en: A sample ULP\n"
"Implements an example that shows how to use the EAGLE User Language\n"
"Usage: RUN sample.ulp\n"
"Author: john@home.org",
"de: Beispiel eines ULPs\n"
"Implementiert ein Beispiel das zeigt, wie man die EAGLE User Language benutzt\n"
"Aufruf: RUN sample.ulp\n"
"Author: john@home.org"