~vorlon/ubuntu/natty/sudo/keep_home_by_default

« back to all changes in this revision

Viewing changes to list.h

  • Committer: Bazaar Package Importer
  • Author(s): Martin Pitt
  • Date: 2009-05-11 18:07:03 UTC
  • mfrom: (1.1.6 squeeze)
  • Revision ID: james.westby@ubuntu.com-20090511180703-vl2t8cem14g6r61c
Tags: 1.7.0-1ubuntu1
* Merge from debian unstable, remaining changes:
 - debian/rules: Disable lecture, enable tty_tickets by default. (Ubuntu
   specific)
 - Add debian/sudo_root.8: Explanation of root handling through sudo.
   Install it in debian/rules. (Ubuntu specific)
 - sudo.c: If the user successfully authenticated and he is in the 'admin'
   group, then create a stamp ~/.sudo_as_admin_successful. Our default bash
   profile checks for this and displays a short intro about sudo if the
   flag is not present. (Ubuntu specific)
 - env.c: Add "http_proxy" to initial_keepenv_table, so that it is kept
   for "sudo apt-get ...". (Ubuntu specific EBW hack, should disappear at
   some point)
 - debian/{rules,postinst,sudo-ldap.postinst}: Disable init script
   installation. Debian reintroduced it because /var/run tmpfs is not the
   default there, but has been on Ubuntu for ages.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * Copyright (c) 2007 Todd C. Miller <Todd.Miller@courtesan.com>
 
3
 *
 
4
 * Permission to use, copy, modify, and distribute this software for any
 
5
 * purpose with or without fee is hereby granted, provided that the above
 
6
 * copyright notice and this permission notice appear in all copies.
 
7
 *
 
8
 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 
9
 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 
10
 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 
11
 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 
12
 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 
13
 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 
14
 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 
15
 *
 
16
 * $Sudo: list.h,v 1.3 2007/09/11 19:42:48 millert Exp $
 
17
 */
 
18
 
 
19
#ifndef _SUDO_LIST_H
 
20
#define _SUDO_LIST_H
 
21
 
 
22
/*
 
23
 * Convenience macro for declaring a list head.
 
24
 */
 
25
#ifdef __STDC__
 
26
#define TQ_DECLARE(n)                                   \
 
27
struct n##_list {                                       \
 
28
    struct n *first;                                    \
 
29
    struct n *last;                                     \
 
30
};
 
31
#else
 
32
#define TQ_DECLARE(n)                                   \
 
33
struct n/**/_list {                                     \
 
34
    struct n *first;                                    \
 
35
    struct n *last;                                     \
 
36
};
 
37
#endif
 
38
 
 
39
/*
 
40
 * Foreach loops: forward and reverse
 
41
 */
 
42
#undef tq_foreach_fwd
 
43
#define tq_foreach_fwd(h, v)                            \
 
44
    for ((v) = (h)->first; (v) != NULL; (v) = (v)->next)
 
45
 
 
46
#undef tq_foreach_rev
 
47
#define tq_foreach_rev(h, v)                            \
 
48
    for ((v) = (h)->last; (v) != NULL; (v) = (v)->prev)
 
49
 
 
50
/*
 
51
 * Init a list head.
 
52
 */
 
53
#undef tq_init
 
54
#define tq_init(h) do {                                 \
 
55
    (h)->first = NULL;                                  \
 
56
    (h)->last = NULL;                                   \
 
57
} while (0)
 
58
 
 
59
/*
 
60
 * Simple macros to avoid exposing first/last and prev/next.
 
61
 */
 
62
#undef tq_empty
 
63
#define tq_empty(h)     ((h)->first == NULL)
 
64
 
 
65
#undef tq_first
 
66
#define tq_first(h)     ((h)->first)
 
67
 
 
68
#undef tq_last
 
69
#define tq_last(h)      ((h)->last)
 
70
 
 
71
#undef list_next
 
72
#define list_next(e)    ((e)->next)
 
73
 
 
74
#undef list_prev
 
75
#define list_prev(e)    ((e)->prev)
 
76
 
 
77
/*
 
78
 * Prototypes for list.c
 
79
 */
 
80
void *tq_pop            __P((void *));
 
81
void tq_append          __P((void *, void *));
 
82
void list_append        __P((void *, void *));
 
83
void list2tq            __P((void *, void *));
 
84
 
 
85
#endif /* _SUDO_LIST_H */