Gimp/tools/pdbgen/pdb/buffer.pdb
Michael Natterer d6fd55064b added "gboolean non_empty" to require the string being non-empty. Changed
2007-04-25  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpparamspecs.[ch] (struct GimpParamSpecString)
	(gimp_param_spec_string): added "gboolean non_empty" to require
	the string being non-empty. Changed validation accordingly.
	Also fixed validation for static strings (we were happily
	freeing and modifying them before).

	* app/xcf/xcf.c: filenames should be non-empty.
	* app/pdb/gimp-pdb-compat.c: compat strings shouldn't.

	* tools/pdbgen/app.pl: add support for $arg->{non_empty} and
	changed generation of calls to gimp_param_spec_string().

	* tools/pdbgen/pdb/brush_select.pdb
	* tools/pdbgen/pdb/edit.pdb
	* tools/pdbgen/pdb/vectors.pdb
	* tools/pdbgen/pdb/plug_in.pdb
	* tools/pdbgen/pdb/gradient.pdb
	* tools/pdbgen/pdb/palette_select.pdb
	* tools/pdbgen/pdb/palette.pdb
	* tools/pdbgen/pdb/fileops.pdb
	* tools/pdbgen/pdb/progress.pdb
	* tools/pdbgen/pdb/procedural_db.pdb
	* tools/pdbgen/pdb/font_select.pdb
	* tools/pdbgen/pdb/pattern_select.pdb
	* tools/pdbgen/pdb/unit.pdb
	* tools/pdbgen/pdb/brush.pdb
	* tools/pdbgen/pdb/gradient_select.pdb
	* tools/pdbgen/pdb/buffer.pdb: require non-empty strings for data
	object names, procedure names, unit strings, PDB data identifiers
	and buffer names. Removed some manual strlen() checks, all other
	places just got better error reporting for free (proper validation
	error instead of unspecific execution error).

	* app/pdb/*_cmds.c: regenerated.


svn path=/trunk/; revision=22329
2007-04-25 14:23:05 +00:00

253 lines
6.1 KiB
Text

# GIMP - The GNU Image Manipulation Program
# Copyright (C) 1995 Spencer Kimball and Peter Mattis
# This program 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 program 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 program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
# "Perlized" from C source by Manish Singh <yosh@gimp.org>
sub buffers_get_list {
$blurb = 'Retrieve a complete listing of the available buffers.';
$help = <<'HELP';
This procedure returns a complete listing of available named buffers.
HELP
&mitch_pdb_misc('2005', '2.4');
@inargs = (
{ name => 'filter', type => 'string', null_ok => 1,
desc => 'An optional regular expression used to filter the list' }
);
@outargs = (
{ name => 'buffer_list', type => 'stringarray',
desc => 'The list of buffer names',
array => { name => 'num_buffers',
desc => 'The number of buffers' } }
);
%invoke = (
code => <<'CODE'
{
buffer_list = gimp_container_get_filtered_name_array (gimp->named_buffers,
filter, &num_buffers);
}
CODE
);
}
sub buffer_rename {
$blurb = 'Renames a named buffer.';
$help = 'This procedure renames a named buffer.';
&mitch_pdb_misc('2005', '2.4');
@inargs = (
{ name => 'buffer_name', type => 'string',
desc => 'The buffer name' },
{ name => 'new_name', type => 'string', non_empty => 1,
desc => 'The buffer\'s new name' }
);
@outargs = (
{ name => 'real_name', type => 'string',
desc => 'The real name given to the buffer' }
);
%invoke = (
code => <<'CODE'
{
GimpBuffer *buffer = (GimpBuffer *)
gimp_container_get_child_by_name (gimp->named_buffers, buffer_name);
if (buffer)
{
gimp_object_set_name (GIMP_OBJECT (buffer), new_name);
real_name = g_strdup (gimp_object_get_name (GIMP_OBJECT (buffer)));
}
else
success = FALSE;
}
CODE
);
}
sub buffer_delete {
$blurb = 'Deletes a named buffer.';
$help = 'This procedure deletes a named buffer.';
$author = $copyright = 'David Gowers <neota@softhome.net>';
$date = '2005';
$since = '2.4';
@inargs = (
{ name => 'buffer_name', type => 'string',
desc => 'The buffer name' }
);
%invoke = (
code => <<'CODE'
{
GimpBuffer *buffer = (GimpBuffer *)
gimp_container_get_child_by_name (gimp->named_buffers, buffer_name);
if (buffer)
success = gimp_container_remove (gimp->named_buffers, GIMP_OBJECT (buffer));
else
success = FALSE;
}
CODE
);
}
sub buffer_get_width {
$blurb = "Retrieves the specified buffer's width.";
$help = "This procedure retrieves the specified named buffer's width.";
&mitch_pdb_misc('2005', '2.4');
@inargs = (
{ name => 'buffer_name', type => 'string',
desc => 'The buffer name' }
);
@outargs = (
{ name => 'width', type => 'int32',
desc => "The buffer width" }
);
%invoke = (
code => <<'CODE'
{
GimpBuffer *buffer = (GimpBuffer *)
gimp_container_get_child_by_name (gimp->named_buffers, buffer_name);
if (buffer)
width = gimp_buffer_get_width (buffer);
else
success = FALSE;
}
CODE
);
}
sub buffer_get_height {
$blurb = "Retrieves the specified buffer's height.";
$help = "This procedure retrieves the specified named buffer's height.";
&mitch_pdb_misc('2005', '2.4');
@inargs = (
{ name => 'buffer_name', type => 'string',
desc => 'The buffer name' }
);
@outargs = (
{ name => 'height', type => 'int32',
desc => "The buffer height" }
);
%invoke = (
code => <<'CODE'
{
GimpBuffer *buffer = (GimpBuffer *)
gimp_container_get_child_by_name (gimp->named_buffers, buffer_name);
if (buffer)
height = gimp_buffer_get_height (buffer);
else
success = FALSE;
}
CODE
);
}
sub buffer_get_bytes {
$blurb = "Retrieves the specified buffer's bytes.";
$help = "This procedure retrieves the specified named buffer's bytes.";
&mitch_pdb_misc('2005', '2.4');
@inargs = (
{ name => 'buffer_name', type => 'string',
desc => 'The buffer name' }
);
@outargs = (
{ name => 'bytes', type => 'int32',
desc => "The buffer bpp" }
);
%invoke = (
code => <<'CODE'
{
GimpBuffer *buffer = (GimpBuffer *)
gimp_container_get_child_by_name (gimp->named_buffers, buffer_name);
if (buffer)
bytes = gimp_buffer_get_bytes (buffer);
else
success = FALSE;
}
CODE
);
}
sub buffer_get_image_type {
$blurb = "Retrieves the specified buffer's image type.";
$help = "This procedure retrieves the specified named buffer's image type.";
&mitch_pdb_misc('2005', '2.4');
@inargs = (
{ name => 'buffer_name', type => 'string',
desc => 'The buffer name' }
);
@outargs = (
{ name => 'image_type', type => 'enum GimpImageBaseType',
desc => "The buffer image type" }
);
%invoke = (
code => <<'CODE'
{
GimpBuffer *buffer = (GimpBuffer *)
gimp_container_get_child_by_name (gimp->named_buffers, buffer_name);
if (buffer)
image_type = gimp_buffer_get_image_type (buffer);
else
success = FALSE;
}
CODE
);
}
@headers = qw(<string.h> "core/gimp.h" "core/gimpbuffer.h"
"core/gimpcontainer.h" "core/gimpcontainer-filter.h"
"gimp-intl.h");
@procs = qw(buffers_get_list
buffer_rename buffer_delete
buffer_get_width buffer_get_height
buffer_get_bytes buffer_get_image_type);
%exports = (app => [@procs], lib => [@procs]);
$desc = 'Buffer procedures';
1;