Parts of RustFig are derived from xfig and fig2dev (https://mcj.sourceforge.net/).
Files containing such parts say so in a comment naming the original source
file. Those parts carry the following copyright and permission notice.

FIG : Facility for Interactive Generation of figures
Fig2dev: Translate Fig code to various Devices
Copyright (c) 1985-1988 by Supoj Sutanthavibul
Copyright (c) 1991 by Micah Beck
Parts Copyright (c) 1989-2015 by Brian V. Smith
Parts Copyright (c) 1991 by Paul King
Parts Copyright (c) 1994 by Bill Taylor
Parts Copyright (c) 1991 by Henning Spruth
Parts Copyright (c) 1988 by Frank Schmuck
Copyright (c) 1988 by Conrad Kwok
Copyright (c) 1992 by Herbert Bauer and B. Raichle
Parts Copyright (c) 1992 by Brian Boyter
Parts Copyright (c) 1995 by C. Blanc and C. Schlick
Copyright 1995 by Dane Dwyer
Copyright (c) 1999 by T. Sato
Copyright (c) 1999 by Philippe Bekaert
Parts Copyright (c) 2002 by Anthony Starks
Copyright (c) 2002 by Christian Gollwitzer
Parts Copyright (c) 2002-2006 by Martin Kroeker
Parts Copyright (c) 2004 by Chris Moller
Parts Copyright (c) 2015-2024 by Thomas Loimer
and the other contributors named in the xfig and fig2dev sources.

Any party obtaining a copy of these files is granted, free of charge, a
full and unrestricted irrevocable, world-wide, paid up, royalty-free,
nonexclusive right and license to deal in this software and documentation
files (the "Software"), including without limitation the rights to use,
copy, modify, merge, publish, distribute, sublicense and/or sell copies of
the Software, and to permit persons who receive copies from any such
party to do so, with the only requirement being that the above copyright
and this permission notice remain intact.


Files derived from xfig and fig2dev
-----------------------------------
Each file below carries a comment naming its sources and pointing to this
notice. xfig's sources are cited as src/..., fig2dev's as fig2dev/... (its
drivers as fig2dev/dev/...); app-defaults/Fig is xfig's resource file.
`cargo xtask licences` checks that this list and those comments agree.

- crates/engine/src/anglegeom.rs: xfig src/u_elastic.c, src/u_geom.c, src/w_indpanel.c
- crates/engine/src/cmd/chop.rs: xfig src/e_chop.c, src/w_intersect.c
- crates/engine/src/cmd/compound.rs: xfig src/e_compound.c
- crates/engine/src/cmd/dimline.rs: xfig src/d_line.c, src/e_scale.c
- crates/engine/src/cmd/file.rs: xfig src/u_print.c, src/f_picobj.c (relative picture names), src/u_scale.c (read_scale_compound)
- crates/engine/src/cmd/joinsplit.rs: xfig src/e_joinsplit.c
- crates/engine/src/cmd/measure.rs: xfig src/e_measure.c, src/u_geom.c, src/w_msgpanel.c
- crates/engine/src/cmd/picture.rs: xfig src/e_edit.c (picture panel)
- crates/engine/src/cmd/tangent.rs: xfig src/e_tangent.c, src/u_smartsearch.c, src/u_geom.c
- crates/engine/src/cmd/sfactor.rs: xfig src/e_edit.c
- crates/engine/src/coords.rs: xfig src/w_keyboard.c
- crates/engine/src/dimline.rs: xfig src/d_line.c, src/u_create.c, src/e_scale.c, src/f_util.c, src/w_msgpanel.c
- crates/engine/src/links.rs: xfig src/u_list.c, src/u_elastic.c
- crates/engine/src/cmdline.rs: xfig src/main.c (option table, help list, option parsing), doc/xfig.man.in (options)
- crates/engine/src/prefs.rs:xfig src/main.c (resources, options), src/f_util.c (read_xfigrc), doc/xfig.man.in (resource table)
- crates/engine/src/snap.rs: xfig src/w_snap.c, src/w_intersect.c
- crates/engine/src/tools/chop.rs: xfig src/e_chop.c
- crates/engine/src/tools/compound.rs: xfig src/e_compound.c, src/e_joinsplit.c
- crates/engine/src/tools/lengths.rs: xfig src/w_msgpanel.c
- crates/engine/src/export_panel.rs: xfig src/w_export.c, src/u_print.c, src/f_util.c
- crates/engine/src/file_panel.rs: xfig src/w_file.c
- crates/ui-egui/src/file_panel.rs: xfig src/w_file.c
- crates/engine/src/print.rs: xfig src/u_print.c, src/w_print.c
- crates/ui-egui/src/print_dialog.rs: xfig src/w_print.c
- crates/engine/src/tools/markers.rs: xfig src/u_markers.c, src/w_modepanel.c, src/object.h
- crates/engine/src/tools/mod.rs: xfig src/w_modepanel.c, src/d_*.c, src/e_*.c, src/w_canvas.c
- crates/engine/src/tools/measure.rs: xfig src/e_measure.c, src/u_search.c
- crates/engine/src/tools/tangent.rs: xfig src/e_tangent.c, src/u_smartsearch.c
- crates/engine/src/tools/ctrl.rs: xfig src/w_zoom.c, src/w_canvas.c, src/e_edit.c, src/u_search.c
- crates/format/src/fig_write.rs: xfig src/f_save.c
- crates/geom/src/intersect.rs: xfig src/w_intersect.c
- crates/model/src/object.rs: xfig src/u_redraw.c, src/f_save.c
- crates/render/src/lib.rs: xfig src/u_redraw.c; fig2dev/dev/genps.c
- crates/text/src/compose.rs: xfig CompKeyDB, src/w_canvas.c
- crates/ui-egui/src/attributes.rs: xfig src/w_indpanel.c, src/w_indpanel.h, src/w_modepanel.c, src/w_icons.c
- crates/ui-egui/src/dialogs.rs: xfig src/e_edit.c (edit panel)
- crates/ui-egui/src/dimline_panel.rs: xfig src/w_indpanel.c (popup_dimline_panel)
- crates/ui-egui/src/menus.rs: xfig src/w_cmdpanel.c, src/w_modepanel.c, app-defaults/Fig
- crates/ui-egui/src/mode_icons.rs: xfig src/w_icons.c (traced mode icons)
- crates/ui-egui/src/panels.rs: xfig src/w_modepanel.c, src/w_mousefun.c, src/w_layers.c, src/w_snap.c, src/w_icons.c
- crates/ui-egui/src/point_entry.rs: xfig src/w_keyboard.c
- crates/ui-egui/src/digitize.rs: xfig src/w_digitize.c
- crates/ui-egui/src/reload.rs: xfig src/main.c (autorefresh), src/w_file.c (new_xfig_request)
- crates/engine/src/cmd/digitize.rs: xfig src/w_digitize.c
- crates/engine/src/cmd/color.rs: xfig src/w_color.c (colour editor: add, modify, delete)
- crates/ui-egui/src/rulers.rs: xfig src/w_rulers.c, src/u_pan.c
- crates/ui-egui/src/vector_icons.rs: xfig src/w_icons.c (compositions of the attribute pictures)
- crates/ui-egui/src/xfig_icons.rs: xfig src/w_icons.c, src/w_indpanel.c (bitmaps copied verbatim)
- crates/engine/src/library.rs: xfig src/w_library.c, src/e_placelib.c
- crates/engine/src/cmd/library.rs: xfig src/w_library.c, src/e_placelib.c
- crates/ui-egui/src/library.rs: xfig src/w_library.c
- crates/engine/src/tools/mode_messages.rs: xfig src/w_modepanel.c
- crates/engine/src/view.rs: xfig src/w_indpanel.c (inc_zoom, dec_zoom, show_zoom)

Documentation: the bundled manual (docs/manual/*.md, shown in Help > RustFig Manual) is written for RustFig and adapts parts of xfig's HTML manual (doc/html/); it carries the notice above.
- crates/text/src/symbol_tables.rs: fig2dev dev/gensvg.c (Symbol and ZapfDingbats code tables)
