[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.45

1.45    ! joris       1: /*     $OpenBSD: file.h,v 1.44 2007/06/01 17:47:47 niallo 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
1.43      otto       30:
                     31: #include <sys/queue.h>
                     32:
                     33: #include <dirent.h>
                     34: #include <stdio.h>
1.1       jfb        35:
1.16      jfb        36: #include "rcs.h"
                     37:
1.34      joris      38: struct cvs_file {
                     39:        char    *file_name;
                     40:        char    *file_wd;
                     41:        char    *file_path;
                     42:        char    *file_rpath;
                     43:
                     44:        int      fd;
                     45:        int      repo_fd;
                     46:        int      file_type;
                     47:        int      file_status;
                     48:        int      file_flags;
1.44      niallo     49:        int      in_attic;
1.34      joris      50:
1.37      joris      51:        RCSNUM          *file_rcsrev;
1.34      joris      52:        RCSFILE         *file_rcs;
                     53:        struct cvs_ent  *file_ent;
                     54: };
                     55:
                     56: #define FILE_UNKNOWN           0
                     57: #define FILE_ADDED             1
                     58: #define FILE_REMOVED           2
                     59: #define FILE_MODIFIED          3
                     60: #define FILE_UPTODATE          4
                     61: #define FILE_LOST              5
                     62: #define FILE_CHECKOUT          6
                     63: #define FILE_MERGE             7
                     64: #define FILE_PATCH             8
                     65: #define FILE_REMOVE_ENTRY      9
                     66: #define FILE_CONFLICT          10
                     67: #define FILE_UNLINK            11
                     68:
                     69: #define DIR_CREATE             12
1.36      joris      70:
                     71: #define FILE_SKIP              100
1.34      joris      72:
                     73: struct cvs_filelist {
                     74:        char    *file_path;
1.45    ! joris      75:        int     check_dir_tag;
1.34      joris      76:        TAILQ_ENTRY(cvs_filelist) flist;
                     77: };
                     78:
                     79: TAILQ_HEAD(cvs_flisthead, cvs_filelist);
                     80:
                     81: struct cvs_recursion;
                     82:
                     83: #define CVS_DIR                1
                     84: #define CVS_FILE       2
                     85:
                     86: TAILQ_HEAD(cvs_flist, cvs_file);
                     87:
                     88: struct cvs_ignpat {
                     89:        char                            ip_pat[MAXNAMLEN];
                     90:        int                             ip_flags;
                     91:        TAILQ_ENTRY(cvs_ignpat)         ip_list;
                     92: };
                     93:
                     94: TAILQ_HEAD(ignore_head, cvs_ignpat);
                     95:
                     96: void   cvs_file_init(void);
                     97: void   cvs_file_ignore(const char *, struct ignore_head *);
1.41      joris      98: void   cvs_file_classify(struct cvs_file *, const char *);
1.34      joris      99: void   cvs_file_free(struct cvs_file *);
                    100: void   cvs_file_run(int, char **, struct cvs_recursion *);
                    101: void   cvs_file_walklist(struct cvs_flisthead *, struct cvs_recursion *);
                    102: void   cvs_file_walkdir(struct cvs_file *, struct cvs_recursion *);
                    103: void   cvs_file_freelist(struct cvs_flisthead *);
1.45    ! joris     104: struct cvs_filelist *cvs_file_get(const char *, int, struct cvs_flisthead *);
1.1       jfb       105:
1.34      joris     106: int    cvs_file_chkign(const char *);
1.39      xsa       107: int    cvs_file_cmpname(const char *, const char *);
1.38      xsa       108: int    cvs_file_cmp(const char *, const char *);
1.40      xsa       109: int    cvs_file_copy(const char *, const char *);
1.1       jfb       110:
1.34      joris     111: struct cvs_file *cvs_file_get_cf(const char *, const char *, int, int);
1.1       jfb       112:
1.26      xsa       113: #endif /* FILE_H */