nautilus/check-config-h.pl

90 lines
2.3 KiB
Perl
Raw Normal View History

Wrote a script to check for files that forget to include <config.h> and * check-config-h.pl: Wrote a script to check for files that forget to include <config.h> and optionally edit to add it. * src/nautilus-zoom-control.c (set_zoom_level): Fixed the bug number in a FIXME. * docs/style-guide.html: Added one more tip. * check-FIXME.pl: Use my newfound Perl knowledge to spruce it up. * components/help/converters/gnome-db2html2/gdb3html.c: * components/help/converters/gnome-db2html2/sect-elements.c: * components/help/converters/gnome-db2html2/sect-preparse.c: * components/help/converters/gnome-db2html2/toc-elements.c: * components/help/converters/gnome-info2html2/html.c: * components/help/converters/gnome-info2html2/main.c: * components/help/converters/gnome-info2html2/parse.c: * components/help/converters/gnome-info2html2/utils.c: * components/help/converters/gnome-man2html2/gnome-man2html.c: * components/help/hyperbola-filefmt.c: * components/help/hyperbola-nav-index.c: * components/help/hyperbola-nav-search.c: * components/help/hyperbola-nav-tree.c: * components/html/glibwww-callbacks.c: * components/html/glibwww-init.c: * components/html/glibwww-trans.c: * components/html/gnome-dialogs.c: * components/html/ntl-web-browser.c: * components/services/install/eazel-install-metadata.c: * components/services/install/eazel-install-protocols.c: * components/services/install/eazel-install-rpm-glue.c: * components/services/install/eazel-install-tests.c: * components/services/install/eazel-install-utils.c: * components/services/install/eazel-install-xml-package-list.c: * components/services/install/eazel-install.c: * components/services/install/helixcode-install-utils.c: * components/services/startup/eazel-register.c: * components/websearch/ntl-web-search.c: * helper-utilities/authenticate/nautilus-authenticate-fork.c: * helper-utilities/authenticate/nautilus-authenticate-pam.c: * helper-utilities/authenticate/nautilus-authenticate.c: * libnautilus-extensions/nautilus-bonobo-extensions.c: * libnautilus-extensions/nautilus-file-utilities.c: * libnautilus-extensions/nautilus-glib-extensions.c: * libnautilus-extensions/nautilus-link.c: * libnautilus-extensions/nautilus-mime-type.c: * libnautilus-extensions/nautilus-undo-transaction.c: * librsvg/art_rgba.c: * librsvg/art_rgba_svp.c: * librsvg/rsvg-bpath-util.c: * librsvg/rsvg-path.c: * librsvg/rsvg.c: * librsvg/test-rsvg.c: * nautilus-widgets/nautilus-caption-table.c: * nautilus-widgets/nautilus-password-dialog.c: * nautilus-widgets/nautilus-preferences-box.c: * nautilus-widgets/nautilus-preferences-dialog.c: * nautilus-widgets/nautilus-preferences-group.c: * nautilus-widgets/nautilus-preferences-item.c: * nautilus-widgets/nautilus-preferences-pane.c: * nautilus-widgets/nautilus-radio-button-group.c: * nautilus-widgets/test-nautilus-widgets.c: * nautilus-widgets/test-preferences.c: * src/file-manager/desktop-item.c: * src/file-manager/desktop-layout.c: * src/file-manager/desktop-menu.c: * src/nautilus-bookmarks-window.c: * src/nautilus-gconf.c: * src/nautilus-window-menus.c: * src/nautilus-window-toolbars.c: * src/nautilus-zoom-control.c * src/nautilus-zoomable-frame-svr.c: * src/ntl-app.c: * src/ntl-content-view.c: * src/ntl-main.c: * src/ntl-meta-view.c: * src/ntl-miniicon.c: * src/ntl-uri-map.c: * src/ntl-view-frame-svr.c: * src/ntl-view.c: * src/ntl-window-state.c: Added includes of <config.h>.
2000-05-02 00:50:32 +00:00
#!/usr/bin/perl -w
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
# Nautilus
#
# Copyright (C) 2000 Eazel, Inc.
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 2 of the
# License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this library; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
# Author: Darin Adler <darin@eazel.com>,
#
# check-config-h.pl: Search for .c files where someone forgot to
# put an include for <config.h> in.
use diagnostics;
use strict;
use Getopt::Long;
my $edit = 0;
&GetOptions("edit" => \$edit);
# default to all the files starting from the current directory
if (!@ARGV)
{
@ARGV = `find . -name '*.c' -print`;
Wrote a script to check for files that forget to include <config.h> and * check-config-h.pl: Wrote a script to check for files that forget to include <config.h> and optionally edit to add it. * src/nautilus-zoom-control.c (set_zoom_level): Fixed the bug number in a FIXME. * docs/style-guide.html: Added one more tip. * check-FIXME.pl: Use my newfound Perl knowledge to spruce it up. * components/help/converters/gnome-db2html2/gdb3html.c: * components/help/converters/gnome-db2html2/sect-elements.c: * components/help/converters/gnome-db2html2/sect-preparse.c: * components/help/converters/gnome-db2html2/toc-elements.c: * components/help/converters/gnome-info2html2/html.c: * components/help/converters/gnome-info2html2/main.c: * components/help/converters/gnome-info2html2/parse.c: * components/help/converters/gnome-info2html2/utils.c: * components/help/converters/gnome-man2html2/gnome-man2html.c: * components/help/hyperbola-filefmt.c: * components/help/hyperbola-nav-index.c: * components/help/hyperbola-nav-search.c: * components/help/hyperbola-nav-tree.c: * components/html/glibwww-callbacks.c: * components/html/glibwww-init.c: * components/html/glibwww-trans.c: * components/html/gnome-dialogs.c: * components/html/ntl-web-browser.c: * components/services/install/eazel-install-metadata.c: * components/services/install/eazel-install-protocols.c: * components/services/install/eazel-install-rpm-glue.c: * components/services/install/eazel-install-tests.c: * components/services/install/eazel-install-utils.c: * components/services/install/eazel-install-xml-package-list.c: * components/services/install/eazel-install.c: * components/services/install/helixcode-install-utils.c: * components/services/startup/eazel-register.c: * components/websearch/ntl-web-search.c: * helper-utilities/authenticate/nautilus-authenticate-fork.c: * helper-utilities/authenticate/nautilus-authenticate-pam.c: * helper-utilities/authenticate/nautilus-authenticate.c: * libnautilus-extensions/nautilus-bonobo-extensions.c: * libnautilus-extensions/nautilus-file-utilities.c: * libnautilus-extensions/nautilus-glib-extensions.c: * libnautilus-extensions/nautilus-link.c: * libnautilus-extensions/nautilus-mime-type.c: * libnautilus-extensions/nautilus-undo-transaction.c: * librsvg/art_rgba.c: * librsvg/art_rgba_svp.c: * librsvg/rsvg-bpath-util.c: * librsvg/rsvg-path.c: * librsvg/rsvg.c: * librsvg/test-rsvg.c: * nautilus-widgets/nautilus-caption-table.c: * nautilus-widgets/nautilus-password-dialog.c: * nautilus-widgets/nautilus-preferences-box.c: * nautilus-widgets/nautilus-preferences-dialog.c: * nautilus-widgets/nautilus-preferences-group.c: * nautilus-widgets/nautilus-preferences-item.c: * nautilus-widgets/nautilus-preferences-pane.c: * nautilus-widgets/nautilus-radio-button-group.c: * nautilus-widgets/test-nautilus-widgets.c: * nautilus-widgets/test-preferences.c: * src/file-manager/desktop-item.c: * src/file-manager/desktop-layout.c: * src/file-manager/desktop-menu.c: * src/nautilus-bookmarks-window.c: * src/nautilus-gconf.c: * src/nautilus-window-menus.c: * src/nautilus-window-toolbars.c: * src/nautilus-zoom-control.c * src/nautilus-zoomable-frame-svr.c: * src/ntl-app.c: * src/ntl-content-view.c: * src/ntl-main.c: * src/ntl-meta-view.c: * src/ntl-miniicon.c: * src/ntl-uri-map.c: * src/ntl-view-frame-svr.c: * src/ntl-view.c: * src/ntl-window-state.c: Added includes of <config.h>.
2000-05-02 00:50:32 +00:00
}
# locate all of the target lines
my @missing_files;
FILE: foreach my $file (@ARGV)
{
chomp $file;
open FILE, $file or die "can't open $file";
while (<FILE>)
{
next FILE if /generated by/;
next FILE if /^\s*\#\s*include\s*[<\"]config\.h[>\"]/;
}
close FILE;
push @missing_files, $file;
}
if (@missing_files)
{
Added -print as suggested by Morten Welinder <terra@diku.dk>. Added -print * check-FIXME.pl: Added -print as suggested by Morten Welinder <terra@diku.dk>. * check-config-h.pl: Added -print and fixed broken message as suggested by Morten Welinder <terra@diku.dk>. * libnautilus-extensions/nautilus-icon-factory.h: * libnautilus-extensions/nautilus-icon-factory.c (suffix_is_scalable): Simpler implementation. (get_themed_icon_file_path): Look for size-specific version of even .svg files. Although not so useful, it's not ridiculous to do so. (nautilus_icon_factory_get_icon_for_file): Fixed the twisted logic to be less twisted. Also changed the ".svg" extension check to use the common function suffix_is_scalable. (load_specific_image): Untwist logic here too, and note in the FIXME that both the .svg library and gdk-pixbuf are limiting us to file: URIs, although the gdk-pixbuf case is fixable without redoing the library by just using our utility functions. (load_image_for_scaling): Update for new size request structure which contains maximum sizes as well as nominal ones. (scale_image_and_rectangle), (revise_scale_factors_if_too_big), (scale_image_down_if_too_big): New helper functions for scaling. (load_image_scale_if_necessary): Take the maximum size into account. (get_image_from_cache): Use new size request structure and take the maximum size into account. (nautilus_icon_factory_get_pixbuf_for_icon): Changed to take maximum size parameters and pass them in to the underlying function. (icon_cache_key_hash): Include the maximum size in the hash. (icon_cache_key_equal): Check the maximum size too. (nautilus_icon_factory_get_pixbuf_for_file): Pass new max. size parameters to the nautilus_icon_factory_get_pixbuf_for_icon function. * libnautilus-extensions/nautilus-icon-container.c (nautilus_icon_container_update_icon): Pass new max. size parameters to the nautilus_icon_factory_get_pixbuf_for_icon function. * src/file-manager/fm-list-view.c (fm_list_view_get_emblem_pixbufs_for_file): Pass new max. size parameters to the nautilus_icon_factory_get_pixbuf_for_icon function.
2000-05-02 20:04:26 +00:00
print "\n", scalar(@missing_files), " C files don't have <config.h> includes:\n\n";
Wrote a script to check for files that forget to include <config.h> and * check-config-h.pl: Wrote a script to check for files that forget to include <config.h> and optionally edit to add it. * src/nautilus-zoom-control.c (set_zoom_level): Fixed the bug number in a FIXME. * docs/style-guide.html: Added one more tip. * check-FIXME.pl: Use my newfound Perl knowledge to spruce it up. * components/help/converters/gnome-db2html2/gdb3html.c: * components/help/converters/gnome-db2html2/sect-elements.c: * components/help/converters/gnome-db2html2/sect-preparse.c: * components/help/converters/gnome-db2html2/toc-elements.c: * components/help/converters/gnome-info2html2/html.c: * components/help/converters/gnome-info2html2/main.c: * components/help/converters/gnome-info2html2/parse.c: * components/help/converters/gnome-info2html2/utils.c: * components/help/converters/gnome-man2html2/gnome-man2html.c: * components/help/hyperbola-filefmt.c: * components/help/hyperbola-nav-index.c: * components/help/hyperbola-nav-search.c: * components/help/hyperbola-nav-tree.c: * components/html/glibwww-callbacks.c: * components/html/glibwww-init.c: * components/html/glibwww-trans.c: * components/html/gnome-dialogs.c: * components/html/ntl-web-browser.c: * components/services/install/eazel-install-metadata.c: * components/services/install/eazel-install-protocols.c: * components/services/install/eazel-install-rpm-glue.c: * components/services/install/eazel-install-tests.c: * components/services/install/eazel-install-utils.c: * components/services/install/eazel-install-xml-package-list.c: * components/services/install/eazel-install.c: * components/services/install/helixcode-install-utils.c: * components/services/startup/eazel-register.c: * components/websearch/ntl-web-search.c: * helper-utilities/authenticate/nautilus-authenticate-fork.c: * helper-utilities/authenticate/nautilus-authenticate-pam.c: * helper-utilities/authenticate/nautilus-authenticate.c: * libnautilus-extensions/nautilus-bonobo-extensions.c: * libnautilus-extensions/nautilus-file-utilities.c: * libnautilus-extensions/nautilus-glib-extensions.c: * libnautilus-extensions/nautilus-link.c: * libnautilus-extensions/nautilus-mime-type.c: * libnautilus-extensions/nautilus-undo-transaction.c: * librsvg/art_rgba.c: * librsvg/art_rgba_svp.c: * librsvg/rsvg-bpath-util.c: * librsvg/rsvg-path.c: * librsvg/rsvg.c: * librsvg/test-rsvg.c: * nautilus-widgets/nautilus-caption-table.c: * nautilus-widgets/nautilus-password-dialog.c: * nautilus-widgets/nautilus-preferences-box.c: * nautilus-widgets/nautilus-preferences-dialog.c: * nautilus-widgets/nautilus-preferences-group.c: * nautilus-widgets/nautilus-preferences-item.c: * nautilus-widgets/nautilus-preferences-pane.c: * nautilus-widgets/nautilus-radio-button-group.c: * nautilus-widgets/test-nautilus-widgets.c: * nautilus-widgets/test-preferences.c: * src/file-manager/desktop-item.c: * src/file-manager/desktop-layout.c: * src/file-manager/desktop-menu.c: * src/nautilus-bookmarks-window.c: * src/nautilus-gconf.c: * src/nautilus-window-menus.c: * src/nautilus-window-toolbars.c: * src/nautilus-zoom-control.c * src/nautilus-zoomable-frame-svr.c: * src/ntl-app.c: * src/ntl-content-view.c: * src/ntl-main.c: * src/ntl-meta-view.c: * src/ntl-miniicon.c: * src/ntl-uri-map.c: * src/ntl-view-frame-svr.c: * src/ntl-view.c: * src/ntl-window-state.c: Added includes of <config.h>.
2000-05-02 00:50:32 +00:00
if (!$edit)
{
print join("\n", @missing_files), "\n";
}
else
{
foreach my $file (@missing_files)
{
open OLD, $file or die "can't open $file";
open NEW, "> $file.new" or die "can't open $file.new";
while (<OLD>)
{
if (/^\s*\#\s*include\s/)
{
print NEW "$&<config.h>\n";
print NEW;
last;
}
print NEW;
}
print NEW <OLD>;
close NEW;
close OLD;
rename "$file.new", $file or die "can't rename $file";
print "edited $file\n";
}
}
}