[BACK]Return to file.h CVS log [TXT][DIR] Up to [local] / src / usr.bin / cvs

Annotation of src/usr.bin/cvs/file.h, Revision 1.42

1.42    ! xsa         1: /*     $OpenBSD: file.h,v 1.41 2007/02/09 03:49:15 joris Exp $ */
1.1       jfb         2: /*
1.34      joris       3:  * Copyright (c) 2006 Joris Vink <joris@openbsd.org>
1.1       jfb         4:  * Copyright (c) 2004 Jean-Francois Brousseau <jfb@openbsd.org>
1.11      tedu        5:  * All rights reserved.
1.1       jfb         6:  *
1.11      tedu        7:  * Redistribution and use in source and binary forms, with or without
                      8:  * modification, are permitted provided that the following conditions
                      9:  * are met:
1.1       jfb        10:  *
1.11      tedu       11:  * 1. Redistributions of source code must retain the above copyright
                     12:  *    notice, this list of conditions and the following disclaimer.
1.1       jfb        13:  * 2. The name of the author may not be used to endorse or promote products
1.11      tedu       14:  *    derived from this software without specific prior written permission.
1.1       jfb        15:  *
                     16:  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
                     17:  * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
                     18:  * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
                     19:  * THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
                     20:  * EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLUDING, BUT NOT LIMITED TO,
                     21:  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
                     22:  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
                     23:  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
                     24:  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
1.11      tedu       25:  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1.1       jfb        26:  */
                     27:
                     28: #ifndef FILE_H
                     29: #define FILE_H
                     30:
1.16      jfb        31: #include "rcs.h"
                     32:
1.34      joris      33: struct cvs_file {
                     34:        char    *file_name;
                     35:        char    *file_wd;
                     36:        char    *file_path;
                     37:        char    *file_rpath;
                     38:
                     39:        int      fd;
                     40:        int      repo_fd;
                     41:        int      file_type;
                     42:        int      file_status;
                     43:        int      file_flags;
                     44:
1.37      joris      45:        RCSNUM          *file_rcsrev;
1.34      joris      46:        RCSFILE         *file_rcs;
                     47:        struct cvs_ent  *file_ent;
                     48: };
                     49:
                     50: #define FILE_UNKNOWN           0
                     51: #define FILE_ADDED             1
                     52: #define FILE_REMOVED           2
                     53: #define FILE_MODIFIED          3
                     54: #define FILE_UPTODATE          4
                     55: #define FILE_LOST              5
                     56: #define FILE_CHECKOUT          6
                     57: #define FILE_MERGE             7
                     58: #define FILE_PATCH             8
                     59: #define FILE_REMOVE_ENTRY      9
                     60: #define FILE_CONFLICT          10
                     61: #define FILE_UNLINK            11
                     62:
                     63: #define DIR_CREATE             12
1.36      joris      64:
                     65: #define FILE_SKIP              100
1.34      joris      66:
                     67: struct cvs_filelist {
                     68:        char    *file_path;
                     69:        TAILQ_ENTRY(cvs_filelist) flist;
                     70: };
                     71:
                     72: TAILQ_HEAD(cvs_flisthead, cvs_filelist);
                     73:
                     74: struct cvs_recursion;
                     75:
                     76: #define CVS_DIR                1
                     77: #define CVS_FILE       2
                     78:
                     79: TAILQ_HEAD(cvs_flist, cvs_file);
                     80:
                     81: struct cvs_ignpat {
                     82:        char                            ip_pat[MAXNAMLEN];
                     83:        int                             ip_flags;
                     84:        TAILQ_ENTRY(cvs_ignpat)         ip_list;
                     85: };
                     86:
                     87: TAILQ_HEAD(ignore_head, cvs_ignpat);
                     88:
                     89: void   cvs_file_init(void);
                     90: void   cvs_file_ignore(const char *, struct ignore_head *);
1.41      joris      91: void   cvs_file_classify(struct cvs_file *, const char *);
1.34      joris      92: void   cvs_file_free(struct cvs_file *);
                     93: void   cvs_file_run(int, char **, struct cvs_recursion *);
                     94: void   cvs_file_walklist(struct cvs_flisthead *, struct cvs_recursion *);
                     95: void   cvs_file_walkdir(struct cvs_file *, struct cvs_recursion *);
                     96: void   cvs_file_freelist(struct cvs_flisthead *);
                     97: struct cvs_filelist *cvs_file_get(const char *, struct cvs_flisthead *);
1.1       jfb        98:
1.34      joris      99: int    cvs_file_chkign(const char *);
1.39      xsa       100: int    cvs_file_cmpname(const char *, const char *);
1.38      xsa       101: int    cvs_file_cmp(const char *, const char *);
1.40      xsa       102: int    cvs_file_copy(const char *, const char *);
1.1       jfb       103:
1.34      joris     104: struct cvs_file *cvs_file_get_cf(const char *, const char *, int, int);
1.1       jfb       105:
1.26      xsa       106: #endif /* FILE_H */