diff options
Diffstat (limited to 'contrib/cvs/src/fileattr.h')
-rw-r--r-- | contrib/cvs/src/fileattr.h | 136 |
1 files changed, 0 insertions, 136 deletions
diff --git a/contrib/cvs/src/fileattr.h b/contrib/cvs/src/fileattr.h deleted file mode 100644 index 507807c..0000000 --- a/contrib/cvs/src/fileattr.h +++ /dev/null @@ -1,136 +0,0 @@ -/* Declarations for file attribute munging features. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. */ - -#ifndef FILEATTR_H - -/* File containing per-file attributes. The format of this file is in - cvs.texinfo but here is a quick summary. The file contains a - series of entries: - - ENT-TYPE FILENAME <tab> ATTRNAME = ATTRVAL - {; ATTRNAME = ATTRVAL} <linefeed> - - ENT-TYPE is 'F' for a file. - - ENT-TYPE is 'D', and FILENAME empty, for default attributes. - - Other ENT-TYPE are reserved for future expansion. - - Note that the order of the line is not significant; CVS is free to - rearrange them at its convenience. - - FIXME: this implementation doesn't handle '\0' in any of the - fields. We are encouraged to fix this (by cvs.texinfo). - - By convention, ATTRNAME starting with '_' is for an attribute given - special meaning by CVS; other ATTRNAMEs are for user-defined attributes - (or will be, once we add commands to manipulate user-defined attributes). - - Builtin attributes: - - _watched: Present means the file is watched and should be checked out - read-only. - - _watchers: Users with watches for this file. Value is - WATCHER > TYPE { , WATCHER > TYPE } - where WATCHER is a username, and TYPE is edit,unedit,commit separated by - + (or nothing if none; there is no "none" or "all" keyword). - - _editors: Users editing this file. Value is - EDITOR > VAL { , EDITOR > VAL } - where EDITOR is a username, and VAL is TIME+HOSTNAME+PATHNAME, where - TIME is when the "cvs edit" command happened, - and HOSTNAME and PATHNAME are for the working directory. */ - -#define CVSREP_FILEATTR "CVS/fileattr" - -/* Prepare for a new directory with repository REPOS. If REPOS is NULL, - then prepare for a "non-directory"; the caller can call fileattr_write - and fileattr_free, but must not call fileattr_get or fileattr_set. */ -extern void fileattr_startdir PROTO ((const char *repos)); - -/* Get the attribute ATTRNAME for file FILENAME. The return value - points into memory managed by the fileattr_* routines, should not - be altered by the caller, and is only good until the next call to - fileattr_clear or fileattr_set. It points to the value, terminated - by '\0' or ';'. Return NULL if said file lacks said attribute. - If FILENAME is NULL, return default attributes (attributes for - files created in the future). */ -extern char *fileattr_get PROTO ((const char *filename, const char *attrname)); - -/* Like fileattr_get, but return a pointer to a newly malloc'd string - terminated by '\0' (or NULL if said file lacks said attribute). */ -extern char *fileattr_get0 PROTO ((const char *filename, - const char *attrname)); - -/* This is just a string manipulation function; it does not manipulate - file attributes as such. - - LIST is in the format - - ATTRNAME NAMEVALSEP ATTRVAL {ENTSEP ATTRNAME NAMEVALSEP ATTRVAL} - - And we want to put in an attribute with name NAME and value VAL, - replacing the already-present attribute with name NAME if there is - one. Or if VAL is NULL remove attribute NAME. Return a new - malloc'd list; don't muck with the one passed in. If we are removing - the last attribute return NULL. LIST can be NULL to mean that we - started out without any attributes. - - Examples: - - fileattr_modify ("abc=def", "xxx", "val", '=', ';')) => "abc=def;xxx=val" - fileattr_modify ("abc=def", "abc", "val", '=', ';')) => "abc=val" - fileattr_modify ("abc=v1;def=v2", "abc", "val", '=', ';')) - => "abc=val;def=v2" - fileattr_modify ("abc=v1;def=v2", "def", "val", '=', ';')) - => "abc=v1;def=val" - fileattr_modify ("abc=v1;def=v2", "xxx", "val", '=', ';')) - => "abc=v1;def=v2;xxx=val" - fileattr_modify ("abc=v1;def=v2;ghi=v3", "def", "val", '=', ';')) - => "abc=v1;def=val;ghi=v3" -*/ - -extern char *fileattr_modify PROTO ((char *list, const char *attrname, - const char *attrval, int namevalsep, - int entsep)); - -/* Set attribute ATTRNAME for file FILENAME to ATTRVAL. If ATTRVAL is NULL, - the attribute is removed. Changes are not written to disk until the - next call to fileattr_write. If FILENAME is NULL, set attributes for - files created in the future. If ATTRVAL is NULL, remove that attribute. */ -extern void fileattr_set PROTO ((const char *filename, const char *attrname, - const char *attrval)); - -/* Get all the attributes for file FILENAME. They are returned as malloc'd - data in an unspecified format which is guaranteed only to be good for - passing to fileattr_setall, or NULL if no attributes. If FILENAME is - NULL, get default attributes. */ -extern char *fileattr_getall PROTO ((const char *filename)); - -/* Set the attributes for file FILENAME to ATTRS, overwriting all previous - attributes for that file. ATTRS was obtained from a previous call to - fileattr_getall (malloc'd data or NULL). */ -extern void fileattr_setall PROTO ((const char *filename, const char *attrs)); - -/* Set the attributes for file FILENAME in whatever manner is appropriate - for a newly created file. */ -extern void fileattr_newfile PROTO ((const char *filename)); - -/* Write out all modified attributes. */ -extern void fileattr_write PROTO ((void)); - -/* Free all memory allocated by fileattr_*. */ -extern void fileattr_free PROTO ((void)); - -#define FILEATTR_H 1 -#endif /* fileattr.h */ |