Bienvenidos a un mundo dominado por las matrices, donde ellas son lo que existe por debajo para que nosotros veamos un mundo de colores. Las operaciones con matrices y vectores son una parte importante del potencial del software que os retamos a adivinar.
Esta semana, en ¿De dónde es este código?, os traemos un proyecto que apenas ha superado la mayoría de edad, y en cuyo código, al contrario de lo que algunos podrían pensar al usar este software, predominan las operaciones matemáticas.
Las pistas
En principio fue diseñado para funcionar exclusivamente en sistemas X Window, pero debido a su éxito se portó a Windows y Mac OS X.
Parte de su núcleo se escindió para formar una librería independiente, utilizada para crear elementos gráficos como ventanas, pestañas, menús botones, etc.
Está escrito fundamentalmente en C, aunque soporta el uso de macros programadas en Python, Scheme o Perl, entre otros.
Desde la versión 0.54 admite la creación de plugins.
El código
El código de este proyecto usa gran cantidad de prefijos e incluso tipos derivados de los básicos de C, por lo que presentamos una función para deshacer acciones donde encontraréis ofuscados los identificadores que podrían hacerlo demasiado obvio.
/** * Starts a group undo. * * This function is used to start a group undo--necessary for logically * combining two or more undo operations into a single operation. This * call must be used in conjunction with a ▒▒▒▒_image_undo_group_end() * call. * * Returns: TRUE on success. **/ ▒boolean ▒▒▒▒_image_undo_group_start (▒int32 image_ID) { ▒▒▒▒Param *return_vals; ▒int nreturn_vals; ▒boolean success = TRUE; return_vals = ▒▒▒▒_run_procedure ("▒▒▒▒-image-undo-group-start", &nreturn_vals, ▒▒▒▒_PDB_IMAGE, image_ID, ▒▒▒▒_PDB_END); success = return_vals[0].data.d_status == ▒▒▒▒_PDB_SUCCESS; ▒▒▒▒_destroy_params (return_vals, nreturn_vals); return success; }
El reto
Como viene siendo habitual, aparte del nombre del proyecto, tenemos algunas preguntas extra:
-
¿Qué nombre se dio a la librería de elementos de interfaz surgida de este proyecto?
-
¿En qué universidad nació este software, como proyecto semestral?
-
¿Qué nombre recibe la mascota de este software? ¿En qué videojuego aparece?
Esta semana quizá sea un poco más difícil que las anteriores, al ser más corto el extracto de código, pero seguro que lo adivináis. Esperamos vuestras respuestas en los comentarios.