1*86d7f5d3SJohn Marino /* Interface to "cvs edit", "cvs watch on", and related features 2*86d7f5d3SJohn Marino 3*86d7f5d3SJohn Marino This program is free software; you can redistribute it and/or modify 4*86d7f5d3SJohn Marino it under the terms of the GNU General Public License as published by 5*86d7f5d3SJohn Marino the Free Software Foundation; either version 2, or (at your option) 6*86d7f5d3SJohn Marino any later version. 7*86d7f5d3SJohn Marino 8*86d7f5d3SJohn Marino This program is distributed in the hope that it will be useful, 9*86d7f5d3SJohn Marino but WITHOUT ANY WARRANTY; without even the implied warranty of 10*86d7f5d3SJohn Marino MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11*86d7f5d3SJohn Marino GNU General Public License for more details. */ 12*86d7f5d3SJohn Marino 13*86d7f5d3SJohn Marino extern int watch_on (int argc, char **argv); 14*86d7f5d3SJohn Marino extern int watch_off (int argc, char **argv); 15*86d7f5d3SJohn Marino 16*86d7f5d3SJohn Marino #ifdef CLIENT_SUPPORT 17*86d7f5d3SJohn Marino /* Check to see if any notifications are sitting around in need of being 18*86d7f5d3SJohn Marino sent. These are the notifications stored in CVSADM_NOTIFY (edit,unedit); 19*86d7f5d3SJohn Marino commit calls notify_do directly. */ 20*86d7f5d3SJohn Marino extern void notify_check (const char *repository, const char *update_dir); 21*86d7f5d3SJohn Marino #endif /* CLIENT_SUPPORT */ 22*86d7f5d3SJohn Marino 23*86d7f5d3SJohn Marino /* Issue a notification for file FILENAME. TYPE is 'E' for edit, 'U' 24*86d7f5d3SJohn Marino for unedit, and 'C' for commit. WHO is the user currently running. 25*86d7f5d3SJohn Marino For TYPE 'E', VAL is the time+host+directory data which goes in 26*86d7f5d3SJohn Marino _editors, and WATCHES is zero or more of E,U,C, in that order, to specify 27*86d7f5d3SJohn Marino what kinds of temporary watches to set. */ 28*86d7f5d3SJohn Marino extern void notify_do (int type, const char *filename, const char *upadte_dir, 29*86d7f5d3SJohn Marino const char *who, const char *val, const char *watches, 30*86d7f5d3SJohn Marino const char *repository); 31*86d7f5d3SJohn Marino 32*86d7f5d3SJohn Marino /* Set attributes to reflect the fact that EDITOR is editing FILENAME. 33*86d7f5d3SJohn Marino VAL is time+host+directory, or NULL if we are to say that EDITOR is 34*86d7f5d3SJohn Marino *not* editing FILENAME. */ 35*86d7f5d3SJohn Marino extern void editor_set (const char *filename, const char *editor, 36*86d7f5d3SJohn Marino const char *val); 37*86d7f5d3SJohn Marino 38*86d7f5d3SJohn Marino /* Take note of the fact that FILE is up to date (this munges CVS/Base; 39*86d7f5d3SJohn Marino processing of CVS/Entries is done separately). */ 40*86d7f5d3SJohn Marino extern void mark_up_to_date (const char *file); 41*86d7f5d3SJohn Marino 42*86d7f5d3SJohn Marino void editors_output (const char *fullname, const char *them); 43*86d7f5d3SJohn Marino 44*86d7f5d3SJohn Marino void edit_file (void *data, List *ent_list, const char *short_pathname, 45*86d7f5d3SJohn Marino const char *filename); 46