I found that unlike the base vi (nvi 2.1.3), nvi-devel calls flock() on a writable file descriptor. This has the unfortunately side effect of causing the "Text file busy" error when you edit a script in one window and try to run it in another.
The fix is to change the initial open() just prior to calling file_lock() in file_init() to use O_RDONLY instead of O_RDWR. This does not impact nvi's ability to write files, nvi creates a new file when writing.
Created attachment 201664 [details]