view admin/alloc-colors.c @ 62907:88db2adda4b7

Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-339 Merge from gnus--rel--5.10 Patches applied: * gnus--rel--5.10 (patch 76) - Update from CVS 2005-05-30 Reiner Steib <Reiner.Steib@gmx.de> * lisp/gnus/gnus-agent.el (gnus-agent-regenerate-group) (gnus-agent-fetch-articles): Replace `string-to-int' by `string-to-number'. * lisp/gnus/gnus-art.el (gnus-button-fetch-group): Ditto. * lisp/gnus/gnus-cache.el (gnus-cache-generate-active) (gnus-cache-articles-in-group): Ditto. * lisp/gnus/gnus-group.el (gnus-group-set-current-level) (gnus-group-insert-group-line): Ditto. * lisp/gnus/gnus-score.el (gnus-score-set-expunge-below) (gnus-score-set-mark-below, gnus-summary-score-effect) (gnus-summary-score-entry): Ditto. * lisp/gnus/gnus-soup.el (gnus-soup-send-packet, gnus-soup-parse-areas) (gnus-soup-pack): Ditto. * lisp/gnus/gnus-spec.el (gnus-xmas-format): Ditto. * lisp/gnus/gnus-start.el (gnus-newsrc-to-gnus-format): Ditto. * lisp/gnus/gnus-sum.el (gnus-create-xref-hashtb): Ditto. * lisp/gnus/gnus-uu.el (gnus-uu-expand-numbers): Ditto. * lisp/gnus/nnbabyl.el (nnbabyl-article-group-number): Ditto. * lisp/gnus/nndb.el (nndb-get-remote-expire-response): Ditto. * lisp/gnus/nndiary.el (nndiary-parse-schedule-value) (nndiary-string-to-number, nndiary-request-replace-article) (nndiary-request-article): Ditto. * lisp/gnus/nndoc.el (nndoc-rnews-body-end, nndoc-mbox-body-end): Ditto. * lisp/gnus/nndraft.el (nndraft-articles, nndraft-request-group): Ditto. * lisp/gnus/nneething.el (nneething-make-head): Ditto. * lisp/gnus/nnfolder.el (nnfolder-request-article) (nnfolder-retrieve-headers): Ditto. * lisp/gnus/nnheader.el (nnheader-file-to-number): Ditto. * lisp/gnus/nnkiboze.el (nnkiboze-request-article): Ditto. * lisp/gnus/nnmail.el (nnmail-process-unix-mail-format) (nnmail-process-babyl-mail-format): Ditto. * lisp/gnus/nnmbox.el (nnmbox-read-mbox, nnmbox-article-group-number): Ditto. * lisp/gnus/nnmh.el (nnmh-update-gnus-unreads, nnmh-active-number) (nnmh-request-create-group, nnmh-request-list-1) (nnmh-request-group, nnmh-request-article): Ditto. * lisp/gnus/nnml.el (nnml-request-replace-article, nnml-request-article): Ditto. * lisp/gnus/nnrss.el (nnrss-find-rss-via-syndic8): Ditto. * lisp/gnus/nnsoup.el (nnsoup-make-active): Ditto. * lisp/gnus/nnspool.el (nnspool-find-id, nnspool-request-group): Ditto. * lisp/gnus/nntp.el (nntp-find-group-and-number) (nntp-retrieve-headers-with-xover): Ditto. * lisp/gnus/pgg-gpg.el (pgg-gpg-snarf-keys-region): Ditto. * lisp/gnus/pgg-parse.el (pgg-read-body, pgg-read-bytes) (pgg-format-key-identifier): Ditto. * lisp/gnus/pop3.el (pop3-last, pop3-stat): Ditto. * lisp/gnus/qp.el (quoted-printable-decode-region): Ditto. * lisp/gnus/spam-report.el (spam-report-url-ping-mm-url): Use format instead of concat.
author Miles Bader <miles@gnu.org>
date Mon, 30 May 2005 17:13:58 +0000
parents 695cf19ef79e
children c53a9463c31a 375f2633d815
line wrap: on
line source

/* Allocate X colors.  Used for testing with dense colormaps.
   Copyright (C) 2001 Free Software Foundation, Inc.

This file is part of GNU Emacs.

GNU Emacs 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, or (at your option)
any later version.

GNU Emacs 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 GNU Emacs; see the file COPYING.  If not, write to
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.  */

#include <X11/Xlib.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
#include <unistd.h>

void
fatal (const char *fmt, ...)
{
  va_list ap;

  va_start (ap, fmt);
  vfprintf (stderr, fmt, ap);
  fputc ('\n', stderr);
  va_end (ap);
  exit (1);
}

void
usage (const char *progname)
{
  fprintf (stderr, "Usage %s options\n", progname);
  fprintf (stderr, "-n NCOLORS  allcoate NCOLORS colors\n");
  exit (1);
}

int
main (int argc, char **argv)
{
  Display *dpy;
  int opt, ncolors = 0, i;
  XColor *allocated;
  int nallocated;
  XColor color;
  Colormap cmap;

  while ((opt = getopt (argc, argv, "n:")) != EOF)
    switch (opt)
      {
      case 'n':
	ncolors = atoi (optarg);
	break;

      case '?':
	usage (argv[0]);
      }

  if (ncolors == 0)
    usage (argv[0]);

  dpy = XOpenDisplay ("");
  if (dpy == NULL)
    fatal ("Cannot open display");
  cmap = DefaultColormap (dpy, 0);

  allocated = malloc (ncolors * sizeof *allocated);
  nallocated = 0;
  memset (&color, 0, sizeof color);

  while (nallocated < ncolors
	 && color.red < 65536)
    {
      allocated[nallocated] = color;
      if (XAllocColor (dpy, cmap, &allocated[nallocated]))
	{
	  for (i = 0; i < nallocated; ++i)
	    if (allocated[i].red == allocated[nallocated].red
		&& allocated[i].green == allocated[nallocated].green
		&& allocated[i].blue == allocated[nallocated].blue)
	      break;

	  if (i == nallocated)
	    {
	      printf ("allocated %d/%d/%d\n",
		      allocated[nallocated].red,
		      allocated[nallocated].green,
		      allocated[nallocated].blue);
	      ++nallocated;
	    }
	}

      ++color.red;
      ++color.green;
      ++color.blue;
    }

  fprintf (stderr, "Waiting.  Press ^C to stop.\n");
  while (1)
    sleep (10);

  XCloseDisplay (dpy);
  return 0;
}

/* arch-tag: f1be90ac-5b70-43c2-835e-5a6432a25145
   (do not change this comment) */