1# TODO 2 3#### The lists in this page summarize current efforts in the scrot project. 4 5## Fix bugs 6 7Look for any bugs reported downstream or in our github issues and fix them: 8- https://github.com/resurrecting-open-source-projects/scrot/issues 9- https://bugs.debian.org/cgi-bin/pkgreport.cgi?dist=unstable;package=scrot 10- https://bugs.launchpad.net/ubuntu/+source/scrot/+bugs 11- https://apps.fedoraproject.org/packages/scrot/bugs 12- https://bugs.gentoo.org/buglist.cgi?quicksearch=scrot 13 14## Integrate [libbsd](https://libbsd.freedesktop.org/wiki/) 15 16The BSD systems provide nonstandard C functions; many of the functions remove 17the need for some boilerplate code, and provide safer or easier to use APIs 18compared to the C standard library. 19scrot is in the process of auditing its source to make use of BSD extensions 20to the C library where they are found to improve code quality. scrot depends on 21libbsd to provide the required functions where they're missing to remain 22portable. libbsd includes manuals for all the functions it implements-a list of 23them can be found at libbsd(7). The manual can alternatively be accessed from 24the web at [manpages.debian.org](https://manpages.debian.org/unstable/libbsd-dev/libbsd.7.en.html). 25BSD systems provide manuals for these functions in the default install. 26 27The following libbsd integration efforts are in progress: 28- ~~Replace strncpy() and strcpy() calls with strlcpy().~~ 29- ~~Replace strcat() and strncat() calls with strlcat().~~ 30- ~~Replace error exits with the err() family of functions.~~ 31- ~~Replace local implementations of data structures with the sys/queue.h API.~~ 32- Find places where other BSD functions can serve scrot well. 33 34## Comply with WebKit style 35We're currently in the process of complying with the new obligatory C style 36described in [CONTRIBUTING.md](CONTRIBUTING.md). 37 38The following files are yet to be converted: 39- ~~src/imlib.c~~ 40- ~~src/main.c~~ 41- ~~src/note.c~~ 42- ~~src/options.c~~ 43- ~~src/scrot_selection.c~~ 44- ~~src/selection_classic.c~~ 45- ~~src/selection_edge.c~~ 46- ~~src/note.h~~ 47- ~~src/options.h~~ 48- ~~src/slist.c~~ 49- ~~src/scrot.h~~ 50- ~~src/scrot_selection.h~~ 51- ~~src/selection_classic.h~~ 52- ~~src/selection_edge.h~~ 53- ~~src/slist.h~~ 54- ~~src/structs.h~~ 55