summaryrefslogtreecommitdiffstats
path: root/lib/vfs/README
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-04 17:44:12 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-04 17:44:12 +0000
commit8ccb487c21368a7fdc8c7c72315325bf0aa06147 (patch)
treeb2056fae01d325924508a41731edfbd4c3cddd23 /lib/vfs/README
parentInitial commit. (diff)
downloadmc-8ccb487c21368a7fdc8c7c72315325bf0aa06147.tar.xz
mc-8ccb487c21368a7fdc8c7c72315325bf0aa06147.zip
Adding upstream version 3:4.8.29.upstream/3%4.8.29upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'lib/vfs/README')
-rw-r--r--lib/vfs/README70
1 files changed, 70 insertions, 0 deletions
diff --git a/lib/vfs/README b/lib/vfs/README
new file mode 100644
index 0000000..14d4397
--- /dev/null
+++ b/lib/vfs/README
@@ -0,0 +1,70 @@
+NOTE: Although vfs has been meant to be implemented as a separate
+entity redistributable under the LGPL in its current implementation it
+uses GPLed code from src/. So there are two possibilities if you want
+to use vfs:
+
+1. Distribute your copy of vfs under the GPL. Then you can freely
+include the GPLed functions from the rest of the mc source code.
+
+2. Distribute your copy of vfs under the LGPL. Then you cannot include
+the functions outside the vfs subdirectory. You must then either
+rewrite them or work around them in other ways.
+
+========================================================================
+
+Hi!
+
+I'm midnight commander's vfs layer. Before you start hacking me,
+please read this file. I'm integral part of midnight commander, but I
+try to go out and live my life myself as a shared library, too. That
+means that I should try to use as little functions from midnight as
+possible (so I'm tiny, nice and people like me), that I should not
+pollute name space by unnecessary symbols (so I do not crash fellow
+programs) and that I should have a clean interface between myself and
+midnight.
+
+Because I'm rather close to midnight, try to:
+
+* Keep the indentation as the rest of the code. Following could help
+you with your friend emacs:
+
+(defun mc-c-mode ()
+ "C mode with adjusted defaults for use with the Midnight commander."
+ (interactive)
+ (c-mode)
+ (c-set-style "K&R")
+ (setq c-indent-level 4
+ c-continued-statement-offset 4
+ c-brace-offset 0
+ c-argdecl-indent 4
+ c-label-offset -4
+ c-brace-imaginary-offset 0
+ c-continued-brace-offset 0
+ c-tab-always-indent nil
+ c-basic-offset 4
+ tab-width 8
+ comment-column 60))
+
+(setq auto-mode-alist (cons '(".*/mc/.*\\.[ch]$" . mc-c-mode)
+ auto-mode-alist))
+
+And because I'm trying to live life on my own as libvfs.so, try to:
+
+* Make sure all exported symbols are defined in vfs.h and begin with
+'vfs_'.
+
+* Do not make any references from midnight into modules like tar. It
+would probably pollute name space and midnight would depend on concrete
+configuration of libvfs. mc_setctl() and mc_ctl() are your
+friends. (And mine too :-).
+
+ Pavel Machek
+ pavel@ucw.cz
+
+PS: If you'd like to use my features in whole operating system, you
+might want to link me to rpc.nfsd. On
+http://atrey.karlin.mff.cuni.cz/~pavel/podfuk/podfuk.html you'll find
+how to do it.
+
+PPS: I have a friend, shared library called avfs, which is LD_PRELOAD
+capable. You can reach her at http://www.inf.bme.hu/~mszeredi/avfs.