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
253 lines
6.1 KiB
Text
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;
|