La directive #include permet à un programme de langage utilisateur de réutiliser le code écrit dans d’autres fichiers ULP. La syntaxe est :
#include "filename"
Le fichier filename est d’abord recherché dans le même répertoire que le fichier source actuel (c’est-à-dire le fichier contenant la directive #include). S’il est introuvable, il est recherché dans les répertoires inclus dans le chemin de répertoire ULP.
La profondeur maximale de l’inclusion est de 10.
Chaque directive #include est traitée une seule fois pour éviter que des variables ou fonctions soient définies plusieurs fois, car des erreurs risqueraient alors de se produire.
Si filename contient un chemin de répertoire, il est conseillé d’utiliser systématiquement la barre oblique comme séparateur de répertoire (y compris sous Windows). Évitez d’utiliser les lettres de lecteur Windows. Ainsi, votre programme de langage utilisateur s’exécutera sur toutes les plates-formes.
Il peut arriver que des versions plus récentes d’EAGLE implémentent des fonctions de langage utilisateur nouvelles ou modifiées, d’où la génération de messages d’erreur lorsque l’ULP est exécuté à partir d’une version antérieure d’EAGLE. Pour afficher un message dédié indiquant à l’utilisateur que l’ULP requiert une version minimale spécifique d’EAGLE, un ULP peut contenir la directive #require. La syntaxe est :
#require version
La version doit être spécifiée en tant que constante de type réel au format suivant :
V.RRrr
où V est le numéro de version de build, RR est le numéro de version de publication et rr est le numéro de révision (facultatif) (tous deux étant complétés par des zéros de début s’ils sont inférieurs à 10). Par exemple, si un ULP requiert au moins la version 4.11r06 d’EAGLE (c’est-à-dire la version bêta qui a commencé à implémenter la directive #require), il peut inclure :
#require 4.1106
La directive appropriée pour la version 5.1.2 serait :
#require 5.0102
Chaque programme de langage utilisateur doit contenir des informations sur sa fonction, son utilisation et éventuellement son auteur. La directive
#usage text [, text...]
met en œuvre une méthode standard pour rendre ces informations disponibles. Si la directive #usage est présente, son texte (qui doit être une constante de type chaîne) est utilisé dans le panneau de configuration pour afficher une description du programme.
Si l’ULP doit utiliser ces informations (dans une instruction dlgMessageBox(), par exemple), le programme peut accéder au texte par le biais des constantes intégrées.
Seule la directive #usage du fichier de programme principal (celui qui est lancé avec la commande RUN) prend effet. Par conséquent, les fichiers Include purs peuvent (et doivent !) également avoir leurs propres directives #usage.
Il est conseillé d’insérer la directive #usage au début du fichier. Ainsi, le Panneau de configuration n’a pas à analyser le reste du texte pour rechercher les informations à afficher.
Si les informations d’utilisation doivent être fournies dans plusieurs langues, les textes des différentes langues doivent être séparés par des virgules. Chacun de ces textes doit commencer par le code de deux lettres de la langue correspondante (tel qu’il est fourni par la fonction language()), suivi de deux points et d’un nombre quelconque d’espaces. Si aucun texte approprié n’est identifié pour la langue utilisée par le système, le premier texte spécifié est utilisé (celui-ci doit généralement être fourni en anglais pour que le programme soit accessible au plus grand nombre d’utilisateurs).
Exemple :
#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"