~ubuntu-branches/ubuntu/lucid/man-db/lucid-updates

« back to all changes in this revision

Viewing changes to gnulib/lib/lstat.c

  • Committer: Bazaar Package Importer
  • Author(s): Colin Watson
  • Date: 2009-08-26 11:38:46 UTC
  • mfrom: (1.1.9 upstream) (5.2.5 squeeze)
  • Revision ID: james.westby@ubuntu.com-20090826113846-2702k94p5epik9ht
Tags: 2.5.6-1
* New upstream release:
  - Implement 'man -K', which was the last major remaining missing feature
    when comparing man-db with the man package (closes: #135926, LP:
    #390575).
  - Note that the exact rendering of (e.g.) italic text may vary depending
    on the output device (closes: #516808).
  - Don't create unnecessary database directories (closes: #472919).
  - Explicitly state that -P/$PAGER/$MANPAGER identifies a single command
    with no pipes (closes: #363250).
  - Make whatis/apropos only display any given manual page, or pointers to
    it, once (LP: #27113).
  - Map CP1251 encoding to LESSCHARSET=windows, per less(1) (closes:
    #539690).
  - Loop through semicolon-separated coding tags in the first line of
    manual pages, and convert Emacs coding tags to ones that libiconv
    understands (closes: #496604).
  - Convert text to UTF-8 and then (if necessary) to the target encoding.
    This allows us to distinguish between "text not in input encoding" and
    "characters not representable in output encoding" (closes: #514963).
  - Replace database entries if the mtime of the new data is newer than
    that of the old data, even if the new data represents a symlink rather
    than a regular file (closes: #490582).
  - Increase limit on NAME sections from 2048 bytes to 8192, since some
    pages exceeding the previous limit have been observed in the wild
    (closes: #489907).
  - Cope with some more cases of database corruption (closes: #187750).
  - By default, man will now try to interpret pairs of manual page names
    given on the command line as equivalent to a single manual page name
    containing a hyphen (e.g. 'man foo bar' => foo-bar(1)). This supports
    the common pattern of programs that implement a number of subcommands,
    allowing them to provide manual pages for each that can be accessed
    using similar syntax as would be used to invoke the subcommands
    themselves.
* Upgrade to debhelper v7.
* Reverse the direction of the man and mandb symlinks, and migrate any
  statoverrides referring to the old locations in /usr/lib/man-db/.
* Run cron jobs at idle I/O priority if dpkg 1.15.0 or newer is installed
  (closes: #448400).
* Policy version 3.8.2: no changes required.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
/* Work around a bug of lstat on some systems
2
2
 
3
 
   Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free
4
 
   Software Foundation, Inc.
 
3
   Copyright (C) 1997-1999, 2000-2006, 2008 Free Software Foundation, Inc.
5
4
 
6
5
   This program is free software: you can redistribute it and/or modify
7
6
   it under the terms of the GNU General Public License as published by
20
19
 
21
20
#include <config.h>
22
21
 
23
 
/* The specification of these functions is in sys_stat.h.  But we cannot
24
 
   include this include file here, because on some systems, a
25
 
   "#define lstat lstat64" is being used, and sys_stat.h deletes this
26
 
   definition.  */
27
 
 
 
22
/* Get the original definition of open.  It might be defined as a macro.  */
 
23
#define __need_system_sys_stat_h
28
24
#include <sys/types.h>
29
25
#include <sys/stat.h>
 
26
#undef __need_system_sys_stat_h
 
27
 
 
28
static inline int
 
29
orig_lstat (const char *filename, struct stat *buf)
 
30
{
 
31
  return lstat (filename, buf);
 
32
}
 
33
 
 
34
/* Specification.  */
 
35
#include <sys/stat.h>
 
36
 
30
37
#include <string.h>
31
38
#include <errno.h>
32
39
 
47
54
rpl_lstat (const char *file, struct stat *sbuf)
48
55
{
49
56
  size_t len;
50
 
  int lstat_result = lstat (file, sbuf);
 
57
  int lstat_result = orig_lstat (file, sbuf);
51
58
 
52
59
  if (lstat_result != 0 || !S_ISLNK (sbuf->st_mode))
53
60
    return lstat_result;