Codebase list eiciel / 42b84b0
Update upstream source from tag 'upstream/0.9.13' Update to upstream version '0.9.13' with Debian dir f2dc9424c7a659b8554e6a441e548f805c030b23 Michael Biebl 3 years ago
112 changed file(s) with 10856 addition(s) and 7891 deletion(s). Raw diff Collapse all Expand all
+169
-171
INSTALL less more
00 Installation Instructions
11 *************************
22
3 Copyright (C) 1994-1996, 1999-2002, 2004-2013 Free Software Foundation,
4 Inc.
3 Copyright (C) 1994-1996, 1999-2002, 2004-2016 Free Software
4 Foundation, Inc.
55
66 Copying and distribution of this file, with or without modification,
77 are permitted in any medium without royalty provided the copyright
1111 Basic Installation
1212 ==================
1313
14 Briefly, the shell command `./configure && make && make install'
14 Briefly, the shell command './configure && make && make install'
1515 should configure, build, and install this package. The following
16 more-detailed instructions are generic; see the `README' file for
16 more-detailed instructions are generic; see the 'README' file for
1717 instructions specific to this package. Some packages provide this
18 `INSTALL' file but do not implement all of the features documented
18 'INSTALL' file but do not implement all of the features documented
1919 below. The lack of an optional feature in a given package is not
2020 necessarily a bug. More recommendations for GNU packages can be found
2121 in *note Makefile Conventions: (standards)Makefile Conventions.
2222
23 The `configure' shell script attempts to guess correct values for
23 The 'configure' shell script attempts to guess correct values for
2424 various system-dependent variables used during compilation. It uses
25 those values to create a `Makefile' in each directory of the package.
26 It may also create one or more `.h' files containing system-dependent
27 definitions. Finally, it creates a shell script `config.status' that
25 those values to create a 'Makefile' in each directory of the package.
26 It may also create one or more '.h' files containing system-dependent
27 definitions. Finally, it creates a shell script 'config.status' that
2828 you can run in the future to recreate the current configuration, and a
29 file `config.log' containing compiler output (useful mainly for
30 debugging `configure').
31
32 It can also use an optional file (typically called `config.cache'
33 and enabled with `--cache-file=config.cache' or simply `-C') that saves
34 the results of its tests to speed up reconfiguring. Caching is
35 disabled by default to prevent problems with accidental use of stale
36 cache files.
29 file 'config.log' containing compiler output (useful mainly for
30 debugging 'configure').
31
32 It can also use an optional file (typically called 'config.cache' and
33 enabled with '--cache-file=config.cache' or simply '-C') that saves the
34 results of its tests to speed up reconfiguring. Caching is disabled by
35 default to prevent problems with accidental use of stale cache files.
3736
3837 If you need to do unusual things to compile the package, please try
39 to figure out how `configure' could check whether to do them, and mail
40 diffs or instructions to the address given in the `README' so they can
38 to figure out how 'configure' could check whether to do them, and mail
39 diffs or instructions to the address given in the 'README' so they can
4140 be considered for the next release. If you are using the cache, and at
42 some point `config.cache' contains results you don't want to keep, you
41 some point 'config.cache' contains results you don't want to keep, you
4342 may remove or edit it.
4443
45 The file `configure.ac' (or `configure.in') is used to create
46 `configure' by a program called `autoconf'. You need `configure.ac' if
47 you want to change it or regenerate `configure' using a newer version
48 of `autoconf'.
44 The file 'configure.ac' (or 'configure.in') is used to create
45 'configure' by a program called 'autoconf'. You need 'configure.ac' if
46 you want to change it or regenerate 'configure' using a newer version of
47 'autoconf'.
4948
5049 The simplest way to compile this package is:
5150
52 1. `cd' to the directory containing the package's source code and type
53 `./configure' to configure the package for your system.
54
55 Running `configure' might take a while. While running, it prints
51 1. 'cd' to the directory containing the package's source code and type
52 './configure' to configure the package for your system.
53
54 Running 'configure' might take a while. While running, it prints
5655 some messages telling which features it is checking for.
5756
58 2. Type `make' to compile the package.
59
60 3. Optionally, type `make check' to run any self-tests that come with
57 2. Type 'make' to compile the package.
58
59 3. Optionally, type 'make check' to run any self-tests that come with
6160 the package, generally using the just-built uninstalled binaries.
6261
63 4. Type `make install' to install the programs and any data files and
62 4. Type 'make install' to install the programs and any data files and
6463 documentation. When installing into a prefix owned by root, it is
6564 recommended that the package be configured and built as a regular
66 user, and only the `make install' phase executed with root
65 user, and only the 'make install' phase executed with root
6766 privileges.
6867
69 5. Optionally, type `make installcheck' to repeat any self-tests, but
68 5. Optionally, type 'make installcheck' to repeat any self-tests, but
7069 this time using the binaries in their final installed location.
7170 This target does not install anything. Running this target as a
72 regular user, particularly if the prior `make install' required
71 regular user, particularly if the prior 'make install' required
7372 root privileges, verifies that the installation completed
7473 correctly.
7574
7675 6. You can remove the program binaries and object files from the
77 source code directory by typing `make clean'. To also remove the
78 files that `configure' created (so you can compile the package for
79 a different kind of computer), type `make distclean'. There is
80 also a `make maintainer-clean' target, but that is intended mainly
76 source code directory by typing 'make clean'. To also remove the
77 files that 'configure' created (so you can compile the package for
78 a different kind of computer), type 'make distclean'. There is
79 also a 'make maintainer-clean' target, but that is intended mainly
8180 for the package's developers. If you use it, you may have to get
8281 all sorts of other programs in order to regenerate files that came
8382 with the distribution.
8483
85 7. Often, you can also type `make uninstall' to remove the installed
84 7. Often, you can also type 'make uninstall' to remove the installed
8685 files again. In practice, not all packages have tested that
8786 uninstallation works correctly, even though it is required by the
8887 GNU Coding Standards.
8988
90 8. Some packages, particularly those that use Automake, provide `make
89 8. Some packages, particularly those that use Automake, provide 'make
9190 distcheck', which can by used by developers to test that all other
92 targets like `make install' and `make uninstall' work correctly.
91 targets like 'make install' and 'make uninstall' work correctly.
9392 This target is generally not run by end users.
9493
9594 Compilers and Options
9695 =====================
9796
9897 Some systems require unusual options for compilation or linking that
99 the `configure' script does not know about. Run `./configure --help'
98 the 'configure' script does not know about. Run './configure --help'
10099 for details on some of the pertinent environment variables.
101100
102 You can give `configure' initial values for configuration parameters
103 by setting variables in the command line or in the environment. Here
104 is an example:
101 You can give 'configure' initial values for configuration parameters
102 by setting variables in the command line or in the environment. Here is
103 an example:
105104
106105 ./configure CC=c99 CFLAGS=-g LIBS=-lposix
107106
112111
113112 You can compile the package for more than one kind of computer at the
114113 same time, by placing the object files for each architecture in their
115 own directory. To do this, you can use GNU `make'. `cd' to the
114 own directory. To do this, you can use GNU 'make'. 'cd' to the
116115 directory where you want the object files and executables to go and run
117 the `configure' script. `configure' automatically checks for the
118 source code in the directory that `configure' is in and in `..'. This
119 is known as a "VPATH" build.
120
121 With a non-GNU `make', it is safer to compile the package for one
116 the 'configure' script. 'configure' automatically checks for the source
117 code in the directory that 'configure' is in and in '..'. This is known
118 as a "VPATH" build.
119
120 With a non-GNU 'make', it is safer to compile the package for one
122121 architecture at a time in the source code directory. After you have
123 installed the package for one architecture, use `make distclean' before
122 installed the package for one architecture, use 'make distclean' before
124123 reconfiguring for another architecture.
125124
126125 On MacOS X 10.5 and later systems, you can create libraries and
127126 executables that work on multiple system types--known as "fat" or
128 "universal" binaries--by specifying multiple `-arch' options to the
129 compiler but only a single `-arch' option to the preprocessor. Like
127 "universal" binaries--by specifying multiple '-arch' options to the
128 compiler but only a single '-arch' option to the preprocessor. Like
130129 this:
131130
132131 ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
135134
136135 This is not guaranteed to produce working output in all cases, you
137136 may have to build one architecture at a time and combine the results
138 using the `lipo' tool if you have problems.
137 using the 'lipo' tool if you have problems.
139138
140139 Installation Names
141140 ==================
142141
143 By default, `make install' installs the package's commands under
144 `/usr/local/bin', include files under `/usr/local/include', etc. You
145 can specify an installation prefix other than `/usr/local' by giving
146 `configure' the option `--prefix=PREFIX', where PREFIX must be an
142 By default, 'make install' installs the package's commands under
143 '/usr/local/bin', include files under '/usr/local/include', etc. You
144 can specify an installation prefix other than '/usr/local' by giving
145 'configure' the option '--prefix=PREFIX', where PREFIX must be an
147146 absolute file name.
148147
149148 You can specify separate installation prefixes for
150149 architecture-specific files and architecture-independent files. If you
151 pass the option `--exec-prefix=PREFIX' to `configure', the package uses
150 pass the option '--exec-prefix=PREFIX' to 'configure', the package uses
152151 PREFIX as the prefix for installing programs and libraries.
153152 Documentation and other data files still use the regular prefix.
154153
155154 In addition, if you use an unusual directory layout you can give
156 options like `--bindir=DIR' to specify different values for particular
157 kinds of files. Run `configure --help' for a list of the directories
158 you can set and what kinds of files go in them. In general, the
159 default for these options is expressed in terms of `${prefix}', so that
160 specifying just `--prefix' will affect all of the other directory
155 options like '--bindir=DIR' to specify different values for particular
156 kinds of files. Run 'configure --help' for a list of the directories
157 you can set and what kinds of files go in them. In general, the default
158 for these options is expressed in terms of '${prefix}', so that
159 specifying just '--prefix' will affect all of the other directory
161160 specifications that were not explicitly provided.
162161
163162 The most portable way to affect installation locations is to pass the
164 correct locations to `configure'; however, many packages provide one or
163 correct locations to 'configure'; however, many packages provide one or
165164 both of the following shortcuts of passing variable assignments to the
166 `make install' command line to change installation locations without
165 'make install' command line to change installation locations without
167166 having to reconfigure or recompile.
168167
169168 The first method involves providing an override variable for each
170 affected directory. For example, `make install
169 affected directory. For example, 'make install
171170 prefix=/alternate/directory' will choose an alternate location for all
172171 directory configuration variables that were expressed in terms of
173 `${prefix}'. Any directories that were specified during `configure',
174 but not in terms of `${prefix}', must each be overridden at install
175 time for the entire installation to be relocated. The approach of
176 makefile variable overrides for each directory variable is required by
177 the GNU Coding Standards, and ideally causes no recompilation.
178 However, some platforms have known limitations with the semantics of
179 shared libraries that end up requiring recompilation when using this
180 method, particularly noticeable in packages that use GNU Libtool.
181
182 The second method involves providing the `DESTDIR' variable. For
183 example, `make install DESTDIR=/alternate/directory' will prepend
184 `/alternate/directory' before all installation names. The approach of
185 `DESTDIR' overrides is not required by the GNU Coding Standards, and
172 '${prefix}'. Any directories that were specified during 'configure',
173 but not in terms of '${prefix}', must each be overridden at install time
174 for the entire installation to be relocated. The approach of makefile
175 variable overrides for each directory variable is required by the GNU
176 Coding Standards, and ideally causes no recompilation. However, some
177 platforms have known limitations with the semantics of shared libraries
178 that end up requiring recompilation when using this method, particularly
179 noticeable in packages that use GNU Libtool.
180
181 The second method involves providing the 'DESTDIR' variable. For
182 example, 'make install DESTDIR=/alternate/directory' will prepend
183 '/alternate/directory' before all installation names. The approach of
184 'DESTDIR' overrides is not required by the GNU Coding Standards, and
186185 does not work on platforms that have drive letters. On the other hand,
187186 it does better at avoiding recompilation issues, and works well even
188 when some directory options were not specified in terms of `${prefix}'
189 at `configure' time.
187 when some directory options were not specified in terms of '${prefix}'
188 at 'configure' time.
190189
191190 Optional Features
192191 =================
193192
194193 If the package supports it, you can cause programs to be installed
195 with an extra prefix or suffix on their names by giving `configure' the
196 option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
197
198 Some packages pay attention to `--enable-FEATURE' options to
199 `configure', where FEATURE indicates an optional part of the package.
200 They may also pay attention to `--with-PACKAGE' options, where PACKAGE
201 is something like `gnu-as' or `x' (for the X Window System). The
202 `README' should mention any `--enable-' and `--with-' options that the
194 with an extra prefix or suffix on their names by giving 'configure' the
195 option '--program-prefix=PREFIX' or '--program-suffix=SUFFIX'.
196
197 Some packages pay attention to '--enable-FEATURE' options to
198 'configure', where FEATURE indicates an optional part of the package.
199 They may also pay attention to '--with-PACKAGE' options, where PACKAGE
200 is something like 'gnu-as' or 'x' (for the X Window System). The
201 'README' should mention any '--enable-' and '--with-' options that the
203202 package recognizes.
204203
205 For packages that use the X Window System, `configure' can usually
204 For packages that use the X Window System, 'configure' can usually
206205 find the X include and library files automatically, but if it doesn't,
207 you can use the `configure' options `--x-includes=DIR' and
208 `--x-libraries=DIR' to specify their locations.
206 you can use the 'configure' options '--x-includes=DIR' and
207 '--x-libraries=DIR' to specify their locations.
209208
210209 Some packages offer the ability to configure how verbose the
211 execution of `make' will be. For these packages, running `./configure
210 execution of 'make' will be. For these packages, running './configure
212211 --enable-silent-rules' sets the default to minimal output, which can be
213 overridden with `make V=1'; while running `./configure
212 overridden with 'make V=1'; while running './configure
214213 --disable-silent-rules' sets the default to verbose, which can be
215 overridden with `make V=0'.
214 overridden with 'make V=0'.
216215
217216 Particular systems
218217 ==================
219218
220 On HP-UX, the default C compiler is not ANSI C compatible. If GNU
221 CC is not installed, it is recommended to use the following options in
219 On HP-UX, the default C compiler is not ANSI C compatible. If GNU CC
220 is not installed, it is recommended to use the following options in
222221 order to use an ANSI C compiler:
223222
224223 ./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
225224
226225 and if that doesn't work, install pre-built binaries of GCC for HP-UX.
227226
228 HP-UX `make' updates targets which have the same time stamps as
229 their prerequisites, which makes it generally unusable when shipped
230 generated files such as `configure' are involved. Use GNU `make'
231 instead.
227 HP-UX 'make' updates targets which have the same time stamps as their
228 prerequisites, which makes it generally unusable when shipped generated
229 files such as 'configure' are involved. Use GNU 'make' instead.
232230
233231 On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
234 parse its `<wchar.h>' header file. The option `-nodtk' can be used as
235 a workaround. If GNU CC is not installed, it is therefore recommended
236 to try
232 parse its '<wchar.h>' header file. The option '-nodtk' can be used as a
233 workaround. If GNU CC is not installed, it is therefore recommended to
234 try
237235
238236 ./configure CC="cc"
239237
241239
242240 ./configure CC="cc -nodtk"
243241
244 On Solaris, don't put `/usr/ucb' early in your `PATH'. This
242 On Solaris, don't put '/usr/ucb' early in your 'PATH'. This
245243 directory contains several dysfunctional programs; working variants of
246 these programs are available in `/usr/bin'. So, if you need `/usr/ucb'
247 in your `PATH', put it _after_ `/usr/bin'.
248
249 On Haiku, software installed for all users goes in `/boot/common',
250 not `/usr/local'. It is recommended to use the following options:
244 these programs are available in '/usr/bin'. So, if you need '/usr/ucb'
245 in your 'PATH', put it _after_ '/usr/bin'.
246
247 On Haiku, software installed for all users goes in '/boot/common',
248 not '/usr/local'. It is recommended to use the following options:
251249
252250 ./configure --prefix=/boot/common
253251
254252 Specifying the System Type
255253 ==========================
256254
257 There may be some features `configure' cannot figure out
255 There may be some features 'configure' cannot figure out
258256 automatically, but needs to determine by the type of machine the package
259257 will run on. Usually, assuming the package is built to be run on the
260 _same_ architectures, `configure' can figure that out, but if it prints
258 _same_ architectures, 'configure' can figure that out, but if it prints
261259 a message saying it cannot guess the machine type, give it the
262 `--build=TYPE' option. TYPE can either be a short name for the system
263 type, such as `sun4', or a canonical name which has the form:
260 '--build=TYPE' option. TYPE can either be a short name for the system
261 type, such as 'sun4', or a canonical name which has the form:
264262
265263 CPU-COMPANY-SYSTEM
266264
269267 OS
270268 KERNEL-OS
271269
272 See the file `config.sub' for the possible values of each field. If
273 `config.sub' isn't included in this package, then this package doesn't
270 See the file 'config.sub' for the possible values of each field. If
271 'config.sub' isn't included in this package, then this package doesn't
274272 need to know the machine type.
275273
276274 If you are _building_ compiler tools for cross-compiling, you should
277 use the option `--target=TYPE' to select the type of system they will
275 use the option '--target=TYPE' to select the type of system they will
278276 produce code for.
279277
280278 If you want to _use_ a cross compiler, that generates code for a
281279 platform different from the build platform, you should specify the
282280 "host" platform (i.e., that on which the generated programs will
283 eventually be run) with `--host=TYPE'.
281 eventually be run) with '--host=TYPE'.
284282
285283 Sharing Defaults
286284 ================
287285
288 If you want to set default values for `configure' scripts to share,
289 you can create a site shell script called `config.site' that gives
290 default values for variables like `CC', `cache_file', and `prefix'.
291 `configure' looks for `PREFIX/share/config.site' if it exists, then
292 `PREFIX/etc/config.site' if it exists. Or, you can set the
293 `CONFIG_SITE' environment variable to the location of the site script.
294 A warning: not all `configure' scripts look for a site script.
286 If you want to set default values for 'configure' scripts to share,
287 you can create a site shell script called 'config.site' that gives
288 default values for variables like 'CC', 'cache_file', and 'prefix'.
289 'configure' looks for 'PREFIX/share/config.site' if it exists, then
290 'PREFIX/etc/config.site' if it exists. Or, you can set the
291 'CONFIG_SITE' environment variable to the location of the site script.
292 A warning: not all 'configure' scripts look for a site script.
295293
296294 Defining Variables
297295 ==================
298296
299297 Variables not defined in a site shell script can be set in the
300 environment passed to `configure'. However, some packages may run
298 environment passed to 'configure'. However, some packages may run
301299 configure again during the build, and the customized values of these
302300 variables may be lost. In order to avoid this problem, you should set
303 them in the `configure' command line, using `VAR=value'. For example:
301 them in the 'configure' command line, using 'VAR=value'. For example:
304302
305303 ./configure CC=/usr/local2/bin/gcc
306304
307 causes the specified `gcc' to be used as the C compiler (unless it is
305 causes the specified 'gcc' to be used as the C compiler (unless it is
308306 overridden in the site shell script).
309307
310 Unfortunately, this technique does not work for `CONFIG_SHELL' due to
311 an Autoconf limitation. Until the limitation is lifted, you can use
312 this workaround:
308 Unfortunately, this technique does not work for 'CONFIG_SHELL' due to an
309 Autoconf limitation. Until the limitation is lifted, you can use this
310 workaround:
313311
314312 CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash
315313
316 `configure' Invocation
314 'configure' Invocation
317315 ======================
318316
319 `configure' recognizes the following options to control how it
317 'configure' recognizes the following options to control how it
320318 operates.
321319
322 `--help'
323 `-h'
324 Print a summary of all of the options to `configure', and exit.
325
326 `--help=short'
327 `--help=recursive'
320 '--help'
321 '-h'
322 Print a summary of all of the options to 'configure', and exit.
323
324 '--help=short'
325 '--help=recursive'
328326 Print a summary of the options unique to this package's
329 `configure', and exit. The `short' variant lists options used
330 only in the top level, while the `recursive' variant lists options
331 also present in any nested packages.
332
333 `--version'
334 `-V'
335 Print the version of Autoconf used to generate the `configure'
327 'configure', and exit. The 'short' variant lists options used only
328 in the top level, while the 'recursive' variant lists options also
329 present in any nested packages.
330
331 '--version'
332 '-V'
333 Print the version of Autoconf used to generate the 'configure'
336334 script, and exit.
337335
338 `--cache-file=FILE'
336 '--cache-file=FILE'
339337 Enable the cache: use and save the results of the tests in FILE,
340 traditionally `config.cache'. FILE defaults to `/dev/null' to
338 traditionally 'config.cache'. FILE defaults to '/dev/null' to
341339 disable caching.
342340
343 `--config-cache'
344 `-C'
345 Alias for `--cache-file=config.cache'.
346
347 `--quiet'
348 `--silent'
349 `-q'
341 '--config-cache'
342 '-C'
343 Alias for '--cache-file=config.cache'.
344
345 '--quiet'
346 '--silent'
347 '-q'
350348 Do not print messages saying which checks are being made. To
351 suppress all normal output, redirect it to `/dev/null' (any error
349 suppress all normal output, redirect it to '/dev/null' (any error
352350 messages will still be shown).
353351
354 `--srcdir=DIR'
352 '--srcdir=DIR'
355353 Look for the package's source code in directory DIR. Usually
356 `configure' can determine that directory automatically.
357
358 `--prefix=DIR'
359 Use DIR as the installation prefix. *note Installation Names::
360 for more details, including other options available for fine-tuning
361 the installation locations.
362
363 `--no-create'
364 `-n'
354 'configure' can determine that directory automatically.
355
356 '--prefix=DIR'
357 Use DIR as the installation prefix. *note Installation Names:: for
358 more details, including other options available for fine-tuning the
359 installation locations.
360
361 '--no-create'
362 '-n'
365363 Run the configure checks, but stop before creating any output
366364 files.
367365
368 `configure' also accepts some other, not widely useful, options. Run
369 `configure --help' for more details.
366 'configure' also accepts some other, not widely useful, options. Run
367 'configure --help' for more details.
0 # Makefile.in generated by automake 1.15 from Makefile.am.
0 # Makefile.in generated by automake 1.16.1 from Makefile.am.
11 # @configure_input@
22
3 # Copyright (C) 1994-2014 Free Software Foundation, Inc.
3 # Copyright (C) 1994-2018 Free Software Foundation, Inc.
44
55 # This Makefile.in is free software; the Free Software Foundation
66 # gives unlimited permission to copy and/or distribute it,
142142 $(RECURSIVE_CLEAN_TARGETS) \
143143 $(am__extra_recursive_targets)
144144 AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
145 cscope distdir dist dist-all distcheck
145 cscope distdir distdir-am dist dist-all distcheck
146146 am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \
147147 $(LISP)config.hpp.in
148148 # Read a list of newline-separated strings from the standard input,
392392 echo ' $(SHELL) ./config.status'; \
393393 $(SHELL) ./config.status;; \
394394 *) \
395 echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
396 cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
395 echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \
396 cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \
397397 esac;
398398
399399 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
535535 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
536536 -rm -f cscope.out cscope.in.out cscope.po.out cscope.files
537537
538 distdir: $(DISTFILES)
538 distdir: $(BUILT_SOURCES)
539 $(MAKE) $(AM_MAKEFLAGS) distdir-am
540
541 distdir-am: $(DISTFILES)
539542 $(am__remove_distdir)
540543 test -d "$(distdir)" || mkdir "$(distdir)"
541544 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
603606 ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
604607 || chmod -R a+r "$(distdir)"
605608 dist-gzip: distdir
606 tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
609 tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz
607610 $(am__post_remove_distdir)
608611 dist-bzip2: distdir
609612 tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
628631 @echo WARNING: "Support for shar distribution archives is" \
629632 "deprecated." >&2
630633 @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
631 shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
634 shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz
632635 $(am__post_remove_distdir)
633636
634637 dist-zip: distdir
646649 distcheck: dist
647650 case '$(DIST_ARCHIVES)' in \
648651 *.tar.gz*) \
649 GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
652 eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\
650653 *.tar.bz2*) \
651654 bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
652655 *.tar.lz*) \
656659 *.tar.Z*) \
657660 uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
658661 *.shar.gz*) \
659 GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
662 eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\
660663 *.zip*) \
661664 unzip $(distdir).zip ;;\
662665 esac
0 # generated automatically by aclocal 1.15 -*- Autoconf -*-
1
2 # Copyright (C) 1996-2014 Free Software Foundation, Inc.
0 # generated automatically by aclocal 1.16.1 -*- Autoconf -*-
1
2 # Copyright (C) 1996-2018 Free Software Foundation, Inc.
33
44 # This file is free software; the Free Software Foundation
55 # gives unlimited permission to copy and/or distribute it,
295295 AS_VAR_IF([$1], [""], [$5], [$4])dnl
296296 ])dnl PKG_CHECK_VAR
297297
298 # Copyright (C) 2002-2014 Free Software Foundation, Inc.
298 # Copyright (C) 2002-2018 Free Software Foundation, Inc.
299299 #
300300 # This file is free software; the Free Software Foundation
301301 # gives unlimited permission to copy and/or distribute it,
307307 # generated from the m4 files accompanying Automake X.Y.
308308 # (This private macro should not be called outside this file.)
309309 AC_DEFUN([AM_AUTOMAKE_VERSION],
310 [am__api_version='1.15'
310 [am__api_version='1.16'
311311 dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
312312 dnl require some minimum version. Point them to the right macro.
313 m4_if([$1], [1.15], [],
313 m4_if([$1], [1.16.1], [],
314314 [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
315315 ])
316316
326326 # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
327327 # This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
328328 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
329 [AM_AUTOMAKE_VERSION([1.15])dnl
329 [AM_AUTOMAKE_VERSION([1.16.1])dnl
330330 m4_ifndef([AC_AUTOCONF_VERSION],
331331 [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
332332 _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
333333
334334 # AM_AUX_DIR_EXPAND -*- Autoconf -*-
335335
336 # Copyright (C) 2001-2014 Free Software Foundation, Inc.
336 # Copyright (C) 2001-2018 Free Software Foundation, Inc.
337337 #
338338 # This file is free software; the Free Software Foundation
339339 # gives unlimited permission to copy and/or distribute it,
385385
386386 # AM_COND_IF -*- Autoconf -*-
387387
388 # Copyright (C) 2008-2014 Free Software Foundation, Inc.
388 # Copyright (C) 2008-2018 Free Software Foundation, Inc.
389389 #
390390 # This file is free software; the Free Software Foundation
391391 # gives unlimited permission to copy and/or distribute it,
422422
423423 # AM_CONDITIONAL -*- Autoconf -*-
424424
425 # Copyright (C) 1997-2014 Free Software Foundation, Inc.
425 # Copyright (C) 1997-2018 Free Software Foundation, Inc.
426426 #
427427 # This file is free software; the Free Software Foundation
428428 # gives unlimited permission to copy and/or distribute it,
453453 Usually this means the macro was only invoked conditionally.]])
454454 fi])])
455455
456 # Copyright (C) 1999-2014 Free Software Foundation, Inc.
456 # Copyright (C) 1999-2018 Free Software Foundation, Inc.
457457 #
458458 # This file is free software; the Free Software Foundation
459459 # gives unlimited permission to copy and/or distribute it,
644644
645645 # Generate code to set up dependency tracking. -*- Autoconf -*-
646646
647 # Copyright (C) 1999-2014 Free Software Foundation, Inc.
648 #
649 # This file is free software; the Free Software Foundation
650 # gives unlimited permission to copy and/or distribute it,
651 # with or without modifications, as long as this notice is preserved.
652
647 # Copyright (C) 1999-2018 Free Software Foundation, Inc.
648 #
649 # This file is free software; the Free Software Foundation
650 # gives unlimited permission to copy and/or distribute it,
651 # with or without modifications, as long as this notice is preserved.
653652
654653 # _AM_OUTPUT_DEPENDENCY_COMMANDS
655654 # ------------------------------
658657 # Older Autoconf quotes --file arguments for eval, but not when files
659658 # are listed without --file. Let's play safe and only enable the eval
660659 # if we detect the quoting.
661 case $CONFIG_FILES in
662 *\'*) eval set x "$CONFIG_FILES" ;;
663 *) set x $CONFIG_FILES ;;
664 esac
660 # TODO: see whether this extra hack can be removed once we start
661 # requiring Autoconf 2.70 or later.
662 AS_CASE([$CONFIG_FILES],
663 [*\'*], [eval set x "$CONFIG_FILES"],
664 [*], [set x $CONFIG_FILES])
665665 shift
666 for mf
666 # Used to flag and report bootstrapping failures.
667 am_rc=0
668 for am_mf
667669 do
668670 # Strip MF so we end up with the name of the file.
669 mf=`echo "$mf" | sed -e 's/:.*$//'`
670 # Check whether this is an Automake generated Makefile or not.
671 # We used to match only the files named 'Makefile.in', but
672 # some people rename them; so instead we look at the file content.
673 # Grep'ing the first line is not enough: some people post-process
674 # each Makefile.in and add a new line on top of each file to say so.
675 # Grep'ing the whole file is not good either: AIX grep has a line
671 am_mf=`AS_ECHO(["$am_mf"]) | sed -e 's/:.*$//'`
672 # Check whether this is an Automake generated Makefile which includes
673 # dependency-tracking related rules and includes.
674 # Grep'ing the whole file directly is not great: AIX grep has a line
676675 # limit of 2048, but all sed's we know have understand at least 4000.
677 if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
678 dirpart=`AS_DIRNAME("$mf")`
679 else
680 continue
681 fi
682 # Extract the definition of DEPDIR, am__include, and am__quote
683 # from the Makefile without running 'make'.
684 DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
685 test -z "$DEPDIR" && continue
686 am__include=`sed -n 's/^am__include = //p' < "$mf"`
687 test -z "$am__include" && continue
688 am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
689 # Find all dependency output files, they are included files with
690 # $(DEPDIR) in their names. We invoke sed twice because it is the
691 # simplest approach to changing $(DEPDIR) to its actual value in the
692 # expansion.
693 for file in `sed -n "
694 s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
695 sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
696 # Make sure the directory exists.
697 test -f "$dirpart/$file" && continue
698 fdir=`AS_DIRNAME(["$file"])`
699 AS_MKDIR_P([$dirpart/$fdir])
700 # echo "creating $dirpart/$file"
701 echo '# dummy' > "$dirpart/$file"
702 done
676 sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \
677 || continue
678 am_dirpart=`AS_DIRNAME(["$am_mf"])`
679 am_filepart=`AS_BASENAME(["$am_mf"])`
680 AM_RUN_LOG([cd "$am_dirpart" \
681 && sed -e '/# am--include-marker/d' "$am_filepart" \
682 | $MAKE -f - am--depfiles]) || am_rc=$?
703683 done
684 if test $am_rc -ne 0; then
685 AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments
686 for automatic dependency tracking. Try re-running configure with the
687 '--disable-dependency-tracking' option to at least be able to build
688 the package (albeit without support for automatic dependency tracking).])
689 fi
690 AS_UNSET([am_dirpart])
691 AS_UNSET([am_filepart])
692 AS_UNSET([am_mf])
693 AS_UNSET([am_rc])
694 rm -f conftest-deps.mk
704695 }
705696 ])# _AM_OUTPUT_DEPENDENCY_COMMANDS
706697
709700 # -----------------------------
710701 # This macro should only be invoked once -- use via AC_REQUIRE.
711702 #
712 # This code is only required when automatic dependency tracking
713 # is enabled. FIXME. This creates each '.P' file that we will
714 # need in order to bootstrap the dependency handling code.
703 # This code is only required when automatic dependency tracking is enabled.
704 # This creates each '.Po' and '.Plo' makefile fragment that we'll need in
705 # order to bootstrap the dependency handling code.
715706 AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
716707 [AC_CONFIG_COMMANDS([depfiles],
717708 [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
718 [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
719 ])
709 [AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"])])
720710
721711 # Do all the work for Automake. -*- Autoconf -*-
722712
723 # Copyright (C) 1996-2014 Free Software Foundation, Inc.
713 # Copyright (C) 1996-2018 Free Software Foundation, Inc.
724714 #
725715 # This file is free software; the Free Software Foundation
726716 # gives unlimited permission to copy and/or distribute it,
807797 AC_REQUIRE([AC_PROG_MKDIR_P])dnl
808798 # For better backward compatibility. To be removed once Automake 1.9.x
809799 # dies out for good. For more background, see:
810 # <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
811 # <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
800 # <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
801 # <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
812802 AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
813803 # We need awk for the "check" target (and possibly the TAP driver). The
814804 # system "awk" is bad on some platforms.
875865 Aborting the configuration process, to ensure you take notice of the issue.
876866
877867 You can download and install GNU coreutils to get an 'rm' implementation
878 that behaves properly: <http://www.gnu.org/software/coreutils/>.
868 that behaves properly: <https://www.gnu.org/software/coreutils/>.
879869
880870 If you want to complete the configuration process using your problematic
881871 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
917907 done
918908 echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
919909
920 # Copyright (C) 2001-2014 Free Software Foundation, Inc.
910 # Copyright (C) 2001-2018 Free Software Foundation, Inc.
921911 #
922912 # This file is free software; the Free Software Foundation
923913 # gives unlimited permission to copy and/or distribute it,
938928 fi
939929 AC_SUBST([install_sh])])
940930
941 # Copyright (C) 2003-2014 Free Software Foundation, Inc.
931 # Copyright (C) 2003-2018 Free Software Foundation, Inc.
942932 #
943933 # This file is free software; the Free Software Foundation
944934 # gives unlimited permission to copy and/or distribute it,
959949
960950 # Check to see how 'make' treats includes. -*- Autoconf -*-
961951
962 # Copyright (C) 2001-2014 Free Software Foundation, Inc.
952 # Copyright (C) 2001-2018 Free Software Foundation, Inc.
963953 #
964954 # This file is free software; the Free Software Foundation
965955 # gives unlimited permission to copy and/or distribute it,
967957
968958 # AM_MAKE_INCLUDE()
969959 # -----------------
970 # Check to see how make treats includes.
960 # Check whether make has an 'include' directive that can support all
961 # the idioms we need for our automatic dependency tracking code.
971962 AC_DEFUN([AM_MAKE_INCLUDE],
972 [am_make=${MAKE-make}
973 cat > confinc << 'END'
963 [AC_MSG_CHECKING([whether ${MAKE-make} supports the include directive])
964 cat > confinc.mk << 'END'
974965 am__doit:
975 @echo this is the am__doit target
966 @echo this is the am__doit target >confinc.out
976967 .PHONY: am__doit
977968 END
978 # If we don't find an include directive, just comment out the code.
979 AC_MSG_CHECKING([for style of include used by $am_make])
980969 am__include="#"
981970 am__quote=
982 _am_result=none
983 # First try GNU make style include.
984 echo "include confinc" > confmf
985 # Ignore all kinds of additional output from 'make'.
986 case `$am_make -s -f confmf 2> /dev/null` in #(
987 *the\ am__doit\ target*)
988 am__include=include
989 am__quote=
990 _am_result=GNU
991 ;;
992 esac
993 # Now try BSD make style include.
994 if test "$am__include" = "#"; then
995 echo '.include "confinc"' > confmf
996 case `$am_make -s -f confmf 2> /dev/null` in #(
997 *the\ am__doit\ target*)
998 am__include=.include
999 am__quote="\""
1000 _am_result=BSD
1001 ;;
1002 esac
1003 fi
1004 AC_SUBST([am__include])
1005 AC_SUBST([am__quote])
1006 AC_MSG_RESULT([$_am_result])
1007 rm -f confinc confmf
1008 ])
971 # BSD make does it like this.
972 echo '.include "confinc.mk" # ignored' > confmf.BSD
973 # Other make implementations (GNU, Solaris 10, AIX) do it like this.
974 echo 'include confinc.mk # ignored' > confmf.GNU
975 _am_result=no
976 for s in GNU BSD; do
977 AM_RUN_LOG([${MAKE-make} -f confmf.$s && cat confinc.out])
978 AS_CASE([$?:`cat confinc.out 2>/dev/null`],
979 ['0:this is the am__doit target'],
980 [AS_CASE([$s],
981 [BSD], [am__include='.include' am__quote='"'],
982 [am__include='include' am__quote=''])])
983 if test "$am__include" != "#"; then
984 _am_result="yes ($s style)"
985 break
986 fi
987 done
988 rm -f confinc.* confmf.*
989 AC_MSG_RESULT([${_am_result}])
990 AC_SUBST([am__include])])
991 AC_SUBST([am__quote])])
1009992
1010993 # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
1011994
1012 # Copyright (C) 1997-2014 Free Software Foundation, Inc.
995 # Copyright (C) 1997-2018 Free Software Foundation, Inc.
1013996 #
1014997 # This file is free software; the Free Software Foundation
1015998 # gives unlimited permission to copy and/or distribute it,
10481031
10491032 # Helper functions for option handling. -*- Autoconf -*-
10501033
1051 # Copyright (C) 2001-2014 Free Software Foundation, Inc.
1034 # Copyright (C) 2001-2018 Free Software Foundation, Inc.
10521035 #
10531036 # This file is free software; the Free Software Foundation
10541037 # gives unlimited permission to copy and/or distribute it,
10771060 AC_DEFUN([_AM_IF_OPTION],
10781061 [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
10791062
1080 # Copyright (C) 1999-2014 Free Software Foundation, Inc.
1063 # Copyright (C) 1999-2018 Free Software Foundation, Inc.
10811064 #
10821065 # This file is free software; the Free Software Foundation
10831066 # gives unlimited permission to copy and/or distribute it,
11241107 # For backward compatibility.
11251108 AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
11261109
1127 # Copyright (C) 2001-2014 Free Software Foundation, Inc.
1110 # Copyright (C) 2001-2018 Free Software Foundation, Inc.
11281111 #
11291112 # This file is free software; the Free Software Foundation
11301113 # gives unlimited permission to copy and/or distribute it,
11431126
11441127 # Check to make sure that the build environment is sane. -*- Autoconf -*-
11451128
1146 # Copyright (C) 1996-2014 Free Software Foundation, Inc.
1129 # Copyright (C) 1996-2018 Free Software Foundation, Inc.
11471130 #
11481131 # This file is free software; the Free Software Foundation
11491132 # gives unlimited permission to copy and/or distribute it,
12241207 rm -f conftest.file
12251208 ])
12261209
1227 # Copyright (C) 2009-2014 Free Software Foundation, Inc.
1210 # Copyright (C) 2009-2018 Free Software Foundation, Inc.
12281211 #
12291212 # This file is free software; the Free Software Foundation
12301213 # gives unlimited permission to copy and/or distribute it,
12841267 _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
12851268 ])
12861269
1287 # Copyright (C) 2001-2014 Free Software Foundation, Inc.
1270 # Copyright (C) 2001-2018 Free Software Foundation, Inc.
12881271 #
12891272 # This file is free software; the Free Software Foundation
12901273 # gives unlimited permission to copy and/or distribute it,
13121295 INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
13131296 AC_SUBST([INSTALL_STRIP_PROGRAM])])
13141297
1315 # Copyright (C) 2006-2014 Free Software Foundation, Inc.
1298 # Copyright (C) 2006-2018 Free Software Foundation, Inc.
13161299 #
13171300 # This file is free software; the Free Software Foundation
13181301 # gives unlimited permission to copy and/or distribute it,
13311314
13321315 # Check how to create a tarball. -*- Autoconf -*-
13331316
1334 # Copyright (C) 2004-2014 Free Software Foundation, Inc.
1317 # Copyright (C) 2004-2018 Free Software Foundation, Inc.
13351318 #
13361319 # This file is free software; the Free Software Foundation
13371320 # gives unlimited permission to copy and/or distribute it,
00 #! /bin/sh
11 # Wrapper for compilers which do not understand '-c -o'.
22
3 scriptversion=2012-10-14.11; # UTC
4
5 # Copyright (C) 1999-2014 Free Software Foundation, Inc.
3 scriptversion=2018-03-07.03; # UTC
4
5 # Copyright (C) 1999-2018 Free Software Foundation, Inc.
66 # Written by Tom Tromey <tromey@cygnus.com>.
77 #
88 # This program is free software; you can redistribute it and/or modify
1616 # GNU General Public License for more details.
1717 #
1818 # You should have received a copy of the GNU General Public License
19 # along with this program. If not, see <http://www.gnu.org/licenses/>.
19 # along with this program. If not, see <https://www.gnu.org/licenses/>.
2020
2121 # As a special exception to the GNU General Public License, if you
2222 # distribute this file as part of a program that contains a
254254 echo "compile $scriptversion"
255255 exit $?
256256 ;;
257 cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
257 cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \
258 icl | *[/\\]icl | icl.exe | *[/\\]icl.exe )
258259 func_cl_wrapper "$@" # Doesn't return...
259260 ;;
260261 esac
338339 # Local Variables:
339340 # mode: shell-script
340341 # sh-indentation: 2
341 # eval: (add-hook 'write-file-hooks 'time-stamp)
342 # eval: (add-hook 'before-save-hook 'time-stamp)
342343 # time-stamp-start: "scriptversion="
343344 # time-stamp-format: "%:y-%02m-%02d.%02H"
344 # time-stamp-time-zone: "UTC"
345 # time-stamp-time-zone: "UTC0"
345346 # time-stamp-end: "; # UTC"
346347 # End:
00 #! /bin/sh
11 # Attempt to guess a canonical system name.
2 # Copyright 1992-2016 Free Software Foundation, Inc.
3
4 timestamp='2016-10-02'
2 # Copyright 1992-2018 Free Software Foundation, Inc.
3
4 timestamp='2018-02-24'
55
66 # This file is free software; you can redistribute it and/or modify it
77 # under the terms of the GNU General Public License as published by
1414 # General Public License for more details.
1515 #
1616 # You should have received a copy of the GNU General Public License
17 # along with this program; if not, see <http://www.gnu.org/licenses/>.
17 # along with this program; if not, see <https://www.gnu.org/licenses/>.
1818 #
1919 # As a special exception to the GNU General Public License, if you
2020 # distribute this file as part of a program that contains a
2626 # Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
2727 #
2828 # You can get the latest version of this script from:
29 # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
29 # https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
3030 #
3131 # Please send patches to <config-patches@gnu.org>.
3232
3838
3939 Output the configuration name of the system \`$me' is run on.
4040
41 Operation modes:
41 Options:
4242 -h, --help print this help, then exit
4343 -t, --time-stamp print date of last modification, then exit
4444 -v, --version print version number, then exit
4949 GNU config.guess ($timestamp)
5050
5151 Originally written by Per Bothner.
52 Copyright 1992-2016 Free Software Foundation, Inc.
52 Copyright 1992-2018 Free Software Foundation, Inc.
5353
5454 This is free software; see the source for copying conditions. There is NO
5555 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
106106 dummy=$tmp/dummy ;
107107 tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
108108 case $CC_FOR_BUILD,$HOST_CC,$CC in
109 ,,) echo "int x;" > $dummy.c ;
109 ,,) echo "int x;" > "$dummy.c" ;
110110 for c in cc gcc c89 c99 ; do
111 if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
111 if ($c -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then
112112 CC_FOR_BUILD="$c"; break ;
113113 fi ;
114114 done ;
131131 UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
132132 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
133133
134 case "${UNAME_SYSTEM}" in
134 case "$UNAME_SYSTEM" in
135135 Linux|GNU|GNU/*)
136136 # If the system lacks a compiler, then just pick glibc.
137137 # We could probably try harder.
138138 LIBC=gnu
139139
140 eval $set_cc_for_build
141 cat <<-EOF > $dummy.c
140 eval "$set_cc_for_build"
141 cat <<-EOF > "$dummy.c"
142142 #include <features.h>
143143 #if defined(__UCLIBC__)
144144 LIBC=uclibc
148148 LIBC=gnu
149149 #endif
150150 EOF
151 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
151 eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`"
152
153 # If ldd exists, use it to detect musl libc.
154 if command -v ldd >/dev/null && \
155 ldd --version 2>&1 | grep -q ^musl
156 then
157 LIBC=musl
158 fi
152159 ;;
153160 esac
154161
155162 # Note: order is significant - the case branches are not exclusive.
156163
157 case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
164 case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
158165 *:NetBSD:*:*)
159166 # NetBSD (nbsd) targets should (where applicable) match one or
160167 # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
168175 # portion of the name. We always set it to "unknown".
169176 sysctl="sysctl -n hw.machine_arch"
170177 UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \
171 /sbin/$sysctl 2>/dev/null || \
172 /usr/sbin/$sysctl 2>/dev/null || \
178 "/sbin/$sysctl" 2>/dev/null || \
179 "/usr/sbin/$sysctl" 2>/dev/null || \
173180 echo unknown)`
174 case "${UNAME_MACHINE_ARCH}" in
181 case "$UNAME_MACHINE_ARCH" in
175182 armeb) machine=armeb-unknown ;;
176183 arm*) machine=arm-unknown ;;
177184 sh3el) machine=shl-unknown ;;
178185 sh3eb) machine=sh-unknown ;;
179186 sh5el) machine=sh5le-unknown ;;
180187 earmv*)
181 arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
182 endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'`
183 machine=${arch}${endian}-unknown
188 arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
189 endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'`
190 machine="${arch}${endian}"-unknown
184191 ;;
185 *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
192 *) machine="$UNAME_MACHINE_ARCH"-unknown ;;
186193 esac
187194 # The Operating System including object format, if it has switched
188195 # to ELF recently (or will in the future) and ABI.
189 case "${UNAME_MACHINE_ARCH}" in
196 case "$UNAME_MACHINE_ARCH" in
190197 earm*)
191198 os=netbsdelf
192199 ;;
193200 arm*|i386|m68k|ns32k|sh3*|sparc|vax)
194 eval $set_cc_for_build
201 eval "$set_cc_for_build"
195202 if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
196203 | grep -q __ELF__
197204 then
207214 ;;
208215 esac
209216 # Determine ABI tags.
210 case "${UNAME_MACHINE_ARCH}" in
217 case "$UNAME_MACHINE_ARCH" in
211218 earm*)
212219 expr='s/^earmv[0-9]/-eabi/;s/eb$//'
213 abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"`
220 abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"`
214221 ;;
215222 esac
216223 # The OS release
218225 # thus, need a distinct triplet. However, they do not need
219226 # kernel version information, so it can be replaced with a
220227 # suitable tag, in the style of linux-gnu.
221 case "${UNAME_VERSION}" in
228 case "$UNAME_VERSION" in
222229 Debian*)
223230 release='-gnu'
224231 ;;
225232 *)
226 release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2`
233 release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2`
227234 ;;
228235 esac
229236 # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
230237 # contains redundant information, the shorter form:
231238 # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
232 echo "${machine}-${os}${release}${abi}"
239 echo "$machine-${os}${release}${abi}"
233240 exit ;;
234241 *:Bitrig:*:*)
235242 UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
236 echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}
243 echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE"
237244 exit ;;
238245 *:OpenBSD:*:*)
239246 UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
240 echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
247 echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE"
241248 exit ;;
242249 *:LibertyBSD:*:*)
243250 UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
244 echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE}
251 echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE"
252 exit ;;
253 *:MidnightBSD:*:*)
254 echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE"
245255 exit ;;
246256 *:ekkoBSD:*:*)
247 echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
257 echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE"
248258 exit ;;
249259 *:SolidBSD:*:*)
250 echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
260 echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE"
251261 exit ;;
252262 macppc:MirBSD:*:*)
253 echo powerpc-unknown-mirbsd${UNAME_RELEASE}
263 echo powerpc-unknown-mirbsd"$UNAME_RELEASE"
254264 exit ;;
255265 *:MirBSD:*:*)
256 echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
266 echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE"
257267 exit ;;
258268 *:Sortix:*:*)
259 echo ${UNAME_MACHINE}-unknown-sortix
260 exit ;;
269 echo "$UNAME_MACHINE"-unknown-sortix
270 exit ;;
271 *:Redox:*:*)
272 echo "$UNAME_MACHINE"-unknown-redox
273 exit ;;
274 mips:OSF1:*.*)
275 echo mips-dec-osf1
276 exit ;;
261277 alpha:OSF1:*:*)
262278 case $UNAME_RELEASE in
263279 *4.0)
309325 # A Tn.n version is a released field test version.
310326 # A Xn.n version is an unreleased experimental baselevel.
311327 # 1.2 uses "1.2" for uname -r.
312 echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
328 echo "$UNAME_MACHINE"-dec-osf"`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`"
313329 # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
314330 exitcode=$?
315331 trap '' 0
316332 exit $exitcode ;;
317 Alpha\ *:Windows_NT*:*)
318 # How do we know it's Interix rather than the generic POSIX subsystem?
319 # Should we change UNAME_MACHINE based on the output of uname instead
320 # of the specific Alpha model?
321 echo alpha-pc-interix
322 exit ;;
323 21064:Windows_NT:50:3)
324 echo alpha-dec-winnt3.5
325 exit ;;
326333 Amiga*:UNIX_System_V:4.0:*)
327334 echo m68k-unknown-sysv4
328335 exit ;;
329336 *:[Aa]miga[Oo][Ss]:*:*)
330 echo ${UNAME_MACHINE}-unknown-amigaos
337 echo "$UNAME_MACHINE"-unknown-amigaos
331338 exit ;;
332339 *:[Mm]orph[Oo][Ss]:*:*)
333 echo ${UNAME_MACHINE}-unknown-morphos
340 echo "$UNAME_MACHINE"-unknown-morphos
334341 exit ;;
335342 *:OS/390:*:*)
336343 echo i370-ibm-openedition
342349 echo powerpc-ibm-os400
343350 exit ;;
344351 arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
345 echo arm-acorn-riscix${UNAME_RELEASE}
352 echo arm-acorn-riscix"$UNAME_RELEASE"
346353 exit ;;
347354 arm*:riscos:*:*|arm*:RISCOS:*:*)
348355 echo arm-unknown-riscos
369376 sparc) echo sparc-icl-nx7; exit ;;
370377 esac ;;
371378 s390x:SunOS:*:*)
372 echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
379 echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
373380 exit ;;
374381 sun4H:SunOS:5.*:*)
375 echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
382 echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
376383 exit ;;
377384 sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
378 echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
385 echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
379386 exit ;;
380387 i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
381 echo i386-pc-auroraux${UNAME_RELEASE}
388 echo i386-pc-auroraux"$UNAME_RELEASE"
382389 exit ;;
383390 i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
384 eval $set_cc_for_build
391 eval "$set_cc_for_build"
385392 SUN_ARCH=i386
386393 # If there is a compiler, see if it is configured for 64-bit objects.
387394 # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
394401 SUN_ARCH=x86_64
395402 fi
396403 fi
397 echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
404 echo "$SUN_ARCH"-pc-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
398405 exit ;;
399406 sun4*:SunOS:6*:*)
400407 # According to config.sub, this is the proper way to canonicalize
401408 # SunOS6. Hard to guess exactly what SunOS6 will be like, but
402409 # it's likely to be more like Solaris than SunOS4.
403 echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
410 echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
404411 exit ;;
405412 sun4*:SunOS:*:*)
406413 case "`/usr/bin/arch -k`" in
409416 ;;
410417 esac
411418 # Japanese Language versions have a version number like `4.1.3-JL'.
412 echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
419 echo sparc-sun-sunos"`echo "$UNAME_RELEASE"|sed -e 's/-/_/'`"
413420 exit ;;
414421 sun3*:SunOS:*:*)
415 echo m68k-sun-sunos${UNAME_RELEASE}
422 echo m68k-sun-sunos"$UNAME_RELEASE"
416423 exit ;;
417424 sun*:*:4.2BSD:*)
418425 UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
419 test "x${UNAME_RELEASE}" = x && UNAME_RELEASE=3
426 test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3
420427 case "`/bin/arch`" in
421428 sun3)
422 echo m68k-sun-sunos${UNAME_RELEASE}
429 echo m68k-sun-sunos"$UNAME_RELEASE"
423430 ;;
424431 sun4)
425 echo sparc-sun-sunos${UNAME_RELEASE}
432 echo sparc-sun-sunos"$UNAME_RELEASE"
426433 ;;
427434 esac
428435 exit ;;
429436 aushp:SunOS:*:*)
430 echo sparc-auspex-sunos${UNAME_RELEASE}
437 echo sparc-auspex-sunos"$UNAME_RELEASE"
431438 exit ;;
432439 # The situation for MiNT is a little confusing. The machine name
433440 # can be virtually everything (everything which is not
438445 # MiNT. But MiNT is downward compatible to TOS, so this should
439446 # be no problem.
440447 atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
441 echo m68k-atari-mint${UNAME_RELEASE}
448 echo m68k-atari-mint"$UNAME_RELEASE"
442449 exit ;;
443450 atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
444 echo m68k-atari-mint${UNAME_RELEASE}
451 echo m68k-atari-mint"$UNAME_RELEASE"
445452 exit ;;
446453 *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
447 echo m68k-atari-mint${UNAME_RELEASE}
454 echo m68k-atari-mint"$UNAME_RELEASE"
448455 exit ;;
449456 milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
450 echo m68k-milan-mint${UNAME_RELEASE}
457 echo m68k-milan-mint"$UNAME_RELEASE"
451458 exit ;;
452459 hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
453 echo m68k-hades-mint${UNAME_RELEASE}
460 echo m68k-hades-mint"$UNAME_RELEASE"
454461 exit ;;
455462 *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
456 echo m68k-unknown-mint${UNAME_RELEASE}
463 echo m68k-unknown-mint"$UNAME_RELEASE"
457464 exit ;;
458465 m68k:machten:*:*)
459 echo m68k-apple-machten${UNAME_RELEASE}
466 echo m68k-apple-machten"$UNAME_RELEASE"
460467 exit ;;
461468 powerpc:machten:*:*)
462 echo powerpc-apple-machten${UNAME_RELEASE}
469 echo powerpc-apple-machten"$UNAME_RELEASE"
463470 exit ;;
464471 RISC*:Mach:*:*)
465472 echo mips-dec-mach_bsd4.3
466473 exit ;;
467474 RISC*:ULTRIX:*:*)
468 echo mips-dec-ultrix${UNAME_RELEASE}
475 echo mips-dec-ultrix"$UNAME_RELEASE"
469476 exit ;;
470477 VAX*:ULTRIX*:*:*)
471 echo vax-dec-ultrix${UNAME_RELEASE}
478 echo vax-dec-ultrix"$UNAME_RELEASE"
472479 exit ;;
473480 2020:CLIX:*:* | 2430:CLIX:*:*)
474 echo clipper-intergraph-clix${UNAME_RELEASE}
481 echo clipper-intergraph-clix"$UNAME_RELEASE"
475482 exit ;;
476483 mips:*:*:UMIPS | mips:*:*:RISCos)
477 eval $set_cc_for_build
478 sed 's/^ //' << EOF >$dummy.c
484 eval "$set_cc_for_build"
485 sed 's/^ //' << EOF > "$dummy.c"
479486 #ifdef __cplusplus
480487 #include <stdio.h> /* for printf() prototype */
481488 int main (int argc, char *argv[]) {
484491 #endif
485492 #if defined (host_mips) && defined (MIPSEB)
486493 #if defined (SYSTYPE_SYSV)
487 printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
494 printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0);
488495 #endif
489496 #if defined (SYSTYPE_SVR4)
490 printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
497 printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0);
491498 #endif
492499 #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
493 printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
500 printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0);
494501 #endif
495502 #endif
496503 exit (-1);
497504 }
498505 EOF
499 $CC_FOR_BUILD -o $dummy $dummy.c &&
500 dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
501 SYSTEM_NAME=`$dummy $dummyarg` &&
506 $CC_FOR_BUILD -o "$dummy" "$dummy.c" &&
507 dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` &&
508 SYSTEM_NAME=`"$dummy" "$dummyarg"` &&
502509 { echo "$SYSTEM_NAME"; exit; }
503 echo mips-mips-riscos${UNAME_RELEASE}
510 echo mips-mips-riscos"$UNAME_RELEASE"
504511 exit ;;
505512 Motorola:PowerMAX_OS:*:*)
506513 echo powerpc-motorola-powermax
526533 AViiON:dgux:*:*)
527534 # DG/UX returns AViiON for all architectures
528535 UNAME_PROCESSOR=`/usr/bin/uname -p`
529 if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
536 if [ "$UNAME_PROCESSOR" = mc88100 ] || [ "$UNAME_PROCESSOR" = mc88110 ]
530537 then
531 if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
532 [ ${TARGET_BINARY_INTERFACE}x = x ]
538 if [ "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx ] || \
539 [ "$TARGET_BINARY_INTERFACE"x = x ]
533540 then
534 echo m88k-dg-dgux${UNAME_RELEASE}
541 echo m88k-dg-dgux"$UNAME_RELEASE"
535542 else
536 echo m88k-dg-dguxbcs${UNAME_RELEASE}
543 echo m88k-dg-dguxbcs"$UNAME_RELEASE"
537544 fi
538545 else
539 echo i586-dg-dgux${UNAME_RELEASE}
546 echo i586-dg-dgux"$UNAME_RELEASE"
540547 fi
541548 exit ;;
542549 M88*:DolphinOS:*:*) # DolphinOS (SVR3)
553560 echo m68k-tektronix-bsd
554561 exit ;;
555562 *:IRIX*:*:*)
556 echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
563 echo mips-sgi-irix"`echo "$UNAME_RELEASE"|sed -e 's/-/_/g'`"
557564 exit ;;
558565 ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
559566 echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
565572 if [ -x /usr/bin/oslevel ] ; then
566573 IBM_REV=`/usr/bin/oslevel`
567574 else
568 IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
569 fi
570 echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
575 IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
576 fi
577 echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV"
571578 exit ;;
572579 *:AIX:2:3)
573580 if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
574 eval $set_cc_for_build
575 sed 's/^ //' << EOF >$dummy.c
581 eval "$set_cc_for_build"
582 sed 's/^ //' << EOF > "$dummy.c"
576583 #include <sys/systemcfg.h>
577584
578585 main()
583590 exit(0);
584591 }
585592 EOF
586 if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
593 if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"`
587594 then
588595 echo "$SYSTEM_NAME"
589596 else
597604 exit ;;
598605 *:AIX:*:[4567])
599606 IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
600 if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
607 if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then
601608 IBM_ARCH=rs6000
602609 else
603610 IBM_ARCH=powerpc
606613 IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc |
607614 awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
608615 else
609 IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
610 fi
611 echo ${IBM_ARCH}-ibm-aix${IBM_REV}
616 IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
617 fi
618 echo "$IBM_ARCH"-ibm-aix"$IBM_REV"
612619 exit ;;
613620 *:AIX:*:*)
614621 echo rs6000-ibm-aix
615622 exit ;;
616 ibmrt:4.4BSD:*|romp-ibm:BSD:*)
623 ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*)
617624 echo romp-ibm-bsd4.4
618625 exit ;;
619626 ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
620 echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
627 echo romp-ibm-bsd"$UNAME_RELEASE" # 4.3 with uname added to
621628 exit ;; # report: romp-ibm BSD 4.3
622629 *:BOSX:*:*)
623630 echo rs6000-bull-bosx
632639 echo m68k-hp-bsd4.4
633640 exit ;;
634641 9000/[34678]??:HP-UX:*:*)
635 HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
636 case "${UNAME_MACHINE}" in
637 9000/31? ) HP_ARCH=m68000 ;;
638 9000/[34]?? ) HP_ARCH=m68k ;;
642 HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'`
643 case "$UNAME_MACHINE" in
644 9000/31?) HP_ARCH=m68000 ;;
645 9000/[34]??) HP_ARCH=m68k ;;
639646 9000/[678][0-9][0-9])
640647 if [ -x /usr/bin/getconf ]; then
641648 sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
642649 sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
643 case "${sc_cpu_version}" in
650 case "$sc_cpu_version" in
644651 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0
645652 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1
646653 532) # CPU_PA_RISC2_0
647 case "${sc_kernel_bits}" in
654 case "$sc_kernel_bits" in
648655 32) HP_ARCH=hppa2.0n ;;
649656 64) HP_ARCH=hppa2.0w ;;
650657 '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20
651658 esac ;;
652659 esac
653660 fi
654 if [ "${HP_ARCH}" = "" ]; then
655 eval $set_cc_for_build
656 sed 's/^ //' << EOF >$dummy.c
661 if [ "$HP_ARCH" = "" ]; then
662 eval "$set_cc_for_build"
663 sed 's/^ //' << EOF > "$dummy.c"
657664
658665 #define _HPUX_SOURCE
659666 #include <stdlib.h>
686693 exit (0);
687694 }
688695 EOF
689 (CCOPTS="" $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
696 (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"`
690697 test -z "$HP_ARCH" && HP_ARCH=hppa
691698 fi ;;
692699 esac
693 if [ ${HP_ARCH} = hppa2.0w ]
700 if [ "$HP_ARCH" = hppa2.0w ]
694701 then
695 eval $set_cc_for_build
702 eval "$set_cc_for_build"
696703
697704 # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
698705 # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler
711718 HP_ARCH=hppa64
712719 fi
713720 fi
714 echo ${HP_ARCH}-hp-hpux${HPUX_REV}
721 echo "$HP_ARCH"-hp-hpux"$HPUX_REV"
715722 exit ;;
716723 ia64:HP-UX:*:*)
717 HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
718 echo ia64-hp-hpux${HPUX_REV}
724 HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'`
725 echo ia64-hp-hpux"$HPUX_REV"
719726 exit ;;
720727 3050*:HI-UX:*:*)
721 eval $set_cc_for_build
722 sed 's/^ //' << EOF >$dummy.c
728 eval "$set_cc_for_build"
729 sed 's/^ //' << EOF > "$dummy.c"
723730 #include <unistd.h>
724731 int
725732 main ()
744751 exit (0);
745752 }
746753 EOF
747 $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
754 $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` &&
748755 { echo "$SYSTEM_NAME"; exit; }
749756 echo unknown-hitachi-hiuxwe2
750757 exit ;;
751 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
758 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*)
752759 echo hppa1.1-hp-bsd
753760 exit ;;
754761 9000/8??:4.3bsd:*:*)
757764 *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
758765 echo hppa1.0-hp-mpeix
759766 exit ;;
760 hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
767 hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*)
761768 echo hppa1.1-hp-osf
762769 exit ;;
763770 hp8??:OSF1:*:*)
765772 exit ;;
766773 i*86:OSF1:*:*)
767774 if [ -x /usr/sbin/sysversion ] ; then
768 echo ${UNAME_MACHINE}-unknown-osf1mk
775 echo "$UNAME_MACHINE"-unknown-osf1mk
769776 else
770 echo ${UNAME_MACHINE}-unknown-osf1
777 echo "$UNAME_MACHINE"-unknown-osf1
771778 fi
772779 exit ;;
773780 parisc*:Lites*:*:*)
792799 echo c4-convex-bsd
793800 exit ;;
794801 CRAY*Y-MP:*:*:*)
795 echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
802 echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
796803 exit ;;
797804 CRAY*[A-Z]90:*:*:*)
798 echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
805 echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \
799806 | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
800807 -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
801808 -e 's/\.[^.]*$/.X/'
802809 exit ;;
803810 CRAY*TS:*:*:*)
804 echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
811 echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
805812 exit ;;
806813 CRAY*T3E:*:*:*)
807 echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
814 echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
808815 exit ;;
809816 CRAY*SV1:*:*:*)
810 echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
817 echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
811818 exit ;;
812819 *:UNICOS/mp:*:*)
813 echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
820 echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
814821 exit ;;
815822 F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
816823 FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
817824 FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
818 FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
825 FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'`
819826 echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
820827 exit ;;
821828 5000:UNIX_System_V:4.*:*)
822829 FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
823 FUJITSU_REL=`echo ${UNAME_RELEASE} | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
830 FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
824831 echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
825832 exit ;;
826833 i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
827 echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
834 echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE"
828835 exit ;;
829836 sparc*:BSD/OS:*:*)
830 echo sparc-unknown-bsdi${UNAME_RELEASE}
837 echo sparc-unknown-bsdi"$UNAME_RELEASE"
831838 exit ;;
832839 *:BSD/OS:*:*)
833 echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
840 echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE"
834841 exit ;;
835842 *:FreeBSD:*:*)
836843 UNAME_PROCESSOR=`/usr/bin/uname -p`
837 case ${UNAME_PROCESSOR} in
844 case "$UNAME_PROCESSOR" in
838845 amd64)
839 echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
840 *)
841 echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
846 UNAME_PROCESSOR=x86_64 ;;
847 i386)
848 UNAME_PROCESSOR=i586 ;;
842849 esac
850 echo "$UNAME_PROCESSOR"-unknown-freebsd"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`"
843851 exit ;;
844852 i*:CYGWIN*:*)
845 echo ${UNAME_MACHINE}-pc-cygwin
853 echo "$UNAME_MACHINE"-pc-cygwin
846854 exit ;;
847855 *:MINGW64*:*)
848 echo ${UNAME_MACHINE}-pc-mingw64
856 echo "$UNAME_MACHINE"-pc-mingw64
849857 exit ;;
850858 *:MINGW*:*)
851 echo ${UNAME_MACHINE}-pc-mingw32
859 echo "$UNAME_MACHINE"-pc-mingw32
852860 exit ;;
853861 *:MSYS*:*)
854 echo ${UNAME_MACHINE}-pc-msys
855 exit ;;
856 i*:windows32*:*)
857 # uname -m includes "-pc" on this system.
858 echo ${UNAME_MACHINE}-mingw32
862 echo "$UNAME_MACHINE"-pc-msys
859863 exit ;;
860864 i*:PW*:*)
861 echo ${UNAME_MACHINE}-pc-pw32
865 echo "$UNAME_MACHINE"-pc-pw32
862866 exit ;;
863867 *:Interix*:*)
864 case ${UNAME_MACHINE} in
868 case "$UNAME_MACHINE" in
865869 x86)
866 echo i586-pc-interix${UNAME_RELEASE}
870 echo i586-pc-interix"$UNAME_RELEASE"
867871 exit ;;
868872 authenticamd | genuineintel | EM64T)
869 echo x86_64-unknown-interix${UNAME_RELEASE}
873 echo x86_64-unknown-interix"$UNAME_RELEASE"
870874 exit ;;
871875 IA64)
872 echo ia64-unknown-interix${UNAME_RELEASE}
876 echo ia64-unknown-interix"$UNAME_RELEASE"
873877 exit ;;
874878 esac ;;
875 [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
876 echo i${UNAME_MACHINE}-pc-mks
877 exit ;;
878 8664:Windows_NT:*)
879 echo x86_64-pc-mks
880 exit ;;
881 i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
882 # How do we know it's Interix rather than the generic POSIX subsystem?
883 # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
884 # UNAME_MACHINE based on the output of uname instead of i386?
885 echo i586-pc-interix
886 exit ;;
887879 i*:UWIN*:*)
888 echo ${UNAME_MACHINE}-pc-uwin
880 echo "$UNAME_MACHINE"-pc-uwin
889881 exit ;;
890882 amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
891883 echo x86_64-unknown-cygwin
892884 exit ;;
893 p*:CYGWIN*:*)
894 echo powerpcle-unknown-cygwin
895 exit ;;
896885 prep*:SunOS:5.*:*)
897 echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
886 echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
898887 exit ;;
899888 *:GNU:*:*)
900889 # the GNU system
901 echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
890 echo "`echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,'`-unknown-$LIBC`echo "$UNAME_RELEASE"|sed -e 's,/.*$,,'`"
902891 exit ;;
903892 *:GNU/*:*:*)
904893 # other systems with GNU libc and userland
905 echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
894 echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC"
906895 exit ;;
907896 i*86:Minix:*:*)
908 echo ${UNAME_MACHINE}-pc-minix
897 echo "$UNAME_MACHINE"-pc-minix
909898 exit ;;
910899 aarch64:Linux:*:*)
911 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
900 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
912901 exit ;;
913902 aarch64_be:Linux:*:*)
914903 UNAME_MACHINE=aarch64_be
915 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
904 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
916905 exit ;;
917906 alpha:Linux:*:*)
918907 case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
926915 esac
927916 objdump --private-headers /bin/sh | grep -q ld.so.1
928917 if test "$?" = 0 ; then LIBC=gnulibc1 ; fi
929 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
918 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
930919 exit ;;
931920 arc:Linux:*:* | arceb:Linux:*:*)
932 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
921 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
933922 exit ;;
934923 arm*:Linux:*:*)
935 eval $set_cc_for_build
924 eval "$set_cc_for_build"
936925 if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
937926 | grep -q __ARM_EABI__
938927 then
939 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
928 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
940929 else
941930 if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
942931 | grep -q __ARM_PCS_VFP
943932 then
944 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
933 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi
945934 else
946 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf
935 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf
947936 fi
948937 fi
949938 exit ;;
950939 avr32*:Linux:*:*)
951 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
940 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
952941 exit ;;
953942 cris:Linux:*:*)
954 echo ${UNAME_MACHINE}-axis-linux-${LIBC}
943 echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
955944 exit ;;
956945 crisv32:Linux:*:*)
957 echo ${UNAME_MACHINE}-axis-linux-${LIBC}
946 echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
958947 exit ;;
959948 e2k:Linux:*:*)
960 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
949 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
961950 exit ;;
962951 frv:Linux:*:*)
963 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
952 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
964953 exit ;;
965954 hexagon:Linux:*:*)
966 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
955 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
967956 exit ;;
968957 i*86:Linux:*:*)
969 echo ${UNAME_MACHINE}-pc-linux-${LIBC}
958 echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
970959 exit ;;
971960 ia64:Linux:*:*)
972 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
961 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
973962 exit ;;
974963 k1om:Linux:*:*)
975 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
964 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
976965 exit ;;
977966 m32r*:Linux:*:*)
978 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
967 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
979968 exit ;;
980969 m68*:Linux:*:*)
981 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
970 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
982971 exit ;;
983972 mips:Linux:*:* | mips64:Linux:*:*)
984 eval $set_cc_for_build
985 sed 's/^ //' << EOF >$dummy.c
973 eval "$set_cc_for_build"
974 sed 's/^ //' << EOF > "$dummy.c"
986975 #undef CPU
987976 #undef ${UNAME_MACHINE}
988977 #undef ${UNAME_MACHINE}el
996985 #endif
997986 #endif
998987 EOF
999 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
1000 test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
988 eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU'`"
989 test "x$CPU" != x && { echo "$CPU-unknown-linux-$LIBC"; exit; }
1001990 ;;
1002991 mips64el:Linux:*:*)
1003 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
992 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
1004993 exit ;;
1005994 openrisc*:Linux:*:*)
1006 echo or1k-unknown-linux-${LIBC}
995 echo or1k-unknown-linux-"$LIBC"
1007996 exit ;;
1008997 or32:Linux:*:* | or1k*:Linux:*:*)
1009 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
998 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
1010999 exit ;;
10111000 padre:Linux:*:*)
1012 echo sparc-unknown-linux-${LIBC}
1001 echo sparc-unknown-linux-"$LIBC"
10131002 exit ;;
10141003 parisc64:Linux:*:* | hppa64:Linux:*:*)
1015 echo hppa64-unknown-linux-${LIBC}
1004 echo hppa64-unknown-linux-"$LIBC"
10161005 exit ;;
10171006 parisc:Linux:*:* | hppa:Linux:*:*)
10181007 # Look for CPU level
10191008 case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
1020 PA7*) echo hppa1.1-unknown-linux-${LIBC} ;;
1021 PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;
1022 *) echo hppa-unknown-linux-${LIBC} ;;
1009 PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;;
1010 PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;;
1011 *) echo hppa-unknown-linux-"$LIBC" ;;
10231012 esac
10241013 exit ;;
10251014 ppc64:Linux:*:*)
1026 echo powerpc64-unknown-linux-${LIBC}
1015 echo powerpc64-unknown-linux-"$LIBC"
10271016 exit ;;
10281017 ppc:Linux:*:*)
1029 echo powerpc-unknown-linux-${LIBC}
1018 echo powerpc-unknown-linux-"$LIBC"
10301019 exit ;;
10311020 ppc64le:Linux:*:*)
1032 echo powerpc64le-unknown-linux-${LIBC}
1021 echo powerpc64le-unknown-linux-"$LIBC"
10331022 exit ;;
10341023 ppcle:Linux:*:*)
1035 echo powerpcle-unknown-linux-${LIBC}
1024 echo powerpcle-unknown-linux-"$LIBC"
10361025 exit ;;
10371026 riscv32:Linux:*:* | riscv64:Linux:*:*)
1038 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
1027 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
10391028 exit ;;
10401029 s390:Linux:*:* | s390x:Linux:*:*)
1041 echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
1030 echo "$UNAME_MACHINE"-ibm-linux-"$LIBC"
10421031 exit ;;
10431032 sh64*:Linux:*:*)
1044 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
1033 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
10451034 exit ;;
10461035 sh*:Linux:*:*)
1047 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
1036 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
10481037 exit ;;
10491038 sparc:Linux:*:* | sparc64:Linux:*:*)
1050 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
1039 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
10511040 exit ;;
10521041 tile*:Linux:*:*)
1053 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
1042 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
10541043 exit ;;
10551044 vax:Linux:*:*)
1056 echo ${UNAME_MACHINE}-dec-linux-${LIBC}
1045 echo "$UNAME_MACHINE"-dec-linux-"$LIBC"
10571046 exit ;;
10581047 x86_64:Linux:*:*)
1059 echo ${UNAME_MACHINE}-pc-linux-${LIBC}
1048 if objdump -f /bin/sh | grep -q elf32-x86-64; then
1049 echo "$UNAME_MACHINE"-pc-linux-"$LIBC"x32
1050 else
1051 echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
1052 fi
10601053 exit ;;
10611054 xtensa*:Linux:*:*)
1062 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
1055 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
10631056 exit ;;
10641057 i*86:DYNIX/ptx:4*:*)
10651058 # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
10731066 # I am not positive that other SVR4 systems won't match this,
10741067 # I just have to hope. -- rms.
10751068 # Use sysv4.2uw... so that sysv4* matches it.
1076 echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
1069 echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION"
10771070 exit ;;
10781071 i*86:OS/2:*:*)
10791072 # If we were able to find `uname', then EMX Unix compatibility
10801073 # is probably installed.
1081 echo ${UNAME_MACHINE}-pc-os2-emx
1074 echo "$UNAME_MACHINE"-pc-os2-emx
10821075 exit ;;
10831076 i*86:XTS-300:*:STOP)
1084 echo ${UNAME_MACHINE}-unknown-stop
1077 echo "$UNAME_MACHINE"-unknown-stop
10851078 exit ;;
10861079 i*86:atheos:*:*)
1087 echo ${UNAME_MACHINE}-unknown-atheos
1080 echo "$UNAME_MACHINE"-unknown-atheos
10881081 exit ;;
10891082 i*86:syllable:*:*)
1090 echo ${UNAME_MACHINE}-pc-syllable
1083 echo "$UNAME_MACHINE"-pc-syllable
10911084 exit ;;
10921085 i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
1093 echo i386-unknown-lynxos${UNAME_RELEASE}
1086 echo i386-unknown-lynxos"$UNAME_RELEASE"
10941087 exit ;;
10951088 i*86:*DOS:*:*)
1096 echo ${UNAME_MACHINE}-pc-msdosdjgpp
1097 exit ;;
1098 i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
1099 UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
1089 echo "$UNAME_MACHINE"-pc-msdosdjgpp
1090 exit ;;
1091 i*86:*:4.*:*)
1092 UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'`
11001093 if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
1101 echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
1094 echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL"
11021095 else
1103 echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
1096 echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL"
11041097 fi
11051098 exit ;;
11061099 i*86:*:5:[678]*)
11101103 *Pentium) UNAME_MACHINE=i586 ;;
11111104 *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
11121105 esac
1113 echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
1106 echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}{$UNAME_VERSION}"
11141107 exit ;;
11151108 i*86:*:3.2:*)
11161109 if test -f /usr/options/cb.name; then
11171110 UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
1118 echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
1111 echo "$UNAME_MACHINE"-pc-isc"$UNAME_REL"
11191112 elif /bin/uname -X 2>/dev/null >/dev/null ; then
11201113 UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
11211114 (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
11251118 && UNAME_MACHINE=i686
11261119 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
11271120 && UNAME_MACHINE=i686
1128 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
1121 echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL"
11291122 else
1130 echo ${UNAME_MACHINE}-pc-sysv32
1123 echo "$UNAME_MACHINE"-pc-sysv32
11311124 fi
11321125 exit ;;
11331126 pc:*:*:*)
11471140 exit ;;
11481141 i860:*:4.*:*) # i860-SVR4
11491142 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
1150 echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
1143 echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4
11511144 else # Add other i860-SVR4 vendors below as they are discovered.
1152 echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
1145 echo i860-unknown-sysv"$UNAME_RELEASE" # Unknown i860-SVR4
11531146 fi
11541147 exit ;;
11551148 mini*:CTIX:SYS*5:*)
11691162 test -r /etc/.relid \
11701163 && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
11711164 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1172 && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
1165 && { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
11731166 /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
1174 && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
1167 && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
11751168 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
11761169 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
11771170 && { echo i486-ncr-sysv4; exit; } ;;
11801173 test -r /etc/.relid \
11811174 && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
11821175 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1183 && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
1176 && { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
11841177 /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
1185 && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
1178 && { echo i586-ncr-sysv4.3"$OS_REL"; exit; }
11861179 /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
1187 && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
1180 && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
11881181 m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
1189 echo m68k-unknown-lynxos${UNAME_RELEASE}
1182 echo m68k-unknown-lynxos"$UNAME_RELEASE"
11901183 exit ;;
11911184 mc68030:UNIX_System_V:4.*:*)
11921185 echo m68k-atari-sysv4
11931186 exit ;;
11941187 TSUNAMI:LynxOS:2.*:*)
1195 echo sparc-unknown-lynxos${UNAME_RELEASE}
1188 echo sparc-unknown-lynxos"$UNAME_RELEASE"
11961189 exit ;;
11971190 rs6000:LynxOS:2.*:*)
1198 echo rs6000-unknown-lynxos${UNAME_RELEASE}
1191 echo rs6000-unknown-lynxos"$UNAME_RELEASE"
11991192 exit ;;
12001193 PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
1201 echo powerpc-unknown-lynxos${UNAME_RELEASE}
1194 echo powerpc-unknown-lynxos"$UNAME_RELEASE"
12021195 exit ;;
12031196 SM[BE]S:UNIX_SV:*:*)
1204 echo mips-dde-sysv${UNAME_RELEASE}
1197 echo mips-dde-sysv"$UNAME_RELEASE"
12051198 exit ;;
12061199 RM*:ReliantUNIX-*:*:*)
12071200 echo mips-sni-sysv4
12121205 *:SINIX-*:*:*)
12131206 if uname -p 2>/dev/null >/dev/null ; then
12141207 UNAME_MACHINE=`(uname -p) 2>/dev/null`
1215 echo ${UNAME_MACHINE}-sni-sysv4
1208 echo "$UNAME_MACHINE"-sni-sysv4
12161209 else
12171210 echo ns32k-sni-sysv
12181211 fi
12321225 exit ;;
12331226 i*86:VOS:*:*)
12341227 # From Paul.Green@stratus.com.
1235 echo ${UNAME_MACHINE}-stratus-vos
1228 echo "$UNAME_MACHINE"-stratus-vos
12361229 exit ;;
12371230 *:VOS:*:*)
12381231 # From Paul.Green@stratus.com.
12391232 echo hppa1.1-stratus-vos
12401233 exit ;;
12411234 mc68*:A/UX:*:*)
1242 echo m68k-apple-aux${UNAME_RELEASE}
1235 echo m68k-apple-aux"$UNAME_RELEASE"
12431236 exit ;;
12441237 news*:NEWS-OS:6*:*)
12451238 echo mips-sony-newsos6
12461239 exit ;;
12471240 R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
12481241 if [ -d /usr/nec ]; then
1249 echo mips-nec-sysv${UNAME_RELEASE}
1242 echo mips-nec-sysv"$UNAME_RELEASE"
12501243 else
1251 echo mips-unknown-sysv${UNAME_RELEASE}
1244 echo mips-unknown-sysv"$UNAME_RELEASE"
12521245 fi
12531246 exit ;;
12541247 BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
12671260 echo x86_64-unknown-haiku
12681261 exit ;;
12691262 SX-4:SUPER-UX:*:*)
1270 echo sx4-nec-superux${UNAME_RELEASE}
1263 echo sx4-nec-superux"$UNAME_RELEASE"
12711264 exit ;;
12721265 SX-5:SUPER-UX:*:*)
1273 echo sx5-nec-superux${UNAME_RELEASE}
1266 echo sx5-nec-superux"$UNAME_RELEASE"
12741267 exit ;;
12751268 SX-6:SUPER-UX:*:*)
1276 echo sx6-nec-superux${UNAME_RELEASE}
1269 echo sx6-nec-superux"$UNAME_RELEASE"
12771270 exit ;;
12781271 SX-7:SUPER-UX:*:*)
1279 echo sx7-nec-superux${UNAME_RELEASE}
1272 echo sx7-nec-superux"$UNAME_RELEASE"
12801273 exit ;;
12811274 SX-8:SUPER-UX:*:*)
1282 echo sx8-nec-superux${UNAME_RELEASE}
1275 echo sx8-nec-superux"$UNAME_RELEASE"
12831276 exit ;;
12841277 SX-8R:SUPER-UX:*:*)
1285 echo sx8r-nec-superux${UNAME_RELEASE}
1278 echo sx8r-nec-superux"$UNAME_RELEASE"
12861279 exit ;;
12871280 SX-ACE:SUPER-UX:*:*)
1288 echo sxace-nec-superux${UNAME_RELEASE}
1281 echo sxace-nec-superux"$UNAME_RELEASE"
12891282 exit ;;
12901283 Power*:Rhapsody:*:*)
1291 echo powerpc-apple-rhapsody${UNAME_RELEASE}
1284 echo powerpc-apple-rhapsody"$UNAME_RELEASE"
12921285 exit ;;
12931286 *:Rhapsody:*:*)
1294 echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
1287 echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE"
12951288 exit ;;
12961289 *:Darwin:*:*)
12971290 UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
1298 eval $set_cc_for_build
1291 eval "$set_cc_for_build"
12991292 if test "$UNAME_PROCESSOR" = unknown ; then
13001293 UNAME_PROCESSOR=powerpc
13011294 fi
1302 if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
1295 if test "`echo "$UNAME_RELEASE" | sed -e 's/\..*//'`" -le 10 ; then
13031296 if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
13041297 if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
1305 (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
1306 grep IS_64BIT_ARCH >/dev/null
1298 (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
1299 grep IS_64BIT_ARCH >/dev/null
13071300 then
13081301 case $UNAME_PROCESSOR in
13091302 i386) UNAME_PROCESSOR=x86_64 ;;
13101303 powerpc) UNAME_PROCESSOR=powerpc64 ;;
13111304 esac
1305 fi
1306 # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc
1307 if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \
1308 (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
1309 grep IS_PPC >/dev/null
1310 then
1311 UNAME_PROCESSOR=powerpc
13121312 fi
13131313 fi
13141314 elif test "$UNAME_PROCESSOR" = i386 ; then
13201320 # that Apple uses in portable devices.
13211321 UNAME_PROCESSOR=x86_64
13221322 fi
1323 echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
1323 echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE"
13241324 exit ;;
13251325 *:procnto*:*:* | *:QNX:[0123456789]*:*)
13261326 UNAME_PROCESSOR=`uname -p`
13281328 UNAME_PROCESSOR=i386
13291329 UNAME_MACHINE=pc
13301330 fi
1331 echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
1331 echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE"
13321332 exit ;;
13331333 *:QNX:*:4*)
13341334 echo i386-pc-qnx
13351335 exit ;;
1336 NEO-?:NONSTOP_KERNEL:*:*)
1337 echo neo-tandem-nsk${UNAME_RELEASE}
1336 NEO-*:NONSTOP_KERNEL:*:*)
1337 echo neo-tandem-nsk"$UNAME_RELEASE"
13381338 exit ;;
13391339 NSE-*:NONSTOP_KERNEL:*:*)
1340 echo nse-tandem-nsk${UNAME_RELEASE}
1341 exit ;;
1342 NSR-?:NONSTOP_KERNEL:*:*)
1343 echo nsr-tandem-nsk${UNAME_RELEASE}
1340 echo nse-tandem-nsk"$UNAME_RELEASE"
1341 exit ;;
1342 NSR-*:NONSTOP_KERNEL:*:*)
1343 echo nsr-tandem-nsk"$UNAME_RELEASE"
1344 exit ;;
1345 NSV-*:NONSTOP_KERNEL:*:*)
1346 echo nsv-tandem-nsk"$UNAME_RELEASE"
1347 exit ;;
1348 NSX-*:NONSTOP_KERNEL:*:*)
1349 echo nsx-tandem-nsk"$UNAME_RELEASE"
13441350 exit ;;
13451351 *:NonStop-UX:*:*)
13461352 echo mips-compaq-nonstopux
13491355 echo bs2000-siemens-sysv
13501356 exit ;;
13511357 DS/*:UNIX_System_V:*:*)
1352 echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
1358 echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE"
13531359 exit ;;
13541360 *:Plan9:*:*)
13551361 # "uname -m" is not consistent, so use $cputype instead. 386
13601366 else
13611367 UNAME_MACHINE="$cputype"
13621368 fi
1363 echo ${UNAME_MACHINE}-unknown-plan9
1369 echo "$UNAME_MACHINE"-unknown-plan9
13641370 exit ;;
13651371 *:TOPS-10:*:*)
13661372 echo pdp10-unknown-tops10
13811387 echo pdp10-unknown-its
13821388 exit ;;
13831389 SEI:*:*:SEIUX)
1384 echo mips-sei-seiux${UNAME_RELEASE}
1390 echo mips-sei-seiux"$UNAME_RELEASE"
13851391 exit ;;
13861392 *:DragonFly:*:*)
1387 echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
1393 echo "$UNAME_MACHINE"-unknown-dragonfly"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`"
13881394 exit ;;
13891395 *:*VMS:*:*)
13901396 UNAME_MACHINE=`(uname -p) 2>/dev/null`
1391 case "${UNAME_MACHINE}" in
1397 case "$UNAME_MACHINE" in
13921398 A*) echo alpha-dec-vms ; exit ;;
13931399 I*) echo ia64-dec-vms ; exit ;;
13941400 V*) echo vax-dec-vms ; exit ;;
13971403 echo i386-pc-xenix
13981404 exit ;;
13991405 i*86:skyos:*:*)
1400 echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE} | sed -e 's/ .*$//'`
1406 echo "$UNAME_MACHINE"-pc-skyos"`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`"
14011407 exit ;;
14021408 i*86:rdos:*:*)
1403 echo ${UNAME_MACHINE}-pc-rdos
1409 echo "$UNAME_MACHINE"-pc-rdos
14041410 exit ;;
14051411 i*86:AROS:*:*)
1406 echo ${UNAME_MACHINE}-pc-aros
1412 echo "$UNAME_MACHINE"-pc-aros
14071413 exit ;;
14081414 x86_64:VMkernel:*:*)
1409 echo ${UNAME_MACHINE}-unknown-esx
1415 echo "$UNAME_MACHINE"-unknown-esx
14101416 exit ;;
14111417 amd64:Isilon\ OneFS:*:*)
14121418 echo x86_64-unknown-onefs
14131419 exit ;;
14141420 esac
14151421
1422 echo "$0: unable to guess system type" >&2
1423
1424 case "$UNAME_MACHINE:$UNAME_SYSTEM" in
1425 mips:Linux | mips64:Linux)
1426 # If we got here on MIPS GNU/Linux, output extra information.
1427 cat >&2 <<EOF
1428
1429 NOTE: MIPS GNU/Linux systems require a C compiler to fully recognize
1430 the system type. Please install a C compiler and try again.
1431 EOF
1432 ;;
1433 esac
1434
14161435 cat >&2 <<EOF
1417 $0: unable to guess system type
14181436
14191437 This script (version $timestamp), has failed to recognize the
1420 operating system you are using. If your script is old, overwrite
1421 config.guess and config.sub with the latest versions from:
1422
1423 http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
1438 operating system you are using. If your script is old, overwrite *all*
1439 copies of config.guess and config.sub with the latest versions from:
1440
1441 https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
14241442 and
1425 http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
1443 https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
14261444
14271445 If $0 has already been updated, send the following data and any
14281446 information you think might be pertinent to config-patches@gnu.org to
14451463 /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
14461464 /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
14471465
1448 UNAME_MACHINE = ${UNAME_MACHINE}
1449 UNAME_RELEASE = ${UNAME_RELEASE}
1450 UNAME_SYSTEM = ${UNAME_SYSTEM}
1451 UNAME_VERSION = ${UNAME_VERSION}
1466 UNAME_MACHINE = "$UNAME_MACHINE"
1467 UNAME_RELEASE = "$UNAME_RELEASE"
1468 UNAME_SYSTEM = "$UNAME_SYSTEM"
1469 UNAME_VERSION = "$UNAME_VERSION"
14521470 EOF
14531471
14541472 exit 1
14551473
14561474 # Local variables:
1457 # eval: (add-hook 'write-file-hooks 'time-stamp)
1475 # eval: (add-hook 'write-file-functions 'time-stamp)
14581476 # time-stamp-start: "timestamp='"
14591477 # time-stamp-format: "%:y-%02m-%02d"
14601478 # time-stamp-end: "'"
1717
1818 /* Define to 1 if you have the <acl/libacl.h> header file. */
1919 #undef HAVE_ACL_LIBACL_H
20
21 /* Define to 1 if you have the <attr/xattr.h> header file. */
22 #undef HAVE_ATTR_XATTR_H
2320
2421 /* Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the
2522 CoreFoundation framework. */
7269 /* Define to 1 if you have the <sys/types.h> header file. */
7370 #undef HAVE_SYS_TYPES_H
7471
72 /* Define to 1 if you have the <sys/xattr.h> header file. */
73 #undef HAVE_SYS_XATTR_H
74
7575 /* Define to 1 if you have the <unistd.h> header file. */
7676 #undef HAVE_UNISTD_H
7777
00 #! /bin/sh
11 # Configuration validation subroutine script.
2 # Copyright 1992-2016 Free Software Foundation, Inc.
3
4 timestamp='2016-11-04'
2 # Copyright 1992-2018 Free Software Foundation, Inc.
3
4 timestamp='2018-02-22'
55
66 # This file is free software; you can redistribute it and/or modify it
77 # under the terms of the GNU General Public License as published by
1414 # General Public License for more details.
1515 #
1616 # You should have received a copy of the GNU General Public License
17 # along with this program; if not, see <http://www.gnu.org/licenses/>.
17 # along with this program; if not, see <https://www.gnu.org/licenses/>.
1818 #
1919 # As a special exception to the GNU General Public License, if you
2020 # distribute this file as part of a program that contains a
3232 # Otherwise, we print the canonical config type on stdout and succeed.
3333
3434 # You can get the latest version of this script from:
35 # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
35 # https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
3636
3737 # This file is supposed to be the same for all GNU packages
3838 # and recognize all the CPU types, system types and aliases
5656
5757 Canonicalize a configuration name.
5858
59 Operation modes:
59 Options:
6060 -h, --help print this help, then exit
6161 -t, --time-stamp print date of last modification, then exit
6262 -v, --version print version number, then exit
6666 version="\
6767 GNU config.sub ($timestamp)
6868
69 Copyright 1992-2016 Free Software Foundation, Inc.
69 Copyright 1992-2018 Free Software Foundation, Inc.
7070
7171 This is free software; see the source for copying conditions. There is NO
7272 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
9393
9494 *local*)
9595 # First pass through any local machine types.
96 echo $1
96 echo "$1"
9797 exit ;;
9898
9999 * )
111111
112112 # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
113113 # Here we must recognize all the valid KERNEL-OS combinations.
114 maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
114 maybe_os=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
115115 case $maybe_os in
116116 nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
117117 linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
119119 kopensolaris*-gnu* | cloudabi*-eabi* | \
120120 storm-chaos* | os2-emx* | rtmk-nova*)
121121 os=-$maybe_os
122 basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
122 basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
123123 ;;
124124 android-linux)
125125 os=-linux-android
126 basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
126 basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
127127 ;;
128128 *)
129 basic_machine=`echo $1 | sed 's/-[^-]*$//'`
130 if [ $basic_machine != $1 ]
131 then os=`echo $1 | sed 's/.*-/-/'`
129 basic_machine=`echo "$1" | sed 's/-[^-]*$//'`
130 if [ "$basic_machine" != "$1" ]
131 then os=`echo "$1" | sed 's/.*-/-/'`
132132 else os=; fi
133133 ;;
134134 esac
177177 ;;
178178 -sco6)
179179 os=-sco5v6
180 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
180 basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
181181 ;;
182182 -sco5)
183183 os=-sco3.2v5
184 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
184 basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
185185 ;;
186186 -sco4)
187187 os=-sco3.2v4
188 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
188 basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
189189 ;;
190190 -sco3.2.[4-9]*)
191191 os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
192 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
192 basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
193193 ;;
194194 -sco3.2v[4-9]*)
195195 # Don't forget version if it is 3.2v4 or newer.
196 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
196 basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
197197 ;;
198198 -sco5v6*)
199199 # Don't forget version if it is 3.2v4 or newer.
200 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
200 basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
201201 ;;
202202 -sco*)
203203 os=-sco3.2v2
204 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
204 basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
205205 ;;
206206 -udk*)
207 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
207 basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
208208 ;;
209209 -isc)
210210 os=-isc2.2
211 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
211 basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
212212 ;;
213213 -clix*)
214214 basic_machine=clipper-intergraph
215215 ;;
216216 -isc*)
217 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
217 basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
218218 ;;
219219 -lynx*178)
220220 os=-lynxos178
226226 os=-lynxos
227227 ;;
228228 -ptx*)
229 basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
230 ;;
231 -windowsnt*)
232 os=`echo $os | sed -e 's/windowsnt/winnt/'`
229 basic_machine=`echo "$1" | sed -e 's/86-.*/86-sequent/'`
233230 ;;
234231 -psos*)
235232 os=-psos
262259 | fido | fr30 | frv | ft32 \
263260 | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
264261 | hexagon \
265 | i370 | i860 | i960 | ia64 \
262 | i370 | i860 | i960 | ia16 | ia64 \
266263 | ip2k | iq2000 \
267264 | k1om \
268265 | le32 | le64 \
298295 | nios | nios2 | nios2eb | nios2el \
299296 | ns16k | ns32k \
300297 | open8 | or1k | or1knd | or32 \
301 | pdp10 | pdp11 | pj | pjl \
298 | pdp10 | pj | pjl \
302299 | powerpc | powerpc64 | powerpc64le | powerpcle \
303300 | pru \
304301 | pyramid \
314311 | ubicom32 \
315312 | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
316313 | visium \
317 | we32k \
314 | wasm32 \
318315 | x86 | xc16x | xstormy16 | xtensa \
319316 | z8k | z80)
320317 basic_machine=$basic_machine-unknown
335332 basic_machine=$basic_machine-unknown
336333 os=-none
337334 ;;
338 m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
335 m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65)
339336 ;;
340337 ms1)
341338 basic_machine=mt-unknown
364361 ;;
365362 # Object if more than one company name word.
366363 *-*-*)
367 echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
364 echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2
368365 exit 1
369366 ;;
370367 # Recognize the basic CPU types with company name.
387384 | h8300-* | h8500-* \
388385 | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
389386 | hexagon-* \
390 | i*86-* | i860-* | i960-* | ia64-* \
387 | i*86-* | i860-* | i960-* | ia16-* | ia64-* \
391388 | ip2k-* | iq2000-* \
392389 | k1om-* \
393390 | le32-* | le64-* \
445442 | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
446443 | vax-* \
447444 | visium-* \
445 | wasm32-* \
448446 | we32k-* \
449447 | x86-* | x86_64-* | xc16x-* | xps100-* \
450448 | xstormy16-* | xtensa*-* \
458456 # Recognize the various machine names and aliases which stand
459457 # for a CPU type and a company and sometimes even an OS.
460458 386bsd)
461 basic_machine=i386-unknown
459 basic_machine=i386-pc
462460 os=-bsd
463461 ;;
464462 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
492490 basic_machine=x86_64-pc
493491 ;;
494492 amd64-*)
495 basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
493 basic_machine=x86_64-`echo "$basic_machine" | sed 's/^[^-]*-//'`
496494 ;;
497495 amdahl)
498496 basic_machine=580-amdahl
537535 os=-linux
538536 ;;
539537 blackfin-*)
540 basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
538 basic_machine=bfin-`echo "$basic_machine" | sed 's/^[^-]*-//'`
541539 os=-linux
542540 ;;
543541 bluegene*)
545543 os=-cnk
546544 ;;
547545 c54x-*)
548 basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
546 basic_machine=tic54x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
549547 ;;
550548 c55x-*)
551 basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
549 basic_machine=tic55x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
552550 ;;
553551 c6x-*)
554 basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
552 basic_machine=tic6x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
555553 ;;
556554 c90)
557555 basic_machine=c90-cray
640638 basic_machine=rs6000-bull
641639 os=-bosx
642640 ;;
643 dpx2* | dpx2*-bull)
641 dpx2*)
644642 basic_machine=m68k-bull
645643 os=-sysv3
646644 ;;
649647 os=$os"spe"
650648 ;;
651649 e500v[12]-*)
652 basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
650 basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'`
653651 os=$os"spe"
654652 ;;
655653 ebmon29k)
741739 hp9k8[0-9][0-9] | hp8[0-9][0-9])
742740 basic_machine=hppa1.0-hp
743741 ;;
744 hppa-next)
745 os=-nextstep3
746 ;;
747742 hppaosf)
748743 basic_machine=hppa1.1-hp
749744 os=-osf
756751 basic_machine=i370-ibm
757752 ;;
758753 i*86v32)
759 basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
754 basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
760755 os=-sysv32
761756 ;;
762757 i*86v4*)
763 basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
758 basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
764759 os=-sysv4
765760 ;;
766761 i*86v)
767 basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
762 basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
768763 os=-sysv
769764 ;;
770765 i*86sol2)
771 basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
766 basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
772767 os=-solaris2
773768 ;;
774769 i386mach)
775770 basic_machine=i386-mach
776771 os=-mach
777772 ;;
778 i386-vsta | vsta)
773 vsta)
779774 basic_machine=i386-unknown
780775 os=-vsta
781776 ;;
794789 os=-sysv
795790 ;;
796791 leon-*|leon[3-9]-*)
797 basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'`
792 basic_machine=sparc-`echo "$basic_machine" | sed 's/-.*//'`
798793 ;;
799794 m68knommu)
800795 basic_machine=m68k-unknown
801796 os=-linux
802797 ;;
803798 m68knommu-*)
804 basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
799 basic_machine=m68k-`echo "$basic_machine" | sed 's/^[^-]*-//'`
805800 os=-linux
806 ;;
807 m88k-omron*)
808 basic_machine=m88k-omron
809801 ;;
810802 magnum | m3230)
811803 basic_machine=mips-mips
838830 os=-mint
839831 ;;
840832 mips3*-*)
841 basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
833 basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`
842834 ;;
843835 mips3*)
844 basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
836 basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`-unknown
845837 ;;
846838 monitor)
847839 basic_machine=m68k-rom68k
860852 os=-msdos
861853 ;;
862854 ms1-*)
863 basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
855 basic_machine=`echo "$basic_machine" | sed -e 's/ms1-/mt-/'`
864856 ;;
865857 msys)
866858 basic_machine=i686-pc
902894 basic_machine=v70-nec
903895 os=-sysv
904896 ;;
905 next | m*-next )
897 next | m*-next)
906898 basic_machine=m68k-next
907899 case $os in
908900 -nextstep* )
947939 nsr-tandem)
948940 basic_machine=nsr-tandem
949941 ;;
942 nsv-tandem)
943 basic_machine=nsv-tandem
944 ;;
945 nsx-tandem)
946 basic_machine=nsx-tandem
947 ;;
950948 op50n-* | op60c-*)
951949 basic_machine=hppa1.1-oki
952950 os=-proelf
979977 os=-linux
980978 ;;
981979 parisc-*)
982 basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
980 basic_machine=hppa-`echo "$basic_machine" | sed 's/^[^-]*-//'`
983981 os=-linux
984982 ;;
985983 pbd)
995993 basic_machine=i386-pc
996994 ;;
997995 pc98-*)
998 basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
996 basic_machine=i386-`echo "$basic_machine" | sed 's/^[^-]*-//'`
999997 ;;
1000998 pentium | p5 | k5 | k6 | nexgen | viac3)
1001999 basic_machine=i586-pc
10101008 basic_machine=i786-pc
10111009 ;;
10121010 pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
1013 basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
1011 basic_machine=i586-`echo "$basic_machine" | sed 's/^[^-]*-//'`
10141012 ;;
10151013 pentiumpro-* | p6-* | 6x86-* | athlon-*)
1016 basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
1014 basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'`
10171015 ;;
10181016 pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
1019 basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
1017 basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'`
10201018 ;;
10211019 pentium4-*)
1022 basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
1020 basic_machine=i786-`echo "$basic_machine" | sed 's/^[^-]*-//'`
10231021 ;;
10241022 pn)
10251023 basic_machine=pn-gould
10291027 ppc | ppcbe) basic_machine=powerpc-unknown
10301028 ;;
10311029 ppc-* | ppcbe-*)
1032 basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
1030 basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'`
10331031 ;;
10341032 ppcle | powerpclittle)
10351033 basic_machine=powerpcle-unknown
10361034 ;;
10371035 ppcle-* | powerpclittle-*)
1038 basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
1036 basic_machine=powerpcle-`echo "$basic_machine" | sed 's/^[^-]*-//'`
10391037 ;;
10401038 ppc64) basic_machine=powerpc64-unknown
10411039 ;;
1042 ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
1040 ppc64-*) basic_machine=powerpc64-`echo "$basic_machine" | sed 's/^[^-]*-//'`
10431041 ;;
10441042 ppc64le | powerpc64little)
10451043 basic_machine=powerpc64le-unknown
10461044 ;;
10471045 ppc64le-* | powerpc64little-*)
1048 basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
1046 basic_machine=powerpc64le-`echo "$basic_machine" | sed 's/^[^-]*-//'`
10491047 ;;
10501048 ps2)
10511049 basic_machine=i386-ibm
10991097 sequent)
11001098 basic_machine=i386-sequent
11011099 ;;
1102 sh)
1103 basic_machine=sh-hitachi
1104 os=-hms
1105 ;;
11061100 sh5el)
11071101 basic_machine=sh5le-unknown
11081102 ;;
1109 sh64)
1110 basic_machine=sh64-unknown
1111 ;;
1112 sparclite-wrs | simso-wrs)
1103 simso-wrs)
11131104 basic_machine=sparclite-wrs
11141105 os=-vxworks
11151106 ;;
11281119 os=-sysv4
11291120 ;;
11301121 strongarm-* | thumb-*)
1131 basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
1122 basic_machine=arm-`echo "$basic_machine" | sed 's/^[^-]*-//'`
11321123 ;;
11331124 sun2)
11341125 basic_machine=m68000-sun
12501241 basic_machine=hppa1.1-winbond
12511242 os=-proelf
12521243 ;;
1244 x64)
1245 basic_machine=x86_64-pc
1246 ;;
12531247 xbox)
12541248 basic_machine=i686-pc
12551249 os=-mingw32
12581252 basic_machine=xps100-honeywell
12591253 ;;
12601254 xscale-* | xscalee[bl]-*)
1261 basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
1255 basic_machine=`echo "$basic_machine" | sed 's/^xscale/arm/'`
12621256 ;;
12631257 ymp)
12641258 basic_machine=ymp-cray
12651259 os=-unicos
1266 ;;
1267 z8k-*-coff)
1268 basic_machine=z8k-unknown
1269 os=-sim
1270 ;;
1271 z80-*-coff)
1272 basic_machine=z80-unknown
1273 os=-sim
12741260 ;;
12751261 none)
12761262 basic_machine=none-none
13001286 vax)
13011287 basic_machine=vax-dec
13021288 ;;
1303 pdp10)
1304 # there are many clones, so DEC is not a safe bet
1305 basic_machine=pdp10-unknown
1306 ;;
13071289 pdp11)
13081290 basic_machine=pdp11-dec
13091291 ;;
13131295 sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
13141296 basic_machine=sh-unknown
13151297 ;;
1316 sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
1317 basic_machine=sparc-sun
1318 ;;
13191298 cydra)
13201299 basic_machine=cydra-cydrome
13211300 ;;
13351314 # Make sure to match an already-canonicalized machine name.
13361315 ;;
13371316 *)
1338 echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
1317 echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2
13391318 exit 1
13401319 ;;
13411320 esac
13431322 # Here we canonicalize certain aliases for manufacturers.
13441323 case $basic_machine in
13451324 *-digital*)
1346 basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
1325 basic_machine=`echo "$basic_machine" | sed 's/digital.*/dec/'`
13471326 ;;
13481327 *-commodore*)
1349 basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
1328 basic_machine=`echo "$basic_machine" | sed 's/commodore.*/cbm/'`
13501329 ;;
13511330 *)
13521331 ;;
13571336 if [ x"$os" != x"" ]
13581337 then
13591338 case $os in
1360 # First match some system type aliases
1361 # that might get confused with valid system types.
1339 # First match some system type aliases that might get confused
1340 # with valid system types.
13621341 # -solaris* is a basic system type, with this one exception.
13631342 -auroraux)
13641343 os=-auroraux
13691348 -solaris)
13701349 os=-solaris2
13711350 ;;
1372 -svr4*)
1373 os=-sysv4
1374 ;;
13751351 -unixware*)
13761352 os=-sysv4.2uw
13771353 ;;
13781354 -gnu/linux*)
13791355 os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
13801356 ;;
1381 # First accept the basic system types.
1357 # es1800 is here to avoid being matched by es* (a different OS)
1358 -es1800*)
1359 os=-ose
1360 ;;
1361 # Now accept the basic system types.
13821362 # The portable systems comes first.
1383 # Each alternative MUST END IN A *, to match a version number.
1363 # Each alternative MUST end in a * to match a version number.
13841364 # -sysv* is not here because it comes later, after sysvr4.
13851365 -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
13861366 | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
13901370 | -aos* | -aros* | -cloudabi* | -sortix* \
13911371 | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
13921372 | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
1393 | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
1373 | -hiux* | -knetbsd* | -mirbsd* | -netbsd* \
13941374 | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \
13951375 | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
13961376 | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
13971377 | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
13981378 | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
1399 | -chorusos* | -chorusrdb* | -cegcc* \
1379 | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \
14001380 | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
14011381 | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
14021382 | -linux-newlib* | -linux-musl* | -linux-uclibc* \
14031383 | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
1404 | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
1384 | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* \
14051385 | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
14061386 | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
14071387 | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
1408 | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
1388 | -morphos* | -superux* | -rtmk* | -windiss* \
14091389 | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
14101390 | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \
1411 | -onefs* | -tirtos* | -phoenix* | -fuchsia*)
1391 | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox* | -bme* \
1392 | -midnightbsd*)
14121393 # Remember, each alternative MUST END IN *, to match a version number.
14131394 ;;
14141395 -qnx*)
14251406 -nto*)
14261407 os=`echo $os | sed -e 's|nto|nto-qnx|'`
14271408 ;;
1428 -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
1429 | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
1409 -sim | -xray | -os68k* | -v88r* \
1410 | -windows* | -osx | -abug | -netware* | -os9* \
14301411 | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
14311412 ;;
14321413 -mac*)
1433 os=`echo $os | sed -e 's|mac|macos|'`
1414 os=`echo "$os" | sed -e 's|mac|macos|'`
14341415 ;;
14351416 -linux-dietlibc)
14361417 os=-linux-dietlibc
14391420 os=`echo $os | sed -e 's|linux|linux-gnu|'`
14401421 ;;
14411422 -sunos5*)
1442 os=`echo $os | sed -e 's|sunos5|solaris2|'`
1423 os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
14431424 ;;
14441425 -sunos6*)
1445 os=`echo $os | sed -e 's|sunos6|solaris3|'`
1426 os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
14461427 ;;
14471428 -opened*)
14481429 os=-openedition
14531434 -wince*)
14541435 os=-wince
14551436 ;;
1456 -osfrose*)
1457 os=-osfrose
1458 ;;
1459 -osf*)
1460 os=-osf
1461 ;;
14621437 -utek*)
14631438 os=-bsd
14641439 ;;
14831458 -nova*)
14841459 os=-rtmk-nova
14851460 ;;
1486 -ns2 )
1461 -ns2)
14871462 os=-nextstep2
14881463 ;;
14891464 -nsk*)
15051480 -oss*)
15061481 os=-sysv3
15071482 ;;
1508 -svr4)
1483 -svr4*)
15091484 os=-sysv4
15101485 ;;
15111486 -svr3)
15201495 -ose*)
15211496 os=-ose
15221497 ;;
1523 -es1800*)
1524 os=-ose
1525 ;;
1526 -xenix)
1527 os=-xenix
1528 ;;
15291498 -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
15301499 os=-mint
15311500 ;;
1532 -aros*)
1533 os=-aros
1534 ;;
15351501 -zvmoe)
15361502 os=-zvmoe
15371503 ;;
15381504 -dicos*)
15391505 os=-dicos
1506 ;;
1507 -pikeos*)
1508 # Until real need of OS specific support for
1509 # particular features comes up, bare metal
1510 # configurations are quite functional.
1511 case $basic_machine in
1512 arm*)
1513 os=-eabi
1514 ;;
1515 *)
1516 os=-elf
1517 ;;
1518 esac
15401519 ;;
15411520 -nacl*)
15421521 ;;
15471526 *)
15481527 # Get rid of the `-' at the beginning of $os.
15491528 os=`echo $os | sed 's/[^-]*-//'`
1550 echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
1529 echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2
15511530 exit 1
15521531 ;;
15531532 esac
16371616 sparc-* | *-sun)
16381617 os=-sunos4.1.1
16391618 ;;
1619 pru-*)
1620 os=-elf
1621 ;;
16401622 *-be)
16411623 os=-beos
16421624 ;;
1643 *-haiku)
1644 os=-haiku
1645 ;;
16461625 *-ibm)
16471626 os=-aix
16481627 ;;
16821661 m88k-omron*)
16831662 os=-luna
16841663 ;;
1685 *-next )
1664 *-next)
16861665 os=-nextstep
16871666 ;;
16881667 *-sequent)
16961675 ;;
16971676 i370-*)
16981677 os=-mvs
1699 ;;
1700 *-next)
1701 os=-nextstep3
17021678 ;;
17031679 *-gould)
17041680 os=-sysv
18091785 vendor=stratus
18101786 ;;
18111787 esac
1812 basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
1788 basic_machine=`echo "$basic_machine" | sed "s/unknown/$vendor/"`
18131789 ;;
18141790 esac
18151791
1816 echo $basic_machine$os
1792 echo "$basic_machine$os"
18171793 exit
18181794
18191795 # Local variables:
1820 # eval: (add-hook 'write-file-hooks 'time-stamp)
1796 # eval: (add-hook 'write-file-functions 'time-stamp)
18211797 # time-stamp-start: "timestamp='"
18221798 # time-stamp-format: "%:y-%02m-%02d"
18231799 # time-stamp-end: "'"
00 #! /bin/sh
11 # Guess values for system-dependent variables and create Makefiles.
2 # Generated by GNU Autoconf 2.69 for eiciel 0.9.12.1.
2 # Generated by GNU Autoconf 2.69 for eiciel 0.9.13.
33 #
44 # Report bugs to <rofirrim@gmail.com>.
55 #
589589 # Identity of this package.
590590 PACKAGE_NAME='eiciel'
591591 PACKAGE_TARNAME='eiciel'
592 PACKAGE_VERSION='0.9.12.1'
593 PACKAGE_STRING='eiciel 0.9.12.1'
592 PACKAGE_VERSION='0.9.13'
593 PACKAGE_STRING='eiciel 0.9.13'
594594 PACKAGE_BUGREPORT='rofirrim@gmail.com'
595595 PACKAGE_URL=''
596596
694694 AMDEPBACKSLASH
695695 AMDEP_FALSE
696696 AMDEP_TRUE
697 am__quote
698697 am__include
699698 DEPDIR
700699 OBJEXT
792791 PACKAGE_TARNAME
793792 PACKAGE_NAME
794793 PATH_SEPARATOR
795 SHELL'
794 SHELL
795 am__quote'
796796 ac_subst_files=''
797797 ac_user_opts='
798798 enable_option_checking
13861386 # Omit some internal or obsolete options to make the list less imposing.
13871387 # This message is too long to be a string in the A/UX 3.1 sh.
13881388 cat <<_ACEOF
1389 \`configure' configures eiciel 0.9.12.1 to adapt to many kinds of systems.
1389 \`configure' configures eiciel 0.9.13 to adapt to many kinds of systems.
13901390
13911391 Usage: $0 [OPTION]... [VAR=VALUE]...
13921392
14581458
14591459 if test -n "$ac_init_help"; then
14601460 case $ac_init_help in
1461 short | recursive ) echo "Configuration of eiciel 0.9.12.1:";;
1461 short | recursive ) echo "Configuration of eiciel 0.9.13:";;
14621462 esac
14631463 cat <<\_ACEOF
14641464
16041604 test -n "$ac_init_help" && exit $ac_status
16051605 if $ac_init_version; then
16061606 cat <<\_ACEOF
1607 eiciel configure 0.9.12.1
1607 eiciel configure 0.9.13
16081608 generated by GNU Autoconf 2.69
16091609
16101610 Copyright (C) 2012 Free Software Foundation, Inc.
21612161 This file contains any messages produced by compilers while
21622162 running configure, to aid debugging if configure makes a mistake.
21632163
2164 It was created by eiciel $as_me 0.9.12.1, which was
2164 It was created by eiciel $as_me 0.9.13, which was
21652165 generated by GNU Autoconf 2.69. Invocation command line was
21662166
21672167 $ $0 $@
26532653
26542654
26552655
2656 am__api_version='1.15'
2656 am__api_version='1.16'
26572657
26582658 # Find a good install program. We prefer a C program (faster),
26592659 # so one script is as good as another. But avoid the broken or
31393139
31403140 # Define the identity of the package.
31413141 PACKAGE='eiciel'
3142 VERSION='0.9.12.1'
3142 VERSION='0.9.13'
31433143
31443144
31453145 cat >>confdefs.h <<_ACEOF
31693169
31703170 # For better backward compatibility. To be removed once Automake 1.9.x
31713171 # dies out for good. For more background, see:
3172 # <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
3173 # <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
3172 # <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
3173 # <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
31743174 mkdir_p='$(MKDIR_P)'
31753175
31763176 # We need awk for the "check" target (and possibly the TAP driver). The
32213221 Aborting the configuration process, to ensure you take notice of the issue.
32223222
32233223 You can download and install GNU coreutils to get an 'rm' implementation
3224 that behaves properly: <http://www.gnu.org/software/coreutils/>.
3224 that behaves properly: <https://www.gnu.org/software/coreutils/>.
32253225
32263226 If you want to complete the configuration process using your problematic
32273227 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
36003600
36013601 ac_config_commands="$ac_config_commands depfiles"
36023602
3603
3604 am_make=${MAKE-make}
3605 cat > confinc << 'END'
3603 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5
3604 $as_echo_n "checking whether ${MAKE-make} supports the include directive... " >&6; }
3605 cat > confinc.mk << 'END'
36063606 am__doit:
3607 @echo this is the am__doit target
3607 @echo this is the am__doit target >confinc.out
36083608 .PHONY: am__doit
36093609 END
3610 # If we don't find an include directive, just comment out the code.
3611 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5
3612 $as_echo_n "checking for style of include used by $am_make... " >&6; }
36133610 am__include="#"
36143611 am__quote=
3615 _am_result=none
3616 # First try GNU make style include.
3617 echo "include confinc" > confmf
3618 # Ignore all kinds of additional output from 'make'.
3619 case `$am_make -s -f confmf 2> /dev/null` in #(
3620 *the\ am__doit\ target*)
3621 am__include=include
3622 am__quote=
3623 _am_result=GNU
3624 ;;
3612 # BSD make does it like this.
3613 echo '.include "confinc.mk" # ignored' > confmf.BSD
3614 # Other make implementations (GNU, Solaris 10, AIX) do it like this.
3615 echo 'include confinc.mk # ignored' > confmf.GNU
3616 _am_result=no
3617 for s in GNU BSD; do
3618 { echo "$as_me:$LINENO: ${MAKE-make} -f confmf.$s && cat confinc.out" >&5
3619 (${MAKE-make} -f confmf.$s && cat confinc.out) >&5 2>&5
3620 ac_status=$?
3621 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3622 (exit $ac_status); }
3623 case $?:`cat confinc.out 2>/dev/null` in #(
3624 '0:this is the am__doit target') :
3625 case $s in #(
3626 BSD) :
3627 am__include='.include' am__quote='"' ;; #(
3628 *) :
3629 am__include='include' am__quote='' ;;
3630 esac ;; #(
3631 *) :
3632 ;;
36253633 esac
3626 # Now try BSD make style include.
3627 if test "$am__include" = "#"; then
3628 echo '.include "confinc"' > confmf
3629 case `$am_make -s -f confmf 2> /dev/null` in #(
3630 *the\ am__doit\ target*)
3631 am__include=.include
3632 am__quote="\""
3633 _am_result=BSD
3634 ;;
3635 esac
3636 fi
3637
3638
3639 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5
3640 $as_echo "$_am_result" >&6; }
3641 rm -f confinc confmf
3634 if test "$am__include" != "#"; then
3635 _am_result="yes ($s style)"
3636 break
3637 fi
3638 done
3639 rm -f confinc.* confmf.*
3640 { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5
3641 $as_echo "${_am_result}" >&6; }
36423642
36433643 # Check whether --enable-dependency-tracking was given.
36443644 if test "${enable_dependency_tracking+set}" = set; then :
93129312 test $ac_status = 0; }; then
93139313 # Now try to grab the symbols.
93149314 nlist=conftest.nm
9315 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5
9316 (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5
9317 ac_status=$?
9318 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
9319 test $ac_status = 0; } && test -s "$nlist"; then
9315 $ECHO "$as_me:$LINENO: $NM conftest.$ac_objext | $lt_cv_sys_global_symbol_pipe > $nlist" >&5
9316 if eval "$NM" conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist 2>&5 && test -s "$nlist"; then
93209317 # Try sorting and uniquifying the output.
93219318 if sort "$nlist" | uniq > "$nlist"T; then
93229319 mv -f "$nlist"T "$nlist"
1547915476 # Commands to make compiler produce verbose output that lists
1548015477 # what "hidden" libraries, object files and flags are used when
1548115478 # linking a shared library.
15482 output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
15479 output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"'
1548315480
1548415481 else
1548515482 GXX=no
1597115968 # explicitly linking system object files so we need to strip them
1597215969 # from the output so that they don't get included in the library
1597315970 # dependencies.
15974 output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
15971 output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP " \-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
1597515972 ;;
1597615973 *)
1597715974 if test yes = "$GXX"; then
1603616033 # explicitly linking system object files so we need to strip them
1603716034 # from the output so that they don't get included in the library
1603816035 # dependencies.
16039 output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
16036 output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP " \-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
1604016037 ;;
1604116038 *)
1604216039 if test yes = "$GXX"; then
1637516372 # Commands to make compiler produce verbose output that lists
1637616373 # what "hidden" libraries, object files and flags are used when
1637716374 # linking a shared library.
16378 output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
16375 output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"'
1637916376
1638016377 else
1638116378 # FIXME: insert proper C++ library support
1645916456 # Commands to make compiler produce verbose output that lists
1646016457 # what "hidden" libraries, object files and flags are used when
1646116458 # linking a shared library.
16462 output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
16459 output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"'
1646316460 else
1646416461 # g++ 2.7 appears to require '-G' NOT '-shared' on this
1646516462 # platform.
1647016467 # Commands to make compiler produce verbose output that lists
1647116468 # what "hidden" libraries, object files and flags are used when
1647216469 # linking a shared library.
16473 output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
16470 output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"'
1647416471 fi
1647516472
1647616473 hardcode_libdir_flag_spec_CXX='$wl-R $wl$libdir'
1871718714 pkg_cv_GTKMM_CFLAGS="$GTKMM_CFLAGS"
1871818715 elif test -n "$PKG_CONFIG"; then
1871918716 if test -n "$PKG_CONFIG" && \
18720 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtkmm-3.0 >= 3.0.0\""; } >&5
18721 ($PKG_CONFIG --exists --print-errors "gtkmm-3.0 >= 3.0.0") 2>&5
18717 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtkmm-3.0 >= 3.0.0 giomm-2.4 >= 2.50.0\""; } >&5
18718 ($PKG_CONFIG --exists --print-errors "gtkmm-3.0 >= 3.0.0 giomm-2.4 >= 2.50.0") 2>&5
1872218719 ac_status=$?
1872318720 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
1872418721 test $ac_status = 0; }; then
18725 pkg_cv_GTKMM_CFLAGS=`$PKG_CONFIG --cflags "gtkmm-3.0 >= 3.0.0" 2>/dev/null`
18722 pkg_cv_GTKMM_CFLAGS=`$PKG_CONFIG --cflags "gtkmm-3.0 >= 3.0.0 giomm-2.4 >= 2.50.0" 2>/dev/null`
1872618723 test "x$?" != "x0" && pkg_failed=yes
1872718724 else
1872818725 pkg_failed=yes
1873418731 pkg_cv_GTKMM_LIBS="$GTKMM_LIBS"
1873518732 elif test -n "$PKG_CONFIG"; then
1873618733 if test -n "$PKG_CONFIG" && \
18737 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtkmm-3.0 >= 3.0.0\""; } >&5
18738 ($PKG_CONFIG --exists --print-errors "gtkmm-3.0 >= 3.0.0") 2>&5
18734 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtkmm-3.0 >= 3.0.0 giomm-2.4 >= 2.50.0\""; } >&5
18735 ($PKG_CONFIG --exists --print-errors "gtkmm-3.0 >= 3.0.0 giomm-2.4 >= 2.50.0") 2>&5
1873918736 ac_status=$?
1874018737 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
1874118738 test $ac_status = 0; }; then
18742 pkg_cv_GTKMM_LIBS=`$PKG_CONFIG --libs "gtkmm-3.0 >= 3.0.0" 2>/dev/null`
18739 pkg_cv_GTKMM_LIBS=`$PKG_CONFIG --libs "gtkmm-3.0 >= 3.0.0 giomm-2.4 >= 2.50.0" 2>/dev/null`
1874318740 test "x$?" != "x0" && pkg_failed=yes
1874418741 else
1874518742 pkg_failed=yes
1876018757 _pkg_short_errors_supported=no
1876118758 fi
1876218759 if test $_pkg_short_errors_supported = yes; then
18763 GTKMM_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gtkmm-3.0 >= 3.0.0" 2>&1`
18760 GTKMM_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gtkmm-3.0 >= 3.0.0 giomm-2.4 >= 2.50.0" 2>&1`
1876418761 else
18765 GTKMM_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gtkmm-3.0 >= 3.0.0" 2>&1`
18762 GTKMM_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gtkmm-3.0 >= 3.0.0 giomm-2.4 >= 2.50.0" 2>&1`
1876618763 fi
1876718764 # Put the nasty error message in config.log where it belongs
1876818765 echo "$GTKMM_PKG_ERRORS" >&5
1876918766
18770 as_fn_error $? "Package requirements (gtkmm-3.0 >= 3.0.0) were not met:
18767 as_fn_error $? "Package requirements (gtkmm-3.0 >= 3.0.0 giomm-2.4 >= 2.50.0) were not met:
1877118768
1877218769 $GTKMM_PKG_ERRORS
1877318770
1890618903 pkg_cv_GTKMM_CFLAGS="$GTKMM_CFLAGS"
1890718904 elif test -n "$PKG_CONFIG"; then
1890818905 if test -n "$PKG_CONFIG" && \
18909 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtkmm-2.4 >= 2.4.0 libgnome-2.0 >= 2.10.0\""; } >&5
18910 ($PKG_CONFIG --exists --print-errors "gtkmm-2.4 >= 2.4.0 libgnome-2.0 >= 2.10.0") 2>&5
18906 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtkmm-2.4 >= 2.4.0 libgnome-2.0 >= 2.10.0 giomm-2.4 >= 2.50.0\""; } >&5
18907 ($PKG_CONFIG --exists --print-errors "gtkmm-2.4 >= 2.4.0 libgnome-2.0 >= 2.10.0 giomm-2.4 >= 2.50.0") 2>&5
1891118908 ac_status=$?
1891218909 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
1891318910 test $ac_status = 0; }; then
18914 pkg_cv_GTKMM_CFLAGS=`$PKG_CONFIG --cflags "gtkmm-2.4 >= 2.4.0 libgnome-2.0 >= 2.10.0" 2>/dev/null`
18911 pkg_cv_GTKMM_CFLAGS=`$PKG_CONFIG --cflags "gtkmm-2.4 >= 2.4.0 libgnome-2.0 >= 2.10.0 giomm-2.4 >= 2.50.0" 2>/dev/null`
1891518912 test "x$?" != "x0" && pkg_failed=yes
1891618913 else
1891718914 pkg_failed=yes
1892318920 pkg_cv_GTKMM_LIBS="$GTKMM_LIBS"
1892418921 elif test -n "$PKG_CONFIG"; then
1892518922 if test -n "$PKG_CONFIG" && \
18926 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtkmm-2.4 >= 2.4.0 libgnome-2.0 >= 2.10.0\""; } >&5
18927 ($PKG_CONFIG --exists --print-errors "gtkmm-2.4 >= 2.4.0 libgnome-2.0 >= 2.10.0") 2>&5
18923 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtkmm-2.4 >= 2.4.0 libgnome-2.0 >= 2.10.0 giomm-2.4 >= 2.50.0\""; } >&5
18924 ($PKG_CONFIG --exists --print-errors "gtkmm-2.4 >= 2.4.0 libgnome-2.0 >= 2.10.0 giomm-2.4 >= 2.50.0") 2>&5
1892818925 ac_status=$?
1892918926 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
1893018927 test $ac_status = 0; }; then
18931 pkg_cv_GTKMM_LIBS=`$PKG_CONFIG --libs "gtkmm-2.4 >= 2.4.0 libgnome-2.0 >= 2.10.0" 2>/dev/null`
18928 pkg_cv_GTKMM_LIBS=`$PKG_CONFIG --libs "gtkmm-2.4 >= 2.4.0 libgnome-2.0 >= 2.10.0 giomm-2.4 >= 2.50.0" 2>/dev/null`
1893218929 test "x$?" != "x0" && pkg_failed=yes
1893318930 else
1893418931 pkg_failed=yes
1894918946 _pkg_short_errors_supported=no
1895018947 fi
1895118948 if test $_pkg_short_errors_supported = yes; then
18952 GTKMM_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gtkmm-2.4 >= 2.4.0 libgnome-2.0 >= 2.10.0" 2>&1`
18949 GTKMM_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gtkmm-2.4 >= 2.4.0 libgnome-2.0 >= 2.10.0 giomm-2.4 >= 2.50.0" 2>&1`
1895318950 else
18954 GTKMM_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gtkmm-2.4 >= 2.4.0 libgnome-2.0 >= 2.10.0" 2>&1`
18951 GTKMM_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gtkmm-2.4 >= 2.4.0 libgnome-2.0 >= 2.10.0 giomm-2.4 >= 2.50.0" 2>&1`
1895518952 fi
1895618953 # Put the nasty error message in config.log where it belongs
1895718954 echo "$GTKMM_PKG_ERRORS" >&5
1895818955
18959 as_fn_error $? "Package requirements (gtkmm-2.4 >= 2.4.0 libgnome-2.0 >= 2.10.0) were not met:
18956 as_fn_error $? "Package requirements (gtkmm-2.4 >= 2.4.0 libgnome-2.0 >= 2.10.0 giomm-2.4 >= 2.50.0) were not met:
1896018957
1896118958 $GTKMM_PKG_ERRORS
1896218959
1916819165 if test x$enable_eua = xyes;
1916919166 then
1917019167
19171 for ac_header in attr/xattr.h
19168 for ac_header in sys/xattr.h
1917219169 do :
19173 ac_fn_cxx_check_header_mongrel "$LINENO" "attr/xattr.h" "ac_cv_header_attr_xattr_h" "$ac_includes_default"
19174 if test "x$ac_cv_header_attr_xattr_h" = xyes; then :
19170 ac_fn_cxx_check_header_mongrel "$LINENO" "sys/xattr.h" "ac_cv_header_sys_xattr_h" "$ac_includes_default"
19171 if test "x$ac_cv_header_sys_xattr_h" = xyes; then :
1917519172 cat >>confdefs.h <<_ACEOF
19176 #define HAVE_ATTR_XATTR_H 1
19173 #define HAVE_SYS_XATTR_H 1
1917719174 _ACEOF
1917819175
1917919176 else
1983419831 # report actual input values of CONFIG_FILES etc. instead of their
1983519832 # values after options handling.
1983619833 ac_log="
19837 This file was extended by eiciel $as_me 0.9.12.1, which was
19834 This file was extended by eiciel $as_me 0.9.13, which was
1983819835 generated by GNU Autoconf 2.69. Invocation command line was
1983919836
1984019837 CONFIG_FILES = $CONFIG_FILES
1990019897 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
1990119898 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
1990219899 ac_cs_version="\\
19903 eiciel config.status 0.9.12.1
19900 eiciel config.status 0.9.13
1990419901 configured by $0, generated by GNU Autoconf 2.69,
1990519902 with options \\"\$ac_cs_config\\"
1990619903
2002620023 # Capture the value of LINGUAS because we need it to compute CATALOGS.
2002720024 LINGUAS="${LINGUAS-%UNSET%}"
2002820025
20029 AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
20026 AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"
2003020027
2003120028
2003220029 # The HP-UX ksh and POSIX shell print the target directory to stdout
2114121138 # Older Autoconf quotes --file arguments for eval, but not when files
2114221139 # are listed without --file. Let's play safe and only enable the eval
2114321140 # if we detect the quoting.
21144 case $CONFIG_FILES in
21145 *\'*) eval set x "$CONFIG_FILES" ;;
21146 *) set x $CONFIG_FILES ;;
21147 esac
21141 # TODO: see whether this extra hack can be removed once we start
21142 # requiring Autoconf 2.70 or later.
21143 case $CONFIG_FILES in #(
21144 *\'*) :
21145 eval set x "$CONFIG_FILES" ;; #(
21146 *) :
21147 set x $CONFIG_FILES ;; #(
21148 *) :
21149 ;;
21150 esac
2114821151 shift
21149 for mf
21152 # Used to flag and report bootstrapping failures.
21153 am_rc=0
21154 for am_mf
2115021155 do
2115121156 # Strip MF so we end up with the name of the file.
21152 mf=`echo "$mf" | sed -e 's/:.*$//'`
21153 # Check whether this is an Automake generated Makefile or not.
21154 # We used to match only the files named 'Makefile.in', but
21155 # some people rename them; so instead we look at the file content.
21156 # Grep'ing the first line is not enough: some people post-process
21157 # each Makefile.in and add a new line on top of each file to say so.
21158 # Grep'ing the whole file is not good either: AIX grep has a line
21157 am_mf=`$as_echo "$am_mf" | sed -e 's/:.*$//'`
21158 # Check whether this is an Automake generated Makefile which includes
21159 # dependency-tracking related rules and includes.
21160 # Grep'ing the whole file directly is not great: AIX grep has a line
2115921161 # limit of 2048, but all sed's we know have understand at least 4000.
21160 if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
21161 dirpart=`$as_dirname -- "$mf" ||
21162 $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
21163 X"$mf" : 'X\(//\)[^/]' \| \
21164 X"$mf" : 'X\(//\)$' \| \
21165 X"$mf" : 'X\(/\)' \| . 2>/dev/null ||
21166 $as_echo X"$mf" |
21162 sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \
21163 || continue
21164 am_dirpart=`$as_dirname -- "$am_mf" ||
21165 $as_expr X"$am_mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
21166 X"$am_mf" : 'X\(//\)[^/]' \| \
21167 X"$am_mf" : 'X\(//\)$' \| \
21168 X"$am_mf" : 'X\(/\)' \| . 2>/dev/null ||
21169 $as_echo X"$am_mf" |
2116721170 sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
2116821171 s//\1/
2116921172 q
2118121184 q
2118221185 }
2118321186 s/.*/./; q'`
21184 else
21185 continue
21186 fi
21187 # Extract the definition of DEPDIR, am__include, and am__quote
21188 # from the Makefile without running 'make'.
21189 DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
21190 test -z "$DEPDIR" && continue
21191 am__include=`sed -n 's/^am__include = //p' < "$mf"`
21192 test -z "$am__include" && continue
21193 am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
21194 # Find all dependency output files, they are included files with
21195 # $(DEPDIR) in their names. We invoke sed twice because it is the
21196 # simplest approach to changing $(DEPDIR) to its actual value in the
21197 # expansion.
21198 for file in `sed -n "
21199 s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
21200 sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
21201 # Make sure the directory exists.
21202 test -f "$dirpart/$file" && continue
21203 fdir=`$as_dirname -- "$file" ||
21204 $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
21205 X"$file" : 'X\(//\)[^/]' \| \
21206 X"$file" : 'X\(//\)$' \| \
21207 X"$file" : 'X\(/\)' \| . 2>/dev/null ||
21208 $as_echo X"$file" |
21209 sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
21187 am_filepart=`$as_basename -- "$am_mf" ||
21188 $as_expr X/"$am_mf" : '.*/\([^/][^/]*\)/*$' \| \
21189 X"$am_mf" : 'X\(//\)$' \| \
21190 X"$am_mf" : 'X\(/\)' \| . 2>/dev/null ||
21191 $as_echo X/"$am_mf" |
21192 sed '/^.*\/\([^/][^/]*\)\/*$/{
2121021193 s//\1/
2121121194 q
2121221195 }
21213 /^X\(\/\/\)[^/].*/{
21196 /^X\/\(\/\/\)$/{
2121421197 s//\1/
2121521198 q
2121621199 }
21217 /^X\(\/\/\)$/{
21218 s//\1/
21219 q
21220 }
21221 /^X\(\/\).*/{
21200 /^X\/\(\/\).*/{
2122221201 s//\1/
2122321202 q
2122421203 }
2122521204 s/.*/./; q'`
21226 as_dir=$dirpart/$fdir; as_fn_mkdir_p
21227 # echo "creating $dirpart/$file"
21228 echo '# dummy' > "$dirpart/$file"
21229 done
21205 { echo "$as_me:$LINENO: cd "$am_dirpart" \
21206 && sed -e '/# am--include-marker/d' "$am_filepart" \
21207 | $MAKE -f - am--depfiles" >&5
21208 (cd "$am_dirpart" \
21209 && sed -e '/# am--include-marker/d' "$am_filepart" \
21210 | $MAKE -f - am--depfiles) >&5 2>&5
21211 ac_status=$?
21212 echo "$as_me:$LINENO: \$? = $ac_status" >&5
21213 (exit $ac_status); } || am_rc=$?
2123021214 done
21215 if test $am_rc -ne 0; then
21216 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
21217 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
21218 as_fn_error $? "Something went wrong bootstrapping makefile fragments
21219 for automatic dependency tracking. Try re-running configure with the
21220 '--disable-dependency-tracking' option to at least be able to build
21221 the package (albeit without support for automatic dependency tracking).
21222 See \`config.log' for more details" "$LINENO" 5; }
21223 fi
21224 { am_dirpart=; unset am_dirpart;}
21225 { am_filepart=; unset am_filepart;}
21226 { am_mf=; unset am_mf;}
21227 { am_rc=; unset am_rc;}
21228 rm -f conftest-deps.mk
2123121229 }
2123221230 ;;
2123321231 "libtool":C)
00 dnl Set package name and maintainer
1 AC_INIT([eiciel],[0.9.12.1],[rofirrim@gmail.com])
1 AC_INIT([eiciel],[0.9.13],[rofirrim@gmail.com])
22
33 dnl Where are we
44 AC_CANONICAL_BUILD
8181 AS_IF([test "x$with_gnome_version" = "x3"], [
8282 dnl Check for gtkmm-3 and dependencies from GNOME 3 ...
8383 AC_MSG_NOTICE([checking for dependencies for GNOME 3 version of eiciel])
84 PKG_CHECK_MODULES(GTKMM, gtkmm-3.0 >= 3.0.0)
84 PKG_CHECK_MODULES(GTKMM, gtkmm-3.0 >= 3.0.0 giomm-2.4 >= 2.50.0)
8585 AM_COND_IF([ENABLE_NAUTILUS_EXTENSION], [PKG_CHECK_MODULES(NAUTILUS_EXTENSION, libnautilus-extension >= 3.0.0)])
8686 ], [
8787 dnl ... or check for gtkmm-2.4 and dependencies from GNOME 2
8888 AC_MSG_NOTICE([checking for dependencies for GNOME 2 version of eiciel])
89 PKG_CHECK_MODULES(GTKMM, gtkmm-2.4 >= 2.4.0 libgnome-2.0 >= 2.10.0, [AC_DEFINE(USING_GNOME2, 1)])
89 PKG_CHECK_MODULES(GTKMM, gtkmm-2.4 >= 2.4.0 libgnome-2.0 >= 2.10.0 giomm-2.4 >= 2.50.0, [AC_DEFINE(USING_GNOME2, 1)])
9090 AM_COND_IF([ENABLE_NAUTILUS_EXTENSION], [PKG_CHECK_MODULES(NAUTILUS_EXTENSION, libnautilus-extension >= 2.10.0 libnautilus-extension < 2.90)])
9191 ])
9292
155155
156156 if test x$enable_eua = xyes;
157157 then
158 AC_CHECK_HEADERS([attr/xattr.h], [], AC_MSG_ERROR([This header is mandatory for extended user attributes support]), [])
158 AC_CHECK_HEADERS([sys/xattr.h], [], AC_MSG_ERROR([This header is mandatory for extended user attributes support]), [])
159159 AC_DEFINE([ENABLE_USER_XATTR], [1], [Enables user extended attributes support])
160160 fi
161161 AM_CONDITIONAL(ENABLE_USER_XATTR, test x$enable_eua = xyes)
00 #! /bin/sh
11 # depcomp - compile a program generating dependencies as side-effects
22
3 scriptversion=2013-05-30.07; # UTC
4
5 # Copyright (C) 1999-2014 Free Software Foundation, Inc.
3 scriptversion=2018-03-07.03; # UTC
4
5 # Copyright (C) 1999-2018 Free Software Foundation, Inc.
66
77 # This program is free software; you can redistribute it and/or modify
88 # it under the terms of the GNU General Public License as published by
1515 # GNU General Public License for more details.
1616
1717 # You should have received a copy of the GNU General Public License
18 # along with this program. If not, see <http://www.gnu.org/licenses/>.
18 # along with this program. If not, see <https://www.gnu.org/licenses/>.
1919
2020 # As a special exception to the GNU General Public License, if you
2121 # distribute this file as part of a program that contains a
782782 # Local Variables:
783783 # mode: shell-script
784784 # sh-indentation: 2
785 # eval: (add-hook 'write-file-hooks 'time-stamp)
785 # eval: (add-hook 'before-save-hook 'time-stamp)
786786 # time-stamp-start: "scriptversion="
787787 # time-stamp-format: "%:y-%02m-%02d.%02H"
788 # time-stamp-time-zone: "UTC"
788 # time-stamp-time-zone: "UTC0"
789789 # time-stamp-end: "; # UTC"
790790 # End:
0 # Makefile.in generated by automake 1.15 from Makefile.am.
0 # Makefile.in generated by automake 1.16.1 from Makefile.am.
11 # @configure_input@
22
3 # Copyright (C) 1994-2014 Free Software Foundation, Inc.
3 # Copyright (C) 1994-2018 Free Software Foundation, Inc.
44
55 # This Makefile.in is free software; the Free Software Foundation
66 # gives unlimited permission to copy and/or distribute it,
170170 $(RECURSIVE_CLEAN_TARGETS) \
171171 $(am__extra_recursive_targets)
172172 AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
173 distdir
173 distdir distdir-am
174174 am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
175175 # Read a list of newline-separated strings from the standard input,
176176 # and print each of them once, without duplicates. Input order is
407407 *config.status*) \
408408 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
409409 *) \
410 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
411 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
410 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
411 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
412412 esac;
413413
414414 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
546546 distclean-tags:
547547 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
548548
549 distdir: $(DISTFILES)
549 distdir: $(BUILT_SOURCES)
550 $(MAKE) $(AM_MAKEFLAGS) distdir-am
551
552 distdir-am: $(DISTFILES)
550553 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
551554 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
552555 list='$(DISTFILES)'; \
0 # Makefile.in generated by automake 1.15 from Makefile.am.
0 # Makefile.in generated by automake 1.16.1 from Makefile.am.
11 # @configure_input@
22
3 # Copyright (C) 1994-2014 Free Software Foundation, Inc.
3 # Copyright (C) 1994-2018 Free Software Foundation, Inc.
44
55 # This Makefile.in is free software; the Free Software Foundation
66 # gives unlimited permission to copy and/or distribute it,
354354 *config.status*) \
355355 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
356356 *) \
357 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
358 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
357 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
358 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
359359 esac;
360360
361361 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
400400 cscope cscopelist:
401401
402402
403 distdir: $(DISTFILES)
403 distdir: $(BUILT_SOURCES)
404 $(MAKE) $(AM_MAKEFLAGS) distdir-am
405
406 distdir-am: $(DISTFILES)
404407 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
405408 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
406409 list='$(DISTFILES)'; \
55 <credit type="author">
66 <name>Roger Ferrer Ibáñez</name>
77 <email>rofirrim@gmail.com</email>
8 <years>2004-2014</years>
8 <years>2004-2019</years>
99 </credit>
1010 <credit type="collaborator">
1111 <name>Daniel Armengol Garreta</name>
0 # Makefile.in generated by automake 1.15 from Makefile.am.
0 # Makefile.in generated by automake 1.16.1 from Makefile.am.
11 # @configure_input@
22
3 # Copyright (C) 1994-2014 Free Software Foundation, Inc.
3 # Copyright (C) 1994-2018 Free Software Foundation, Inc.
44
55 # This Makefile.in is free software; the Free Software Foundation
66 # gives unlimited permission to copy and/or distribute it,
139139 $(RECURSIVE_CLEAN_TARGETS) \
140140 $(am__extra_recursive_targets)
141141 AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
142 distdir
142 distdir distdir-am
143143 am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
144144 # Read a list of newline-separated strings from the standard input,
145145 # and print each of them once, without duplicates. Input order is
361361 *config.status*) \
362362 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
363363 *) \
364 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
365 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
364 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
365 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
366366 esac;
367367
368368 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
479479 distclean-tags:
480480 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
481481
482 distdir: $(DISTFILES)
482 distdir: $(BUILT_SOURCES)
483 $(MAKE) $(AM_MAKEFLAGS) distdir-am
484
485 distdir-am: $(DISTFILES)
483486 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
484487 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
485488 list='$(DISTFILES)'; \
0 # Makefile.in generated by automake 1.15 from Makefile.am.
0 # Makefile.in generated by automake 1.16.1 from Makefile.am.
11 # @configure_input@
22
3 # Copyright (C) 1994-2014 Free Software Foundation, Inc.
3 # Copyright (C) 1994-2018 Free Software Foundation, Inc.
44
55 # This Makefile.in is free software; the Free Software Foundation
66 # gives unlimited permission to copy and/or distribute it,
351351 *config.status*) \
352352 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
353353 *) \
354 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
355 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
354 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
355 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
356356 esac;
357357
358358 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
397397 cscope cscopelist:
398398
399399
400 distdir: $(DISTFILES)
400 distdir: $(BUILT_SOURCES)
401 $(MAKE) $(AM_MAKEFLAGS) distdir-am
402
403 distdir-am: $(DISTFILES)
401404 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
402405 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
403406 list='$(DISTFILES)'; \
00 #!/bin/sh
11 # install - install a program, script, or datafile
22
3 scriptversion=2014-09-12.12; # UTC
3 scriptversion=2018-03-11.20; # UTC
44
55 # This originates from X11R5 (mit/util/scripts/install.sh), which was
66 # later released in X11R6 (xc/config/util/install.sh) with the
270270 fi
271271 dst=$dst_arg
272272
273 # If destination is a directory, append the input filename; won't work
274 # if double slashes aren't ignored.
273 # If destination is a directory, append the input filename.
275274 if test -d "$dst"; then
276275 if test "$is_target_a_directory" = never; then
277276 echo "$0: $dst_arg: Is a directory" >&2
278277 exit 1
279278 fi
280279 dstdir=$dst
281 dst=$dstdir/`basename "$src"`
280 dstbase=`basename "$src"`
281 case $dst in
282 */) dst=$dst$dstbase;;
283 *) dst=$dst/$dstbase;;
284 esac
282285 dstdir_status=0
283286 else
284287 dstdir=`dirname "$dst"`
286289 dstdir_status=$?
287290 fi
288291 fi
292
293 case $dstdir in
294 */) dstdirslash=$dstdir;;
295 *) dstdirslash=$dstdir/;;
296 esac
289297
290298 obsolete_mkdir_used=false
291299
323331 # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
324332 ;;
325333 *)
326 # $RANDOM is not portable (e.g. dash); use it when possible to
327 # lower collision chance
334 # Note that $RANDOM variable is not portable (e.g. dash); Use it
335 # here however when possible just to lower collision chance.
328336 tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
337
329338 trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0
330339
331 # As "mkdir -p" follows symlinks and we work in /tmp possibly; so
332 # create the $tmpdir first (and fail if unsuccessful) to make sure
333 # that nobody tries to guess the $tmpdir name.
340 # Because "mkdir -p" follows existing symlinks and we likely work
341 # directly in world-writeable /tmp, make sure that the '$tmpdir'
342 # directory is successfully created first before we actually test
343 # 'mkdir -p' feature.
334344 if (umask $mkdir_umask &&
335345 $mkdirprog $mkdir_mode "$tmpdir" &&
336346 exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
433443 else
434444
435445 # Make a couple of temp file names in the proper directory.
436 dsttmp=$dstdir/_inst.$$_
437 rmtmp=$dstdir/_rm.$$_
446 dsttmp=${dstdirslash}_inst.$$_
447 rmtmp=${dstdirslash}_rm.$$_
438448
439449 # Trap to clean up those temp files at exit.
440450 trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
499509 done
500510
501511 # Local variables:
502 # eval: (add-hook 'write-file-hooks 'time-stamp)
512 # eval: (add-hook 'before-save-hook 'time-stamp)
503513 # time-stamp-start: "scriptversion="
504514 # time-stamp-format: "%:y-%02m-%02d.%02H"
505 # time-stamp-time-zone: "UTC"
515 # time-stamp-time-zone: "UTC0"
506516 # time-stamp-end: "; # UTC"
507517 # End:
3030
3131 PROGRAM=libtool
3232 PACKAGE=libtool
33 VERSION="2.4.6 Debian-2.4.6-2"
33 VERSION="2.4.6 Debian-2.4.6-9"
3434 package_revision=2.4.6
3535
3636
13691369 #! /bin/sh
13701370
13711371 # Set a version string for this script.
1372 scriptversion=2014-01-07.03; # UTC
1372 scriptversion=2015-10-07.11; # UTC
13731373
13741374 # A portable, pluggable option parser for Bourne shell.
13751375 # Written by Gary V. Vaughan, 2010
15291529 {
15301530 $debug_cmd
15311531
1532 _G_rc_run_hooks=false
1533
15321534 case " $hookable_fns " in
15331535 *" $1 "*) ;;
15341536 *) func_fatal_error "'$1' does not support hook funcions.n" ;;
15371539 eval _G_hook_fns=\$$1_hooks; shift
15381540
15391541 for _G_hook in $_G_hook_fns; do
1540 eval $_G_hook '"$@"'
1541
1542 # store returned options list back into positional
1543 # parameters for next 'cmd' execution.
1544 eval _G_hook_result=\$${_G_hook}_result
1545 eval set dummy "$_G_hook_result"; shift
1542 if eval $_G_hook '"$@"'; then
1543 # store returned options list back into positional
1544 # parameters for next 'cmd' execution.
1545 eval _G_hook_result=\$${_G_hook}_result
1546 eval set dummy "$_G_hook_result"; shift
1547 _G_rc_run_hooks=:
1548 fi
15461549 done
15471550
1548 func_quote_for_eval ${1+"$@"}
1549 func_run_hooks_result=$func_quote_for_eval_result
1551 $_G_rc_run_hooks && func_run_hooks_result=$_G_hook_result
15501552 }
15511553
15521554
15561558 ## --------------- ##
15571559
15581560 # In order to add your own option parsing hooks, you must accept the
1559 # full positional parameter list in your hook function, remove any
1560 # options that you action, and then pass back the remaining unprocessed
1561 # full positional parameter list in your hook function, you may remove/edit
1562 # any options that you action, and then pass back the remaining unprocessed
15611563 # options in '<hooked_function_name>_result', escaped suitably for
1562 # 'eval'. Like this:
1564 # 'eval'. In this case you also must return $EXIT_SUCCESS to let the
1565 # hook's caller know that it should pay attention to
1566 # '<hooked_function_name>_result'. Returning $EXIT_FAILURE signalizes that
1567 # arguments are left untouched by the hook and therefore caller will ignore the
1568 # result variable.
1569 #
1570 # Like this:
15631571 #
15641572 # my_options_prep ()
15651573 # {
15691577 # usage_message=$usage_message'
15701578 # -s, --silent don'\''t print informational messages
15711579 # '
1572 #
1573 # func_quote_for_eval ${1+"$@"}
1574 # my_options_prep_result=$func_quote_for_eval_result
1580 # # No change in '$@' (ignored completely by this hook). There is
1581 # # no need to do the equivalent (but slower) action:
1582 # # func_quote_for_eval ${1+"$@"}
1583 # # my_options_prep_result=$func_quote_for_eval_result
1584 # false
15751585 # }
15761586 # func_add_hook func_options_prep my_options_prep
15771587 #
15801590 # {
15811591 # $debug_cmd
15821592 #
1593 # args_changed=false
1594 #
15831595 # # Note that for efficiency, we parse as many options as we can
15841596 # # recognise in a loop before passing the remainder back to the
15851597 # # caller on the first unrecognised argument we encounter.
15861598 # while test $# -gt 0; do
15871599 # opt=$1; shift
15881600 # case $opt in
1589 # --silent|-s) opt_silent=: ;;
1601 # --silent|-s) opt_silent=:
1602 # args_changed=:
1603 # ;;
15901604 # # Separate non-argument short options:
15911605 # -s*) func_split_short_opt "$_G_opt"
15921606 # set dummy "$func_split_short_opt_name" \
15931607 # "-$func_split_short_opt_arg" ${1+"$@"}
15941608 # shift
1609 # args_changed=:
15951610 # ;;
1596 # *) set dummy "$_G_opt" "$*"; shift; break ;;
1611 # *) # Make sure the first unrecognised option "$_G_opt"
1612 # # is added back to "$@", we could need that later
1613 # # if $args_changed is true.
1614 # set dummy "$_G_opt" ${1+"$@"}; shift; break ;;
15971615 # esac
15981616 # done
15991617 #
1600 # func_quote_for_eval ${1+"$@"}
1601 # my_silent_option_result=$func_quote_for_eval_result
1618 # if $args_changed; then
1619 # func_quote_for_eval ${1+"$@"}
1620 # my_silent_option_result=$func_quote_for_eval_result
1621 # fi
1622 #
1623 # $args_changed
16021624 # }
16031625 # func_add_hook func_parse_options my_silent_option
16041626 #
16101632 # $opt_silent && $opt_verbose && func_fatal_help "\
16111633 # '--silent' and '--verbose' options are mutually exclusive."
16121634 #
1613 # func_quote_for_eval ${1+"$@"}
1614 # my_option_validation_result=$func_quote_for_eval_result
1635 # false
16151636 # }
16161637 # func_add_hook func_validate_options my_option_validation
16171638 #
1618 # You'll alse need to manually amend $usage_message to reflect the extra
1639 # You'll also need to manually amend $usage_message to reflect the extra
16191640 # options you parse. It's preferable to append if you can, so that
16201641 # multiple option parsing hooks can be added safely.
1642
1643
1644 # func_options_finish [ARG]...
1645 # ----------------------------
1646 # Finishing the option parse loop (call 'func_options' hooks ATM).
1647 func_options_finish ()
1648 {
1649 $debug_cmd
1650
1651 _G_func_options_finish_exit=false
1652 if func_run_hooks func_options ${1+"$@"}; then
1653 func_options_finish_result=$func_run_hooks_result
1654 _G_func_options_finish_exit=:
1655 fi
1656
1657 $_G_func_options_finish_exit
1658 }
16211659
16221660
16231661 # func_options [ARG]...
16291667 {
16301668 $debug_cmd
16311669
1632 func_options_prep ${1+"$@"}
1633 eval func_parse_options \
1634 ${func_options_prep_result+"$func_options_prep_result"}
1635 eval func_validate_options \
1636 ${func_parse_options_result+"$func_parse_options_result"}
1637
1638 eval func_run_hooks func_options \
1639 ${func_validate_options_result+"$func_validate_options_result"}
1640
1641 # save modified positional parameters for caller
1642 func_options_result=$func_run_hooks_result
1670 _G_rc_options=false
1671
1672 for my_func in options_prep parse_options validate_options options_finish
1673 do
1674 if eval func_$my_func '${1+"$@"}'; then
1675 eval _G_res_var='$'"func_${my_func}_result"
1676 eval set dummy "$_G_res_var" ; shift
1677 _G_rc_options=:
1678 fi
1679 done
1680
1681 # Save modified positional parameters for caller. As a top-level
1682 # options-parser function we always need to set the 'func_options_result'
1683 # variable (regardless the $_G_rc_options value).
1684 if $_G_rc_options; then
1685 func_options_result=$_G_res_var
1686 else
1687 func_quote_for_eval ${1+"$@"}
1688 func_options_result=$func_quote_for_eval_result
1689 fi
1690
1691 $_G_rc_options
16431692 }
16441693
16451694
16481697 # All initialisations required before starting the option parse loop.
16491698 # Note that when calling hook functions, we pass through the list of
16501699 # positional parameters. If a hook function modifies that list, and
1651 # needs to propogate that back to rest of this script, then the complete
1700 # needs to propagate that back to rest of this script, then the complete
16521701 # modified list must be put in 'func_run_hooks_result' before
1653 # returning.
1702 # returning $EXIT_SUCCESS (otherwise $EXIT_FAILURE is returned).
16541703 func_hookable func_options_prep
16551704 func_options_prep ()
16561705 {
16601709 opt_verbose=false
16611710 opt_warning_types=
16621711
1663 func_run_hooks func_options_prep ${1+"$@"}
1664
1665 # save modified positional parameters for caller
1666 func_options_prep_result=$func_run_hooks_result
1712 _G_rc_options_prep=false
1713 if func_run_hooks func_options_prep ${1+"$@"}; then
1714 _G_rc_options_prep=:
1715 # save modified positional parameters for caller
1716 func_options_prep_result=$func_run_hooks_result
1717 fi
1718
1719 $_G_rc_options_prep
16671720 }
16681721
16691722
16771730
16781731 func_parse_options_result=
16791732
1733 _G_rc_parse_options=false
16801734 # this just eases exit handling
16811735 while test $# -gt 0; do
16821736 # Defer to hook functions for initial option parsing, so they
16831737 # get priority in the event of reusing an option name.
1684 func_run_hooks func_parse_options ${1+"$@"}
1685
1686 # Adjust func_parse_options positional parameters to match
1687 eval set dummy "$func_run_hooks_result"; shift
1738 if func_run_hooks func_parse_options ${1+"$@"}; then
1739 eval set dummy "$func_run_hooks_result"; shift
1740 _G_rc_parse_options=:
1741 fi
16881742
16891743 # Break out of the loop if we already parsed every option.
16901744 test $# -gt 0 || break
16911745
1746 _G_match_parse_options=:
16921747 _G_opt=$1
16931748 shift
16941749 case $_G_opt in
17031758 ;;
17041759
17051760 --warnings|--warning|-W)
1706 test $# = 0 && func_missing_arg $_G_opt && break
1761 if test $# = 0 && func_missing_arg $_G_opt; then
1762 _G_rc_parse_options=:
1763 break
1764 fi
17071765 case " $warning_categories $1" in
17081766 *" $1 "*)
17091767 # trailing space prevents matching last $1 above
17561814 shift
17571815 ;;
17581816
1759 --) break ;;
1817 --) _G_rc_parse_options=: ; break ;;
17601818 -*) func_fatal_help "unrecognised option: '$_G_opt'" ;;
1761 *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;;
1819 *) set dummy "$_G_opt" ${1+"$@"}; shift
1820 _G_match_parse_options=false
1821 break
1822 ;;
17621823 esac
1824
1825 $_G_match_parse_options && _G_rc_parse_options=:
17631826 done
17641827
1765 # save modified positional parameters for caller
1766 func_quote_for_eval ${1+"$@"}
1767 func_parse_options_result=$func_quote_for_eval_result
1828
1829 if $_G_rc_parse_options; then
1830 # save modified positional parameters for caller
1831 func_quote_for_eval ${1+"$@"}
1832 func_parse_options_result=$func_quote_for_eval_result
1833 fi
1834
1835 $_G_rc_parse_options
17681836 }
17691837
17701838
17771845 {
17781846 $debug_cmd
17791847
1848 _G_rc_validate_options=false
1849
17801850 # Display all warnings if -W was not given.
17811851 test -n "$opt_warning_types" || opt_warning_types=" $warning_categories"
17821852
1783 func_run_hooks func_validate_options ${1+"$@"}
1853 if func_run_hooks func_validate_options ${1+"$@"}; then
1854 # save modified positional parameters for caller
1855 func_validate_options_result=$func_run_hooks_result
1856 _G_rc_validate_options=:
1857 fi
17841858
17851859 # Bail if the options were screwed!
17861860 $exit_cmd $EXIT_FAILURE
17871861
1788 # save modified positional parameters for caller
1789 func_validate_options_result=$func_run_hooks_result
1862 $_G_rc_validate_options
17901863 }
17911864
17921865
20672140 compiler: $LTCC
20682141 compiler flags: $LTCFLAGS
20692142 linker: $LD (gnu? $with_gnu_ld)
2070 version: $progname $scriptversion Debian-2.4.6-2
2143 version: $progname $scriptversion Debian-2.4.6-9
20712144 automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q`
20722145 autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q`
20732146
22692342 nonopt=
22702343 preserve_args=
22712344
2345 _G_rc_lt_options_prep=:
2346
22722347 # Shorthand for --mode=foo, only valid as the first argument
22732348 case $1 in
22742349 clean|clea|cle|cl)
22922367 uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
22932368 shift; set dummy --mode uninstall ${1+"$@"}; shift
22942369 ;;
2370 *)
2371 _G_rc_lt_options_prep=false
2372 ;;
22952373 esac
22962374
2297 # Pass back the list of options.
2298 func_quote_for_eval ${1+"$@"}
2299 libtool_options_prep_result=$func_quote_for_eval_result
2375 if $_G_rc_lt_options_prep; then
2376 # Pass back the list of options.
2377 func_quote_for_eval ${1+"$@"}
2378 libtool_options_prep_result=$func_quote_for_eval_result
2379 fi
2380
2381 $_G_rc_lt_options_prep
23002382 }
23012383 func_add_hook func_options_prep libtool_options_prep
23022384
23082390 {
23092391 $debug_cmd
23102392
2393 _G_rc_lt_parse_options=false
2394
23112395 # Perform our own loop to consume as many options as possible in
23122396 # each iteration.
23132397 while test $# -gt 0; do
2398 _G_match_lt_parse_options=:
23142399 _G_opt=$1
23152400 shift
23162401 case $_G_opt in
23852470 func_append preserve_args " $_G_opt"
23862471 ;;
23872472
2388 # An option not handled by this hook function:
2389 *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;;
2473 # An option not handled by this hook function:
2474 *) set dummy "$_G_opt" ${1+"$@"} ; shift
2475 _G_match_lt_parse_options=false
2476 break
2477 ;;
23902478 esac
2479 $_G_match_lt_parse_options && _G_rc_lt_parse_options=:
23912480 done
23922481
2393
2394 # save modified positional parameters for caller
2395 func_quote_for_eval ${1+"$@"}
2396 libtool_parse_options_result=$func_quote_for_eval_result
2482 if $_G_rc_lt_parse_options; then
2483 # save modified positional parameters for caller
2484 func_quote_for_eval ${1+"$@"}
2485 libtool_parse_options_result=$func_quote_for_eval_result
2486 fi
2487
2488 $_G_rc_lt_parse_options
23972489 }
23982490 func_add_hook func_parse_options libtool_parse_options
23992491
72747366 # -specs=* GCC specs files
72757367 # -stdlib=* select c++ std lib with clang
72767368 # -fsanitize=* Clang/GCC memory and address sanitizer
7369 # -fuse-ld=* Linker select flags for GCC
72777370 -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
72787371 -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
72797372 -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \
7280 -specs=*|-fsanitize=*)
7373 -specs=*|-fsanitize=*|-fuse-ld=*)
72817374 func_quote_for_eval "$arg"
72827375 arg=$func_quote_for_eval_result
72837376 func_append compile_command " $arg"
40624062 if AC_TRY_EVAL(ac_compile); then
40634063 # Now try to grab the symbols.
40644064 nlist=conftest.nm
4065 if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then
4065 $ECHO "$as_me:$LINENO: $NM conftest.$ac_objext | $lt_cv_sys_global_symbol_pipe > $nlist" >&AS_MESSAGE_LOG_FD
4066 if eval "$NM" conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist 2>&AS_MESSAGE_LOG_FD && test -s "$nlist"; then
40664067 # Try sorting and uniquifying the output.
40674068 if sort "$nlist" | uniq > "$nlist"T; then
40684069 mv -f "$nlist"T "$nlist"
64376438 # Commands to make compiler produce verbose output that lists
64386439 # what "hidden" libraries, object files and flags are used when
64396440 # linking a shared library.
6440 output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
6441 output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"'
64416442
64426443 else
64436444 GXX=no
68126813 # explicitly linking system object files so we need to strip them
68136814 # from the output so that they don't get included in the library
68146815 # dependencies.
6815 output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
6816 output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP " \-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
68166817 ;;
68176818 *)
68186819 if test yes = "$GXX"; then
68776878 # explicitly linking system object files so we need to strip them
68786879 # from the output so that they don't get included in the library
68796880 # dependencies.
6880 output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
6881 output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP " \-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
68816882 ;;
68826883 *)
68836884 if test yes = "$GXX"; then
72167217 # Commands to make compiler produce verbose output that lists
72177218 # what "hidden" libraries, object files and flags are used when
72187219 # linking a shared library.
7219 output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
7220 output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"'
72207221
72217222 else
72227223 # FIXME: insert proper C++ library support
73007301 # Commands to make compiler produce verbose output that lists
73017302 # what "hidden" libraries, object files and flags are used when
73027303 # linking a shared library.
7303 output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
7304 output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"'
73047305 else
73057306 # g++ 2.7 appears to require '-G' NOT '-shared' on this
73067307 # platform.
73117312 # Commands to make compiler produce verbose output that lists
73127313 # what "hidden" libraries, object files and flags are used when
73137314 # linking a shared library.
7314 output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
7315 output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"'
73157316 fi
73167317
73177318 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $wl$libdir'
0 # Makefile.in generated by automake 1.15 from Makefile.am.
0 # Makefile.in generated by automake 1.16.1 from Makefile.am.
11 # @configure_input@
22
3 # Copyright (C) 1994-2014 Free Software Foundation, Inc.
3 # Copyright (C) 1994-2018 Free Software Foundation, Inc.
44
55 # This Makefile.in is free software; the Free Software Foundation
66 # gives unlimited permission to copy and/or distribute it,
333333 *config.status*) \
334334 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
335335 *) \
336 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
337 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
336 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
337 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
338338 esac;
339339
340340 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
401401 cscope cscopelist:
402402
403403
404 distdir: $(DISTFILES)
404 distdir: $(BUILT_SOURCES)
405 $(MAKE) $(AM_MAKEFLAGS) distdir-am
406
407 distdir-am: $(DISTFILES)
405408 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
406409 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
407410 list='$(DISTFILES)'; \
00 #! /bin/sh
11 # Common wrapper for a few potentially missing GNU programs.
22
3 scriptversion=2013-10-28.13; # UTC
4
5 # Copyright (C) 1996-2014 Free Software Foundation, Inc.
3 scriptversion=2018-03-07.03; # UTC
4
5 # Copyright (C) 1996-2018 Free Software Foundation, Inc.
66 # Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
77
88 # This program is free software; you can redistribute it and/or modify
1616 # GNU General Public License for more details.
1717
1818 # You should have received a copy of the GNU General Public License
19 # along with this program. If not, see <http://www.gnu.org/licenses/>.
19 # along with this program. If not, see <https://www.gnu.org/licenses/>.
2020
2121 # As a special exception to the GNU General Public License, if you
2222 # distribute this file as part of a program that contains a
100100 exit $st
101101 fi
102102
103 perl_URL=http://www.perl.org/
104 flex_URL=http://flex.sourceforge.net/
105 gnu_software_URL=http://www.gnu.org/software
103 perl_URL=https://www.perl.org/
104 flex_URL=https://github.com/westes/flex
105 gnu_software_URL=https://www.gnu.org/software
106106
107107 program_details ()
108108 {
206206 exit $st
207207
208208 # Local variables:
209 # eval: (add-hook 'write-file-hooks 'time-stamp)
209 # eval: (add-hook 'before-save-hook 'time-stamp)
210210 # time-stamp-start: "scriptversion="
211211 # time-stamp-format: "%:y-%02m-%02d.%02H"
212 # time-stamp-time-zone: "UTC"
212 # time-stamp-time-zone: "UTC0"
213213 # time-stamp-end: "; # UTC"
214214 # End:
00 # Available languages
1 ar ca cs da de en_GB en_US es fr hu it ja ko nl nn pl pt_BR ru sv uk zh_CN zh_TW
1 ar ca cs da de en_GB en_US es fa fr hi hu id it ja ko nl nn pl pt_BR ru sv uk zh_CN zh_TW
0 # Files to translate
0 src/eiciel_participant_target.hpp
1 src/participant_list.hpp
2 src/eiciel_participant_list_controller.cpp
3 src/eiciel_participant_list.hpp
4 src/cellrenderer_acl.hpp
5 src/eiciel_xattr_controller.hpp
6 src/eiciel_xattr_window.cpp
7 src/xattr_list_model.hpp
8 src/eiciel_main_window_controller.cpp
9 src/eiciel_acl_list.hpp
10 src/eiciel_container.cpp
11 src/eiciel_nautilus_page.cpp
12 src/eiciel_enclosed_editor_window_controller.hpp
13 src/eiciel_standalone.cpp
14 src/acl_manager.hpp
15 src/eiciel_enclosed_editor_window.hpp
16 src/acl_list.hpp
17 src/eiciel_xattr_controller.cpp
18 src/eiciel_acl_list_controller.cpp
19 src/acl_element_kind.hpp
20 src/eiciel_participant_list_controller.hpp
21 src/eiciel_xattr_window.hpp
22 src/eiciel_main_window_controller.hpp
23 src/eiciel_acl_list_controller.hpp
24 src/eiciel_enclosed_editor_window_controller.cpp
25 src/eiciel_enclosed_editor_window.cpp
26 src/eiciel_nautilus_page.hpp
127 src/eiciel_container.hpp
2 src/acl_manager.hpp
3 src/eiciel_container.cpp
28 src/eiciel_main_window.hpp
29 src/xattr_manager.hpp
430 src/acl_manager.cpp
5 src/eiciel_xattr_controller.hpp
6 src/xattr_list_model.hpp
7 src/eiciel_nautilus_page.hpp
8 src/eiciel_xattr_window.cpp
9 src/acl_element_kind.hpp
10 src/eiciel_xattr_controller.cpp
11 src/eiciel_standalone.cpp
12 src/xattr_manager.hpp
31 src/xattr_manager.cpp
32 src/eiciel_main_window.cpp
1333 src/cellrenderer_acl.cpp
14 src/eiciel_main_controller.cpp
15 src/participant_list.hpp
16 src/eiciel_main_controller.hpp
17 src/eiciel_main_window.hpp
18 src/eiciel_xattr_window.hpp
19 src/eiciel_main_window.cpp
20 src/eiciel_nautilus_page.cpp
21 src/acl_list.hpp
22 src/cellrenderer_acl.hpp
23 src/xattr_manager.cpp
34 src/eiciel_participant_list.cpp
35 src/eiciel_acl_list.cpp
Binary diff not shown
+174
-146
po/ar.po less more
44 msgstr ""
55 "Project-Id-Version: eiciel\n"
66 "Report-Msgid-Bugs-To: rofirrim@gmail.com\n"
7 "POT-Creation-Date: 2018-01-16 19:46+0000\n"
8 "PO-Revision-Date: 2016-03-31 06:16+0000\n"
7 "POT-Creation-Date: 2020-08-24 15:11+0200\n"
8 "PO-Revision-Date: 2020-05-02 19:50+0000\n"
99 "Last-Translator: mohammad alhargan <malham1@gmail.com>\n"
10 "Language-Team: Arabic <http://l10n.opensuse.org/projects/eiciel/master/ar/>\n"
10 "Language-Team: Arabic <https://l10n.opensuse.org/projects/eiciel/master/ar/"
11 ">\n"
1112 "Language: ar\n"
1213 "MIME-Version: 1.0\n"
1314 "Content-Type: text/plain; charset=UTF-8\n"
1415 "Content-Transfer-Encoding: 8bit\n"
1516 "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
1617 "&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n"
17 "X-Generator: Weblate 2.5\n"
18
19 #: src/eiciel_container.cpp:26
20 msgid "<b>File name</b>"
21 msgstr "<b>اسم الملف</b>"
22
23 #: src/eiciel_container.cpp:27 src/eiciel_container.cpp:183
24 msgid "No file opened"
25 msgstr "لا يوجد ملف مفتوح"
26
27 #: src/eiciel_container.cpp:30 src/eiciel_container.cpp:192
28 #: src/eiciel_container.cpp:194
29 msgid "About..."
30 msgstr "حول..."
31
32 #: src/eiciel_container.cpp:48 src/eiciel_nautilus_page.cpp:136
33 msgid "Access Control List"
34 msgstr "قائمة التحكم بالوصول"
35
36 #: src/eiciel_container.cpp:56 src/eiciel_nautilus_page.cpp:156
37 msgid "Extended user attributes"
38 msgstr "سمات موسعة للمستخدم"
39
40 #: src/eiciel_container.cpp:100
41 #, c-format
42 msgid "Could not show the help file: %s"
43 msgstr "تعذر إظهار ملف التعليمات: %s"
44
45 #: src/eiciel_container.cpp:123
46 msgid "Choose a file or a directory"
47 msgstr "اختر ملف أو مجلد"
48
49 #: src/eiciel_container.cpp:145
50 msgid "Could not open the file \""
51 msgstr "تعذر فتح الملف \""
52
53 #: src/acl_manager.cpp:50 src/xattr_manager.cpp:33
54 msgid "Only regular files or directories supported"
55 msgstr "يتم دعم الملفات أو المجلدات العادية فقط"
56
57 #: src/acl_manager.cpp:542
58 msgid "Textual representation of the ACL is wrong"
59 msgstr "التمثيل النصي لقوائم التحكم بالوصول (ACL) غير صحيح"
60
61 #: src/acl_manager.cpp:564
62 msgid "Default textual representation of the ACL is wrong"
63 msgstr "التمثيل النصي الافتراضي لقوائم التحكم بالوصول ACL غير صحيح"
64
65 #: src/eiciel_xattr_window.cpp:39
18 "X-Generator: Weblate 3.6.1\n"
19
20 #: src/eiciel_xattr_window.cpp:40
6621 msgid "Name"
6722 msgstr "الاسم"
6823
7025 msgid "Value"
7126 msgstr "القيمة"
7227
73 #: src/eiciel_xattr_window.cpp:176
28 #: src/eiciel_xattr_window.cpp:163
7429 msgid "Could not rename attribute name: "
7530 msgstr "تعذر تغيير اسم السمة: "
7631
77 #: src/eiciel_xattr_window.cpp:211
32 #: src/eiciel_xattr_window.cpp:190
7833 msgid "Could not change attribute value: "
7934 msgstr "تعذر تغيير قيمة السمة: "
8035
81 #: src/eiciel_xattr_window.cpp:248
36 #: src/eiciel_xattr_window.cpp:217
8237 msgid "Could not remove attribute: "
8338 msgstr "تعذرت إزالة السمة: "
8439
85 #: src/eiciel_xattr_window.cpp:280 src/eiciel_xattr_window.cpp:289
40 #: src/eiciel_xattr_window.cpp:242 src/eiciel_xattr_window.cpp:249
8641 msgid "New attribute"
8742 msgstr "سمة جديدة"
8843
89 #: src/eiciel_xattr_window.cpp:318
44 #: src/eiciel_xattr_window.cpp:275
9045 msgid "New value"
9146 msgstr "قيمة جديدة"
9247
93 #: src/eiciel_xattr_window.cpp:333
48 #: src/eiciel_xattr_window.cpp:287
9449 msgid "Could not add attribute: "
9550 msgstr "تعذرت إضافة السمة: "
9651
97 #: src/eiciel_standalone.cpp:48
98 msgid "Print version information"
99 msgstr "طباعة معلومات الإصدار"
100
101 #: src/eiciel_standalone.cpp:50
102 msgid "Access control list editor"
103 msgstr "محرر قائمة التحكم في الوصول"
104
105 #: src/eiciel_main_controller.cpp:172
52 #: src/eiciel_main_window_controller.cpp:118 src/eiciel_acl_list.cpp:366
10653 msgid "Mask"
10754 msgstr "القناع"
10855
109 #: src/eiciel_main_controller.cpp:177
56 #: src/eiciel_main_window_controller.cpp:125
11057 msgid "Other"
11158 msgstr "أخرى"
11259
113 #: src/eiciel_main_controller.cpp:250
60 #: src/eiciel_main_window_controller.cpp:182 src/eiciel_acl_list.cpp:399
11461 msgid "Default Mask"
11562 msgstr "القناع الافتراضي"
11663
117 #: src/eiciel_main_controller.cpp:258
64 #: src/eiciel_main_window_controller.cpp:190 src/eiciel_acl_list.cpp:393
11865 msgid "Default Other"
11966 msgstr "الآخر الافتراضي"
12067
121 #: src/eiciel_main_controller.cpp:328
68 #: src/eiciel_main_window_controller.cpp:267
12269 msgid "Could not add ACL entry: "
12370 msgstr "تعذرت إضافة إدخال ACL: "
12471
125 #: src/eiciel_main_controller.cpp:390
72 #: src/eiciel_main_window_controller.cpp:314
12673 msgid "Could not remove ACL entry: "
12774 msgstr "تعذر إزالة إدخال قوائم التحكم بالوصول ACL: "
12875
129 #: src/eiciel_main_controller.cpp:487
76 #: src/eiciel_main_window_controller.cpp:393
13077 msgid "Could not modify ACL entry: "
13178 msgstr "تعذر تعديل إدخال قوائم التحكم بالوصول (ACL): "
13279
133 #: src/eiciel_main_controller.cpp:516
80 #: src/eiciel_main_window_controller.cpp:548
81 #: src/eiciel_enclosed_editor_window_controller.cpp:33
13482 msgid "Are you sure you want to remove all ACL default entries?"
13583 msgstr ""
13684 "هل أنت متأكد أنك تريد إزالة كل الإدخالات الافتراضية لقوائم التحكم بالوصول "
13785 "(ACL)؟"
13886
139 #: src/eiciel_main_window.cpp:26
87 #: src/eiciel_container.cpp:26
88 msgid "<b>File name</b>"
89 msgstr "<b>اسم الملف</b>"
90
91 #: src/eiciel_container.cpp:27 src/eiciel_container.cpp:168
92 msgid "No file opened"
93 msgstr "لا يوجد ملف مفتوح"
94
95 #: src/eiciel_container.cpp:30 src/eiciel_container.cpp:177
96 #: src/eiciel_container.cpp:180
97 msgid "About..."
98 msgstr "حول..."
99
100 #: src/eiciel_container.cpp:47 src/eiciel_nautilus_page.cpp:129
101 msgid "Access Control List"
102 msgstr "قائمة التحكم بالوصول"
103
104 #: src/eiciel_container.cpp:56 src/eiciel_nautilus_page.cpp:145
105 msgid "Extended user attributes"
106 msgstr "سمات موسعة للمستخدم"
107
108 #: src/eiciel_container.cpp:97
109 #, c-format
110 msgid "Could not show the help file: %s"
111 msgstr "تعذر إظهار ملف التعليمات: %s"
112
113 #: src/eiciel_container.cpp:120
114 msgid "Choose a file or a directory"
115 msgstr "اختر ملف أو مجلد"
116
117 #: src/eiciel_container.cpp:137
118 msgid "Could not open the file \""
119 msgstr "تعذر فتح الملف \""
120
121 #: src/eiciel_standalone.cpp:46
122 msgid "Print version information"
123 msgstr "طباعة معلومات الإصدار"
124
125 #: src/eiciel_standalone.cpp:48
126 msgid "Access control list editor"
127 msgstr "محرر قائمة التحكم في الوصول"
128
129 #: src/eiciel_enclosed_editor_window.cpp:24
130 msgid "Edit ACLs for enclosed files"
131 msgstr "تحرير قوائم ACL للملفات المغلقة"
132
133 #: src/eiciel_enclosed_editor_window.cpp:25
134 msgid "_Cancel"
135 msgstr "الغاء"
136
137 #: src/eiciel_enclosed_editor_window.cpp:26
138 msgid "_Apply"
139 msgstr "تطبيق"
140
141 #: src/eiciel_enclosed_editor_window.cpp:30
142 msgid "<b>Participants in ACL for enclosed directories</b>"
143 msgstr "<b>المجلدات المشاركة في ACL المرفقة</b>"
144
145 #: src/eiciel_enclosed_editor_window.cpp:33
146 msgid "<b>Participants in ACL for enclosed files</b>"
147 msgstr "<b>المشاركون حالياً في الملفات المغلقة ACL</b>"
148
149 #: src/eiciel_enclosed_editor_window.cpp:36 src/eiciel_main_window.cpp:32
150 msgid "<b>Available participants</b>"
151 msgstr "<b>المشاركون المتوفرون</b>"
152
153 #: src/acl_manager.cpp:46 src/xattr_manager.cpp:32
154 msgid "Only regular files or directories supported"
155 msgstr "يتم دعم الملفات أو المجلدات العادية فقط"
156
157 #: src/acl_manager.cpp:463
158 msgid "Textual representation of the ACL is wrong"
159 msgstr "التمثيل النصي لقوائم التحكم بالوصول (ACL) غير صحيح"
160
161 #: src/acl_manager.cpp:484
162 msgid "Default textual representation of the ACL is wrong"
163 msgstr "التمثيل النصي الافتراضي لقوائم التحكم بالوصول ACL غير صحيح"
164
165 #: src/eiciel_main_window.cpp:30
140166 msgid "<b>Current participants in ACL</b>"
141167 msgstr "<b>المشاركون حالياً في ACL</b>"
142168
143 #: src/eiciel_main_window.cpp:32
169 #: src/eiciel_main_window.cpp:34
170 msgid "Edit ACLs for enclosed files..."
171 msgstr "تحرير قوائم ACL للملفات المغلقة ..."
172
173 #: src/eiciel_participant_list.cpp:30
174 msgid "User"
175 msgstr "المستخدم"
176
177 #: src/eiciel_participant_list.cpp:31
178 msgid "Group"
179 msgstr "المجموعة"
180
181 #: src/eiciel_participant_list.cpp:32
182 msgid "Default participant"
183 msgstr "المشارك الإفتراضي"
184
185 #: src/eiciel_participant_list.cpp:37
186 msgid "Add participant to ACL"
187 msgstr "إضافة مشارك إلى ACL"
188
189 #: src/eiciel_participant_list.cpp:38
190 msgid "Add participant to directory ACL"
191 msgstr "إضافة مشارك لمجلد ACL"
192
193 #: src/eiciel_participant_list.cpp:39
194 msgid "Add participant to file ACL"
195 msgstr "إضافة مشارك ملف ACL"
196
197 #: src/eiciel_participant_list.cpp:40
198 msgid "Advanced features"
199 msgstr "ميزات متقدمة"
200
201 #: src/eiciel_participant_list.cpp:42
202 msgid "Name of participant"
203 msgstr "اسم المشارك"
204
205 #: src/eiciel_participant_list.cpp:44
206 msgid "Also show system participants"
207 msgstr "إظهار المشاركين في النظام أيضًا"
208
209 #: src/eiciel_participant_list.cpp:80
210 msgid "Filter participants"
211 msgstr "تصفية المشاركون"
212
213 #: src/eiciel_participant_list.cpp:105
214 msgid "Participant"
215 msgstr "مشارك"
216
217 #: src/eiciel_participant_list.cpp:422
218 msgid "Participant not found"
219 msgstr "لم يتم العثور على المشارك"
220
221 #: src/eiciel_acl_list.cpp:33
144222 msgid "There are ineffective permissions"
145223 msgstr "توجد أذونات غير فعالة"
146224
147 #: src/eiciel_main_window.cpp:33
225 #: src/eiciel_acl_list.cpp:35
148226 msgid "Remove participant from ACL"
149227 msgstr "حذف مشترك من ACL"
150228
151 #: src/eiciel_main_window.cpp:34
229 #: src/eiciel_acl_list.cpp:36
152230 msgid "Edit default participants"
153231 msgstr "تحرير المشاركون الافتراضيون"
154232
155 #: src/eiciel_main_window.cpp:35
156 msgid "<b>Available participants</b>"
157 msgstr "<b>المشاركون المتوفرون</b>"
158
159 #: src/eiciel_main_window.cpp:38
160 msgid "User"
161 msgstr "المستخدم"
162
163 #: src/eiciel_main_window.cpp:39
164 msgid "Group"
165 msgstr "المجموعة"
166
167 #: src/eiciel_main_window.cpp:40
168 msgid "Default participant"
169 msgstr "المشارك الإفتراضي"
170
171 #: src/eiciel_main_window.cpp:45
172 msgid "Add participant to ACL"
173 msgstr "إضافة مشارك إلى ACL"
174
175 #: src/eiciel_main_window.cpp:46
176 msgid "Advanced features"
177 msgstr "ميزات متقدمة"
178
179 #: src/eiciel_main_window.cpp:48
180 msgid "Name of participant"
181 msgstr "اسم المشارك"
182
183 #: src/eiciel_main_window.cpp:50
184 msgid "Also show system participants"
185 msgstr "إظهار المشاركين في النظام أيضًا"
186
187 #: src/eiciel_main_window.cpp:112
233 #: src/eiciel_acl_list.cpp:79
188234 msgid "Entry"
189235 msgstr "الإدخال"
190236
191 #: src/eiciel_main_window.cpp:115
237 #: src/eiciel_acl_list.cpp:82
192238 msgid "Read"
193239 msgstr "قراءة"
194240
195 #: src/eiciel_main_window.cpp:126
241 #: src/eiciel_acl_list.cpp:95
196242 msgid "Write"
197243 msgstr "كتابة"
198244
199 #: src/eiciel_main_window.cpp:136
245 #: src/eiciel_acl_list.cpp:107
200246 msgid "Execute"
201247 msgstr "تنفيذ"
202248
203 #: src/eiciel_main_window.cpp:152 src/eiciel_main_window.cpp:162
204 #: src/eiciel_main_window.cpp:590
205 msgid "None"
206 msgstr "بلا"
207
208 #: src/eiciel_main_window.cpp:154
209 msgid "Only files"
210 msgstr "ملفات فقط"
211
212 #: src/eiciel_main_window.cpp:156
213 msgid "Only directories"
214 msgstr "مجلدات فقط"
215
216 #: src/eiciel_main_window.cpp:158
217 msgid "Both files and directories"
218 msgstr "الملفات والمجلدات معًا"
219
220 #: src/eiciel_main_window.cpp:166
221 msgid "Recursion"
222 msgstr "إعادة"
223
224 #: src/eiciel_main_window.cpp:201
225 msgid "Filter participants"
226 msgstr "تصفية المشاركون"
227
228 #: src/eiciel_main_window.cpp:222
229 msgid "Participant"
230 msgstr "مشارك"
231
232 #: src/eiciel_main_window.cpp:912
233 msgid "Participant not found"
234 msgstr "لم يتم العثور على المشارك"
249 #~ msgid "None"
250 #~ msgstr "بلا"
251
252 #~ msgid "Only files"
253 #~ msgstr "ملفات فقط"
254
255 #~ msgid "Only directories"
256 #~ msgstr "مجلدات فقط"
257
258 #~ msgid "Both files and directories"
259 #~ msgstr "الملفات والمجلدات معًا"
260
261 #~ msgid "Recursion"
262 #~ msgstr "إعادة"
235263
236264 #~ msgid "Default"
237265 #~ msgstr "افتراضي"
Binary diff not shown
+187
-160
po/ca.po less more
66 msgstr ""
77 "Project-Id-Version: Eiciel 0.9\n"
88 "Report-Msgid-Bugs-To: rofirrim@gmail.com\n"
9 "POT-Creation-Date: 2018-01-16 19:46+0000\n"
10 "PO-Revision-Date: 2017-01-05 11:53+0000\n"
9 "POT-Creation-Date: 2020-08-24 15:11+0200\n"
10 "PO-Revision-Date: 2018-10-22 18:00+0000\n"
1111 "Last-Translator: David Medina <medipas@gmail.com>\n"
1212 "Language-Team: Catalan <https://l10n.opensuse.org/projects/eiciel/master/ca/"
1313 ">\n"
1616 "Content-Type: text/plain; charset=UTF-8\n"
1717 "Content-Transfer-Encoding: 8bit\n"
1818 "Plural-Forms: nplurals=2; plural=n != 1;\n"
19 "X-Generator: Weblate 2.6\n"
19 "X-Generator: Weblate 2.18\n"
20
21 #: src/eiciel_xattr_window.cpp:40
22 msgid "Name"
23 msgstr "Nom"
24
25 #: src/eiciel_xattr_window.cpp:55
26 msgid "Value"
27 msgstr "Valor"
28
29 #: src/eiciel_xattr_window.cpp:163
30 msgid "Could not rename attribute name: "
31 msgstr "No s'ha pogut canviar el nom de l'atribut: "
32
33 #: src/eiciel_xattr_window.cpp:190
34 msgid "Could not change attribute value: "
35 msgstr "No s'ha pogut canviar el valor de l'atribut: "
36
37 #: src/eiciel_xattr_window.cpp:217
38 msgid "Could not remove attribute: "
39 msgstr "No s'ha pogut suprimir l'atribut: "
40
41 #: src/eiciel_xattr_window.cpp:242 src/eiciel_xattr_window.cpp:249
42 msgid "New attribute"
43 msgstr "Atribut nou"
44
45 #: src/eiciel_xattr_window.cpp:275
46 msgid "New value"
47 msgstr "Valor nou"
48
49 #: src/eiciel_xattr_window.cpp:287
50 msgid "Could not add attribute: "
51 msgstr "No s'ha pogut afegir l'atribut: "
52
53 #: src/eiciel_main_window_controller.cpp:118 src/eiciel_acl_list.cpp:366
54 msgid "Mask"
55 msgstr "Màscara"
56
57 #: src/eiciel_main_window_controller.cpp:125
58 msgid "Other"
59 msgstr "Altres"
60
61 #: src/eiciel_main_window_controller.cpp:182 src/eiciel_acl_list.cpp:399
62 msgid "Default Mask"
63 msgstr "Màscara per defecte"
64
65 #: src/eiciel_main_window_controller.cpp:190 src/eiciel_acl_list.cpp:393
66 msgid "Default Other"
67 msgstr "Altres per defecte"
68
69 #: src/eiciel_main_window_controller.cpp:267
70 msgid "Could not add ACL entry: "
71 msgstr "No s'ha pogut afegir l'entrada ACL: "
72
73 #: src/eiciel_main_window_controller.cpp:314
74 msgid "Could not remove ACL entry: "
75 msgstr "No es pot suprimir l'entrada ACL: "
76
77 #: src/eiciel_main_window_controller.cpp:393
78 msgid "Could not modify ACL entry: "
79 msgstr "No es pot modificar l'entrada ACL: "
80
81 #: src/eiciel_main_window_controller.cpp:548
82 #: src/eiciel_enclosed_editor_window_controller.cpp:33
83 msgid "Are you sure you want to remove all ACL default entries?"
84 msgstr "Segur que voleu suprimir totes les entrades per defecte d'ACL?"
2085
2186 #: src/eiciel_container.cpp:26
2287 msgid "<b>File name</b>"
2388 msgstr "<b>Nom de fitxer</b>"
2489
25 #: src/eiciel_container.cpp:27 src/eiciel_container.cpp:183
90 #: src/eiciel_container.cpp:27 src/eiciel_container.cpp:168
2691 msgid "No file opened"
2792 msgstr "No hi ha cap fitxer obert"
2893
29 #: src/eiciel_container.cpp:30 src/eiciel_container.cpp:192
30 #: src/eiciel_container.cpp:194
94 #: src/eiciel_container.cpp:30 src/eiciel_container.cpp:177
95 #: src/eiciel_container.cpp:180
3196 msgid "About..."
3297 msgstr "Quant a..."
3398
34 #: src/eiciel_container.cpp:48 src/eiciel_nautilus_page.cpp:136
99 #: src/eiciel_container.cpp:47 src/eiciel_nautilus_page.cpp:129
35100 msgid "Access Control List"
36101 msgstr "Llista de control d'accés"
37102
38 #: src/eiciel_container.cpp:56 src/eiciel_nautilus_page.cpp:156
103 #: src/eiciel_container.cpp:56 src/eiciel_nautilus_page.cpp:145
39104 msgid "Extended user attributes"
40105 msgstr "Atributs d'usuari ampliats"
41106
42 #: src/eiciel_container.cpp:100
107 #: src/eiciel_container.cpp:97
43108 #, c-format
44109 msgid "Could not show the help file: %s"
45110 msgstr "No s'ha pogut mostrar l'ajuda: %s"
46111
47 #: src/eiciel_container.cpp:123
112 #: src/eiciel_container.cpp:120
48113 msgid "Choose a file or a directory"
49114 msgstr "Trieu un fitxer o directori"
50115
51 #: src/eiciel_container.cpp:145
116 #: src/eiciel_container.cpp:137
52117 msgid "Could not open the file \""
53118 msgstr "No es pot obrir el fitxer \""
54119
55 #: src/acl_manager.cpp:50 src/xattr_manager.cpp:33
120 #: src/eiciel_standalone.cpp:46
121 msgid "Print version information"
122 msgstr "Mostra la informació de la versió"
123
124 #: src/eiciel_standalone.cpp:48
125 msgid "Access control list editor"
126 msgstr "Llista de control d'accés"
127
128 #: src/eiciel_enclosed_editor_window.cpp:24
129 msgid "Edit ACLs for enclosed files"
130 msgstr "Edita ACLs dels fitxers continguts"
131
132 #: src/eiciel_enclosed_editor_window.cpp:25
133 msgid "_Cancel"
134 msgstr "Anul·la"
135
136 #: src/eiciel_enclosed_editor_window.cpp:26
137 msgid "_Apply"
138 msgstr "Aplica"
139
140 #: src/eiciel_enclosed_editor_window.cpp:30
141 msgid "<b>Participants in ACL for enclosed directories</b>"
142 msgstr "<b>Participants a l'ACL dels directoris continguts</b>"
143
144 #: src/eiciel_enclosed_editor_window.cpp:33
145 msgid "<b>Participants in ACL for enclosed files</b>"
146 msgstr "<b>Participants a l'ACL dels fitxers continguts</b>"
147
148 #: src/eiciel_enclosed_editor_window.cpp:36 src/eiciel_main_window.cpp:32
149 msgid "<b>Available participants</b>"
150 msgstr "<b>Participants disponibles</b>"
151
152 #: src/acl_manager.cpp:46 src/xattr_manager.cpp:32
56153 msgid "Only regular files or directories supported"
57154 msgstr "Només s'admeten fitxers o directoris ordinaris"
58155
59 #: src/acl_manager.cpp:542
156 #: src/acl_manager.cpp:463
60157 msgid "Textual representation of the ACL is wrong"
61158 msgstr "La representació textual de l'ACL és incorrecta"
62159
63 #: src/acl_manager.cpp:564
160 #: src/acl_manager.cpp:484
64161 msgid "Default textual representation of the ACL is wrong"
65162 msgstr "La representació textual de l'ACL per omissió és incorrecta"
66163
67 #: src/eiciel_xattr_window.cpp:39
68 msgid "Name"
69 msgstr "Nom"
70
71 #: src/eiciel_xattr_window.cpp:55
72 msgid "Value"
73 msgstr "Valor"
74
75 #: src/eiciel_xattr_window.cpp:176
76 msgid "Could not rename attribute name: "
77 msgstr "No es pot renombrar l'atribut: "
78
79 #: src/eiciel_xattr_window.cpp:211
80 msgid "Could not change attribute value: "
81 msgstr "No es pot canviar el valor de l'atribut: "
82
83 #: src/eiciel_xattr_window.cpp:248
84 msgid "Could not remove attribute: "
85 msgstr "No es pot eliminar l'atribut: "
86
87 #: src/eiciel_xattr_window.cpp:280 src/eiciel_xattr_window.cpp:289
88 msgid "New attribute"
89 msgstr "Atribut nou"
90
91 #: src/eiciel_xattr_window.cpp:318
92 msgid "New value"
93 msgstr "Valor nou"
94
95 #: src/eiciel_xattr_window.cpp:333
96 msgid "Could not add attribute: "
97 msgstr "No s'ha pogut afegir l'atribut: "
98
99 #: src/eiciel_standalone.cpp:48
100 msgid "Print version information"
101 msgstr "Mostra la informació de la versió"
102
103 #: src/eiciel_standalone.cpp:50
104 msgid "Access control list editor"
105 msgstr "Llista de control d'accés"
106
107 #: src/eiciel_main_controller.cpp:172
108 msgid "Mask"
109 msgstr "Màscara"
110
111 #: src/eiciel_main_controller.cpp:177
112 msgid "Other"
113 msgstr "Altres"
114
115 #: src/eiciel_main_controller.cpp:250
116 msgid "Default Mask"
117 msgstr "Màscara per defecte"
118
119 #: src/eiciel_main_controller.cpp:258
120 msgid "Default Other"
121 msgstr "Altres per defecte"
122
123 #: src/eiciel_main_controller.cpp:328
124 msgid "Could not add ACL entry: "
125 msgstr "No s'ha pogut afegir l'entrada ACL: "
126
127 #: src/eiciel_main_controller.cpp:390
128 msgid "Could not remove ACL entry: "
129 msgstr "No es pot eliminar l'entrada ACL: "
130
131 #: src/eiciel_main_controller.cpp:487
132 msgid "Could not modify ACL entry: "
133 msgstr "No es pot modificar l'entrada ACL: "
134
135 #: src/eiciel_main_controller.cpp:516
136 msgid "Are you sure you want to remove all ACL default entries?"
137 msgstr "Esteu segur que voleu eliminar totes les entrades per defecte d'ACL?"
138
139 #: src/eiciel_main_window.cpp:26
164 #: src/eiciel_main_window.cpp:30
140165 msgid "<b>Current participants in ACL</b>"
141166 msgstr "<b>Participants actuals a l'ACL</b>"
142167
143 #: src/eiciel_main_window.cpp:32
168 #: src/eiciel_main_window.cpp:34
169 msgid "Edit ACLs for enclosed files..."
170 msgstr "Edita els ACL dels fitxers continguts..."
171
172 #: src/eiciel_participant_list.cpp:30
173 msgid "User"
174 msgstr "Usuari"
175
176 #: src/eiciel_participant_list.cpp:31
177 msgid "Group"
178 msgstr "Grup"
179
180 #: src/eiciel_participant_list.cpp:32
181 msgid "Default participant"
182 msgstr "Participant per defecte"
183
184 #: src/eiciel_participant_list.cpp:37
185 msgid "Add participant to ACL"
186 msgstr "Afegeix el participant a l'ACL"
187
188 #: src/eiciel_participant_list.cpp:38
189 msgid "Add participant to directory ACL"
190 msgstr "Afegeix el participant a l'ACL dels directoris"
191
192 #: src/eiciel_participant_list.cpp:39
193 msgid "Add participant to file ACL"
194 msgstr "Afegeix el participant a l'ACL dels fitxers"
195
196 #: src/eiciel_participant_list.cpp:40
197 msgid "Advanced features"
198 msgstr "Opcions avançades"
199
200 #: src/eiciel_participant_list.cpp:42
201 msgid "Name of participant"
202 msgstr "Nom del participant"
203
204 #: src/eiciel_participant_list.cpp:44
205 msgid "Also show system participants"
206 msgstr "Mostra també participants del sistema"
207
208 #: src/eiciel_participant_list.cpp:80
209 msgid "Filter participants"
210 msgstr "Filtra els participants"
211
212 #: src/eiciel_participant_list.cpp:105
213 msgid "Participant"
214 msgstr "Participant"
215
216 #: src/eiciel_participant_list.cpp:422
217 msgid "Participant not found"
218 msgstr "No s'ha trobat el participant"
219
220 #: src/eiciel_acl_list.cpp:33
144221 msgid "There are ineffective permissions"
145222 msgstr "Hi ha permisos no efectius"
146223
147 #: src/eiciel_main_window.cpp:33
224 #: src/eiciel_acl_list.cpp:35
148225 msgid "Remove participant from ACL"
149 msgstr "Elimina el participant de l'ACL"
150
151 #: src/eiciel_main_window.cpp:34
226 msgstr "Suprimeix el participant de l'ACL"
227
228 #: src/eiciel_acl_list.cpp:36
152229 msgid "Edit default participants"
153230 msgstr "Edita els participants per defecte"
154231
155 #: src/eiciel_main_window.cpp:35
156 msgid "<b>Available participants</b>"
157 msgstr "<b>Participants disponibles</b>"
158
159 #: src/eiciel_main_window.cpp:38
160 msgid "User"
161 msgstr "Usuari"
162
163 #: src/eiciel_main_window.cpp:39
164 msgid "Group"
165 msgstr "Grup"
166
167 #: src/eiciel_main_window.cpp:40
168 msgid "Default participant"
169 msgstr "Participant per defecte"
170
171 #: src/eiciel_main_window.cpp:45
172 msgid "Add participant to ACL"
173 msgstr "Afegeix el participant a l'ACL"
174
175 #: src/eiciel_main_window.cpp:46
176 msgid "Advanced features"
177 msgstr "Opcions avançades"
178
179 #: src/eiciel_main_window.cpp:48
180 msgid "Name of participant"
181 msgstr "Nom del participant"
182
183 #: src/eiciel_main_window.cpp:50
184 msgid "Also show system participants"
185 msgstr "Mostra també participants del sistema"
186
187 #: src/eiciel_main_window.cpp:112
232 #: src/eiciel_acl_list.cpp:79
188233 msgid "Entry"
189234 msgstr "Entrada"
190235
191 #: src/eiciel_main_window.cpp:115
236 #: src/eiciel_acl_list.cpp:82
192237 msgid "Read"
193238 msgstr "Llegeix"
194239
195 #: src/eiciel_main_window.cpp:126
240 #: src/eiciel_acl_list.cpp:95
196241 msgid "Write"
197242 msgstr "Escriu"
198243
199 #: src/eiciel_main_window.cpp:136
244 #: src/eiciel_acl_list.cpp:107
200245 msgid "Execute"
201246 msgstr "Executa"
202247
203 #: src/eiciel_main_window.cpp:152 src/eiciel_main_window.cpp:162
204 #: src/eiciel_main_window.cpp:590
205 msgid "None"
206 msgstr "Cap"
207
208 #: src/eiciel_main_window.cpp:154
209 msgid "Only files"
210 msgstr "Només fitxers"
211
212 #: src/eiciel_main_window.cpp:156
213 msgid "Only directories"
214 msgstr "Només directoris"
215
216 #: src/eiciel_main_window.cpp:158
217 msgid "Both files and directories"
218 msgstr "Fitxers i directoris"
219
220 #: src/eiciel_main_window.cpp:166
221 msgid "Recursion"
222 msgstr "Recursivitat"
223
224 #: src/eiciel_main_window.cpp:201
225 msgid "Filter participants"
226 msgstr "Filtra els participants"
227
228 #: src/eiciel_main_window.cpp:222
229 msgid "Participant"
230 msgstr "Participant"
231
232 #: src/eiciel_main_window.cpp:912
233 msgid "Participant not found"
234 msgstr "No s'ha trobat el participant"
248 #~ msgid "None"
249 #~ msgstr "Cap"
250
251 #~ msgid "Only files"
252 #~ msgstr "Només fitxers"
253
254 #~ msgid "Only directories"
255 #~ msgstr "Només directoris"
256
257 #~ msgid "Both files and directories"
258 #~ msgstr "Fitxers i directoris"
259
260 #~ msgid "Recursion"
261 #~ msgstr "Recursivitat"
Binary diff not shown
+209
-182
po/cs.po less more
44 msgstr ""
55 "Project-Id-Version: eiciel\n"
66 "Report-Msgid-Bugs-To: rofirrim@gmail.com\n"
7 "POT-Creation-Date: 2018-01-16 19:46+0000\n"
8 "PO-Revision-Date: 2015-09-12 09:22+0200\n"
9 "Last-Translator: Tomáš Chvátal <tchvatal@suse.com>\n"
10 "Language-Team: Czech <http://example.com/projects/eiciel/master/cs/>\n"
7 "POT-Creation-Date: 2020-08-24 15:11+0200\n"
8 "PO-Revision-Date: 2019-06-16 19:10+0000\n"
9 "Last-Translator: Aleš Kastner <alkas@volny.cz>\n"
10 "Language-Team: Czech <https://l10n.opensuse.org/projects/eiciel/master/cs/>\n"
1111 "Language: cs\n"
1212 "MIME-Version: 1.0\n"
1313 "Content-Type: text/plain; charset=UTF-8\n"
1414 "Content-Transfer-Encoding: 8bit\n"
1515 "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
16 "X-Generator: Weblate 2.3\n"
17
18 #: src/eiciel_container.cpp:26
19 msgid "<b>File name</b>"
20 msgstr "<b>Jméno souboru</b>"
21
22 #: src/eiciel_container.cpp:27 src/eiciel_container.cpp:183
23 msgid "No file opened"
24 msgstr "Není otevřen žádný soubor"
25
26 #: src/eiciel_container.cpp:30 src/eiciel_container.cpp:192
27 #: src/eiciel_container.cpp:194
28 msgid "About..."
29 msgstr "Informace o..."
30
31 #: src/eiciel_container.cpp:48 src/eiciel_nautilus_page.cpp:136
32 msgid "Access Control List"
33 msgstr "Seznam přístupu (ACL)"
34
35 #: src/eiciel_container.cpp:56 src/eiciel_nautilus_page.cpp:156
36 msgid "Extended user attributes"
37 msgstr "Rozšířené uživatelské atributy"
38
39 #: src/eiciel_container.cpp:100
40 #, c-format
41 msgid "Could not show the help file: %s"
42 msgstr "Nelze zobrazit soubor nápovědy: %s"
43
44 #: src/eiciel_container.cpp:123
45 msgid "Choose a file or a directory"
46 msgstr "Vyberte soubor nebo adresář"
47
48 #: src/eiciel_container.cpp:145
49 msgid "Could not open the file \""
50 msgstr "Nelze otevřít soubor \""
51
52 #: src/acl_manager.cpp:50 src/xattr_manager.cpp:33
53 msgid "Only regular files or directories supported"
54 msgstr "Jsou podporovány pouze běžné soubory nebo adresáře"
55
56 #: src/acl_manager.cpp:542
57 msgid "Textual representation of the ACL is wrong"
58 msgstr "Textová reprezentace ACL je chybná"
59
60 #: src/acl_manager.cpp:564
61 msgid "Default textual representation of the ACL is wrong"
62 msgstr "Výchozí textová reprezentace ACL je chybná"
63
64 #: src/eiciel_xattr_window.cpp:39
16 "X-Generator: Weblate 3.6.1\n"
17
18 #: src/eiciel_xattr_window.cpp:40
6519 msgid "Name"
6620 msgstr "Název"
6721
6923 msgid "Value"
7024 msgstr "Hodnota"
7125
72 #: src/eiciel_xattr_window.cpp:176
26 #: src/eiciel_xattr_window.cpp:163
7327 msgid "Could not rename attribute name: "
74 msgstr "Nelze přejmenovat název atributu: "
75
76 #: src/eiciel_xattr_window.cpp:211
28 msgstr "Nedaří se přejmenovat název atributu: "
29
30 #: src/eiciel_xattr_window.cpp:190
7731 msgid "Could not change attribute value: "
78 msgstr "Nelze změnit hodnotu atributu: "
79
80 #: src/eiciel_xattr_window.cpp:248
32 msgstr "Nedaří se změnit hodnotu atributu: "
33
34 #: src/eiciel_xattr_window.cpp:217
8135 msgid "Could not remove attribute: "
82 msgstr "Nelze odstranit atribut: "
83
84 #: src/eiciel_xattr_window.cpp:280 src/eiciel_xattr_window.cpp:289
36 msgstr "Nedaří se odstranit atribut: "
37
38 #: src/eiciel_xattr_window.cpp:242 src/eiciel_xattr_window.cpp:249
8539 msgid "New attribute"
8640 msgstr "Nový atribut"
8741
88 #: src/eiciel_xattr_window.cpp:318
42 #: src/eiciel_xattr_window.cpp:275
8943 msgid "New value"
9044 msgstr "NOVÁ HODNOTA"
9145
92 #: src/eiciel_xattr_window.cpp:333
46 #: src/eiciel_xattr_window.cpp:287
9347 msgid "Could not add attribute: "
94 msgstr "Nelze přidat atribut: "
48 msgstr "Nedaří se přidat atribut: "
49
50 #: src/eiciel_main_window_controller.cpp:118 src/eiciel_acl_list.cpp:366
51 msgid "Mask"
52 msgstr "Maska"
53
54 #: src/eiciel_main_window_controller.cpp:125
55 msgid "Other"
56 msgstr "Ostatní"
57
58 #: src/eiciel_main_window_controller.cpp:182 src/eiciel_acl_list.cpp:399
59 msgid "Default Mask"
60 msgstr "Výchozí maska"
61
62 #: src/eiciel_main_window_controller.cpp:190 src/eiciel_acl_list.cpp:393
63 msgid "Default Other"
64 msgstr "Výchozí ostatní"
65
66 #: src/eiciel_main_window_controller.cpp:267
67 msgid "Could not add ACL entry: "
68 msgstr "Nedaří se přidat položku ACL: "
69
70 #: src/eiciel_main_window_controller.cpp:314
71 msgid "Could not remove ACL entry: "
72 msgstr "Nedaří se odstranit položku ACL: "
73
74 #: src/eiciel_main_window_controller.cpp:393
75 msgid "Could not modify ACL entry: "
76 msgstr "Nedaří se upravit položku ACL: "
77
78 #: src/eiciel_main_window_controller.cpp:548
79 #: src/eiciel_enclosed_editor_window_controller.cpp:33
80 msgid "Are you sure you want to remove all ACL default entries?"
81 msgstr "Opravdu chcete odstranit všechny výchozí položky ACL?"
82
83 #: src/eiciel_container.cpp:26
84 msgid "<b>File name</b>"
85 msgstr "<b>Název souboru</b>"
86
87 #: src/eiciel_container.cpp:27 src/eiciel_container.cpp:168
88 msgid "No file opened"
89 msgstr "Není otevřen žádný soubor"
90
91 #: src/eiciel_container.cpp:30 src/eiciel_container.cpp:177
92 #: src/eiciel_container.cpp:180
93 msgid "About..."
94 msgstr "O aplikaci…"
95
96 #: src/eiciel_container.cpp:47 src/eiciel_nautilus_page.cpp:129
97 msgid "Access Control List"
98 msgstr "Seznam řízení přístupu (ACL)"
99
100 #: src/eiciel_container.cpp:56 src/eiciel_nautilus_page.cpp:145
101 msgid "Extended user attributes"
102 msgstr "Rozšířené uživatelské atributy"
103
104 #: src/eiciel_container.cpp:97
105 #, c-format
106 msgid "Could not show the help file: %s"
107 msgstr "Nedaří se zobrazit soubor nápovědy: %s"
108
109 #: src/eiciel_container.cpp:120
110 msgid "Choose a file or a directory"
111 msgstr "Vyberte soubor nebo složku"
112
113 #: src/eiciel_container.cpp:137
114 msgid "Could not open the file \""
115 msgstr "Nedaří se otevřít soubor „"
116
117 #: src/eiciel_standalone.cpp:46
118 msgid "Print version information"
119 msgstr "Vypsat informace o verzi"
95120
96121 #: src/eiciel_standalone.cpp:48
97 msgid "Print version information"
98 msgstr "Informace o tiskové verzi"
99
100 #: src/eiciel_standalone.cpp:50
101122 msgid "Access control list editor"
102123 msgstr "Editor seznamů řízení přístupu"
103124
104 #: src/eiciel_main_controller.cpp:172
105 msgid "Mask"
106 msgstr "Maska"
107
108 #: src/eiciel_main_controller.cpp:177
109 msgid "Other"
110 msgstr "Ostatní"
111
112 #: src/eiciel_main_controller.cpp:250
113 msgid "Default Mask"
114 msgstr "Výchozí maska"
115
116 #: src/eiciel_main_controller.cpp:258
117 msgid "Default Other"
118 msgstr "Výchozí ostatní"
119
120 #: src/eiciel_main_controller.cpp:328
121 msgid "Could not add ACL entry: "
122 msgstr "Nelze přidat položku ACL: "
123
124 #: src/eiciel_main_controller.cpp:390
125 msgid "Could not remove ACL entry: "
126 msgstr "Nelze odstranit položku ACL: "
127
128 #: src/eiciel_main_controller.cpp:487
129 msgid "Could not modify ACL entry: "
130 msgstr "Nelze upravit položku ACL: "
131
132 #: src/eiciel_main_controller.cpp:516
133 msgid "Are you sure you want to remove all ACL default entries?"
134 msgstr "Opravdu chcete odstranit všechny výchozí položky ACL?"
135
136 #: src/eiciel_main_window.cpp:26
125 #: src/eiciel_enclosed_editor_window.cpp:24
126 msgid "Edit ACLs for enclosed files"
127 msgstr "Editovat ACL pro přiložené soubory"
128
129 #: src/eiciel_enclosed_editor_window.cpp:25
130 msgid "_Cancel"
131 msgstr "_Zrušit"
132
133 #: src/eiciel_enclosed_editor_window.cpp:26
134 msgid "_Apply"
135 msgstr "_Použít"
136
137 #: src/eiciel_enclosed_editor_window.cpp:30
138 msgid "<b>Participants in ACL for enclosed directories</b>"
139 msgstr "<b>Účastníci v ACL pro připojené adresáře</b>"
140
141 #: src/eiciel_enclosed_editor_window.cpp:33
142 msgid "<b>Participants in ACL for enclosed files</b>"
143 msgstr "<b>Účastníci v ACL pro připojené adresáře</b>"
144
145 #: src/eiciel_enclosed_editor_window.cpp:36 src/eiciel_main_window.cpp:32
146 msgid "<b>Available participants</b>"
147 msgstr "<b>Dostupní účastníci</b>"
148
149 #: src/acl_manager.cpp:46 src/xattr_manager.cpp:32
150 msgid "Only regular files or directories supported"
151 msgstr "Podporované jsou pouze obyčejné soubory nebo složky"
152
153 #: src/acl_manager.cpp:463
154 msgid "Textual representation of the ACL is wrong"
155 msgstr "Textová reprezentace ACL seznamu je chybná"
156
157 #: src/acl_manager.cpp:484
158 msgid "Default textual representation of the ACL is wrong"
159 msgstr "Výchozí textová reprezentace ACL seznamu je chybná"
160
161 #: src/eiciel_main_window.cpp:30
137162 msgid "<b>Current participants in ACL</b>"
138 msgstr "<b>Současní účastníci v ACL</b>"
139
140 #: src/eiciel_main_window.cpp:32
163 msgstr "<b>Stávající účastníci v ACL</b>"
164
165 #: src/eiciel_main_window.cpp:34
166 msgid "Edit ACLs for enclosed files..."
167 msgstr "Editovat ACL pro přiložené soubory..."
168
169 #: src/eiciel_participant_list.cpp:30
170 msgid "User"
171 msgstr "Uživatel"
172
173 #: src/eiciel_participant_list.cpp:31
174 msgid "Group"
175 msgstr "Skupina"
176
177 #: src/eiciel_participant_list.cpp:32
178 msgid "Default participant"
179 msgstr "Výchozí účastník"
180
181 #: src/eiciel_participant_list.cpp:37
182 msgid "Add participant to ACL"
183 msgstr "Přidat účastníka do ACL"
184
185 #: src/eiciel_participant_list.cpp:38
186 msgid "Add participant to directory ACL"
187 msgstr "Přidat účastníka do ACL adresáře"
188
189 #: src/eiciel_participant_list.cpp:39
190 msgid "Add participant to file ACL"
191 msgstr "Přidat účastníka do ACL souboru"
192
193 #: src/eiciel_participant_list.cpp:40
194 msgid "Advanced features"
195 msgstr "Rozšířené funkce"
196
197 #: src/eiciel_participant_list.cpp:42
198 msgid "Name of participant"
199 msgstr "Jméno účastníka"
200
201 #: src/eiciel_participant_list.cpp:44
202 msgid "Also show system participants"
203 msgstr "Zobrazit také systémové účastníky"
204
205 #: src/eiciel_participant_list.cpp:80
206 msgid "Filter participants"
207 msgstr "Filtrovat účastníky"
208
209 #: src/eiciel_participant_list.cpp:105
210 msgid "Participant"
211 msgstr "Účastník"
212
213 #: src/eiciel_participant_list.cpp:422
214 msgid "Participant not found"
215 msgstr "Účastník nebyl nalezen"
216
217 #: src/eiciel_acl_list.cpp:33
141218 msgid "There are ineffective permissions"
142 msgstr "Existují neplatná oprávnění"
143
144 #: src/eiciel_main_window.cpp:33
219 msgstr "Jsou zde neefektivní oprávnění"
220
221 #: src/eiciel_acl_list.cpp:35
145222 msgid "Remove participant from ACL"
146223 msgstr "Odebrat účastníka z ACL"
147224
148 #: src/eiciel_main_window.cpp:34
225 #: src/eiciel_acl_list.cpp:36
149226 msgid "Edit default participants"
150 msgstr "Upravit výchozí účastníky"
151
152 #: src/eiciel_main_window.cpp:35
153 msgid "<b>Available participants</b>"
154 msgstr "<b>Dostupní účastníci</b>"
155
156 #: src/eiciel_main_window.cpp:38
157 msgid "User"
158 msgstr "Uživatel"
159
160 #: src/eiciel_main_window.cpp:39
161 msgid "Group"
162 msgstr "Skupina"
163
164 #: src/eiciel_main_window.cpp:40
165 msgid "Default participant"
166 msgstr "Výchozí účastník"
167
168 #: src/eiciel_main_window.cpp:45
169 msgid "Add participant to ACL"
170 msgstr "Přidat účastníka do ACL"
171
172 #: src/eiciel_main_window.cpp:46
173 msgid "Advanced features"
174 msgstr "Rozšířené funkce"
175
176 #: src/eiciel_main_window.cpp:48
177 msgid "Name of participant"
178 msgstr "Jméno účastníka"
179
180 #: src/eiciel_main_window.cpp:50
181 msgid "Also show system participants"
182 msgstr "Zobrazit také účastníky systému"
183
184 #: src/eiciel_main_window.cpp:112
227 msgstr "Smazat výchozí účastníky"
228
229 #: src/eiciel_acl_list.cpp:79
185230 msgid "Entry"
186231 msgstr "Položka"
187232
188 #: src/eiciel_main_window.cpp:115
233 #: src/eiciel_acl_list.cpp:82
189234 msgid "Read"
190235 msgstr "Čtení"
191236
192 #: src/eiciel_main_window.cpp:126
237 #: src/eiciel_acl_list.cpp:95
193238 msgid "Write"
194239 msgstr "Zápis"
195240
196 #: src/eiciel_main_window.cpp:136
241 #: src/eiciel_acl_list.cpp:107
197242 msgid "Execute"
198 msgstr "Spustit"
199
200 #: src/eiciel_main_window.cpp:152 src/eiciel_main_window.cpp:162
201 #: src/eiciel_main_window.cpp:590
202 msgid "None"
203 msgstr "Nic"
204
205 #: src/eiciel_main_window.cpp:154
206 msgid "Only files"
207 msgstr "Pouze soubory"
208
209 #: src/eiciel_main_window.cpp:156
210 msgid "Only directories"
211 msgstr "Pouze adresáře"
212
213 #: src/eiciel_main_window.cpp:158
214 msgid "Both files and directories"
215 msgstr "Soubory i adresáře"
216
217 #: src/eiciel_main_window.cpp:166
218 msgid "Recursion"
219 msgstr "Rekurze"
220
221 #: src/eiciel_main_window.cpp:201
222 msgid "Filter participants"
223 msgstr "Filtrovat účastníky"
224
225 #: src/eiciel_main_window.cpp:222
226 msgid "Participant"
227 msgstr "Účastník"
228
229 #: src/eiciel_main_window.cpp:912
230 msgid "Participant not found"
231 msgstr "Účastník nebyl nalezen"
243 msgstr "Spuštění"
244
245 #~ msgid "None"
246 #~ msgstr "Nic"
247
248 #~ msgid "Only files"
249 #~ msgstr "Pouze soubory"
250
251 #~ msgid "Only directories"
252 #~ msgstr "Pouze složky"
253
254 #~ msgid "Both files and directories"
255 #~ msgstr "Soubory i složky"
256
257 #~ msgid "Recursion"
258 #~ msgstr "Rekurze"
232259
233260 #~ msgid "Default"
234261 #~ msgstr "Výchozí"
Binary diff not shown
+201
-174
po/da.po less more
66 msgstr ""
77 "Project-Id-Version: eiciel 0.9.11\n"
88 "Report-Msgid-Bugs-To: rofirrim@gmail.com\n"
9 "POT-Creation-Date: 2018-01-16 19:46+0000\n"
10 "PO-Revision-Date: 2017-06-08 18:39+0000\n"
9 "POT-Creation-Date: 2020-08-24 15:11+0200\n"
10 "PO-Revision-Date: 2020-05-02 19:50+0000\n"
1111 "Last-Translator: scootergrisen <scootergrisen@gmail.com>\n"
1212 "Language-Team: Danish <https://l10n.opensuse.org/projects/eiciel/master/da/"
1313 ">\n"
1616 "Content-Type: text/plain; charset=UTF-8\n"
1717 "Content-Transfer-Encoding: 8bit\n"
1818 "Plural-Forms: nplurals=2; plural=n != 1;\n"
19 "X-Generator: Weblate 2.6\n"
19 "X-Generator: Weblate 3.6.1\n"
20
21 #: src/eiciel_xattr_window.cpp:40
22 msgid "Name"
23 msgstr "Navn"
24
25 #: src/eiciel_xattr_window.cpp:55
26 msgid "Value"
27 msgstr "Værdi"
28
29 #: src/eiciel_xattr_window.cpp:163
30 msgid "Could not rename attribute name: "
31 msgstr "Kunne ikke omdøbe attributnavn: "
32
33 #: src/eiciel_xattr_window.cpp:190
34 msgid "Could not change attribute value: "
35 msgstr "Kunne ikke ændre attributværdi: "
36
37 #: src/eiciel_xattr_window.cpp:217
38 msgid "Could not remove attribute: "
39 msgstr "Kunne ikke fjerne attribut: "
40
41 #: src/eiciel_xattr_window.cpp:242 src/eiciel_xattr_window.cpp:249
42 msgid "New attribute"
43 msgstr "Ny attribut"
44
45 #: src/eiciel_xattr_window.cpp:275
46 msgid "New value"
47 msgstr "Ny værdi"
48
49 #: src/eiciel_xattr_window.cpp:287
50 msgid "Could not add attribute: "
51 msgstr "Kunne ikke tilføje attribut: "
52
53 #: src/eiciel_main_window_controller.cpp:118 src/eiciel_acl_list.cpp:366
54 msgid "Mask"
55 msgstr "Maske"
56
57 #: src/eiciel_main_window_controller.cpp:125
58 msgid "Other"
59 msgstr "Andet"
60
61 #: src/eiciel_main_window_controller.cpp:182 src/eiciel_acl_list.cpp:399
62 msgid "Default Mask"
63 msgstr "Standardmaske"
64
65 #: src/eiciel_main_window_controller.cpp:190 src/eiciel_acl_list.cpp:393
66 msgid "Default Other"
67 msgstr "Standard andet"
68
69 #: src/eiciel_main_window_controller.cpp:267
70 msgid "Could not add ACL entry: "
71 msgstr "Kunne ikke tilføje ACL-post: "
72
73 #: src/eiciel_main_window_controller.cpp:314
74 msgid "Could not remove ACL entry: "
75 msgstr "Kunne ikke fjerne ACL-post: "
76
77 #: src/eiciel_main_window_controller.cpp:393
78 msgid "Could not modify ACL entry: "
79 msgstr "Kunne ikke redigere ACL-post: "
80
81 #: src/eiciel_main_window_controller.cpp:548
82 #: src/eiciel_enclosed_editor_window_controller.cpp:33
83 msgid "Are you sure you want to remove all ACL default entries?"
84 msgstr "Er du sikker på, at du vil fjerne alle standardposter for ACL?"
2085
2186 #: src/eiciel_container.cpp:26
2287 msgid "<b>File name</b>"
2388 msgstr "<b>Filnavn</b>"
2489
25 #: src/eiciel_container.cpp:27 src/eiciel_container.cpp:183
90 #: src/eiciel_container.cpp:27 src/eiciel_container.cpp:168
2691 msgid "No file opened"
2792 msgstr "Ingen fil åbnet"
2893
29 #: src/eiciel_container.cpp:30 src/eiciel_container.cpp:192
30 #: src/eiciel_container.cpp:194
94 #: src/eiciel_container.cpp:30 src/eiciel_container.cpp:177
95 #: src/eiciel_container.cpp:180
3196 msgid "About..."
3297 msgstr "Om..."
3398
34 #: src/eiciel_container.cpp:48 src/eiciel_nautilus_page.cpp:136
99 #: src/eiciel_container.cpp:47 src/eiciel_nautilus_page.cpp:129
35100 msgid "Access Control List"
36101 msgstr "Adgangskontrolliste"
37102
38 #: src/eiciel_container.cpp:56 src/eiciel_nautilus_page.cpp:156
103 #: src/eiciel_container.cpp:56 src/eiciel_nautilus_page.cpp:145
39104 msgid "Extended user attributes"
40105 msgstr "Udvidede brugerattributter"
41106
42 #: src/eiciel_container.cpp:100
107 #: src/eiciel_container.cpp:97
43108 #, c-format
44109 msgid "Could not show the help file: %s"
45110 msgstr "Kunne ikke vise hjælpfilen: %s"
46111
47 #: src/eiciel_container.cpp:123
112 #: src/eiciel_container.cpp:120
48113 msgid "Choose a file or a directory"
49114 msgstr "Vælg en fil eller en mappe"
50115
51 #: src/eiciel_container.cpp:145
116 #: src/eiciel_container.cpp:137
52117 msgid "Could not open the file \""
53118 msgstr "Kunne ikke åbne filen \""
54119
55 #: src/acl_manager.cpp:50 src/xattr_manager.cpp:33
120 #: src/eiciel_standalone.cpp:46
121 msgid "Print version information"
122 msgstr "Print versionsinformation"
123
124 #: src/eiciel_standalone.cpp:48
125 msgid "Access control list editor"
126 msgstr "Adgangskontrolliste-editor"
127
128 #: src/eiciel_enclosed_editor_window.cpp:24
129 msgid "Edit ACLs for enclosed files"
130 msgstr "Rediger ACL'er for vedlagte filer"
131
132 #: src/eiciel_enclosed_editor_window.cpp:25
133 msgid "_Cancel"
134 msgstr "_Annuller"
135
136 #: src/eiciel_enclosed_editor_window.cpp:26
137 msgid "_Apply"
138 msgstr "_Anvend"
139
140 #: src/eiciel_enclosed_editor_window.cpp:30
141 msgid "<b>Participants in ACL for enclosed directories</b>"
142 msgstr "<b>Deltagere i ACL for vedlagte mapper</b>"
143
144 #: src/eiciel_enclosed_editor_window.cpp:33
145 msgid "<b>Participants in ACL for enclosed files</b>"
146 msgstr "<b>Deltagere i ACL for vedlagte filer</b>"
147
148 #: src/eiciel_enclosed_editor_window.cpp:36 src/eiciel_main_window.cpp:32
149 msgid "<b>Available participants</b>"
150 msgstr "<b>Tilgængelige deltagere</b>"
151
152 #: src/acl_manager.cpp:46 src/xattr_manager.cpp:32
56153 msgid "Only regular files or directories supported"
57154 msgstr "Kun almindelige filer eller mapper er understøttet"
58155
59 #: src/acl_manager.cpp:542
156 #: src/acl_manager.cpp:463
60157 msgid "Textual representation of the ACL is wrong"
61158 msgstr "Tekstrepræsentationen af ACL'en er forkert"
62159
63 #: src/acl_manager.cpp:564
160 #: src/acl_manager.cpp:484
64161 msgid "Default textual representation of the ACL is wrong"
65162 msgstr "Standard tekstrepræsentation af ACL'en er forkert"
66163
67 #: src/eiciel_xattr_window.cpp:39
68 msgid "Name"
69 msgstr "Navn"
70
71 #: src/eiciel_xattr_window.cpp:55
72 msgid "Value"
73 msgstr "Værdi"
74
75 #: src/eiciel_xattr_window.cpp:176
76 msgid "Could not rename attribute name: "
77 msgstr "Kunne ikke omdøbe attributnavn: "
78
79 #: src/eiciel_xattr_window.cpp:211
80 msgid "Could not change attribute value: "
81 msgstr ""
82
83 #: src/eiciel_xattr_window.cpp:248
84 msgid "Could not remove attribute: "
85 msgstr ""
86
87 #: src/eiciel_xattr_window.cpp:280 src/eiciel_xattr_window.cpp:289
88 msgid "New attribute"
89 msgstr ""
90
91 #: src/eiciel_xattr_window.cpp:318
92 msgid "New value"
93 msgstr ""
94
95 #: src/eiciel_xattr_window.cpp:333
96 msgid "Could not add attribute: "
97 msgstr ""
98
99 #: src/eiciel_standalone.cpp:48
100 msgid "Print version information"
101 msgstr ""
102
103 #: src/eiciel_standalone.cpp:50
104 msgid "Access control list editor"
105 msgstr ""
106
107 #: src/eiciel_main_controller.cpp:172
108 msgid "Mask"
109 msgstr ""
110
111 #: src/eiciel_main_controller.cpp:177
112 msgid "Other"
113 msgstr ""
114
115 #: src/eiciel_main_controller.cpp:250
116 msgid "Default Mask"
117 msgstr ""
118
119 #: src/eiciel_main_controller.cpp:258
120 msgid "Default Other"
121 msgstr ""
122
123 #: src/eiciel_main_controller.cpp:328
124 msgid "Could not add ACL entry: "
125 msgstr ""
126
127 #: src/eiciel_main_controller.cpp:390
128 msgid "Could not remove ACL entry: "
129 msgstr ""
130
131 #: src/eiciel_main_controller.cpp:487
132 msgid "Could not modify ACL entry: "
133 msgstr ""
134
135 #: src/eiciel_main_controller.cpp:516
136 msgid "Are you sure you want to remove all ACL default entries?"
137 msgstr ""
138
139 #: src/eiciel_main_window.cpp:26
164 #: src/eiciel_main_window.cpp:30
140165 msgid "<b>Current participants in ACL</b>"
141 msgstr ""
142
143 #: src/eiciel_main_window.cpp:32
166 msgstr "<b>Nuværende deltagere i ACL</b>"
167
168 #: src/eiciel_main_window.cpp:34
169 msgid "Edit ACLs for enclosed files..."
170 msgstr "Rediger ACL'er for vedlagte filer ..."
171
172 #: src/eiciel_participant_list.cpp:30
173 msgid "User"
174 msgstr "Bruger"
175
176 #: src/eiciel_participant_list.cpp:31
177 msgid "Group"
178 msgstr "Gruppe"
179
180 #: src/eiciel_participant_list.cpp:32
181 msgid "Default participant"
182 msgstr "Standarddeltager"
183
184 #: src/eiciel_participant_list.cpp:37
185 msgid "Add participant to ACL"
186 msgstr "Tilføj deltager til ACL"
187
188 #: src/eiciel_participant_list.cpp:38
189 msgid "Add participant to directory ACL"
190 msgstr "Tilføj deltager til mappe-ACL"
191
192 #: src/eiciel_participant_list.cpp:39
193 msgid "Add participant to file ACL"
194 msgstr "Tilføj deltager til fil-ACL"
195
196 #: src/eiciel_participant_list.cpp:40
197 msgid "Advanced features"
198 msgstr "Avancerede funktionaliteter"
199
200 #: src/eiciel_participant_list.cpp:42
201 msgid "Name of participant"
202 msgstr "Navn på deltager"
203
204 #: src/eiciel_participant_list.cpp:44
205 msgid "Also show system participants"
206 msgstr "Vis også systemdeltagere"
207
208 #: src/eiciel_participant_list.cpp:80
209 msgid "Filter participants"
210 msgstr "Filtrér deltagere"
211
212 #: src/eiciel_participant_list.cpp:105
213 msgid "Participant"
214 msgstr "Deltager"
215
216 #: src/eiciel_participant_list.cpp:422
217 msgid "Participant not found"
218 msgstr "Deltager ikke fundet"
219
220 #: src/eiciel_acl_list.cpp:33
144221 msgid "There are ineffective permissions"
145 msgstr ""
146
147 #: src/eiciel_main_window.cpp:33
222 msgstr "Der er ikke ineffektive tilladelser"
223
224 #: src/eiciel_acl_list.cpp:35
148225 msgid "Remove participant from ACL"
149 msgstr ""
150
151 #: src/eiciel_main_window.cpp:34
226 msgstr "Fjern deltager fra ACL"
227
228 #: src/eiciel_acl_list.cpp:36
152229 msgid "Edit default participants"
153 msgstr ""
154
155 #: src/eiciel_main_window.cpp:35
156 msgid "<b>Available participants</b>"
157 msgstr ""
158
159 #: src/eiciel_main_window.cpp:38
160 msgid "User"
161 msgstr ""
162
163 #: src/eiciel_main_window.cpp:39
164 msgid "Group"
165 msgstr ""
166
167 #: src/eiciel_main_window.cpp:40
168 msgid "Default participant"
169 msgstr ""
170
171 #: src/eiciel_main_window.cpp:45
172 msgid "Add participant to ACL"
173 msgstr ""
174
175 #: src/eiciel_main_window.cpp:46
176 msgid "Advanced features"
177 msgstr ""
178
179 #: src/eiciel_main_window.cpp:48
180 msgid "Name of participant"
181 msgstr ""
182
183 #: src/eiciel_main_window.cpp:50
184 msgid "Also show system participants"
185 msgstr ""
186
187 #: src/eiciel_main_window.cpp:112
230 msgstr "Rediger standarddeltagere"
231
232 #: src/eiciel_acl_list.cpp:79
188233 msgid "Entry"
189 msgstr ""
190
191 #: src/eiciel_main_window.cpp:115
234 msgstr "Post"
235
236 #: src/eiciel_acl_list.cpp:82
192237 msgid "Read"
193 msgstr ""
194
195 #: src/eiciel_main_window.cpp:126
238 msgstr "Læs"
239
240 #: src/eiciel_acl_list.cpp:95
196241 msgid "Write"
197 msgstr ""
198
199 #: src/eiciel_main_window.cpp:136
242 msgstr "Skriv"
243
244 #: src/eiciel_acl_list.cpp:107
200245 msgid "Execute"
201 msgstr ""
202
203 #: src/eiciel_main_window.cpp:152 src/eiciel_main_window.cpp:162
204 #: src/eiciel_main_window.cpp:590
205 msgid "None"
206 msgstr ""
207
208 #: src/eiciel_main_window.cpp:154
209 msgid "Only files"
210 msgstr ""
211
212 #: src/eiciel_main_window.cpp:156
213 msgid "Only directories"
214 msgstr ""
215
216 #: src/eiciel_main_window.cpp:158
217 msgid "Both files and directories"
218 msgstr ""
219
220 #: src/eiciel_main_window.cpp:166
221 msgid "Recursion"
222 msgstr ""
223
224 #: src/eiciel_main_window.cpp:201
225 msgid "Filter participants"
226 msgstr ""
227
228 #: src/eiciel_main_window.cpp:222
229 msgid "Participant"
230 msgstr ""
231
232 #: src/eiciel_main_window.cpp:912
233 msgid "Participant not found"
234 msgstr ""
246 msgstr "Eksekver"
247
248 #~ msgid "None"
249 #~ msgstr "Intet"
250
251 #~ msgid "Only files"
252 #~ msgstr "Kun filer"
253
254 #~ msgid "Only directories"
255 #~ msgstr "Kun mapper"
256
257 #~ msgid "Both files and directories"
258 #~ msgstr "Både filer og mapper"
259
260 #~ msgid "Recursion"
261 #~ msgstr "Rekursiv"
Binary diff not shown
+189
-161
po/de.po less more
44 msgstr ""
55 "Project-Id-Version: eiciel\n"
66 "Report-Msgid-Bugs-To: rofirrim@gmail.com\n"
7 "POT-Creation-Date: 2018-01-16 19:46+0000\n"
8 "PO-Revision-Date: 2016-02-13 09:00+0200\n"
9 "Last-Translator: Ettore Atalan <atalanttore@googlemail.com>\n"
10 "Language-Team: German <http://l10n.opensuse.org/projects/eiciel/master/de/>\n"
7 "POT-Creation-Date: 2020-08-24 15:11+0200\n"
8 "PO-Revision-Date: 2019-06-16 19:10+0000\n"
9 "Last-Translator: Sarah Kriesch <ada.lovelace@gmx.de>\n"
10 "Language-Team: German <https://l10n.opensuse.org/projects/eiciel/master/de/"
11 ">\n"
1112 "Language: de\n"
1213 "MIME-Version: 1.0\n"
1314 "Content-Type: text/plain; charset=UTF-8\n"
1415 "Content-Transfer-Encoding: 8bit\n"
1516 "Plural-Forms: nplurals=2; plural=n != 1;\n"
16 "X-Generator: Weblate 2.3\n"
17 "X-Generator: Weblate 3.6.1\n"
18
19 #: src/eiciel_xattr_window.cpp:40
20 msgid "Name"
21 msgstr "Name"
22
23 #: src/eiciel_xattr_window.cpp:55
24 msgid "Value"
25 msgstr "Wert"
26
27 #: src/eiciel_xattr_window.cpp:163
28 msgid "Could not rename attribute name: "
29 msgstr "Es konnte kein anderer Attributname vergeben werden: "
30
31 #: src/eiciel_xattr_window.cpp:190
32 msgid "Could not change attribute value: "
33 msgstr "Attributwert konnte nicht geändert werden: "
34
35 #: src/eiciel_xattr_window.cpp:217
36 msgid "Could not remove attribute: "
37 msgstr "Attribut konnte nicht entfernt werden: "
38
39 #: src/eiciel_xattr_window.cpp:242 src/eiciel_xattr_window.cpp:249
40 msgid "New attribute"
41 msgstr "Neues Attribut"
42
43 #: src/eiciel_xattr_window.cpp:275
44 msgid "New value"
45 msgstr "Neuer Wert"
46
47 #: src/eiciel_xattr_window.cpp:287
48 msgid "Could not add attribute: "
49 msgstr "Attribut konnte nicht hinzugefügt werden: "
50
51 #: src/eiciel_main_window_controller.cpp:118 src/eiciel_acl_list.cpp:366
52 msgid "Mask"
53 msgstr "Maske"
54
55 #: src/eiciel_main_window_controller.cpp:125
56 msgid "Other"
57 msgstr "Andere"
58
59 #: src/eiciel_main_window_controller.cpp:182 src/eiciel_acl_list.cpp:399
60 msgid "Default Mask"
61 msgstr "Standardmaske"
62
63 #: src/eiciel_main_window_controller.cpp:190 src/eiciel_acl_list.cpp:393
64 msgid "Default Other"
65 msgstr "Standard - Sonstiges"
66
67 #: src/eiciel_main_window_controller.cpp:267
68 msgid "Could not add ACL entry: "
69 msgstr "ACL-Eintrag konnte nicht hinzugefügt werden: "
70
71 #: src/eiciel_main_window_controller.cpp:314
72 msgid "Could not remove ACL entry: "
73 msgstr "ACL-Eintrag konnte nicht entfernt werden: "
74
75 #: src/eiciel_main_window_controller.cpp:393
76 msgid "Could not modify ACL entry: "
77 msgstr "ACL-Eintrag konnte nicht bearbeitet werden: "
78
79 #: src/eiciel_main_window_controller.cpp:548
80 #: src/eiciel_enclosed_editor_window_controller.cpp:33
81 msgid "Are you sure you want to remove all ACL default entries?"
82 msgstr ""
83 "Sind Sie sicher, dass alle ACL-Standardeinträge entfernt werden sollen?"
1784
1885 #: src/eiciel_container.cpp:26
1986 msgid "<b>File name</b>"
2087 msgstr "<b>Dateiname</b>"
2188
22 #: src/eiciel_container.cpp:27 src/eiciel_container.cpp:183
89 #: src/eiciel_container.cpp:27 src/eiciel_container.cpp:168
2390 msgid "No file opened"
2491 msgstr "Keine Datei geöffnet"
2592
26 #: src/eiciel_container.cpp:30 src/eiciel_container.cpp:192
27 #: src/eiciel_container.cpp:194
93 #: src/eiciel_container.cpp:30 src/eiciel_container.cpp:177
94 #: src/eiciel_container.cpp:180
2895 msgid "About..."
2996 msgstr "Info..."
3097
31 #: src/eiciel_container.cpp:48 src/eiciel_nautilus_page.cpp:136
98 #: src/eiciel_container.cpp:47 src/eiciel_nautilus_page.cpp:129
3299 msgid "Access Control List"
33100 msgstr "Zugriffssteuerungsliste"
34101
35 #: src/eiciel_container.cpp:56 src/eiciel_nautilus_page.cpp:156
102 #: src/eiciel_container.cpp:56 src/eiciel_nautilus_page.cpp:145
36103 msgid "Extended user attributes"
37104 msgstr "Erweiterte Benutzerattribute"
38105
39 #: src/eiciel_container.cpp:100
106 #: src/eiciel_container.cpp:97
40107 #, c-format
41108 msgid "Could not show the help file: %s"
42109 msgstr "Hilfedatei konnte nicht angezeigt werden: %s"
43110
44 #: src/eiciel_container.cpp:123
111 #: src/eiciel_container.cpp:120
45112 msgid "Choose a file or a directory"
46113 msgstr "Datei oder Verzeichnis auswählen"
47114
48 #: src/eiciel_container.cpp:145
115 #: src/eiciel_container.cpp:137
49116 msgid "Could not open the file \""
50117 msgstr "Datei konnte nicht geöffnet werden \""
51118
52 #: src/acl_manager.cpp:50 src/xattr_manager.cpp:33
119 #: src/eiciel_standalone.cpp:46
120 msgid "Print version information"
121 msgstr "Versionsinformationen drucken"
122
123 #: src/eiciel_standalone.cpp:48
124 msgid "Access control list editor"
125 msgstr "ACL-Editor"
126
127 #: src/eiciel_enclosed_editor_window.cpp:24
128 msgid "Edit ACLs for enclosed files"
129 msgstr "ACLs für angeschlossene Dateien editieren"
130
131 #: src/eiciel_enclosed_editor_window.cpp:25
132 msgid "_Cancel"
133 msgstr "_Abbrechen"
134
135 #: src/eiciel_enclosed_editor_window.cpp:26
136 msgid "_Apply"
137 msgstr "A_nwenden"
138
139 #: src/eiciel_enclosed_editor_window.cpp:30
140 msgid "<b>Participants in ACL for enclosed directories</b>"
141 msgstr "<b>Teilnehmer in ACL für angeschlossene Verzeichnisse</b>"
142
143 #: src/eiciel_enclosed_editor_window.cpp:33
144 msgid "<b>Participants in ACL for enclosed files</b>"
145 msgstr "<b>Teilnehmer in ACL für angeschlossene Dateien</b>"
146
147 #: src/eiciel_enclosed_editor_window.cpp:36 src/eiciel_main_window.cpp:32
148 msgid "<b>Available participants</b>"
149 msgstr "<b>Verfügbare Teilnehmer</b>"
150
151 #: src/acl_manager.cpp:46 src/xattr_manager.cpp:32
53152 msgid "Only regular files or directories supported"
54153 msgstr "Es werden nur reguläre Dateien bzw. Verzeichnisse unterstützt"
55154
56 #: src/acl_manager.cpp:542
155 #: src/acl_manager.cpp:463
57156 msgid "Textual representation of the ACL is wrong"
58157 msgstr "Textdarstellung der ACL ist falsch"
59158
60 #: src/acl_manager.cpp:564
159 #: src/acl_manager.cpp:484
61160 msgid "Default textual representation of the ACL is wrong"
62161 msgstr "Standardmäßige Textdarstellung der ACL ist falsch"
63162
64 #: src/eiciel_xattr_window.cpp:39
65 msgid "Name"
66 msgstr "Name"
67
68 #: src/eiciel_xattr_window.cpp:55
69 msgid "Value"
70 msgstr "Wert"
71
72 #: src/eiciel_xattr_window.cpp:176
73 msgid "Could not rename attribute name: "
74 msgstr "Es konnte kein anderer Attributname vergeben werden: "
75
76 #: src/eiciel_xattr_window.cpp:211
77 msgid "Could not change attribute value: "
78 msgstr "Attributwert konnte nicht geändert werden: "
79
80 #: src/eiciel_xattr_window.cpp:248
81 msgid "Could not remove attribute: "
82 msgstr "Attribut konnte nicht entfernt werden: "
83
84 #: src/eiciel_xattr_window.cpp:280 src/eiciel_xattr_window.cpp:289
85 msgid "New attribute"
86 msgstr "Neues Attribut"
87
88 #: src/eiciel_xattr_window.cpp:318
89 msgid "New value"
90 msgstr "Neuer Wert"
91
92 #: src/eiciel_xattr_window.cpp:333
93 msgid "Could not add attribute: "
94 msgstr "Attribut konnte nicht hinzugefügt werden: "
95
96 #: src/eiciel_standalone.cpp:48
97 msgid "Print version information"
98 msgstr "Versionsinformationen drucken"
99
100 #: src/eiciel_standalone.cpp:50
101 msgid "Access control list editor"
102 msgstr "ACL-Editor"
103
104 #: src/eiciel_main_controller.cpp:172
105 msgid "Mask"
106 msgstr "Maske"
107
108 #: src/eiciel_main_controller.cpp:177
109 msgid "Other"
110 msgstr "Andere"
111
112 #: src/eiciel_main_controller.cpp:250
113 msgid "Default Mask"
114 msgstr "Standardmaske"
115
116 #: src/eiciel_main_controller.cpp:258
117 msgid "Default Other"
118 msgstr "Standard - Sonstiges"
119
120 #: src/eiciel_main_controller.cpp:328
121 msgid "Could not add ACL entry: "
122 msgstr "ACL-Eintrag konnte nicht hinzugefügt werden: "
123
124 #: src/eiciel_main_controller.cpp:390
125 msgid "Could not remove ACL entry: "
126 msgstr "ACL-Eintrag konnte nicht entfernt werden: "
127
128 #: src/eiciel_main_controller.cpp:487
129 msgid "Could not modify ACL entry: "
130 msgstr "ACL-Eintrag konnte nicht bearbeitet werden: "
131
132 #: src/eiciel_main_controller.cpp:516
133 msgid "Are you sure you want to remove all ACL default entries?"
134 msgstr ""
135 "Sind Sie sicher, dass alle ACL-Standardeinträge entfernt werden sollen?"
136
137 #: src/eiciel_main_window.cpp:26
163 #: src/eiciel_main_window.cpp:30
138164 msgid "<b>Current participants in ACL</b>"
139165 msgstr "<b>Bisherige Teilnehmer in ACL</b>"
140166
141 #: src/eiciel_main_window.cpp:32
167 #: src/eiciel_main_window.cpp:34
168 msgid "Edit ACLs for enclosed files..."
169 msgstr "ACLs für angeschlossene Dateien werden editiert..."
170
171 #: src/eiciel_participant_list.cpp:30
172 msgid "User"
173 msgstr "Benutzer"
174
175 #: src/eiciel_participant_list.cpp:31
176 msgid "Group"
177 msgstr "Gruppe"
178
179 #: src/eiciel_participant_list.cpp:32
180 msgid "Default participant"
181 msgstr "Standard-Teilnehmer"
182
183 #: src/eiciel_participant_list.cpp:37
184 msgid "Add participant to ACL"
185 msgstr "Teilnehmer der ACL hinzufügen"
186
187 #: src/eiciel_participant_list.cpp:38
188 msgid "Add participant to directory ACL"
189 msgstr "Teilnehmer der ACL vom Verzeichnis hinzufügen"
190
191 #: src/eiciel_participant_list.cpp:39
192 msgid "Add participant to file ACL"
193 msgstr "Teilnehmer der ACL der Datei hinzufügen"
194
195 #: src/eiciel_participant_list.cpp:40
196 msgid "Advanced features"
197 msgstr "Erweiterte Funktionen"
198
199 #: src/eiciel_participant_list.cpp:42
200 msgid "Name of participant"
201 msgstr "Name des Teilnehmers"
202
203 #: src/eiciel_participant_list.cpp:44
204 msgid "Also show system participants"
205 msgstr "Auch Systemteilnehmer anzeigen"
206
207 #: src/eiciel_participant_list.cpp:80
208 msgid "Filter participants"
209 msgstr "Teilnehmer filtern"
210
211 #: src/eiciel_participant_list.cpp:105
212 msgid "Participant"
213 msgstr "Teilnehmer"
214
215 #: src/eiciel_participant_list.cpp:422
216 msgid "Participant not found"
217 msgstr "Teilnehmer nicht gefunden"
218
219 #: src/eiciel_acl_list.cpp:33
142220 msgid "There are ineffective permissions"
143221 msgstr "Es gibt ineffektive Zugriffsberechtigungen"
144222
145 #: src/eiciel_main_window.cpp:33
223 #: src/eiciel_acl_list.cpp:35
146224 msgid "Remove participant from ACL"
147225 msgstr "Teilnehmer aus ACL löschen"
148226
149 #: src/eiciel_main_window.cpp:34
227 #: src/eiciel_acl_list.cpp:36
150228 msgid "Edit default participants"
151229 msgstr "Standardmäßige Teilnehmer editieren"
152230
153 #: src/eiciel_main_window.cpp:35
154 msgid "<b>Available participants</b>"
155 msgstr "<b>Verfügbare Teilnehmer</b>"
156
157 #: src/eiciel_main_window.cpp:38
158 msgid "User"
159 msgstr "Benutzer"
160
161 #: src/eiciel_main_window.cpp:39
162 msgid "Group"
163 msgstr "Gruppe"
164
165 #: src/eiciel_main_window.cpp:40
166 msgid "Default participant"
167 msgstr "Standard-Teilnehmer"
168
169 #: src/eiciel_main_window.cpp:45
170 msgid "Add participant to ACL"
171 msgstr "Teilnehmer der ACL hinzufügen"
172
173 #: src/eiciel_main_window.cpp:46
174 msgid "Advanced features"
175 msgstr "Erweiterte Funktionen"
176
177 #: src/eiciel_main_window.cpp:48
178 msgid "Name of participant"
179 msgstr "Name des Teilnehmers"
180
181 #: src/eiciel_main_window.cpp:50
182 msgid "Also show system participants"
183 msgstr "Auch Systemteilnehmer anzeigen"
184
185 #: src/eiciel_main_window.cpp:112
231 #: src/eiciel_acl_list.cpp:79
186232 msgid "Entry"
187233 msgstr "Eintrag"
188234
189 #: src/eiciel_main_window.cpp:115
235 #: src/eiciel_acl_list.cpp:82
190236 msgid "Read"
191237 msgstr "Lesen"
192238
193 #: src/eiciel_main_window.cpp:126
239 #: src/eiciel_acl_list.cpp:95
194240 msgid "Write"
195241 msgstr "Schreiben"
196242
197 #: src/eiciel_main_window.cpp:136
243 #: src/eiciel_acl_list.cpp:107
198244 msgid "Execute"
199245 msgstr "Ausführen"
200246
201 #: src/eiciel_main_window.cpp:152 src/eiciel_main_window.cpp:162
202 #: src/eiciel_main_window.cpp:590
203 msgid "None"
204 msgstr "Keine"
205
206 #: src/eiciel_main_window.cpp:154
207 msgid "Only files"
208 msgstr "Nur Dateien"
209
210 #: src/eiciel_main_window.cpp:156
211 msgid "Only directories"
212 msgstr "Nur Verzeichnisse"
213
214 #: src/eiciel_main_window.cpp:158
215 msgid "Both files and directories"
216 msgstr "Beide Dateien und Verzeichnisse"
217
218 #: src/eiciel_main_window.cpp:166
219 msgid "Recursion"
220 msgstr "Rekursion"
221
222 #: src/eiciel_main_window.cpp:201
223 msgid "Filter participants"
224 msgstr "Teilnehmer filtern"
225
226 #: src/eiciel_main_window.cpp:222
227 msgid "Participant"
228 msgstr "Teilnehmer"
229
230 #: src/eiciel_main_window.cpp:912
231 msgid "Participant not found"
232 msgstr "Teilnehmer nicht gefunden"
247 #~ msgid "None"
248 #~ msgstr "Keine"
249
250 #~ msgid "Only files"
251 #~ msgstr "Nur Dateien"
252
253 #~ msgid "Only directories"
254 #~ msgstr "Nur Verzeichnisse"
255
256 #~ msgid "Both files and directories"
257 #~ msgstr "Beide Dateien und Verzeichnisse"
258
259 #~ msgid "Recursion"
260 #~ msgstr "Rekursion"
233261
234262 #~ msgid "Default"
235263 #~ msgstr "Standard"
55 #, fuzzy
66 msgid ""
77 msgstr ""
8 "Project-Id-Version: eiciel 0.9.12.1\n"
8 "Project-Id-Version: eiciel 0.9.13\n"
99 "Report-Msgid-Bugs-To: rofirrim@gmail.com\n"
10 "POT-Creation-Date: 2018-01-16 19:46+0000\n"
10 "POT-Creation-Date: 2020-08-24 15:11+0200\n"
1111 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
1212 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313 "Language-Team: LANGUAGE <LL@li.org>\n"
1616 "Content-Type: text/plain; charset=CHARSET\n"
1717 "Content-Transfer-Encoding: 8bit\n"
1818
19 #: src/eiciel_xattr_window.cpp:40
20 msgid "Name"
21 msgstr ""
22
23 #: src/eiciel_xattr_window.cpp:55
24 msgid "Value"
25 msgstr ""
26
27 #: src/eiciel_xattr_window.cpp:163
28 msgid "Could not rename attribute name: "
29 msgstr ""
30
31 #: src/eiciel_xattr_window.cpp:190
32 msgid "Could not change attribute value: "
33 msgstr ""
34
35 #: src/eiciel_xattr_window.cpp:217
36 msgid "Could not remove attribute: "
37 msgstr ""
38
39 #: src/eiciel_xattr_window.cpp:242 src/eiciel_xattr_window.cpp:249
40 msgid "New attribute"
41 msgstr ""
42
43 #: src/eiciel_xattr_window.cpp:275
44 msgid "New value"
45 msgstr ""
46
47 #: src/eiciel_xattr_window.cpp:287
48 msgid "Could not add attribute: "
49 msgstr ""
50
51 #: src/eiciel_main_window_controller.cpp:118 src/eiciel_acl_list.cpp:366
52 msgid "Mask"
53 msgstr ""
54
55 #: src/eiciel_main_window_controller.cpp:125
56 msgid "Other"
57 msgstr ""
58
59 #: src/eiciel_main_window_controller.cpp:182 src/eiciel_acl_list.cpp:399
60 msgid "Default Mask"
61 msgstr ""
62
63 #: src/eiciel_main_window_controller.cpp:190 src/eiciel_acl_list.cpp:393
64 msgid "Default Other"
65 msgstr ""
66
67 #: src/eiciel_main_window_controller.cpp:267
68 msgid "Could not add ACL entry: "
69 msgstr ""
70
71 #: src/eiciel_main_window_controller.cpp:314
72 msgid "Could not remove ACL entry: "
73 msgstr ""
74
75 #: src/eiciel_main_window_controller.cpp:393
76 msgid "Could not modify ACL entry: "
77 msgstr ""
78
79 #: src/eiciel_main_window_controller.cpp:548
80 #: src/eiciel_enclosed_editor_window_controller.cpp:33
81 msgid "Are you sure you want to remove all ACL default entries?"
82 msgstr ""
83
1984 #: src/eiciel_container.cpp:26
2085 msgid "<b>File name</b>"
2186 msgstr ""
2287
23 #: src/eiciel_container.cpp:27 src/eiciel_container.cpp:183
88 #: src/eiciel_container.cpp:27 src/eiciel_container.cpp:168
2489 msgid "No file opened"
2590 msgstr ""
2691
27 #: src/eiciel_container.cpp:30 src/eiciel_container.cpp:192
28 #: src/eiciel_container.cpp:194
92 #: src/eiciel_container.cpp:30 src/eiciel_container.cpp:177
93 #: src/eiciel_container.cpp:180
2994 msgid "About..."
3095 msgstr ""
3196
32 #: src/eiciel_container.cpp:48 src/eiciel_nautilus_page.cpp:136
97 #: src/eiciel_container.cpp:47 src/eiciel_nautilus_page.cpp:129
3398 msgid "Access Control List"
3499 msgstr ""
35100
36 #: src/eiciel_container.cpp:56 src/eiciel_nautilus_page.cpp:156
101 #: src/eiciel_container.cpp:56 src/eiciel_nautilus_page.cpp:145
37102 msgid "Extended user attributes"
38103 msgstr ""
39104
40 #: src/eiciel_container.cpp:100
105 #: src/eiciel_container.cpp:97
41106 #, c-format
42107 msgid "Could not show the help file: %s"
43108 msgstr ""
44109
45 #: src/eiciel_container.cpp:123
110 #: src/eiciel_container.cpp:120
46111 msgid "Choose a file or a directory"
47112 msgstr ""
48113
49 #: src/eiciel_container.cpp:145
114 #: src/eiciel_container.cpp:137
50115 msgid "Could not open the file \""
51116 msgstr ""
52117
53 #: src/acl_manager.cpp:50 src/xattr_manager.cpp:33
118 #: src/eiciel_standalone.cpp:46
119 msgid "Print version information"
120 msgstr ""
121
122 #: src/eiciel_standalone.cpp:48
123 msgid "Access control list editor"
124 msgstr ""
125
126 #: src/eiciel_enclosed_editor_window.cpp:24
127 msgid "Edit ACLs for enclosed files"
128 msgstr ""
129
130 #: src/eiciel_enclosed_editor_window.cpp:25
131 msgid "_Cancel"
132 msgstr ""
133
134 #: src/eiciel_enclosed_editor_window.cpp:26
135 msgid "_Apply"
136 msgstr ""
137
138 #: src/eiciel_enclosed_editor_window.cpp:30
139 msgid "<b>Participants in ACL for enclosed directories</b>"
140 msgstr ""
141
142 #: src/eiciel_enclosed_editor_window.cpp:33
143 msgid "<b>Participants in ACL for enclosed files</b>"
144 msgstr ""
145
146 #: src/eiciel_enclosed_editor_window.cpp:36 src/eiciel_main_window.cpp:32
147 msgid "<b>Available participants</b>"
148 msgstr ""
149
150 #: src/acl_manager.cpp:46 src/xattr_manager.cpp:32
54151 msgid "Only regular files or directories supported"
55152 msgstr ""
56153
57 #: src/acl_manager.cpp:542
154 #: src/acl_manager.cpp:463
58155 msgid "Textual representation of the ACL is wrong"
59156 msgstr ""
60157
61 #: src/acl_manager.cpp:564
158 #: src/acl_manager.cpp:484
62159 msgid "Default textual representation of the ACL is wrong"
63160 msgstr ""
64161
65 #: src/eiciel_xattr_window.cpp:39
66 msgid "Name"
67 msgstr ""
68
69 #: src/eiciel_xattr_window.cpp:55
70 msgid "Value"
71 msgstr ""
72
73 #: src/eiciel_xattr_window.cpp:176
74 msgid "Could not rename attribute name: "
75 msgstr ""
76
77 #: src/eiciel_xattr_window.cpp:211
78 msgid "Could not change attribute value: "
79 msgstr ""
80
81 #: src/eiciel_xattr_window.cpp:248
82 msgid "Could not remove attribute: "
83 msgstr ""
84
85 #: src/eiciel_xattr_window.cpp:280 src/eiciel_xattr_window.cpp:289
86 msgid "New attribute"
87 msgstr ""
88
89 #: src/eiciel_xattr_window.cpp:318
90 msgid "New value"
91 msgstr ""
92
93 #: src/eiciel_xattr_window.cpp:333
94 msgid "Could not add attribute: "
95 msgstr ""
96
97 #: src/eiciel_standalone.cpp:48
98 msgid "Print version information"
99 msgstr ""
100
101 #: src/eiciel_standalone.cpp:50
102 msgid "Access control list editor"
103 msgstr ""
104
105 #: src/eiciel_main_controller.cpp:172
106 msgid "Mask"
107 msgstr ""
108
109 #: src/eiciel_main_controller.cpp:177
110 msgid "Other"
111 msgstr ""
112
113 #: src/eiciel_main_controller.cpp:250
114 msgid "Default Mask"
115 msgstr ""
116
117 #: src/eiciel_main_controller.cpp:258
118 msgid "Default Other"
119 msgstr ""
120
121 #: src/eiciel_main_controller.cpp:328
122 msgid "Could not add ACL entry: "
123 msgstr ""
124
125 #: src/eiciel_main_controller.cpp:390
126 msgid "Could not remove ACL entry: "
127 msgstr ""
128
129 #: src/eiciel_main_controller.cpp:487
130 msgid "Could not modify ACL entry: "
131 msgstr ""
132
133 #: src/eiciel_main_controller.cpp:516
134 msgid "Are you sure you want to remove all ACL default entries?"
135 msgstr ""
136
137 #: src/eiciel_main_window.cpp:26
162 #: src/eiciel_main_window.cpp:30
138163 msgid "<b>Current participants in ACL</b>"
139164 msgstr ""
140165
141 #: src/eiciel_main_window.cpp:32
166 #: src/eiciel_main_window.cpp:34
167 msgid "Edit ACLs for enclosed files..."
168 msgstr ""
169
170 #: src/eiciel_participant_list.cpp:30
171 msgid "User"
172 msgstr ""
173
174 #: src/eiciel_participant_list.cpp:31
175 msgid "Group"
176 msgstr ""
177
178 #: src/eiciel_participant_list.cpp:32
179 msgid "Default participant"
180 msgstr ""
181
182 #: src/eiciel_participant_list.cpp:37
183 msgid "Add participant to ACL"
184 msgstr ""
185
186 #: src/eiciel_participant_list.cpp:38
187 msgid "Add participant to directory ACL"
188 msgstr ""
189
190 #: src/eiciel_participant_list.cpp:39
191 msgid "Add participant to file ACL"
192 msgstr ""
193
194 #: src/eiciel_participant_list.cpp:40
195 msgid "Advanced features"
196 msgstr ""
197
198 #: src/eiciel_participant_list.cpp:42
199 msgid "Name of participant"
200 msgstr ""
201
202 #: src/eiciel_participant_list.cpp:44
203 msgid "Also show system participants"
204 msgstr ""
205
206 #: src/eiciel_participant_list.cpp:80
207 msgid "Filter participants"
208 msgstr ""
209
210 #: src/eiciel_participant_list.cpp:105
211 msgid "Participant"
212 msgstr ""
213
214 #: src/eiciel_participant_list.cpp:422
215 msgid "Participant not found"
216 msgstr ""
217
218 #: src/eiciel_acl_list.cpp:33
142219 msgid "There are ineffective permissions"
143220 msgstr ""
144221
145 #: src/eiciel_main_window.cpp:33
222 #: src/eiciel_acl_list.cpp:35
146223 msgid "Remove participant from ACL"
147224 msgstr ""
148225
149 #: src/eiciel_main_window.cpp:34
226 #: src/eiciel_acl_list.cpp:36
150227 msgid "Edit default participants"
151228 msgstr ""
152229
153 #: src/eiciel_main_window.cpp:35
154 msgid "<b>Available participants</b>"
155 msgstr ""
156
157 #: src/eiciel_main_window.cpp:38
158 msgid "User"
159 msgstr ""
160
161 #: src/eiciel_main_window.cpp:39
162 msgid "Group"
163 msgstr ""
164
165 #: src/eiciel_main_window.cpp:40
166 msgid "Default participant"
167 msgstr ""
168
169 #: src/eiciel_main_window.cpp:45
170 msgid "Add participant to ACL"
171 msgstr ""
172
173 #: src/eiciel_main_window.cpp:46
174 msgid "Advanced features"
175 msgstr ""
176
177 #: src/eiciel_main_window.cpp:48
178 msgid "Name of participant"
179 msgstr ""
180
181 #: src/eiciel_main_window.cpp:50
182 msgid "Also show system participants"
183 msgstr ""
184
185 #: src/eiciel_main_window.cpp:112
230 #: src/eiciel_acl_list.cpp:79
186231 msgid "Entry"
187232 msgstr ""
188233
189 #: src/eiciel_main_window.cpp:115
234 #: src/eiciel_acl_list.cpp:82
190235 msgid "Read"
191236 msgstr ""
192237
193 #: src/eiciel_main_window.cpp:126
238 #: src/eiciel_acl_list.cpp:95
194239 msgid "Write"
195240 msgstr ""
196241
197 #: src/eiciel_main_window.cpp:136
242 #: src/eiciel_acl_list.cpp:107
198243 msgid "Execute"
199244 msgstr ""
200
201 #: src/eiciel_main_window.cpp:152 src/eiciel_main_window.cpp:162
202 #: src/eiciel_main_window.cpp:590
203 msgid "None"
204 msgstr ""
205
206 #: src/eiciel_main_window.cpp:154
207 msgid "Only files"
208 msgstr ""
209
210 #: src/eiciel_main_window.cpp:156
211 msgid "Only directories"
212 msgstr ""
213
214 #: src/eiciel_main_window.cpp:158
215 msgid "Both files and directories"
216 msgstr ""
217
218 #: src/eiciel_main_window.cpp:166
219 msgid "Recursion"
220 msgstr ""
221
222 #: src/eiciel_main_window.cpp:201
223 msgid "Filter participants"
224 msgstr ""
225
226 #: src/eiciel_main_window.cpp:222
227 msgid "Participant"
228 msgstr ""
229
230 #: src/eiciel_main_window.cpp:912
231 msgid "Participant not found"
232 msgstr ""
Binary diff not shown
77 msgstr ""
88 "Project-Id-Version: @PACKAGE@\n"
99 "Report-Msgid-Bugs-To: rofirrim@gmail.com\n"
10 "POT-Creation-Date: 2018-01-16 19:46+0000\n"
10 "POT-Creation-Date: 2020-08-24 15:11+0200\n"
1111 "PO-Revision-Date: 2015-10-17 14:40+0200\n"
1212 "Last-Translator: Richard Brown <rbrown@suse.com>\n"
1313 "Language-Team: English (United Kingdom) <http://10n.opensuse.org/projects/"
1919 "Plural-Forms: nplurals=2; plural=n != 1;\n"
2020 "X-Generator: Weblate 2.3\n"
2121
22 #: src/eiciel_container.cpp:26
23 msgid "<b>File name</b>"
24 msgstr ""
25
26 #: src/eiciel_container.cpp:27 src/eiciel_container.cpp:183
27 msgid "No file opened"
28 msgstr ""
29
30 #: src/eiciel_container.cpp:30 src/eiciel_container.cpp:192
31 #: src/eiciel_container.cpp:194
32 msgid "About..."
33 msgstr ""
34
35 #: src/eiciel_container.cpp:48 src/eiciel_nautilus_page.cpp:136
36 msgid "Access Control List"
37 msgstr ""
38
39 #: src/eiciel_container.cpp:56 src/eiciel_nautilus_page.cpp:156
40 msgid "Extended user attributes"
41 msgstr ""
42
43 #: src/eiciel_container.cpp:100
44 #, c-format
45 msgid "Could not show the help file: %s"
46 msgstr ""
47
48 #: src/eiciel_container.cpp:123
49 msgid "Choose a file or a directory"
50 msgstr ""
51
52 #: src/eiciel_container.cpp:145
53 msgid "Could not open the file \""
54 msgstr ""
55
56 #: src/acl_manager.cpp:50 src/xattr_manager.cpp:33
57 msgid "Only regular files or directories supported"
58 msgstr ""
59
60 #: src/acl_manager.cpp:542
61 msgid "Textual representation of the ACL is wrong"
62 msgstr ""
63
64 #: src/acl_manager.cpp:564
65 msgid "Default textual representation of the ACL is wrong"
66 msgstr ""
67
68 #: src/eiciel_xattr_window.cpp:39
22 #: src/eiciel_xattr_window.cpp:40
6923 msgid "Name"
7024 msgstr "Name"
7125
7327 msgid "Value"
7428 msgstr "Value"
7529
76 #: src/eiciel_xattr_window.cpp:176
30 #: src/eiciel_xattr_window.cpp:163
7731 msgid "Could not rename attribute name: "
7832 msgstr ""
7933
80 #: src/eiciel_xattr_window.cpp:211
34 #: src/eiciel_xattr_window.cpp:190
8135 msgid "Could not change attribute value: "
8236 msgstr ""
8337
84 #: src/eiciel_xattr_window.cpp:248
38 #: src/eiciel_xattr_window.cpp:217
8539 msgid "Could not remove attribute: "
8640 msgstr ""
8741
88 #: src/eiciel_xattr_window.cpp:280 src/eiciel_xattr_window.cpp:289
42 #: src/eiciel_xattr_window.cpp:242 src/eiciel_xattr_window.cpp:249
8943 msgid "New attribute"
9044 msgstr ""
9145
92 #: src/eiciel_xattr_window.cpp:318
46 #: src/eiciel_xattr_window.cpp:275
9347 msgid "New value"
9448 msgstr "New value"
9549
96 #: src/eiciel_xattr_window.cpp:333
50 #: src/eiciel_xattr_window.cpp:287
9751 msgid "Could not add attribute: "
9852 msgstr ""
9953
100 #: src/eiciel_standalone.cpp:48
101 msgid "Print version information"
102 msgstr ""
103
104 #: src/eiciel_standalone.cpp:50
105 msgid "Access control list editor"
106 msgstr ""
107
108 #: src/eiciel_main_controller.cpp:172
54 #: src/eiciel_main_window_controller.cpp:118 src/eiciel_acl_list.cpp:366
10955 msgid "Mask"
11056 msgstr ""
11157
112 #: src/eiciel_main_controller.cpp:177
58 #: src/eiciel_main_window_controller.cpp:125
11359 msgid "Other"
11460 msgstr "Other"
11561
116 #: src/eiciel_main_controller.cpp:250
62 #: src/eiciel_main_window_controller.cpp:182 src/eiciel_acl_list.cpp:399
11763 msgid "Default Mask"
11864 msgstr ""
11965
120 #: src/eiciel_main_controller.cpp:258
66 #: src/eiciel_main_window_controller.cpp:190 src/eiciel_acl_list.cpp:393
12167 msgid "Default Other"
12268 msgstr "Default Other"
12369
124 #: src/eiciel_main_controller.cpp:328
70 #: src/eiciel_main_window_controller.cpp:267
12571 msgid "Could not add ACL entry: "
12672 msgstr ""
12773
128 #: src/eiciel_main_controller.cpp:390
74 #: src/eiciel_main_window_controller.cpp:314
12975 msgid "Could not remove ACL entry: "
13076 msgstr ""
13177
132 #: src/eiciel_main_controller.cpp:487
78 #: src/eiciel_main_window_controller.cpp:393
13379 msgid "Could not modify ACL entry: "
13480 msgstr ""
13581
136 #: src/eiciel_main_controller.cpp:516
82 #: src/eiciel_main_window_controller.cpp:548
83 #: src/eiciel_enclosed_editor_window_controller.cpp:33
13784 msgid "Are you sure you want to remove all ACL default entries?"
13885 msgstr ""
13986
140 #: src/eiciel_main_window.cpp:26
87 #: src/eiciel_container.cpp:26
88 msgid "<b>File name</b>"
89 msgstr ""
90
91 #: src/eiciel_container.cpp:27 src/eiciel_container.cpp:168
92 msgid "No file opened"
93 msgstr ""
94
95 #: src/eiciel_container.cpp:30 src/eiciel_container.cpp:177
96 #: src/eiciel_container.cpp:180
97 msgid "About..."
98 msgstr ""
99
100 #: src/eiciel_container.cpp:47 src/eiciel_nautilus_page.cpp:129
101 msgid "Access Control List"
102 msgstr ""
103
104 #: src/eiciel_container.cpp:56 src/eiciel_nautilus_page.cpp:145
105 msgid "Extended user attributes"
106 msgstr ""
107
108 #: src/eiciel_container.cpp:97
109 #, c-format
110 msgid "Could not show the help file: %s"
111 msgstr ""
112
113 #: src/eiciel_container.cpp:120
114 msgid "Choose a file or a directory"
115 msgstr ""
116
117 #: src/eiciel_container.cpp:137
118 msgid "Could not open the file \""
119 msgstr ""
120
121 #: src/eiciel_standalone.cpp:46
122 msgid "Print version information"
123 msgstr ""
124
125 #: src/eiciel_standalone.cpp:48
126 msgid "Access control list editor"
127 msgstr ""
128
129 #: src/eiciel_enclosed_editor_window.cpp:24
130 msgid "Edit ACLs for enclosed files"
131 msgstr ""
132
133 #: src/eiciel_enclosed_editor_window.cpp:25
134 msgid "_Cancel"
135 msgstr ""
136
137 #: src/eiciel_enclosed_editor_window.cpp:26
138 msgid "_Apply"
139 msgstr ""
140
141 #: src/eiciel_enclosed_editor_window.cpp:30
142 msgid "<b>Participants in ACL for enclosed directories</b>"
143 msgstr ""
144
145 #: src/eiciel_enclosed_editor_window.cpp:33
146 msgid "<b>Participants in ACL for enclosed files</b>"
147 msgstr ""
148
149 #: src/eiciel_enclosed_editor_window.cpp:36 src/eiciel_main_window.cpp:32
150 msgid "<b>Available participants</b>"
151 msgstr ""
152
153 #: src/acl_manager.cpp:46 src/xattr_manager.cpp:32
154 msgid "Only regular files or directories supported"
155 msgstr ""
156
157 #: src/acl_manager.cpp:463
158 msgid "Textual representation of the ACL is wrong"
159 msgstr ""
160
161 #: src/acl_manager.cpp:484
162 msgid "Default textual representation of the ACL is wrong"
163 msgstr ""
164
165 #: src/eiciel_main_window.cpp:30
141166 msgid "<b>Current participants in ACL</b>"
142167 msgstr ""
143168
144 #: src/eiciel_main_window.cpp:32
145 msgid "There are ineffective permissions"
146 msgstr ""
147
148 #: src/eiciel_main_window.cpp:33
149 msgid "Remove participant from ACL"
150 msgstr ""
151
152169 #: src/eiciel_main_window.cpp:34
153 msgid "Edit default participants"
154 msgstr ""
155
156 #: src/eiciel_main_window.cpp:35
157 msgid "<b>Available participants</b>"
158 msgstr ""
159
160 #: src/eiciel_main_window.cpp:38
170 msgid "Edit ACLs for enclosed files..."
171 msgstr ""
172
173 #: src/eiciel_participant_list.cpp:30
161174 msgid "User"
162175 msgstr "User"
163176
164 #: src/eiciel_main_window.cpp:39
177 #: src/eiciel_participant_list.cpp:31
165178 msgid "Group"
166179 msgstr ""
167180
168 #: src/eiciel_main_window.cpp:40
181 #: src/eiciel_participant_list.cpp:32
169182 msgid "Default participant"
170183 msgstr ""
171184
172 #: src/eiciel_main_window.cpp:45
185 #: src/eiciel_participant_list.cpp:37
173186 msgid "Add participant to ACL"
174187 msgstr ""
175188
176 #: src/eiciel_main_window.cpp:46
189 #: src/eiciel_participant_list.cpp:38
190 msgid "Add participant to directory ACL"
191 msgstr ""
192
193 #: src/eiciel_participant_list.cpp:39
194 msgid "Add participant to file ACL"
195 msgstr ""
196
197 #: src/eiciel_participant_list.cpp:40
177198 msgid "Advanced features"
178199 msgstr ""
179200
180 #: src/eiciel_main_window.cpp:48
201 #: src/eiciel_participant_list.cpp:42
181202 msgid "Name of participant"
182203 msgstr ""
183204
184 #: src/eiciel_main_window.cpp:50
205 #: src/eiciel_participant_list.cpp:44
185206 msgid "Also show system participants"
186207 msgstr ""
187208
188 #: src/eiciel_main_window.cpp:112
209 #: src/eiciel_participant_list.cpp:80
210 msgid "Filter participants"
211 msgstr ""
212
213 #: src/eiciel_participant_list.cpp:105
214 msgid "Participant"
215 msgstr ""
216
217 #: src/eiciel_participant_list.cpp:422
218 msgid "Participant not found"
219 msgstr ""
220
221 #: src/eiciel_acl_list.cpp:33
222 msgid "There are ineffective permissions"
223 msgstr ""
224
225 #: src/eiciel_acl_list.cpp:35
226 msgid "Remove participant from ACL"
227 msgstr ""
228
229 #: src/eiciel_acl_list.cpp:36
230 msgid "Edit default participants"
231 msgstr ""
232
233 #: src/eiciel_acl_list.cpp:79
189234 msgid "Entry"
190235 msgstr ""
191236
192 #: src/eiciel_main_window.cpp:115
237 #: src/eiciel_acl_list.cpp:82
193238 msgid "Read"
194239 msgstr ""
195240
196 #: src/eiciel_main_window.cpp:126
241 #: src/eiciel_acl_list.cpp:95
197242 msgid "Write"
198243 msgstr ""
199244
200 #: src/eiciel_main_window.cpp:136
245 #: src/eiciel_acl_list.cpp:107
201246 msgid "Execute"
202247 msgstr "Execute"
203
204 #: src/eiciel_main_window.cpp:152 src/eiciel_main_window.cpp:162
205 #: src/eiciel_main_window.cpp:590
206 msgid "None"
207 msgstr ""
208
209 #: src/eiciel_main_window.cpp:154
210 msgid "Only files"
211 msgstr ""
212
213 #: src/eiciel_main_window.cpp:156
214 msgid "Only directories"
215 msgstr ""
216
217 #: src/eiciel_main_window.cpp:158
218 msgid "Both files and directories"
219 msgstr ""
220
221 #: src/eiciel_main_window.cpp:166
222 msgid "Recursion"
223 msgstr ""
224
225 #: src/eiciel_main_window.cpp:201
226 msgid "Filter participants"
227 msgstr ""
228
229 #: src/eiciel_main_window.cpp:222
230 msgid "Participant"
231 msgstr ""
232
233 #: src/eiciel_main_window.cpp:912
234 msgid "Participant not found"
235 msgstr ""
Binary diff not shown
77 msgstr ""
88 "Project-Id-Version: @PACKAGE@\n"
99 "Report-Msgid-Bugs-To: rofirrim@gmail.com\n"
10 "POT-Creation-Date: 2018-01-16 19:46+0000\n"
10 "POT-Creation-Date: 2020-08-24 15:11+0200\n"
1111 "PO-Revision-Date: 2005-11-08 12:26+8\n"
1212 "Last-Translator: Steve Beattie <steve@immunix.com>\n"
1313 "Language-Team: English\n"
1717 "Content-Transfer-Encoding: 8bit\n"
1818 "Plural-Forms: nplurals=2; plural=n != 1;\n"
1919
20 #: src/eiciel_xattr_window.cpp:40
21 msgid "Name"
22 msgstr "Name"
23
24 #: src/eiciel_xattr_window.cpp:55
25 msgid "Value"
26 msgstr "Value"
27
28 #: src/eiciel_xattr_window.cpp:163
29 #, fuzzy
30 msgid "Could not rename attribute name: "
31 msgstr "Could not parse date/time:"
32
33 #: src/eiciel_xattr_window.cpp:190
34 #, fuzzy
35 msgid "Could not change attribute value: "
36 msgstr "Could not parse date/time:"
37
38 #: src/eiciel_xattr_window.cpp:217
39 #, fuzzy
40 msgid "Could not remove attribute: "
41 msgstr "Could not parse date/time:"
42
43 #: src/eiciel_xattr_window.cpp:242 src/eiciel_xattr_window.cpp:249
44 msgid "New attribute"
45 msgstr ""
46
47 #: src/eiciel_xattr_window.cpp:275
48 msgid "New value"
49 msgstr ""
50
51 #: src/eiciel_xattr_window.cpp:287
52 #, fuzzy
53 msgid "Could not add attribute: "
54 msgstr "Could not parse date/time:"
55
56 #: src/eiciel_main_window_controller.cpp:118 src/eiciel_acl_list.cpp:366
57 msgid "Mask"
58 msgstr ""
59
60 #: src/eiciel_main_window_controller.cpp:125
61 msgid "Other"
62 msgstr ""
63
64 #: src/eiciel_main_window_controller.cpp:182 src/eiciel_acl_list.cpp:399
65 #, fuzzy
66 msgid "Default Mask"
67 msgstr "Default Hat"
68
69 #: src/eiciel_main_window_controller.cpp:190 src/eiciel_acl_list.cpp:393
70 #, fuzzy
71 msgid "Default Other"
72 msgstr "Default Hat"
73
74 #: src/eiciel_main_window_controller.cpp:267
75 #, fuzzy
76 msgid "Could not add ACL entry: "
77 msgstr "Could not add '{0}': {1}"
78
79 #: src/eiciel_main_window_controller.cpp:314
80 msgid "Could not remove ACL entry: "
81 msgstr ""
82
83 #: src/eiciel_main_window_controller.cpp:393
84 msgid "Could not modify ACL entry: "
85 msgstr ""
86
87 #: src/eiciel_main_window_controller.cpp:548
88 #: src/eiciel_enclosed_editor_window_controller.cpp:33
89 #, fuzzy
90 msgid "Are you sure you want to remove all ACL default entries?"
91 msgstr "Save the current set of profile changes and exit?"
92
2093 #: src/eiciel_container.cpp:26
2194 msgid "<b>File name</b>"
2295 msgstr ""
2396
24 #: src/eiciel_container.cpp:27 src/eiciel_container.cpp:183
97 #: src/eiciel_container.cpp:27 src/eiciel_container.cpp:168
2598 msgid "No file opened"
2699 msgstr ""
27100
28 #: src/eiciel_container.cpp:30 src/eiciel_container.cpp:192
29 #: src/eiciel_container.cpp:194
101 #: src/eiciel_container.cpp:30 src/eiciel_container.cpp:177
102 #: src/eiciel_container.cpp:180
30103 msgid "About..."
31104 msgstr ""
32105
33 #: src/eiciel_container.cpp:48 src/eiciel_nautilus_page.cpp:136
106 #: src/eiciel_container.cpp:47 src/eiciel_nautilus_page.cpp:129
34107 msgid "Access Control List"
35108 msgstr ""
36109
37 #: src/eiciel_container.cpp:56 src/eiciel_nautilus_page.cpp:156
110 #: src/eiciel_container.cpp:56 src/eiciel_nautilus_page.cpp:145
38111 msgid "Extended user attributes"
39112 msgstr ""
40113
41 #: src/eiciel_container.cpp:100
114 #: src/eiciel_container.cpp:97
42115 #, fuzzy, c-format
43116 msgid "Could not show the help file: %s"
44117 msgstr "Couldn't open file: %s."
45118
46 #: src/eiciel_container.cpp:123
119 #: src/eiciel_container.cpp:120
47120 msgid "Choose a file or a directory"
48121 msgstr ""
49122
50 #: src/eiciel_container.cpp:145
123 #: src/eiciel_container.cpp:137
51124 #, fuzzy
52125 msgid "Could not open the file \""
53126 msgstr "Couldn't open file: %s."
54127
55 #: src/acl_manager.cpp:50 src/xattr_manager.cpp:33
128 #: src/eiciel_standalone.cpp:46
129 msgid "Print version information"
130 msgstr ""
131
132 #: src/eiciel_standalone.cpp:48
133 msgid "Access control list editor"
134 msgstr ""
135
136 #: src/eiciel_enclosed_editor_window.cpp:24
137 msgid "Edit ACLs for enclosed files"
138 msgstr ""
139
140 #: src/eiciel_enclosed_editor_window.cpp:25
141 msgid "_Cancel"
142 msgstr ""
143
144 #: src/eiciel_enclosed_editor_window.cpp:26
145 msgid "_Apply"
146 msgstr ""
147
148 #: src/eiciel_enclosed_editor_window.cpp:30
149 msgid "<b>Participants in ACL for enclosed directories</b>"
150 msgstr ""
151
152 #: src/eiciel_enclosed_editor_window.cpp:33
153 msgid "<b>Participants in ACL for enclosed files</b>"
154 msgstr ""
155
156 #: src/eiciel_enclosed_editor_window.cpp:36 src/eiciel_main_window.cpp:32
157 msgid "<b>Available participants</b>"
158 msgstr ""
159
160 #: src/acl_manager.cpp:46 src/xattr_manager.cpp:32
56161 msgid "Only regular files or directories supported"
57162 msgstr ""
58163
59 #: src/acl_manager.cpp:542
164 #: src/acl_manager.cpp:463
60165 msgid "Textual representation of the ACL is wrong"
61166 msgstr ""
62167
63 #: src/acl_manager.cpp:564
168 #: src/acl_manager.cpp:484
64169 msgid "Default textual representation of the ACL is wrong"
65170 msgstr ""
66171
67 #: src/eiciel_xattr_window.cpp:39
68 msgid "Name"
69 msgstr "Name"
70
71 #: src/eiciel_xattr_window.cpp:55
72 msgid "Value"
73 msgstr "Value"
74
75 #: src/eiciel_xattr_window.cpp:176
76 #, fuzzy
77 msgid "Could not rename attribute name: "
78 msgstr "Could not parse date/time:"
79
80 #: src/eiciel_xattr_window.cpp:211
81 #, fuzzy
82 msgid "Could not change attribute value: "
83 msgstr "Could not parse date/time:"
84
85 #: src/eiciel_xattr_window.cpp:248
86 #, fuzzy
87 msgid "Could not remove attribute: "
88 msgstr "Could not parse date/time:"
89
90 #: src/eiciel_xattr_window.cpp:280 src/eiciel_xattr_window.cpp:289
91 msgid "New attribute"
92 msgstr ""
93
94 #: src/eiciel_xattr_window.cpp:318
95 msgid "New value"
96 msgstr ""
97
98 #: src/eiciel_xattr_window.cpp:333
99 #, fuzzy
100 msgid "Could not add attribute: "
101 msgstr "Could not parse date/time:"
102
103 #: src/eiciel_standalone.cpp:48
104 msgid "Print version information"
105 msgstr ""
106
107 #: src/eiciel_standalone.cpp:50
108 msgid "Access control list editor"
109 msgstr ""
110
111 #: src/eiciel_main_controller.cpp:172
112 msgid "Mask"
113 msgstr ""
114
115 #: src/eiciel_main_controller.cpp:177
116 msgid "Other"
117 msgstr ""
118
119 #: src/eiciel_main_controller.cpp:250
120 #, fuzzy
121 msgid "Default Mask"
122 msgstr "Default Hat"
123
124 #: src/eiciel_main_controller.cpp:258
125 #, fuzzy
126 msgid "Default Other"
127 msgstr "Default Hat"
128
129 #: src/eiciel_main_controller.cpp:328
130 #, fuzzy
131 msgid "Could not add ACL entry: "
132 msgstr "Could not add '{0}': {1}"
133
134 #: src/eiciel_main_controller.cpp:390
135 msgid "Could not remove ACL entry: "
136 msgstr ""
137
138 #: src/eiciel_main_controller.cpp:487
139 msgid "Could not modify ACL entry: "
140 msgstr ""
141
142 #: src/eiciel_main_controller.cpp:516
143 #, fuzzy
144 msgid "Are you sure you want to remove all ACL default entries?"
145 msgstr "Save the current set of profile changes and exit?"
146
147 #: src/eiciel_main_window.cpp:26
172 #: src/eiciel_main_window.cpp:30
148173 msgid "<b>Current participants in ACL</b>"
149174 msgstr ""
150175
151 #: src/eiciel_main_window.cpp:32
152 msgid "There are ineffective permissions"
153 msgstr ""
154
155 #: src/eiciel_main_window.cpp:33
156 msgid "Remove participant from ACL"
157 msgstr ""
158
159176 #: src/eiciel_main_window.cpp:34
160 msgid "Edit default participants"
161 msgstr ""
162
163 #: src/eiciel_main_window.cpp:35
164 msgid "<b>Available participants</b>"
165 msgstr ""
166
167 #: src/eiciel_main_window.cpp:38
177 msgid "Edit ACLs for enclosed files..."
178 msgstr ""
179
180 #: src/eiciel_participant_list.cpp:30
168181 msgid "User"
169182 msgstr "User"
170183
171 #: src/eiciel_main_window.cpp:39
184 #: src/eiciel_participant_list.cpp:31
172185 msgid "Group"
173186 msgstr ""
174187
175 #: src/eiciel_main_window.cpp:40
188 #: src/eiciel_participant_list.cpp:32
176189 msgid "Default participant"
177190 msgstr ""
178191
179 #: src/eiciel_main_window.cpp:45
192 #: src/eiciel_participant_list.cpp:37
180193 msgid "Add participant to ACL"
181194 msgstr ""
182195
183 #: src/eiciel_main_window.cpp:46
196 #: src/eiciel_participant_list.cpp:38
197 msgid "Add participant to directory ACL"
198 msgstr ""
199
200 #: src/eiciel_participant_list.cpp:39
201 msgid "Add participant to file ACL"
202 msgstr ""
203
204 #: src/eiciel_participant_list.cpp:40
184205 msgid "Advanced features"
185206 msgstr ""
186207
187 #: src/eiciel_main_window.cpp:48
208 #: src/eiciel_participant_list.cpp:42
188209 msgid "Name of participant"
189210 msgstr ""
190211
191 #: src/eiciel_main_window.cpp:50
212 #: src/eiciel_participant_list.cpp:44
192213 msgid "Also show system participants"
193214 msgstr ""
194215
195 #: src/eiciel_main_window.cpp:112
216 #: src/eiciel_participant_list.cpp:80
217 msgid "Filter participants"
218 msgstr ""
219
220 #: src/eiciel_participant_list.cpp:105
221 msgid "Participant"
222 msgstr ""
223
224 #: src/eiciel_participant_list.cpp:422
225 msgid "Participant not found"
226 msgstr ""
227
228 #: src/eiciel_acl_list.cpp:33
229 msgid "There are ineffective permissions"
230 msgstr ""
231
232 #: src/eiciel_acl_list.cpp:35
233 msgid "Remove participant from ACL"
234 msgstr ""
235
236 #: src/eiciel_acl_list.cpp:36
237 msgid "Edit default participants"
238 msgstr ""
239
240 #: src/eiciel_acl_list.cpp:79
196241 #, fuzzy
197242 msgid "Entry"
198243 msgstr "Log Entry"
199244
200 #: src/eiciel_main_window.cpp:115
245 #: src/eiciel_acl_list.cpp:82
201246 msgid "Read"
202247 msgstr ""
203248
204 #: src/eiciel_main_window.cpp:126
249 #: src/eiciel_acl_list.cpp:95
205250 msgid "Write"
206251 msgstr ""
207252
208 #: src/eiciel_main_window.cpp:136
253 #: src/eiciel_acl_list.cpp:107
209254 #, fuzzy
210255 msgid "Execute"
211256 msgstr "Execute"
212257
213 #: src/eiciel_main_window.cpp:152 src/eiciel_main_window.cpp:162
214 #: src/eiciel_main_window.cpp:590
215 msgid "None"
216 msgstr ""
217
218 #: src/eiciel_main_window.cpp:154
219 msgid "Only files"
220 msgstr ""
221
222 #: src/eiciel_main_window.cpp:156
223 msgid "Only directories"
224 msgstr ""
225
226 #: src/eiciel_main_window.cpp:158
227 msgid "Both files and directories"
228 msgstr ""
229
230 #: src/eiciel_main_window.cpp:166
231 msgid "Recursion"
232 msgstr ""
233
234 #: src/eiciel_main_window.cpp:201
235 msgid "Filter participants"
236 msgstr ""
237
238 #: src/eiciel_main_window.cpp:222
239 msgid "Participant"
240 msgstr ""
241
242 #: src/eiciel_main_window.cpp:912
243 msgid "Participant not found"
244 msgstr ""
245
246258 #, fuzzy
247259 #~ msgid "Default"
248260 #~ msgstr "Default Hat"
Binary diff not shown
+196
-168
po/es.po less more
44 msgstr ""
55 "Project-Id-Version: eiciel\n"
66 "Report-Msgid-Bugs-To: rofirrim@gmail.com\n"
7 "POT-Creation-Date: 2018-01-16 19:46+0000\n"
8 "PO-Revision-Date: 2015-10-29 07:32+0200\n"
7 "POT-Creation-Date: 2020-08-24 15:11+0200\n"
8 "PO-Revision-Date: 2020-05-26 14:40+0000\n"
99 "Last-Translator: Adolfo Jayme Barrientos <fitoschido@gmail.com>\n"
10 "Language-Team: Spanish <http://10n.opensuse.org/projects/eiciel/master/es/>\n"
10 "Language-Team: Spanish <https://l10n.opensuse.org/projects/eiciel/master/es/"
11 ">\n"
1112 "Language: es\n"
1213 "MIME-Version: 1.0\n"
1314 "Content-Type: text/plain; charset=UTF-8\n"
1415 "Content-Transfer-Encoding: 8bit\n"
1516 "Plural-Forms: nplurals=2; plural=n != 1;\n"
16 "X-Generator: Weblate 2.3\n"
17 "X-Generator: Weblate 3.6.1\n"
18
19 #: src/eiciel_xattr_window.cpp:40
20 msgid "Name"
21 msgstr "Nombre"
22
23 #: src/eiciel_xattr_window.cpp:55
24 msgid "Value"
25 msgstr "Valor"
26
27 #: src/eiciel_xattr_window.cpp:163
28 msgid "Could not rename attribute name: "
29 msgstr "No es posible modificar el nombre del atributo: "
30
31 #: src/eiciel_xattr_window.cpp:190
32 msgid "Could not change attribute value: "
33 msgstr "No es posible modificar el valor del atributo: "
34
35 #: src/eiciel_xattr_window.cpp:217
36 msgid "Could not remove attribute: "
37 msgstr "No es posible quitar el atributo: "
38
39 #: src/eiciel_xattr_window.cpp:242 src/eiciel_xattr_window.cpp:249
40 msgid "New attribute"
41 msgstr "Atributo nuevo"
42
43 #: src/eiciel_xattr_window.cpp:275
44 msgid "New value"
45 msgstr "Valor nuevo"
46
47 #: src/eiciel_xattr_window.cpp:287
48 msgid "Could not add attribute: "
49 msgstr "No es posible añadir el atributo: "
50
51 #: src/eiciel_main_window_controller.cpp:118 src/eiciel_acl_list.cpp:366
52 msgid "Mask"
53 msgstr "Máscara"
54
55 #: src/eiciel_main_window_controller.cpp:125
56 msgid "Other"
57 msgstr "Otros"
58
59 #: src/eiciel_main_window_controller.cpp:182 src/eiciel_acl_list.cpp:399
60 msgid "Default Mask"
61 msgstr "Máscara predeterminada"
62
63 #: src/eiciel_main_window_controller.cpp:190 src/eiciel_acl_list.cpp:393
64 msgid "Default Other"
65 msgstr "Otros predeterminados"
66
67 #: src/eiciel_main_window_controller.cpp:267
68 msgid "Could not add ACL entry: "
69 msgstr "No es posible añadir la entrada de ACL: "
70
71 #: src/eiciel_main_window_controller.cpp:314
72 msgid "Could not remove ACL entry: "
73 msgstr "No es posible quitar la entrada de ACL: "
74
75 #: src/eiciel_main_window_controller.cpp:393
76 msgid "Could not modify ACL entry: "
77 msgstr "No es posible modificar la entrada de ACL: "
78
79 #: src/eiciel_main_window_controller.cpp:548
80 #: src/eiciel_enclosed_editor_window_controller.cpp:33
81 msgid "Are you sure you want to remove all ACL default entries?"
82 msgstr ""
83 "¿Confirma que quiere eliminar todas las entradas predeterminadas de la ACL?"
1784
1885 #: src/eiciel_container.cpp:26
1986 msgid "<b>File name</b>"
2087 msgstr "<b>Nombre de archivo</b>"
2188
22 #: src/eiciel_container.cpp:27 src/eiciel_container.cpp:183
89 #: src/eiciel_container.cpp:27 src/eiciel_container.cpp:168
2390 msgid "No file opened"
24 msgstr "No hay ningún archivo abierto"
25
26 #: src/eiciel_container.cpp:30 src/eiciel_container.cpp:192
27 #: src/eiciel_container.cpp:194
91 msgstr "No se abrió ningún archivo"
92
93 #: src/eiciel_container.cpp:30 src/eiciel_container.cpp:177
94 #: src/eiciel_container.cpp:180
2895 msgid "About..."
29 msgstr "Acerca de..."
30
31 #: src/eiciel_container.cpp:48 src/eiciel_nautilus_page.cpp:136
96 msgstr "Acerca de…"
97
98 #: src/eiciel_container.cpp:47 src/eiciel_nautilus_page.cpp:129
3299 msgid "Access Control List"
33100 msgstr "Lista de control de acceso"
34101
35 #: src/eiciel_container.cpp:56 src/eiciel_nautilus_page.cpp:156
102 #: src/eiciel_container.cpp:56 src/eiciel_nautilus_page.cpp:145
36103 msgid "Extended user attributes"
37104 msgstr "Atributos de usuario extendidos"
38105
39 #: src/eiciel_container.cpp:100
106 #: src/eiciel_container.cpp:97
40107 #, c-format
41108 msgid "Could not show the help file: %s"
42109 msgstr "No es posible mostrar el archivo de ayuda: %s"
43110
44 #: src/eiciel_container.cpp:123
111 #: src/eiciel_container.cpp:120
45112 msgid "Choose a file or a directory"
46113 msgstr "Seleccione un archivo o un directorio"
47114
48 #: src/eiciel_container.cpp:145
115 #: src/eiciel_container.cpp:137
49116 msgid "Could not open the file \""
50 msgstr "No es posible abrir el archivo \""
51
52 #: src/acl_manager.cpp:50 src/xattr_manager.cpp:33
117 msgstr "No es posible abrir el archivo «"
118
119 #: src/eiciel_standalone.cpp:46
120 msgid "Print version information"
121 msgstr "Imprimir información de versión"
122
123 #: src/eiciel_standalone.cpp:48
124 msgid "Access control list editor"
125 msgstr "Editor de lista de control de acceso"
126
127 #: src/eiciel_enclosed_editor_window.cpp:24
128 msgid "Edit ACLs for enclosed files"
129 msgstr "Editar los ACL de los archivos contenidos"
130
131 #: src/eiciel_enclosed_editor_window.cpp:25
132 msgid "_Cancel"
133 msgstr "_Cancelar"
134
135 #: src/eiciel_enclosed_editor_window.cpp:26
136 msgid "_Apply"
137 msgstr "_Aplicar"
138
139 #: src/eiciel_enclosed_editor_window.cpp:30
140 msgid "<b>Participants in ACL for enclosed directories</b>"
141 msgstr "<b>Participantes en la ACL de los directorios contenidos</b>"
142
143 #: src/eiciel_enclosed_editor_window.cpp:33
144 msgid "<b>Participants in ACL for enclosed files</b>"
145 msgstr "<b>Participantes en la ACL de los ficheros contenidos</b>"
146
147 #: src/eiciel_enclosed_editor_window.cpp:36 src/eiciel_main_window.cpp:32
148 msgid "<b>Available participants</b>"
149 msgstr "<b>Participantes disponibles</b>"
150
151 #: src/acl_manager.cpp:46 src/xattr_manager.cpp:32
53152 msgid "Only regular files or directories supported"
54 msgstr "Sólo se admiten archivos y directorios normales"
55
56 #: src/acl_manager.cpp:542
153 msgstr "Solo se admiten archivos y directorios normales"
154
155 #: src/acl_manager.cpp:463
57156 msgid "Textual representation of the ACL is wrong"
58157 msgstr "La representación textual de la ACL es incorrecta"
59158
60 #: src/acl_manager.cpp:564
159 #: src/acl_manager.cpp:484
61160 msgid "Default textual representation of the ACL is wrong"
62161 msgstr "La representación textual predeterminada de la ACL es incorrecta"
63162
64 #: src/eiciel_xattr_window.cpp:39
65 msgid "Name"
66 msgstr "Nombre"
67
68 #: src/eiciel_xattr_window.cpp:55
69 msgid "Value"
70 msgstr "Valor"
71
72 #: src/eiciel_xattr_window.cpp:176
73 msgid "Could not rename attribute name: "
74 msgstr "No es posible modificar el nombre del atributo: "
75
76 #: src/eiciel_xattr_window.cpp:211
77 msgid "Could not change attribute value: "
78 msgstr "No es posible modificar el valor del atributo: "
79
80 #: src/eiciel_xattr_window.cpp:248
81 msgid "Could not remove attribute: "
82 msgstr "No es posible quitar el atributo: "
83
84 #: src/eiciel_xattr_window.cpp:280 src/eiciel_xattr_window.cpp:289
85 msgid "New attribute"
86 msgstr "Atributo nuevo"
87
88 #: src/eiciel_xattr_window.cpp:318
89 msgid "New value"
90 msgstr "Valor nuevo"
91
92 #: src/eiciel_xattr_window.cpp:333
93 msgid "Could not add attribute: "
94 msgstr "No es posible añadir el atributo: "
95
96 #: src/eiciel_standalone.cpp:48
97 msgid "Print version information"
98 msgstr "Imprimir información de versión"
99
100 #: src/eiciel_standalone.cpp:50
101 msgid "Access control list editor"
102 msgstr "Editor de lista de control de acceso"
103
104 #: src/eiciel_main_controller.cpp:172
105 msgid "Mask"
106 msgstr "Máscara"
107
108 #: src/eiciel_main_controller.cpp:177
109 msgid "Other"
110 msgstr "Otros"
111
112 #: src/eiciel_main_controller.cpp:250
113 msgid "Default Mask"
114 msgstr "Máscara predeterminada"
115
116 #: src/eiciel_main_controller.cpp:258
117 msgid "Default Other"
118 msgstr "Otros predeterminados"
119
120 #: src/eiciel_main_controller.cpp:328
121 msgid "Could not add ACL entry: "
122 msgstr "No es posible añadir la entrada de ACL:"
123
124 #: src/eiciel_main_controller.cpp:390
125 msgid "Could not remove ACL entry: "
126 msgstr "No es posible quitar la entrada de ACL: "
127
128 #: src/eiciel_main_controller.cpp:487
129 msgid "Could not modify ACL entry: "
130 msgstr "No es posible modificar la entrada de ACL: "
131
132 #: src/eiciel_main_controller.cpp:516
133 msgid "Are you sure you want to remove all ACL default entries?"
134 msgstr ""
135 "¿Seguro que desea eliminar todas las entradas predeterminadas de la ACL?"
136
137 #: src/eiciel_main_window.cpp:26
163 #: src/eiciel_main_window.cpp:30
138164 msgid "<b>Current participants in ACL</b>"
139165 msgstr "<b>Participantes actuales en la ACL</b>"
140166
141 #: src/eiciel_main_window.cpp:32
167 #: src/eiciel_main_window.cpp:34
168 msgid "Edit ACLs for enclosed files..."
169 msgstr "Editar los ACL de los archivos contenidos…"
170
171 #: src/eiciel_participant_list.cpp:30
172 msgid "User"
173 msgstr "Usuario"
174
175 #: src/eiciel_participant_list.cpp:31
176 msgid "Group"
177 msgstr "Grupo"
178
179 #: src/eiciel_participant_list.cpp:32
180 msgid "Default participant"
181 msgstr "Participante predeterminado"
182
183 #: src/eiciel_participant_list.cpp:37
184 msgid "Add participant to ACL"
185 msgstr "Añadir participante en la ACL"
186
187 #: src/eiciel_participant_list.cpp:38
188 msgid "Add participant to directory ACL"
189 msgstr "Añadir participante en la ACL de directorio"
190
191 #: src/eiciel_participant_list.cpp:39
192 msgid "Add participant to file ACL"
193 msgstr "Añadir participante en la ACL de archivo"
194
195 #: src/eiciel_participant_list.cpp:40
196 msgid "Advanced features"
197 msgstr "Funciones avanzadas"
198
199 #: src/eiciel_participant_list.cpp:42
200 msgid "Name of participant"
201 msgstr "Nombre del participante"
202
203 #: src/eiciel_participant_list.cpp:44
204 msgid "Also show system participants"
205 msgstr "Mostrar también participantes del sistema"
206
207 #: src/eiciel_participant_list.cpp:80
208 msgid "Filter participants"
209 msgstr "Filtrar participantes"
210
211 #: src/eiciel_participant_list.cpp:105
212 msgid "Participant"
213 msgstr "Participante"
214
215 #: src/eiciel_participant_list.cpp:422
216 msgid "Participant not found"
217 msgstr "Participante no encontrado"
218
219 #: src/eiciel_acl_list.cpp:33
142220 msgid "There are ineffective permissions"
143221 msgstr "Hay permisos que no están vigentes"
144222
145 #: src/eiciel_main_window.cpp:33
223 #: src/eiciel_acl_list.cpp:35
146224 msgid "Remove participant from ACL"
147225 msgstr "Quitar participante de la ACL"
148226
149 #: src/eiciel_main_window.cpp:34
227 #: src/eiciel_acl_list.cpp:36
150228 msgid "Edit default participants"
151229 msgstr "Editar participantes predeterminados"
152230
153 #: src/eiciel_main_window.cpp:35
154 msgid "<b>Available participants</b>"
155 msgstr "<b>Participantes disponibles</b>"
156
157 #: src/eiciel_main_window.cpp:38
158 msgid "User"
159 msgstr "Usuario"
160
161 #: src/eiciel_main_window.cpp:39
162 msgid "Group"
163 msgstr "Grupo"
164
165 #: src/eiciel_main_window.cpp:40
166 msgid "Default participant"
167 msgstr "Participante predeterminado"
168
169 #: src/eiciel_main_window.cpp:45
170 msgid "Add participant to ACL"
171 msgstr "Añadir participante en la ACL"
172
173 #: src/eiciel_main_window.cpp:46
174 msgid "Advanced features"
175 msgstr "Funciones avanzadas"
176
177 #: src/eiciel_main_window.cpp:48
178 msgid "Name of participant"
179 msgstr "Nombre del participante"
180
181 #: src/eiciel_main_window.cpp:50
182 msgid "Also show system participants"
183 msgstr "Mostrar también participantes del sistema"
184
185 #: src/eiciel_main_window.cpp:112
231 #: src/eiciel_acl_list.cpp:79
186232 msgid "Entry"
187233 msgstr "Entrada"
188234
189 #: src/eiciel_main_window.cpp:115
235 #: src/eiciel_acl_list.cpp:82
190236 msgid "Read"
191237 msgstr "Lectura"
192238
193 #: src/eiciel_main_window.cpp:126
239 #: src/eiciel_acl_list.cpp:95
194240 msgid "Write"
195241 msgstr "Escritura"
196242
197 #: src/eiciel_main_window.cpp:136
243 #: src/eiciel_acl_list.cpp:107
198244 msgid "Execute"
199245 msgstr "Ejecución"
200246
201 #: src/eiciel_main_window.cpp:152 src/eiciel_main_window.cpp:162
202 #: src/eiciel_main_window.cpp:590
203 msgid "None"
204 msgstr "Ninguno"
205
206 #: src/eiciel_main_window.cpp:154
207 msgid "Only files"
208 msgstr "Solo archivos"
209
210 #: src/eiciel_main_window.cpp:156
211 msgid "Only directories"
212 msgstr "Solo directorios"
213
214 #: src/eiciel_main_window.cpp:158
215 msgid "Both files and directories"
216 msgstr "Archivos y directorios"
217
218 #: src/eiciel_main_window.cpp:166
219 msgid "Recursion"
220 msgstr "Recursión"
221
222 #: src/eiciel_main_window.cpp:201
223 msgid "Filter participants"
224 msgstr "Filtrar participantes"
225
226 #: src/eiciel_main_window.cpp:222
227 msgid "Participant"
228 msgstr "Participante"
229
230 #: src/eiciel_main_window.cpp:912
231 msgid "Participant not found"
232 msgstr "Participante no encontrado"
247 #~ msgid "None"
248 #~ msgstr "Ninguno"
249
250 #~ msgid "Only files"
251 #~ msgstr "Solo archivos"
252
253 #~ msgid "Only directories"
254 #~ msgstr "Solo directorios"
255
256 #~ msgid "Both files and directories"
257 #~ msgstr "Archivos y directorios"
258
259 #~ msgid "Recursion"
260 #~ msgstr "Recursión"
233261
234262 #~ msgid "Default"
235263 #~ msgstr "Por defecto"
Binary diff not shown
0 # Copyright (C) 2016 Free Software Foundation, Inc.
1 # This file is distributed under the same license as the PACKAGE package.
2 # hayyan <joghdeshab@live.com>, 2016.
3 msgid ""
4 msgstr ""
5 "Project-Id-Version: eiciel 0.9.11\n"
6 "Report-Msgid-Bugs-To: rofirrim@gmail.com\n"
7 "POT-Creation-Date: 2020-08-24 15:11+0200\n"
8 "PO-Revision-Date: 2016-11-06 12:55+0000\n"
9 "Last-Translator: hayyan rostami <hayyan71@yahoo.com>\n"
10 "Language-Team: Persian <https://l10n.opensuse.org/projects/eiciel/master/fa/"
11 ">\n"
12 "Language: fa\n"
13 "MIME-Version: 1.0\n"
14 "Content-Type: text/plain; charset=UTF-8\n"
15 "Content-Transfer-Encoding: 8bit\n"
16 "Plural-Forms: nplurals=2; plural=n != 1;\n"
17 "X-Generator: Weblate 2.6\n"
18
19 #: src/eiciel_xattr_window.cpp:40
20 msgid "Name"
21 msgstr "نام"
22
23 #: src/eiciel_xattr_window.cpp:55
24 msgid "Value"
25 msgstr "مقدار"
26
27 #: src/eiciel_xattr_window.cpp:163
28 msgid "Could not rename attribute name: "
29 msgstr "نمیتوان نام صفت را مجددا نامگذاری کرد: "
30
31 #: src/eiciel_xattr_window.cpp:190
32 msgid "Could not change attribute value: "
33 msgstr "نمیتوان مقدار صفت را تغییر داد: "
34
35 #: src/eiciel_xattr_window.cpp:217
36 msgid "Could not remove attribute: "
37 msgstr "نمیتوان صفت را حذف کرد: "
38
39 #: src/eiciel_xattr_window.cpp:242 src/eiciel_xattr_window.cpp:249
40 msgid "New attribute"
41 msgstr "صفت جدید"
42
43 #: src/eiciel_xattr_window.cpp:275
44 msgid "New value"
45 msgstr "مقدار جدید"
46
47 #: src/eiciel_xattr_window.cpp:287
48 msgid "Could not add attribute: "
49 msgstr "نمیتوان صفت را اضافه کرد: "
50
51 #: src/eiciel_main_window_controller.cpp:118 src/eiciel_acl_list.cpp:366
52 msgid "Mask"
53 msgstr "ماسک"
54
55 #: src/eiciel_main_window_controller.cpp:125
56 msgid "Other"
57 msgstr "دیگر"
58
59 #: src/eiciel_main_window_controller.cpp:182 src/eiciel_acl_list.cpp:399
60 msgid "Default Mask"
61 msgstr "ماسک پیشفرض"
62
63 #: src/eiciel_main_window_controller.cpp:190 src/eiciel_acl_list.cpp:393
64 msgid "Default Other"
65 msgstr "دیگر پیشفرض"
66
67 #: src/eiciel_main_window_controller.cpp:267
68 msgid "Could not add ACL entry: "
69 msgstr "نمیتوان ورودی ACL را اضافه کرد: "
70
71 #: src/eiciel_main_window_controller.cpp:314
72 msgid "Could not remove ACL entry: "
73 msgstr "نمیتوان ورودی ACL را حذف کرد: "
74
75 #: src/eiciel_main_window_controller.cpp:393
76 msgid "Could not modify ACL entry: "
77 msgstr "نمیتوان ورودی ACL را دستکاری کرد: "
78
79 #: src/eiciel_main_window_controller.cpp:548
80 #: src/eiciel_enclosed_editor_window_controller.cpp:33
81 msgid "Are you sure you want to remove all ACL default entries?"
82 msgstr "آیا میخواهید که تمامی ورودیهای پیشفرض ACL را حذف کنید؟"
83
84 #: src/eiciel_container.cpp:26
85 msgid "<b>File name</b>"
86 msgstr "<b>نام پرونده</b>"
87
88 #: src/eiciel_container.cpp:27 src/eiciel_container.cpp:168
89 msgid "No file opened"
90 msgstr "پرونده ای باز نشده است"
91
92 #: src/eiciel_container.cpp:30 src/eiciel_container.cpp:177
93 #: src/eiciel_container.cpp:180
94 msgid "About..."
95 msgstr "درباره..."
96
97 #: src/eiciel_container.cpp:47 src/eiciel_nautilus_page.cpp:129
98 msgid "Access Control List"
99 msgstr "لیست کنترل دسترسی"
100
101 #: src/eiciel_container.cpp:56 src/eiciel_nautilus_page.cpp:145
102 msgid "Extended user attributes"
103 msgstr "صفات تمدید شده ی کاربر"
104
105 #: src/eiciel_container.cpp:97
106 #, c-format
107 msgid "Could not show the help file: %s"
108 msgstr "نمیتوان پرونده ی کمک را نشان داد: %s"
109
110 #: src/eiciel_container.cpp:120
111 msgid "Choose a file or a directory"
112 msgstr "یک پرونده و یا فهرست را انتخاب کنید"
113
114 #: src/eiciel_container.cpp:137
115 msgid "Could not open the file \""
116 msgstr "نمیتوان پرونده را باز کرد \""
117
118 #: src/eiciel_standalone.cpp:46
119 msgid "Print version information"
120 msgstr "چاپ اطلاعات نسخه"
121
122 #: src/eiciel_standalone.cpp:48
123 msgid "Access control list editor"
124 msgstr "ویرایشگر لیست کنترل دسترسی"
125
126 #: src/eiciel_enclosed_editor_window.cpp:24
127 msgid "Edit ACLs for enclosed files"
128 msgstr ""
129
130 #: src/eiciel_enclosed_editor_window.cpp:25
131 msgid "_Cancel"
132 msgstr ""
133
134 #: src/eiciel_enclosed_editor_window.cpp:26
135 msgid "_Apply"
136 msgstr ""
137
138 #: src/eiciel_enclosed_editor_window.cpp:30
139 msgid "<b>Participants in ACL for enclosed directories</b>"
140 msgstr ""
141
142 #: src/eiciel_enclosed_editor_window.cpp:33
143 #, fuzzy
144 msgid "<b>Participants in ACL for enclosed files</b>"
145 msgstr "<b>شرکت کنندگان کنونی در ACL</b>"
146
147 #: src/eiciel_enclosed_editor_window.cpp:36 src/eiciel_main_window.cpp:32
148 msgid "<b>Available participants</b>"
149 msgstr "<b>شرکت کنندگان موجود</b>"
150
151 #: src/acl_manager.cpp:46 src/xattr_manager.cpp:32
152 msgid "Only regular files or directories supported"
153 msgstr "تنها پرونده ها و یا فهرستهای عادی پشتیبانی میشوند"
154
155 #: src/acl_manager.cpp:463
156 msgid "Textual representation of the ACL is wrong"
157 msgstr "نمایندگی متنی ACL اشتباه است"
158
159 #: src/acl_manager.cpp:484
160 msgid "Default textual representation of the ACL is wrong"
161 msgstr "نمایندگی متنی پیشفرض ACL اشتباه است"
162
163 #: src/eiciel_main_window.cpp:30
164 msgid "<b>Current participants in ACL</b>"
165 msgstr "<b>شرکت کنندگان کنونی در ACL</b>"
166
167 #: src/eiciel_main_window.cpp:34
168 msgid "Edit ACLs for enclosed files..."
169 msgstr ""
170
171 #: src/eiciel_participant_list.cpp:30
172 msgid "User"
173 msgstr "کاربر"
174
175 #: src/eiciel_participant_list.cpp:31
176 msgid "Group"
177 msgstr "گروه"
178
179 #: src/eiciel_participant_list.cpp:32
180 msgid "Default participant"
181 msgstr "شرکت کننده ی پیشفرض"
182
183 #: src/eiciel_participant_list.cpp:37
184 msgid "Add participant to ACL"
185 msgstr "اضافه کردن شرکت کننده در ACL"
186
187 #: src/eiciel_participant_list.cpp:38
188 #, fuzzy
189 msgid "Add participant to directory ACL"
190 msgstr "اضافه کردن شرکت کننده در ACL"
191
192 #: src/eiciel_participant_list.cpp:39
193 #, fuzzy
194 msgid "Add participant to file ACL"
195 msgstr "اضافه کردن شرکت کننده در ACL"
196
197 #: src/eiciel_participant_list.cpp:40
198 msgid "Advanced features"
199 msgstr "ویژگی های پیشفرض"
200
201 #: src/eiciel_participant_list.cpp:42
202 msgid "Name of participant"
203 msgstr "نام شرکت کننده"
204
205 #: src/eiciel_participant_list.cpp:44
206 msgid "Also show system participants"
207 msgstr "همچنین شرکت کنندگان سیستم را نمایش بده"
208
209 #: src/eiciel_participant_list.cpp:80
210 msgid "Filter participants"
211 msgstr "پالایش شرکت کنندگان"
212
213 #: src/eiciel_participant_list.cpp:105
214 msgid "Participant"
215 msgstr "شرکت کننده"
216
217 #: src/eiciel_participant_list.cpp:422
218 msgid "Participant not found"
219 msgstr "شرکت کننده یافت نشد"
220
221 #: src/eiciel_acl_list.cpp:33
222 msgid "There are ineffective permissions"
223 msgstr "مجوزهای بی اثر وجود دارد"
224
225 #: src/eiciel_acl_list.cpp:35
226 msgid "Remove participant from ACL"
227 msgstr "حذف شرکت کنندگان از ACL"
228
229 #: src/eiciel_acl_list.cpp:36
230 msgid "Edit default participants"
231 msgstr "ویرایش شرکت کنندگان پیشفرض"
232
233 #: src/eiciel_acl_list.cpp:79
234 msgid "Entry"
235 msgstr "ورودی"
236
237 #: src/eiciel_acl_list.cpp:82
238 msgid "Read"
239 msgstr "خواندن"
240
241 #: src/eiciel_acl_list.cpp:95
242 msgid "Write"
243 msgstr "نوشتن"
244
245 #: src/eiciel_acl_list.cpp:107
246 msgid "Execute"
247 msgstr "اجرا"
248
249 #~ msgid "None"
250 #~ msgstr "هیچکدام"
251
252 #~ msgid "Only files"
253 #~ msgstr "فقط پرونده ها"
254
255 #~ msgid "Only directories"
256 #~ msgstr "فقط فهرستها"
257
258 #~ msgid "Both files and directories"
259 #~ msgstr "فقط پرونده ها و فهرستها"
260
261 #~ msgid "Recursion"
262 #~ msgstr "بازگشتی"
Binary diff not shown
+186
-156
po/fr.po less more
44 msgstr ""
55 "Project-Id-Version: eiciel\n"
66 "Report-Msgid-Bugs-To: rofirrim@gmail.com\n"
7 "POT-Creation-Date: 2018-01-16 19:46+0000\n"
7 "POT-Creation-Date: 2020-08-24 15:11+0200\n"
88 "PO-Revision-Date: 2016-09-25 13:29+0000\n"
99 "Last-Translator: Benoît Monin <benoit.monin@gmx.fr>\n"
1010 "Language-Team: French <https://l10n.opensuse.org/projects/eiciel/master/fr/"
1616 "Plural-Forms: nplurals=2; plural=n > 1;\n"
1717 "X-Generator: Weblate 2.6\n"
1818
19 #: src/eiciel_xattr_window.cpp:40
20 msgid "Name"
21 msgstr "Nom"
22
23 #: src/eiciel_xattr_window.cpp:55
24 msgid "Value"
25 msgstr "Valeur"
26
27 #: src/eiciel_xattr_window.cpp:163
28 msgid "Could not rename attribute name: "
29 msgstr "Impossible de modifier le nom de l'attribut : "
30
31 #: src/eiciel_xattr_window.cpp:190
32 msgid "Could not change attribute value: "
33 msgstr "Impossible de modifier la valeur de l'attribut : "
34
35 #: src/eiciel_xattr_window.cpp:217
36 msgid "Could not remove attribute: "
37 msgstr "Impossible de supprimer l'attribut : "
38
39 #: src/eiciel_xattr_window.cpp:242 src/eiciel_xattr_window.cpp:249
40 msgid "New attribute"
41 msgstr "Nouvel attribut"
42
43 #: src/eiciel_xattr_window.cpp:275
44 msgid "New value"
45 msgstr "NOUVELLE VALEUR"
46
47 #: src/eiciel_xattr_window.cpp:287
48 msgid "Could not add attribute: "
49 msgstr "Impossible d'ajouter l'attribut : "
50
51 #: src/eiciel_main_window_controller.cpp:118 src/eiciel_acl_list.cpp:366
52 msgid "Mask"
53 msgstr "Masque"
54
55 #: src/eiciel_main_window_controller.cpp:125
56 msgid "Other"
57 msgstr "Autre"
58
59 #: src/eiciel_main_window_controller.cpp:182 src/eiciel_acl_list.cpp:399
60 msgid "Default Mask"
61 msgstr "Masque par défaut"
62
63 #: src/eiciel_main_window_controller.cpp:190 src/eiciel_acl_list.cpp:393
64 msgid "Default Other"
65 msgstr "Autre par défaut"
66
67 #: src/eiciel_main_window_controller.cpp:267
68 msgid "Could not add ACL entry: "
69 msgstr "Impossible d'ajouter une entrée ACL : "
70
71 #: src/eiciel_main_window_controller.cpp:314
72 msgid "Could not remove ACL entry: "
73 msgstr "Impossible de supprimer une entrée ACL : "
74
75 #: src/eiciel_main_window_controller.cpp:393
76 msgid "Could not modify ACL entry: "
77 msgstr "Impossible de modifier une entrée ACL : "
78
79 #: src/eiciel_main_window_controller.cpp:548
80 #: src/eiciel_enclosed_editor_window_controller.cpp:33
81 msgid "Are you sure you want to remove all ACL default entries?"
82 msgstr "Voulez-vous vraiment supprimer toutes les entrées ACL par défaut ?"
83
1984 #: src/eiciel_container.cpp:26
2085 msgid "<b>File name</b>"
2186 msgstr "<b>Nom de fichier</b>"
2287
23 #: src/eiciel_container.cpp:27 src/eiciel_container.cpp:183
88 #: src/eiciel_container.cpp:27 src/eiciel_container.cpp:168
2489 msgid "No file opened"
2590 msgstr "Aucun fichier ouvert"
2691
27 #: src/eiciel_container.cpp:30 src/eiciel_container.cpp:192
28 #: src/eiciel_container.cpp:194
92 #: src/eiciel_container.cpp:30 src/eiciel_container.cpp:177
93 #: src/eiciel_container.cpp:180
2994 msgid "About..."
3095 msgstr "À propos de..."
3196
32 #: src/eiciel_container.cpp:48 src/eiciel_nautilus_page.cpp:136
97 #: src/eiciel_container.cpp:47 src/eiciel_nautilus_page.cpp:129
3398 msgid "Access Control List"
3499 msgstr "liste de contrôle d'accès"
35100
36 #: src/eiciel_container.cpp:56 src/eiciel_nautilus_page.cpp:156
101 #: src/eiciel_container.cpp:56 src/eiciel_nautilus_page.cpp:145
37102 msgid "Extended user attributes"
38103 msgstr "Attributs étendus de l'utilisateur"
39104
40 #: src/eiciel_container.cpp:100
105 #: src/eiciel_container.cpp:97
41106 #, c-format
42107 msgid "Could not show the help file: %s"
43108 msgstr "Impossible d'afficher le fichier d'aide : %s"
44109
45 #: src/eiciel_container.cpp:123
110 #: src/eiciel_container.cpp:120
46111 msgid "Choose a file or a directory"
47112 msgstr "Choisir un fichier ou un répertoire"
48113
49 #: src/eiciel_container.cpp:145
114 #: src/eiciel_container.cpp:137
50115 msgid "Could not open the file \""
51116 msgstr "Impossible d'ouvrir le fichier \""
52117
53 #: src/acl_manager.cpp:50 src/xattr_manager.cpp:33
118 #: src/eiciel_standalone.cpp:46
119 msgid "Print version information"
120 msgstr "Imprimer les informations sur la version"
121
122 #: src/eiciel_standalone.cpp:48
123 msgid "Access control list editor"
124 msgstr "Éditeur de liste de contrôle d'accès"
125
126 #: src/eiciel_enclosed_editor_window.cpp:24
127 msgid "Edit ACLs for enclosed files"
128 msgstr ""
129
130 #: src/eiciel_enclosed_editor_window.cpp:25
131 msgid "_Cancel"
132 msgstr ""
133
134 #: src/eiciel_enclosed_editor_window.cpp:26
135 msgid "_Apply"
136 msgstr ""
137
138 #: src/eiciel_enclosed_editor_window.cpp:30
139 msgid "<b>Participants in ACL for enclosed directories</b>"
140 msgstr ""
141
142 #: src/eiciel_enclosed_editor_window.cpp:33
143 #, fuzzy
144 msgid "<b>Participants in ACL for enclosed files</b>"
145 msgstr "<b>Participants actuels de l'ACL</b>"
146
147 #: src/eiciel_enclosed_editor_window.cpp:36 src/eiciel_main_window.cpp:32
148 msgid "<b>Available participants</b>"
149 msgstr "<b>Participants disponibles</b>"
150
151 #: src/acl_manager.cpp:46 src/xattr_manager.cpp:32
54152 msgid "Only regular files or directories supported"
55153 msgstr "Seuls les fichiers ou les répertoires standard sont pris en charge"
56154
57 #: src/acl_manager.cpp:542
155 #: src/acl_manager.cpp:463
58156 msgid "Textual representation of the ACL is wrong"
59157 msgstr "La représentation textuelle de l'ACL est erronée"
60158
61 #: src/acl_manager.cpp:564
159 #: src/acl_manager.cpp:484
62160 msgid "Default textual representation of the ACL is wrong"
63161 msgstr "La représentation textuelle par défaut de l'ACL est erronée"
64162
65 #: src/eiciel_xattr_window.cpp:39
66 msgid "Name"
67 msgstr "Nom"
68
69 #: src/eiciel_xattr_window.cpp:55
70 msgid "Value"
71 msgstr "Valeur"
72
73 #: src/eiciel_xattr_window.cpp:176
74 msgid "Could not rename attribute name: "
75 msgstr "Impossible de modifier le nom de l'attribut : "
76
77 #: src/eiciel_xattr_window.cpp:211
78 msgid "Could not change attribute value: "
79 msgstr "Impossible de modifier la valeur de l'attribut : "
80
81 #: src/eiciel_xattr_window.cpp:248
82 msgid "Could not remove attribute: "
83 msgstr "Impossible de supprimer l'attribut : "
84
85 #: src/eiciel_xattr_window.cpp:280 src/eiciel_xattr_window.cpp:289
86 msgid "New attribute"
87 msgstr "Nouvel attribut"
88
89 #: src/eiciel_xattr_window.cpp:318
90 msgid "New value"
91 msgstr "NOUVELLE VALEUR"
92
93 #: src/eiciel_xattr_window.cpp:333
94 msgid "Could not add attribute: "
95 msgstr "Impossible d'ajouter l'attribut : "
96
97 #: src/eiciel_standalone.cpp:48
98 msgid "Print version information"
99 msgstr "Imprimer les informations sur la version"
100
101 #: src/eiciel_standalone.cpp:50
102 msgid "Access control list editor"
103 msgstr "Éditeur de liste de contrôle d'accès"
104
105 #: src/eiciel_main_controller.cpp:172
106 msgid "Mask"
107 msgstr "Masque"
108
109 #: src/eiciel_main_controller.cpp:177
110 msgid "Other"
111 msgstr "Autre"
112
113 #: src/eiciel_main_controller.cpp:250
114 msgid "Default Mask"
115 msgstr "Masque par défaut"
116
117 #: src/eiciel_main_controller.cpp:258
118 msgid "Default Other"
119 msgstr "Autre par défaut"
120
121 #: src/eiciel_main_controller.cpp:328
122 msgid "Could not add ACL entry: "
123 msgstr "Impossible d'ajouter une entrée ACL : "
124
125 #: src/eiciel_main_controller.cpp:390
126 msgid "Could not remove ACL entry: "
127 msgstr "Impossible de supprimer une entrée ACL : "
128
129 #: src/eiciel_main_controller.cpp:487
130 msgid "Could not modify ACL entry: "
131 msgstr "Impossible de modifier une entrée ACL : "
132
133 #: src/eiciel_main_controller.cpp:516
134 msgid "Are you sure you want to remove all ACL default entries?"
135 msgstr "Voulez-vous vraiment supprimer toutes les entrées ACL par défaut ?"
136
137 #: src/eiciel_main_window.cpp:26
163 #: src/eiciel_main_window.cpp:30
138164 msgid "<b>Current participants in ACL</b>"
139165 msgstr "<b>Participants actuels de l'ACL</b>"
140166
141 #: src/eiciel_main_window.cpp:32
167 #: src/eiciel_main_window.cpp:34
168 msgid "Edit ACLs for enclosed files..."
169 msgstr ""
170
171 #: src/eiciel_participant_list.cpp:30
172 msgid "User"
173 msgstr "Utilisateur"
174
175 #: src/eiciel_participant_list.cpp:31
176 msgid "Group"
177 msgstr "Groupe"
178
179 #: src/eiciel_participant_list.cpp:32
180 msgid "Default participant"
181 msgstr "Participant par défaut"
182
183 #: src/eiciel_participant_list.cpp:37
184 msgid "Add participant to ACL"
185 msgstr "Ajouter un participant à l'ACL"
186
187 #: src/eiciel_participant_list.cpp:38
188 #, fuzzy
189 msgid "Add participant to directory ACL"
190 msgstr "Ajouter un participant à l'ACL"
191
192 #: src/eiciel_participant_list.cpp:39
193 #, fuzzy
194 msgid "Add participant to file ACL"
195 msgstr "Ajouter un participant à l'ACL"
196
197 #: src/eiciel_participant_list.cpp:40
198 msgid "Advanced features"
199 msgstr "Fonctionnalités avancées"
200
201 #: src/eiciel_participant_list.cpp:42
202 msgid "Name of participant"
203 msgstr "Nom du participant"
204
205 #: src/eiciel_participant_list.cpp:44
206 msgid "Also show system participants"
207 msgstr "Afficher également les participants du système"
208
209 #: src/eiciel_participant_list.cpp:80
210 msgid "Filter participants"
211 msgstr "Filtrer les participants"
212
213 #: src/eiciel_participant_list.cpp:105
214 msgid "Participant"
215 msgstr "Participant"
216
217 #: src/eiciel_participant_list.cpp:422
218 msgid "Participant not found"
219 msgstr "Participant introuvable"
220
221 #: src/eiciel_acl_list.cpp:33
142222 msgid "There are ineffective permissions"
143223 msgstr "Il existe des autorisations inefficaces"
144224
145 #: src/eiciel_main_window.cpp:33
225 #: src/eiciel_acl_list.cpp:35
146226 msgid "Remove participant from ACL"
147227 msgstr "Supprimer un participant de l'ACL"
148228
149 #: src/eiciel_main_window.cpp:34
229 #: src/eiciel_acl_list.cpp:36
150230 msgid "Edit default participants"
151231 msgstr "Éditer les participants par défaut"
152232
153 #: src/eiciel_main_window.cpp:35
154 msgid "<b>Available participants</b>"
155 msgstr "<b>Participants disponibles</b>"
156
157 #: src/eiciel_main_window.cpp:38
158 msgid "User"
159 msgstr "Utilisateur"
160
161 #: src/eiciel_main_window.cpp:39
162 msgid "Group"
163 msgstr "Groupe"
164
165 #: src/eiciel_main_window.cpp:40
166 msgid "Default participant"
167 msgstr "Participant par défaut"
168
169 #: src/eiciel_main_window.cpp:45
170 msgid "Add participant to ACL"
171 msgstr "Ajouter un participant à l'ACL"
172
173 #: src/eiciel_main_window.cpp:46
174 msgid "Advanced features"
175 msgstr "Fonctionnalités avancées"
176
177 #: src/eiciel_main_window.cpp:48
178 msgid "Name of participant"
179 msgstr "Nom du participant"
180
181 #: src/eiciel_main_window.cpp:50
182 msgid "Also show system participants"
183 msgstr "Afficher également les participants du système"
184
185 #: src/eiciel_main_window.cpp:112
233 #: src/eiciel_acl_list.cpp:79
186234 msgid "Entry"
187235 msgstr "Entrée"
188236
189 #: src/eiciel_main_window.cpp:115
237 #: src/eiciel_acl_list.cpp:82
190238 msgid "Read"
191239 msgstr "Lecture"
192240
193 #: src/eiciel_main_window.cpp:126
241 #: src/eiciel_acl_list.cpp:95
194242 msgid "Write"
195243 msgstr "Écriture"
196244
197 #: src/eiciel_main_window.cpp:136
245 #: src/eiciel_acl_list.cpp:107
198246 msgid "Execute"
199247 msgstr "Exécution"
200248
201 #: src/eiciel_main_window.cpp:152 src/eiciel_main_window.cpp:162
202 #: src/eiciel_main_window.cpp:590
203 msgid "None"
204 msgstr "Aucun"
205
206 #: src/eiciel_main_window.cpp:154
207 msgid "Only files"
208 msgstr "Uniquement les fichiers"
209
210 #: src/eiciel_main_window.cpp:156
211 msgid "Only directories"
212 msgstr "Uniquement les répertoires"
213
214 #: src/eiciel_main_window.cpp:158
215 msgid "Both files and directories"
216 msgstr "Les fichiers et les répertoires"
217
218 #: src/eiciel_main_window.cpp:166
219 msgid "Recursion"
220 msgstr "Récursivité"
221
222 #: src/eiciel_main_window.cpp:201
223 msgid "Filter participants"
224 msgstr "Filtrer les participants"
225
226 #: src/eiciel_main_window.cpp:222
227 msgid "Participant"
228 msgstr "Participant"
229
230 #: src/eiciel_main_window.cpp:912
231 msgid "Participant not found"
232 msgstr "Participant introuvable"
249 #~ msgid "None"
250 #~ msgstr "Aucun"
251
252 #~ msgid "Only files"
253 #~ msgstr "Uniquement les fichiers"
254
255 #~ msgid "Only directories"
256 #~ msgstr "Uniquement les répertoires"
257
258 #~ msgid "Both files and directories"
259 #~ msgstr "Les fichiers et les répertoires"
260
261 #~ msgid "Recursion"
262 #~ msgstr "Récursivité"
233263
234264 #~ msgid "Default"
235265 #~ msgstr "Par défaut"
Binary diff not shown
0 # SOME DESCRIPTIVE TITLE.
1 # Copyright (C) YEAR Free Software Foundation, Inc.
2 # This file is distributed under the same license as the PACKAGE package.
3 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
4 #
5 msgid ""
6 msgstr ""
7 "Project-Id-Version: eiciel 0.9.11\n"
8 "Report-Msgid-Bugs-To: rofirrim@gmail.com\n"
9 "POT-Creation-Date: 2020-08-24 15:11+0200\n"
10 "PO-Revision-Date: 2018-04-07 17:02+0000\n"
11 "Last-Translator: Anshul Panwar <caspian7pena@gmail.com>\n"
12 "Language-Team: Hindi <https://l10n.opensuse.org/projects/eiciel/master/hi/>\n"
13 "Language: hi\n"
14 "MIME-Version: 1.0\n"
15 "Content-Type: text/plain; charset=UTF-8\n"
16 "Content-Transfer-Encoding: 8bit\n"
17 "Plural-Forms: nplurals=2; plural=n != 1;\n"
18 "X-Generator: Weblate 2.18\n"
19
20 #: src/eiciel_xattr_window.cpp:40
21 msgid "Name"
22 msgstr "नाम"
23
24 #: src/eiciel_xattr_window.cpp:55
25 msgid "Value"
26 msgstr "मान"
27
28 #: src/eiciel_xattr_window.cpp:163
29 msgid "Could not rename attribute name: "
30 msgstr ""
31
32 #: src/eiciel_xattr_window.cpp:190
33 msgid "Could not change attribute value: "
34 msgstr ""
35
36 #: src/eiciel_xattr_window.cpp:217
37 msgid "Could not remove attribute: "
38 msgstr ""
39
40 #: src/eiciel_xattr_window.cpp:242 src/eiciel_xattr_window.cpp:249
41 msgid "New attribute"
42 msgstr ""
43
44 #: src/eiciel_xattr_window.cpp:275
45 msgid "New value"
46 msgstr ""
47
48 #: src/eiciel_xattr_window.cpp:287
49 msgid "Could not add attribute: "
50 msgstr ""
51
52 #: src/eiciel_main_window_controller.cpp:118 src/eiciel_acl_list.cpp:366
53 msgid "Mask"
54 msgstr ""
55
56 #: src/eiciel_main_window_controller.cpp:125
57 msgid "Other"
58 msgstr "अन्य"
59
60 #: src/eiciel_main_window_controller.cpp:182 src/eiciel_acl_list.cpp:399
61 msgid "Default Mask"
62 msgstr ""
63
64 #: src/eiciel_main_window_controller.cpp:190 src/eiciel_acl_list.cpp:393
65 msgid "Default Other"
66 msgstr ""
67
68 #: src/eiciel_main_window_controller.cpp:267
69 msgid "Could not add ACL entry: "
70 msgstr ""
71
72 #: src/eiciel_main_window_controller.cpp:314
73 msgid "Could not remove ACL entry: "
74 msgstr ""
75
76 #: src/eiciel_main_window_controller.cpp:393
77 msgid "Could not modify ACL entry: "
78 msgstr ""
79
80 #: src/eiciel_main_window_controller.cpp:548
81 #: src/eiciel_enclosed_editor_window_controller.cpp:33
82 msgid "Are you sure you want to remove all ACL default entries?"
83 msgstr ""
84
85 #: src/eiciel_container.cpp:26
86 msgid "<b>File name</b>"
87 msgstr "<b><b>फ़ाइल का नाम</b></b>"
88
89 #: src/eiciel_container.cpp:27 src/eiciel_container.cpp:168
90 msgid "No file opened"
91 msgstr "कोई फ़ाइल खुली नहीं है"
92
93 #: src/eiciel_container.cpp:30 src/eiciel_container.cpp:177
94 #: src/eiciel_container.cpp:180
95 msgid "About..."
96 msgstr "बारे में..."
97
98 #: src/eiciel_container.cpp:47 src/eiciel_nautilus_page.cpp:129
99 msgid "Access Control List"
100 msgstr "अभिगम नियंत्रण सूची"
101
102 #: src/eiciel_container.cpp:56 src/eiciel_nautilus_page.cpp:145
103 msgid "Extended user attributes"
104 msgstr ""
105
106 #: src/eiciel_container.cpp:97
107 #, c-format
108 msgid "Could not show the help file: %s"
109 msgstr ""
110
111 #: src/eiciel_container.cpp:120
112 msgid "Choose a file or a directory"
113 msgstr ""
114
115 #: src/eiciel_container.cpp:137
116 msgid "Could not open the file \""
117 msgstr ""
118
119 #: src/eiciel_standalone.cpp:46
120 msgid "Print version information"
121 msgstr ""
122
123 #: src/eiciel_standalone.cpp:48
124 msgid "Access control list editor"
125 msgstr ""
126
127 #: src/eiciel_enclosed_editor_window.cpp:24
128 msgid "Edit ACLs for enclosed files"
129 msgstr ""
130
131 #: src/eiciel_enclosed_editor_window.cpp:25
132 msgid "_Cancel"
133 msgstr ""
134
135 #: src/eiciel_enclosed_editor_window.cpp:26
136 msgid "_Apply"
137 msgstr ""
138
139 #: src/eiciel_enclosed_editor_window.cpp:30
140 msgid "<b>Participants in ACL for enclosed directories</b>"
141 msgstr ""
142
143 #: src/eiciel_enclosed_editor_window.cpp:33
144 msgid "<b>Participants in ACL for enclosed files</b>"
145 msgstr ""
146
147 #: src/eiciel_enclosed_editor_window.cpp:36 src/eiciel_main_window.cpp:32
148 msgid "<b>Available participants</b>"
149 msgstr ""
150
151 #: src/acl_manager.cpp:46 src/xattr_manager.cpp:32
152 msgid "Only regular files or directories supported"
153 msgstr ""
154
155 #: src/acl_manager.cpp:463
156 msgid "Textual representation of the ACL is wrong"
157 msgstr ""
158
159 #: src/acl_manager.cpp:484
160 msgid "Default textual representation of the ACL is wrong"
161 msgstr ""
162
163 #: src/eiciel_main_window.cpp:30
164 msgid "<b>Current participants in ACL</b>"
165 msgstr ""
166
167 #: src/eiciel_main_window.cpp:34
168 msgid "Edit ACLs for enclosed files..."
169 msgstr ""
170
171 #: src/eiciel_participant_list.cpp:30
172 msgid "User"
173 msgstr ""
174
175 #: src/eiciel_participant_list.cpp:31
176 msgid "Group"
177 msgstr ""
178
179 #: src/eiciel_participant_list.cpp:32
180 msgid "Default participant"
181 msgstr ""
182
183 #: src/eiciel_participant_list.cpp:37
184 msgid "Add participant to ACL"
185 msgstr ""
186
187 #: src/eiciel_participant_list.cpp:38
188 msgid "Add participant to directory ACL"
189 msgstr ""
190
191 #: src/eiciel_participant_list.cpp:39
192 msgid "Add participant to file ACL"
193 msgstr ""
194
195 #: src/eiciel_participant_list.cpp:40
196 msgid "Advanced features"
197 msgstr ""
198
199 #: src/eiciel_participant_list.cpp:42
200 msgid "Name of participant"
201 msgstr ""
202
203 #: src/eiciel_participant_list.cpp:44
204 msgid "Also show system participants"
205 msgstr ""
206
207 #: src/eiciel_participant_list.cpp:80
208 msgid "Filter participants"
209 msgstr ""
210
211 #: src/eiciel_participant_list.cpp:105
212 msgid "Participant"
213 msgstr ""
214
215 #: src/eiciel_participant_list.cpp:422
216 msgid "Participant not found"
217 msgstr ""
218
219 #: src/eiciel_acl_list.cpp:33
220 msgid "There are ineffective permissions"
221 msgstr ""
222
223 #: src/eiciel_acl_list.cpp:35
224 msgid "Remove participant from ACL"
225 msgstr ""
226
227 #: src/eiciel_acl_list.cpp:36
228 msgid "Edit default participants"
229 msgstr ""
230
231 #: src/eiciel_acl_list.cpp:79
232 msgid "Entry"
233 msgstr ""
234
235 #: src/eiciel_acl_list.cpp:82
236 msgid "Read"
237 msgstr ""
238
239 #: src/eiciel_acl_list.cpp:95
240 msgid "Write"
241 msgstr ""
242
243 #: src/eiciel_acl_list.cpp:107
244 msgid "Execute"
245 msgstr ""
Binary diff not shown
+201
-174
po/hu.po less more
44 msgstr ""
55 "Project-Id-Version: eiciel\n"
66 "Report-Msgid-Bugs-To: rofirrim@gmail.com\n"
7 "POT-Creation-Date: 2018-01-16 19:46+0000\n"
8 "PO-Revision-Date: 2015-09-08 10:18\n"
9 "Last-Translator: Novell language <language@novell.com>\n"
10 "Language-Team: Novell language <language@novell.com>\n"
7 "POT-Creation-Date: 2020-08-24 15:11+0200\n"
8 "PO-Revision-Date: 2018-01-29 17:03+0000\n"
9 "Last-Translator: Robert Taisz <robert.taisz@emerald.hu>\n"
10 "Language-Team: Hungarian <https://l10n.opensuse.org/projects/eiciel/master/"
11 "hu/>\n"
1112 "Language: hu\n"
1213 "MIME-Version: 1.0\n"
1314 "Content-Type: text/plain; charset=UTF-8\n"
1415 "Content-Transfer-Encoding: 8bit\n"
16 "Plural-Forms: nplurals=2; plural=n != 1;\n"
17 "X-Generator: Weblate 2.18\n"
18
19 #: src/eiciel_xattr_window.cpp:40
20 msgid "Name"
21 msgstr "Név"
22
23 #: src/eiciel_xattr_window.cpp:55
24 msgid "Value"
25 msgstr "Érték"
26
27 #: src/eiciel_xattr_window.cpp:163
28 msgid "Could not rename attribute name: "
29 msgstr "A következő nevű attribútum nem nevezhető át: "
30
31 #: src/eiciel_xattr_window.cpp:190
32 msgid "Could not change attribute value: "
33 msgstr "Az attribútumérték nem módosítható: "
34
35 #: src/eiciel_xattr_window.cpp:217
36 msgid "Could not remove attribute: "
37 msgstr "Az attribútum nem távolítható el: "
38
39 #: src/eiciel_xattr_window.cpp:242 src/eiciel_xattr_window.cpp:249
40 msgid "New attribute"
41 msgstr "Új attribútum"
42
43 #: src/eiciel_xattr_window.cpp:275
44 msgid "New value"
45 msgstr "Új érték"
46
47 #: src/eiciel_xattr_window.cpp:287
48 msgid "Could not add attribute: "
49 msgstr "Az attribútum nem vehető fel: "
50
51 #: src/eiciel_main_window_controller.cpp:118 src/eiciel_acl_list.cpp:366
52 msgid "Mask"
53 msgstr "Maszk"
54
55 #: src/eiciel_main_window_controller.cpp:125
56 msgid "Other"
57 msgstr "Egyéb"
58
59 #: src/eiciel_main_window_controller.cpp:182 src/eiciel_acl_list.cpp:399
60 msgid "Default Mask"
61 msgstr "Alapértelmezett maszk"
62
63 #: src/eiciel_main_window_controller.cpp:190 src/eiciel_acl_list.cpp:393
64 msgid "Default Other"
65 msgstr "Alapértelmezett egyéb"
66
67 #: src/eiciel_main_window_controller.cpp:267
68 msgid "Could not add ACL entry: "
69 msgstr "Nem vehető fel ACL bejegyzés: "
70
71 #: src/eiciel_main_window_controller.cpp:314
72 msgid "Could not remove ACL entry: "
73 msgstr "Az ACL bejegyzés eltávolítása meghiúsult: "
74
75 #: src/eiciel_main_window_controller.cpp:393
76 msgid "Could not modify ACL entry: "
77 msgstr "Az ACL bejegyzés módosítása meghiúsult: "
78
79 #: src/eiciel_main_window_controller.cpp:548
80 #: src/eiciel_enclosed_editor_window_controller.cpp:33
81 msgid "Are you sure you want to remove all ACL default entries?"
82 msgstr ""
83 "Biztosan el kívánja távolítani az összes alapértelmezett ACL bejegyzést?"
1584
1685 #: src/eiciel_container.cpp:26
1786 msgid "<b>File name</b>"
1887 msgstr "<b>Fájlnév</b>"
1988
20 #: src/eiciel_container.cpp:27 src/eiciel_container.cpp:183
89 #: src/eiciel_container.cpp:27 src/eiciel_container.cpp:168
2190 msgid "No file opened"
2291 msgstr "Nincs megnyitva fájl"
2392
24 #: src/eiciel_container.cpp:30 src/eiciel_container.cpp:192
25 #: src/eiciel_container.cpp:194
93 #: src/eiciel_container.cpp:30 src/eiciel_container.cpp:177
94 #: src/eiciel_container.cpp:180
2695 msgid "About..."
2796 msgstr "Névjegy…"
2897
29 #: src/eiciel_container.cpp:48 src/eiciel_nautilus_page.cpp:136
98 #: src/eiciel_container.cpp:47 src/eiciel_nautilus_page.cpp:129
3099 msgid "Access Control List"
31100 msgstr "Hozzáférés-felügyeleti lista"
32101
33 #: src/eiciel_container.cpp:56 src/eiciel_nautilus_page.cpp:156
102 #: src/eiciel_container.cpp:56 src/eiciel_nautilus_page.cpp:145
34103 msgid "Extended user attributes"
35104 msgstr "Kiterjesztett felhasználói attribútumok"
36105
37 #: src/eiciel_container.cpp:100
106 #: src/eiciel_container.cpp:97
38107 #, c-format
39108 msgid "Could not show the help file: %s"
40 msgstr "A(z) %s súgófájl nem jeleníthető meg."
41
42 #: src/eiciel_container.cpp:123
109 msgstr "Az súgófájl nem jeleníthető meg: %s"
110
111 #: src/eiciel_container.cpp:120
43112 msgid "Choose a file or a directory"
44113 msgstr "Válasszon fájlt vagy könyvtárat"
45114
46 #: src/eiciel_container.cpp:145
115 #: src/eiciel_container.cpp:137
47116 msgid "Could not open the file \""
48117 msgstr "A fájl megnyitása nem sikerült: \""
49118
50 #: src/acl_manager.cpp:50 src/xattr_manager.cpp:33
119 #: src/eiciel_standalone.cpp:46
120 msgid "Print version information"
121 msgstr "Verzióadatok nyomtatása"
122
123 #: src/eiciel_standalone.cpp:48
124 msgid "Access control list editor"
125 msgstr "Hozzáférési szabálygyűjtemény szerkesztőprogramja"
126
127 #: src/eiciel_enclosed_editor_window.cpp:24
128 msgid "Edit ACLs for enclosed files"
129 msgstr ""
130
131 #: src/eiciel_enclosed_editor_window.cpp:25
132 msgid "_Cancel"
133 msgstr ""
134
135 #: src/eiciel_enclosed_editor_window.cpp:26
136 msgid "_Apply"
137 msgstr ""
138
139 #: src/eiciel_enclosed_editor_window.cpp:30
140 msgid "<b>Participants in ACL for enclosed directories</b>"
141 msgstr ""
142
143 #: src/eiciel_enclosed_editor_window.cpp:33
144 #, fuzzy
145 msgid "<b>Participants in ACL for enclosed files</b>"
146 msgstr "<b>ACL-listában jelenleg szereplő résztvevők</b>"
147
148 #: src/eiciel_enclosed_editor_window.cpp:36 src/eiciel_main_window.cpp:32
149 msgid "<b>Available participants</b>"
150 msgstr "<b>Elérhető résztvevők</b>"
151
152 #: src/acl_manager.cpp:46 src/xattr_manager.cpp:32
51153 msgid "Only regular files or directories supported"
52154 msgstr "Csak szabályos fájlok vagy könyvtárak támogatottak"
53155
54 #: src/acl_manager.cpp:542
156 #: src/acl_manager.cpp:463
55157 msgid "Textual representation of the ACL is wrong"
56158 msgstr "Az ACL szöveges ábrázolása hibás"
57159
58 #: src/acl_manager.cpp:564
160 #: src/acl_manager.cpp:484
59161 msgid "Default textual representation of the ACL is wrong"
60162 msgstr "Az ACL alapértelmezett szöveges ábrázolása hibás"
61163
62 #: src/eiciel_xattr_window.cpp:39
63 msgid "Name"
64 msgstr "Név"
65
66 #: src/eiciel_xattr_window.cpp:55
67 msgid "Value"
68 msgstr "Érték"
69
70 #: src/eiciel_xattr_window.cpp:176
71 msgid "Could not rename attribute name: "
72 msgstr "A következő nevű attribútum nem nevezhető át: "
73
74 #: src/eiciel_xattr_window.cpp:211
75 msgid "Could not change attribute value: "
76 msgstr "Az attribútumérték nem módosítható: "
77
78 #: src/eiciel_xattr_window.cpp:248
79 msgid "Could not remove attribute: "
80 msgstr "Az attribútum nem távolítható el: "
81
82 #: src/eiciel_xattr_window.cpp:280 src/eiciel_xattr_window.cpp:289
83 msgid "New attribute"
84 msgstr "Új attribútum"
85
86 #: src/eiciel_xattr_window.cpp:318
87 msgid "New value"
88 msgstr "Új érték"
89
90 #: src/eiciel_xattr_window.cpp:333
91 msgid "Could not add attribute: "
92 msgstr "Az attribútum nem vehető fel: "
93
94 #: src/eiciel_standalone.cpp:48
95 msgid "Print version information"
96 msgstr "Verzióadatok nyomtatása"
97
98 #: src/eiciel_standalone.cpp:50
99 msgid "Access control list editor"
100 msgstr "Hozzáférési szabálygyűjtemény szerkesztőprogramja"
101
102 #: src/eiciel_main_controller.cpp:172
103 msgid "Mask"
104 msgstr "Maszk"
105
106 #: src/eiciel_main_controller.cpp:177
107 msgid "Other"
108 msgstr "Egyéb"
109
110 #: src/eiciel_main_controller.cpp:250
111 msgid "Default Mask"
112 msgstr "Alapértelmezett maszk"
113
114 #: src/eiciel_main_controller.cpp:258
115 msgid "Default Other"
116 msgstr "Alapértelmezett egyéb"
117
118 #: src/eiciel_main_controller.cpp:328
119 msgid "Could not add ACL entry: "
120 msgstr "Nem vehető fel ACL bejegyzés: "
121
122 #: src/eiciel_main_controller.cpp:390
123 msgid "Could not remove ACL entry: "
124 msgstr "Az ACL bejegyzés eltávolítása meghiúsult: "
125
126 #: src/eiciel_main_controller.cpp:487
127 msgid "Could not modify ACL entry: "
128 msgstr "Az ACL bejegyzés módosítása meghiúsult: "
129
130 #: src/eiciel_main_controller.cpp:516
131 msgid "Are you sure you want to remove all ACL default entries?"
132 msgstr ""
133 "Biztosan el kívánja távolítani az összes alapértelmezett ACL bejegyzést?"
134
135 #: src/eiciel_main_window.cpp:26
164 #: src/eiciel_main_window.cpp:30
136165 msgid "<b>Current participants in ACL</b>"
137 msgstr ""
138
139 #: src/eiciel_main_window.cpp:32
166 msgstr "<b>ACL-listában jelenleg szereplő résztvevők</b>"
167
168 #: src/eiciel_main_window.cpp:34
169 msgid "Edit ACLs for enclosed files..."
170 msgstr ""
171
172 #: src/eiciel_participant_list.cpp:30
173 msgid "User"
174 msgstr "Felhasználó"
175
176 #: src/eiciel_participant_list.cpp:31
177 msgid "Group"
178 msgstr "Csoport"
179
180 #: src/eiciel_participant_list.cpp:32
181 msgid "Default participant"
182 msgstr "Alapértelmezett résztvevő"
183
184 #: src/eiciel_participant_list.cpp:37
185 msgid "Add participant to ACL"
186 msgstr "Résztvevő hozzáadása az ACL-listához"
187
188 #: src/eiciel_participant_list.cpp:38
189 #, fuzzy
190 msgid "Add participant to directory ACL"
191 msgstr "Résztvevő hozzáadása az ACL-listához"
192
193 #: src/eiciel_participant_list.cpp:39
194 #, fuzzy
195 msgid "Add participant to file ACL"
196 msgstr "Résztvevő hozzáadása az ACL-listához"
197
198 #: src/eiciel_participant_list.cpp:40
199 msgid "Advanced features"
200 msgstr "Speciális funkciók"
201
202 #: src/eiciel_participant_list.cpp:42
203 msgid "Name of participant"
204 msgstr "Résztvevő neve"
205
206 #: src/eiciel_participant_list.cpp:44
207 msgid "Also show system participants"
208 msgstr "Rendszerrésztvevők megjelenítése is"
209
210 #: src/eiciel_participant_list.cpp:80
211 msgid "Filter participants"
212 msgstr "Résztvevők szűrése"
213
214 #: src/eiciel_participant_list.cpp:105
215 msgid "Participant"
216 msgstr "Résztvevő"
217
218 #: src/eiciel_participant_list.cpp:422
219 msgid "Participant not found"
220 msgstr "Nem található résztvevő"
221
222 #: src/eiciel_acl_list.cpp:33
140223 msgid "There are ineffective permissions"
141224 msgstr "Nem hatályos engedélyek vannak"
142225
143 #: src/eiciel_main_window.cpp:33
144 #, fuzzy
226 #: src/eiciel_acl_list.cpp:35
145227 msgid "Remove participant from ACL"
146 msgstr "Résztvevő neve"
147
148 #: src/eiciel_main_window.cpp:34
149 #, fuzzy
228 msgstr "Résztvevő eltávolítása az ACL-listáról"
229
230 #: src/eiciel_acl_list.cpp:36
150231 msgid "Edit default participants"
151 msgstr "Résztvevő neve"
152
153 #: src/eiciel_main_window.cpp:35
154 msgid "<b>Available participants</b>"
155 msgstr ""
156
157 #: src/eiciel_main_window.cpp:38
158 msgid "User"
159 msgstr "Felhasználó"
160
161 #: src/eiciel_main_window.cpp:39
162 msgid "Group"
163 msgstr "Csoport"
164
165 #: src/eiciel_main_window.cpp:40
166 #, fuzzy
167 msgid "Default participant"
168 msgstr "Résztvevő neve"
169
170 #: src/eiciel_main_window.cpp:45
171 #, fuzzy
172 msgid "Add participant to ACL"
173 msgstr "Résztvevők listája"
174
175 #: src/eiciel_main_window.cpp:46
176 msgid "Advanced features"
177 msgstr "Speciális funkciók"
178
179 #: src/eiciel_main_window.cpp:48
180 msgid "Name of participant"
181 msgstr "Résztvevő neve"
182
183 #: src/eiciel_main_window.cpp:50
184 msgid "Also show system participants"
185 msgstr "Rendszerrésztvevők megjelenítése is"
186
187 #: src/eiciel_main_window.cpp:112
232 msgstr "Alapértelmezett résztvevők szerkesztése"
233
234 #: src/eiciel_acl_list.cpp:79
188235 msgid "Entry"
189236 msgstr "Bejegyzés"
190237
191 #: src/eiciel_main_window.cpp:115
238 #: src/eiciel_acl_list.cpp:82
192239 msgid "Read"
193240 msgstr "Olvasás"
194241
195 #: src/eiciel_main_window.cpp:126
242 #: src/eiciel_acl_list.cpp:95
196243 msgid "Write"
197244 msgstr "Írás"
198245
199 #: src/eiciel_main_window.cpp:136
200 #, fuzzy
246 #: src/eiciel_acl_list.cpp:107
201247 msgid "Execute"
202248 msgstr "Végrehajtás"
203249
204 #: src/eiciel_main_window.cpp:152 src/eiciel_main_window.cpp:162
205 #: src/eiciel_main_window.cpp:590
206 msgid "None"
207 msgstr "Nincs"
208
209 #: src/eiciel_main_window.cpp:154
210 msgid "Only files"
211 msgstr "Csak fájlok"
212
213 #: src/eiciel_main_window.cpp:156
214 msgid "Only directories"
215 msgstr "Csak könyvtárak"
216
217 #: src/eiciel_main_window.cpp:158
218 msgid "Both files and directories"
219 msgstr "Fájlok és könyvtárak is"
220
221 #: src/eiciel_main_window.cpp:166
222 msgid "Recursion"
223 msgstr "Rekurzió"
224
225 #: src/eiciel_main_window.cpp:201
226 #, fuzzy
227 msgid "Filter participants"
228 msgstr "Résztvevő neve"
229
230 #: src/eiciel_main_window.cpp:222
231 msgid "Participant"
232 msgstr "Résztvevő"
233
234 #: src/eiciel_main_window.cpp:912
235 msgid "Participant not found"
236 msgstr "Nem található résztvevő"
250 #~ msgid "None"
251 #~ msgstr "Nincs"
252
253 #~ msgid "Only files"
254 #~ msgstr "Csak fájlok"
255
256 #~ msgid "Only directories"
257 #~ msgstr "Csak könyvtárak"
258
259 #~ msgid "Both files and directories"
260 #~ msgstr "Fájlok és könyvtárak is"
261
262 #~ msgid "Recursion"
263 #~ msgstr "Rekurzió"
237264
238265 #~ msgid "Default"
239266 #~ msgstr "Alapértelmezett"
Binary diff not shown
0 # SOME DESCRIPTIVE TITLE.
1 # Copyright (C) YEAR Free Software Foundation, Inc.
2 # This file is distributed under the same license as the PACKAGE package.
3 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
4 msgid ""
5 msgstr ""
6 "Project-Id-Version: eiciel 0.9.11\n"
7 "Report-Msgid-Bugs-To: rofirrim@gmail.com\n"
8 "POT-Creation-Date: 2020-08-24 15:11+0200\n"
9 "PO-Revision-Date: 2020-05-02 19:51+0000\n"
10 "Last-Translator: Kukuh Syafaat <syafaatkukuh@gmail.com>\n"
11 "Language-Team: Indonesian <https://l10n.opensuse.org/projects/eiciel/master/"
12 "id/>\n"
13 "Language: id\n"
14 "MIME-Version: 1.0\n"
15 "Content-Type: text/plain; charset=UTF-8\n"
16 "Content-Transfer-Encoding: 8bit\n"
17 "Plural-Forms: nplurals=1; plural=0;\n"
18 "X-Generator: Weblate 3.6.1\n"
19
20 #: src/eiciel_xattr_window.cpp:40
21 msgid "Name"
22 msgstr "Nama"
23
24 #: src/eiciel_xattr_window.cpp:55
25 msgid "Value"
26 msgstr "Nilai"
27
28 #: src/eiciel_xattr_window.cpp:163
29 msgid "Could not rename attribute name: "
30 msgstr "Tidak dapat mengubah nama atribut: "
31
32 #: src/eiciel_xattr_window.cpp:190
33 msgid "Could not change attribute value: "
34 msgstr "Tidak dapat mengubah nilai atribut: "
35
36 #: src/eiciel_xattr_window.cpp:217
37 msgid "Could not remove attribute: "
38 msgstr "Tidak dapat menghapus atribut: "
39
40 #: src/eiciel_xattr_window.cpp:242 src/eiciel_xattr_window.cpp:249
41 msgid "New attribute"
42 msgstr "Atribut baru"
43
44 #: src/eiciel_xattr_window.cpp:275
45 msgid "New value"
46 msgstr "Nilai baru"
47
48 #: src/eiciel_xattr_window.cpp:287
49 msgid "Could not add attribute: "
50 msgstr "Tidak dapat menambahkan atribut: "
51
52 #: src/eiciel_main_window_controller.cpp:118 src/eiciel_acl_list.cpp:366
53 msgid "Mask"
54 msgstr "Masker"
55
56 #: src/eiciel_main_window_controller.cpp:125
57 msgid "Other"
58 msgstr "Lainnya"
59
60 #: src/eiciel_main_window_controller.cpp:182 src/eiciel_acl_list.cpp:399
61 msgid "Default Mask"
62 msgstr "Masker bawaan"
63
64 #: src/eiciel_main_window_controller.cpp:190 src/eiciel_acl_list.cpp:393
65 msgid "Default Other"
66 msgstr "Bawaan Lainnya"
67
68 #: src/eiciel_main_window_controller.cpp:267
69 msgid "Could not add ACL entry: "
70 msgstr "Tidak dapat menambahkan ACL entri: "
71
72 #: src/eiciel_main_window_controller.cpp:314
73 msgid "Could not remove ACL entry: "
74 msgstr "Tidak dapat menghapus ACL entri: "
75
76 #: src/eiciel_main_window_controller.cpp:393
77 msgid "Could not modify ACL entry: "
78 msgstr "Tidak dapat mengubah ACL entri: "
79
80 #: src/eiciel_main_window_controller.cpp:548
81 #: src/eiciel_enclosed_editor_window_controller.cpp:33
82 msgid "Are you sure you want to remove all ACL default entries?"
83 msgstr "Apakah Anda yakin ingin menghapus semua entri dafault ACL?"
84
85 #: src/eiciel_container.cpp:26
86 msgid "<b>File name</b>"
87 msgstr "<b>Nama berkas</b>"
88
89 #: src/eiciel_container.cpp:27 src/eiciel_container.cpp:168
90 msgid "No file opened"
91 msgstr "Tidak ada berkas yang terbuka"
92
93 #: src/eiciel_container.cpp:30 src/eiciel_container.cpp:177
94 #: src/eiciel_container.cpp:180
95 msgid "About..."
96 msgstr "Tentang..."
97
98 #: src/eiciel_container.cpp:47 src/eiciel_nautilus_page.cpp:129
99 msgid "Access Control List"
100 msgstr "Daftar Kontrol Akses"
101
102 #: src/eiciel_container.cpp:56 src/eiciel_nautilus_page.cpp:145
103 msgid "Extended user attributes"
104 msgstr "Atribut pengguna yang diperluas"
105
106 #: src/eiciel_container.cpp:97
107 #, c-format
108 msgid "Could not show the help file: %s"
109 msgstr "Tidak dapat menampilkan berkas bantuan: %s"
110
111 #: src/eiciel_container.cpp:120
112 msgid "Choose a file or a directory"
113 msgstr "Pilih sebuah berkas atau direktori"
114
115 #: src/eiciel_container.cpp:137
116 msgid "Could not open the file \""
117 msgstr "Tidak dapat membuka berkas \""
118
119 #: src/eiciel_standalone.cpp:46
120 msgid "Print version information"
121 msgstr "Cetak informasi versi"
122
123 #: src/eiciel_standalone.cpp:48
124 msgid "Access control list editor"
125 msgstr "Penyunting daftar kontrol akses"
126
127 #: src/eiciel_enclosed_editor_window.cpp:24
128 msgid "Edit ACLs for enclosed files"
129 msgstr "Sunting ACL untuk berkas terlampir"
130
131 #: src/eiciel_enclosed_editor_window.cpp:25
132 msgid "_Cancel"
133 msgstr "_Batal"
134
135 #: src/eiciel_enclosed_editor_window.cpp:26
136 msgid "_Apply"
137 msgstr "Ter_apkan"
138
139 #: src/eiciel_enclosed_editor_window.cpp:30
140 msgid "<b>Participants in ACL for enclosed directories</b>"
141 msgstr "<b>Pasrtisipan ACL untuk direktori terlampir</b>"
142
143 #: src/eiciel_enclosed_editor_window.cpp:33
144 msgid "<b>Participants in ACL for enclosed files</b>"
145 msgstr "<b>Partisipan ACL untuk berkas terlampir</b>"
146
147 #: src/eiciel_enclosed_editor_window.cpp:36 src/eiciel_main_window.cpp:32
148 msgid "<b>Available participants</b>"
149 msgstr "<b>Partisipan yang tersedia</b>"
150
151 #: src/acl_manager.cpp:46 src/xattr_manager.cpp:32
152 msgid "Only regular files or directories supported"
153 msgstr "Hanya mendukung berkas reguler atau direktori"
154
155 #: src/acl_manager.cpp:463
156 msgid "Textual representation of the ACL is wrong"
157 msgstr "Representasi tekstual ACL salah"
158
159 #: src/acl_manager.cpp:484
160 msgid "Default textual representation of the ACL is wrong"
161 msgstr "Representasi tekstual bawaan ACL salah"
162
163 #: src/eiciel_main_window.cpp:30
164 msgid "<b>Current participants in ACL</b>"
165 msgstr "<b>Partisipan saat ini di ACL</b>"
166
167 #: src/eiciel_main_window.cpp:34
168 msgid "Edit ACLs for enclosed files..."
169 msgstr "Sunting ACL untuk berkas terlampir..."
170
171 #: src/eiciel_participant_list.cpp:30
172 msgid "User"
173 msgstr "Pengguna"
174
175 #: src/eiciel_participant_list.cpp:31
176 msgid "Group"
177 msgstr "Grup"
178
179 #: src/eiciel_participant_list.cpp:32
180 msgid "Default participant"
181 msgstr "Partisipan bawaan"
182
183 #: src/eiciel_participant_list.cpp:37
184 msgid "Add participant to ACL"
185 msgstr "Tambah partisipan di ACL"
186
187 #: src/eiciel_participant_list.cpp:38
188 msgid "Add participant to directory ACL"
189 msgstr "Tambahkan partisipan ke direktori ACL"
190
191 #: src/eiciel_participant_list.cpp:39
192 msgid "Add participant to file ACL"
193 msgstr "Tambahkan partisipan ke berkas ACL"
194
195 #: src/eiciel_participant_list.cpp:40
196 msgid "Advanced features"
197 msgstr "Fitur lanjutan"
198
199 #: src/eiciel_participant_list.cpp:42
200 msgid "Name of participant"
201 msgstr "Nama partisipan"
202
203 #: src/eiciel_participant_list.cpp:44
204 msgid "Also show system participants"
205 msgstr "Tampilkan partisipan sistem juga"
206
207 #: src/eiciel_participant_list.cpp:80
208 msgid "Filter participants"
209 msgstr "Filter partisipan"
210
211 #: src/eiciel_participant_list.cpp:105
212 msgid "Participant"
213 msgstr "Partisipan"
214
215 #: src/eiciel_participant_list.cpp:422
216 msgid "Participant not found"
217 msgstr "Partisipan tidak ditemukan"
218
219 #: src/eiciel_acl_list.cpp:33
220 msgid "There are ineffective permissions"
221 msgstr "Ada perizinan yang tidak efektif"
222
223 #: src/eiciel_acl_list.cpp:35
224 msgid "Remove participant from ACL"
225 msgstr "Hapus partisipan dari ACL"
226
227 #: src/eiciel_acl_list.cpp:36
228 msgid "Edit default participants"
229 msgstr "Sunting partisipan bawaan"
230
231 #: src/eiciel_acl_list.cpp:79
232 msgid "Entry"
233 msgstr "Entri"
234
235 #: src/eiciel_acl_list.cpp:82
236 msgid "Read"
237 msgstr "Baca"
238
239 #: src/eiciel_acl_list.cpp:95
240 msgid "Write"
241 msgstr "Tulis"
242
243 #: src/eiciel_acl_list.cpp:107
244 msgid "Execute"
245 msgstr "Eksekusi"
246
247 #~ msgid "None"
248 #~ msgstr "Tidak ada"
249
250 #~ msgid "Only files"
251 #~ msgstr "Hanya berkas"
252
253 #~ msgid "Only directories"
254 #~ msgstr "Hanya direktori"
255
256 #~ msgid "Both files and directories"
257 #~ msgstr "Kedua berkas dan direktori"
258
259 #~ msgid "Recursion"
260 #~ msgstr "Rekursi"
Binary diff not shown
+188
-158
po/it.po less more
44 msgstr ""
55 "Project-Id-Version: eiciel\n"
66 "Report-Msgid-Bugs-To: rofirrim@gmail.com\n"
7 "POT-Creation-Date: 2018-01-16 19:46+0000\n"
8 "PO-Revision-Date: 2016-11-25 10:19+0000\n"
7 "POT-Creation-Date: 2020-08-24 15:11+0200\n"
8 "PO-Revision-Date: 2019-09-18 16:52+0000\n"
99 "Last-Translator: Alessio Adamo <alessio.adamo@gmail.com>\n"
1010 "Language-Team: Italian <https://l10n.opensuse.org/projects/eiciel/master/it/"
1111 ">\n"
1414 "Content-Type: text/plain; charset=UTF-8\n"
1515 "Content-Transfer-Encoding: 8bit\n"
1616 "Plural-Forms: nplurals=2; plural=n != 1;\n"
17 "X-Generator: Weblate 2.6\n"
17 "X-Generator: Weblate 3.6.1\n"
18
19 #: src/eiciel_xattr_window.cpp:40
20 msgid "Name"
21 msgstr "Nome"
22
23 #: src/eiciel_xattr_window.cpp:55
24 msgid "Value"
25 msgstr "Valore"
26
27 #: src/eiciel_xattr_window.cpp:163
28 msgid "Could not rename attribute name: "
29 msgstr "Impossibile rinominare il nome dell'attributo: "
30
31 #: src/eiciel_xattr_window.cpp:190
32 msgid "Could not change attribute value: "
33 msgstr "Impossibile modificare il valore dell'attributo: "
34
35 #: src/eiciel_xattr_window.cpp:217
36 msgid "Could not remove attribute: "
37 msgstr "Impossibile rimuovere l'attributo: "
38
39 #: src/eiciel_xattr_window.cpp:242 src/eiciel_xattr_window.cpp:249
40 msgid "New attribute"
41 msgstr "Nuovo attributo"
42
43 #: src/eiciel_xattr_window.cpp:275
44 msgid "New value"
45 msgstr "Nuovo valore"
46
47 #: src/eiciel_xattr_window.cpp:287
48 msgid "Could not add attribute: "
49 msgstr "Impossibile aggiungere l'attributo: "
50
51 #: src/eiciel_main_window_controller.cpp:118 src/eiciel_acl_list.cpp:366
52 msgid "Mask"
53 msgstr "Maschera"
54
55 #: src/eiciel_main_window_controller.cpp:125
56 msgid "Other"
57 msgstr "Altri"
58
59 #: src/eiciel_main_window_controller.cpp:182 src/eiciel_acl_list.cpp:399
60 msgid "Default Mask"
61 msgstr "Maschera predefinita"
62
63 #: src/eiciel_main_window_controller.cpp:190 src/eiciel_acl_list.cpp:393
64 msgid "Default Other"
65 msgstr "Altri predefinito"
66
67 #: src/eiciel_main_window_controller.cpp:267
68 msgid "Could not add ACL entry: "
69 msgstr "Impossibile aggiungere la voce ACL: "
70
71 #: src/eiciel_main_window_controller.cpp:314
72 msgid "Could not remove ACL entry: "
73 msgstr "Impossibile rimuovere la voce ACL: "
74
75 #: src/eiciel_main_window_controller.cpp:393
76 msgid "Could not modify ACL entry: "
77 msgstr "Impossibile modificare la voce ACL: "
78
79 #: src/eiciel_main_window_controller.cpp:548
80 #: src/eiciel_enclosed_editor_window_controller.cpp:33
81 msgid "Are you sure you want to remove all ACL default entries?"
82 msgstr "Rimuovere tutte le voci ACL predefinite?"
1883
1984 #: src/eiciel_container.cpp:26
2085 msgid "<b>File name</b>"
2186 msgstr "<b>Nome file</b>"
2287
23 #: src/eiciel_container.cpp:27 src/eiciel_container.cpp:183
88 #: src/eiciel_container.cpp:27 src/eiciel_container.cpp:168
2489 msgid "No file opened"
2590 msgstr "Nessun file aperto"
2691
27 #: src/eiciel_container.cpp:30 src/eiciel_container.cpp:192
28 #: src/eiciel_container.cpp:194
92 #: src/eiciel_container.cpp:30 src/eiciel_container.cpp:177
93 #: src/eiciel_container.cpp:180
2994 msgid "About..."
3095 msgstr "Informazioni su..."
3196
32 #: src/eiciel_container.cpp:48 src/eiciel_nautilus_page.cpp:136
97 #: src/eiciel_container.cpp:47 src/eiciel_nautilus_page.cpp:129
3398 msgid "Access Control List"
3499 msgstr "Elenco di controllo dell'accesso"
35100
36 #: src/eiciel_container.cpp:56 src/eiciel_nautilus_page.cpp:156
101 #: src/eiciel_container.cpp:56 src/eiciel_nautilus_page.cpp:145
37102 msgid "Extended user attributes"
38103 msgstr "Attributi utente estesi"
39104
40 #: src/eiciel_container.cpp:100
105 #: src/eiciel_container.cpp:97
41106 #, c-format
42107 msgid "Could not show the help file: %s"
43108 msgstr "Impossibile visualizzare il file della guida: %s"
44109
45 #: src/eiciel_container.cpp:123
110 #: src/eiciel_container.cpp:120
46111 msgid "Choose a file or a directory"
47112 msgstr "Scegliere un file o una directory"
48113
49 #: src/eiciel_container.cpp:145
114 #: src/eiciel_container.cpp:137
50115 msgid "Could not open the file \""
51116 msgstr "Impossibile aprire il file \""
52117
53 #: src/acl_manager.cpp:50 src/xattr_manager.cpp:33
118 #: src/eiciel_standalone.cpp:46
119 msgid "Print version information"
120 msgstr "Stampa informazioni sulla versione"
121
122 #: src/eiciel_standalone.cpp:48
123 msgid "Access control list editor"
124 msgstr "Editor elenco di controllo dell'accesso"
125
126 #: src/eiciel_enclosed_editor_window.cpp:24
127 msgid "Edit ACLs for enclosed files"
128 msgstr "Modifica gli ACL per i file acclusi"
129
130 #: src/eiciel_enclosed_editor_window.cpp:25
131 msgid "_Cancel"
132 msgstr "_Annulla"
133
134 #: src/eiciel_enclosed_editor_window.cpp:26
135 msgid "_Apply"
136 msgstr "A_pplica"
137
138 #: src/eiciel_enclosed_editor_window.cpp:30
139 msgid "<b>Participants in ACL for enclosed directories</b>"
140 msgstr ""
141
142 #: src/eiciel_enclosed_editor_window.cpp:33
143 #, fuzzy
144 msgid "<b>Participants in ACL for enclosed files</b>"
145 msgstr "<b>Attuali partecipanti all'ACL</b>"
146
147 #: src/eiciel_enclosed_editor_window.cpp:36 src/eiciel_main_window.cpp:32
148 msgid "<b>Available participants</b>"
149 msgstr "<b>Partecipanti disponibili</b>"
150
151 #: src/acl_manager.cpp:46 src/xattr_manager.cpp:32
54152 msgid "Only regular files or directories supported"
55153 msgstr "Sono supportati solo le directory o i file normali"
56154
57 #: src/acl_manager.cpp:542
155 #: src/acl_manager.cpp:463
58156 msgid "Textual representation of the ACL is wrong"
59157 msgstr "La rappresentazione di testo dell'ACL non è valida"
60158
61 #: src/acl_manager.cpp:564
159 #: src/acl_manager.cpp:484
62160 msgid "Default textual representation of the ACL is wrong"
63161 msgstr "La rappresentazione di testo predefinita dell'ACL non è valida"
64162
65 #: src/eiciel_xattr_window.cpp:39
66 msgid "Name"
67 msgstr "Nome"
68
69 #: src/eiciel_xattr_window.cpp:55
70 msgid "Value"
71 msgstr "Valore"
72
73 #: src/eiciel_xattr_window.cpp:176
74 msgid "Could not rename attribute name: "
75 msgstr "Impossibile rinominare il nome dell'attributo: "
76
77 #: src/eiciel_xattr_window.cpp:211
78 msgid "Could not change attribute value: "
79 msgstr "Impossibile modificare il valore dell'attributo: "
80
81 #: src/eiciel_xattr_window.cpp:248
82 msgid "Could not remove attribute: "
83 msgstr "Impossibile rimuovere l'attributo: "
84
85 #: src/eiciel_xattr_window.cpp:280 src/eiciel_xattr_window.cpp:289
86 msgid "New attribute"
87 msgstr "Nuovo attributo"
88
89 #: src/eiciel_xattr_window.cpp:318
90 msgid "New value"
91 msgstr "Nuovo valore"
92
93 #: src/eiciel_xattr_window.cpp:333
94 msgid "Could not add attribute: "
95 msgstr "Impossibile aggiungere l'attributo: "
96
97 #: src/eiciel_standalone.cpp:48
98 msgid "Print version information"
99 msgstr "Stampa informazioni sulla versione"
100
101 #: src/eiciel_standalone.cpp:50
102 msgid "Access control list editor"
103 msgstr "Editor elenco di controllo dell'accesso"
104
105 #: src/eiciel_main_controller.cpp:172
106 msgid "Mask"
107 msgstr "Maschera"
108
109 #: src/eiciel_main_controller.cpp:177
110 msgid "Other"
111 msgstr "Altri"
112
113 #: src/eiciel_main_controller.cpp:250
114 msgid "Default Mask"
115 msgstr "Maschera predefinita"
116
117 #: src/eiciel_main_controller.cpp:258
118 msgid "Default Other"
119 msgstr "Altri predefinito"
120
121 #: src/eiciel_main_controller.cpp:328
122 msgid "Could not add ACL entry: "
123 msgstr "Impossibile aggiungere la voce ACL: "
124
125 #: src/eiciel_main_controller.cpp:390
126 msgid "Could not remove ACL entry: "
127 msgstr "Impossibile rimuovere la voce ACL: "
128
129 #: src/eiciel_main_controller.cpp:487
130 msgid "Could not modify ACL entry: "
131 msgstr "Impossibile modificare la voce ACL: "
132
133 #: src/eiciel_main_controller.cpp:516
134 msgid "Are you sure you want to remove all ACL default entries?"
135 msgstr "Si desidera rimuovere tutte le voci predefinite ACL?"
136
137 #: src/eiciel_main_window.cpp:26
163 #: src/eiciel_main_window.cpp:30
138164 msgid "<b>Current participants in ACL</b>"
139165 msgstr "<b>Attuali partecipanti all'ACL</b>"
140166
141 #: src/eiciel_main_window.cpp:32
167 #: src/eiciel_main_window.cpp:34
168 msgid "Edit ACLs for enclosed files..."
169 msgstr ""
170
171 #: src/eiciel_participant_list.cpp:30
172 msgid "User"
173 msgstr "Utente"
174
175 #: src/eiciel_participant_list.cpp:31
176 msgid "Group"
177 msgstr "Gruppo"
178
179 #: src/eiciel_participant_list.cpp:32
180 msgid "Default participant"
181 msgstr "Partecipante predefinito"
182
183 #: src/eiciel_participant_list.cpp:37
184 msgid "Add participant to ACL"
185 msgstr "Aggiungi partecipante all'ACL"
186
187 #: src/eiciel_participant_list.cpp:38
188 #, fuzzy
189 msgid "Add participant to directory ACL"
190 msgstr "Aggiungi partecipante all'ACL"
191
192 #: src/eiciel_participant_list.cpp:39
193 #, fuzzy
194 msgid "Add participant to file ACL"
195 msgstr "Aggiungi partecipante all'ACL"
196
197 #: src/eiciel_participant_list.cpp:40
198 msgid "Advanced features"
199 msgstr "Funzioni avanzate"
200
201 #: src/eiciel_participant_list.cpp:42
202 msgid "Name of participant"
203 msgstr "Nome partecipante"
204
205 #: src/eiciel_participant_list.cpp:44
206 msgid "Also show system participants"
207 msgstr "Mostra anche partecipanti del sistema"
208
209 #: src/eiciel_participant_list.cpp:80
210 msgid "Filter participants"
211 msgstr "Filtra partecipanti"
212
213 #: src/eiciel_participant_list.cpp:105
214 msgid "Participant"
215 msgstr "Partecipante"
216
217 #: src/eiciel_participant_list.cpp:422
218 msgid "Participant not found"
219 msgstr "Partecipante non trovato"
220
221 #: src/eiciel_acl_list.cpp:33
142222 msgid "There are ineffective permissions"
143223 msgstr "Presenti autorizzazioni inefficaci"
144224
145 #: src/eiciel_main_window.cpp:33
225 #: src/eiciel_acl_list.cpp:35
146226 msgid "Remove participant from ACL"
147227 msgstr "Rimuovi partecipante dall'ACL"
148228
149 #: src/eiciel_main_window.cpp:34
229 #: src/eiciel_acl_list.cpp:36
150230 msgid "Edit default participants"
151231 msgstr "Modifica partecipanti predefiniti"
152232
153 #: src/eiciel_main_window.cpp:35
154 msgid "<b>Available participants</b>"
155 msgstr "<b>Partecipanti disponibili</b>"
156
157 #: src/eiciel_main_window.cpp:38
158 msgid "User"
159 msgstr "Utente"
160
161 #: src/eiciel_main_window.cpp:39
162 msgid "Group"
163 msgstr "Gruppo"
164
165 #: src/eiciel_main_window.cpp:40
166 msgid "Default participant"
167 msgstr "Partecipante predefinito"
168
169 #: src/eiciel_main_window.cpp:45
170 msgid "Add participant to ACL"
171 msgstr "Aggiungi partecipante all'ACL"
172
173 #: src/eiciel_main_window.cpp:46
174 msgid "Advanced features"
175 msgstr "Funzioni avanzate"
176
177 #: src/eiciel_main_window.cpp:48
178 msgid "Name of participant"
179 msgstr "Nome partecipante"
180
181 #: src/eiciel_main_window.cpp:50
182 msgid "Also show system participants"
183 msgstr "Mostra anche partecipanti del sistema"
184
185 #: src/eiciel_main_window.cpp:112
233 #: src/eiciel_acl_list.cpp:79
186234 msgid "Entry"
187235 msgstr "Voce"
188236
189 #: src/eiciel_main_window.cpp:115
237 #: src/eiciel_acl_list.cpp:82
190238 msgid "Read"
191239 msgstr "Lettura"
192240
193 #: src/eiciel_main_window.cpp:126
241 #: src/eiciel_acl_list.cpp:95
194242 msgid "Write"
195243 msgstr "Scrittura"
196244
197 #: src/eiciel_main_window.cpp:136
245 #: src/eiciel_acl_list.cpp:107
198246 msgid "Execute"
199247 msgstr "Esecuzione"
200248
201 #: src/eiciel_main_window.cpp:152 src/eiciel_main_window.cpp:162
202 #: src/eiciel_main_window.cpp:590
203 msgid "None"
204 msgstr "Nessuno"
205
206 #: src/eiciel_main_window.cpp:154
207 msgid "Only files"
208 msgstr "Solo file"
209
210 #: src/eiciel_main_window.cpp:156
211 msgid "Only directories"
212 msgstr "Solo directory"
213
214 #: src/eiciel_main_window.cpp:158
215 msgid "Both files and directories"
216 msgstr "Sia file che directory"
217
218 #: src/eiciel_main_window.cpp:166
219 msgid "Recursion"
220 msgstr "Ricorsione"
221
222 #: src/eiciel_main_window.cpp:201
223 msgid "Filter participants"
224 msgstr "Filtra partecipanti"
225
226 #: src/eiciel_main_window.cpp:222
227 msgid "Participant"
228 msgstr "Partecipante"
229
230 #: src/eiciel_main_window.cpp:912
231 msgid "Participant not found"
232 msgstr "Partecipante non trovato"
249 #~ msgid "None"
250 #~ msgstr "Nessuno"
251
252 #~ msgid "Only files"
253 #~ msgstr "Solo file"
254
255 #~ msgid "Only directories"
256 #~ msgstr "Solo directory"
257
258 #~ msgid "Both files and directories"
259 #~ msgstr "Sia file che directory"
260
261 #~ msgid "Recursion"
262 #~ msgstr "Ricorsione"
233263
234264 #~ msgid "Default"
235265 #~ msgstr "Default"
Binary diff not shown
+186
-159
po/ja.po less more
44 msgstr ""
55 "Project-Id-Version: eiciel\n"
66 "Report-Msgid-Bugs-To: rofirrim@gmail.com\n"
7 "POT-Creation-Date: 2018-01-16 19:46+0000\n"
8 "PO-Revision-Date: 2015-10-11 02:49+0200\n"
7 "POT-Creation-Date: 2020-08-24 15:11+0200\n"
8 "PO-Revision-Date: 2019-06-17 00:49+0000\n"
99 "Last-Translator: Yasuhiko Kamata <belphegor@belbel.or.jp>\n"
10 "Language-Team: Japanese <http://10n.opensuse.org/projects/eiciel/master/ja/"
10 "Language-Team: Japanese <https://l10n.opensuse.org/projects/eiciel/master/ja/"
1111 ">\n"
1212 "Language: ja\n"
1313 "MIME-Version: 1.0\n"
1414 "Content-Type: text/plain; charset=UTF-8\n"
1515 "Content-Transfer-Encoding: 8bit\n"
1616 "Plural-Forms: nplurals=1; plural=0;\n"
17 "X-Generator: Weblate 2.3\n"
17 "X-Generator: Weblate 3.6.1\n"
18
19 #: src/eiciel_xattr_window.cpp:40
20 msgid "Name"
21 msgstr "名前"
22
23 #: src/eiciel_xattr_window.cpp:55
24 msgid "Value"
25 msgstr "値"
26
27 #: src/eiciel_xattr_window.cpp:163
28 msgid "Could not rename attribute name: "
29 msgstr "属性名を変更できません: "
30
31 #: src/eiciel_xattr_window.cpp:190
32 msgid "Could not change attribute value: "
33 msgstr "属性値を変更できません: "
34
35 #: src/eiciel_xattr_window.cpp:217
36 msgid "Could not remove attribute: "
37 msgstr "属性を削除できませんでした: "
38
39 #: src/eiciel_xattr_window.cpp:242 src/eiciel_xattr_window.cpp:249
40 msgid "New attribute"
41 msgstr "新しい属性"
42
43 #: src/eiciel_xattr_window.cpp:275
44 msgid "New value"
45 msgstr "新しい値"
46
47 #: src/eiciel_xattr_window.cpp:287
48 msgid "Could not add attribute: "
49 msgstr "属性を追加できませんでした: "
50
51 #: src/eiciel_main_window_controller.cpp:118 src/eiciel_acl_list.cpp:366
52 msgid "Mask"
53 msgstr "マスク"
54
55 #: src/eiciel_main_window_controller.cpp:125
56 msgid "Other"
57 msgstr "その他"
58
59 #: src/eiciel_main_window_controller.cpp:182 src/eiciel_acl_list.cpp:399
60 msgid "Default Mask"
61 msgstr "デフォルトマスク"
62
63 #: src/eiciel_main_window_controller.cpp:190 src/eiciel_acl_list.cpp:393
64 msgid "Default Other"
65 msgstr "デフォルトその他"
66
67 #: src/eiciel_main_window_controller.cpp:267
68 msgid "Could not add ACL entry: "
69 msgstr "ACLエントリを追加できません: "
70
71 #: src/eiciel_main_window_controller.cpp:314
72 msgid "Could not remove ACL entry: "
73 msgstr "ACLエントリを削除できませんでした: "
74
75 #: src/eiciel_main_window_controller.cpp:393
76 msgid "Could not modify ACL entry: "
77 msgstr "ACLエントリを変更できませんでした: "
78
79 #: src/eiciel_main_window_controller.cpp:548
80 #: src/eiciel_enclosed_editor_window_controller.cpp:33
81 msgid "Are you sure you want to remove all ACL default entries?"
82 msgstr "ACLデフォルトエントリをすべて削除しますか?"
1883
1984 #: src/eiciel_container.cpp:26
2085 msgid "<b>File name</b>"
2186 msgstr "<b>ファイル名</b>"
2287
23 #: src/eiciel_container.cpp:27 src/eiciel_container.cpp:183
88 #: src/eiciel_container.cpp:27 src/eiciel_container.cpp:168
2489 msgid "No file opened"
2590 msgstr "開かれているファイルはありません"
2691
27 #: src/eiciel_container.cpp:30 src/eiciel_container.cpp:192
28 #: src/eiciel_container.cpp:194
92 #: src/eiciel_container.cpp:30 src/eiciel_container.cpp:177
93 #: src/eiciel_container.cpp:180
2994 msgid "About..."
3095 msgstr "バージョン情報..."
3196
32 #: src/eiciel_container.cpp:48 src/eiciel_nautilus_page.cpp:136
97 #: src/eiciel_container.cpp:47 src/eiciel_nautilus_page.cpp:129
3398 msgid "Access Control List"
3499 msgstr "アクセス制御リスト"
35100
36 #: src/eiciel_container.cpp:56 src/eiciel_nautilus_page.cpp:156
101 #: src/eiciel_container.cpp:56 src/eiciel_nautilus_page.cpp:145
37102 msgid "Extended user attributes"
38103 msgstr "拡張ユーザ属性"
39104
40 #: src/eiciel_container.cpp:100
105 #: src/eiciel_container.cpp:97
41106 #, c-format
42107 msgid "Could not show the help file: %s"
43108 msgstr "ヘルプファイルを表示できませんでした: %s"
44109
45 #: src/eiciel_container.cpp:123
110 #: src/eiciel_container.cpp:120
46111 msgid "Choose a file or a directory"
47112 msgstr "ファイルまたはディレクトリを選択してください"
48113
49 #: src/eiciel_container.cpp:145
114 #: src/eiciel_container.cpp:137
50115 msgid "Could not open the file \""
51116 msgstr "」ファイルを開けません"
52117
53 #: src/acl_manager.cpp:50 src/xattr_manager.cpp:33
118 #: src/eiciel_standalone.cpp:46
119 msgid "Print version information"
120 msgstr "バージョン情報を出力します"
121
122 #: src/eiciel_standalone.cpp:48
123 msgid "Access control list editor"
124 msgstr "アクセス制御リストエディタ"
125
126 #: src/eiciel_enclosed_editor_window.cpp:24
127 msgid "Edit ACLs for enclosed files"
128 msgstr "同封されているファイルに対する ACL の編集"
129
130 #: src/eiciel_enclosed_editor_window.cpp:25
131 msgid "_Cancel"
132 msgstr "キャンセル (_c)"
133
134 #: src/eiciel_enclosed_editor_window.cpp:26
135 msgid "_Apply"
136 msgstr "適用 (_a)"
137
138 #: src/eiciel_enclosed_editor_window.cpp:30
139 msgid "<b>Participants in ACL for enclosed directories</b>"
140 msgstr "<b>同封されているディレクトリに対する ACL の参加者</b>"
141
142 #: src/eiciel_enclosed_editor_window.cpp:33
143 msgid "<b>Participants in ACL for enclosed files</b>"
144 msgstr "<b>同封されているファイルに対する ACL の参加者</b>"
145
146 #: src/eiciel_enclosed_editor_window.cpp:36 src/eiciel_main_window.cpp:32
147 msgid "<b>Available participants</b>"
148 msgstr "<b>利用可能な参加者</b>"
149
150 #: src/acl_manager.cpp:46 src/xattr_manager.cpp:32
54151 msgid "Only regular files or directories supported"
55152 msgstr "普通のファイルまたはディレクトリのみをサポートしています"
56153
57 #: src/acl_manager.cpp:542
154 #: src/acl_manager.cpp:463
58155 msgid "Textual representation of the ACL is wrong"
59156 msgstr "ACLの記述が誤っています"
60157
61 #: src/acl_manager.cpp:564
158 #: src/acl_manager.cpp:484
62159 msgid "Default textual representation of the ACL is wrong"
63160 msgstr "デフォルトのACL記述が誤っています"
64161
65 #: src/eiciel_xattr_window.cpp:39
66 msgid "Name"
67 msgstr "名前"
68
69 #: src/eiciel_xattr_window.cpp:55
70 msgid "Value"
71 msgstr "値"
72
73 #: src/eiciel_xattr_window.cpp:176
74 msgid "Could not rename attribute name: "
75 msgstr "属性名を変更できません: "
76
77 #: src/eiciel_xattr_window.cpp:211
78 msgid "Could not change attribute value: "
79 msgstr "属性値を変更できません: "
80
81 #: src/eiciel_xattr_window.cpp:248
82 msgid "Could not remove attribute: "
83 msgstr "属性を削除できませんでした: "
84
85 #: src/eiciel_xattr_window.cpp:280 src/eiciel_xattr_window.cpp:289
86 msgid "New attribute"
87 msgstr "新しい属性"
88
89 #: src/eiciel_xattr_window.cpp:318
90 msgid "New value"
91 msgstr "新しい値"
92
93 #: src/eiciel_xattr_window.cpp:333
94 msgid "Could not add attribute: "
95 msgstr "属性を追加できませんでした: "
96
97 #: src/eiciel_standalone.cpp:48
98 msgid "Print version information"
99 msgstr "バージョン情報を出力します"
100
101 #: src/eiciel_standalone.cpp:50
102 msgid "Access control list editor"
103 msgstr "アクセス制御リストエディタ"
104
105 #: src/eiciel_main_controller.cpp:172
106 msgid "Mask"
107 msgstr "マスク"
108
109 #: src/eiciel_main_controller.cpp:177
110 msgid "Other"
111 msgstr "その他"
112
113 #: src/eiciel_main_controller.cpp:250
114 msgid "Default Mask"
115 msgstr "デフォルトマスク"
116
117 #: src/eiciel_main_controller.cpp:258
118 msgid "Default Other"
119 msgstr "デフォルトその他"
120
121 #: src/eiciel_main_controller.cpp:328
122 msgid "Could not add ACL entry: "
123 msgstr "ACLエントリを追加できません: "
124
125 #: src/eiciel_main_controller.cpp:390
126 msgid "Could not remove ACL entry: "
127 msgstr "ACLエントリを削除できませんでした: "
128
129 #: src/eiciel_main_controller.cpp:487
130 msgid "Could not modify ACL entry: "
131 msgstr "ACLエントリを変更できませんでした: "
132
133 #: src/eiciel_main_controller.cpp:516
134 msgid "Are you sure you want to remove all ACL default entries?"
135 msgstr "ACLデフォルトエントリをすべて削除しますか?"
136
137 #: src/eiciel_main_window.cpp:26
162 #: src/eiciel_main_window.cpp:30
138163 msgid "<b>Current participants in ACL</b>"
139164 msgstr "<b>ACL 内に書かれている現在の参加者</b>"
140165
141 #: src/eiciel_main_window.cpp:32
166 #: src/eiciel_main_window.cpp:34
167 msgid "Edit ACLs for enclosed files..."
168 msgstr "同封されているファイルに対する ACL の編集..."
169
170 #: src/eiciel_participant_list.cpp:30
171 msgid "User"
172 msgstr "ユーザ"
173
174 #: src/eiciel_participant_list.cpp:31
175 msgid "Group"
176 msgstr "グループ"
177
178 #: src/eiciel_participant_list.cpp:32
179 msgid "Default participant"
180 msgstr "既定の参加者"
181
182 #: src/eiciel_participant_list.cpp:37
183 msgid "Add participant to ACL"
184 msgstr "ACL に参加者を追加する"
185
186 #: src/eiciel_participant_list.cpp:38
187 msgid "Add participant to directory ACL"
188 msgstr "ディレクトリ ACL に参加者を追加する"
189
190 #: src/eiciel_participant_list.cpp:39
191 msgid "Add participant to file ACL"
192 msgstr "ファイル ACL に参加者を追加する"
193
194 #: src/eiciel_participant_list.cpp:40
195 msgid "Advanced features"
196 msgstr "高度な機能"
197
198 #: src/eiciel_participant_list.cpp:42
199 msgid "Name of participant"
200 msgstr "参加者の名前"
201
202 #: src/eiciel_participant_list.cpp:44
203 msgid "Also show system participants"
204 msgstr "システム参加者も表示"
205
206 #: src/eiciel_participant_list.cpp:80
207 msgid "Filter participants"
208 msgstr "参加者をフィルタする"
209
210 #: src/eiciel_participant_list.cpp:105
211 msgid "Participant"
212 msgstr "参加者"
213
214 #: src/eiciel_participant_list.cpp:422
215 msgid "Participant not found"
216 msgstr "参加者が見つかりません"
217
218 #: src/eiciel_acl_list.cpp:33
142219 msgid "There are ineffective permissions"
143220 msgstr "無効な許可があります"
144221
145 #: src/eiciel_main_window.cpp:33
222 #: src/eiciel_acl_list.cpp:35
146223 msgid "Remove participant from ACL"
147224 msgstr "ACL から参加者を削除する"
148225
149 #: src/eiciel_main_window.cpp:34
226 #: src/eiciel_acl_list.cpp:36
150227 msgid "Edit default participants"
151228 msgstr "既定の参加者を編集する"
152229
153 #: src/eiciel_main_window.cpp:35
154 msgid "<b>Available participants</b>"
155 msgstr "<b>利用可能な参加者</b>"
156
157 #: src/eiciel_main_window.cpp:38
158 msgid "User"
159 msgstr "ユーザ"
160
161 #: src/eiciel_main_window.cpp:39
162 msgid "Group"
163 msgstr "グループ"
164
165 #: src/eiciel_main_window.cpp:40
166 msgid "Default participant"
167 msgstr "既定の参加者"
168
169 #: src/eiciel_main_window.cpp:45
170 msgid "Add participant to ACL"
171 msgstr "ACL に参加者を追加する"
172
173 #: src/eiciel_main_window.cpp:46
174 msgid "Advanced features"
175 msgstr "高度な機能"
176
177 #: src/eiciel_main_window.cpp:48
178 msgid "Name of participant"
179 msgstr "参加者の名前"
180
181 #: src/eiciel_main_window.cpp:50
182 msgid "Also show system participants"
183 msgstr "システム参加者も表示"
184
185 #: src/eiciel_main_window.cpp:112
230 #: src/eiciel_acl_list.cpp:79
186231 msgid "Entry"
187232 msgstr "エントリ"
188233
189 #: src/eiciel_main_window.cpp:115
234 #: src/eiciel_acl_list.cpp:82
190235 msgid "Read"
191236 msgstr "読み込み"
192237
193 #: src/eiciel_main_window.cpp:126
238 #: src/eiciel_acl_list.cpp:95
194239 msgid "Write"
195240 msgstr "書き込み"
196241
197 #: src/eiciel_main_window.cpp:136
242 #: src/eiciel_acl_list.cpp:107
198243 msgid "Execute"
199244 msgstr "実行"
200245
201 #: src/eiciel_main_window.cpp:152 src/eiciel_main_window.cpp:162
202 #: src/eiciel_main_window.cpp:590
203 msgid "None"
204 msgstr "なし"
205
206 #: src/eiciel_main_window.cpp:154
207 msgid "Only files"
208 msgstr "ファイルのみ"
209
210 #: src/eiciel_main_window.cpp:156
211 msgid "Only directories"
212 msgstr "ディレクトリのみ"
213
214 #: src/eiciel_main_window.cpp:158
215 msgid "Both files and directories"
216 msgstr "ファイルとディレクトリの両方"
217
218 #: src/eiciel_main_window.cpp:166
219 msgid "Recursion"
220 msgstr "再帰"
221
222 #: src/eiciel_main_window.cpp:201
223 msgid "Filter participants"
224 msgstr "参加者をフィルタする"
225
226 #: src/eiciel_main_window.cpp:222
227 msgid "Participant"
228 msgstr "参加者"
229
230 #: src/eiciel_main_window.cpp:912
231 msgid "Participant not found"
232 msgstr "参加者が見つかりません"
246 #~ msgid "None"
247 #~ msgstr "なし"
248
249 #~ msgid "Only files"
250 #~ msgstr "ファイルのみ"
251
252 #~ msgid "Only directories"
253 #~ msgstr "ディレクトリのみ"
254
255 #~ msgid "Both files and directories"
256 #~ msgstr "ファイルとディレクトリの両方"
257
258 #~ msgid "Recursion"
259 #~ msgstr "再帰"
233260
234261 #~ msgid "Default"
235262 #~ msgstr "デフォルト"
Binary diff not shown
+197
-172
po/ko.po less more
44 msgstr ""
55 "Project-Id-Version: eiciel\n"
66 "Report-Msgid-Bugs-To: rofirrim@gmail.com\n"
7 "POT-Creation-Date: 2018-01-16 19:46+0000\n"
8 "PO-Revision-Date: 2016-03-31 16:26+0000\n"
9 "Last-Translator: YunSeok Choi <xein@naver.com>\n"
10 "Language-Team: Korean <http://l10n.opensuse.org/projects/eiciel/master/ko/>\n"
7 "POT-Creation-Date: 2020-08-24 15:11+0200\n"
8 "PO-Revision-Date: 2018-01-29 05:04+0000\n"
9 "Last-Translator: Hwajin Kim <hwajin.kim@e4net.net>\n"
10 "Language-Team: Korean <https://l10n.opensuse.org/projects/eiciel/master/ko/"
11 ">\n"
1112 "Language: ko\n"
1213 "MIME-Version: 1.0\n"
1314 "Content-Type: text/plain; charset=UTF-8\n"
1415 "Content-Transfer-Encoding: 8bit\n"
1516 "Plural-Forms: nplurals=1; plural=0;\n"
16 "X-Generator: Weblate 2.5\n"
17 "X-Generator: Weblate 2.18\n"
18
19 #: src/eiciel_xattr_window.cpp:40
20 msgid "Name"
21 msgstr "이름"
22
23 #: src/eiciel_xattr_window.cpp:55
24 msgid "Value"
25 msgstr "값"
26
27 #: src/eiciel_xattr_window.cpp:163
28 msgid "Could not rename attribute name: "
29 msgstr "다음 특성 이름을 바꿀 수 없음: "
30
31 #: src/eiciel_xattr_window.cpp:190
32 msgid "Could not change attribute value: "
33 msgstr "다음 특성 값을 변경할 수 없음: "
34
35 #: src/eiciel_xattr_window.cpp:217
36 msgid "Could not remove attribute: "
37 msgstr "다음 특성을 제거할 수 없음: "
38
39 #: src/eiciel_xattr_window.cpp:242 src/eiciel_xattr_window.cpp:249
40 msgid "New attribute"
41 msgstr "새 특성"
42
43 #: src/eiciel_xattr_window.cpp:275
44 msgid "New value"
45 msgstr "새로운 값"
46
47 #: src/eiciel_xattr_window.cpp:287
48 msgid "Could not add attribute: "
49 msgstr "다음 특성을 추가할 수 없음: "
50
51 #: src/eiciel_main_window_controller.cpp:118 src/eiciel_acl_list.cpp:366
52 msgid "Mask"
53 msgstr "마스크"
54
55 #: src/eiciel_main_window_controller.cpp:125
56 msgid "Other"
57 msgstr "기타"
58
59 #: src/eiciel_main_window_controller.cpp:182 src/eiciel_acl_list.cpp:399
60 msgid "Default Mask"
61 msgstr "기본 마스크"
62
63 #: src/eiciel_main_window_controller.cpp:190 src/eiciel_acl_list.cpp:393
64 msgid "Default Other"
65 msgstr "기본 기타"
66
67 #: src/eiciel_main_window_controller.cpp:267
68 msgid "Could not add ACL entry: "
69 msgstr "ACL 항목을 추가할 수 없음: "
70
71 #: src/eiciel_main_window_controller.cpp:314
72 msgid "Could not remove ACL entry: "
73 msgstr "ACL 항목을 제거할 수 없음: "
74
75 #: src/eiciel_main_window_controller.cpp:393
76 msgid "Could not modify ACL entry: "
77 msgstr "ACL 항목을 수정할 수 없음: "
78
79 #: src/eiciel_main_window_controller.cpp:548
80 #: src/eiciel_enclosed_editor_window_controller.cpp:33
81 msgid "Are you sure you want to remove all ACL default entries?"
82 msgstr "ACL 기본 항목을 모두 제거하시겠습니까?"
1783
1884 #: src/eiciel_container.cpp:26
1985 msgid "<b>File name</b>"
2086 msgstr "<b>파일 이름</b>"
2187
22 #: src/eiciel_container.cpp:27 src/eiciel_container.cpp:183
88 #: src/eiciel_container.cpp:27 src/eiciel_container.cpp:168
2389 msgid "No file opened"
2490 msgstr "열린 파일이 없음"
2591
26 #: src/eiciel_container.cpp:30 src/eiciel_container.cpp:192
27 #: src/eiciel_container.cpp:194
92 #: src/eiciel_container.cpp:30 src/eiciel_container.cpp:177
93 #: src/eiciel_container.cpp:180
2894 msgid "About..."
2995 msgstr "정보..."
3096
31 #: src/eiciel_container.cpp:48 src/eiciel_nautilus_page.cpp:136
97 #: src/eiciel_container.cpp:47 src/eiciel_nautilus_page.cpp:129
3298 msgid "Access Control List"
3399 msgstr "액세스 제어 목록"
34100
35 #: src/eiciel_container.cpp:56 src/eiciel_nautilus_page.cpp:156
101 #: src/eiciel_container.cpp:56 src/eiciel_nautilus_page.cpp:145
36102 msgid "Extended user attributes"
37103 msgstr "확장된 사용자 특성"
38104
39 #: src/eiciel_container.cpp:100
105 #: src/eiciel_container.cpp:97
40106 #, c-format
41107 msgid "Could not show the help file: %s"
42108 msgstr "도움말 파일을 표시할 수 없습니다: %s"
43109
44 #: src/eiciel_container.cpp:123
110 #: src/eiciel_container.cpp:120
45111 msgid "Choose a file or a directory"
46112 msgstr "파일 또는 디렉토리를 선택합니다"
47113
48 #: src/eiciel_container.cpp:145
114 #: src/eiciel_container.cpp:137
49115 msgid "Could not open the file \""
50116 msgstr "파일을 열 수 없습니다. \""
51117
52 #: src/acl_manager.cpp:50 src/xattr_manager.cpp:33
118 #: src/eiciel_standalone.cpp:46
119 msgid "Print version information"
120 msgstr "버전 정보 인쇄"
121
122 #: src/eiciel_standalone.cpp:48
123 msgid "Access control list editor"
124 msgstr "액세스 제어 목록 편집기"
125
126 #: src/eiciel_enclosed_editor_window.cpp:24
127 msgid "Edit ACLs for enclosed files"
128 msgstr ""
129
130 #: src/eiciel_enclosed_editor_window.cpp:25
131 msgid "_Cancel"
132 msgstr ""
133
134 #: src/eiciel_enclosed_editor_window.cpp:26
135 msgid "_Apply"
136 msgstr ""
137
138 #: src/eiciel_enclosed_editor_window.cpp:30
139 msgid "<b>Participants in ACL for enclosed directories</b>"
140 msgstr ""
141
142 #: src/eiciel_enclosed_editor_window.cpp:33
143 #, fuzzy
144 msgid "<b>Participants in ACL for enclosed files</b>"
145 msgstr "<b>ACL의 현재 참가자</b>"
146
147 #: src/eiciel_enclosed_editor_window.cpp:36 src/eiciel_main_window.cpp:32
148 msgid "<b>Available participants</b>"
149 msgstr "<b>가능한 참가자</b>"
150
151 #: src/acl_manager.cpp:46 src/xattr_manager.cpp:32
53152 msgid "Only regular files or directories supported"
54153 msgstr "일반 파일이나 디렉토리만 지원됩니다"
55154
56 #: src/acl_manager.cpp:542
155 #: src/acl_manager.cpp:463
57156 msgid "Textual representation of the ACL is wrong"
58157 msgstr "ACL의 문법이 잘못되었습니다"
59158
60 #: src/acl_manager.cpp:564
159 #: src/acl_manager.cpp:484
61160 msgid "Default textual representation of the ACL is wrong"
62161 msgstr "ACL의 기본 문법이 잘못되었습니다"
63162
64 #: src/eiciel_xattr_window.cpp:39
65 msgid "Name"
66 msgstr "이름"
67
68 #: src/eiciel_xattr_window.cpp:55
69 msgid "Value"
70 msgstr "값"
71
72 #: src/eiciel_xattr_window.cpp:176
73 msgid "Could not rename attribute name: "
74 msgstr "다음 특성 이름을 바꿀 수 없음:"
75
76 #: src/eiciel_xattr_window.cpp:211
77 msgid "Could not change attribute value: "
78 msgstr "다음 특성 값을 변경할 수 없음:"
79
80 #: src/eiciel_xattr_window.cpp:248
81 msgid "Could not remove attribute: "
82 msgstr "다음 특성을 제거할 수 없음:"
83
84 #: src/eiciel_xattr_window.cpp:280 src/eiciel_xattr_window.cpp:289
85 msgid "New attribute"
86 msgstr "새 특성"
87
88 #: src/eiciel_xattr_window.cpp:318
89 msgid "New value"
90 msgstr "새로운 값"
91
92 #: src/eiciel_xattr_window.cpp:333
93 msgid "Could not add attribute: "
94 msgstr "다음 특성을 추가할 수 없음:"
95
96 #: src/eiciel_standalone.cpp:48
97 msgid "Print version information"
98 msgstr "버전 정보 인쇄"
99
100 #: src/eiciel_standalone.cpp:50
101 msgid "Access control list editor"
102 msgstr "액세스 제어 목록 편집기"
103
104 #: src/eiciel_main_controller.cpp:172
105 msgid "Mask"
106 msgstr "마스크"
107
108 #: src/eiciel_main_controller.cpp:177
109 msgid "Other"
110 msgstr "기타"
111
112 #: src/eiciel_main_controller.cpp:250
113 msgid "Default Mask"
114 msgstr "기본 마스크"
115
116 #: src/eiciel_main_controller.cpp:258
117 msgid "Default Other"
118 msgstr "기본 기타"
119
120 #: src/eiciel_main_controller.cpp:328
121 msgid "Could not add ACL entry: "
122 msgstr "ACL 항목을 추가할 수 없음:"
123
124 #: src/eiciel_main_controller.cpp:390
125 msgid "Could not remove ACL entry: "
126 msgstr "ACL 항목을 제거할 수 없음:"
127
128 #: src/eiciel_main_controller.cpp:487
129 msgid "Could not modify ACL entry: "
130 msgstr "ACL 항목을 수정할 수 없음:"
131
132 #: src/eiciel_main_controller.cpp:516
133 msgid "Are you sure you want to remove all ACL default entries?"
134 msgstr "ACL 기본 항목을 모두 제거하시겠습니까?"
135
136 #: src/eiciel_main_window.cpp:26
163 #: src/eiciel_main_window.cpp:30
137164 msgid "<b>Current participants in ACL</b>"
138 msgstr ""
139
140 #: src/eiciel_main_window.cpp:32
165 msgstr "<b>ACL의 현재 참가자</b>"
166
167 #: src/eiciel_main_window.cpp:34
168 msgid "Edit ACLs for enclosed files..."
169 msgstr ""
170
171 #: src/eiciel_participant_list.cpp:30
172 msgid "User"
173 msgstr "사용자"
174
175 #: src/eiciel_participant_list.cpp:31
176 msgid "Group"
177 msgstr "그룹"
178
179 #: src/eiciel_participant_list.cpp:32
180 msgid "Default participant"
181 msgstr "기본 참가자"
182
183 #: src/eiciel_participant_list.cpp:37
184 msgid "Add participant to ACL"
185 msgstr "ACL 참가자 추가"
186
187 #: src/eiciel_participant_list.cpp:38
188 #, fuzzy
189 msgid "Add participant to directory ACL"
190 msgstr "ACL 참가자 추가"
191
192 #: src/eiciel_participant_list.cpp:39
193 #, fuzzy
194 msgid "Add participant to file ACL"
195 msgstr "ACL 참가자 추가"
196
197 #: src/eiciel_participant_list.cpp:40
198 msgid "Advanced features"
199 msgstr "고급 기능"
200
201 #: src/eiciel_participant_list.cpp:42
202 msgid "Name of participant"
203 msgstr "참가자 이름"
204
205 #: src/eiciel_participant_list.cpp:44
206 msgid "Also show system participants"
207 msgstr "시스템 참가자도 표시"
208
209 #: src/eiciel_participant_list.cpp:80
210 msgid "Filter participants"
211 msgstr "참가자 필터링"
212
213 #: src/eiciel_participant_list.cpp:105
214 msgid "Participant"
215 msgstr "참가자"
216
217 #: src/eiciel_participant_list.cpp:422
218 msgid "Participant not found"
219 msgstr "참가자를 찾을 수 없습니다"
220
221 #: src/eiciel_acl_list.cpp:33
141222 msgid "There are ineffective permissions"
142223 msgstr "잘못된 권한이 있습니다"
143224
144 #: src/eiciel_main_window.cpp:33
145 #, fuzzy
225 #: src/eiciel_acl_list.cpp:35
146226 msgid "Remove participant from ACL"
147 msgstr "참가자 이름"
148
149 #: src/eiciel_main_window.cpp:34
150 #, fuzzy
227 msgstr "ACL에서 참가자 제거"
228
229 #: src/eiciel_acl_list.cpp:36
151230 msgid "Edit default participants"
152 msgstr "참가자 이름"
153
154 #: src/eiciel_main_window.cpp:35
155 msgid "<b>Available participants</b>"
156 msgstr ""
157
158 #: src/eiciel_main_window.cpp:38
159 msgid "User"
160 msgstr "사용자"
161
162 #: src/eiciel_main_window.cpp:39
163 msgid "Group"
164 msgstr "그룹"
165
166 #: src/eiciel_main_window.cpp:40
167 #, fuzzy
168 msgid "Default participant"
169 msgstr "참가자 이름"
170
171 #: src/eiciel_main_window.cpp:45
172 #, fuzzy
173 msgid "Add participant to ACL"
174 msgstr "참가자 목록"
175
176 #: src/eiciel_main_window.cpp:46
177 msgid "Advanced features"
178 msgstr "고급 기능"
179
180 #: src/eiciel_main_window.cpp:48
181 msgid "Name of participant"
182 msgstr "참가자 이름"
183
184 #: src/eiciel_main_window.cpp:50
185 msgid "Also show system participants"
186 msgstr "시스템 참가자도 표시"
187
188 #: src/eiciel_main_window.cpp:112
231 msgstr "기본 참가자 편집"
232
233 #: src/eiciel_acl_list.cpp:79
189234 msgid "Entry"
190235 msgstr "항목"
191236
192 #: src/eiciel_main_window.cpp:115
237 #: src/eiciel_acl_list.cpp:82
193238 msgid "Read"
194239 msgstr "읽기"
195240
196 #: src/eiciel_main_window.cpp:126
241 #: src/eiciel_acl_list.cpp:95
197242 msgid "Write"
198243 msgstr "쓰기"
199244
200 #: src/eiciel_main_window.cpp:136
201 #, fuzzy
245 #: src/eiciel_acl_list.cpp:107
202246 msgid "Execute"
203247 msgstr "실행"
204248
205 #: src/eiciel_main_window.cpp:152 src/eiciel_main_window.cpp:162
206 #: src/eiciel_main_window.cpp:590
207 msgid "None"
208 msgstr "없음"
209
210 #: src/eiciel_main_window.cpp:154
211 msgid "Only files"
212 msgstr "파일만"
213
214 #: src/eiciel_main_window.cpp:156
215 msgid "Only directories"
216 msgstr "디렉토리만"
217
218 #: src/eiciel_main_window.cpp:158
219 msgid "Both files and directories"
220 msgstr "파일과 디렉토리 모두"
221
222 #: src/eiciel_main_window.cpp:166
223 msgid "Recursion"
224 msgstr "재귀"
225
226 #: src/eiciel_main_window.cpp:201
227 #, fuzzy
228 msgid "Filter participants"
229 msgstr "참가자 이름"
230
231 #: src/eiciel_main_window.cpp:222
232 msgid "Participant"
233 msgstr "참가자"
234
235 #: src/eiciel_main_window.cpp:912
236 msgid "Participant not found"
237 msgstr "참가자를 찾을 수 없습니다"
249 #~ msgid "None"
250 #~ msgstr "없음"
251
252 #~ msgid "Only files"
253 #~ msgstr "파일만"
254
255 #~ msgid "Only directories"
256 #~ msgstr "디렉토리만"
257
258 #~ msgid "Both files and directories"
259 #~ msgstr "파일과 디렉토리 모두"
260
261 #~ msgid "Recursion"
262 #~ msgstr "재귀"
238263
239264 #~ msgid "Default"
240265 #~ msgstr "기본값"
Binary diff not shown
+186
-159
po/nl.po less more
44 msgstr ""
55 "Project-Id-Version: eiciel\n"
66 "Report-Msgid-Bugs-To: rofirrim@gmail.com\n"
7 "POT-Creation-Date: 2018-01-16 19:46+0000\n"
8 "PO-Revision-Date: 2015-11-04 12:16+0200\n"
7 "POT-Creation-Date: 2020-08-24 15:11+0200\n"
8 "PO-Revision-Date: 2019-06-16 19:10+0000\n"
99 "Last-Translator: Freek de Kruijf <freek@opensuse.org>\n"
10 "Language-Team: Dutch <http://10n.opensuse.org/projects/eiciel/master/nl/>\n"
10 "Language-Team: Dutch <https://l10n.opensuse.org/projects/eiciel/master/nl/>\n"
1111 "Language: nl\n"
1212 "MIME-Version: 1.0\n"
1313 "Content-Type: text/plain; charset=UTF-8\n"
1414 "Content-Transfer-Encoding: 8bit\n"
1515 "Plural-Forms: nplurals=2; plural=n != 1;\n"
16 "X-Generator: Weblate 2.3\n"
16 "X-Generator: Weblate 3.6.1\n"
17
18 #: src/eiciel_xattr_window.cpp:40
19 msgid "Name"
20 msgstr "Naam"
21
22 #: src/eiciel_xattr_window.cpp:55
23 msgid "Value"
24 msgstr "Waarde"
25
26 #: src/eiciel_xattr_window.cpp:163
27 msgid "Could not rename attribute name: "
28 msgstr "Kan de naam van het attribuut niet wijzigen: "
29
30 #: src/eiciel_xattr_window.cpp:190
31 msgid "Could not change attribute value: "
32 msgstr "Kan de waarde van het attribuut niet wijzigen: "
33
34 #: src/eiciel_xattr_window.cpp:217
35 msgid "Could not remove attribute: "
36 msgstr "Kan het attribuut niet verwijderen: "
37
38 #: src/eiciel_xattr_window.cpp:242 src/eiciel_xattr_window.cpp:249
39 msgid "New attribute"
40 msgstr "Nieuw attribuut"
41
42 #: src/eiciel_xattr_window.cpp:275
43 msgid "New value"
44 msgstr "NIEUWE WAARDE"
45
46 #: src/eiciel_xattr_window.cpp:287
47 msgid "Could not add attribute: "
48 msgstr "Kan het attribuut niet toevoegen: "
49
50 #: src/eiciel_main_window_controller.cpp:118 src/eiciel_acl_list.cpp:366
51 msgid "Mask"
52 msgstr "Masker"
53
54 #: src/eiciel_main_window_controller.cpp:125
55 msgid "Other"
56 msgstr "Overig"
57
58 #: src/eiciel_main_window_controller.cpp:182 src/eiciel_acl_list.cpp:399
59 msgid "Default Mask"
60 msgstr "Standaardmasker"
61
62 #: src/eiciel_main_window_controller.cpp:190 src/eiciel_acl_list.cpp:393
63 msgid "Default Other"
64 msgstr "Standaard overige"
65
66 #: src/eiciel_main_window_controller.cpp:267
67 msgid "Could not add ACL entry: "
68 msgstr "Kan item niet toevoegen aan toegangscontrolelijst: "
69
70 #: src/eiciel_main_window_controller.cpp:314
71 msgid "Could not remove ACL entry: "
72 msgstr "Kan item niet verwijderen uit toegangscontrolelijst: "
73
74 #: src/eiciel_main_window_controller.cpp:393
75 msgid "Could not modify ACL entry: "
76 msgstr "Kan item in toegangscontrolelijst niet wijzigen: "
77
78 #: src/eiciel_main_window_controller.cpp:548
79 #: src/eiciel_enclosed_editor_window_controller.cpp:33
80 msgid "Are you sure you want to remove all ACL default entries?"
81 msgstr "Wilt u alle standaarditems uit de toegangscontrolelijst verwijderen?"
1782
1883 #: src/eiciel_container.cpp:26
1984 msgid "<b>File name</b>"
2085 msgstr "<b>Bestandsnaam</b>"
2186
22 #: src/eiciel_container.cpp:27 src/eiciel_container.cpp:183
87 #: src/eiciel_container.cpp:27 src/eiciel_container.cpp:168
2388 msgid "No file opened"
2489 msgstr "Geen bestand geopend"
2590
26 #: src/eiciel_container.cpp:30 src/eiciel_container.cpp:192
27 #: src/eiciel_container.cpp:194
91 #: src/eiciel_container.cpp:30 src/eiciel_container.cpp:177
92 #: src/eiciel_container.cpp:180
2893 msgid "About..."
2994 msgstr "Info..."
3095
31 #: src/eiciel_container.cpp:48 src/eiciel_nautilus_page.cpp:136
96 #: src/eiciel_container.cpp:47 src/eiciel_nautilus_page.cpp:129
3297 msgid "Access Control List"
3398 msgstr "Toegangscontrolelijst"
3499
35 #: src/eiciel_container.cpp:56 src/eiciel_nautilus_page.cpp:156
100 #: src/eiciel_container.cpp:56 src/eiciel_nautilus_page.cpp:145
36101 msgid "Extended user attributes"
37102 msgstr "Uitgebreide gebruikersattributen"
38103
39 #: src/eiciel_container.cpp:100
104 #: src/eiciel_container.cpp:97
40105 #, c-format
41106 msgid "Could not show the help file: %s"
42107 msgstr "Kan Help-bestand niet weergeven: %s"
43108
44 #: src/eiciel_container.cpp:123
109 #: src/eiciel_container.cpp:120
45110 msgid "Choose a file or a directory"
46111 msgstr "Een bestand of een directory kiezen"
47112
48 #: src/eiciel_container.cpp:145
113 #: src/eiciel_container.cpp:137
49114 msgid "Could not open the file \""
50115 msgstr "Kan het bestand niet openen \""
51116
52 #: src/acl_manager.cpp:50 src/xattr_manager.cpp:33
117 #: src/eiciel_standalone.cpp:46
118 msgid "Print version information"
119 msgstr "Versiegegevens afdrukkken"
120
121 #: src/eiciel_standalone.cpp:48
122 msgid "Access control list editor"
123 msgstr "Editor voor toegangsbeheerlijst"
124
125 #: src/eiciel_enclosed_editor_window.cpp:24
126 msgid "Edit ACLs for enclosed files"
127 msgstr "ACL's voor ingesloten bestanden bewerken"
128
129 #: src/eiciel_enclosed_editor_window.cpp:25
130 msgid "_Cancel"
131 msgstr "_Annuleren"
132
133 #: src/eiciel_enclosed_editor_window.cpp:26
134 msgid "_Apply"
135 msgstr "Toep_assen"
136
137 #: src/eiciel_enclosed_editor_window.cpp:30
138 msgid "<b>Participants in ACL for enclosed directories</b>"
139 msgstr "<b>Deelnemers in ACL voor ingesloten mappen</b>"
140
141 #: src/eiciel_enclosed_editor_window.cpp:33
142 msgid "<b>Participants in ACL for enclosed files</b>"
143 msgstr "<b>Deelnemers in ACL voor ingesloten bestanden</b>"
144
145 #: src/eiciel_enclosed_editor_window.cpp:36 src/eiciel_main_window.cpp:32
146 msgid "<b>Available participants</b>"
147 msgstr "<b>Beschikbare deelnemers</b>"
148
149 #: src/acl_manager.cpp:46 src/xattr_manager.cpp:32
53150 msgid "Only regular files or directories supported"
54151 msgstr "Alleen normale bestanden of directory's worden ondersteund"
55152
56 #: src/acl_manager.cpp:542
153 #: src/acl_manager.cpp:463
57154 msgid "Textual representation of the ACL is wrong"
58155 msgstr "Tekstweergave van de toegangscontrolelijst is onjuist"
59156
60 #: src/acl_manager.cpp:564
157 #: src/acl_manager.cpp:484
61158 msgid "Default textual representation of the ACL is wrong"
62159 msgstr "Standaardtekstweergave van de toegangscontrolelijst is onjuist"
63160
64 #: src/eiciel_xattr_window.cpp:39
65 msgid "Name"
66 msgstr "Naam"
67
68 #: src/eiciel_xattr_window.cpp:55
69 msgid "Value"
70 msgstr "Waarde"
71
72 #: src/eiciel_xattr_window.cpp:176
73 msgid "Could not rename attribute name: "
74 msgstr "Kan de naam van het attribuut niet wijzigen: "
75
76 #: src/eiciel_xattr_window.cpp:211
77 msgid "Could not change attribute value: "
78 msgstr "Kan de waarde van het attribuut niet wijzigen: "
79
80 #: src/eiciel_xattr_window.cpp:248
81 msgid "Could not remove attribute: "
82 msgstr "Kan het attribuut niet verwijderen: "
83
84 #: src/eiciel_xattr_window.cpp:280 src/eiciel_xattr_window.cpp:289
85 msgid "New attribute"
86 msgstr "Nieuw attribuut"
87
88 #: src/eiciel_xattr_window.cpp:318
89 msgid "New value"
90 msgstr "NIEUWE WAARDE"
91
92 #: src/eiciel_xattr_window.cpp:333
93 msgid "Could not add attribute: "
94 msgstr "Kan het attribuut niet toevoegen: "
95
96 #: src/eiciel_standalone.cpp:48
97 msgid "Print version information"
98 msgstr "Versiegegevens afdrukkken"
99
100 #: src/eiciel_standalone.cpp:50
101 msgid "Access control list editor"
102 msgstr "Editor voor toegangsbeheerlijst"
103
104 #: src/eiciel_main_controller.cpp:172
105 msgid "Mask"
106 msgstr "Masker"
107
108 #: src/eiciel_main_controller.cpp:177
109 msgid "Other"
110 msgstr "Overig"
111
112 #: src/eiciel_main_controller.cpp:250
113 msgid "Default Mask"
114 msgstr "Standaardmasker"
115
116 #: src/eiciel_main_controller.cpp:258
117 msgid "Default Other"
118 msgstr "Standaard overige"
119
120 #: src/eiciel_main_controller.cpp:328
121 msgid "Could not add ACL entry: "
122 msgstr "Kan item niet toevoegen aan toegangscontrolelijst: "
123
124 #: src/eiciel_main_controller.cpp:390
125 msgid "Could not remove ACL entry: "
126 msgstr "Kan item niet verwijderen uit toegangscontrolelijst: "
127
128 #: src/eiciel_main_controller.cpp:487
129 msgid "Could not modify ACL entry: "
130 msgstr "Kan item in toegangscontrolelijst niet wijzigen: "
131
132 #: src/eiciel_main_controller.cpp:516
133 msgid "Are you sure you want to remove all ACL default entries?"
134 msgstr "Wilt u alle standaarditems uit de toegangscontrolelijst verwijderen?"
135
136 #: src/eiciel_main_window.cpp:26
161 #: src/eiciel_main_window.cpp:30
137162 msgid "<b>Current participants in ACL</b>"
138163 msgstr "<b>Huidige deelnemers aan toegangscontrolelijst</b>"
139164
140 #: src/eiciel_main_window.cpp:32
165 #: src/eiciel_main_window.cpp:34
166 msgid "Edit ACLs for enclosed files..."
167 msgstr "ACL's voor ingesloten bestanden bewerken..."
168
169 #: src/eiciel_participant_list.cpp:30
170 msgid "User"
171 msgstr "Gebruiker"
172
173 #: src/eiciel_participant_list.cpp:31
174 msgid "Group"
175 msgstr "Groep"
176
177 #: src/eiciel_participant_list.cpp:32
178 msgid "Default participant"
179 msgstr "Standaard deelnemer"
180
181 #: src/eiciel_participant_list.cpp:37
182 msgid "Add participant to ACL"
183 msgstr "Deelnemer toevoegen aan toegangscontrolelijst"
184
185 #: src/eiciel_participant_list.cpp:38
186 msgid "Add participant to directory ACL"
187 msgstr "Deelnemer toevoegen aan ACL van map"
188
189 #: src/eiciel_participant_list.cpp:39
190 msgid "Add participant to file ACL"
191 msgstr "Deelnemer toevoegen aan ACL van bestand"
192
193 #: src/eiciel_participant_list.cpp:40
194 msgid "Advanced features"
195 msgstr "Geavanceerde functies"
196
197 #: src/eiciel_participant_list.cpp:42
198 msgid "Name of participant"
199 msgstr "Naam van deelnemer"
200
201 #: src/eiciel_participant_list.cpp:44
202 msgid "Also show system participants"
203 msgstr "Ook systeemdeelnemers weergeven"
204
205 #: src/eiciel_participant_list.cpp:80
206 msgid "Filter participants"
207 msgstr "Deelnemers filteren"
208
209 #: src/eiciel_participant_list.cpp:105
210 msgid "Participant"
211 msgstr "Deelnemer"
212
213 #: src/eiciel_participant_list.cpp:422
214 msgid "Participant not found"
215 msgstr "Deelnemer niet gevonden"
216
217 #: src/eiciel_acl_list.cpp:33
141218 msgid "There are ineffective permissions"
142219 msgstr "Er zijn niet-effectieve toestemmingen"
143220
144 #: src/eiciel_main_window.cpp:33
221 #: src/eiciel_acl_list.cpp:35
145222 msgid "Remove participant from ACL"
146223 msgstr "Deelnemer verwijderen uit toegangscontrolelijst"
147224
148 #: src/eiciel_main_window.cpp:34
225 #: src/eiciel_acl_list.cpp:36
149226 msgid "Edit default participants"
150227 msgstr "Standaard deelnemers bewerken"
151228
152 #: src/eiciel_main_window.cpp:35
153 msgid "<b>Available participants</b>"
154 msgstr "<b>Beschikbare deelnemers</b>"
155
156 #: src/eiciel_main_window.cpp:38
157 msgid "User"
158 msgstr "Gebruiker"
159
160 #: src/eiciel_main_window.cpp:39
161 msgid "Group"
162 msgstr "Groep"
163
164 #: src/eiciel_main_window.cpp:40
165 msgid "Default participant"
166 msgstr "Standaard deelnemer"
167
168 #: src/eiciel_main_window.cpp:45
169 msgid "Add participant to ACL"
170 msgstr "Deelnemer toevoegen aan toegangscontrolelijst"
171
172 #: src/eiciel_main_window.cpp:46
173 msgid "Advanced features"
174 msgstr "Geavanceerde functies"
175
176 #: src/eiciel_main_window.cpp:48
177 msgid "Name of participant"
178 msgstr "Naam van deelnemer"
179
180 #: src/eiciel_main_window.cpp:50
181 msgid "Also show system participants"
182 msgstr "Ook systeemdeelnemers weergeven"
183
184 #: src/eiciel_main_window.cpp:112
229 #: src/eiciel_acl_list.cpp:79
185230 msgid "Entry"
186231 msgstr "Item"
187232
188 #: src/eiciel_main_window.cpp:115
233 #: src/eiciel_acl_list.cpp:82
189234 msgid "Read"
190235 msgstr "Lezen"
191236
192 #: src/eiciel_main_window.cpp:126
237 #: src/eiciel_acl_list.cpp:95
193238 msgid "Write"
194239 msgstr "Schrijven"
195240
196 #: src/eiciel_main_window.cpp:136
241 #: src/eiciel_acl_list.cpp:107
197242 msgid "Execute"
198243 msgstr "Uitvoeren"
199244
200 #: src/eiciel_main_window.cpp:152 src/eiciel_main_window.cpp:162
201 #: src/eiciel_main_window.cpp:590
202 msgid "None"
203 msgstr "Geen"
204
205 #: src/eiciel_main_window.cpp:154
206 msgid "Only files"
207 msgstr "Alleen bestanden"
208
209 #: src/eiciel_main_window.cpp:156
210 msgid "Only directories"
211 msgstr "Alleen directory's"
212
213 #: src/eiciel_main_window.cpp:158
214 msgid "Both files and directories"
215 msgstr "Zowel bestanden als directory's"
216
217 #: src/eiciel_main_window.cpp:166
218 msgid "Recursion"
219 msgstr "Recursie"
220
221 #: src/eiciel_main_window.cpp:201
222 msgid "Filter participants"
223 msgstr "Deelnemers filteren"
224
225 #: src/eiciel_main_window.cpp:222
226 msgid "Participant"
227 msgstr "Deelnemer"
228
229 #: src/eiciel_main_window.cpp:912
230 msgid "Participant not found"
231 msgstr "Deelnemer niet gevonden"
245 #~ msgid "None"
246 #~ msgstr "Geen"
247
248 #~ msgid "Only files"
249 #~ msgstr "Alleen bestanden"
250
251 #~ msgid "Only directories"
252 #~ msgstr "Alleen directory's"
253
254 #~ msgid "Both files and directories"
255 #~ msgstr "Zowel bestanden als directory's"
256
257 #~ msgid "Recursion"
258 #~ msgstr "Recursie"
232259
233260 #~ msgid "Default"
234261 #~ msgstr "Standaard"
Binary diff not shown
+169
-157
po/nn.po less more
66 msgstr ""
77 "Project-Id-Version: eiciel 0.9.11\n"
88 "Report-Msgid-Bugs-To: rofirrim@gmail.com\n"
9 "POT-Creation-Date: 2018-01-16 19:46+0000\n"
9 "POT-Creation-Date: 2020-08-24 15:11+0200\n"
1010 "PO-Revision-Date: 2015-09-11 16:48+0200\n"
1111 "Last-Translator: Automatically generated\n"
1212 "Language-Team: none\n"
1616 "Content-Transfer-Encoding: 8bit\n"
1717 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
1818
19 #: src/eiciel_xattr_window.cpp:40
20 msgid "Name"
21 msgstr ""
22
23 #: src/eiciel_xattr_window.cpp:55
24 msgid "Value"
25 msgstr ""
26
27 #: src/eiciel_xattr_window.cpp:163
28 msgid "Could not rename attribute name: "
29 msgstr ""
30
31 #: src/eiciel_xattr_window.cpp:190
32 msgid "Could not change attribute value: "
33 msgstr ""
34
35 #: src/eiciel_xattr_window.cpp:217
36 msgid "Could not remove attribute: "
37 msgstr ""
38
39 #: src/eiciel_xattr_window.cpp:242 src/eiciel_xattr_window.cpp:249
40 msgid "New attribute"
41 msgstr ""
42
43 #: src/eiciel_xattr_window.cpp:275
44 msgid "New value"
45 msgstr ""
46
47 #: src/eiciel_xattr_window.cpp:287
48 msgid "Could not add attribute: "
49 msgstr ""
50
51 #: src/eiciel_main_window_controller.cpp:118 src/eiciel_acl_list.cpp:366
52 msgid "Mask"
53 msgstr ""
54
55 #: src/eiciel_main_window_controller.cpp:125
56 msgid "Other"
57 msgstr ""
58
59 #: src/eiciel_main_window_controller.cpp:182 src/eiciel_acl_list.cpp:399
60 msgid "Default Mask"
61 msgstr ""
62
63 #: src/eiciel_main_window_controller.cpp:190 src/eiciel_acl_list.cpp:393
64 msgid "Default Other"
65 msgstr ""
66
67 #: src/eiciel_main_window_controller.cpp:267
68 msgid "Could not add ACL entry: "
69 msgstr ""
70
71 #: src/eiciel_main_window_controller.cpp:314
72 msgid "Could not remove ACL entry: "
73 msgstr ""
74
75 #: src/eiciel_main_window_controller.cpp:393
76 msgid "Could not modify ACL entry: "
77 msgstr ""
78
79 #: src/eiciel_main_window_controller.cpp:548
80 #: src/eiciel_enclosed_editor_window_controller.cpp:33
81 msgid "Are you sure you want to remove all ACL default entries?"
82 msgstr ""
83
1984 #: src/eiciel_container.cpp:26
2085 msgid "<b>File name</b>"
2186 msgstr ""
2287
23 #: src/eiciel_container.cpp:27 src/eiciel_container.cpp:183
88 #: src/eiciel_container.cpp:27 src/eiciel_container.cpp:168
2489 msgid "No file opened"
2590 msgstr ""
2691
27 #: src/eiciel_container.cpp:30 src/eiciel_container.cpp:192
28 #: src/eiciel_container.cpp:194
92 #: src/eiciel_container.cpp:30 src/eiciel_container.cpp:177
93 #: src/eiciel_container.cpp:180
2994 msgid "About..."
3095 msgstr ""
3196
32 #: src/eiciel_container.cpp:48 src/eiciel_nautilus_page.cpp:136
97 #: src/eiciel_container.cpp:47 src/eiciel_nautilus_page.cpp:129
3398 msgid "Access Control List"
3499 msgstr ""
35100
36 #: src/eiciel_container.cpp:56 src/eiciel_nautilus_page.cpp:156
101 #: src/eiciel_container.cpp:56 src/eiciel_nautilus_page.cpp:145
37102 msgid "Extended user attributes"
38103 msgstr ""
39104
40 #: src/eiciel_container.cpp:100
105 #: src/eiciel_container.cpp:97
41106 #, c-format
42107 msgid "Could not show the help file: %s"
43108 msgstr ""
44109
45 #: src/eiciel_container.cpp:123
110 #: src/eiciel_container.cpp:120
46111 msgid "Choose a file or a directory"
47112 msgstr ""
48113
49 #: src/eiciel_container.cpp:145
114 #: src/eiciel_container.cpp:137
50115 msgid "Could not open the file \""
51116 msgstr ""
52117
53 #: src/acl_manager.cpp:50 src/xattr_manager.cpp:33
118 #: src/eiciel_standalone.cpp:46
119 msgid "Print version information"
120 msgstr ""
121
122 #: src/eiciel_standalone.cpp:48
123 msgid "Access control list editor"
124 msgstr ""
125
126 #: src/eiciel_enclosed_editor_window.cpp:24
127 msgid "Edit ACLs for enclosed files"
128 msgstr ""
129
130 #: src/eiciel_enclosed_editor_window.cpp:25
131 msgid "_Cancel"
132 msgstr ""
133
134 #: src/eiciel_enclosed_editor_window.cpp:26
135 msgid "_Apply"
136 msgstr ""
137
138 #: src/eiciel_enclosed_editor_window.cpp:30
139 msgid "<b>Participants in ACL for enclosed directories</b>"
140 msgstr ""
141
142 #: src/eiciel_enclosed_editor_window.cpp:33
143 msgid "<b>Participants in ACL for enclosed files</b>"
144 msgstr ""
145
146 #: src/eiciel_enclosed_editor_window.cpp:36 src/eiciel_main_window.cpp:32
147 msgid "<b>Available participants</b>"
148 msgstr ""
149
150 #: src/acl_manager.cpp:46 src/xattr_manager.cpp:32
54151 msgid "Only regular files or directories supported"
55152 msgstr ""
56153
57 #: src/acl_manager.cpp:542
154 #: src/acl_manager.cpp:463
58155 msgid "Textual representation of the ACL is wrong"
59156 msgstr ""
60157
61 #: src/acl_manager.cpp:564
158 #: src/acl_manager.cpp:484
62159 msgid "Default textual representation of the ACL is wrong"
63160 msgstr ""
64161
65 #: src/eiciel_xattr_window.cpp:39
66 msgid "Name"
67 msgstr ""
68
69 #: src/eiciel_xattr_window.cpp:55
70 msgid "Value"
71 msgstr ""
72
73 #: src/eiciel_xattr_window.cpp:176
74 msgid "Could not rename attribute name: "
75 msgstr ""
76
77 #: src/eiciel_xattr_window.cpp:211
78 msgid "Could not change attribute value: "
79 msgstr ""
80
81 #: src/eiciel_xattr_window.cpp:248
82 msgid "Could not remove attribute: "
83 msgstr ""
84
85 #: src/eiciel_xattr_window.cpp:280 src/eiciel_xattr_window.cpp:289
86 msgid "New attribute"
87 msgstr ""
88
89 #: src/eiciel_xattr_window.cpp:318
90 msgid "New value"
91 msgstr ""
92
93 #: src/eiciel_xattr_window.cpp:333
94 msgid "Could not add attribute: "
95 msgstr ""
96
97 #: src/eiciel_standalone.cpp:48
98 msgid "Print version information"
99 msgstr ""
100
101 #: src/eiciel_standalone.cpp:50
102 msgid "Access control list editor"
103 msgstr ""
104
105 #: src/eiciel_main_controller.cpp:172
106 msgid "Mask"
107 msgstr ""
108
109 #: src/eiciel_main_controller.cpp:177
110 msgid "Other"
111 msgstr ""
112
113 #: src/eiciel_main_controller.cpp:250
114 msgid "Default Mask"
115 msgstr ""
116
117 #: src/eiciel_main_controller.cpp:258
118 msgid "Default Other"
119 msgstr ""
120
121 #: src/eiciel_main_controller.cpp:328
122 msgid "Could not add ACL entry: "
123 msgstr ""
124
125 #: src/eiciel_main_controller.cpp:390
126 msgid "Could not remove ACL entry: "
127 msgstr ""
128
129 #: src/eiciel_main_controller.cpp:487
130 msgid "Could not modify ACL entry: "
131 msgstr ""
132
133 #: src/eiciel_main_controller.cpp:516
134 msgid "Are you sure you want to remove all ACL default entries?"
135 msgstr ""
136
137 #: src/eiciel_main_window.cpp:26
162 #: src/eiciel_main_window.cpp:30
138163 msgid "<b>Current participants in ACL</b>"
139164 msgstr ""
140165
141 #: src/eiciel_main_window.cpp:32
166 #: src/eiciel_main_window.cpp:34
167 msgid "Edit ACLs for enclosed files..."
168 msgstr ""
169
170 #: src/eiciel_participant_list.cpp:30
171 msgid "User"
172 msgstr ""
173
174 #: src/eiciel_participant_list.cpp:31
175 msgid "Group"
176 msgstr ""
177
178 #: src/eiciel_participant_list.cpp:32
179 msgid "Default participant"
180 msgstr ""
181
182 #: src/eiciel_participant_list.cpp:37
183 msgid "Add participant to ACL"
184 msgstr ""
185
186 #: src/eiciel_participant_list.cpp:38
187 msgid "Add participant to directory ACL"
188 msgstr ""
189
190 #: src/eiciel_participant_list.cpp:39
191 msgid "Add participant to file ACL"
192 msgstr ""
193
194 #: src/eiciel_participant_list.cpp:40
195 msgid "Advanced features"
196 msgstr ""
197
198 #: src/eiciel_participant_list.cpp:42
199 msgid "Name of participant"
200 msgstr ""
201
202 #: src/eiciel_participant_list.cpp:44
203 msgid "Also show system participants"
204 msgstr ""
205
206 #: src/eiciel_participant_list.cpp:80
207 msgid "Filter participants"
208 msgstr ""
209
210 #: src/eiciel_participant_list.cpp:105
211 msgid "Participant"
212 msgstr ""
213
214 #: src/eiciel_participant_list.cpp:422
215 msgid "Participant not found"
216 msgstr ""
217
218 #: src/eiciel_acl_list.cpp:33
142219 msgid "There are ineffective permissions"
143220 msgstr ""
144221
145 #: src/eiciel_main_window.cpp:33
222 #: src/eiciel_acl_list.cpp:35
146223 msgid "Remove participant from ACL"
147224 msgstr ""
148225
149 #: src/eiciel_main_window.cpp:34
226 #: src/eiciel_acl_list.cpp:36
150227 msgid "Edit default participants"
151228 msgstr ""
152229
153 #: src/eiciel_main_window.cpp:35
154 msgid "<b>Available participants</b>"
155 msgstr ""
156
157 #: src/eiciel_main_window.cpp:38
158 msgid "User"
159 msgstr ""
160
161 #: src/eiciel_main_window.cpp:39
162 msgid "Group"
163 msgstr ""
164
165 #: src/eiciel_main_window.cpp:40
166 msgid "Default participant"
167 msgstr ""
168
169 #: src/eiciel_main_window.cpp:45
170 msgid "Add participant to ACL"
171 msgstr ""
172
173 #: src/eiciel_main_window.cpp:46
174 msgid "Advanced features"
175 msgstr ""
176
177 #: src/eiciel_main_window.cpp:48
178 msgid "Name of participant"
179 msgstr ""
180
181 #: src/eiciel_main_window.cpp:50
182 msgid "Also show system participants"
183 msgstr ""
184
185 #: src/eiciel_main_window.cpp:112
230 #: src/eiciel_acl_list.cpp:79
186231 msgid "Entry"
187232 msgstr ""
188233
189 #: src/eiciel_main_window.cpp:115
234 #: src/eiciel_acl_list.cpp:82
190235 msgid "Read"
191236 msgstr ""
192237
193 #: src/eiciel_main_window.cpp:126
238 #: src/eiciel_acl_list.cpp:95
194239 msgid "Write"
195240 msgstr ""
196241
197 #: src/eiciel_main_window.cpp:136
242 #: src/eiciel_acl_list.cpp:107
198243 msgid "Execute"
199244 msgstr ""
200
201 #: src/eiciel_main_window.cpp:152 src/eiciel_main_window.cpp:162
202 #: src/eiciel_main_window.cpp:590
203 msgid "None"
204 msgstr ""
205
206 #: src/eiciel_main_window.cpp:154
207 msgid "Only files"
208 msgstr ""
209
210 #: src/eiciel_main_window.cpp:156
211 msgid "Only directories"
212 msgstr ""
213
214 #: src/eiciel_main_window.cpp:158
215 msgid "Both files and directories"
216 msgstr ""
217
218 #: src/eiciel_main_window.cpp:166
219 msgid "Recursion"
220 msgstr ""
221
222 #: src/eiciel_main_window.cpp:201
223 msgid "Filter participants"
224 msgstr ""
225
226 #: src/eiciel_main_window.cpp:222
227 msgid "Participant"
228 msgstr ""
229
230 #: src/eiciel_main_window.cpp:912
231 msgid "Participant not found"
232 msgstr ""
Binary diff not shown
+205
-175
po/pl.po less more
44 msgstr ""
55 "Project-Id-Version: eiciel\n"
66 "Report-Msgid-Bugs-To: rofirrim@gmail.com\n"
7 "POT-Creation-Date: 2018-01-16 19:46+0000\n"
8 "PO-Revision-Date: 2016-12-23 16:44+0000\n"
9 "Last-Translator: Kamil Stańczyk <suszaraa@gmail.com>\n"
7 "POT-Creation-Date: 2020-08-24 15:11+0200\n"
8 "PO-Revision-Date: 2018-01-25 12:04+0000\n"
9 "Last-Translator: Ewelina Michalowska <ewelina.michalowska@stgambit.com>\n"
1010 "Language-Team: Polish <https://l10n.opensuse.org/projects/eiciel/master/pl/"
1111 ">\n"
1212 "Language: pl\n"
1515 "Content-Transfer-Encoding: 8bit\n"
1616 "Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
1717 "|| n%100>=20) ? 1 : 2;\n"
18 "X-Generator: Weblate 2.6\n"
18 "X-Generator: Weblate 2.18\n"
19
20 #: src/eiciel_xattr_window.cpp:40
21 msgid "Name"
22 msgstr "Nazwa"
23
24 #: src/eiciel_xattr_window.cpp:55
25 msgid "Value"
26 msgstr "Wartość"
27
28 #: src/eiciel_xattr_window.cpp:163
29 msgid "Could not rename attribute name: "
30 msgstr "Nie można zmienić nazwy atrybutu: "
31
32 #: src/eiciel_xattr_window.cpp:190
33 msgid "Could not change attribute value: "
34 msgstr "Nie można zmienić wartości atrybutu: "
35
36 #: src/eiciel_xattr_window.cpp:217
37 msgid "Could not remove attribute: "
38 msgstr "Nie można usunąć atrybutu: "
39
40 #: src/eiciel_xattr_window.cpp:242 src/eiciel_xattr_window.cpp:249
41 msgid "New attribute"
42 msgstr "Nowy atrybut"
43
44 #: src/eiciel_xattr_window.cpp:275
45 msgid "New value"
46 msgstr "Nowa wartość"
47
48 #: src/eiciel_xattr_window.cpp:287
49 msgid "Could not add attribute: "
50 msgstr "Nie można dodać atrybutu: "
51
52 #: src/eiciel_main_window_controller.cpp:118 src/eiciel_acl_list.cpp:366
53 msgid "Mask"
54 msgstr "Maska"
55
56 #: src/eiciel_main_window_controller.cpp:125
57 msgid "Other"
58 msgstr "Inne"
59
60 #: src/eiciel_main_window_controller.cpp:182 src/eiciel_acl_list.cpp:399
61 msgid "Default Mask"
62 msgstr "Domyślna maska"
63
64 #: src/eiciel_main_window_controller.cpp:190 src/eiciel_acl_list.cpp:393
65 msgid "Default Other"
66 msgstr "Inne domyślne"
67
68 #: src/eiciel_main_window_controller.cpp:267
69 msgid "Could not add ACL entry: "
70 msgstr "Nie można dodać wpisu do listy ACL: "
71
72 #: src/eiciel_main_window_controller.cpp:314
73 msgid "Could not remove ACL entry: "
74 msgstr "Nie można usunąć wpisu z listy ACL: "
75
76 #: src/eiciel_main_window_controller.cpp:393
77 msgid "Could not modify ACL entry: "
78 msgstr "Nie można zmienić wpisu na liście ACL: "
79
80 #: src/eiciel_main_window_controller.cpp:548
81 #: src/eiciel_enclosed_editor_window_controller.cpp:33
82 msgid "Are you sure you want to remove all ACL default entries?"
83 msgstr "Czy na pewno chcesz usunąć wszystkie domyślne wpisy na liście ACL?"
1984
2085 #: src/eiciel_container.cpp:26
2186 msgid "<b>File name</b>"
2287 msgstr "<b>Nazwa pliku</b>"
2388
24 #: src/eiciel_container.cpp:27 src/eiciel_container.cpp:183
89 #: src/eiciel_container.cpp:27 src/eiciel_container.cpp:168
2590 msgid "No file opened"
2691 msgstr "Brak otwartych plików"
2792
28 #: src/eiciel_container.cpp:30 src/eiciel_container.cpp:192
29 #: src/eiciel_container.cpp:194
93 #: src/eiciel_container.cpp:30 src/eiciel_container.cpp:177
94 #: src/eiciel_container.cpp:180
3095 msgid "About..."
3196 msgstr "Informacje..."
3297
33 #: src/eiciel_container.cpp:48 src/eiciel_nautilus_page.cpp:136
98 #: src/eiciel_container.cpp:47 src/eiciel_nautilus_page.cpp:129
3499 msgid "Access Control List"
35100 msgstr "Lista kontroli dostępu"
36101
37 #: src/eiciel_container.cpp:56 src/eiciel_nautilus_page.cpp:156
102 #: src/eiciel_container.cpp:56 src/eiciel_nautilus_page.cpp:145
38103 msgid "Extended user attributes"
39 msgstr "Zaawansowane atrybuty użytkownika"
40
41 #: src/eiciel_container.cpp:100
104 msgstr "Atrybuty rozszerzone użytkowników"
105
106 #: src/eiciel_container.cpp:97
42107 #, c-format
43108 msgid "Could not show the help file: %s"
44109 msgstr "Nie można wyświetlić pliku pomocy: %s"
45110
46 #: src/eiciel_container.cpp:123
111 #: src/eiciel_container.cpp:120
47112 msgid "Choose a file or a directory"
48 msgstr "Proszę wybrać plik lub katalog"
49
50 #: src/eiciel_container.cpp:145
113 msgstr "Wybierz plik lub katalog"
114
115 #: src/eiciel_container.cpp:137
51116 msgid "Could not open the file \""
52117 msgstr "Nie można otworzyć pliku \""
53118
54 #: src/acl_manager.cpp:50 src/xattr_manager.cpp:33
119 #: src/eiciel_standalone.cpp:46
120 msgid "Print version information"
121 msgstr "Wydrukuj informacje o wersji"
122
123 #: src/eiciel_standalone.cpp:48
124 msgid "Access control list editor"
125 msgstr "Edytor listy kontroli dostępu"
126
127 #: src/eiciel_enclosed_editor_window.cpp:24
128 msgid "Edit ACLs for enclosed files"
129 msgstr ""
130
131 #: src/eiciel_enclosed_editor_window.cpp:25
132 msgid "_Cancel"
133 msgstr ""
134
135 #: src/eiciel_enclosed_editor_window.cpp:26
136 msgid "_Apply"
137 msgstr ""
138
139 #: src/eiciel_enclosed_editor_window.cpp:30
140 msgid "<b>Participants in ACL for enclosed directories</b>"
141 msgstr ""
142
143 #: src/eiciel_enclosed_editor_window.cpp:33
144 #, fuzzy
145 msgid "<b>Participants in ACL for enclosed files</b>"
146 msgstr "<b>Bieżący uczestnicy na liście ACL</b>"
147
148 #: src/eiciel_enclosed_editor_window.cpp:36 src/eiciel_main_window.cpp:32
149 msgid "<b>Available participants</b>"
150 msgstr "<b>Dostępni uczestnicy</b>"
151
152 #: src/acl_manager.cpp:46 src/xattr_manager.cpp:32
55153 msgid "Only regular files or directories supported"
56 msgstr "Obsługiwane są jedynie zwykłe pliki i katalogi"
57
58 #: src/acl_manager.cpp:542
154 msgstr "Obsługiwane są tylko zwykłe pliki i katalogi"
155
156 #: src/acl_manager.cpp:463
59157 msgid "Textual representation of the ACL is wrong"
60158 msgstr "Nieprawidłowa reprezentacja tekstowa listy ACL"
61159
62 #: src/acl_manager.cpp:564
160 #: src/acl_manager.cpp:484
63161 msgid "Default textual representation of the ACL is wrong"
64162 msgstr "Nieprawidłowa domyślna reprezentacja tekstowa listy ACL"
65163
66 #: src/eiciel_xattr_window.cpp:39
67 msgid "Name"
68 msgstr "Nazwa"
69
70 #: src/eiciel_xattr_window.cpp:55
71 msgid "Value"
72 msgstr "Wartość"
73
74 #: src/eiciel_xattr_window.cpp:176
75 msgid "Could not rename attribute name: "
76 msgstr "Nie można zmienić nazwy atrybutu: "
77
78 #: src/eiciel_xattr_window.cpp:211
79 msgid "Could not change attribute value: "
80 msgstr "Nie można zmienić wartości atrybutu: "
81
82 #: src/eiciel_xattr_window.cpp:248
83 msgid "Could not remove attribute: "
84 msgstr "Nie można usunąć atrybutu: "
85
86 #: src/eiciel_xattr_window.cpp:280 src/eiciel_xattr_window.cpp:289
87 msgid "New attribute"
88 msgstr "Nowy atrybut"
89
90 #: src/eiciel_xattr_window.cpp:318
91 msgid "New value"
92 msgstr "NOWA WARTOŚĆ"
93
94 #: src/eiciel_xattr_window.cpp:333
95 msgid "Could not add attribute: "
96 msgstr "Nie można dodać atrybutu: "
97
98 #: src/eiciel_standalone.cpp:48
99 msgid "Print version information"
100 msgstr "Wyświetl informacje o wersji"
101
102 #: src/eiciel_standalone.cpp:50
103 msgid "Access control list editor"
104 msgstr "Edytor listy kontroli dostępu"
105
106 #: src/eiciel_main_controller.cpp:172
107 msgid "Mask"
108 msgstr "Maska"
109
110 #: src/eiciel_main_controller.cpp:177
111 msgid "Other"
112 msgstr "Inne"
113
114 #: src/eiciel_main_controller.cpp:250
115 msgid "Default Mask"
116 msgstr "Domyślna maska"
117
118 #: src/eiciel_main_controller.cpp:258
119 msgid "Default Other"
120 msgstr "Domyślne inne"
121
122 #: src/eiciel_main_controller.cpp:328
123 msgid "Could not add ACL entry: "
124 msgstr "Nie można dodać wpisu do listy ACL: "
125
126 #: src/eiciel_main_controller.cpp:390
127 msgid "Could not remove ACL entry: "
128 msgstr "Nie można usunąć wpisu listy ACL: "
129
130 #: src/eiciel_main_controller.cpp:487
131 msgid "Could not modify ACL entry: "
132 msgstr "Nie można zmienić wpisu listy ACL: "
133
134 #: src/eiciel_main_controller.cpp:516
135 msgid "Are you sure you want to remove all ACL default entries?"
136 msgstr "Czy na pewno usunąć wszystkie domyślne wpisy listy ACL?"
137
138 #: src/eiciel_main_window.cpp:26
164 #: src/eiciel_main_window.cpp:30
139165 msgid "<b>Current participants in ACL</b>"
140 msgstr "<b>Obecnie uczestinczący w ACL</b>"
141
142 #: src/eiciel_main_window.cpp:32
166 msgstr "<b>Bieżący uczestnicy na liście ACL</b>"
167
168 #: src/eiciel_main_window.cpp:34
169 msgid "Edit ACLs for enclosed files..."
170 msgstr ""
171
172 #: src/eiciel_participant_list.cpp:30
173 msgid "User"
174 msgstr "Użytkownik"
175
176 #: src/eiciel_participant_list.cpp:31
177 msgid "Group"
178 msgstr "Grupa"
179
180 #: src/eiciel_participant_list.cpp:32
181 msgid "Default participant"
182 msgstr "Domyślny uczestnik"
183
184 #: src/eiciel_participant_list.cpp:37
185 msgid "Add participant to ACL"
186 msgstr "Dodaj uczestnika do listy ACL"
187
188 #: src/eiciel_participant_list.cpp:38
189 #, fuzzy
190 msgid "Add participant to directory ACL"
191 msgstr "Dodaj uczestnika do listy ACL"
192
193 #: src/eiciel_participant_list.cpp:39
194 #, fuzzy
195 msgid "Add participant to file ACL"
196 msgstr "Dodaj uczestnika do listy ACL"
197
198 #: src/eiciel_participant_list.cpp:40
199 msgid "Advanced features"
200 msgstr "Funkcje zaawansowane"
201
202 #: src/eiciel_participant_list.cpp:42
203 msgid "Name of participant"
204 msgstr "Nazwa uczestnika"
205
206 #: src/eiciel_participant_list.cpp:44
207 msgid "Also show system participants"
208 msgstr "Pokaż także uczestników systemu"
209
210 #: src/eiciel_participant_list.cpp:80
211 msgid "Filter participants"
212 msgstr "Filtruj uczestników"
213
214 #: src/eiciel_participant_list.cpp:105
215 msgid "Participant"
216 msgstr "Uczestnik"
217
218 #: src/eiciel_participant_list.cpp:422
219 msgid "Participant not found"
220 msgstr "Nie znaleziono uczestnika"
221
222 #: src/eiciel_acl_list.cpp:33
143223 msgid "There are ineffective permissions"
144224 msgstr "Niektóre uprawnienia są nieskuteczne"
145225
146 #: src/eiciel_main_window.cpp:33
226 #: src/eiciel_acl_list.cpp:35
147227 msgid "Remove participant from ACL"
148 msgstr "Usuń uczestnika z ACL"
149
150 #: src/eiciel_main_window.cpp:34
228 msgstr "Usuń uczestnika z listy ACL"
229
230 #: src/eiciel_acl_list.cpp:36
151231 msgid "Edit default participants"
152232 msgstr "Edytuj domyślnych uczestników"
153233
154 #: src/eiciel_main_window.cpp:35
155 msgid "<b>Available participants</b>"
156 msgstr "<b>Dostępni uczestnicy</b>"
157
158 #: src/eiciel_main_window.cpp:38
159 msgid "User"
160 msgstr "Użytkownik"
161
162 #: src/eiciel_main_window.cpp:39
163 msgid "Group"
164 msgstr "Grupa"
165
166 #: src/eiciel_main_window.cpp:40
167 msgid "Default participant"
168 msgstr "Domyślny uczestnik"
169
170 #: src/eiciel_main_window.cpp:45
171 msgid "Add participant to ACL"
172 msgstr "Dodaj uczestnika do ACL"
173
174 #: src/eiciel_main_window.cpp:46
175 msgid "Advanced features"
176 msgstr "Funkcje zaawansowane"
177
178 #: src/eiciel_main_window.cpp:48
179 msgid "Name of participant"
180 msgstr "Nazwa uczestnika"
181
182 #: src/eiciel_main_window.cpp:50
183 msgid "Also show system participants"
184 msgstr "Pokaż także uczestników systemu"
185
186 #: src/eiciel_main_window.cpp:112
234 #: src/eiciel_acl_list.cpp:79
187235 msgid "Entry"
188236 msgstr "Wpis"
189237
190 #: src/eiciel_main_window.cpp:115
238 #: src/eiciel_acl_list.cpp:82
191239 msgid "Read"
192 msgstr "Prawo do odczytu"
193
194 #: src/eiciel_main_window.cpp:126
240 msgstr "Odczyt"
241
242 #: src/eiciel_acl_list.cpp:95
195243 msgid "Write"
196 msgstr "Prawo do zapisu"
197
198 #: src/eiciel_main_window.cpp:136
244 msgstr "Zapis"
245
246 #: src/eiciel_acl_list.cpp:107
199247 msgid "Execute"
200 msgstr "Wykonaj"
201
202 #: src/eiciel_main_window.cpp:152 src/eiciel_main_window.cpp:162
203 #: src/eiciel_main_window.cpp:590
204 msgid "None"
205 msgstr "Brak"
206
207 #: src/eiciel_main_window.cpp:154
208 msgid "Only files"
209 msgstr "Tylko pliki"
210
211 #: src/eiciel_main_window.cpp:156
212 msgid "Only directories"
213 msgstr "Tylko katalogi"
214
215 #: src/eiciel_main_window.cpp:158
216 msgid "Both files and directories"
217 msgstr "Pliki i katalogi"
218
219 #: src/eiciel_main_window.cpp:166
220 msgid "Recursion"
221 msgstr "Rekurencja"
222
223 #: src/eiciel_main_window.cpp:201
224 msgid "Filter participants"
225 msgstr "Filtruj uczestników"
226
227 #: src/eiciel_main_window.cpp:222
228 msgid "Participant"
229 msgstr "Uczestnik"
230
231 #: src/eiciel_main_window.cpp:912
232 msgid "Participant not found"
233 msgstr "Nie znaleziono uczestnika"
248 msgstr "Wykonywanie"
249
250 #~ msgid "None"
251 #~ msgstr "Brak"
252
253 #~ msgid "Only files"
254 #~ msgstr "Tylko pliki"
255
256 #~ msgid "Only directories"
257 #~ msgstr "Tylko katalogi"
258
259 #~ msgid "Both files and directories"
260 #~ msgstr "Pliki i katalogi"
261
262 #~ msgid "Recursion"
263 #~ msgstr "Rekursja"
234264
235265 #~ msgid "Default"
236266 #~ msgstr "Domyślny"
Binary diff not shown
44 msgstr ""
55 "Project-Id-Version: eiciel\n"
66 "Report-Msgid-Bugs-To: rofirrim@gmail.com\n"
7 "POT-Creation-Date: 2018-01-16 19:46+0000\n"
8 "PO-Revision-Date: 2016-09-27 20:40+0000\n"
9 "Last-Translator: Luiz Fernando Ranghetti <elchevive68@gmail.com>\n"
7 "POT-Creation-Date: 2020-08-24 15:11+0200\n"
8 "PO-Revision-Date: 2019-06-30 22:50+0000\n"
9 "Last-Translator: Rodrigo Macedo <rmsolucoeseminformatic4@gmail.com>\n"
1010 "Language-Team: Portuguese (Brazil) <https://l10n.opensuse.org/projects/"
1111 "eiciel/master/pt_BR/>\n"
1212 "Language: pt_BR\n"
1414 "Content-Type: text/plain; charset=UTF-8\n"
1515 "Content-Transfer-Encoding: 8bit\n"
1616 "Plural-Forms: nplurals=2; plural=n > 1;\n"
17 "X-Generator: Weblate 2.6\n"
17 "X-Generator: Weblate 3.6.1\n"
18
19 #: src/eiciel_xattr_window.cpp:40
20 msgid "Name"
21 msgstr "Nome"
22
23 #: src/eiciel_xattr_window.cpp:55
24 msgid "Value"
25 msgstr "Valor"
26
27 #: src/eiciel_xattr_window.cpp:163
28 msgid "Could not rename attribute name: "
29 msgstr "Não foi possível renomear o atributo: "
30
31 #: src/eiciel_xattr_window.cpp:190
32 msgid "Could not change attribute value: "
33 msgstr "Não foi possível mudar o valor do atributo: "
34
35 #: src/eiciel_xattr_window.cpp:217
36 msgid "Could not remove attribute: "
37 msgstr "Não foi possível remover o atributo: "
38
39 #: src/eiciel_xattr_window.cpp:242 src/eiciel_xattr_window.cpp:249
40 msgid "New attribute"
41 msgstr "Novo atributo"
42
43 #: src/eiciel_xattr_window.cpp:275
44 msgid "New value"
45 msgstr "VALOR NOVO"
46
47 #: src/eiciel_xattr_window.cpp:287
48 msgid "Could not add attribute: "
49 msgstr "Não foi possível adicionar o atributo: "
50
51 #: src/eiciel_main_window_controller.cpp:118 src/eiciel_acl_list.cpp:366
52 msgid "Mask"
53 msgstr "Máscara"
54
55 #: src/eiciel_main_window_controller.cpp:125
56 msgid "Other"
57 msgstr "Outros"
58
59 #: src/eiciel_main_window_controller.cpp:182 src/eiciel_acl_list.cpp:399
60 msgid "Default Mask"
61 msgstr "Máscara Padrão"
62
63 #: src/eiciel_main_window_controller.cpp:190 src/eiciel_acl_list.cpp:393
64 msgid "Default Other"
65 msgstr "Outro Padrão"
66
67 #: src/eiciel_main_window_controller.cpp:267
68 msgid "Could not add ACL entry: "
69 msgstr "Não foi possível adicionar a entrada de ACL: "
70
71 #: src/eiciel_main_window_controller.cpp:314
72 msgid "Could not remove ACL entry: "
73 msgstr "Não foi possível remover a entrada de ACL: "
74
75 #: src/eiciel_main_window_controller.cpp:393
76 msgid "Could not modify ACL entry: "
77 msgstr "Não foi possível modificar a entrada de ACL: "
78
79 #: src/eiciel_main_window_controller.cpp:548
80 #: src/eiciel_enclosed_editor_window_controller.cpp:33
81 msgid "Are you sure you want to remove all ACL default entries?"
82 msgstr "Tem certeza de que deseja remover todas as entradas padrão de ACL?"
1883
1984 #: src/eiciel_container.cpp:26
2085 msgid "<b>File name</b>"
2186 msgstr "<b>Nome do arquivo</b>"
2287
23 #: src/eiciel_container.cpp:27 src/eiciel_container.cpp:183
88 #: src/eiciel_container.cpp:27 src/eiciel_container.cpp:168
2489 msgid "No file opened"
2590 msgstr "Nenhum arquivo aberto"
2691
27 #: src/eiciel_container.cpp:30 src/eiciel_container.cpp:192
28 #: src/eiciel_container.cpp:194
92 #: src/eiciel_container.cpp:30 src/eiciel_container.cpp:177
93 #: src/eiciel_container.cpp:180
2994 msgid "About..."
3095 msgstr "Sobre..."
3196
32 #: src/eiciel_container.cpp:48 src/eiciel_nautilus_page.cpp:136
97 #: src/eiciel_container.cpp:47 src/eiciel_nautilus_page.cpp:129
3398 msgid "Access Control List"
3499 msgstr "Lista de Controle de Acesso"
35100
36 #: src/eiciel_container.cpp:56 src/eiciel_nautilus_page.cpp:156
101 #: src/eiciel_container.cpp:56 src/eiciel_nautilus_page.cpp:145
37102 msgid "Extended user attributes"
38103 msgstr "Atributos estendidos do usuário"
39104
40 #: src/eiciel_container.cpp:100
105 #: src/eiciel_container.cpp:97
41106 #, c-format
42107 msgid "Could not show the help file: %s"
43108 msgstr "Não foi possível mostrar o arquivo de ajuda: %s"
44109
45 #: src/eiciel_container.cpp:123
110 #: src/eiciel_container.cpp:120
46111 msgid "Choose a file or a directory"
47112 msgstr "Escolha um arquivo ou um diretório"
48113
49 #: src/eiciel_container.cpp:145
114 #: src/eiciel_container.cpp:137
50115 msgid "Could not open the file \""
51116 msgstr "Não foi possível abrir o arquivo \""
52117
53 #: src/acl_manager.cpp:50 src/xattr_manager.cpp:33
118 #: src/eiciel_standalone.cpp:46
119 msgid "Print version information"
120 msgstr "Imprimir informações de versão"
121
122 #: src/eiciel_standalone.cpp:48
123 msgid "Access control list editor"
124 msgstr "Editor de listas de controles de acesso"
125
126 #: src/eiciel_enclosed_editor_window.cpp:24
127 msgid "Edit ACLs for enclosed files"
128 msgstr "Editar ACLs dos arquivos contidos"
129
130 #: src/eiciel_enclosed_editor_window.cpp:25
131 msgid "_Cancel"
132 msgstr "Cancelar"
133
134 #: src/eiciel_enclosed_editor_window.cpp:26
135 msgid "_Apply"
136 msgstr "Aplicar"
137
138 #: src/eiciel_enclosed_editor_window.cpp:30
139 msgid "<b>Participants in ACL for enclosed directories</b>"
140 msgstr "<b>Participantes no ACL dos diretórios contidos</b>"
141
142 #: src/eiciel_enclosed_editor_window.cpp:33
143 msgid "<b>Participants in ACL for enclosed files</b>"
144 msgstr "<b>Participantes na ACL dos arquivos contidos</b>"
145
146 #: src/eiciel_enclosed_editor_window.cpp:36 src/eiciel_main_window.cpp:32
147 msgid "<b>Available participants</b>"
148 msgstr "<b>Participantes disponíveis</b>"
149
150 #: src/acl_manager.cpp:46 src/xattr_manager.cpp:32
54151 msgid "Only regular files or directories supported"
55152 msgstr "Suporte somente a diretórios ou arquivos comuns"
56153
57 #: src/acl_manager.cpp:542
154 #: src/acl_manager.cpp:463
58155 msgid "Textual representation of the ACL is wrong"
59156 msgstr "A representação textual da ACL está incorreta"
60157
61 #: src/acl_manager.cpp:564
158 #: src/acl_manager.cpp:484
62159 msgid "Default textual representation of the ACL is wrong"
63160 msgstr "A representação textual padrão da ACL está incorreta"
64161
65 #: src/eiciel_xattr_window.cpp:39
66 msgid "Name"
67 msgstr "Nome"
68
69 #: src/eiciel_xattr_window.cpp:55
70 msgid "Value"
71 msgstr "Valor"
72
73 #: src/eiciel_xattr_window.cpp:176
74 msgid "Could not rename attribute name: "
75 msgstr "Não foi possível renomear o atributo: "
76
77 #: src/eiciel_xattr_window.cpp:211
78 msgid "Could not change attribute value: "
79 msgstr "Não foi possível mudar o valor do atributo: "
80
81 #: src/eiciel_xattr_window.cpp:248
82 msgid "Could not remove attribute: "
83 msgstr "Não foi possível remover o atributo: "
84
85 #: src/eiciel_xattr_window.cpp:280 src/eiciel_xattr_window.cpp:289
86 msgid "New attribute"
87 msgstr "Novo atributo"
88
89 #: src/eiciel_xattr_window.cpp:318
90 msgid "New value"
91 msgstr "VALOR NOVO"
92
93 #: src/eiciel_xattr_window.cpp:333
94 msgid "Could not add attribute: "
95 msgstr "Não foi possível adicionar o atributo: "
96
97 #: src/eiciel_standalone.cpp:48
98 msgid "Print version information"
99 msgstr "Imprimir informações de versão"
100
101 #: src/eiciel_standalone.cpp:50
102 msgid "Access control list editor"
103 msgstr "Editor de listas de controles de acesso"
104
105 #: src/eiciel_main_controller.cpp:172
106 msgid "Mask"
107 msgstr "Máscara"
108
109 #: src/eiciel_main_controller.cpp:177
110 msgid "Other"
111 msgstr "Outros"
112
113 #: src/eiciel_main_controller.cpp:250
114 msgid "Default Mask"
115 msgstr "Máscara Padrão"
116
117 #: src/eiciel_main_controller.cpp:258
118 msgid "Default Other"
119 msgstr "Outro Padrão"
120
121 #: src/eiciel_main_controller.cpp:328
122 msgid "Could not add ACL entry: "
123 msgstr "Não foi possível adicionar a entrada de ACL: "
124
125 #: src/eiciel_main_controller.cpp:390
126 msgid "Could not remove ACL entry: "
127 msgstr "Não foi possível remover a entrada de ACL: "
128
129 #: src/eiciel_main_controller.cpp:487
130 msgid "Could not modify ACL entry: "
131 msgstr "Não foi possível modificar a entrada de ACL: "
132
133 #: src/eiciel_main_controller.cpp:516
134 msgid "Are you sure you want to remove all ACL default entries?"
135 msgstr "Tem certeza de que deseja remover todas as entradas padrão de ACL?"
136
137 #: src/eiciel_main_window.cpp:26
162 #: src/eiciel_main_window.cpp:30
138163 msgid "<b>Current participants in ACL</b>"
139164 msgstr "<b>Atuais participantes na ACL</b>"
140165
141 #: src/eiciel_main_window.cpp:32
166 #: src/eiciel_main_window.cpp:34
167 msgid "Edit ACLs for enclosed files..."
168 msgstr "Editar ACLs dos arquivos contidos ..."
169
170 #: src/eiciel_participant_list.cpp:30
171 msgid "User"
172 msgstr "Usuário"
173
174 #: src/eiciel_participant_list.cpp:31
175 msgid "Group"
176 msgstr "Grupo"
177
178 #: src/eiciel_participant_list.cpp:32
179 msgid "Default participant"
180 msgstr "Participante padrão"
181
182 #: src/eiciel_participant_list.cpp:37
183 msgid "Add participant to ACL"
184 msgstr "Adicionar participante à ACL"
185
186 #: src/eiciel_participant_list.cpp:38
187 msgid "Add participant to directory ACL"
188 msgstr "Adicionar participante no diretório ACL"
189
190 #: src/eiciel_participant_list.cpp:39
191 msgid "Add participant to file ACL"
192 msgstr "Adicionar participante no arquivo ACL"
193
194 #: src/eiciel_participant_list.cpp:40
195 msgid "Advanced features"
196 msgstr "Recursos avançados"
197
198 #: src/eiciel_participant_list.cpp:42
199 msgid "Name of participant"
200 msgstr "Nome do participante"
201
202 #: src/eiciel_participant_list.cpp:44
203 msgid "Also show system participants"
204 msgstr "Mostrar também os participantes do sistema"
205
206 #: src/eiciel_participant_list.cpp:80
207 msgid "Filter participants"
208 msgstr "Filtrar participantes"
209
210 #: src/eiciel_participant_list.cpp:105
211 msgid "Participant"
212 msgstr "Participante"
213
214 #: src/eiciel_participant_list.cpp:422
215 msgid "Participant not found"
216 msgstr "Participante não encontrado"
217
218 #: src/eiciel_acl_list.cpp:33
142219 msgid "There are ineffective permissions"
143220 msgstr "Há permissões ineficientes"
144221
145 #: src/eiciel_main_window.cpp:33
222 #: src/eiciel_acl_list.cpp:35
146223 msgid "Remove participant from ACL"
147224 msgstr "Remover participante da ACL"
148225
149 #: src/eiciel_main_window.cpp:34
226 #: src/eiciel_acl_list.cpp:36
150227 msgid "Edit default participants"
151228 msgstr "Editar participantes padrões"
152229
153 #: src/eiciel_main_window.cpp:35
154 msgid "<b>Available participants</b>"
155 msgstr "<b>Participantes disponíveis</b>"
156
157 #: src/eiciel_main_window.cpp:38
158 msgid "User"
159 msgstr "Usuário"
160
161 #: src/eiciel_main_window.cpp:39
162 msgid "Group"
163 msgstr "Grupo"
164
165 #: src/eiciel_main_window.cpp:40
166 msgid "Default participant"
167 msgstr "Participante padrão"
168
169 #: src/eiciel_main_window.cpp:45
170 msgid "Add participant to ACL"
171 msgstr "Adicionar participante à ACL"
172
173 #: src/eiciel_main_window.cpp:46
174 msgid "Advanced features"
175 msgstr "Recursos avançados"
176
177 #: src/eiciel_main_window.cpp:48
178 msgid "Name of participant"
179 msgstr "Nome do participante"
180
181 #: src/eiciel_main_window.cpp:50
182 msgid "Also show system participants"
183 msgstr "Mostrar também os participantes do sistema"
184
185 #: src/eiciel_main_window.cpp:112
230 #: src/eiciel_acl_list.cpp:79
186231 msgid "Entry"
187232 msgstr "Entrada"
188233
189 #: src/eiciel_main_window.cpp:115
234 #: src/eiciel_acl_list.cpp:82
190235 msgid "Read"
191236 msgstr "Leitura"
192237
193 #: src/eiciel_main_window.cpp:126
238 #: src/eiciel_acl_list.cpp:95
194239 msgid "Write"
195240 msgstr "Gravação"
196241
197 #: src/eiciel_main_window.cpp:136
242 #: src/eiciel_acl_list.cpp:107
198243 msgid "Execute"
199244 msgstr "Executar"
200245
201 #: src/eiciel_main_window.cpp:152 src/eiciel_main_window.cpp:162
202 #: src/eiciel_main_window.cpp:590
203 msgid "None"
204 msgstr "Nenhum"
205
206 #: src/eiciel_main_window.cpp:154
207 msgid "Only files"
208 msgstr "Apenas arquivos"
209
210 #: src/eiciel_main_window.cpp:156
211 msgid "Only directories"
212 msgstr "Apenas diretórios"
213
214 #: src/eiciel_main_window.cpp:158
215 msgid "Both files and directories"
216 msgstr "Ambos arquivos e diretórios"
217
218 #: src/eiciel_main_window.cpp:166
219 msgid "Recursion"
220 msgstr "Recursão"
221
222 #: src/eiciel_main_window.cpp:201
223 msgid "Filter participants"
224 msgstr "Filtrar participantes"
225
226 #: src/eiciel_main_window.cpp:222
227 msgid "Participant"
228 msgstr "Participante"
229
230 #: src/eiciel_main_window.cpp:912
231 msgid "Participant not found"
232 msgstr "Participante não encontrado"
246 #~ msgid "None"
247 #~ msgstr "Nenhum"
248
249 #~ msgid "Only files"
250 #~ msgstr "Apenas arquivos"
251
252 #~ msgid "Only directories"
253 #~ msgstr "Apenas diretórios"
254
255 #~ msgid "Both files and directories"
256 #~ msgstr "Ambos arquivos e diretórios"
257
258 #~ msgid "Recursion"
259 #~ msgstr "Recursão"
233260
234261 #~ msgid "Default"
235262 #~ msgstr "Padrão"
Binary diff not shown
+193
-163
po/ru.po less more
00 # Copyright (C) 2006 SuSE Linux Products GmbH, Nuernberg
11 # This file is distributed under the same license as the package.
2 #
2 # Aleksandr Melentev <minton@opensuse.org>, 2018.
33 msgid ""
44 msgstr ""
55 "Project-Id-Version: eiciel\n"
66 "Report-Msgid-Bugs-To: rofirrim@gmail.com\n"
7 "POT-Creation-Date: 2018-01-16 19:46+0000\n"
8 "PO-Revision-Date: 2016-03-30 16:10+0000\n"
9 "Last-Translator: Andrei Dziahel <develop7@develop7.info>\n"
10 "Language-Team: Russian <http://l10n.opensuse.org/projects/eiciel/master/ru/"
7 "POT-Creation-Date: 2020-08-24 15:11+0200\n"
8 "PO-Revision-Date: 2018-10-28 14:20+0000\n"
9 "Last-Translator: Alex Minton <alex239@gmail.com>\n"
10 "Language-Team: Russian <https://l10n.opensuse.org/projects/eiciel/master/ru/"
1111 ">\n"
1212 "Language: ru\n"
1313 "MIME-Version: 1.0\n"
1515 "Content-Transfer-Encoding: 8bit\n"
1616 "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
1717 "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
18 "X-Generator: Weblate 2.5\n"
18 "X-Generator: Weblate 2.18\n"
19
20 #: src/eiciel_xattr_window.cpp:40
21 msgid "Name"
22 msgstr "Имя"
23
24 #: src/eiciel_xattr_window.cpp:55
25 msgid "Value"
26 msgstr "Значение"
27
28 #: src/eiciel_xattr_window.cpp:163
29 msgid "Could not rename attribute name: "
30 msgstr "Не удалось переименовать атрибут: "
31
32 #: src/eiciel_xattr_window.cpp:190
33 msgid "Could not change attribute value: "
34 msgstr "Не удалось изменить значение атрибута: "
35
36 #: src/eiciel_xattr_window.cpp:217
37 msgid "Could not remove attribute: "
38 msgstr "Не удалось удалить атрибут: "
39
40 #: src/eiciel_xattr_window.cpp:242 src/eiciel_xattr_window.cpp:249
41 msgid "New attribute"
42 msgstr "Создать атрибут"
43
44 #: src/eiciel_xattr_window.cpp:275
45 msgid "New value"
46 msgstr "Новое значение"
47
48 #: src/eiciel_xattr_window.cpp:287
49 msgid "Could not add attribute: "
50 msgstr "Не удалось добавить атрибут: "
51
52 #: src/eiciel_main_window_controller.cpp:118 src/eiciel_acl_list.cpp:366
53 msgid "Mask"
54 msgstr "Маска"
55
56 #: src/eiciel_main_window_controller.cpp:125
57 msgid "Other"
58 msgstr "Другое"
59
60 #: src/eiciel_main_window_controller.cpp:182 src/eiciel_acl_list.cpp:399
61 msgid "Default Mask"
62 msgstr "Маска по умолчанию"
63
64 #: src/eiciel_main_window_controller.cpp:190 src/eiciel_acl_list.cpp:393
65 msgid "Default Other"
66 msgstr "Другое значение по умолчанию"
67
68 #: src/eiciel_main_window_controller.cpp:267
69 msgid "Could not add ACL entry: "
70 msgstr "Не удается добавить запись ACL: "
71
72 #: src/eiciel_main_window_controller.cpp:314
73 msgid "Could not remove ACL entry: "
74 msgstr "Не удается удалить запись ACL: "
75
76 #: src/eiciel_main_window_controller.cpp:393
77 msgid "Could not modify ACL entry: "
78 msgstr "Не удается изменить запись ACL: "
79
80 #: src/eiciel_main_window_controller.cpp:548
81 #: src/eiciel_enclosed_editor_window_controller.cpp:33
82 msgid "Are you sure you want to remove all ACL default entries?"
83 msgstr "Подтверждаете удаление всех записей ACL по умолчанию?"
1984
2085 #: src/eiciel_container.cpp:26
2186 msgid "<b>File name</b>"
2287 msgstr "<b>Имя файла</b>"
2388
24 #: src/eiciel_container.cpp:27 src/eiciel_container.cpp:183
89 #: src/eiciel_container.cpp:27 src/eiciel_container.cpp:168
2590 msgid "No file opened"
2691 msgstr "Нет открытых файлов"
2792
28 #: src/eiciel_container.cpp:30 src/eiciel_container.cpp:192
29 #: src/eiciel_container.cpp:194
93 #: src/eiciel_container.cpp:30 src/eiciel_container.cpp:177
94 #: src/eiciel_container.cpp:180
3095 msgid "About..."
3196 msgstr "О программе..."
3297
33 #: src/eiciel_container.cpp:48 src/eiciel_nautilus_page.cpp:136
98 #: src/eiciel_container.cpp:47 src/eiciel_nautilus_page.cpp:129
3499 msgid "Access Control List"
35100 msgstr "Список управления доступом"
36101
37 #: src/eiciel_container.cpp:56 src/eiciel_nautilus_page.cpp:156
102 #: src/eiciel_container.cpp:56 src/eiciel_nautilus_page.cpp:145
38103 msgid "Extended user attributes"
39104 msgstr "Дополнительные атрибуты пользователя"
40105
41 #: src/eiciel_container.cpp:100
106 #: src/eiciel_container.cpp:97
42107 #, c-format
43108 msgid "Could not show the help file: %s"
44109 msgstr "Не удается показать файл справки: %s"
45110
46 #: src/eiciel_container.cpp:123
111 #: src/eiciel_container.cpp:120
47112 msgid "Choose a file or a directory"
48113 msgstr "Выберите файл или каталог"
49114
50 #: src/eiciel_container.cpp:145
115 #: src/eiciel_container.cpp:137
51116 msgid "Could not open the file \""
52117 msgstr "Не удалось открыть файл \""
53118
54 #: src/acl_manager.cpp:50 src/xattr_manager.cpp:33
119 #: src/eiciel_standalone.cpp:46
120 msgid "Print version information"
121 msgstr "Печать сведений о версии"
122
123 #: src/eiciel_standalone.cpp:48
124 msgid "Access control list editor"
125 msgstr "Редактор списка управления доступом"
126
127 #: src/eiciel_enclosed_editor_window.cpp:24
128 msgid "Edit ACLs for enclosed files"
129 msgstr ""
130
131 #: src/eiciel_enclosed_editor_window.cpp:25
132 msgid "_Cancel"
133 msgstr ""
134
135 #: src/eiciel_enclosed_editor_window.cpp:26
136 msgid "_Apply"
137 msgstr ""
138
139 #: src/eiciel_enclosed_editor_window.cpp:30
140 msgid "<b>Participants in ACL for enclosed directories</b>"
141 msgstr ""
142
143 #: src/eiciel_enclosed_editor_window.cpp:33
144 #, fuzzy
145 msgid "<b>Participants in ACL for enclosed files</b>"
146 msgstr "<b>Текущие участники ACL</b>"
147
148 #: src/eiciel_enclosed_editor_window.cpp:36 src/eiciel_main_window.cpp:32
149 msgid "<b>Available participants</b>"
150 msgstr "<b>Доступные участники</b>"
151
152 #: src/acl_manager.cpp:46 src/xattr_manager.cpp:32
55153 msgid "Only regular files or directories supported"
56154 msgstr "Поддерживаются только обычные файлы или каталоги"
57155
58 #: src/acl_manager.cpp:542
156 #: src/acl_manager.cpp:463
59157 msgid "Textual representation of the ACL is wrong"
60158 msgstr "Неверное текстовое представление списков управления доступом (ACL)"
61159
62 #: src/acl_manager.cpp:564
160 #: src/acl_manager.cpp:484
63161 msgid "Default textual representation of the ACL is wrong"
64162 msgstr ""
65163 "Неверное текстовое представление по умолчанию списков управления доступом "
66164 "(ACL)"
67165
68 #: src/eiciel_xattr_window.cpp:39
69 msgid "Name"
70 msgstr "Имя"
71
72 #: src/eiciel_xattr_window.cpp:55
73 msgid "Value"
74 msgstr "Значение"
75
76 #: src/eiciel_xattr_window.cpp:176
77 msgid "Could not rename attribute name: "
78 msgstr "Не удалось переименовать атрибут: "
79
80 #: src/eiciel_xattr_window.cpp:211
81 msgid "Could not change attribute value: "
82 msgstr "Не удалось изменить значение атрибута: "
83
84 #: src/eiciel_xattr_window.cpp:248
85 msgid "Could not remove attribute: "
86 msgstr "Не удалось удалить атрибут: "
87
88 #: src/eiciel_xattr_window.cpp:280 src/eiciel_xattr_window.cpp:289
89 msgid "New attribute"
90 msgstr "Создать атрибут"
91
92 #: src/eiciel_xattr_window.cpp:318
93 msgid "New value"
94 msgstr "НОВОЕ ЗНАЧЕНИЕ"
95
96 #: src/eiciel_xattr_window.cpp:333
97 msgid "Could not add attribute: "
98 msgstr "Не удалось добавить атрибут: "
99
100 #: src/eiciel_standalone.cpp:48
101 msgid "Print version information"
102 msgstr "Печать сведений о версии"
103
104 #: src/eiciel_standalone.cpp:50
105 msgid "Access control list editor"
106 msgstr "Редактор списка управления доступом"
107
108 #: src/eiciel_main_controller.cpp:172
109 msgid "Mask"
110 msgstr "Маска"
111
112 #: src/eiciel_main_controller.cpp:177
113 msgid "Other"
114 msgstr "Другое"
115
116 #: src/eiciel_main_controller.cpp:250
117 msgid "Default Mask"
118 msgstr "Маска по умолчанию"
119
120 #: src/eiciel_main_controller.cpp:258
121 msgid "Default Other"
122 msgstr "Другое значение по умолчанию"
123
124 #: src/eiciel_main_controller.cpp:328
125 msgid "Could not add ACL entry: "
126 msgstr "Не удается добавить запись ACL: "
127
128 #: src/eiciel_main_controller.cpp:390
129 msgid "Could not remove ACL entry: "
130 msgstr "Не удается удалить запись ACL: "
131
132 #: src/eiciel_main_controller.cpp:487
133 msgid "Could not modify ACL entry: "
134 msgstr "Не удается изменить запись ACL: "
135
136 #: src/eiciel_main_controller.cpp:516
137 msgid "Are you sure you want to remove all ACL default entries?"
138 msgstr "Подтверждаете удаление всех записей ACL по умолчанию?"
139
140 #: src/eiciel_main_window.cpp:26
166 #: src/eiciel_main_window.cpp:30
141167 msgid "<b>Current participants in ACL</b>"
142168 msgstr "<b>Текущие участники ACL</b>"
143169
144 #: src/eiciel_main_window.cpp:32
170 #: src/eiciel_main_window.cpp:34
171 msgid "Edit ACLs for enclosed files..."
172 msgstr ""
173
174 #: src/eiciel_participant_list.cpp:30
175 msgid "User"
176 msgstr "Пользователь"
177
178 #: src/eiciel_participant_list.cpp:31
179 msgid "Group"
180 msgstr "Группа"
181
182 #: src/eiciel_participant_list.cpp:32
183 msgid "Default participant"
184 msgstr "Участник по умолчанию"
185
186 #: src/eiciel_participant_list.cpp:37
187 msgid "Add participant to ACL"
188 msgstr "Добавить участника в ACL"
189
190 #: src/eiciel_participant_list.cpp:38
191 #, fuzzy
192 msgid "Add participant to directory ACL"
193 msgstr "Добавить участника в ACL"
194
195 #: src/eiciel_participant_list.cpp:39
196 #, fuzzy
197 msgid "Add participant to file ACL"
198 msgstr "Добавить участника в ACL"
199
200 #: src/eiciel_participant_list.cpp:40
201 msgid "Advanced features"
202 msgstr "Дополнительные функции"
203
204 #: src/eiciel_participant_list.cpp:42
205 msgid "Name of participant"
206 msgstr "Имя участника"
207
208 #: src/eiciel_participant_list.cpp:44
209 msgid "Also show system participants"
210 msgstr "Также показывать системных участников"
211
212 #: src/eiciel_participant_list.cpp:80
213 msgid "Filter participants"
214 msgstr "Фильтр по участникам"
215
216 #: src/eiciel_participant_list.cpp:105
217 msgid "Participant"
218 msgstr "Участник"
219
220 #: src/eiciel_participant_list.cpp:422
221 msgid "Participant not found"
222 msgstr "Участник не найден"
223
224 #: src/eiciel_acl_list.cpp:33
145225 msgid "There are ineffective permissions"
146226 msgstr "Существуют недействующие разрешения"
147227
148 #: src/eiciel_main_window.cpp:33
228 #: src/eiciel_acl_list.cpp:35
149229 msgid "Remove participant from ACL"
150230 msgstr "Удалить участника из ACL"
151231
152 #: src/eiciel_main_window.cpp:34
232 #: src/eiciel_acl_list.cpp:36
153233 msgid "Edit default participants"
154 msgstr "Редактировать учатсников по умолчанию"
155
156 #: src/eiciel_main_window.cpp:35
157 msgid "<b>Available participants</b>"
158 msgstr "<b>Доступные участники</b>"
159
160 #: src/eiciel_main_window.cpp:38
161 msgid "User"
162 msgstr "Пользователь"
163
164 #: src/eiciel_main_window.cpp:39
165 msgid "Group"
166 msgstr "Группа"
167
168 #: src/eiciel_main_window.cpp:40
169 msgid "Default participant"
170 msgstr "Участник по умолчанию"
171
172 #: src/eiciel_main_window.cpp:45
173 msgid "Add participant to ACL"
174 msgstr "Добавить участника в ACL"
175
176 #: src/eiciel_main_window.cpp:46
177 msgid "Advanced features"
178 msgstr "Дополнительные функции"
179
180 #: src/eiciel_main_window.cpp:48
181 msgid "Name of participant"
182 msgstr "Имя участника"
183
184 #: src/eiciel_main_window.cpp:50
185 msgid "Also show system participants"
186 msgstr "Также показывать системных участников"
187
188 #: src/eiciel_main_window.cpp:112
234 msgstr "Редактировать участников по умолчанию"
235
236 #: src/eiciel_acl_list.cpp:79
189237 msgid "Entry"
190238 msgstr "Ввод"
191239
192 #: src/eiciel_main_window.cpp:115
240 #: src/eiciel_acl_list.cpp:82
193241 msgid "Read"
194242 msgstr "Чтение"
195243
196 #: src/eiciel_main_window.cpp:126
244 #: src/eiciel_acl_list.cpp:95
197245 msgid "Write"
198246 msgstr "Запись"
199247
200 #: src/eiciel_main_window.cpp:136
248 #: src/eiciel_acl_list.cpp:107
201249 msgid "Execute"
202250 msgstr "Выполнение"
203251
204 #: src/eiciel_main_window.cpp:152 src/eiciel_main_window.cpp:162
205 #: src/eiciel_main_window.cpp:590
206 msgid "None"
207 msgstr "Никакой"
208
209 #: src/eiciel_main_window.cpp:154
210 msgid "Only files"
211 msgstr "Только файлы"
212
213 #: src/eiciel_main_window.cpp:156
214 msgid "Only directories"
215 msgstr "Только каталоги"
216
217 #: src/eiciel_main_window.cpp:158
218 msgid "Both files and directories"
219 msgstr "Файлы и каталоги"
220
221 #: src/eiciel_main_window.cpp:166
222 msgid "Recursion"
223 msgstr "Рекурсия"
224
225 #: src/eiciel_main_window.cpp:201
226 msgid "Filter participants"
227 msgstr "Имя участника"
228
229 #: src/eiciel_main_window.cpp:222
230 msgid "Participant"
231 msgstr "Участник"
232
233 #: src/eiciel_main_window.cpp:912
234 msgid "Participant not found"
235 msgstr "Участник не найден"
252 #~ msgid "None"
253 #~ msgstr "нет"
254
255 #~ msgid "Only files"
256 #~ msgstr "Только файлы"
257
258 #~ msgid "Only directories"
259 #~ msgstr "Только каталоги"
260
261 #~ msgid "Both files and directories"
262 #~ msgstr "Файлы и каталоги"
263
264 #~ msgid "Recursion"
265 #~ msgstr "Рекурсия"
236266
237267 #~ msgid "Default"
238268 #~ msgstr "По умолчанию"
Binary diff not shown
+190
-160
po/sv.po less more
44 msgstr ""
55 "Project-Id-Version: eiciel\n"
66 "Report-Msgid-Bugs-To: rofirrim@gmail.com\n"
7 "POT-Creation-Date: 2018-01-16 19:46+0000\n"
8 "PO-Revision-Date: 2016-05-23 01:38+0000\n"
9 "Last-Translator: Jonas Svensson <jonas@ekhorva.se>\n"
10 "Language-Team: Swedish <http://l10n.opensuse.org/projects/eiciel/master/sv/"
7 "POT-Creation-Date: 2020-08-24 15:11+0200\n"
8 "PO-Revision-Date: 2020-05-02 19:51+0000\n"
9 "Last-Translator: Luna Jernberg <droidbittin@gmail.com>\n"
10 "Language-Team: Swedish <https://l10n.opensuse.org/projects/eiciel/master/sv/"
1111 ">\n"
1212 "Language: sv\n"
1313 "MIME-Version: 1.0\n"
1414 "Content-Type: text/plain; charset=UTF-8\n"
1515 "Content-Transfer-Encoding: 8bit\n"
1616 "Plural-Forms: nplurals=2; plural=n != 1;\n"
17 "X-Generator: Weblate 2.6\n"
17 "X-Generator: Weblate 3.6.1\n"
18
19 #: src/eiciel_xattr_window.cpp:40
20 msgid "Name"
21 msgstr "Namn"
22
23 #: src/eiciel_xattr_window.cpp:55
24 msgid "Value"
25 msgstr "Värde"
26
27 #: src/eiciel_xattr_window.cpp:163
28 msgid "Could not rename attribute name: "
29 msgstr "Det gick inte att byta namn på attributnamnet: "
30
31 #: src/eiciel_xattr_window.cpp:190
32 msgid "Could not change attribute value: "
33 msgstr "Det gick inte att ändra attributvärdet: "
34
35 #: src/eiciel_xattr_window.cpp:217
36 msgid "Could not remove attribute: "
37 msgstr "Det gick inte att ta bort attributet: "
38
39 #: src/eiciel_xattr_window.cpp:242 src/eiciel_xattr_window.cpp:249
40 msgid "New attribute"
41 msgstr "Nytt attribut"
42
43 #: src/eiciel_xattr_window.cpp:275
44 msgid "New value"
45 msgstr "NYTT VÄRDE"
46
47 #: src/eiciel_xattr_window.cpp:287
48 msgid "Could not add attribute: "
49 msgstr "Det gick inte att lägga till attribut: "
50
51 #: src/eiciel_main_window_controller.cpp:118 src/eiciel_acl_list.cpp:366
52 msgid "Mask"
53 msgstr "Mask"
54
55 #: src/eiciel_main_window_controller.cpp:125
56 msgid "Other"
57 msgstr "Övriga"
58
59 #: src/eiciel_main_window_controller.cpp:182 src/eiciel_acl_list.cpp:399
60 msgid "Default Mask"
61 msgstr "Standardmask"
62
63 #: src/eiciel_main_window_controller.cpp:190 src/eiciel_acl_list.cpp:393
64 msgid "Default Other"
65 msgstr "Annan standard"
66
67 #: src/eiciel_main_window_controller.cpp:267
68 msgid "Could not add ACL entry: "
69 msgstr "Det gick inte att lägga till ACL-post: "
70
71 #: src/eiciel_main_window_controller.cpp:314
72 msgid "Could not remove ACL entry: "
73 msgstr "Det gick inte att ta bort ACL-post: "
74
75 #: src/eiciel_main_window_controller.cpp:393
76 msgid "Could not modify ACL entry: "
77 msgstr "Det gick inte att ändra ACL-post: "
78
79 #: src/eiciel_main_window_controller.cpp:548
80 #: src/eiciel_enclosed_editor_window_controller.cpp:33
81 msgid "Are you sure you want to remove all ACL default entries?"
82 msgstr "Är du säker på att du vill ta bort alla ACL-standardposter?"
1883
1984 #: src/eiciel_container.cpp:26
2085 msgid "<b>File name</b>"
2186 msgstr "<b>Filnamn</b>"
2287
23 #: src/eiciel_container.cpp:27 src/eiciel_container.cpp:183
88 #: src/eiciel_container.cpp:27 src/eiciel_container.cpp:168
2489 msgid "No file opened"
2590 msgstr "Ingen fil har öppnats"
2691
27 #: src/eiciel_container.cpp:30 src/eiciel_container.cpp:192
28 #: src/eiciel_container.cpp:194
92 #: src/eiciel_container.cpp:30 src/eiciel_container.cpp:177
93 #: src/eiciel_container.cpp:180
2994 msgid "About..."
3095 msgstr "Om..."
3196
32 #: src/eiciel_container.cpp:48 src/eiciel_nautilus_page.cpp:136
97 #: src/eiciel_container.cpp:47 src/eiciel_nautilus_page.cpp:129
3398 msgid "Access Control List"
3499 msgstr "Åtkomstkontrollista (ACL)"
35100
36 #: src/eiciel_container.cpp:56 src/eiciel_nautilus_page.cpp:156
101 #: src/eiciel_container.cpp:56 src/eiciel_nautilus_page.cpp:145
37102 msgid "Extended user attributes"
38103 msgstr "Utökade användarattribut"
39104
40 #: src/eiciel_container.cpp:100
105 #: src/eiciel_container.cpp:97
41106 #, c-format
42107 msgid "Could not show the help file: %s"
43108 msgstr "Det gick inte att visa hjälpfilen: %s"
44109
45 #: src/eiciel_container.cpp:123
110 #: src/eiciel_container.cpp:120
46111 msgid "Choose a file or a directory"
47112 msgstr "Välj en fil eller en katalog"
48113
49 #: src/eiciel_container.cpp:145
114 #: src/eiciel_container.cpp:137
50115 msgid "Could not open the file \""
51116 msgstr "Det gick inte att öppna filen \""
52117
53 #: src/acl_manager.cpp:50 src/xattr_manager.cpp:33
118 #: src/eiciel_standalone.cpp:46
119 msgid "Print version information"
120 msgstr "Skriv ut versionsinformation"
121
122 #: src/eiciel_standalone.cpp:48
123 msgid "Access control list editor"
124 msgstr "ACL-redigerare"
125
126 #: src/eiciel_enclosed_editor_window.cpp:24
127 msgid "Edit ACLs for enclosed files"
128 msgstr ""
129
130 #: src/eiciel_enclosed_editor_window.cpp:25
131 msgid "_Cancel"
132 msgstr "_Avbryt"
133
134 #: src/eiciel_enclosed_editor_window.cpp:26
135 msgid "_Apply"
136 msgstr "_Verkställ"
137
138 #: src/eiciel_enclosed_editor_window.cpp:30
139 msgid "<b>Participants in ACL for enclosed directories</b>"
140 msgstr ""
141
142 #: src/eiciel_enclosed_editor_window.cpp:33
143 #, fuzzy
144 msgid "<b>Participants in ACL for enclosed files</b>"
145 msgstr "<b>Aktuella deltagare i ACL</b>"
146
147 #: src/eiciel_enclosed_editor_window.cpp:36 src/eiciel_main_window.cpp:32
148 msgid "<b>Available participants</b>"
149 msgstr "<b>Tillgängliga deltagare</b>"
150
151 #: src/acl_manager.cpp:46 src/xattr_manager.cpp:32
54152 msgid "Only regular files or directories supported"
55153 msgstr "Endast vanliga filer eller kataloger stöds"
56154
57 #: src/acl_manager.cpp:542
155 #: src/acl_manager.cpp:463
58156 msgid "Textual representation of the ACL is wrong"
59157 msgstr "Textrepresentationen av ACL är felaktig"
60158
61 #: src/acl_manager.cpp:564
159 #: src/acl_manager.cpp:484
62160 msgid "Default textual representation of the ACL is wrong"
63161 msgstr "Standardtextrepresentationen av ACL är felaktig"
64162
65 #: src/eiciel_xattr_window.cpp:39
66 msgid "Name"
67 msgstr "Namn"
68
69 #: src/eiciel_xattr_window.cpp:55
70 msgid "Value"
71 msgstr "Värde"
72
73 #: src/eiciel_xattr_window.cpp:176
74 msgid "Could not rename attribute name: "
75 msgstr "Det gick inte att byta namn på attributnamnet: "
76
77 #: src/eiciel_xattr_window.cpp:211
78 msgid "Could not change attribute value: "
79 msgstr "Det gick inte att ändra attributvärdet: "
80
81 #: src/eiciel_xattr_window.cpp:248
82 msgid "Could not remove attribute: "
83 msgstr "Det gick inte att ta bort attributet: "
84
85 #: src/eiciel_xattr_window.cpp:280 src/eiciel_xattr_window.cpp:289
86 msgid "New attribute"
87 msgstr "Nytt attribut"
88
89 #: src/eiciel_xattr_window.cpp:318
90 msgid "New value"
91 msgstr "NYTT VÄRDE"
92
93 #: src/eiciel_xattr_window.cpp:333
94 msgid "Could not add attribute: "
95 msgstr "Det gick inte att lägga till attribut: "
96
97 #: src/eiciel_standalone.cpp:48
98 msgid "Print version information"
99 msgstr "Skriv ut versionsinformation"
100
101 #: src/eiciel_standalone.cpp:50
102 msgid "Access control list editor"
103 msgstr "ACL-redigerare"
104
105 #: src/eiciel_main_controller.cpp:172
106 msgid "Mask"
107 msgstr "Mask"
108
109 #: src/eiciel_main_controller.cpp:177
110 msgid "Other"
111 msgstr "Övriga"
112
113 #: src/eiciel_main_controller.cpp:250
114 msgid "Default Mask"
115 msgstr "Standardmask"
116
117 #: src/eiciel_main_controller.cpp:258
118 msgid "Default Other"
119 msgstr "Annan standard"
120
121 #: src/eiciel_main_controller.cpp:328
122 msgid "Could not add ACL entry: "
123 msgstr "Det gick inte att lägga till ACL-post: "
124
125 #: src/eiciel_main_controller.cpp:390
126 msgid "Could not remove ACL entry: "
127 msgstr "Det gick inte att ta bort ACL-post: "
128
129 #: src/eiciel_main_controller.cpp:487
130 msgid "Could not modify ACL entry: "
131 msgstr "Det gick inte att ändra ACL-post: "
132
133 #: src/eiciel_main_controller.cpp:516
134 msgid "Are you sure you want to remove all ACL default entries?"
135 msgstr "Är du säker på att du vill ta bort alla ACL-standardposter?"
136
137 #: src/eiciel_main_window.cpp:26
163 #: src/eiciel_main_window.cpp:30
138164 msgid "<b>Current participants in ACL</b>"
139165 msgstr "<b>Aktuella deltagare i ACL</b>"
140166
141 #: src/eiciel_main_window.cpp:32
167 #: src/eiciel_main_window.cpp:34
168 msgid "Edit ACLs for enclosed files..."
169 msgstr ""
170
171 #: src/eiciel_participant_list.cpp:30
172 msgid "User"
173 msgstr "Användare"
174
175 #: src/eiciel_participant_list.cpp:31
176 msgid "Group"
177 msgstr "Grupp"
178
179 #: src/eiciel_participant_list.cpp:32
180 msgid "Default participant"
181 msgstr "Standarddeltagare"
182
183 #: src/eiciel_participant_list.cpp:37
184 msgid "Add participant to ACL"
185 msgstr "Lägg till deltagare till ACL"
186
187 #: src/eiciel_participant_list.cpp:38
188 #, fuzzy
189 msgid "Add participant to directory ACL"
190 msgstr "Lägg till deltagare till ACL"
191
192 #: src/eiciel_participant_list.cpp:39
193 #, fuzzy
194 msgid "Add participant to file ACL"
195 msgstr "Lägg till deltagare till ACL"
196
197 #: src/eiciel_participant_list.cpp:40
198 msgid "Advanced features"
199 msgstr "Avancerade funktioner"
200
201 #: src/eiciel_participant_list.cpp:42
202 msgid "Name of participant"
203 msgstr "Deltagarens namn"
204
205 #: src/eiciel_participant_list.cpp:44
206 msgid "Also show system participants"
207 msgstr "Visa även systemdeltagare"
208
209 #: src/eiciel_participant_list.cpp:80
210 msgid "Filter participants"
211 msgstr "Filtrera deltagare"
212
213 #: src/eiciel_participant_list.cpp:105
214 msgid "Participant"
215 msgstr "Deltagare"
216
217 #: src/eiciel_participant_list.cpp:422
218 msgid "Participant not found"
219 msgstr "Deltagare hittades inte"
220
221 #: src/eiciel_acl_list.cpp:33
142222 msgid "There are ineffective permissions"
143223 msgstr "Det finns behörigheter utan effekt"
144224
145 #: src/eiciel_main_window.cpp:33
225 #: src/eiciel_acl_list.cpp:35
146226 msgid "Remove participant from ACL"
147227 msgstr "Ta bort deltagare från ACL"
148228
149 #: src/eiciel_main_window.cpp:34
229 #: src/eiciel_acl_list.cpp:36
150230 msgid "Edit default participants"
151231 msgstr "Redigerar standarddeltagare"
152232
153 #: src/eiciel_main_window.cpp:35
154 msgid "<b>Available participants</b>"
155 msgstr "<b>Tillgängliga deltagare</b>"
156
157 #: src/eiciel_main_window.cpp:38
158 msgid "User"
159 msgstr "Användare"
160
161 #: src/eiciel_main_window.cpp:39
162 msgid "Group"
163 msgstr "Grupp"
164
165 #: src/eiciel_main_window.cpp:40
166 msgid "Default participant"
167 msgstr "Standarddeltagare"
168
169 #: src/eiciel_main_window.cpp:45
170 msgid "Add participant to ACL"
171 msgstr "Lägg till deltagare till ACL"
172
173 #: src/eiciel_main_window.cpp:46
174 msgid "Advanced features"
175 msgstr "Avancerade funktioner"
176
177 #: src/eiciel_main_window.cpp:48
178 msgid "Name of participant"
179 msgstr "Deltagarens namn"
180
181 #: src/eiciel_main_window.cpp:50
182 msgid "Also show system participants"
183 msgstr "Visa även systemdeltagare"
184
185 #: src/eiciel_main_window.cpp:112
233 #: src/eiciel_acl_list.cpp:79
186234 msgid "Entry"
187235 msgstr "Post"
188236
189 #: src/eiciel_main_window.cpp:115
237 #: src/eiciel_acl_list.cpp:82
190238 msgid "Read"
191239 msgstr "Läs"
192240
193 #: src/eiciel_main_window.cpp:126
241 #: src/eiciel_acl_list.cpp:95
194242 msgid "Write"
195243 msgstr "Skriv"
196244
197 #: src/eiciel_main_window.cpp:136
245 #: src/eiciel_acl_list.cpp:107
198246 msgid "Execute"
199247 msgstr "Kör"
200248
201 #: src/eiciel_main_window.cpp:152 src/eiciel_main_window.cpp:162
202 #: src/eiciel_main_window.cpp:590
203 msgid "None"
204 msgstr "Ingen"
205
206 #: src/eiciel_main_window.cpp:154
207 msgid "Only files"
208 msgstr "Endast filer"
209
210 #: src/eiciel_main_window.cpp:156
211 msgid "Only directories"
212 msgstr "Endast kataloger"
213
214 #: src/eiciel_main_window.cpp:158
215 msgid "Both files and directories"
216 msgstr "Både filer och kataloger"
217
218 #: src/eiciel_main_window.cpp:166
219 msgid "Recursion"
220 msgstr "Rekursion"
221
222 #: src/eiciel_main_window.cpp:201
223 msgid "Filter participants"
224 msgstr "Filtrera deltagare"
225
226 #: src/eiciel_main_window.cpp:222
227 msgid "Participant"
228 msgstr "Deltagare"
229
230 #: src/eiciel_main_window.cpp:912
231 msgid "Participant not found"
232 msgstr "Deltagare hittades inte"
249 #~ msgid "None"
250 #~ msgstr "Ingen"
251
252 #~ msgid "Only files"
253 #~ msgstr "Endast filer"
254
255 #~ msgid "Only directories"
256 #~ msgstr "Endast kataloger"
257
258 #~ msgid "Both files and directories"
259 #~ msgstr "Både filer och kataloger"
260
261 #~ msgid "Recursion"
262 #~ msgstr "Rekursion"
233263
234264 #~ msgid "Default"
235265 #~ msgstr "Standard"
Binary diff not shown
+187
-157
po/uk.po less more
66 msgstr ""
77 "Project-Id-Version: eiciel 0.9.11\n"
88 "Report-Msgid-Bugs-To: rofirrim@gmail.com\n"
9 "POT-Creation-Date: 2018-01-16 19:46+0000\n"
9 "POT-Creation-Date: 2020-08-24 15:11+0200\n"
1010 "PO-Revision-Date: 2015-12-04 16:25+0200\n"
1111 "Last-Translator: Andriy Bandura <andriykopanytsia@gmail.com>\n"
1212 "Language-Team: Ukrainian <http://l10n.opensuse.org/projects/eiciel/master/uk/"
1919 "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
2020 "X-Generator: Weblate 2.3\n"
2121
22 #: src/eiciel_xattr_window.cpp:40
23 msgid "Name"
24 msgstr "Назва"
25
26 #: src/eiciel_xattr_window.cpp:55
27 msgid "Value"
28 msgstr "Значення"
29
30 #: src/eiciel_xattr_window.cpp:163
31 msgid "Could not rename attribute name: "
32 msgstr "Не вдалося перейменувати атрибут: "
33
34 #: src/eiciel_xattr_window.cpp:190
35 msgid "Could not change attribute value: "
36 msgstr "Не вдалося змінити значення атрибута: "
37
38 #: src/eiciel_xattr_window.cpp:217
39 msgid "Could not remove attribute: "
40 msgstr "Не вдалося вилучити атрибут: "
41
42 #: src/eiciel_xattr_window.cpp:242 src/eiciel_xattr_window.cpp:249
43 msgid "New attribute"
44 msgstr "Новий атрибут"
45
46 #: src/eiciel_xattr_window.cpp:275
47 msgid "New value"
48 msgstr "Нове значення"
49
50 #: src/eiciel_xattr_window.cpp:287
51 msgid "Could not add attribute: "
52 msgstr "Не вдалося додати атрибут: "
53
54 #: src/eiciel_main_window_controller.cpp:118 src/eiciel_acl_list.cpp:366
55 msgid "Mask"
56 msgstr "Маска"
57
58 #: src/eiciel_main_window_controller.cpp:125
59 msgid "Other"
60 msgstr "Інше"
61
62 #: src/eiciel_main_window_controller.cpp:182 src/eiciel_acl_list.cpp:399
63 msgid "Default Mask"
64 msgstr "Усталена маска"
65
66 #: src/eiciel_main_window_controller.cpp:190 src/eiciel_acl_list.cpp:393
67 msgid "Default Other"
68 msgstr "Усталене інше значення"
69
70 #: src/eiciel_main_window_controller.cpp:267
71 msgid "Could not add ACL entry: "
72 msgstr "Не вдалося додати запис списку управління доступом: "
73
74 #: src/eiciel_main_window_controller.cpp:314
75 msgid "Could not remove ACL entry: "
76 msgstr "Не вдалося вилучити запис списку управління доступом: "
77
78 #: src/eiciel_main_window_controller.cpp:393
79 msgid "Could not modify ACL entry: "
80 msgstr "Не вдалося змінити запис списку управління доступом: "
81
82 #: src/eiciel_main_window_controller.cpp:548
83 #: src/eiciel_enclosed_editor_window_controller.cpp:33
84 msgid "Are you sure you want to remove all ACL default entries?"
85 msgstr ""
86 "Підтверджуєте вилучення усіх типових записів списку управління доступом?"
87
2288 #: src/eiciel_container.cpp:26
2389 msgid "<b>File name</b>"
2490 msgstr "<b>Назва файлу</b>"
2591
26 #: src/eiciel_container.cpp:27 src/eiciel_container.cpp:183
92 #: src/eiciel_container.cpp:27 src/eiciel_container.cpp:168
2793 msgid "No file opened"
2894 msgstr "Не має відкритих файлів"
2995
30 #: src/eiciel_container.cpp:30 src/eiciel_container.cpp:192
31 #: src/eiciel_container.cpp:194
96 #: src/eiciel_container.cpp:30 src/eiciel_container.cpp:177
97 #: src/eiciel_container.cpp:180
3298 msgid "About..."
3399 msgstr "Про…"
34100
35 #: src/eiciel_container.cpp:48 src/eiciel_nautilus_page.cpp:136
101 #: src/eiciel_container.cpp:47 src/eiciel_nautilus_page.cpp:129
36102 msgid "Access Control List"
37103 msgstr "Список управління доступом"
38104
39 #: src/eiciel_container.cpp:56 src/eiciel_nautilus_page.cpp:156
105 #: src/eiciel_container.cpp:56 src/eiciel_nautilus_page.cpp:145
40106 msgid "Extended user attributes"
41107 msgstr "Додаткові атрибути користувача"
42108
43 #: src/eiciel_container.cpp:100
109 #: src/eiciel_container.cpp:97
44110 #, c-format
45111 msgid "Could not show the help file: %s"
46112 msgstr "Не вдається показати файл довідки: %s"
47113
48 #: src/eiciel_container.cpp:123
114 #: src/eiciel_container.cpp:120
49115 msgid "Choose a file or a directory"
50116 msgstr "Виберіть файл або каталог"
51117
52 #: src/eiciel_container.cpp:145
118 #: src/eiciel_container.cpp:137
53119 msgid "Could not open the file \""
54120 msgstr "Не вдалося відкрити файл \""
55121
56 #: src/acl_manager.cpp:50 src/xattr_manager.cpp:33
122 #: src/eiciel_standalone.cpp:46
123 msgid "Print version information"
124 msgstr "Друк відомостей про версію"
125
126 #: src/eiciel_standalone.cpp:48
127 msgid "Access control list editor"
128 msgstr "Редактор списку управління доступом"
129
130 #: src/eiciel_enclosed_editor_window.cpp:24
131 msgid "Edit ACLs for enclosed files"
132 msgstr ""
133
134 #: src/eiciel_enclosed_editor_window.cpp:25
135 msgid "_Cancel"
136 msgstr ""
137
138 #: src/eiciel_enclosed_editor_window.cpp:26
139 msgid "_Apply"
140 msgstr ""
141
142 #: src/eiciel_enclosed_editor_window.cpp:30
143 msgid "<b>Participants in ACL for enclosed directories</b>"
144 msgstr ""
145
146 #: src/eiciel_enclosed_editor_window.cpp:33
147 #, fuzzy
148 msgid "<b>Participants in ACL for enclosed files</b>"
149 msgstr "<b>Поточні учасники у СУД</b>"
150
151 #: src/eiciel_enclosed_editor_window.cpp:36 src/eiciel_main_window.cpp:32
152 msgid "<b>Available participants</b>"
153 msgstr "<b>Доступні учасники</b>"
154
155 #: src/acl_manager.cpp:46 src/xattr_manager.cpp:32
57156 msgid "Only regular files or directories supported"
58157 msgstr "Підтримуються лише звичайні файли або каталоги"
59158
60 #: src/acl_manager.cpp:542
159 #: src/acl_manager.cpp:463
61160 msgid "Textual representation of the ACL is wrong"
62161 msgstr "Неправильне текстове представлення списків управління доступом"
63162
64 #: src/acl_manager.cpp:564
163 #: src/acl_manager.cpp:484
65164 msgid "Default textual representation of the ACL is wrong"
66165 msgstr "Неправильне типове представлення списків управління доступом"
67166
68 #: src/eiciel_xattr_window.cpp:39
69 msgid "Name"
70 msgstr "Назва"
71
72 #: src/eiciel_xattr_window.cpp:55
73 msgid "Value"
74 msgstr "Значення"
75
76 #: src/eiciel_xattr_window.cpp:176
77 msgid "Could not rename attribute name: "
78 msgstr "Не вдалося перейменувати атрибут: "
79
80 #: src/eiciel_xattr_window.cpp:211
81 msgid "Could not change attribute value: "
82 msgstr "Не вдалося змінити значення атрибута: "
83
84 #: src/eiciel_xattr_window.cpp:248
85 msgid "Could not remove attribute: "
86 msgstr "Не вдалося вилучити атрибут: "
87
88 #: src/eiciel_xattr_window.cpp:280 src/eiciel_xattr_window.cpp:289
89 msgid "New attribute"
90 msgstr "Новий атрибут"
91
92 #: src/eiciel_xattr_window.cpp:318
93 msgid "New value"
94 msgstr "Нове значення"
95
96 #: src/eiciel_xattr_window.cpp:333
97 msgid "Could not add attribute: "
98 msgstr "Не вдалося додати атрибут: "
99
100 #: src/eiciel_standalone.cpp:48
101 msgid "Print version information"
102 msgstr "Друк відомостей про версію"
103
104 #: src/eiciel_standalone.cpp:50
105 msgid "Access control list editor"
106 msgstr "Редактор списку управління доступом"
107
108 #: src/eiciel_main_controller.cpp:172
109 msgid "Mask"
110 msgstr "Маска"
111
112 #: src/eiciel_main_controller.cpp:177
113 msgid "Other"
114 msgstr "Інше"
115
116 #: src/eiciel_main_controller.cpp:250
117 msgid "Default Mask"
118 msgstr "Усталена маска"
119
120 #: src/eiciel_main_controller.cpp:258
121 msgid "Default Other"
122 msgstr "Усталене інше значення"
123
124 #: src/eiciel_main_controller.cpp:328
125 msgid "Could not add ACL entry: "
126 msgstr "Не вдалося додати запис списку управління доступом: "
127
128 #: src/eiciel_main_controller.cpp:390
129 msgid "Could not remove ACL entry: "
130 msgstr "Не вдалося вилучити запис списку управління доступом: "
131
132 #: src/eiciel_main_controller.cpp:487
133 msgid "Could not modify ACL entry: "
134 msgstr "Не вдалося змінити запис списку управління доступом: "
135
136 #: src/eiciel_main_controller.cpp:516
137 msgid "Are you sure you want to remove all ACL default entries?"
138 msgstr ""
139 "Підтверджуєте вилучення усіх типових записів списку управління доступом?"
140
141 #: src/eiciel_main_window.cpp:26
167 #: src/eiciel_main_window.cpp:30
142168 msgid "<b>Current participants in ACL</b>"
143169 msgstr "<b>Поточні учасники у СУД</b>"
144170
145 #: src/eiciel_main_window.cpp:32
171 #: src/eiciel_main_window.cpp:34
172 msgid "Edit ACLs for enclosed files..."
173 msgstr ""
174
175 #: src/eiciel_participant_list.cpp:30
176 msgid "User"
177 msgstr "Користувач"
178
179 #: src/eiciel_participant_list.cpp:31
180 msgid "Group"
181 msgstr "Група"
182
183 #: src/eiciel_participant_list.cpp:32
184 msgid "Default participant"
185 msgstr "Типовий учасник"
186
187 #: src/eiciel_participant_list.cpp:37
188 msgid "Add participant to ACL"
189 msgstr "Додати учасника до СУД"
190
191 #: src/eiciel_participant_list.cpp:38
192 #, fuzzy
193 msgid "Add participant to directory ACL"
194 msgstr "Додати учасника до СУД"
195
196 #: src/eiciel_participant_list.cpp:39
197 #, fuzzy
198 msgid "Add participant to file ACL"
199 msgstr "Додати учасника до СУД"
200
201 #: src/eiciel_participant_list.cpp:40
202 msgid "Advanced features"
203 msgstr "Додаткові функції"
204
205 #: src/eiciel_participant_list.cpp:42
206 msgid "Name of participant"
207 msgstr "Назва учасника"
208
209 #: src/eiciel_participant_list.cpp:44
210 msgid "Also show system participants"
211 msgstr "Також показувати системних учасників"
212
213 #: src/eiciel_participant_list.cpp:80
214 msgid "Filter participants"
215 msgstr "Фільтрувати учасників"
216
217 #: src/eiciel_participant_list.cpp:105
218 msgid "Participant"
219 msgstr "Учасник"
220
221 #: src/eiciel_participant_list.cpp:422
222 msgid "Participant not found"
223 msgstr "Учасник не знайдений"
224
225 #: src/eiciel_acl_list.cpp:33
146226 msgid "There are ineffective permissions"
147227 msgstr "Наявні нечинні дозволи"
148228
149 #: src/eiciel_main_window.cpp:33
229 #: src/eiciel_acl_list.cpp:35
150230 msgid "Remove participant from ACL"
151231 msgstr "Вилучити учасника із СУД"
152232
153 #: src/eiciel_main_window.cpp:34
233 #: src/eiciel_acl_list.cpp:36
154234 msgid "Edit default participants"
155235 msgstr "Змінити усталених учасників"
156236
157 #: src/eiciel_main_window.cpp:35
158 msgid "<b>Available participants</b>"
159 msgstr "<b>Доступні учасники</b>"
160
161 #: src/eiciel_main_window.cpp:38
162 msgid "User"
163 msgstr "Користувач"
164
165 #: src/eiciel_main_window.cpp:39
166 msgid "Group"
167 msgstr "Група"
168
169 #: src/eiciel_main_window.cpp:40
170 msgid "Default participant"
171 msgstr "Типовий учасник"
172
173 #: src/eiciel_main_window.cpp:45
174 msgid "Add participant to ACL"
175 msgstr "Додати учасника до СУД"
176
177 #: src/eiciel_main_window.cpp:46
178 msgid "Advanced features"
179 msgstr "Додаткові функції"
180
181 #: src/eiciel_main_window.cpp:48
182 msgid "Name of participant"
183 msgstr "Назва учасника"
184
185 #: src/eiciel_main_window.cpp:50
186 msgid "Also show system participants"
187 msgstr "Також показувати системних учасників"
188
189 #: src/eiciel_main_window.cpp:112
237 #: src/eiciel_acl_list.cpp:79
190238 msgid "Entry"
191239 msgstr "Запис"
192240
193 #: src/eiciel_main_window.cpp:115
241 #: src/eiciel_acl_list.cpp:82
194242 msgid "Read"
195243 msgstr "Читати"
196244
197 #: src/eiciel_main_window.cpp:126
245 #: src/eiciel_acl_list.cpp:95
198246 msgid "Write"
199247 msgstr "Писати"
200248
201 #: src/eiciel_main_window.cpp:136
249 #: src/eiciel_acl_list.cpp:107
202250 msgid "Execute"
203251 msgstr "Виконувати"
204252
205 #: src/eiciel_main_window.cpp:152 src/eiciel_main_window.cpp:162
206 #: src/eiciel_main_window.cpp:590
207 msgid "None"
208 msgstr "Жоден"
209
210 #: src/eiciel_main_window.cpp:154
211 msgid "Only files"
212 msgstr "Лише файли"
213
214 #: src/eiciel_main_window.cpp:156
215 msgid "Only directories"
216 msgstr "Лише каталоги"
217
218 #: src/eiciel_main_window.cpp:158
219 msgid "Both files and directories"
220 msgstr "Файли і каталоги"
221
222 #: src/eiciel_main_window.cpp:166
223 msgid "Recursion"
224 msgstr "Рекурсія"
225
226 #: src/eiciel_main_window.cpp:201
227 msgid "Filter participants"
228 msgstr "Фільтрувати учасників"
229
230 #: src/eiciel_main_window.cpp:222
231 msgid "Participant"
232 msgstr "Учасник"
233
234 #: src/eiciel_main_window.cpp:912
235 msgid "Participant not found"
236 msgstr "Учасник не знайдений"
253 #~ msgid "None"
254 #~ msgstr "Жоден"
255
256 #~ msgid "Only files"
257 #~ msgstr "Лише файли"
258
259 #~ msgid "Only directories"
260 #~ msgstr "Лише каталоги"
261
262 #~ msgid "Both files and directories"
263 #~ msgstr "Файли і каталоги"
264
265 #~ msgid "Recursion"
266 #~ msgstr "Рекурсія"
Binary diff not shown
44 msgstr ""
55 "Project-Id-Version: eiciel\n"
66 "Report-Msgid-Bugs-To: rofirrim@gmail.com\n"
7 "POT-Creation-Date: 2018-01-16 19:46+0000\n"
8 "PO-Revision-Date: 2016-06-08 08:24+0000\n"
7 "POT-Creation-Date: 2020-08-24 15:11+0200\n"
8 "PO-Revision-Date: 2019-06-20 13:49+0000\n"
99 "Last-Translator: Marguerite Su <i@marguerite.su>\n"
1010 "Language-Team: Chinese (China) <https://l10n.opensuse.org/projects/eiciel/"
1111 "master/zh_CN/>\n"
1414 "Content-Type: text/plain; charset=UTF-8\n"
1515 "Content-Transfer-Encoding: 8bit\n"
1616 "Plural-Forms: nplurals=1; plural=0;\n"
17 "X-Generator: Weblate 2.6\n"
17 "X-Generator: Weblate 3.6.1\n"
18
19 #: src/eiciel_xattr_window.cpp:40
20 msgid "Name"
21 msgstr "名称"
22
23 #: src/eiciel_xattr_window.cpp:55
24 msgid "Value"
25 msgstr "值"
26
27 #: src/eiciel_xattr_window.cpp:163
28 msgid "Could not rename attribute name: "
29 msgstr "无法重命名属性名称: "
30
31 #: src/eiciel_xattr_window.cpp:190
32 msgid "Could not change attribute value: "
33 msgstr "无法修改属性值: "
34
35 #: src/eiciel_xattr_window.cpp:217
36 msgid "Could not remove attribute: "
37 msgstr "无法移除属性: "
38
39 #: src/eiciel_xattr_window.cpp:242 src/eiciel_xattr_window.cpp:249
40 msgid "New attribute"
41 msgstr "新属性"
42
43 #: src/eiciel_xattr_window.cpp:275
44 msgid "New value"
45 msgstr "新值"
46
47 #: src/eiciel_xattr_window.cpp:287
48 msgid "Could not add attribute: "
49 msgstr "无法添加属性: "
50
51 #: src/eiciel_main_window_controller.cpp:118 src/eiciel_acl_list.cpp:366
52 msgid "Mask"
53 msgstr "掩码"
54
55 #: src/eiciel_main_window_controller.cpp:125
56 msgid "Other"
57 msgstr "其它"
58
59 #: src/eiciel_main_window_controller.cpp:182 src/eiciel_acl_list.cpp:399
60 msgid "Default Mask"
61 msgstr "默认掩码"
62
63 #: src/eiciel_main_window_controller.cpp:190 src/eiciel_acl_list.cpp:393
64 msgid "Default Other"
65 msgstr "默认其它"
66
67 #: src/eiciel_main_window_controller.cpp:267
68 msgid "Could not add ACL entry: "
69 msgstr "无法添加访问控制列表项: "
70
71 #: src/eiciel_main_window_controller.cpp:314
72 msgid "Could not remove ACL entry: "
73 msgstr "无法移除访问控制列表项: "
74
75 #: src/eiciel_main_window_controller.cpp:393
76 msgid "Could not modify ACL entry: "
77 msgstr "无法修改访问控制列表项: "
78
79 #: src/eiciel_main_window_controller.cpp:548
80 #: src/eiciel_enclosed_editor_window_controller.cpp:33
81 msgid "Are you sure you want to remove all ACL default entries?"
82 msgstr "您确定您想要要移除全部访问控制列表默认项吗?"
1883
1984 #: src/eiciel_container.cpp:26
2085 msgid "<b>File name</b>"
2186 msgstr "<b>文件名</b>"
2287
23 #: src/eiciel_container.cpp:27 src/eiciel_container.cpp:183
88 #: src/eiciel_container.cpp:27 src/eiciel_container.cpp:168
2489 msgid "No file opened"
2590 msgstr "未打开任何文件"
2691
27 #: src/eiciel_container.cpp:30 src/eiciel_container.cpp:192
28 #: src/eiciel_container.cpp:194
92 #: src/eiciel_container.cpp:30 src/eiciel_container.cpp:177
93 #: src/eiciel_container.cpp:180
2994 msgid "About..."
3095 msgstr "关于…"
3196
32 #: src/eiciel_container.cpp:48 src/eiciel_nautilus_page.cpp:136
97 #: src/eiciel_container.cpp:47 src/eiciel_nautilus_page.cpp:129
3398 msgid "Access Control List"
3499 msgstr "访问控制列表"
35100
36 #: src/eiciel_container.cpp:56 src/eiciel_nautilus_page.cpp:156
101 #: src/eiciel_container.cpp:56 src/eiciel_nautilus_page.cpp:145
37102 msgid "Extended user attributes"
38103 msgstr "扩展用户属性"
39104
40 #: src/eiciel_container.cpp:100
105 #: src/eiciel_container.cpp:97
41106 #, c-format
42107 msgid "Could not show the help file: %s"
43108 msgstr "无法显示帮助文件:%s"
44109
45 #: src/eiciel_container.cpp:123
110 #: src/eiciel_container.cpp:120
46111 msgid "Choose a file or a directory"
47112 msgstr "选择一个文件或文件夹"
48113
49 #: src/eiciel_container.cpp:145
114 #: src/eiciel_container.cpp:137
50115 msgid "Could not open the file \""
51116 msgstr "无法打开文件 \""
52117
53 #: src/acl_manager.cpp:50 src/xattr_manager.cpp:33
118 #: src/eiciel_standalone.cpp:46
119 msgid "Print version information"
120 msgstr "打印版本信息"
121
122 #: src/eiciel_standalone.cpp:48
123 msgid "Access control list editor"
124 msgstr "访问控制列表编辑器"
125
126 #: src/eiciel_enclosed_editor_window.cpp:24
127 msgid "Edit ACLs for enclosed files"
128 msgstr "编辑隔离文件的访问控制列表"
129
130 #: src/eiciel_enclosed_editor_window.cpp:25
131 msgid "_Cancel"
132 msgstr "取消(_C)"
133
134 #: src/eiciel_enclosed_editor_window.cpp:26
135 msgid "_Apply"
136 msgstr "应用(_A)"
137
138 #: src/eiciel_enclosed_editor_window.cpp:30
139 msgid "<b>Participants in ACL for enclosed directories</b>"
140 msgstr "<b>隔离文件夹访问控制列表中的成员</b>"
141
142 #: src/eiciel_enclosed_editor_window.cpp:33
143 msgid "<b>Participants in ACL for enclosed files</b>"
144 msgstr "<b>隔离文件访问控制列表中的成员</b>"
145
146 #: src/eiciel_enclosed_editor_window.cpp:36 src/eiciel_main_window.cpp:32
147 msgid "<b>Available participants</b>"
148 msgstr "<b>可用成员</b>"
149
150 #: src/acl_manager.cpp:46 src/xattr_manager.cpp:32
54151 msgid "Only regular files or directories supported"
55152 msgstr "仅支持常规文件或文件夹"
56153
57 #: src/acl_manager.cpp:542
154 #: src/acl_manager.cpp:463
58155 msgid "Textual representation of the ACL is wrong"
59156 msgstr "访问控制列表的文本表述错误"
60157
61 #: src/acl_manager.cpp:564
158 #: src/acl_manager.cpp:484
62159 msgid "Default textual representation of the ACL is wrong"
63160 msgstr "访问控制列表的默认文本表述错误"
64161
65 #: src/eiciel_xattr_window.cpp:39
66 msgid "Name"
67 msgstr "名称"
68
69 #: src/eiciel_xattr_window.cpp:55
70 msgid "Value"
71 msgstr "值"
72
73 #: src/eiciel_xattr_window.cpp:176
74 msgid "Could not rename attribute name: "
75 msgstr "无法重命名属性名称: "
76
77 #: src/eiciel_xattr_window.cpp:211
78 msgid "Could not change attribute value: "
79 msgstr "无法修改属性值: "
80
81 #: src/eiciel_xattr_window.cpp:248
82 msgid "Could not remove attribute: "
83 msgstr "无法移除属性: "
84
85 #: src/eiciel_xattr_window.cpp:280 src/eiciel_xattr_window.cpp:289
86 msgid "New attribute"
87 msgstr "新属性"
88
89 #: src/eiciel_xattr_window.cpp:318
90 msgid "New value"
91 msgstr "新值"
92
93 #: src/eiciel_xattr_window.cpp:333
94 msgid "Could not add attribute: "
95 msgstr "无法添加属性: "
96
97 #: src/eiciel_standalone.cpp:48
98 msgid "Print version information"
99 msgstr "打印版本信息"
100
101 #: src/eiciel_standalone.cpp:50
102 msgid "Access control list editor"
103 msgstr "访问控制列表编辑器"
104
105 #: src/eiciel_main_controller.cpp:172
106 msgid "Mask"
107 msgstr "掩码"
108
109 #: src/eiciel_main_controller.cpp:177
110 msgid "Other"
111 msgstr "其它"
112
113 #: src/eiciel_main_controller.cpp:250
114 msgid "Default Mask"
115 msgstr "默认掩码"
116
117 #: src/eiciel_main_controller.cpp:258
118 msgid "Default Other"
119 msgstr "默认其它"
120
121 #: src/eiciel_main_controller.cpp:328
122 msgid "Could not add ACL entry: "
123 msgstr "无法添加访问控制列表项: "
124
125 #: src/eiciel_main_controller.cpp:390
126 msgid "Could not remove ACL entry: "
127 msgstr "无法移除访问控制列表项: "
128
129 #: src/eiciel_main_controller.cpp:487
130 msgid "Could not modify ACL entry: "
131 msgstr "无法修改访问控制列表项: "
132
133 #: src/eiciel_main_controller.cpp:516
134 msgid "Are you sure you want to remove all ACL default entries?"
135 msgstr "您确定您想要要移除全部访问控制列表默认项吗?"
136
137 #: src/eiciel_main_window.cpp:26
162 #: src/eiciel_main_window.cpp:30
138163 msgid "<b>Current participants in ACL</b>"
139164 msgstr "<b>当前访问控制列表中的成员</b>"
140165
141 #: src/eiciel_main_window.cpp:32
166 #: src/eiciel_main_window.cpp:34
167 msgid "Edit ACLs for enclosed files..."
168 msgstr "编辑隔离文件的访问控制列表..."
169
170 #: src/eiciel_participant_list.cpp:30
171 msgid "User"
172 msgstr "用户"
173
174 #: src/eiciel_participant_list.cpp:31
175 msgid "Group"
176 msgstr "组"
177
178 #: src/eiciel_participant_list.cpp:32
179 msgid "Default participant"
180 msgstr "默认成员"
181
182 #: src/eiciel_participant_list.cpp:37
183 msgid "Add participant to ACL"
184 msgstr "向访问控制列表添加成员"
185
186 #: src/eiciel_participant_list.cpp:38
187 msgid "Add participant to directory ACL"
188 msgstr "向文件夹的访问控制列表中添加成员"
189
190 #: src/eiciel_participant_list.cpp:39
191 msgid "Add participant to file ACL"
192 msgstr "向文件的访问控制列表中添加成员"
193
194 #: src/eiciel_participant_list.cpp:40
195 msgid "Advanced features"
196 msgstr "高级功能"
197
198 #: src/eiciel_participant_list.cpp:42
199 msgid "Name of participant"
200 msgstr "成员名称"
201
202 #: src/eiciel_participant_list.cpp:44
203 msgid "Also show system participants"
204 msgstr "也显示系统成员"
205
206 #: src/eiciel_participant_list.cpp:80
207 msgid "Filter participants"
208 msgstr "过滤器成员"
209
210 #: src/eiciel_participant_list.cpp:105
211 msgid "Participant"
212 msgstr "成员"
213
214 #: src/eiciel_participant_list.cpp:422
215 msgid "Participant not found"
216 msgstr "未找到成员"
217
218 #: src/eiciel_acl_list.cpp:33
142219 msgid "There are ineffective permissions"
143220 msgstr "存在无效权限"
144221
145 #: src/eiciel_main_window.cpp:33
222 #: src/eiciel_acl_list.cpp:35
146223 msgid "Remove participant from ACL"
147224 msgstr "从访问控制列表中移除成员"
148225
149 #: src/eiciel_main_window.cpp:34
226 #: src/eiciel_acl_list.cpp:36
150227 msgid "Edit default participants"
151228 msgstr "编辑默认成员"
152229
153 #: src/eiciel_main_window.cpp:35
154 msgid "<b>Available participants</b>"
155 msgstr "<b>可用成员</b>"
156
157 #: src/eiciel_main_window.cpp:38
158 msgid "User"
159 msgstr "用户"
160
161 #: src/eiciel_main_window.cpp:39
162 msgid "Group"
163 msgstr "组"
164
165 #: src/eiciel_main_window.cpp:40
166 msgid "Default participant"
167 msgstr "默认成员"
168
169 #: src/eiciel_main_window.cpp:45
170 msgid "Add participant to ACL"
171 msgstr "向访问控制列表添加成员"
172
173 #: src/eiciel_main_window.cpp:46
174 msgid "Advanced features"
175 msgstr "高级功能"
176
177 #: src/eiciel_main_window.cpp:48
178 msgid "Name of participant"
179 msgstr "成员名称"
180
181 #: src/eiciel_main_window.cpp:50
182 msgid "Also show system participants"
183 msgstr "也显示系统成员"
184
185 #: src/eiciel_main_window.cpp:112
230 #: src/eiciel_acl_list.cpp:79
186231 msgid "Entry"
187232 msgstr "项"
188233
189 #: src/eiciel_main_window.cpp:115
234 #: src/eiciel_acl_list.cpp:82
190235 msgid "Read"
191236 msgstr "读"
192237
193 #: src/eiciel_main_window.cpp:126
238 #: src/eiciel_acl_list.cpp:95
194239 msgid "Write"
195240 msgstr "写"
196241
197 #: src/eiciel_main_window.cpp:136
242 #: src/eiciel_acl_list.cpp:107
198243 msgid "Execute"
199244 msgstr "执行"
200245
201 #: src/eiciel_main_window.cpp:152 src/eiciel_main_window.cpp:162
202 #: src/eiciel_main_window.cpp:590
203 msgid "None"
204 msgstr "无"
205
206 #: src/eiciel_main_window.cpp:154
207 msgid "Only files"
208 msgstr "仅文件"
209
210 #: src/eiciel_main_window.cpp:156
211 msgid "Only directories"
212 msgstr "仅文件夹"
213
214 #: src/eiciel_main_window.cpp:158
215 msgid "Both files and directories"
216 msgstr "文件和文件夹"
217
218 #: src/eiciel_main_window.cpp:166
219 msgid "Recursion"
220 msgstr "递归"
221
222 #: src/eiciel_main_window.cpp:201
223 msgid "Filter participants"
224 msgstr "过滤器成员"
225
226 #: src/eiciel_main_window.cpp:222
227 msgid "Participant"
228 msgstr "成员"
229
230 #: src/eiciel_main_window.cpp:912
231 msgid "Participant not found"
232 msgstr "未找到成员"
246 #~ msgid "None"
247 #~ msgstr "无"
248
249 #~ msgid "Only files"
250 #~ msgstr "仅文件"
251
252 #~ msgid "Only directories"
253 #~ msgstr "仅文件夹"
254
255 #~ msgid "Both files and directories"
256 #~ msgstr "文件和文件夹"
257
258 #~ msgid "Recursion"
259 #~ msgstr "递归"
233260
234261 #~ msgid "Default"
235262 #~ msgstr "默认"
Binary diff not shown
44 msgstr ""
55 "Project-Id-Version: eiciel\n"
66 "Report-Msgid-Bugs-To: rofirrim@gmail.com\n"
7 "POT-Creation-Date: 2018-01-16 19:46+0000\n"
7 "POT-Creation-Date: 2020-08-24 15:11+0200\n"
88 "PO-Revision-Date: 2015-10-17 04:19+0200\n"
99 "Last-Translator: Ramax Lo <ramaxlo@gmail.com>\n"
1010 "Language-Team: Chinese (Taiwan) <http://10n.opensuse.org/projects/eiciel/"
1616 "Plural-Forms: nplurals=1; plural=0;\n"
1717 "X-Generator: Weblate 2.3\n"
1818
19 #: src/eiciel_xattr_window.cpp:40
20 msgid "Name"
21 msgstr "名稱"
22
23 #: src/eiciel_xattr_window.cpp:55
24 msgid "Value"
25 msgstr "值"
26
27 #: src/eiciel_xattr_window.cpp:163
28 msgid "Could not rename attribute name: "
29 msgstr "無法重新命名屬性名稱:"
30
31 #: src/eiciel_xattr_window.cpp:190
32 msgid "Could not change attribute value: "
33 msgstr "無法變更屬性值:"
34
35 #: src/eiciel_xattr_window.cpp:217
36 msgid "Could not remove attribute: "
37 msgstr "無法移除屬性:"
38
39 #: src/eiciel_xattr_window.cpp:242 src/eiciel_xattr_window.cpp:249
40 msgid "New attribute"
41 msgstr "新增屬性"
42
43 #: src/eiciel_xattr_window.cpp:275
44 msgid "New value"
45 msgstr "新值"
46
47 #: src/eiciel_xattr_window.cpp:287
48 msgid "Could not add attribute: "
49 msgstr "無法新增屬性:"
50
51 #: src/eiciel_main_window_controller.cpp:118 src/eiciel_acl_list.cpp:366
52 msgid "Mask"
53 msgstr "遮罩"
54
55 #: src/eiciel_main_window_controller.cpp:125
56 msgid "Other"
57 msgstr "其他"
58
59 #: src/eiciel_main_window_controller.cpp:182 src/eiciel_acl_list.cpp:399
60 msgid "Default Mask"
61 msgstr "預設遮罩"
62
63 #: src/eiciel_main_window_controller.cpp:190 src/eiciel_acl_list.cpp:393
64 msgid "Default Other"
65 msgstr "預設其他"
66
67 #: src/eiciel_main_window_controller.cpp:267
68 msgid "Could not add ACL entry: "
69 msgstr "無法新增 ACL 項目:"
70
71 #: src/eiciel_main_window_controller.cpp:314
72 msgid "Could not remove ACL entry: "
73 msgstr "無法移除 ACL 項目:"
74
75 #: src/eiciel_main_window_controller.cpp:393
76 msgid "Could not modify ACL entry: "
77 msgstr "無法修改 ACL 項目:"
78
79 #: src/eiciel_main_window_controller.cpp:548
80 #: src/eiciel_enclosed_editor_window_controller.cpp:33
81 msgid "Are you sure you want to remove all ACL default entries?"
82 msgstr "您確定要移除所有 ACL 預設項目嗎?"
83
1984 #: src/eiciel_container.cpp:26
2085 msgid "<b>File name</b>"
2186 msgstr "<b>檔案名稱</b>"
2287
23 #: src/eiciel_container.cpp:27 src/eiciel_container.cpp:183
88 #: src/eiciel_container.cpp:27 src/eiciel_container.cpp:168
2489 msgid "No file opened"
2590 msgstr "未開啟任何檔案"
2691
27 #: src/eiciel_container.cpp:30 src/eiciel_container.cpp:192
28 #: src/eiciel_container.cpp:194
92 #: src/eiciel_container.cpp:30 src/eiciel_container.cpp:177
93 #: src/eiciel_container.cpp:180
2994 msgid "About..."
3095 msgstr "關於..."
3196
32 #: src/eiciel_container.cpp:48 src/eiciel_nautilus_page.cpp:136
97 #: src/eiciel_container.cpp:47 src/eiciel_nautilus_page.cpp:129
3398 msgid "Access Control List"
3499 msgstr "存取控制清單"
35100
36 #: src/eiciel_container.cpp:56 src/eiciel_nautilus_page.cpp:156
101 #: src/eiciel_container.cpp:56 src/eiciel_nautilus_page.cpp:145
37102 msgid "Extended user attributes"
38103 msgstr "延伸的使用者屬性"
39104
40 #: src/eiciel_container.cpp:100
105 #: src/eiciel_container.cpp:97
41106 #, c-format
42107 msgid "Could not show the help file: %s"
43108 msgstr "無法顯示說明檔案:%s"
44109
45 #: src/eiciel_container.cpp:123
110 #: src/eiciel_container.cpp:120
46111 msgid "Choose a file or a directory"
47112 msgstr "選擇檔案或目錄"
48113
49 #: src/eiciel_container.cpp:145
114 #: src/eiciel_container.cpp:137
50115 msgid "Could not open the file \""
51116 msgstr "無法開啟該檔案\""
52117
53 #: src/acl_manager.cpp:50 src/xattr_manager.cpp:33
118 #: src/eiciel_standalone.cpp:46
119 msgid "Print version information"
120 msgstr "列印版本資訊"
121
122 #: src/eiciel_standalone.cpp:48
123 msgid "Access control list editor"
124 msgstr "存取控制清單編輯器"
125
126 #: src/eiciel_enclosed_editor_window.cpp:24
127 msgid "Edit ACLs for enclosed files"
128 msgstr ""
129
130 #: src/eiciel_enclosed_editor_window.cpp:25
131 msgid "_Cancel"
132 msgstr ""
133
134 #: src/eiciel_enclosed_editor_window.cpp:26
135 msgid "_Apply"
136 msgstr ""
137
138 #: src/eiciel_enclosed_editor_window.cpp:30
139 msgid "<b>Participants in ACL for enclosed directories</b>"
140 msgstr ""
141
142 #: src/eiciel_enclosed_editor_window.cpp:33
143 #, fuzzy
144 msgid "<b>Participants in ACL for enclosed files</b>"
145 msgstr "<b>目前 ACL 中的關係者</b>"
146
147 #: src/eiciel_enclosed_editor_window.cpp:36 src/eiciel_main_window.cpp:32
148 msgid "<b>Available participants</b>"
149 msgstr "<b>已有的關係者</b>"
150
151 #: src/acl_manager.cpp:46 src/xattr_manager.cpp:32
54152 msgid "Only regular files or directories supported"
55153 msgstr "僅支援一般檔案或目錄"
56154
57 #: src/acl_manager.cpp:542
155 #: src/acl_manager.cpp:463
58156 msgid "Textual representation of the ACL is wrong"
59157 msgstr "ACL 的文字顯示錯誤"
60158
61 #: src/acl_manager.cpp:564
159 #: src/acl_manager.cpp:484
62160 msgid "Default textual representation of the ACL is wrong"
63161 msgstr "ACL 的預設文字顯示錯誤"
64162
65 #: src/eiciel_xattr_window.cpp:39
66 msgid "Name"
67 msgstr "名稱"
68
69 #: src/eiciel_xattr_window.cpp:55
70 msgid "Value"
71 msgstr "值"
72
73 #: src/eiciel_xattr_window.cpp:176
74 msgid "Could not rename attribute name: "
75 msgstr "無法重新命名屬性名稱:"
76
77 #: src/eiciel_xattr_window.cpp:211
78 msgid "Could not change attribute value: "
79 msgstr "無法變更屬性值:"
80
81 #: src/eiciel_xattr_window.cpp:248
82 msgid "Could not remove attribute: "
83 msgstr "無法移除屬性:"
84
85 #: src/eiciel_xattr_window.cpp:280 src/eiciel_xattr_window.cpp:289
86 msgid "New attribute"
87 msgstr "新增屬性"
88
89 #: src/eiciel_xattr_window.cpp:318
90 msgid "New value"
91 msgstr "新值"
92
93 #: src/eiciel_xattr_window.cpp:333
94 msgid "Could not add attribute: "
95 msgstr "無法新增屬性:"
96
97 #: src/eiciel_standalone.cpp:48
98 msgid "Print version information"
99 msgstr "列印版本資訊"
100
101 #: src/eiciel_standalone.cpp:50
102 msgid "Access control list editor"
103 msgstr "存取控制清單編輯器"
104
105 #: src/eiciel_main_controller.cpp:172
106 msgid "Mask"
107 msgstr "遮罩"
108
109 #: src/eiciel_main_controller.cpp:177
110 msgid "Other"
111 msgstr "其他"
112
113 #: src/eiciel_main_controller.cpp:250
114 msgid "Default Mask"
115 msgstr "預設遮罩"
116
117 #: src/eiciel_main_controller.cpp:258
118 msgid "Default Other"
119 msgstr "預設其他"
120
121 #: src/eiciel_main_controller.cpp:328
122 msgid "Could not add ACL entry: "
123 msgstr "無法新增 ACL 項目:"
124
125 #: src/eiciel_main_controller.cpp:390
126 msgid "Could not remove ACL entry: "
127 msgstr "無法移除 ACL 項目:"
128
129 #: src/eiciel_main_controller.cpp:487
130 msgid "Could not modify ACL entry: "
131 msgstr "無法修改 ACL 項目:"
132
133 #: src/eiciel_main_controller.cpp:516
134 msgid "Are you sure you want to remove all ACL default entries?"
135 msgstr "您確定要移除所有 ACL 預設項目嗎?"
136
137 #: src/eiciel_main_window.cpp:26
163 #: src/eiciel_main_window.cpp:30
138164 msgid "<b>Current participants in ACL</b>"
139165 msgstr "<b>目前 ACL 中的關係者</b>"
140166
141 #: src/eiciel_main_window.cpp:32
167 #: src/eiciel_main_window.cpp:34
168 msgid "Edit ACLs for enclosed files..."
169 msgstr ""
170
171 #: src/eiciel_participant_list.cpp:30
172 msgid "User"
173 msgstr "使用者"
174
175 #: src/eiciel_participant_list.cpp:31
176 msgid "Group"
177 msgstr "群組"
178
179 #: src/eiciel_participant_list.cpp:32
180 msgid "Default participant"
181 msgstr "預設關係者"
182
183 #: src/eiciel_participant_list.cpp:37
184 msgid "Add participant to ACL"
185 msgstr "加入關係者至 ACL"
186
187 #: src/eiciel_participant_list.cpp:38
188 #, fuzzy
189 msgid "Add participant to directory ACL"
190 msgstr "加入關係者至 ACL"
191
192 #: src/eiciel_participant_list.cpp:39
193 #, fuzzy
194 msgid "Add participant to file ACL"
195 msgstr "加入關係者至 ACL"
196
197 #: src/eiciel_participant_list.cpp:40
198 msgid "Advanced features"
199 msgstr "進階功能"
200
201 #: src/eiciel_participant_list.cpp:42
202 msgid "Name of participant"
203 msgstr "關係者名稱"
204
205 #: src/eiciel_participant_list.cpp:44
206 msgid "Also show system participants"
207 msgstr "也顯示系統關係者"
208
209 #: src/eiciel_participant_list.cpp:80
210 msgid "Filter participants"
211 msgstr "過濾關係者"
212
213 #: src/eiciel_participant_list.cpp:105
214 msgid "Participant"
215 msgstr "關係者"
216
217 #: src/eiciel_participant_list.cpp:422
218 msgid "Participant not found"
219 msgstr "找不到關係者"
220
221 #: src/eiciel_acl_list.cpp:33
142222 msgid "There are ineffective permissions"
143223 msgstr "具有無效的許可權"
144224
145 #: src/eiciel_main_window.cpp:33
225 #: src/eiciel_acl_list.cpp:35
146226 msgid "Remove participant from ACL"
147227 msgstr "自 ACL 移除關係者"
148228
149 #: src/eiciel_main_window.cpp:34
229 #: src/eiciel_acl_list.cpp:36
150230 msgid "Edit default participants"
151231 msgstr "編輯預設的關係者"
152232
153 #: src/eiciel_main_window.cpp:35
154 msgid "<b>Available participants</b>"
155 msgstr "<b>已有的關係者</b>"
156
157 #: src/eiciel_main_window.cpp:38
158 msgid "User"
159 msgstr "使用者"
160
161 #: src/eiciel_main_window.cpp:39
162 msgid "Group"
163 msgstr "群組"
164
165 #: src/eiciel_main_window.cpp:40
166 msgid "Default participant"
167 msgstr "預設關係者"
168
169 #: src/eiciel_main_window.cpp:45
170 msgid "Add participant to ACL"
171 msgstr "加入關係者至 ACL"
172
173 #: src/eiciel_main_window.cpp:46
174 msgid "Advanced features"
175 msgstr "進階功能"
176
177 #: src/eiciel_main_window.cpp:48
178 msgid "Name of participant"
179 msgstr "關係者名稱"
180
181 #: src/eiciel_main_window.cpp:50
182 msgid "Also show system participants"
183 msgstr "也顯示系統關係者"
184
185 #: src/eiciel_main_window.cpp:112
233 #: src/eiciel_acl_list.cpp:79
186234 msgid "Entry"
187235 msgstr "項目"
188236
189 #: src/eiciel_main_window.cpp:115
237 #: src/eiciel_acl_list.cpp:82
190238 msgid "Read"
191239 msgstr "讀取"
192240
193 #: src/eiciel_main_window.cpp:126
241 #: src/eiciel_acl_list.cpp:95
194242 msgid "Write"
195243 msgstr "寫入"
196244
197 #: src/eiciel_main_window.cpp:136
245 #: src/eiciel_acl_list.cpp:107
198246 msgid "Execute"
199247 msgstr "執行"
200248
201 #: src/eiciel_main_window.cpp:152 src/eiciel_main_window.cpp:162
202 #: src/eiciel_main_window.cpp:590
203 msgid "None"
204 msgstr "無"
205
206 #: src/eiciel_main_window.cpp:154
207 msgid "Only files"
208 msgstr "僅檔案"
209
210 #: src/eiciel_main_window.cpp:156
211 msgid "Only directories"
212 msgstr "僅目錄"
213
214 #: src/eiciel_main_window.cpp:158
215 msgid "Both files and directories"
216 msgstr "檔案與目錄"
217
218 #: src/eiciel_main_window.cpp:166
219 msgid "Recursion"
220 msgstr "遞迴"
221
222 #: src/eiciel_main_window.cpp:201
223 msgid "Filter participants"
224 msgstr "過濾關係者"
225
226 #: src/eiciel_main_window.cpp:222
227 msgid "Participant"
228 msgstr "關係者"
229
230 #: src/eiciel_main_window.cpp:912
231 msgid "Participant not found"
232 msgstr "找不到關係者"
249 #~ msgid "None"
250 #~ msgstr "無"
251
252 #~ msgid "Only files"
253 #~ msgstr "僅檔案"
254
255 #~ msgid "Only directories"
256 #~ msgstr "僅目錄"
257
258 #~ msgid "Both files and directories"
259 #~ msgstr "檔案與目錄"
260
261 #~ msgid "Recursion"
262 #~ msgstr "遞迴"
233263
234264 #~ msgid "Default"
235265 #~ msgstr "預設值"
0 bin_PROGRAMS = eiciel
1 eiciel_CPPFLAGS = -I@top_srcdir@/lib -DDATADIR="\"$(datadir)\"" -DPKGDATADIR="\"$(pkgdatadir)\""
2 eiciel_CXXFLAGS = @GTKMM_CFLAGS@ -Wall
3 eiciel_LDFLAGS = @GTKMM_LIBS@ @ACL_LIBS@
4 eiciel_SOURCES = \
5 acl_manager.cpp \
6 acl_manager.hpp \
7 eiciel_main_controller.cpp \
8 eiciel_main_controller.hpp \
9 eiciel_main_window.cpp \
10 eiciel_main_window.hpp \
11 acl_list.hpp \
12 participant_list.hpp \
13 acl_element_kind.hpp \
14 cellrenderer_acl.hpp \
15 cellrenderer_acl.cpp \
16 eiciel_standalone.cpp \
17 eiciel_container.hpp \
18 eiciel_container.cpp
0 common_sources = \
1 acl_manager.cpp \
2 acl_manager.hpp \
3 eiciel_main_window.cpp \
4 eiciel_main_window.hpp \
5 eiciel_main_window_controller.cpp \
6 eiciel_main_window_controller.hpp \
7 eiciel_acl_list.cpp \
8 eiciel_acl_list.hpp \
9 eiciel_acl_list_controller.cpp \
10 eiciel_acl_list_controller.hpp \
11 eiciel_participant_list.cpp \
12 eiciel_participant_list.hpp \
13 eiciel_participant_list_controller.cpp \
14 eiciel_participant_list_controller.hpp \
15 eiciel_enclosed_editor_window_controller.hpp \
16 eiciel_enclosed_editor_window_controller.cpp \
17 eiciel_enclosed_editor_window.hpp \
18 eiciel_enclosed_editor_window.cpp \
19 acl_list.hpp \
20 participant_list.hpp \
21 acl_element_kind.hpp \
22 cellrenderer_acl.hpp \
23 cellrenderer_acl.cpp
1924
2025 if ENABLE_USER_XATTR
21 eiciel_SOURCES += \
26 common_sources += \
2227 xattr_manager.hpp \
2328 xattr_manager.cpp \
2429 eiciel_xattr_window.cpp \
2833 xattr_list_model.hpp
2934 endif
3035
36 bin_PROGRAMS = eiciel
37 eiciel_CPPFLAGS = -I@top_srcdir@/lib -DDATADIR="\"$(datadir)\"" -DPKGDATADIR="\"$(pkgdatadir)\""
38 eiciel_CXXFLAGS = @GTKMM_CFLAGS@ -Wall
39 eiciel_LDFLAGS = @GTKMM_LIBS@ @ACL_LIBS@
40 eiciel_SOURCES = \
41 $(common_sources) \
42 eiciel_standalone.cpp \
43 eiciel_container.hpp \
44 eiciel_container.cpp
45
46
3147 if ENABLE_NAUTILUS_EXTENSION
3248 nautilusextdir=@NAUTILUS_EXTENSIONS_DIR@
3349 nautilusext_LTLIBRARIES=libeiciel-nautilus.la
3551 libeiciel_nautilus_la_CXXFLAGS = @GTKMM_CFLAGS@ @NAUTILUS_EXTENSION_CFLAGS@ -Wall
3652 libeiciel_nautilus_la_LDFLAGS = -module -avoid-version @GTKMM_LIBS@ @NAUTILUS_EXTENSION_LIBS@ @ACL_LIBS@
3753 libeiciel_nautilus_la_SOURCES = \
38 acl_manager.cpp \
39 acl_manager.hpp \
40 eiciel_nautilus_page.cpp \
41 eiciel_nautilus_page.hpp \
42 eiciel_main_controller.cpp \
43 eiciel_main_controller.hpp \
44 eiciel_main_window.cpp \
45 eiciel_main_window.hpp \
46 xattr_list_model.hpp \
47 participant_list.hpp \
48 acl_element_kind.hpp \
49 cellrenderer_acl.hpp \
50 cellrenderer_acl.cpp
51
52 if ENABLE_USER_XATTR
53 libeiciel_nautilus_la_SOURCES += \
54 xattr_manager.hpp \
55 xattr_manager.cpp \
56 eiciel_xattr_window.cpp \
57 eiciel_xattr_window.hpp \
58 eiciel_xattr_controller.cpp \
59 eiciel_xattr_controller.hpp \
60 xattr_list_model.hpp
61 endif
54 $(common_sources) \
55 eiciel_nautilus_page.cpp \
56 eiciel_nautilus_page.hpp
6257 endif
6358
6459 desktopfilesdir=@datadir@/applications
0 # Makefile.in generated by automake 1.15 from Makefile.am.
0 # Makefile.in generated by automake 1.16.1 from Makefile.am.
11 # @configure_input@
22
3 # Copyright (C) 1994-2014 Free Software Foundation, Inc.
3 # Copyright (C) 1994-2018 Free Software Foundation, Inc.
44
55 # This Makefile.in is free software; the Free Software Foundation
66 # gives unlimited permission to copy and/or distribute it,
9090 build_triplet = @build@
9191 host_triplet = @host@
9292 target_triplet = @target@
93 bin_PROGRAMS = eiciel$(EXEEXT)
9493 @ENABLE_USER_XATTR_TRUE@am__append_1 = \
9594 @ENABLE_USER_XATTR_TRUE@ xattr_manager.hpp \
9695 @ENABLE_USER_XATTR_TRUE@ xattr_manager.cpp \
10099 @ENABLE_USER_XATTR_TRUE@ eiciel_xattr_controller.hpp \
101100 @ENABLE_USER_XATTR_TRUE@ xattr_list_model.hpp
102101
103 @ENABLE_NAUTILUS_EXTENSION_TRUE@@ENABLE_USER_XATTR_TRUE@am__append_2 = \
104 @ENABLE_NAUTILUS_EXTENSION_TRUE@@ENABLE_USER_XATTR_TRUE@ xattr_manager.hpp \
105 @ENABLE_NAUTILUS_EXTENSION_TRUE@@ENABLE_USER_XATTR_TRUE@ xattr_manager.cpp \
106 @ENABLE_NAUTILUS_EXTENSION_TRUE@@ENABLE_USER_XATTR_TRUE@ eiciel_xattr_window.cpp \
107 @ENABLE_NAUTILUS_EXTENSION_TRUE@@ENABLE_USER_XATTR_TRUE@ eiciel_xattr_window.hpp \
108 @ENABLE_NAUTILUS_EXTENSION_TRUE@@ENABLE_USER_XATTR_TRUE@ eiciel_xattr_controller.cpp \
109 @ENABLE_NAUTILUS_EXTENSION_TRUE@@ENABLE_USER_XATTR_TRUE@ eiciel_xattr_controller.hpp \
110 @ENABLE_NAUTILUS_EXTENSION_TRUE@@ENABLE_USER_XATTR_TRUE@ xattr_list_model.hpp
111
102 bin_PROGRAMS = eiciel$(EXEEXT)
112103 subdir = src
113104 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
114105 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cxx_compile_stdcxx_11.m4 \
128119 CONFIG_HEADER = $(top_builddir)/config.hpp
129120 CONFIG_CLEAN_FILES =
130121 CONFIG_CLEAN_VPATH_FILES =
122 am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(nautilusextdir)" \
123 "$(DESTDIR)$(desktopfilesdir)" "$(DESTDIR)$(appdatadir)"
124 PROGRAMS = $(bin_PROGRAMS)
131125 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
132126 am__vpath_adj = case $$p in \
133127 $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
155149 || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
156150 $(am__cd) "$$dir" && rm -f $$files; }; \
157151 }
158 am__installdirs = "$(DESTDIR)$(nautilusextdir)" "$(DESTDIR)$(bindir)" \
159 "$(DESTDIR)$(desktopfilesdir)" "$(DESTDIR)$(appdatadir)"
160152 LTLIBRARIES = $(nautilusext_LTLIBRARIES)
161153 libeiciel_nautilus_la_LIBADD =
162154 am__libeiciel_nautilus_la_SOURCES_DIST = acl_manager.cpp \
163 acl_manager.hpp eiciel_nautilus_page.cpp \
164 eiciel_nautilus_page.hpp eiciel_main_controller.cpp \
165 eiciel_main_controller.hpp eiciel_main_window.cpp \
166 eiciel_main_window.hpp xattr_list_model.hpp \
155 acl_manager.hpp eiciel_main_window.cpp eiciel_main_window.hpp \
156 eiciel_main_window_controller.cpp \
157 eiciel_main_window_controller.hpp eiciel_acl_list.cpp \
158 eiciel_acl_list.hpp eiciel_acl_list_controller.cpp \
159 eiciel_acl_list_controller.hpp eiciel_participant_list.cpp \
160 eiciel_participant_list.hpp \
161 eiciel_participant_list_controller.cpp \
162 eiciel_participant_list_controller.hpp \
163 eiciel_enclosed_editor_window_controller.hpp \
164 eiciel_enclosed_editor_window_controller.cpp \
165 eiciel_enclosed_editor_window.hpp \
166 eiciel_enclosed_editor_window.cpp acl_list.hpp \
167167 participant_list.hpp acl_element_kind.hpp cellrenderer_acl.hpp \
168168 cellrenderer_acl.cpp xattr_manager.hpp xattr_manager.cpp \
169169 eiciel_xattr_window.cpp eiciel_xattr_window.hpp \
170 eiciel_xattr_controller.cpp eiciel_xattr_controller.hpp
171 @ENABLE_NAUTILUS_EXTENSION_TRUE@@ENABLE_USER_XATTR_TRUE@am__objects_1 = libeiciel_nautilus_la-xattr_manager.lo \
172 @ENABLE_NAUTILUS_EXTENSION_TRUE@@ENABLE_USER_XATTR_TRUE@ libeiciel_nautilus_la-eiciel_xattr_window.lo \
173 @ENABLE_NAUTILUS_EXTENSION_TRUE@@ENABLE_USER_XATTR_TRUE@ libeiciel_nautilus_la-eiciel_xattr_controller.lo
174 @ENABLE_NAUTILUS_EXTENSION_TRUE@am_libeiciel_nautilus_la_OBJECTS = libeiciel_nautilus_la-acl_manager.lo \
175 @ENABLE_NAUTILUS_EXTENSION_TRUE@ libeiciel_nautilus_la-eiciel_nautilus_page.lo \
176 @ENABLE_NAUTILUS_EXTENSION_TRUE@ libeiciel_nautilus_la-eiciel_main_controller.lo \
177 @ENABLE_NAUTILUS_EXTENSION_TRUE@ libeiciel_nautilus_la-eiciel_main_window.lo \
178 @ENABLE_NAUTILUS_EXTENSION_TRUE@ libeiciel_nautilus_la-cellrenderer_acl.lo \
179 @ENABLE_NAUTILUS_EXTENSION_TRUE@ $(am__objects_1)
170 eiciel_xattr_controller.cpp eiciel_xattr_controller.hpp \
171 xattr_list_model.hpp eiciel_nautilus_page.cpp \
172 eiciel_nautilus_page.hpp
173 @ENABLE_USER_XATTR_TRUE@am__objects_1 = libeiciel_nautilus_la-xattr_manager.lo \
174 @ENABLE_USER_XATTR_TRUE@ libeiciel_nautilus_la-eiciel_xattr_window.lo \
175 @ENABLE_USER_XATTR_TRUE@ libeiciel_nautilus_la-eiciel_xattr_controller.lo
176 am__objects_2 = libeiciel_nautilus_la-acl_manager.lo \
177 libeiciel_nautilus_la-eiciel_main_window.lo \
178 libeiciel_nautilus_la-eiciel_main_window_controller.lo \
179 libeiciel_nautilus_la-eiciel_acl_list.lo \
180 libeiciel_nautilus_la-eiciel_acl_list_controller.lo \
181 libeiciel_nautilus_la-eiciel_participant_list.lo \
182 libeiciel_nautilus_la-eiciel_participant_list_controller.lo \
183 libeiciel_nautilus_la-eiciel_enclosed_editor_window_controller.lo \
184 libeiciel_nautilus_la-eiciel_enclosed_editor_window.lo \
185 libeiciel_nautilus_la-cellrenderer_acl.lo $(am__objects_1)
186 @ENABLE_NAUTILUS_EXTENSION_TRUE@am_libeiciel_nautilus_la_OBJECTS = \
187 @ENABLE_NAUTILUS_EXTENSION_TRUE@ $(am__objects_2) \
188 @ENABLE_NAUTILUS_EXTENSION_TRUE@ libeiciel_nautilus_la-eiciel_nautilus_page.lo
180189 libeiciel_nautilus_la_OBJECTS = $(am_libeiciel_nautilus_la_OBJECTS)
181190 AM_V_lt = $(am__v_lt_@AM_V@)
182191 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
188197 $(libeiciel_nautilus_la_LDFLAGS) $(LDFLAGS) -o $@
189198 @ENABLE_NAUTILUS_EXTENSION_TRUE@am_libeiciel_nautilus_la_rpath = \
190199 @ENABLE_NAUTILUS_EXTENSION_TRUE@ -rpath $(nautilusextdir)
191 PROGRAMS = $(bin_PROGRAMS)
192200 am__eiciel_SOURCES_DIST = acl_manager.cpp acl_manager.hpp \
193 eiciel_main_controller.cpp eiciel_main_controller.hpp \
194 eiciel_main_window.cpp eiciel_main_window.hpp acl_list.hpp \
201 eiciel_main_window.cpp eiciel_main_window.hpp \
202 eiciel_main_window_controller.cpp \
203 eiciel_main_window_controller.hpp eiciel_acl_list.cpp \
204 eiciel_acl_list.hpp eiciel_acl_list_controller.cpp \
205 eiciel_acl_list_controller.hpp eiciel_participant_list.cpp \
206 eiciel_participant_list.hpp \
207 eiciel_participant_list_controller.cpp \
208 eiciel_participant_list_controller.hpp \
209 eiciel_enclosed_editor_window_controller.hpp \
210 eiciel_enclosed_editor_window_controller.cpp \
211 eiciel_enclosed_editor_window.hpp \
212 eiciel_enclosed_editor_window.cpp acl_list.hpp \
195213 participant_list.hpp acl_element_kind.hpp cellrenderer_acl.hpp \
196 cellrenderer_acl.cpp eiciel_standalone.cpp \
197 eiciel_container.hpp eiciel_container.cpp xattr_manager.hpp \
198 xattr_manager.cpp eiciel_xattr_window.cpp \
199 eiciel_xattr_window.hpp eiciel_xattr_controller.cpp \
200 eiciel_xattr_controller.hpp xattr_list_model.hpp
201 @ENABLE_USER_XATTR_TRUE@am__objects_2 = \
214 cellrenderer_acl.cpp xattr_manager.hpp xattr_manager.cpp \
215 eiciel_xattr_window.cpp eiciel_xattr_window.hpp \
216 eiciel_xattr_controller.cpp eiciel_xattr_controller.hpp \
217 xattr_list_model.hpp eiciel_standalone.cpp \
218 eiciel_container.hpp eiciel_container.cpp
219 @ENABLE_USER_XATTR_TRUE@am__objects_3 = \
202220 @ENABLE_USER_XATTR_TRUE@ eiciel-xattr_manager.$(OBJEXT) \
203221 @ENABLE_USER_XATTR_TRUE@ eiciel-eiciel_xattr_window.$(OBJEXT) \
204222 @ENABLE_USER_XATTR_TRUE@ eiciel-eiciel_xattr_controller.$(OBJEXT)
205 am_eiciel_OBJECTS = eiciel-acl_manager.$(OBJEXT) \
206 eiciel-eiciel_main_controller.$(OBJEXT) \
223 am__objects_4 = eiciel-acl_manager.$(OBJEXT) \
207224 eiciel-eiciel_main_window.$(OBJEXT) \
208 eiciel-cellrenderer_acl.$(OBJEXT) \
225 eiciel-eiciel_main_window_controller.$(OBJEXT) \
226 eiciel-eiciel_acl_list.$(OBJEXT) \
227 eiciel-eiciel_acl_list_controller.$(OBJEXT) \
228 eiciel-eiciel_participant_list.$(OBJEXT) \
229 eiciel-eiciel_participant_list_controller.$(OBJEXT) \
230 eiciel-eiciel_enclosed_editor_window_controller.$(OBJEXT) \
231 eiciel-eiciel_enclosed_editor_window.$(OBJEXT) \
232 eiciel-cellrenderer_acl.$(OBJEXT) $(am__objects_3)
233 am_eiciel_OBJECTS = $(am__objects_4) \
209234 eiciel-eiciel_standalone.$(OBJEXT) \
210 eiciel-eiciel_container.$(OBJEXT) $(am__objects_2)
235 eiciel-eiciel_container.$(OBJEXT)
211236 eiciel_OBJECTS = $(am_eiciel_OBJECTS)
212237 eiciel_LDADD = $(LDADD)
213238 eiciel_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
227252 am__v_at_1 =
228253 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
229254 depcomp = $(SHELL) $(top_srcdir)/depcomp
230 am__depfiles_maybe = depfiles
255 am__maybe_remake_depfiles = depfiles
256 am__depfiles_remade = ./$(DEPDIR)/eiciel-acl_manager.Po \
257 ./$(DEPDIR)/eiciel-cellrenderer_acl.Po \
258 ./$(DEPDIR)/eiciel-eiciel_acl_list.Po \
259 ./$(DEPDIR)/eiciel-eiciel_acl_list_controller.Po \
260 ./$(DEPDIR)/eiciel-eiciel_container.Po \
261 ./$(DEPDIR)/eiciel-eiciel_enclosed_editor_window.Po \
262 ./$(DEPDIR)/eiciel-eiciel_enclosed_editor_window_controller.Po \
263 ./$(DEPDIR)/eiciel-eiciel_main_window.Po \
264 ./$(DEPDIR)/eiciel-eiciel_main_window_controller.Po \
265 ./$(DEPDIR)/eiciel-eiciel_participant_list.Po \
266 ./$(DEPDIR)/eiciel-eiciel_participant_list_controller.Po \
267 ./$(DEPDIR)/eiciel-eiciel_standalone.Po \
268 ./$(DEPDIR)/eiciel-eiciel_xattr_controller.Po \
269 ./$(DEPDIR)/eiciel-eiciel_xattr_window.Po \
270 ./$(DEPDIR)/eiciel-xattr_manager.Po \
271 ./$(DEPDIR)/libeiciel_nautilus_la-acl_manager.Plo \
272 ./$(DEPDIR)/libeiciel_nautilus_la-cellrenderer_acl.Plo \
273 ./$(DEPDIR)/libeiciel_nautilus_la-eiciel_acl_list.Plo \
274 ./$(DEPDIR)/libeiciel_nautilus_la-eiciel_acl_list_controller.Plo \
275 ./$(DEPDIR)/libeiciel_nautilus_la-eiciel_enclosed_editor_window.Plo \
276 ./$(DEPDIR)/libeiciel_nautilus_la-eiciel_enclosed_editor_window_controller.Plo \
277 ./$(DEPDIR)/libeiciel_nautilus_la-eiciel_main_window.Plo \
278 ./$(DEPDIR)/libeiciel_nautilus_la-eiciel_main_window_controller.Plo \
279 ./$(DEPDIR)/libeiciel_nautilus_la-eiciel_nautilus_page.Plo \
280 ./$(DEPDIR)/libeiciel_nautilus_la-eiciel_participant_list.Plo \
281 ./$(DEPDIR)/libeiciel_nautilus_la-eiciel_participant_list_controller.Plo \
282 ./$(DEPDIR)/libeiciel_nautilus_la-eiciel_xattr_controller.Plo \
283 ./$(DEPDIR)/libeiciel_nautilus_la-eiciel_xattr_window.Plo \
284 ./$(DEPDIR)/libeiciel_nautilus_la-xattr_manager.Plo
231285 am__mv = mv -f
232286 CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
233287 $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
448502 top_build_prefix = @top_build_prefix@
449503 top_builddir = @top_builddir@
450504 top_srcdir = @top_srcdir@
505 common_sources = acl_manager.cpp acl_manager.hpp \
506 eiciel_main_window.cpp eiciel_main_window.hpp \
507 eiciel_main_window_controller.cpp \
508 eiciel_main_window_controller.hpp eiciel_acl_list.cpp \
509 eiciel_acl_list.hpp eiciel_acl_list_controller.cpp \
510 eiciel_acl_list_controller.hpp eiciel_participant_list.cpp \
511 eiciel_participant_list.hpp \
512 eiciel_participant_list_controller.cpp \
513 eiciel_participant_list_controller.hpp \
514 eiciel_enclosed_editor_window_controller.hpp \
515 eiciel_enclosed_editor_window_controller.cpp \
516 eiciel_enclosed_editor_window.hpp \
517 eiciel_enclosed_editor_window.cpp acl_list.hpp \
518 participant_list.hpp acl_element_kind.hpp cellrenderer_acl.hpp \
519 cellrenderer_acl.cpp $(am__append_1)
451520 eiciel_CPPFLAGS = -I@top_srcdir@/lib -DDATADIR="\"$(datadir)\"" -DPKGDATADIR="\"$(pkgdatadir)\""
452521 eiciel_CXXFLAGS = @GTKMM_CFLAGS@ -Wall
453522 eiciel_LDFLAGS = @GTKMM_LIBS@ @ACL_LIBS@
454 eiciel_SOURCES = acl_manager.cpp acl_manager.hpp \
455 eiciel_main_controller.cpp eiciel_main_controller.hpp \
456 eiciel_main_window.cpp eiciel_main_window.hpp acl_list.hpp \
457 participant_list.hpp acl_element_kind.hpp cellrenderer_acl.hpp \
458 cellrenderer_acl.cpp eiciel_standalone.cpp \
459 eiciel_container.hpp eiciel_container.cpp $(am__append_1)
523 eiciel_SOURCES = \
524 $(common_sources) \
525 eiciel_standalone.cpp \
526 eiciel_container.hpp \
527 eiciel_container.cpp
528
460529 @ENABLE_NAUTILUS_EXTENSION_TRUE@nautilusextdir = @NAUTILUS_EXTENSIONS_DIR@
461530 @ENABLE_NAUTILUS_EXTENSION_TRUE@nautilusext_LTLIBRARIES = libeiciel-nautilus.la
462531 @ENABLE_NAUTILUS_EXTENSION_TRUE@libeiciel_nautilus_la_CPPFLAGS = -I@top_srcdir@/lib -DDATADIR="\"$(datadir)\"" -DPKGDATADIR="\"$(pkgdatadir)\""
463532 @ENABLE_NAUTILUS_EXTENSION_TRUE@libeiciel_nautilus_la_CXXFLAGS = @GTKMM_CFLAGS@ @NAUTILUS_EXTENSION_CFLAGS@ -Wall
464533 @ENABLE_NAUTILUS_EXTENSION_TRUE@libeiciel_nautilus_la_LDFLAGS = -module -avoid-version @GTKMM_LIBS@ @NAUTILUS_EXTENSION_LIBS@ @ACL_LIBS@
465 @ENABLE_NAUTILUS_EXTENSION_TRUE@libeiciel_nautilus_la_SOURCES = \
466 @ENABLE_NAUTILUS_EXTENSION_TRUE@ acl_manager.cpp \
467 @ENABLE_NAUTILUS_EXTENSION_TRUE@ acl_manager.hpp \
468 @ENABLE_NAUTILUS_EXTENSION_TRUE@ eiciel_nautilus_page.cpp \
469 @ENABLE_NAUTILUS_EXTENSION_TRUE@ eiciel_nautilus_page.hpp \
470 @ENABLE_NAUTILUS_EXTENSION_TRUE@ eiciel_main_controller.cpp \
471 @ENABLE_NAUTILUS_EXTENSION_TRUE@ eiciel_main_controller.hpp \
472 @ENABLE_NAUTILUS_EXTENSION_TRUE@ eiciel_main_window.cpp \
473 @ENABLE_NAUTILUS_EXTENSION_TRUE@ eiciel_main_window.hpp \
474 @ENABLE_NAUTILUS_EXTENSION_TRUE@ xattr_list_model.hpp \
475 @ENABLE_NAUTILUS_EXTENSION_TRUE@ participant_list.hpp \
476 @ENABLE_NAUTILUS_EXTENSION_TRUE@ acl_element_kind.hpp \
477 @ENABLE_NAUTILUS_EXTENSION_TRUE@ cellrenderer_acl.hpp \
478 @ENABLE_NAUTILUS_EXTENSION_TRUE@ cellrenderer_acl.cpp \
479 @ENABLE_NAUTILUS_EXTENSION_TRUE@ $(am__append_2)
534 @ENABLE_NAUTILUS_EXTENSION_TRUE@libeiciel_nautilus_la_SOURCES = \
535 @ENABLE_NAUTILUS_EXTENSION_TRUE@ $(common_sources) \
536 @ENABLE_NAUTILUS_EXTENSION_TRUE@ eiciel_nautilus_page.cpp \
537 @ENABLE_NAUTILUS_EXTENSION_TRUE@ eiciel_nautilus_page.hpp
538
480539 desktopfilesdir = @datadir@/applications
481540 desktopfiles_DATA = org.roger-ferrer.Eiciel.desktop
482541 appdatadir = $(datarootdir)/metainfo
510569 *config.status*) \
511570 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
512571 *) \
513 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
514 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
572 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
573 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
515574 esac;
516575
517576 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
522581 $(ACLOCAL_M4): $(am__aclocal_m4_deps)
523582 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
524583 $(am__aclocal_m4_deps):
525
526 install-nautilusextLTLIBRARIES: $(nautilusext_LTLIBRARIES)
527 @$(NORMAL_INSTALL)
528 @list='$(nautilusext_LTLIBRARIES)'; test -n "$(nautilusextdir)" || list=; \
529 list2=; for p in $$list; do \
530 if test -f $$p; then \
531 list2="$$list2 $$p"; \
532 else :; fi; \
533 done; \
534 test -z "$$list2" || { \
535 echo " $(MKDIR_P) '$(DESTDIR)$(nautilusextdir)'"; \
536 $(MKDIR_P) "$(DESTDIR)$(nautilusextdir)" || exit 1; \
537 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(nautilusextdir)'"; \
538 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(nautilusextdir)"; \
539 }
540
541 uninstall-nautilusextLTLIBRARIES:
542 @$(NORMAL_UNINSTALL)
543 @list='$(nautilusext_LTLIBRARIES)'; test -n "$(nautilusextdir)" || list=; \
544 for p in $$list; do \
545 $(am__strip_dir) \
546 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(nautilusextdir)/$$f'"; \
547 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(nautilusextdir)/$$f"; \
548 done
549
550 clean-nautilusextLTLIBRARIES:
551 -test -z "$(nautilusext_LTLIBRARIES)" || rm -f $(nautilusext_LTLIBRARIES)
552 @list='$(nautilusext_LTLIBRARIES)'; \
553 locs=`for p in $$list; do echo $$p; done | \
554 sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
555 sort -u`; \
556 test -z "$$locs" || { \
557 echo rm -f $${locs}; \
558 rm -f $${locs}; \
559 }
560
561 libeiciel-nautilus.la: $(libeiciel_nautilus_la_OBJECTS) $(libeiciel_nautilus_la_DEPENDENCIES) $(EXTRA_libeiciel_nautilus_la_DEPENDENCIES)
562 $(AM_V_CXXLD)$(libeiciel_nautilus_la_LINK) $(am_libeiciel_nautilus_la_rpath) $(libeiciel_nautilus_la_OBJECTS) $(libeiciel_nautilus_la_LIBADD) $(LIBS)
563584 install-binPROGRAMS: $(bin_PROGRAMS)
564585 @$(NORMAL_INSTALL)
565586 @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
610631 echo " rm -f" $$list; \
611632 rm -f $$list
612633
634 install-nautilusextLTLIBRARIES: $(nautilusext_LTLIBRARIES)
635 @$(NORMAL_INSTALL)
636 @list='$(nautilusext_LTLIBRARIES)'; test -n "$(nautilusextdir)" || list=; \
637 list2=; for p in $$list; do \
638 if test -f $$p; then \
639 list2="$$list2 $$p"; \
640 else :; fi; \
641 done; \
642 test -z "$$list2" || { \
643 echo " $(MKDIR_P) '$(DESTDIR)$(nautilusextdir)'"; \
644 $(MKDIR_P) "$(DESTDIR)$(nautilusextdir)" || exit 1; \
645 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(nautilusextdir)'"; \
646 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(nautilusextdir)"; \
647 }
648
649 uninstall-nautilusextLTLIBRARIES:
650 @$(NORMAL_UNINSTALL)
651 @list='$(nautilusext_LTLIBRARIES)'; test -n "$(nautilusextdir)" || list=; \
652 for p in $$list; do \
653 $(am__strip_dir) \
654 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(nautilusextdir)/$$f'"; \
655 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(nautilusextdir)/$$f"; \
656 done
657
658 clean-nautilusextLTLIBRARIES:
659 -test -z "$(nautilusext_LTLIBRARIES)" || rm -f $(nautilusext_LTLIBRARIES)
660 @list='$(nautilusext_LTLIBRARIES)'; \
661 locs=`for p in $$list; do echo $$p; done | \
662 sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
663 sort -u`; \
664 test -z "$$locs" || { \
665 echo rm -f $${locs}; \
666 rm -f $${locs}; \
667 }
668
669 libeiciel-nautilus.la: $(libeiciel_nautilus_la_OBJECTS) $(libeiciel_nautilus_la_DEPENDENCIES) $(EXTRA_libeiciel_nautilus_la_DEPENDENCIES)
670 $(AM_V_CXXLD)$(libeiciel_nautilus_la_LINK) $(am_libeiciel_nautilus_la_rpath) $(libeiciel_nautilus_la_OBJECTS) $(libeiciel_nautilus_la_LIBADD) $(LIBS)
671
613672 eiciel$(EXEEXT): $(eiciel_OBJECTS) $(eiciel_DEPENDENCIES) $(EXTRA_eiciel_DEPENDENCIES)
614673 @rm -f eiciel$(EXEEXT)
615674 $(AM_V_CXXLD)$(eiciel_LINK) $(eiciel_OBJECTS) $(eiciel_LDADD) $(LIBS)
620679 distclean-compile:
621680 -rm -f *.tab.c
622681
623 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eiciel-acl_manager.Po@am__quote@
624 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eiciel-cellrenderer_acl.Po@am__quote@
625 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eiciel-eiciel_container.Po@am__quote@
626 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eiciel-eiciel_main_controller.Po@am__quote@
627 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eiciel-eiciel_main_window.Po@am__quote@
628 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eiciel-eiciel_standalone.Po@am__quote@
629 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eiciel-eiciel_xattr_controller.Po@am__quote@
630 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eiciel-eiciel_xattr_window.Po@am__quote@
631 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eiciel-xattr_manager.Po@am__quote@
632 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeiciel_nautilus_la-acl_manager.Plo@am__quote@
633 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeiciel_nautilus_la-cellrenderer_acl.Plo@am__quote@
634 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeiciel_nautilus_la-eiciel_main_controller.Plo@am__quote@
635 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeiciel_nautilus_la-eiciel_main_window.Plo@am__quote@
636 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeiciel_nautilus_la-eiciel_nautilus_page.Plo@am__quote@
637 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeiciel_nautilus_la-eiciel_xattr_controller.Plo@am__quote@
638 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeiciel_nautilus_la-eiciel_xattr_window.Plo@am__quote@
639 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeiciel_nautilus_la-xattr_manager.Plo@am__quote@
682 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eiciel-acl_manager.Po@am__quote@ # am--include-marker
683 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eiciel-cellrenderer_acl.Po@am__quote@ # am--include-marker
684 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eiciel-eiciel_acl_list.Po@am__quote@ # am--include-marker
685 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eiciel-eiciel_acl_list_controller.Po@am__quote@ # am--include-marker
686 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eiciel-eiciel_container.Po@am__quote@ # am--include-marker
687 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eiciel-eiciel_enclosed_editor_window.Po@am__quote@ # am--include-marker
688 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eiciel-eiciel_enclosed_editor_window_controller.Po@am__quote@ # am--include-marker
689 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eiciel-eiciel_main_window.Po@am__quote@ # am--include-marker
690 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eiciel-eiciel_main_window_controller.Po@am__quote@ # am--include-marker
691 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eiciel-eiciel_participant_list.Po@am__quote@ # am--include-marker
692 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eiciel-eiciel_participant_list_controller.Po@am__quote@ # am--include-marker
693 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eiciel-eiciel_standalone.Po@am__quote@ # am--include-marker
694 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eiciel-eiciel_xattr_controller.Po@am__quote@ # am--include-marker
695 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eiciel-eiciel_xattr_window.Po@am__quote@ # am--include-marker
696 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eiciel-xattr_manager.Po@am__quote@ # am--include-marker
697 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeiciel_nautilus_la-acl_manager.Plo@am__quote@ # am--include-marker
698 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeiciel_nautilus_la-cellrenderer_acl.Plo@am__quote@ # am--include-marker
699 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeiciel_nautilus_la-eiciel_acl_list.Plo@am__quote@ # am--include-marker
700 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeiciel_nautilus_la-eiciel_acl_list_controller.Plo@am__quote@ # am--include-marker
701 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeiciel_nautilus_la-eiciel_enclosed_editor_window.Plo@am__quote@ # am--include-marker
702 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeiciel_nautilus_la-eiciel_enclosed_editor_window_controller.Plo@am__quote@ # am--include-marker
703 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeiciel_nautilus_la-eiciel_main_window.Plo@am__quote@ # am--include-marker
704 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeiciel_nautilus_la-eiciel_main_window_controller.Plo@am__quote@ # am--include-marker
705 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeiciel_nautilus_la-eiciel_nautilus_page.Plo@am__quote@ # am--include-marker
706 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeiciel_nautilus_la-eiciel_participant_list.Plo@am__quote@ # am--include-marker
707 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeiciel_nautilus_la-eiciel_participant_list_controller.Plo@am__quote@ # am--include-marker
708 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeiciel_nautilus_la-eiciel_xattr_controller.Plo@am__quote@ # am--include-marker
709 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeiciel_nautilus_la-eiciel_xattr_window.Plo@am__quote@ # am--include-marker
710 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeiciel_nautilus_la-xattr_manager.Plo@am__quote@ # am--include-marker
711
712 $(am__depfiles_remade):
713 @$(MKDIR_P) $(@D)
714 @echo '# dummy' >$@-t && $(am__mv) $@-t $@
715
716 am--depfiles: $(am__depfiles_remade)
640717
641718 .cpp.o:
642719 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
666743 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
667744 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libeiciel_nautilus_la_CPPFLAGS) $(CPPFLAGS) $(libeiciel_nautilus_la_CXXFLAGS) $(CXXFLAGS) -c -o libeiciel_nautilus_la-acl_manager.lo `test -f 'acl_manager.cpp' || echo '$(srcdir)/'`acl_manager.cpp
668745
746 libeiciel_nautilus_la-eiciel_main_window.lo: eiciel_main_window.cpp
747 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libeiciel_nautilus_la_CPPFLAGS) $(CPPFLAGS) $(libeiciel_nautilus_la_CXXFLAGS) $(CXXFLAGS) -MT libeiciel_nautilus_la-eiciel_main_window.lo -MD -MP -MF $(DEPDIR)/libeiciel_nautilus_la-eiciel_main_window.Tpo -c -o libeiciel_nautilus_la-eiciel_main_window.lo `test -f 'eiciel_main_window.cpp' || echo '$(srcdir)/'`eiciel_main_window.cpp
748 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libeiciel_nautilus_la-eiciel_main_window.Tpo $(DEPDIR)/libeiciel_nautilus_la-eiciel_main_window.Plo
749 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='eiciel_main_window.cpp' object='libeiciel_nautilus_la-eiciel_main_window.lo' libtool=yes @AMDEPBACKSLASH@
750 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
751 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libeiciel_nautilus_la_CPPFLAGS) $(CPPFLAGS) $(libeiciel_nautilus_la_CXXFLAGS) $(CXXFLAGS) -c -o libeiciel_nautilus_la-eiciel_main_window.lo `test -f 'eiciel_main_window.cpp' || echo '$(srcdir)/'`eiciel_main_window.cpp
752
753 libeiciel_nautilus_la-eiciel_main_window_controller.lo: eiciel_main_window_controller.cpp
754 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libeiciel_nautilus_la_CPPFLAGS) $(CPPFLAGS) $(libeiciel_nautilus_la_CXXFLAGS) $(CXXFLAGS) -MT libeiciel_nautilus_la-eiciel_main_window_controller.lo -MD -MP -MF $(DEPDIR)/libeiciel_nautilus_la-eiciel_main_window_controller.Tpo -c -o libeiciel_nautilus_la-eiciel_main_window_controller.lo `test -f 'eiciel_main_window_controller.cpp' || echo '$(srcdir)/'`eiciel_main_window_controller.cpp
755 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libeiciel_nautilus_la-eiciel_main_window_controller.Tpo $(DEPDIR)/libeiciel_nautilus_la-eiciel_main_window_controller.Plo
756 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='eiciel_main_window_controller.cpp' object='libeiciel_nautilus_la-eiciel_main_window_controller.lo' libtool=yes @AMDEPBACKSLASH@
757 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
758 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libeiciel_nautilus_la_CPPFLAGS) $(CPPFLAGS) $(libeiciel_nautilus_la_CXXFLAGS) $(CXXFLAGS) -c -o libeiciel_nautilus_la-eiciel_main_window_controller.lo `test -f 'eiciel_main_window_controller.cpp' || echo '$(srcdir)/'`eiciel_main_window_controller.cpp
759
760 libeiciel_nautilus_la-eiciel_acl_list.lo: eiciel_acl_list.cpp
761 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libeiciel_nautilus_la_CPPFLAGS) $(CPPFLAGS) $(libeiciel_nautilus_la_CXXFLAGS) $(CXXFLAGS) -MT libeiciel_nautilus_la-eiciel_acl_list.lo -MD -MP -MF $(DEPDIR)/libeiciel_nautilus_la-eiciel_acl_list.Tpo -c -o libeiciel_nautilus_la-eiciel_acl_list.lo `test -f 'eiciel_acl_list.cpp' || echo '$(srcdir)/'`eiciel_acl_list.cpp
762 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libeiciel_nautilus_la-eiciel_acl_list.Tpo $(DEPDIR)/libeiciel_nautilus_la-eiciel_acl_list.Plo
763 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='eiciel_acl_list.cpp' object='libeiciel_nautilus_la-eiciel_acl_list.lo' libtool=yes @AMDEPBACKSLASH@
764 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
765 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libeiciel_nautilus_la_CPPFLAGS) $(CPPFLAGS) $(libeiciel_nautilus_la_CXXFLAGS) $(CXXFLAGS) -c -o libeiciel_nautilus_la-eiciel_acl_list.lo `test -f 'eiciel_acl_list.cpp' || echo '$(srcdir)/'`eiciel_acl_list.cpp
766
767 libeiciel_nautilus_la-eiciel_acl_list_controller.lo: eiciel_acl_list_controller.cpp
768 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libeiciel_nautilus_la_CPPFLAGS) $(CPPFLAGS) $(libeiciel_nautilus_la_CXXFLAGS) $(CXXFLAGS) -MT libeiciel_nautilus_la-eiciel_acl_list_controller.lo -MD -MP -MF $(DEPDIR)/libeiciel_nautilus_la-eiciel_acl_list_controller.Tpo -c -o libeiciel_nautilus_la-eiciel_acl_list_controller.lo `test -f 'eiciel_acl_list_controller.cpp' || echo '$(srcdir)/'`eiciel_acl_list_controller.cpp
769 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libeiciel_nautilus_la-eiciel_acl_list_controller.Tpo $(DEPDIR)/libeiciel_nautilus_la-eiciel_acl_list_controller.Plo
770 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='eiciel_acl_list_controller.cpp' object='libeiciel_nautilus_la-eiciel_acl_list_controller.lo' libtool=yes @AMDEPBACKSLASH@
771 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
772 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libeiciel_nautilus_la_CPPFLAGS) $(CPPFLAGS) $(libeiciel_nautilus_la_CXXFLAGS) $(CXXFLAGS) -c -o libeiciel_nautilus_la-eiciel_acl_list_controller.lo `test -f 'eiciel_acl_list_controller.cpp' || echo '$(srcdir)/'`eiciel_acl_list_controller.cpp
773
774 libeiciel_nautilus_la-eiciel_participant_list.lo: eiciel_participant_list.cpp
775 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libeiciel_nautilus_la_CPPFLAGS) $(CPPFLAGS) $(libeiciel_nautilus_la_CXXFLAGS) $(CXXFLAGS) -MT libeiciel_nautilus_la-eiciel_participant_list.lo -MD -MP -MF $(DEPDIR)/libeiciel_nautilus_la-eiciel_participant_list.Tpo -c -o libeiciel_nautilus_la-eiciel_participant_list.lo `test -f 'eiciel_participant_list.cpp' || echo '$(srcdir)/'`eiciel_participant_list.cpp
776 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libeiciel_nautilus_la-eiciel_participant_list.Tpo $(DEPDIR)/libeiciel_nautilus_la-eiciel_participant_list.Plo
777 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='eiciel_participant_list.cpp' object='libeiciel_nautilus_la-eiciel_participant_list.lo' libtool=yes @AMDEPBACKSLASH@
778 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
779 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libeiciel_nautilus_la_CPPFLAGS) $(CPPFLAGS) $(libeiciel_nautilus_la_CXXFLAGS) $(CXXFLAGS) -c -o libeiciel_nautilus_la-eiciel_participant_list.lo `test -f 'eiciel_participant_list.cpp' || echo '$(srcdir)/'`eiciel_participant_list.cpp
780
781 libeiciel_nautilus_la-eiciel_participant_list_controller.lo: eiciel_participant_list_controller.cpp
782 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libeiciel_nautilus_la_CPPFLAGS) $(CPPFLAGS) $(libeiciel_nautilus_la_CXXFLAGS) $(CXXFLAGS) -MT libeiciel_nautilus_la-eiciel_participant_list_controller.lo -MD -MP -MF $(DEPDIR)/libeiciel_nautilus_la-eiciel_participant_list_controller.Tpo -c -o libeiciel_nautilus_la-eiciel_participant_list_controller.lo `test -f 'eiciel_participant_list_controller.cpp' || echo '$(srcdir)/'`eiciel_participant_list_controller.cpp
783 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libeiciel_nautilus_la-eiciel_participant_list_controller.Tpo $(DEPDIR)/libeiciel_nautilus_la-eiciel_participant_list_controller.Plo
784 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='eiciel_participant_list_controller.cpp' object='libeiciel_nautilus_la-eiciel_participant_list_controller.lo' libtool=yes @AMDEPBACKSLASH@
785 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
786 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libeiciel_nautilus_la_CPPFLAGS) $(CPPFLAGS) $(libeiciel_nautilus_la_CXXFLAGS) $(CXXFLAGS) -c -o libeiciel_nautilus_la-eiciel_participant_list_controller.lo `test -f 'eiciel_participant_list_controller.cpp' || echo '$(srcdir)/'`eiciel_participant_list_controller.cpp
787
788 libeiciel_nautilus_la-eiciel_enclosed_editor_window_controller.lo: eiciel_enclosed_editor_window_controller.cpp
789 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libeiciel_nautilus_la_CPPFLAGS) $(CPPFLAGS) $(libeiciel_nautilus_la_CXXFLAGS) $(CXXFLAGS) -MT libeiciel_nautilus_la-eiciel_enclosed_editor_window_controller.lo -MD -MP -MF $(DEPDIR)/libeiciel_nautilus_la-eiciel_enclosed_editor_window_controller.Tpo -c -o libeiciel_nautilus_la-eiciel_enclosed_editor_window_controller.lo `test -f 'eiciel_enclosed_editor_window_controller.cpp' || echo '$(srcdir)/'`eiciel_enclosed_editor_window_controller.cpp
790 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libeiciel_nautilus_la-eiciel_enclosed_editor_window_controller.Tpo $(DEPDIR)/libeiciel_nautilus_la-eiciel_enclosed_editor_window_controller.Plo
791 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='eiciel_enclosed_editor_window_controller.cpp' object='libeiciel_nautilus_la-eiciel_enclosed_editor_window_controller.lo' libtool=yes @AMDEPBACKSLASH@
792 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
793 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libeiciel_nautilus_la_CPPFLAGS) $(CPPFLAGS) $(libeiciel_nautilus_la_CXXFLAGS) $(CXXFLAGS) -c -o libeiciel_nautilus_la-eiciel_enclosed_editor_window_controller.lo `test -f 'eiciel_enclosed_editor_window_controller.cpp' || echo '$(srcdir)/'`eiciel_enclosed_editor_window_controller.cpp
794
795 libeiciel_nautilus_la-eiciel_enclosed_editor_window.lo: eiciel_enclosed_editor_window.cpp
796 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libeiciel_nautilus_la_CPPFLAGS) $(CPPFLAGS) $(libeiciel_nautilus_la_CXXFLAGS) $(CXXFLAGS) -MT libeiciel_nautilus_la-eiciel_enclosed_editor_window.lo -MD -MP -MF $(DEPDIR)/libeiciel_nautilus_la-eiciel_enclosed_editor_window.Tpo -c -o libeiciel_nautilus_la-eiciel_enclosed_editor_window.lo `test -f 'eiciel_enclosed_editor_window.cpp' || echo '$(srcdir)/'`eiciel_enclosed_editor_window.cpp
797 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libeiciel_nautilus_la-eiciel_enclosed_editor_window.Tpo $(DEPDIR)/libeiciel_nautilus_la-eiciel_enclosed_editor_window.Plo
798 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='eiciel_enclosed_editor_window.cpp' object='libeiciel_nautilus_la-eiciel_enclosed_editor_window.lo' libtool=yes @AMDEPBACKSLASH@
799 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
800 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libeiciel_nautilus_la_CPPFLAGS) $(CPPFLAGS) $(libeiciel_nautilus_la_CXXFLAGS) $(CXXFLAGS) -c -o libeiciel_nautilus_la-eiciel_enclosed_editor_window.lo `test -f 'eiciel_enclosed_editor_window.cpp' || echo '$(srcdir)/'`eiciel_enclosed_editor_window.cpp
801
802 libeiciel_nautilus_la-cellrenderer_acl.lo: cellrenderer_acl.cpp
803 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libeiciel_nautilus_la_CPPFLAGS) $(CPPFLAGS) $(libeiciel_nautilus_la_CXXFLAGS) $(CXXFLAGS) -MT libeiciel_nautilus_la-cellrenderer_acl.lo -MD -MP -MF $(DEPDIR)/libeiciel_nautilus_la-cellrenderer_acl.Tpo -c -o libeiciel_nautilus_la-cellrenderer_acl.lo `test -f 'cellrenderer_acl.cpp' || echo '$(srcdir)/'`cellrenderer_acl.cpp
804 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libeiciel_nautilus_la-cellrenderer_acl.Tpo $(DEPDIR)/libeiciel_nautilus_la-cellrenderer_acl.Plo
805 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='cellrenderer_acl.cpp' object='libeiciel_nautilus_la-cellrenderer_acl.lo' libtool=yes @AMDEPBACKSLASH@
806 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
807 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libeiciel_nautilus_la_CPPFLAGS) $(CPPFLAGS) $(libeiciel_nautilus_la_CXXFLAGS) $(CXXFLAGS) -c -o libeiciel_nautilus_la-cellrenderer_acl.lo `test -f 'cellrenderer_acl.cpp' || echo '$(srcdir)/'`cellrenderer_acl.cpp
808
809 libeiciel_nautilus_la-xattr_manager.lo: xattr_manager.cpp
810 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libeiciel_nautilus_la_CPPFLAGS) $(CPPFLAGS) $(libeiciel_nautilus_la_CXXFLAGS) $(CXXFLAGS) -MT libeiciel_nautilus_la-xattr_manager.lo -MD -MP -MF $(DEPDIR)/libeiciel_nautilus_la-xattr_manager.Tpo -c -o libeiciel_nautilus_la-xattr_manager.lo `test -f 'xattr_manager.cpp' || echo '$(srcdir)/'`xattr_manager.cpp
811 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libeiciel_nautilus_la-xattr_manager.Tpo $(DEPDIR)/libeiciel_nautilus_la-xattr_manager.Plo
812 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='xattr_manager.cpp' object='libeiciel_nautilus_la-xattr_manager.lo' libtool=yes @AMDEPBACKSLASH@
813 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
814 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libeiciel_nautilus_la_CPPFLAGS) $(CPPFLAGS) $(libeiciel_nautilus_la_CXXFLAGS) $(CXXFLAGS) -c -o libeiciel_nautilus_la-xattr_manager.lo `test -f 'xattr_manager.cpp' || echo '$(srcdir)/'`xattr_manager.cpp
815
816 libeiciel_nautilus_la-eiciel_xattr_window.lo: eiciel_xattr_window.cpp
817 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libeiciel_nautilus_la_CPPFLAGS) $(CPPFLAGS) $(libeiciel_nautilus_la_CXXFLAGS) $(CXXFLAGS) -MT libeiciel_nautilus_la-eiciel_xattr_window.lo -MD -MP -MF $(DEPDIR)/libeiciel_nautilus_la-eiciel_xattr_window.Tpo -c -o libeiciel_nautilus_la-eiciel_xattr_window.lo `test -f 'eiciel_xattr_window.cpp' || echo '$(srcdir)/'`eiciel_xattr_window.cpp
818 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libeiciel_nautilus_la-eiciel_xattr_window.Tpo $(DEPDIR)/libeiciel_nautilus_la-eiciel_xattr_window.Plo
819 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='eiciel_xattr_window.cpp' object='libeiciel_nautilus_la-eiciel_xattr_window.lo' libtool=yes @AMDEPBACKSLASH@
820 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
821 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libeiciel_nautilus_la_CPPFLAGS) $(CPPFLAGS) $(libeiciel_nautilus_la_CXXFLAGS) $(CXXFLAGS) -c -o libeiciel_nautilus_la-eiciel_xattr_window.lo `test -f 'eiciel_xattr_window.cpp' || echo '$(srcdir)/'`eiciel_xattr_window.cpp
822
823 libeiciel_nautilus_la-eiciel_xattr_controller.lo: eiciel_xattr_controller.cpp
824 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libeiciel_nautilus_la_CPPFLAGS) $(CPPFLAGS) $(libeiciel_nautilus_la_CXXFLAGS) $(CXXFLAGS) -MT libeiciel_nautilus_la-eiciel_xattr_controller.lo -MD -MP -MF $(DEPDIR)/libeiciel_nautilus_la-eiciel_xattr_controller.Tpo -c -o libeiciel_nautilus_la-eiciel_xattr_controller.lo `test -f 'eiciel_xattr_controller.cpp' || echo '$(srcdir)/'`eiciel_xattr_controller.cpp
825 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libeiciel_nautilus_la-eiciel_xattr_controller.Tpo $(DEPDIR)/libeiciel_nautilus_la-eiciel_xattr_controller.Plo
826 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='eiciel_xattr_controller.cpp' object='libeiciel_nautilus_la-eiciel_xattr_controller.lo' libtool=yes @AMDEPBACKSLASH@
827 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
828 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libeiciel_nautilus_la_CPPFLAGS) $(CPPFLAGS) $(libeiciel_nautilus_la_CXXFLAGS) $(CXXFLAGS) -c -o libeiciel_nautilus_la-eiciel_xattr_controller.lo `test -f 'eiciel_xattr_controller.cpp' || echo '$(srcdir)/'`eiciel_xattr_controller.cpp
829
669830 libeiciel_nautilus_la-eiciel_nautilus_page.lo: eiciel_nautilus_page.cpp
670831 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libeiciel_nautilus_la_CPPFLAGS) $(CPPFLAGS) $(libeiciel_nautilus_la_CXXFLAGS) $(CXXFLAGS) -MT libeiciel_nautilus_la-eiciel_nautilus_page.lo -MD -MP -MF $(DEPDIR)/libeiciel_nautilus_la-eiciel_nautilus_page.Tpo -c -o libeiciel_nautilus_la-eiciel_nautilus_page.lo `test -f 'eiciel_nautilus_page.cpp' || echo '$(srcdir)/'`eiciel_nautilus_page.cpp
671832 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libeiciel_nautilus_la-eiciel_nautilus_page.Tpo $(DEPDIR)/libeiciel_nautilus_la-eiciel_nautilus_page.Plo
673834 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
674835 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libeiciel_nautilus_la_CPPFLAGS) $(CPPFLAGS) $(libeiciel_nautilus_la_CXXFLAGS) $(CXXFLAGS) -c -o libeiciel_nautilus_la-eiciel_nautilus_page.lo `test -f 'eiciel_nautilus_page.cpp' || echo '$(srcdir)/'`eiciel_nautilus_page.cpp
675836
676 libeiciel_nautilus_la-eiciel_main_controller.lo: eiciel_main_controller.cpp
677 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libeiciel_nautilus_la_CPPFLAGS) $(CPPFLAGS) $(libeiciel_nautilus_la_CXXFLAGS) $(CXXFLAGS) -MT libeiciel_nautilus_la-eiciel_main_controller.lo -MD -MP -MF $(DEPDIR)/libeiciel_nautilus_la-eiciel_main_controller.Tpo -c -o libeiciel_nautilus_la-eiciel_main_controller.lo `test -f 'eiciel_main_controller.cpp' || echo '$(srcdir)/'`eiciel_main_controller.cpp
678 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libeiciel_nautilus_la-eiciel_main_controller.Tpo $(DEPDIR)/libeiciel_nautilus_la-eiciel_main_controller.Plo
679 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='eiciel_main_controller.cpp' object='libeiciel_nautilus_la-eiciel_main_controller.lo' libtool=yes @AMDEPBACKSLASH@
680 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
681 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libeiciel_nautilus_la_CPPFLAGS) $(CPPFLAGS) $(libeiciel_nautilus_la_CXXFLAGS) $(CXXFLAGS) -c -o libeiciel_nautilus_la-eiciel_main_controller.lo `test -f 'eiciel_main_controller.cpp' || echo '$(srcdir)/'`eiciel_main_controller.cpp
682
683 libeiciel_nautilus_la-eiciel_main_window.lo: eiciel_main_window.cpp
684 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libeiciel_nautilus_la_CPPFLAGS) $(CPPFLAGS) $(libeiciel_nautilus_la_CXXFLAGS) $(CXXFLAGS) -MT libeiciel_nautilus_la-eiciel_main_window.lo -MD -MP -MF $(DEPDIR)/libeiciel_nautilus_la-eiciel_main_window.Tpo -c -o libeiciel_nautilus_la-eiciel_main_window.lo `test -f 'eiciel_main_window.cpp' || echo '$(srcdir)/'`eiciel_main_window.cpp
685 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libeiciel_nautilus_la-eiciel_main_window.Tpo $(DEPDIR)/libeiciel_nautilus_la-eiciel_main_window.Plo
686 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='eiciel_main_window.cpp' object='libeiciel_nautilus_la-eiciel_main_window.lo' libtool=yes @AMDEPBACKSLASH@
687 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
688 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libeiciel_nautilus_la_CPPFLAGS) $(CPPFLAGS) $(libeiciel_nautilus_la_CXXFLAGS) $(CXXFLAGS) -c -o libeiciel_nautilus_la-eiciel_main_window.lo `test -f 'eiciel_main_window.cpp' || echo '$(srcdir)/'`eiciel_main_window.cpp
689
690 libeiciel_nautilus_la-cellrenderer_acl.lo: cellrenderer_acl.cpp
691 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libeiciel_nautilus_la_CPPFLAGS) $(CPPFLAGS) $(libeiciel_nautilus_la_CXXFLAGS) $(CXXFLAGS) -MT libeiciel_nautilus_la-cellrenderer_acl.lo -MD -MP -MF $(DEPDIR)/libeiciel_nautilus_la-cellrenderer_acl.Tpo -c -o libeiciel_nautilus_la-cellrenderer_acl.lo `test -f 'cellrenderer_acl.cpp' || echo '$(srcdir)/'`cellrenderer_acl.cpp
692 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libeiciel_nautilus_la-cellrenderer_acl.Tpo $(DEPDIR)/libeiciel_nautilus_la-cellrenderer_acl.Plo
693 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='cellrenderer_acl.cpp' object='libeiciel_nautilus_la-cellrenderer_acl.lo' libtool=yes @AMDEPBACKSLASH@
694 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
695 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libeiciel_nautilus_la_CPPFLAGS) $(CPPFLAGS) $(libeiciel_nautilus_la_CXXFLAGS) $(CXXFLAGS) -c -o libeiciel_nautilus_la-cellrenderer_acl.lo `test -f 'cellrenderer_acl.cpp' || echo '$(srcdir)/'`cellrenderer_acl.cpp
696
697 libeiciel_nautilus_la-xattr_manager.lo: xattr_manager.cpp
698 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libeiciel_nautilus_la_CPPFLAGS) $(CPPFLAGS) $(libeiciel_nautilus_la_CXXFLAGS) $(CXXFLAGS) -MT libeiciel_nautilus_la-xattr_manager.lo -MD -MP -MF $(DEPDIR)/libeiciel_nautilus_la-xattr_manager.Tpo -c -o libeiciel_nautilus_la-xattr_manager.lo `test -f 'xattr_manager.cpp' || echo '$(srcdir)/'`xattr_manager.cpp
699 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libeiciel_nautilus_la-xattr_manager.Tpo $(DEPDIR)/libeiciel_nautilus_la-xattr_manager.Plo
700 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='xattr_manager.cpp' object='libeiciel_nautilus_la-xattr_manager.lo' libtool=yes @AMDEPBACKSLASH@
701 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
702 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libeiciel_nautilus_la_CPPFLAGS) $(CPPFLAGS) $(libeiciel_nautilus_la_CXXFLAGS) $(CXXFLAGS) -c -o libeiciel_nautilus_la-xattr_manager.lo `test -f 'xattr_manager.cpp' || echo '$(srcdir)/'`xattr_manager.cpp
703
704 libeiciel_nautilus_la-eiciel_xattr_window.lo: eiciel_xattr_window.cpp
705 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libeiciel_nautilus_la_CPPFLAGS) $(CPPFLAGS) $(libeiciel_nautilus_la_CXXFLAGS) $(CXXFLAGS) -MT libeiciel_nautilus_la-eiciel_xattr_window.lo -MD -MP -MF $(DEPDIR)/libeiciel_nautilus_la-eiciel_xattr_window.Tpo -c -o libeiciel_nautilus_la-eiciel_xattr_window.lo `test -f 'eiciel_xattr_window.cpp' || echo '$(srcdir)/'`eiciel_xattr_window.cpp
706 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libeiciel_nautilus_la-eiciel_xattr_window.Tpo $(DEPDIR)/libeiciel_nautilus_la-eiciel_xattr_window.Plo
707 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='eiciel_xattr_window.cpp' object='libeiciel_nautilus_la-eiciel_xattr_window.lo' libtool=yes @AMDEPBACKSLASH@
708 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
709 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libeiciel_nautilus_la_CPPFLAGS) $(CPPFLAGS) $(libeiciel_nautilus_la_CXXFLAGS) $(CXXFLAGS) -c -o libeiciel_nautilus_la-eiciel_xattr_window.lo `test -f 'eiciel_xattr_window.cpp' || echo '$(srcdir)/'`eiciel_xattr_window.cpp
710
711 libeiciel_nautilus_la-eiciel_xattr_controller.lo: eiciel_xattr_controller.cpp
712 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libeiciel_nautilus_la_CPPFLAGS) $(CPPFLAGS) $(libeiciel_nautilus_la_CXXFLAGS) $(CXXFLAGS) -MT libeiciel_nautilus_la-eiciel_xattr_controller.lo -MD -MP -MF $(DEPDIR)/libeiciel_nautilus_la-eiciel_xattr_controller.Tpo -c -o libeiciel_nautilus_la-eiciel_xattr_controller.lo `test -f 'eiciel_xattr_controller.cpp' || echo '$(srcdir)/'`eiciel_xattr_controller.cpp
713 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libeiciel_nautilus_la-eiciel_xattr_controller.Tpo $(DEPDIR)/libeiciel_nautilus_la-eiciel_xattr_controller.Plo
714 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='eiciel_xattr_controller.cpp' object='libeiciel_nautilus_la-eiciel_xattr_controller.lo' libtool=yes @AMDEPBACKSLASH@
715 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
716 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libeiciel_nautilus_la_CPPFLAGS) $(CPPFLAGS) $(libeiciel_nautilus_la_CXXFLAGS) $(CXXFLAGS) -c -o libeiciel_nautilus_la-eiciel_xattr_controller.lo `test -f 'eiciel_xattr_controller.cpp' || echo '$(srcdir)/'`eiciel_xattr_controller.cpp
717
718837 eiciel-acl_manager.o: acl_manager.cpp
719838 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -MT eiciel-acl_manager.o -MD -MP -MF $(DEPDIR)/eiciel-acl_manager.Tpo -c -o eiciel-acl_manager.o `test -f 'acl_manager.cpp' || echo '$(srcdir)/'`acl_manager.cpp
720839 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/eiciel-acl_manager.Tpo $(DEPDIR)/eiciel-acl_manager.Po
729848 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
730849 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -c -o eiciel-acl_manager.obj `if test -f 'acl_manager.cpp'; then $(CYGPATH_W) 'acl_manager.cpp'; else $(CYGPATH_W) '$(srcdir)/acl_manager.cpp'; fi`
731850
732 eiciel-eiciel_main_controller.o: eiciel_main_controller.cpp
733 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -MT eiciel-eiciel_main_controller.o -MD -MP -MF $(DEPDIR)/eiciel-eiciel_main_controller.Tpo -c -o eiciel-eiciel_main_controller.o `test -f 'eiciel_main_controller.cpp' || echo '$(srcdir)/'`eiciel_main_controller.cpp
734 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/eiciel-eiciel_main_controller.Tpo $(DEPDIR)/eiciel-eiciel_main_controller.Po
735 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='eiciel_main_controller.cpp' object='eiciel-eiciel_main_controller.o' libtool=no @AMDEPBACKSLASH@
736 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
737 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -c -o eiciel-eiciel_main_controller.o `test -f 'eiciel_main_controller.cpp' || echo '$(srcdir)/'`eiciel_main_controller.cpp
738
739 eiciel-eiciel_main_controller.obj: eiciel_main_controller.cpp
740 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -MT eiciel-eiciel_main_controller.obj -MD -MP -MF $(DEPDIR)/eiciel-eiciel_main_controller.Tpo -c -o eiciel-eiciel_main_controller.obj `if test -f 'eiciel_main_controller.cpp'; then $(CYGPATH_W) 'eiciel_main_controller.cpp'; else $(CYGPATH_W) '$(srcdir)/eiciel_main_controller.cpp'; fi`
741 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/eiciel-eiciel_main_controller.Tpo $(DEPDIR)/eiciel-eiciel_main_controller.Po
742 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='eiciel_main_controller.cpp' object='eiciel-eiciel_main_controller.obj' libtool=no @AMDEPBACKSLASH@
743 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
744 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -c -o eiciel-eiciel_main_controller.obj `if test -f 'eiciel_main_controller.cpp'; then $(CYGPATH_W) 'eiciel_main_controller.cpp'; else $(CYGPATH_W) '$(srcdir)/eiciel_main_controller.cpp'; fi`
745
746851 eiciel-eiciel_main_window.o: eiciel_main_window.cpp
747852 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -MT eiciel-eiciel_main_window.o -MD -MP -MF $(DEPDIR)/eiciel-eiciel_main_window.Tpo -c -o eiciel-eiciel_main_window.o `test -f 'eiciel_main_window.cpp' || echo '$(srcdir)/'`eiciel_main_window.cpp
748853 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/eiciel-eiciel_main_window.Tpo $(DEPDIR)/eiciel-eiciel_main_window.Po
757862 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
758863 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -c -o eiciel-eiciel_main_window.obj `if test -f 'eiciel_main_window.cpp'; then $(CYGPATH_W) 'eiciel_main_window.cpp'; else $(CYGPATH_W) '$(srcdir)/eiciel_main_window.cpp'; fi`
759864
865 eiciel-eiciel_main_window_controller.o: eiciel_main_window_controller.cpp
866 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -MT eiciel-eiciel_main_window_controller.o -MD -MP -MF $(DEPDIR)/eiciel-eiciel_main_window_controller.Tpo -c -o eiciel-eiciel_main_window_controller.o `test -f 'eiciel_main_window_controller.cpp' || echo '$(srcdir)/'`eiciel_main_window_controller.cpp
867 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/eiciel-eiciel_main_window_controller.Tpo $(DEPDIR)/eiciel-eiciel_main_window_controller.Po
868 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='eiciel_main_window_controller.cpp' object='eiciel-eiciel_main_window_controller.o' libtool=no @AMDEPBACKSLASH@
869 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
870 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -c -o eiciel-eiciel_main_window_controller.o `test -f 'eiciel_main_window_controller.cpp' || echo '$(srcdir)/'`eiciel_main_window_controller.cpp
871
872 eiciel-eiciel_main_window_controller.obj: eiciel_main_window_controller.cpp
873 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -MT eiciel-eiciel_main_window_controller.obj -MD -MP -MF $(DEPDIR)/eiciel-eiciel_main_window_controller.Tpo -c -o eiciel-eiciel_main_window_controller.obj `if test -f 'eiciel_main_window_controller.cpp'; then $(CYGPATH_W) 'eiciel_main_window_controller.cpp'; else $(CYGPATH_W) '$(srcdir)/eiciel_main_window_controller.cpp'; fi`
874 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/eiciel-eiciel_main_window_controller.Tpo $(DEPDIR)/eiciel-eiciel_main_window_controller.Po
875 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='eiciel_main_window_controller.cpp' object='eiciel-eiciel_main_window_controller.obj' libtool=no @AMDEPBACKSLASH@
876 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
877 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -c -o eiciel-eiciel_main_window_controller.obj `if test -f 'eiciel_main_window_controller.cpp'; then $(CYGPATH_W) 'eiciel_main_window_controller.cpp'; else $(CYGPATH_W) '$(srcdir)/eiciel_main_window_controller.cpp'; fi`
878
879 eiciel-eiciel_acl_list.o: eiciel_acl_list.cpp
880 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -MT eiciel-eiciel_acl_list.o -MD -MP -MF $(DEPDIR)/eiciel-eiciel_acl_list.Tpo -c -o eiciel-eiciel_acl_list.o `test -f 'eiciel_acl_list.cpp' || echo '$(srcdir)/'`eiciel_acl_list.cpp
881 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/eiciel-eiciel_acl_list.Tpo $(DEPDIR)/eiciel-eiciel_acl_list.Po
882 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='eiciel_acl_list.cpp' object='eiciel-eiciel_acl_list.o' libtool=no @AMDEPBACKSLASH@
883 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
884 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -c -o eiciel-eiciel_acl_list.o `test -f 'eiciel_acl_list.cpp' || echo '$(srcdir)/'`eiciel_acl_list.cpp
885
886 eiciel-eiciel_acl_list.obj: eiciel_acl_list.cpp
887 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -MT eiciel-eiciel_acl_list.obj -MD -MP -MF $(DEPDIR)/eiciel-eiciel_acl_list.Tpo -c -o eiciel-eiciel_acl_list.obj `if test -f 'eiciel_acl_list.cpp'; then $(CYGPATH_W) 'eiciel_acl_list.cpp'; else $(CYGPATH_W) '$(srcdir)/eiciel_acl_list.cpp'; fi`
888 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/eiciel-eiciel_acl_list.Tpo $(DEPDIR)/eiciel-eiciel_acl_list.Po
889 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='eiciel_acl_list.cpp' object='eiciel-eiciel_acl_list.obj' libtool=no @AMDEPBACKSLASH@
890 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
891 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -c -o eiciel-eiciel_acl_list.obj `if test -f 'eiciel_acl_list.cpp'; then $(CYGPATH_W) 'eiciel_acl_list.cpp'; else $(CYGPATH_W) '$(srcdir)/eiciel_acl_list.cpp'; fi`
892
893 eiciel-eiciel_acl_list_controller.o: eiciel_acl_list_controller.cpp
894 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -MT eiciel-eiciel_acl_list_controller.o -MD -MP -MF $(DEPDIR)/eiciel-eiciel_acl_list_controller.Tpo -c -o eiciel-eiciel_acl_list_controller.o `test -f 'eiciel_acl_list_controller.cpp' || echo '$(srcdir)/'`eiciel_acl_list_controller.cpp
895 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/eiciel-eiciel_acl_list_controller.Tpo $(DEPDIR)/eiciel-eiciel_acl_list_controller.Po
896 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='eiciel_acl_list_controller.cpp' object='eiciel-eiciel_acl_list_controller.o' libtool=no @AMDEPBACKSLASH@
897 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
898 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -c -o eiciel-eiciel_acl_list_controller.o `test -f 'eiciel_acl_list_controller.cpp' || echo '$(srcdir)/'`eiciel_acl_list_controller.cpp
899
900 eiciel-eiciel_acl_list_controller.obj: eiciel_acl_list_controller.cpp
901 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -MT eiciel-eiciel_acl_list_controller.obj -MD -MP -MF $(DEPDIR)/eiciel-eiciel_acl_list_controller.Tpo -c -o eiciel-eiciel_acl_list_controller.obj `if test -f 'eiciel_acl_list_controller.cpp'; then $(CYGPATH_W) 'eiciel_acl_list_controller.cpp'; else $(CYGPATH_W) '$(srcdir)/eiciel_acl_list_controller.cpp'; fi`
902 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/eiciel-eiciel_acl_list_controller.Tpo $(DEPDIR)/eiciel-eiciel_acl_list_controller.Po
903 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='eiciel_acl_list_controller.cpp' object='eiciel-eiciel_acl_list_controller.obj' libtool=no @AMDEPBACKSLASH@
904 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
905 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -c -o eiciel-eiciel_acl_list_controller.obj `if test -f 'eiciel_acl_list_controller.cpp'; then $(CYGPATH_W) 'eiciel_acl_list_controller.cpp'; else $(CYGPATH_W) '$(srcdir)/eiciel_acl_list_controller.cpp'; fi`
906
907 eiciel-eiciel_participant_list.o: eiciel_participant_list.cpp
908 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -MT eiciel-eiciel_participant_list.o -MD -MP -MF $(DEPDIR)/eiciel-eiciel_participant_list.Tpo -c -o eiciel-eiciel_participant_list.o `test -f 'eiciel_participant_list.cpp' || echo '$(srcdir)/'`eiciel_participant_list.cpp
909 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/eiciel-eiciel_participant_list.Tpo $(DEPDIR)/eiciel-eiciel_participant_list.Po
910 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='eiciel_participant_list.cpp' object='eiciel-eiciel_participant_list.o' libtool=no @AMDEPBACKSLASH@
911 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
912 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -c -o eiciel-eiciel_participant_list.o `test -f 'eiciel_participant_list.cpp' || echo '$(srcdir)/'`eiciel_participant_list.cpp
913
914 eiciel-eiciel_participant_list.obj: eiciel_participant_list.cpp
915 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -MT eiciel-eiciel_participant_list.obj -MD -MP -MF $(DEPDIR)/eiciel-eiciel_participant_list.Tpo -c -o eiciel-eiciel_participant_list.obj `if test -f 'eiciel_participant_list.cpp'; then $(CYGPATH_W) 'eiciel_participant_list.cpp'; else $(CYGPATH_W) '$(srcdir)/eiciel_participant_list.cpp'; fi`
916 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/eiciel-eiciel_participant_list.Tpo $(DEPDIR)/eiciel-eiciel_participant_list.Po
917 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='eiciel_participant_list.cpp' object='eiciel-eiciel_participant_list.obj' libtool=no @AMDEPBACKSLASH@
918 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
919 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -c -o eiciel-eiciel_participant_list.obj `if test -f 'eiciel_participant_list.cpp'; then $(CYGPATH_W) 'eiciel_participant_list.cpp'; else $(CYGPATH_W) '$(srcdir)/eiciel_participant_list.cpp'; fi`
920
921 eiciel-eiciel_participant_list_controller.o: eiciel_participant_list_controller.cpp
922 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -MT eiciel-eiciel_participant_list_controller.o -MD -MP -MF $(DEPDIR)/eiciel-eiciel_participant_list_controller.Tpo -c -o eiciel-eiciel_participant_list_controller.o `test -f 'eiciel_participant_list_controller.cpp' || echo '$(srcdir)/'`eiciel_participant_list_controller.cpp
923 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/eiciel-eiciel_participant_list_controller.Tpo $(DEPDIR)/eiciel-eiciel_participant_list_controller.Po
924 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='eiciel_participant_list_controller.cpp' object='eiciel-eiciel_participant_list_controller.o' libtool=no @AMDEPBACKSLASH@
925 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
926 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -c -o eiciel-eiciel_participant_list_controller.o `test -f 'eiciel_participant_list_controller.cpp' || echo '$(srcdir)/'`eiciel_participant_list_controller.cpp
927
928 eiciel-eiciel_participant_list_controller.obj: eiciel_participant_list_controller.cpp
929 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -MT eiciel-eiciel_participant_list_controller.obj -MD -MP -MF $(DEPDIR)/eiciel-eiciel_participant_list_controller.Tpo -c -o eiciel-eiciel_participant_list_controller.obj `if test -f 'eiciel_participant_list_controller.cpp'; then $(CYGPATH_W) 'eiciel_participant_list_controller.cpp'; else $(CYGPATH_W) '$(srcdir)/eiciel_participant_list_controller.cpp'; fi`
930 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/eiciel-eiciel_participant_list_controller.Tpo $(DEPDIR)/eiciel-eiciel_participant_list_controller.Po
931 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='eiciel_participant_list_controller.cpp' object='eiciel-eiciel_participant_list_controller.obj' libtool=no @AMDEPBACKSLASH@
932 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
933 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -c -o eiciel-eiciel_participant_list_controller.obj `if test -f 'eiciel_participant_list_controller.cpp'; then $(CYGPATH_W) 'eiciel_participant_list_controller.cpp'; else $(CYGPATH_W) '$(srcdir)/eiciel_participant_list_controller.cpp'; fi`
934
935 eiciel-eiciel_enclosed_editor_window_controller.o: eiciel_enclosed_editor_window_controller.cpp
936 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -MT eiciel-eiciel_enclosed_editor_window_controller.o -MD -MP -MF $(DEPDIR)/eiciel-eiciel_enclosed_editor_window_controller.Tpo -c -o eiciel-eiciel_enclosed_editor_window_controller.o `test -f 'eiciel_enclosed_editor_window_controller.cpp' || echo '$(srcdir)/'`eiciel_enclosed_editor_window_controller.cpp
937 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/eiciel-eiciel_enclosed_editor_window_controller.Tpo $(DEPDIR)/eiciel-eiciel_enclosed_editor_window_controller.Po
938 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='eiciel_enclosed_editor_window_controller.cpp' object='eiciel-eiciel_enclosed_editor_window_controller.o' libtool=no @AMDEPBACKSLASH@
939 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
940 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -c -o eiciel-eiciel_enclosed_editor_window_controller.o `test -f 'eiciel_enclosed_editor_window_controller.cpp' || echo '$(srcdir)/'`eiciel_enclosed_editor_window_controller.cpp
941
942 eiciel-eiciel_enclosed_editor_window_controller.obj: eiciel_enclosed_editor_window_controller.cpp
943 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -MT eiciel-eiciel_enclosed_editor_window_controller.obj -MD -MP -MF $(DEPDIR)/eiciel-eiciel_enclosed_editor_window_controller.Tpo -c -o eiciel-eiciel_enclosed_editor_window_controller.obj `if test -f 'eiciel_enclosed_editor_window_controller.cpp'; then $(CYGPATH_W) 'eiciel_enclosed_editor_window_controller.cpp'; else $(CYGPATH_W) '$(srcdir)/eiciel_enclosed_editor_window_controller.cpp'; fi`
944 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/eiciel-eiciel_enclosed_editor_window_controller.Tpo $(DEPDIR)/eiciel-eiciel_enclosed_editor_window_controller.Po
945 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='eiciel_enclosed_editor_window_controller.cpp' object='eiciel-eiciel_enclosed_editor_window_controller.obj' libtool=no @AMDEPBACKSLASH@
946 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
947 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -c -o eiciel-eiciel_enclosed_editor_window_controller.obj `if test -f 'eiciel_enclosed_editor_window_controller.cpp'; then $(CYGPATH_W) 'eiciel_enclosed_editor_window_controller.cpp'; else $(CYGPATH_W) '$(srcdir)/eiciel_enclosed_editor_window_controller.cpp'; fi`
948
949 eiciel-eiciel_enclosed_editor_window.o: eiciel_enclosed_editor_window.cpp
950 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -MT eiciel-eiciel_enclosed_editor_window.o -MD -MP -MF $(DEPDIR)/eiciel-eiciel_enclosed_editor_window.Tpo -c -o eiciel-eiciel_enclosed_editor_window.o `test -f 'eiciel_enclosed_editor_window.cpp' || echo '$(srcdir)/'`eiciel_enclosed_editor_window.cpp
951 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/eiciel-eiciel_enclosed_editor_window.Tpo $(DEPDIR)/eiciel-eiciel_enclosed_editor_window.Po
952 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='eiciel_enclosed_editor_window.cpp' object='eiciel-eiciel_enclosed_editor_window.o' libtool=no @AMDEPBACKSLASH@
953 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
954 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -c -o eiciel-eiciel_enclosed_editor_window.o `test -f 'eiciel_enclosed_editor_window.cpp' || echo '$(srcdir)/'`eiciel_enclosed_editor_window.cpp
955
956 eiciel-eiciel_enclosed_editor_window.obj: eiciel_enclosed_editor_window.cpp
957 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -MT eiciel-eiciel_enclosed_editor_window.obj -MD -MP -MF $(DEPDIR)/eiciel-eiciel_enclosed_editor_window.Tpo -c -o eiciel-eiciel_enclosed_editor_window.obj `if test -f 'eiciel_enclosed_editor_window.cpp'; then $(CYGPATH_W) 'eiciel_enclosed_editor_window.cpp'; else $(CYGPATH_W) '$(srcdir)/eiciel_enclosed_editor_window.cpp'; fi`
958 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/eiciel-eiciel_enclosed_editor_window.Tpo $(DEPDIR)/eiciel-eiciel_enclosed_editor_window.Po
959 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='eiciel_enclosed_editor_window.cpp' object='eiciel-eiciel_enclosed_editor_window.obj' libtool=no @AMDEPBACKSLASH@
960 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
961 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -c -o eiciel-eiciel_enclosed_editor_window.obj `if test -f 'eiciel_enclosed_editor_window.cpp'; then $(CYGPATH_W) 'eiciel_enclosed_editor_window.cpp'; else $(CYGPATH_W) '$(srcdir)/eiciel_enclosed_editor_window.cpp'; fi`
962
760963 eiciel-cellrenderer_acl.o: cellrenderer_acl.cpp
761964 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -MT eiciel-cellrenderer_acl.o -MD -MP -MF $(DEPDIR)/eiciel-cellrenderer_acl.Tpo -c -o eiciel-cellrenderer_acl.o `test -f 'cellrenderer_acl.cpp' || echo '$(srcdir)/'`cellrenderer_acl.cpp
762965 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/eiciel-cellrenderer_acl.Tpo $(DEPDIR)/eiciel-cellrenderer_acl.Po
771974 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
772975 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -c -o eiciel-cellrenderer_acl.obj `if test -f 'cellrenderer_acl.cpp'; then $(CYGPATH_W) 'cellrenderer_acl.cpp'; else $(CYGPATH_W) '$(srcdir)/cellrenderer_acl.cpp'; fi`
773976
977 eiciel-xattr_manager.o: xattr_manager.cpp
978 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -MT eiciel-xattr_manager.o -MD -MP -MF $(DEPDIR)/eiciel-xattr_manager.Tpo -c -o eiciel-xattr_manager.o `test -f 'xattr_manager.cpp' || echo '$(srcdir)/'`xattr_manager.cpp
979 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/eiciel-xattr_manager.Tpo $(DEPDIR)/eiciel-xattr_manager.Po
980 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='xattr_manager.cpp' object='eiciel-xattr_manager.o' libtool=no @AMDEPBACKSLASH@
981 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
982 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -c -o eiciel-xattr_manager.o `test -f 'xattr_manager.cpp' || echo '$(srcdir)/'`xattr_manager.cpp
983
984 eiciel-xattr_manager.obj: xattr_manager.cpp
985 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -MT eiciel-xattr_manager.obj -MD -MP -MF $(DEPDIR)/eiciel-xattr_manager.Tpo -c -o eiciel-xattr_manager.obj `if test -f 'xattr_manager.cpp'; then $(CYGPATH_W) 'xattr_manager.cpp'; else $(CYGPATH_W) '$(srcdir)/xattr_manager.cpp'; fi`
986 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/eiciel-xattr_manager.Tpo $(DEPDIR)/eiciel-xattr_manager.Po
987 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='xattr_manager.cpp' object='eiciel-xattr_manager.obj' libtool=no @AMDEPBACKSLASH@
988 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
989 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -c -o eiciel-xattr_manager.obj `if test -f 'xattr_manager.cpp'; then $(CYGPATH_W) 'xattr_manager.cpp'; else $(CYGPATH_W) '$(srcdir)/xattr_manager.cpp'; fi`
990
991 eiciel-eiciel_xattr_window.o: eiciel_xattr_window.cpp
992 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -MT eiciel-eiciel_xattr_window.o -MD -MP -MF $(DEPDIR)/eiciel-eiciel_xattr_window.Tpo -c -o eiciel-eiciel_xattr_window.o `test -f 'eiciel_xattr_window.cpp' || echo '$(srcdir)/'`eiciel_xattr_window.cpp
993 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/eiciel-eiciel_xattr_window.Tpo $(DEPDIR)/eiciel-eiciel_xattr_window.Po
994 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='eiciel_xattr_window.cpp' object='eiciel-eiciel_xattr_window.o' libtool=no @AMDEPBACKSLASH@
995 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
996 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -c -o eiciel-eiciel_xattr_window.o `test -f 'eiciel_xattr_window.cpp' || echo '$(srcdir)/'`eiciel_xattr_window.cpp
997
998 eiciel-eiciel_xattr_window.obj: eiciel_xattr_window.cpp
999 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -MT eiciel-eiciel_xattr_window.obj -MD -MP -MF $(DEPDIR)/eiciel-eiciel_xattr_window.Tpo -c -o eiciel-eiciel_xattr_window.obj `if test -f 'eiciel_xattr_window.cpp'; then $(CYGPATH_W) 'eiciel_xattr_window.cpp'; else $(CYGPATH_W) '$(srcdir)/eiciel_xattr_window.cpp'; fi`
1000 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/eiciel-eiciel_xattr_window.Tpo $(DEPDIR)/eiciel-eiciel_xattr_window.Po
1001 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='eiciel_xattr_window.cpp' object='eiciel-eiciel_xattr_window.obj' libtool=no @AMDEPBACKSLASH@
1002 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1003 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -c -o eiciel-eiciel_xattr_window.obj `if test -f 'eiciel_xattr_window.cpp'; then $(CYGPATH_W) 'eiciel_xattr_window.cpp'; else $(CYGPATH_W) '$(srcdir)/eiciel_xattr_window.cpp'; fi`
1004
1005 eiciel-eiciel_xattr_controller.o: eiciel_xattr_controller.cpp
1006 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -MT eiciel-eiciel_xattr_controller.o -MD -MP -MF $(DEPDIR)/eiciel-eiciel_xattr_controller.Tpo -c -o eiciel-eiciel_xattr_controller.o `test -f 'eiciel_xattr_controller.cpp' || echo '$(srcdir)/'`eiciel_xattr_controller.cpp
1007 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/eiciel-eiciel_xattr_controller.Tpo $(DEPDIR)/eiciel-eiciel_xattr_controller.Po
1008 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='eiciel_xattr_controller.cpp' object='eiciel-eiciel_xattr_controller.o' libtool=no @AMDEPBACKSLASH@
1009 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1010 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -c -o eiciel-eiciel_xattr_controller.o `test -f 'eiciel_xattr_controller.cpp' || echo '$(srcdir)/'`eiciel_xattr_controller.cpp
1011
1012 eiciel-eiciel_xattr_controller.obj: eiciel_xattr_controller.cpp
1013 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -MT eiciel-eiciel_xattr_controller.obj -MD -MP -MF $(DEPDIR)/eiciel-eiciel_xattr_controller.Tpo -c -o eiciel-eiciel_xattr_controller.obj `if test -f 'eiciel_xattr_controller.cpp'; then $(CYGPATH_W) 'eiciel_xattr_controller.cpp'; else $(CYGPATH_W) '$(srcdir)/eiciel_xattr_controller.cpp'; fi`
1014 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/eiciel-eiciel_xattr_controller.Tpo $(DEPDIR)/eiciel-eiciel_xattr_controller.Po
1015 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='eiciel_xattr_controller.cpp' object='eiciel-eiciel_xattr_controller.obj' libtool=no @AMDEPBACKSLASH@
1016 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1017 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -c -o eiciel-eiciel_xattr_controller.obj `if test -f 'eiciel_xattr_controller.cpp'; then $(CYGPATH_W) 'eiciel_xattr_controller.cpp'; else $(CYGPATH_W) '$(srcdir)/eiciel_xattr_controller.cpp'; fi`
1018
7741019 eiciel-eiciel_standalone.o: eiciel_standalone.cpp
7751020 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -MT eiciel-eiciel_standalone.o -MD -MP -MF $(DEPDIR)/eiciel-eiciel_standalone.Tpo -c -o eiciel-eiciel_standalone.o `test -f 'eiciel_standalone.cpp' || echo '$(srcdir)/'`eiciel_standalone.cpp
7761021 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/eiciel-eiciel_standalone.Tpo $(DEPDIR)/eiciel-eiciel_standalone.Po
7981043 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='eiciel_container.cpp' object='eiciel-eiciel_container.obj' libtool=no @AMDEPBACKSLASH@
7991044 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
8001045 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -c -o eiciel-eiciel_container.obj `if test -f 'eiciel_container.cpp'; then $(CYGPATH_W) 'eiciel_container.cpp'; else $(CYGPATH_W) '$(srcdir)/eiciel_container.cpp'; fi`
801
802 eiciel-xattr_manager.o: xattr_manager.cpp
803 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -MT eiciel-xattr_manager.o -MD -MP -MF $(DEPDIR)/eiciel-xattr_manager.Tpo -c -o eiciel-xattr_manager.o `test -f 'xattr_manager.cpp' || echo '$(srcdir)/'`xattr_manager.cpp
804 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/eiciel-xattr_manager.Tpo $(DEPDIR)/eiciel-xattr_manager.Po
805 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='xattr_manager.cpp' object='eiciel-xattr_manager.o' libtool=no @AMDEPBACKSLASH@
806 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
807 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -c -o eiciel-xattr_manager.o `test -f 'xattr_manager.cpp' || echo '$(srcdir)/'`xattr_manager.cpp
808
809 eiciel-xattr_manager.obj: xattr_manager.cpp
810 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -MT eiciel-xattr_manager.obj -MD -MP -MF $(DEPDIR)/eiciel-xattr_manager.Tpo -c -o eiciel-xattr_manager.obj `if test -f 'xattr_manager.cpp'; then $(CYGPATH_W) 'xattr_manager.cpp'; else $(CYGPATH_W) '$(srcdir)/xattr_manager.cpp'; fi`
811 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/eiciel-xattr_manager.Tpo $(DEPDIR)/eiciel-xattr_manager.Po
812 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='xattr_manager.cpp' object='eiciel-xattr_manager.obj' libtool=no @AMDEPBACKSLASH@
813 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
814 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -c -o eiciel-xattr_manager.obj `if test -f 'xattr_manager.cpp'; then $(CYGPATH_W) 'xattr_manager.cpp'; else $(CYGPATH_W) '$(srcdir)/xattr_manager.cpp'; fi`
815
816 eiciel-eiciel_xattr_window.o: eiciel_xattr_window.cpp
817 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -MT eiciel-eiciel_xattr_window.o -MD -MP -MF $(DEPDIR)/eiciel-eiciel_xattr_window.Tpo -c -o eiciel-eiciel_xattr_window.o `test -f 'eiciel_xattr_window.cpp' || echo '$(srcdir)/'`eiciel_xattr_window.cpp
818 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/eiciel-eiciel_xattr_window.Tpo $(DEPDIR)/eiciel-eiciel_xattr_window.Po
819 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='eiciel_xattr_window.cpp' object='eiciel-eiciel_xattr_window.o' libtool=no @AMDEPBACKSLASH@
820 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
821 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -c -o eiciel-eiciel_xattr_window.o `test -f 'eiciel_xattr_window.cpp' || echo '$(srcdir)/'`eiciel_xattr_window.cpp
822
823 eiciel-eiciel_xattr_window.obj: eiciel_xattr_window.cpp
824 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -MT eiciel-eiciel_xattr_window.obj -MD -MP -MF $(DEPDIR)/eiciel-eiciel_xattr_window.Tpo -c -o eiciel-eiciel_xattr_window.obj `if test -f 'eiciel_xattr_window.cpp'; then $(CYGPATH_W) 'eiciel_xattr_window.cpp'; else $(CYGPATH_W) '$(srcdir)/eiciel_xattr_window.cpp'; fi`
825 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/eiciel-eiciel_xattr_window.Tpo $(DEPDIR)/eiciel-eiciel_xattr_window.Po
826 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='eiciel_xattr_window.cpp' object='eiciel-eiciel_xattr_window.obj' libtool=no @AMDEPBACKSLASH@
827 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
828 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -c -o eiciel-eiciel_xattr_window.obj `if test -f 'eiciel_xattr_window.cpp'; then $(CYGPATH_W) 'eiciel_xattr_window.cpp'; else $(CYGPATH_W) '$(srcdir)/eiciel_xattr_window.cpp'; fi`
829
830 eiciel-eiciel_xattr_controller.o: eiciel_xattr_controller.cpp
831 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -MT eiciel-eiciel_xattr_controller.o -MD -MP -MF $(DEPDIR)/eiciel-eiciel_xattr_controller.Tpo -c -o eiciel-eiciel_xattr_controller.o `test -f 'eiciel_xattr_controller.cpp' || echo '$(srcdir)/'`eiciel_xattr_controller.cpp
832 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/eiciel-eiciel_xattr_controller.Tpo $(DEPDIR)/eiciel-eiciel_xattr_controller.Po
833 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='eiciel_xattr_controller.cpp' object='eiciel-eiciel_xattr_controller.o' libtool=no @AMDEPBACKSLASH@
834 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
835 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -c -o eiciel-eiciel_xattr_controller.o `test -f 'eiciel_xattr_controller.cpp' || echo '$(srcdir)/'`eiciel_xattr_controller.cpp
836
837 eiciel-eiciel_xattr_controller.obj: eiciel_xattr_controller.cpp
838 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -MT eiciel-eiciel_xattr_controller.obj -MD -MP -MF $(DEPDIR)/eiciel-eiciel_xattr_controller.Tpo -c -o eiciel-eiciel_xattr_controller.obj `if test -f 'eiciel_xattr_controller.cpp'; then $(CYGPATH_W) 'eiciel_xattr_controller.cpp'; else $(CYGPATH_W) '$(srcdir)/eiciel_xattr_controller.cpp'; fi`
839 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/eiciel-eiciel_xattr_controller.Tpo $(DEPDIR)/eiciel-eiciel_xattr_controller.Po
840 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='eiciel_xattr_controller.cpp' object='eiciel-eiciel_xattr_controller.obj' libtool=no @AMDEPBACKSLASH@
841 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
842 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(eiciel_CPPFLAGS) $(CPPFLAGS) $(eiciel_CXXFLAGS) $(CXXFLAGS) -c -o eiciel-eiciel_xattr_controller.obj `if test -f 'eiciel_xattr_controller.cpp'; then $(CYGPATH_W) 'eiciel_xattr_controller.cpp'; else $(CYGPATH_W) '$(srcdir)/eiciel_xattr_controller.cpp'; fi`
8431046
8441047 mostlyclean-libtool:
8451048 -rm -f *.lo
9411144 distclean-tags:
9421145 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
9431146
944 distdir: $(DISTFILES)
1147 distdir: $(BUILT_SOURCES)
1148 $(MAKE) $(AM_MAKEFLAGS) distdir-am
1149
1150 distdir-am: $(DISTFILES)
9451151 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
9461152 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
9471153 list='$(DISTFILES)'; \
9731179 done
9741180 check-am: all-am
9751181 check: check-am
976 all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(DATA)
1182 all-am: Makefile $(PROGRAMS) $(LTLIBRARIES) $(DATA)
9771183 installdirs:
978 for dir in "$(DESTDIR)$(nautilusextdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(desktopfilesdir)" "$(DESTDIR)$(appdatadir)"; do \
1184 for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(nautilusextdir)" "$(DESTDIR)$(desktopfilesdir)" "$(DESTDIR)$(appdatadir)"; do \
9791185 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
9801186 done
9811187 install: install-am
10151221 clean-nautilusextLTLIBRARIES mostlyclean-am
10161222
10171223 distclean: distclean-am
1018 -rm -rf ./$(DEPDIR)
1224 -rm -f ./$(DEPDIR)/eiciel-acl_manager.Po
1225 -rm -f ./$(DEPDIR)/eiciel-cellrenderer_acl.Po
1226 -rm -f ./$(DEPDIR)/eiciel-eiciel_acl_list.Po
1227 -rm -f ./$(DEPDIR)/eiciel-eiciel_acl_list_controller.Po
1228 -rm -f ./$(DEPDIR)/eiciel-eiciel_container.Po
1229 -rm -f ./$(DEPDIR)/eiciel-eiciel_enclosed_editor_window.Po
1230 -rm -f ./$(DEPDIR)/eiciel-eiciel_enclosed_editor_window_controller.Po
1231 -rm -f ./$(DEPDIR)/eiciel-eiciel_main_window.Po
1232 -rm -f ./$(DEPDIR)/eiciel-eiciel_main_window_controller.Po
1233 -rm -f ./$(DEPDIR)/eiciel-eiciel_participant_list.Po
1234 -rm -f ./$(DEPDIR)/eiciel-eiciel_participant_list_controller.Po
1235 -rm -f ./$(DEPDIR)/eiciel-eiciel_standalone.Po
1236 -rm -f ./$(DEPDIR)/eiciel-eiciel_xattr_controller.Po
1237 -rm -f ./$(DEPDIR)/eiciel-eiciel_xattr_window.Po
1238 -rm -f ./$(DEPDIR)/eiciel-xattr_manager.Po
1239 -rm -f ./$(DEPDIR)/libeiciel_nautilus_la-acl_manager.Plo
1240 -rm -f ./$(DEPDIR)/libeiciel_nautilus_la-cellrenderer_acl.Plo
1241 -rm -f ./$(DEPDIR)/libeiciel_nautilus_la-eiciel_acl_list.Plo
1242 -rm -f ./$(DEPDIR)/libeiciel_nautilus_la-eiciel_acl_list_controller.Plo
1243 -rm -f ./$(DEPDIR)/libeiciel_nautilus_la-eiciel_enclosed_editor_window.Plo
1244 -rm -f ./$(DEPDIR)/libeiciel_nautilus_la-eiciel_enclosed_editor_window_controller.Plo
1245 -rm -f ./$(DEPDIR)/libeiciel_nautilus_la-eiciel_main_window.Plo
1246 -rm -f ./$(DEPDIR)/libeiciel_nautilus_la-eiciel_main_window_controller.Plo
1247 -rm -f ./$(DEPDIR)/libeiciel_nautilus_la-eiciel_nautilus_page.Plo
1248 -rm -f ./$(DEPDIR)/libeiciel_nautilus_la-eiciel_participant_list.Plo
1249 -rm -f ./$(DEPDIR)/libeiciel_nautilus_la-eiciel_participant_list_controller.Plo
1250 -rm -f ./$(DEPDIR)/libeiciel_nautilus_la-eiciel_xattr_controller.Plo
1251 -rm -f ./$(DEPDIR)/libeiciel_nautilus_la-eiciel_xattr_window.Plo
1252 -rm -f ./$(DEPDIR)/libeiciel_nautilus_la-xattr_manager.Plo
10191253 -rm -f Makefile
10201254 distclean-am: clean-am distclean-compile distclean-generic \
10211255 distclean-tags
10621296 installcheck-am:
10631297
10641298 maintainer-clean: maintainer-clean-am
1065 -rm -rf ./$(DEPDIR)
1299 -rm -f ./$(DEPDIR)/eiciel-acl_manager.Po
1300 -rm -f ./$(DEPDIR)/eiciel-cellrenderer_acl.Po
1301 -rm -f ./$(DEPDIR)/eiciel-eiciel_acl_list.Po
1302 -rm -f ./$(DEPDIR)/eiciel-eiciel_acl_list_controller.Po
1303 -rm -f ./$(DEPDIR)/eiciel-eiciel_container.Po
1304 -rm -f ./$(DEPDIR)/eiciel-eiciel_enclosed_editor_window.Po
1305 -rm -f ./$(DEPDIR)/eiciel-eiciel_enclosed_editor_window_controller.Po
1306 -rm -f ./$(DEPDIR)/eiciel-eiciel_main_window.Po
1307 -rm -f ./$(DEPDIR)/eiciel-eiciel_main_window_controller.Po
1308 -rm -f ./$(DEPDIR)/eiciel-eiciel_participant_list.Po
1309 -rm -f ./$(DEPDIR)/eiciel-eiciel_participant_list_controller.Po
1310 -rm -f ./$(DEPDIR)/eiciel-eiciel_standalone.Po
1311 -rm -f ./$(DEPDIR)/eiciel-eiciel_xattr_controller.Po
1312 -rm -f ./$(DEPDIR)/eiciel-eiciel_xattr_window.Po
1313 -rm -f ./$(DEPDIR)/eiciel-xattr_manager.Po
1314 -rm -f ./$(DEPDIR)/libeiciel_nautilus_la-acl_manager.Plo
1315 -rm -f ./$(DEPDIR)/libeiciel_nautilus_la-cellrenderer_acl.Plo
1316 -rm -f ./$(DEPDIR)/libeiciel_nautilus_la-eiciel_acl_list.Plo
1317 -rm -f ./$(DEPDIR)/libeiciel_nautilus_la-eiciel_acl_list_controller.Plo
1318 -rm -f ./$(DEPDIR)/libeiciel_nautilus_la-eiciel_enclosed_editor_window.Plo
1319 -rm -f ./$(DEPDIR)/libeiciel_nautilus_la-eiciel_enclosed_editor_window_controller.Plo
1320 -rm -f ./$(DEPDIR)/libeiciel_nautilus_la-eiciel_main_window.Plo
1321 -rm -f ./$(DEPDIR)/libeiciel_nautilus_la-eiciel_main_window_controller.Plo
1322 -rm -f ./$(DEPDIR)/libeiciel_nautilus_la-eiciel_nautilus_page.Plo
1323 -rm -f ./$(DEPDIR)/libeiciel_nautilus_la-eiciel_participant_list.Plo
1324 -rm -f ./$(DEPDIR)/libeiciel_nautilus_la-eiciel_participant_list_controller.Plo
1325 -rm -f ./$(DEPDIR)/libeiciel_nautilus_la-eiciel_xattr_controller.Plo
1326 -rm -f ./$(DEPDIR)/libeiciel_nautilus_la-eiciel_xattr_window.Plo
1327 -rm -f ./$(DEPDIR)/libeiciel_nautilus_la-xattr_manager.Plo
10661328 -rm -f Makefile
10671329 maintainer-clean-am: distclean-am maintainer-clean-generic
10681330
10841346
10851347 .MAKE: install-am install-strip
10861348
1087 .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \
1349 .PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \
10881350 clean-binPROGRAMS clean-generic clean-libtool \
10891351 clean-nautilusextLTLIBRARIES cscopelist-am ctags ctags-am \
10901352 distclean distclean-compile distclean-generic \
00 /*
11 Eiciel - GNOME editor of ACL file permissions.
2 Copyright (C) 2004-2014 Roger Ferrer Ibáñez
2 Copyright (C) 2004-2019 Roger Ferrer Ibáñez
33
44 This program is free software; you can redistribute it and/or modify
55 it under the terms of the GNU General Public License as published by
1515 along with this program; if not, write to the Free Software
1616 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
1717 */
18 #ifndef TIPUS_ELEMENT_ACL_HPP
18 #ifndef TIPUS_ELEMENT_ACL_HPP
1919 #define TIPUS_ELEMENT_ACL_HPP
2020 #include <config.hpp>
2121
22 enum ElementKind
23 {
22 enum ElementKind {
2423 EK_USER,
2524 EK_GROUP,
2625 EK_OTHERS,
3534
3635 EK_DEFAULT_ACL_USER,
3736 EK_DEFAULT_ACL_GROUP,
38 EK_DEFAULT_MASK
37 EK_DEFAULT_MASK
3938 };
4039
41 enum PermissionKind
42 {
43 PK_READING,
40 enum PermissionKind { PK_READING,
4441 PK_WRITING,
45 PK_EXECUTION
46 };
42 PK_EXECUTION };
4743
4844 #endif
00 /*
11 Eiciel - GNOME editor of ACL file permissions.
2 Copyright (C) 2004-2014 Roger Ferrer Ibáñez
2 Copyright (C) 2004-2019 Roger Ferrer Ibáñez
33
44 This program is free software; you can redistribute it and/or modify
55 it under the terms of the GNU General Public License as published by
1515 along with this program; if not, write to the Free Software
1616 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
1717 */
18 #ifndef LLISTA_ACL_HPP
19 #define LLISTA_ACL_HPP
20 #include <config.hpp>
18 #ifndef ACL_LIST_HPP
19 #define ACL_LIST_HPP
2120 #include "acl_element_kind.hpp"
2221 #include "cellrenderer_acl.hpp"
22 #include <config.hpp>
2323
24 class ACLListModel : public Gtk::TreeModel::ColumnRecord
25 {
26 public:
24 class ACLListModel : public Gtk::TreeModel::ColumnRecord {
25 public:
26 ACLListModel()
27 {
28 add(_icon);
29 add(_entry_name);
30 add(_reading_permission);
31 add(_writing_permission);
32 add(_execution_permission);
33 add(_removable);
34 add(_entry_kind);
35 add(_reading_ineffective);
36 add(_writing_ineffective);
37 add(_execution_ineffective);
38 add(_empty);
39 }
2740
28 ACLListModel()
29 {
30 add(_icon);
31 add(_entry_name);
32 add(_reading_permission);
33 add(_writing_permission);
34 add(_execution_permission);
35 add(_removable);
36 add(_entry_kind);
37 add(_reading_ineffective);
38 add(_writing_ineffective);
39 add(_execution_ineffective);
40 add(_current_recursion_policy);
41 // TODO - Implement recursion policies
42 #if 0
43 add(_recursion_policies);
44 #endif
45 add(_empty);
46 }
47
48 Gtk::TreeModelColumn<Glib::RefPtr<Gdk::Pixbuf> > _icon;
49 Gtk::TreeModelColumn<Glib::ustring> _entry_name;
50 Gtk::TreeModelColumn<bool> _reading_permission;
51 Gtk::TreeModelColumn<bool> _writing_permission;
52 Gtk::TreeModelColumn<bool> _execution_permission;
53 Gtk::TreeModelColumn<bool> _removable;
54 Gtk::TreeModelColumn<ElementKind> _entry_kind;
55 Gtk::TreeModelColumn<bool> _reading_ineffective;
56 Gtk::TreeModelColumn<bool> _writing_ineffective;
57 Gtk::TreeModelColumn<bool> _execution_ineffective;
58 Gtk::TreeModelColumn<Glib::ustring> _current_recursion_policy;
59 // Gtk::TreeModelColumn<Glib::RefPtr<Gtk::TreeModel> > _recursion_policies;
60 Gtk::TreeModelColumn<Glib::ustring> _empty;
61 };
62
63 class RecursionPolicyModel : public Gtk::TreeModel::ColumnRecord
64 {
65 public:
66 RecursionPolicyModel()
67 {
68 add(_recursion_policy);
69 }
70
71 // The values from which the user may choose.
72 Gtk::TreeModelColumn<Glib::ustring> _recursion_policy;
41 Gtk::TreeModelColumn<Glib::RefPtr<Gdk::Pixbuf>> _icon;
42 Gtk::TreeModelColumn<Glib::ustring> _entry_name;
43 Gtk::TreeModelColumn<bool> _reading_permission;
44 Gtk::TreeModelColumn<bool> _writing_permission;
45 Gtk::TreeModelColumn<bool> _execution_permission;
46 Gtk::TreeModelColumn<bool> _removable;
47 Gtk::TreeModelColumn<ElementKind> _entry_kind;
48 Gtk::TreeModelColumn<bool> _reading_ineffective;
49 Gtk::TreeModelColumn<bool> _writing_ineffective;
50 Gtk::TreeModelColumn<bool> _execution_ineffective;
51 Gtk::TreeModelColumn<Glib::ustring> _empty;
7352 };
7453
7554 #endif
00 /*
11 Eiciel - GNOME editor of ACL file permissions.
2 Copyright (C) 2004-2014 Roger Ferrer Ibáñez
2 Copyright (C) 2004-2019 Roger Ferrer Ibáñez
33
44 This program is free software; you can redistribute it and/or modify
55 it under the terms of the GNU General Public License as published by
1717 */
1818 #include "acl_manager.hpp"
1919
20
21 ACLManager::ACLManager(const string& filename) throw (ACLManagerException)
22 : _filename(filename)
20 ACLManager::ACLManager(const std::string& filename)
21 : _filename(filename)
2322 {
2423 // Get first UGO permissions and info about the file
2524 get_ugo_permissions();
2726 get_acl_entries_access();
2827
2928 // If it is a directory get default acl entries
30 if (_is_directory)
31 {
29 if (_is_directory) {
3230 get_acl_entries_default();
3331 }
3432
3836 void ACLManager::get_ugo_permissions()
3937 {
4038 struct stat buffer;
41 if (stat(_filename.c_str(), &buffer) == -1)
42 {
39 if (stat(_filename.c_str(), &buffer) == -1) {
4340 throw ACLManagerException(Glib::locale_to_utf8(strerror(errno)));
4441 }
4542
4643 // Check if a regular file or directory
47 if (!S_ISREG(buffer.st_mode) && !S_ISDIR(buffer.st_mode))
48 {
49 throw ACLManagerException(_("Only regular files or directories supported"));
44 if (!S_ISREG(buffer.st_mode) && !S_ISDIR(buffer.st_mode)) {
45 throw ACLManagerException(_("Only regular files or directories supported"));
5046 }
5147
5248 // Save whether is a directory
5652 _uid_owner = buffer.st_uid;
5753 struct passwd* u = getpwuid(buffer.st_uid);
5854
59 if (u == NULL)
60 {
61 stringstream ss;
62 ss << "(" << buffer.st_uid << ")";
55 if (u == NULL) {
56 std::stringstream ss;
57 ss << "(" << buffer.st_uid << ")";
6358 _owner_name = ss.str();
64 }
65 else
66 {
59 } else {
6760 _owner_name = u->pw_name;
6861 }
6962
7063 // Get the group name
7164 struct group* g = getgrgid(buffer.st_gid);
7265
73 if (g == NULL)
74 {
75 stringstream ss;
76 ss << "(" << buffer.st_gid << ")";
66 if (g == NULL) {
67 std::stringstream ss;
68 ss << "(" << buffer.st_gid << ")";
7769 _group_name = ss.str();
78 }
79 else
80 {
70 } else {
8171 _group_name = g->gr_name;
8272 }
8373 }
84
8574
8675 void ACLManager::get_acl_entries_access()
8776 {
9180 // Get access ACL
9281 acl_t acl_file = acl_get_file(_filename.c_str(), ACL_TYPE_ACCESS);
9382
94 if (acl_file == (acl_t) NULL)
95 {
83 if (acl_file == (acl_t)NULL) {
9684 throw ACLManagerException(Glib::locale_to_utf8(strerror(errno)));
9785 }
9886
10290 acl_tag_t acl_kind_tag;
10391
10492 int found = acl_get_entry(acl_file, ACL_FIRST_ENTRY, &acl_entry_);
105 while (found == 1)
106 {
93 while (found == 1) {
10794 acl_get_permset(acl_entry_, &permission_set);
10895 acl_get_tag_type(acl_entry_, &acl_kind_tag);
10996
110 if (acl_kind_tag == ACL_USER || acl_kind_tag == ACL_GROUP)
111 {
97 if (acl_kind_tag == ACL_USER || acl_kind_tag == ACL_GROUP) {
11298 // A user|group entry
11399 // Gather the permissions
114100 acl_entry new_acl;
116102 new_acl.writing = ACL_GET_PERM(permission_set, ACL_WRITE);
117103 new_acl.execution = ACL_GET_PERM(permission_set, ACL_EXECUTE);
118104 // Get the qualifier
119 if (acl_kind_tag == ACL_USER)
120 {
105 if (acl_kind_tag == ACL_USER) {
121106 void* ptr_acluser = acl_get_qualifier(acl_entry_);
122 uid_t* iduser = (uid_t*) ptr_acluser;
107 uid_t* iduser = (uid_t*)ptr_acluser;
123108 struct passwd* p = getpwuid(*iduser);
124109 new_acl.valid_name = (p != NULL);
125 if (p == NULL)
126 {
127 stringstream ss;
110 if (p == NULL) {
111 std::stringstream ss;
128112 ss << "(" << *iduser << ")";
129113 new_acl.name = ss.str();
130 }
131 else
132 {
114 } else {
133115 new_acl.name = p->pw_name;
134116 }
135117 new_acl.qualifier = *iduser;
136118 acl_free(ptr_acluser);
137119
138120 _user_acl.push_back(new_acl);
139 }
140 else
141 {
121 } else {
142122 void* ptr_aclgroup = acl_get_qualifier(acl_entry_);
143 gid_t* idgroup = (gid_t*) ptr_aclgroup;
123 gid_t* idgroup = (gid_t*)ptr_aclgroup;
144124 struct group* g = getgrgid(*idgroup);
145125 new_acl.valid_name = (g != NULL);
146 if (g == NULL)
147 {
148 stringstream ss;
126 if (g == NULL) {
127 std::stringstream ss;
149128 ss << "(" << *idgroup << ")";
150129 new_acl.name = ss.str();
151 }
152 else
153 {
130 } else {
154131 new_acl.name = g->gr_name;
155132 }
156133 new_acl.qualifier = *idgroup;
158135
159136 _group_acl.push_back(new_acl);
160137 }
161 }
162 else if (acl_kind_tag == ACL_MASK)
163 {
138 } else if (acl_kind_tag == ACL_MASK) {
164139 // The ACL mask
165140 _there_is_mask = true;
166141 _mask_acl.reading = ACL_GET_PERM(permission_set, ACL_READ);
167142 _mask_acl.writing = ACL_GET_PERM(permission_set, ACL_WRITE);
168143 _mask_acl.execution = ACL_GET_PERM(permission_set, ACL_EXECUTE);
169 }
170 else if (acl_kind_tag == ACL_USER_OBJ)
171 {
144 } else if (acl_kind_tag == ACL_USER_OBJ) {
172145 // Owner
173146 _owner_perms.reading = ACL_GET_PERM(permission_set, ACL_READ);
174147 _owner_perms.writing = ACL_GET_PERM(permission_set, ACL_WRITE);
175148 _owner_perms.execution = ACL_GET_PERM(permission_set, ACL_EXECUTE);
176
177 }
178 else if (acl_kind_tag == ACL_GROUP_OBJ)
179 {
149
150 } else if (acl_kind_tag == ACL_GROUP_OBJ) {
180151 // Group
181152 _group_perms.reading = ACL_GET_PERM(permission_set, ACL_READ);
182153 _group_perms.writing = ACL_GET_PERM(permission_set, ACL_WRITE);
183154 _group_perms.execution = ACL_GET_PERM(permission_set, ACL_EXECUTE);
184155
185 }
186 else if (acl_kind_tag == ACL_OTHER)
187 {
156 } else if (acl_kind_tag == ACL_OTHER) {
188157 // Other
189158 _others_perms.reading = ACL_GET_PERM(permission_set, ACL_READ);
190159 _others_perms.writing = ACL_GET_PERM(permission_set, ACL_WRITE);
199168
200169 void ACLManager::get_acl_entries_default()
201170 {
202 _there_is_default_mask
203 = _there_is_default_user
204 = _there_is_default_group
205 = _there_is_default_others
206 = false;
171 _there_is_default_mask = _there_is_default_user = _there_is_default_group = _there_is_default_others = false;
207172
208173 _default_user_acl.clear();
209174 _default_group_acl.clear();
216181 acl_tag_t acl_kind_tag;
217182
218183 int found = acl_get_entry(acl_file, ACL_FIRST_ENTRY, &acl_entry_);
219 while (found == 1)
220 {
184 while (found == 1) {
221185 acl_get_permset(acl_entry_, &permission_set);
222186 acl_get_tag_type(acl_entry_, &acl_kind_tag);
223187
224 if (acl_kind_tag == ACL_USER || acl_kind_tag == ACL_GROUP)
225 {
188 if (acl_kind_tag == ACL_USER || acl_kind_tag == ACL_GROUP) {
226189 // An entry of type user/group
227190 // get all permissions
228191 acl_entry new_acl;
230193 new_acl.writing = ACL_GET_PERM(permission_set, ACL_WRITE);
231194 new_acl.execution = ACL_GET_PERM(permission_set, ACL_EXECUTE);
232195 // Get the qualifiers
233 if (acl_kind_tag == ACL_USER)
234 {
196 if (acl_kind_tag == ACL_USER) {
235197 void* ptr_iduser = acl_get_qualifier(acl_entry_);
236198 uid_t* iduser = (uid_t*)ptr_iduser;
237199 struct passwd* p = getpwuid(*iduser);
238200 new_acl.valid_name = (p != NULL);
239 if (p == NULL)
240 {
241 stringstream ss;
201 if (p == NULL) {
202 std::stringstream ss;
242203 ss << "(" << *iduser << ")";
243204 new_acl.name = ss.str();
244 }
245 else
246 {
205 } else {
247206 new_acl.name = p->pw_name;
248207 }
249208 new_acl.qualifier = *iduser;
250209 acl_free(ptr_iduser);
251210
252211 _default_user_acl.push_back(new_acl);
253 }
254 else
255 {
212 } else {
256213 void* ptr_idgroup = acl_get_qualifier(acl_entry_);
257214 gid_t* idgroup = (gid_t*)ptr_idgroup;
258215 struct group* g = getgrgid(*idgroup);
259216 new_acl.valid_name = (g != NULL);
260 if (g == NULL)
261 {
262 stringstream ss;
217 if (g == NULL) {
218 std::stringstream ss;
263219 ss << "(" << *idgroup << ")";
264220 new_acl.name = ss.str();
265 }
266 else
267 {
221 } else {
268222 new_acl.name = g->gr_name;
269223 }
270224 new_acl.qualifier = *idgroup;
272226
273227 _default_group_acl.push_back(new_acl);
274228 }
275 }
276 else if (acl_kind_tag == ACL_USER_OBJ)
277 {
229 } else if (acl_kind_tag == ACL_USER_OBJ) {
278230 // Default user entry
279231 _there_is_default_user = true;
280232 _default_user.reading = ACL_GET_PERM(permission_set, ACL_READ);
281233 _default_user.writing = ACL_GET_PERM(permission_set, ACL_WRITE);
282234 _default_user.execution = ACL_GET_PERM(permission_set, ACL_EXECUTE);
283 }
284 else if (acl_kind_tag == ACL_GROUP_OBJ)
285 {
235 } else if (acl_kind_tag == ACL_GROUP_OBJ) {
286236 // Default group entry
287237 _there_is_default_group = true;
288238 _default_group.reading = ACL_GET_PERM(permission_set, ACL_READ);
289239 _default_group.writing = ACL_GET_PERM(permission_set, ACL_WRITE);
290240 _default_group.execution = ACL_GET_PERM(permission_set, ACL_EXECUTE);
291 }
292 else if (acl_kind_tag == ACL_OTHER)
293 {
241 } else if (acl_kind_tag == ACL_OTHER) {
294242 // Default others entry
295243 _there_is_default_others = true;
296244 _default_others.reading = ACL_GET_PERM(permission_set, ACL_READ);
297245 _default_others.writing = ACL_GET_PERM(permission_set, ACL_WRITE);
298246 _default_others.execution = ACL_GET_PERM(permission_set, ACL_EXECUTE);
299 }
300 else if (acl_kind_tag == ACL_MASK)
301 {
247 } else if (acl_kind_tag == ACL_MASK) {
302248 // Default mask
303249 _there_is_default_mask = true;
304250 _default_mask.reading = ACL_GET_PERM(permission_set, ACL_READ);
317263 _text_acl_access.clear();
318264
319265 _text_acl_access += "u::" + permission_to_str(_owner_perms) + "\n";
320 for (vector<acl_entry>::iterator i = _user_acl.begin();
321 i != _user_acl.end(); i++)
322 {
266 for (std::vector<acl_entry>::iterator i = _user_acl.begin();
267 i != _user_acl.end(); i++) {
323268 _text_acl_access += "u:" + write_name(*i) + ":" + permission_to_str(*i) + "\n";
324269 }
325
270
326271 _text_acl_access += "g::" + permission_to_str(_group_perms) + "\n";
327 for (vector<acl_entry>::iterator i = _group_acl.begin();
328 i != _group_acl.end(); i++)
329 {
272 for (std::vector<acl_entry>::iterator i = _group_acl.begin();
273 i != _group_acl.end(); i++) {
330274 _text_acl_access += "g:" + write_name(*i) + ":" + permission_to_str(*i) + "\n";
331275 }
332276
333 if (_there_is_mask)
334 {
277 if (_there_is_mask) {
335278 _text_acl_access += "m::" + permission_to_str(_mask_acl) + "\n";
336279 }
337280 _text_acl_access += "o::" + permission_to_str(_others_perms) + "\n";
338281
339282 _text_acl_default.clear();
340 if (_is_directory)
341 {
342 if (_there_is_default_user)
343 {
283 if (_is_directory) {
284 if (_there_is_default_user) {
344285 _text_acl_default += "u::" + permission_to_str(_default_user) + "\n";
345286 }
346 if (_there_is_default_group)
347 {
287 if (_there_is_default_group) {
348288 _text_acl_default += "g::" + permission_to_str(_default_group) + "\n";
349289 }
350 if (_there_is_default_others)
351 {
290 if (_there_is_default_others) {
352291 _text_acl_default += "o::" + permission_to_str(_default_others) + "\n";
353292 }
354293
355 for (vector<acl_entry>::iterator i = _default_user_acl.begin();
356 i != _default_user_acl.end(); i++)
357 {
294 for (std::vector<acl_entry>::iterator i = _default_user_acl.begin();
295 i != _default_user_acl.end(); i++) {
358296 _text_acl_default += "u:" + write_name(*i) + ":" + permission_to_str(*i) + "\n";
359297 }
360 for (vector<acl_entry>::iterator i = _default_group_acl.begin();
361 i != _default_group_acl.end(); i++)
362 {
298 for (std::vector<acl_entry>::iterator i = _default_group_acl.begin();
299 i != _default_group_acl.end(); i++) {
363300 _text_acl_default += "g:" + write_name(*i) + ":" + permission_to_str(*i) + "\n";
364301 }
365302
366 if (_there_is_default_mask)
367 {
303 if (_there_is_default_mask) {
368304 _text_acl_default += "m::" + permission_to_str(_default_mask) + "\n";
369305 }
370306 }
371307 }
372308
373 string ACLManager::write_name(acl_entry& eacl)
374 {
375 if (eacl.valid_name)
376 {
309 std::string ACLManager::write_name(acl_entry& eacl)
310 {
311 if (eacl.valid_name) {
377312 return eacl.name;
378 }
379 else
380 {
381 stringstream ss;
313 } else {
314 std::stringstream ss;
382315 ss << eacl.qualifier;
383316 return ss.str();
384317 }
385318 }
386319
387 string ACLManager::permission_to_str(permissions_t& p)
388 {
389 string s;
390 s.clear();
391 s += (p.reading ? "r" : "-");
392 s += (p.writing ? "w" : "-");
393 s += (p.execution ? "x" : "-");
394 return s;
395 }
396
397 void ACLManager::modify_acl_user(const string& username, const permissions_t& perms)
320 void ACLManager::modify_acl_user(const std::string& username,
321 const permissions_t& perms)
398322 {
399323 set_acl_generic(username, _user_acl, perms);
400324 update_changes_acl_access();
401325 }
402326
403 void ACLManager::modify_acl_group(const string& groupname, const permissions_t& perms)
327 void ACLManager::modify_acl_group(const std::string& groupname,
328 const permissions_t& perms)
404329 {
405330 set_acl_generic(groupname, _group_acl, perms);
406331 update_changes_acl_access();
409334 void ACLManager::update_changes_acl_access()
410335 {
411336 // If there is any entry of _user_acl or _group_acl we need a mask
412 if ((_user_acl.size() + _group_acl.size()) > 0)
413 {
414 if (!_there_is_mask)
415 {
337 if ((_user_acl.size() + _group_acl.size()) > 0) {
338 if (!_there_is_mask) {
416339 calculate_access_mask();
417340 }
418 }
419 else // Otherwise it is not needed
341 } else // Otherwise it is not needed
420342 {
421343 _there_is_mask = false;
422344 }
424346 commit_changes_to_file();
425347 }
426348
427 void ACLManager::modify_acl_default_user(const string& username, const permissions_t& perms)
349 void ACLManager::modify_acl_default_user(const std::string& username,
350 const permissions_t& perms)
428351 {
429352 set_acl_generic(username, _default_user_acl, perms);
430353 update_changes_acl_default();
431354 }
432355
433 void ACLManager::modify_acl_default_group(const string& groupname, const permissions_t& perms)
356 void ACLManager::modify_acl_default_group(const std::string& groupname,
357 const permissions_t& perms)
434358 {
435359 set_acl_generic(groupname, _default_group_acl, perms);
436360 update_changes_acl_default();
438362
439363 void ACLManager::update_changes_acl_default()
440364 {
441 if ((_default_user_acl.size() + _default_group_acl.size()) > 0)
442 {
365 if ((_default_user_acl.size() + _default_group_acl.size()) > 0) {
443366 fill_needed_acl_default();
444367 }
445368
449372
450373 void ACLManager::fill_needed_acl_default()
451374 {
452 if (!_there_is_default_user)
453 {
375 if (!_there_is_default_user) {
454376 _there_is_default_user = true;
455377 _default_user.reading = _owner_perms.reading;
456378 _default_user.writing = _owner_perms.writing;
457379 _default_user.execution = _owner_perms.execution;
458380 }
459 if (!_there_is_default_group)
460 {
381 if (!_there_is_default_group) {
461382 _there_is_default_group = true;
462383 _default_group.reading = _group_perms.reading;
463384 _default_group.writing = _group_perms.writing;
464385 _default_group.execution = _group_perms.execution;
465386 }
466 if (!_there_is_default_others)
467 {
387 if (!_there_is_default_others) {
468388 _there_is_default_others = true;
469389 _default_others.reading = _others_perms.reading;
470390 _default_others.writing = _others_perms.writing;
471391 _default_others.execution = _others_perms.execution;
472392 }
473 if (!_there_is_default_mask)
474 {
393 if (!_there_is_default_mask) {
475394 _there_is_default_mask = true;
476395 _default_mask = permissions_t(7);
477396 }
478397 }
479398
480 void ACLManager::set_acl_generic(const string& name, vector<acl_entry>& acl_list,
481 const permissions_t& perms)
399 void ACLManager::set_acl_generic(const std::string& name,
400 std::vector<acl_entry>& acl_list,
401 const permissions_t& perms)
482402 {
483403 ACLEquivalence equiv_acl(name);
484 vector<acl_entry>::iterator i = find_if(acl_list.begin(), acl_list.end(), equiv_acl);
404 std::vector<acl_entry>::iterator i = find_if(acl_list.begin(), acl_list.end(), equiv_acl);
485405 if (i != acl_list.end()) // If already there, update
486406 {
487407 i->reading = perms.reading;
488408 i->writing = perms.writing;
489409 i->execution = perms.execution;
490 }
491 else // If not there, create
410 } else // If not there, create
492411 {
493412 acl_entry eacl;
494413 eacl.valid_name = true;
500419 }
501420 }
502421
503 void ACLManager::remove_acl_user(const string& username)
422 void ACLManager::remove_acl_user(const std::string& username)
504423 {
505424 remove_acl_generic(username, _user_acl);
506425 update_changes_acl_access();
507426 }
508427
509 void ACLManager::remove_acl_group(const string& groupname)
428 void ACLManager::remove_acl_group(const std::string& groupname)
510429 {
511430 remove_acl_generic(groupname, _group_acl);
512431 update_changes_acl_access();
513432 }
514433
515 void ACLManager::remove_acl_user_default(const string& username)
434 void ACLManager::remove_acl_user_default(const std::string& username)
516435 {
517436 remove_acl_generic(username, _default_user_acl);
518437 update_changes_acl_default();
519438 }
520439
521 void ACLManager::remove_acl_group_default(const string& groupname)
440 void ACLManager::remove_acl_group_default(const std::string& groupname)
522441 {
523442 remove_acl_generic(groupname, _default_group_acl);
524443 update_changes_acl_default();
525444 }
526445
527 void ACLManager::remove_acl_generic(const string& name, vector<acl_entry>& acl_list)
446 void ACLManager::remove_acl_generic(const std::string& name,
447 std::vector<acl_entry>& acl_list)
528448 {
529449 ACLEquivalence equiv_acl(name);
530 acl_list.erase(remove_if(acl_list.begin(), acl_list.end(), equiv_acl), acl_list.end());
450 acl_list.erase(remove_if(acl_list.begin(), acl_list.end(), equiv_acl),
451 acl_list.end());
531452 }
532453
533454 void ACLManager::commit_changes_to_file()
534455 {
535456 // Get the textual representation of the ACL
536457 acl_t acl_access = acl_from_text(_text_acl_access.c_str());
537 if (acl_access == NULL)
538 {
539 std::cerr << "ACL is wrong!!!" << endl << _text_acl_access.c_str() << endl;
540
458 if (acl_access == NULL) {
459 std::cerr << "ACL is wrong!!!" << std::endl
460 << _text_acl_access.c_str() << std::endl;
461
541462 throw ACLManagerException(_("Textual representation of the ACL is wrong"));
542463 }
543 if (acl_set_file(_filename.c_str(), ACL_TYPE_ACCESS, acl_access) != 0)
544 {
545 throw ACLManagerException(Glib::locale_to_utf8(strerror(errno)));
546 }
547
548 if (_is_directory)
549 {
464 if (acl_set_file(_filename.c_str(), ACL_TYPE_ACCESS, acl_access) != 0) {
465 Glib::ustring err_msg = Glib::locale_to_utf8(strerror(errno));
466 acl_free(acl_access);
467 throw ACLManagerException(err_msg);
468 }
469
470 if (_is_directory) {
550471 // Clear the ACL
551 if (acl_delete_def_file(_filename.c_str()) != 0)
552 {
472 if (acl_delete_def_file(_filename.c_str()) != 0) {
553473 throw ACLManagerException(Glib::locale_to_utf8(strerror(errno)));
554474 }
555475
556476 // if there is something we set it, this avoids problems with FreeBSD 5.x
557 if (_text_acl_default.size() > 0)
558 {
477 if (_text_acl_default.size() > 0) {
559478 acl_t acl_default = acl_from_text(_text_acl_default.c_str());
560 if (acl_access == NULL)
561 {
562 std::cerr << "Default ACL is wrong!!!" << endl << _text_acl_default.c_str() << endl;
563 throw ACLManagerException(_("Default textual representation of the ACL is wrong"));
479 if (acl_default == NULL) {
480 std::cerr << "Default ACL is wrong!!!" << std::endl
481 << _text_acl_default.c_str() << std::endl;
482 throw ACLManagerException(
483 _("Default textual representation of the ACL is wrong"));
564484 }
565485
566 if (acl_set_file(_filename.c_str(), ACL_TYPE_DEFAULT, acl_default) != 0)
567 {
568 throw ACLManagerException(Glib::locale_to_utf8(strerror(errno)));
486 if (acl_set_file(_filename.c_str(), ACL_TYPE_DEFAULT, acl_default) != 0) {
487 Glib::ustring err_msg = Glib::locale_to_utf8(strerror(errno));
488 acl_free(acl_default);
489 throw ACLManagerException(err_msg);
569490 }
491 acl_free(acl_default);
570492 }
571493 }
572494 acl_free(acl_access);
573495 }
574496
575
576497 void ACLManager::clear_default_acl()
577498 {
578499 _there_is_default_user = _there_is_default_group = _there_is_default_others = _there_is_default_mask = false;
579 _default_user_acl.clear();
580 _default_group_acl.clear();
500 _default_user_acl.clear();
501 _default_group_acl.clear();
581502 update_changes_acl_default();
582503 }
583504
596517
597518 void ACLManager::calculate_access_mask()
598519 {
599 // De moment afegirem una màscara laxa
520 // De moment afegirem una màscara laxa
600521 _there_is_mask = true;
601522 _mask_acl = permissions_t(7);
602523 create_textual_representation();
664585 fill_needed_acl_default();
665586 update_changes_acl_default();
666587 }
588
589 void ACLManager::set_file_acl(const std::string& filename, const std::string& access_acl_text, const std::string& default_acl_text)
590 {
591 ACLManager tmp(filename);
592 tmp._text_acl_access = access_acl_text;
593 tmp._text_acl_default = default_acl_text;
594 tmp.commit_changes_to_file();
595 }
00 /*
11 Eiciel - GNOME editor of ACL file permissions.
2 Copyright (C) 2004-2014 Roger Ferrer Ibáñez
2 Copyright (C) 2004-2019 Roger Ferrer Ibáñez
33
44 This program is free software; you can redistribute it and/or modify
55 it under the terms of the GNU General Public License as published by
2121 #include <config.hpp>
2222
2323 #include <cstring>
24 #include <iostream>
2425 #include <string>
2526 #include <vector>
26 #include <iostream>
27
27
28 #include <glib/gi18n-lib.h>
2829 #include <glibmm.h>
29 #include <glib/gi18n-lib.h>
30 #include <sys/acl.h>
31 #include <sys/stat.h>
3032 #include <sys/types.h>
31 #include <sys/stat.h>
32 #include <sys/acl.h>
3333 #ifdef HAVE_ACL_LIBACL_H
34 #include <acl/libacl.h>
35 #endif
36 #include <unistd.h>
34 #include <acl/libacl.h>
35 #endif
36 #include <algorithm>
3737 #include <errno.h>
38 #include <vector>
38 #include <grp.h>
3939 #include <iostream>
4040 #include <pwd.h>
41 #include <grp.h>
4241 #include <sstream>
43 #include <algorithm>
44
45 using namespace std;
42 #include <unistd.h>
43 #include <vector>
4644
4745 #ifdef HAVE_ACL_GET_PERM
48 #define ACL_GET_PERM acl_get_perm
49 #else
50 #ifdef HAVE_ACL_GET_PERM_NP
51 #define ACL_GET_PERM acl_get_perm_np
52 #else
53 #error "An acl_get_perm-like function is needed"
54 #endif
55 #endif
56
57
58
59 class ACLManagerException
60 {
61 public:
62 ACLManagerException(Glib::ustring missatge) : _missatge(missatge)
63 {
64 }
65
66 Glib::ustring getMessage() const
67 {
68 return _missatge;
69 }
70 private:
71 Glib::ustring _missatge;
72 };
73
74 struct permissions_t
75 {
46 #define ACL_GET_PERM acl_get_perm
47 #else
48 #ifdef HAVE_ACL_GET_PERM_NP
49 #define ACL_GET_PERM acl_get_perm_np
50 #else
51 #error "An acl_get_perm-like function is needed"
52 #endif
53 #endif
54
55 class ACLManagerException {
56 public:
57 ACLManagerException(Glib::ustring missatge)
58 : _missatge(missatge)
59 {
60 }
61
62 Glib::ustring getMessage() const { return _missatge; }
63
64 private:
65 Glib::ustring _missatge;
66 };
67
68 struct permissions_t {
7669 bool reading;
7770 bool writing;
7871 bool execution;
8578 execution = (c & 01);
8679 }
8780 permissions_t(bool rd, bool wr, bool ex)
88 : reading(rd), writing(wr), execution(ex) {}
89 permissions_t()
90 : reading(false), writing(false), execution(false) {}
91 };
92
93
94 struct acl_entry : permissions_t
95 {
81 : reading(rd)
82 , writing(wr)
83 , execution(ex)
84 {
85 }
86 permissions_t()
87 : reading(false)
88 , writing(false)
89 , execution(false)
90 {
91 }
92 };
93
94 struct acl_entry : permissions_t {
9695 int qualifier; // Group or user
97 string name; // Symbolic name of the qualifier
96 std::string name; // Symbolic name of the qualifier
9897 bool valid_name;
9998 };
10099
101 class ACLManager
102 {
100 class ACLManager {
101 private:
102 std::string _filename;
103 bool _is_directory;
104
105 uid_t _uid_owner;
106 std::string _owner_name;
107 permissions_t _owner_perms;
108
109 std::string _group_name;
110 permissions_t _group_perms;
111
112 permissions_t _others_perms;
113
114 bool _there_is_mask;
115 permissions_t _mask_acl;
116
117 std::vector<acl_entry> _user_acl;
118 std::vector<acl_entry> _group_acl;
119 std::vector<acl_entry> _default_user_acl;
120 std::vector<acl_entry> _default_group_acl;
121
122 permissions_t _default_user;
123 bool _there_is_default_user;
124
125 permissions_t _default_group;
126 bool _there_is_default_group;
127
128 permissions_t _default_others;
129 bool _there_is_default_others;
130
131 permissions_t _default_mask;
132 bool _there_is_default_mask;
133
134 std::string _text_acl_access;
135 std::string _text_acl_default;
136
137 void get_ugo_permissions();
138 void get_acl_entries_access();
139 void get_acl_entries_default();
140 void create_textual_representation();
141 std::string write_name(acl_entry& eacl);
142 void set_acl_generic(const std::string& name,
143 std::vector<acl_entry>& llistACL,
144 const permissions_t& perms);
145 void remove_acl_generic(const std::string& name,
146 std::vector<acl_entry>& llistaACL);
147
148 void commit_changes_to_file();
149 void calculate_access_mask();
150 void update_changes_acl_access();
151 void update_changes_acl_default();
152 void fill_needed_acl_default();
153
154 class ACLEquivalence {
103155 private:
104 string _filename;
105 bool _is_directory;
106
107 uid_t _uid_owner;
108 string _owner_name;
109 permissions_t _owner_perms;
110
111 string _group_name;
112 permissions_t _group_perms;
113
114 permissions_t _others_perms;
115
116 bool _there_is_mask;
117 permissions_t _mask_acl;
118
119 vector<acl_entry> _user_acl;
120 vector<acl_entry> _group_acl;
121 vector<acl_entry> _default_user_acl;
122 vector<acl_entry> _default_group_acl;
123
124 permissions_t _default_user;
125 bool _there_is_default_user;
126
127 permissions_t _default_group;
128 bool _there_is_default_group;
129
130 permissions_t _default_others;
131 bool _there_is_default_others;
132
133 permissions_t _default_mask;
134 bool _there_is_default_mask;
135
136 string _text_acl_access;
137 string _text_acl_default;
138
139 void get_ugo_permissions();
140 void get_acl_entries_access();
141 void get_acl_entries_default();
142 void create_textual_representation();
143 string permission_to_str(permissions_t& p);
144 string write_name(acl_entry& eacl);
145 void set_acl_generic(const string& nom, vector<acl_entry>& llistACL, const permissions_t& perms);
146 void remove_acl_generic(const string& nom, vector<acl_entry>& llistaACL);
147
148 void commit_changes_to_file();
149 void calculate_access_mask();
150 void update_changes_acl_access();
151 void update_changes_acl_default();
152 void fill_needed_acl_default();
153
154 class ACLEquivalence
156 std::string _qualifier;
157
158 public:
159 ACLEquivalence(const std::string& qualif)
160 : _qualifier(qualif)
155161 {
156 private:
157 string _qualifier;
158 public:
159 ACLEquivalence(const string& qualif)
160 : _qualifier(qualif) {}
161 bool operator ()(acl_entry& a)
162 {
163 return (a.valid_name && (a.name == _qualifier));
164 }
165 };
166 public:
167 const static int PERM_READ = 0;
168 const static int PERM_WRITE = 1;
169 const static int PERM_EXEC = 2;
170
171 ACLManager(const string& filename) throw (ACLManagerException);
172
173 string get_acl_access() const { return _text_acl_access; }
174 string get_acl_default() const { return _text_acl_default; }
175
176 bool is_directory() const { return _is_directory; }
177
178 void modify_acl_user(const string& username, const permissions_t& perms);
179 void modify_acl_group(const string& groupname, const permissions_t& perms);
180
181 void modify_acl_default_user(const string& username, const permissions_t& perms);
182 void modify_acl_default_group(const string& groupname, const permissions_t& perms);
183
184 void modify_owner_perms(permissions_t& p);
185 void modify_group_perms(permissions_t& p);
186 void modify_others_perms(permissions_t& p);
187 void modify_mask(permissions_t& p);
188
189 void modify_owner_perms_default(permissions_t& p);
190 void modify_group_perms_default(permissions_t& p);
191 void modify_others_perms_default(permissions_t& p);
192 void modify_mask_default(permissions_t& p);
193
194 void remove_acl_user(const string& username);
195 void remove_acl_group(const string& groupname);
196 void remove_acl_user_default(const string& username);
197 void remove_acl_group_default(const string& groupname);
198
199 void clear_all_acl();
200 void clear_default_acl();
201
202 void create_default_acl();
203
204 vector<acl_entry> get_acl_user() const { return _user_acl; }
205 vector<acl_entry> get_acl_group() const { return _group_acl; }
206 vector<acl_entry> get_acl_user_default() const { return _default_user_acl; }
207 vector<acl_entry> get_acl_group_default() const { return _default_group_acl; }
208 permissions_t get_mask() { return _mask_acl; }
209
210 permissions_t get_user() { return _owner_perms; }
211 permissions_t get_group() { return _group_perms; }
212 permissions_t get_other() { return _others_perms; }
213
214 permissions_t get_user_default() { return _default_user; }
215 permissions_t get_group_default() { return _default_group; }
216 permissions_t get_other_default() { return _default_others; }
217 permissions_t get_mask_default() { return _default_mask; }
218
219 string get_owner_name() { return _owner_name; }
220 string get_group_name() { return _group_name; }
221 uid_t get_owner_uid() { return _uid_owner; }
222
223 bool has_mask() const { return _there_is_mask; }
224 bool has_default_user() const { return _there_is_default_user; }
225 bool has_default_group() const { return _there_is_default_group; }
226 bool has_default_other() const { return _there_is_default_others; }
227 bool has_default_mask() const { return _there_is_default_mask; }
228 };
229
230 #endif
162 }
163 bool operator()(acl_entry& a)
164 {
165 return (a.valid_name && (a.name == _qualifier));
166 }
167 };
168
169 public:
170 const static int PERM_READ = 0;
171 const static int PERM_WRITE = 1;
172 const static int PERM_EXEC = 2;
173
174 ACLManager(const std::string& filename);
175
176 std::string get_acl_access() const { return _text_acl_access; }
177 std::string get_acl_default() const { return _text_acl_default; }
178
179 bool is_directory() const { return _is_directory; }
180
181 void modify_acl_user(const std::string& username, const permissions_t& perms);
182 void modify_acl_group(const std::string& groupname,
183 const permissions_t& perms);
184
185 void modify_acl_default_user(const std::string& username,
186 const permissions_t& perms);
187 void modify_acl_default_group(const std::string& groupname,
188 const permissions_t& perms);
189
190 void modify_owner_perms(permissions_t& p);
191 void modify_group_perms(permissions_t& p);
192 void modify_others_perms(permissions_t& p);
193 void modify_mask(permissions_t& p);
194
195 void modify_owner_perms_default(permissions_t& p);
196 void modify_group_perms_default(permissions_t& p);
197 void modify_others_perms_default(permissions_t& p);
198 void modify_mask_default(permissions_t& p);
199
200 void remove_acl_user(const std::string& username);
201 void remove_acl_group(const std::string& groupname);
202 void remove_acl_user_default(const std::string& username);
203 void remove_acl_group_default(const std::string& groupname);
204
205 void clear_all_acl();
206 void clear_default_acl();
207
208 void create_default_acl();
209
210 std::vector<acl_entry> get_acl_user() const { return _user_acl; }
211 std::vector<acl_entry> get_acl_group() const { return _group_acl; }
212 std::vector<acl_entry> get_acl_user_default() const
213 {
214 return _default_user_acl;
215 }
216 std::vector<acl_entry> get_acl_group_default() const
217 {
218 return _default_group_acl;
219 }
220 permissions_t get_mask() { return _mask_acl; }
221
222 permissions_t get_user() { return _owner_perms; }
223 permissions_t get_group() { return _group_perms; }
224 permissions_t get_other() { return _others_perms; }
225
226 permissions_t get_user_default() { return _default_user; }
227 permissions_t get_group_default() { return _default_group; }
228 permissions_t get_other_default() { return _default_others; }
229 permissions_t get_mask_default() { return _default_mask; }
230
231 std::string get_owner_name() { return _owner_name; }
232 std::string get_group_name() { return _group_name; }
233 uid_t get_owner_uid() { return _uid_owner; }
234
235 bool has_mask() const { return _there_is_mask; }
236 bool has_default_user() const { return _there_is_default_user; }
237 bool has_default_group() const { return _there_is_default_group; }
238 bool has_default_other() const { return _there_is_default_others; }
239 bool has_default_mask() const { return _there_is_default_mask; }
240
241 // Convenience function used for recursive operation
242 static void set_file_acl(const std::string& filename, const std::string& access_acl_text, const std::string& default_acl_text);
243
244 static std::string permission_to_str(const permissions_t& p)
245 {
246 std::string s;
247 s += (p.reading ? "r" : "-");
248 s += (p.writing ? "w" : "-");
249 s += (p.execution ? "x" : "-");
250 return s;
251 }
252 };
253
254 #endif
00 /*
11 Eiciel - GNOME editor of ACL file permissions.
2 Copyright (C) 2004-2014 Roger Ferrer Ibáñez
2 Copyright (C) 2004-2019 Roger Ferrer Ibáñez
33
44 This program is free software; you can redistribute it and/or modify
55 it under the terms of the GNU General Public License as published by
2222 #define MARK_BACKGROUND_PROPERTY ("mark_background")
2323
2424 CellRendererACL::CellRendererACL()
25 : Glib::ObjectBase (typeid(CellRendererACL)),
26 Gtk::CellRendererToggle(),
27 _mark_background(*this, MARK_BACKGROUND_PROPERTY, false)
25 : Glib::ObjectBase(typeid(CellRendererACL))
26 , Gtk::CellRendererToggle()
27 , _mark_background(*this, MARK_BACKGROUND_PROPERTY, false)
2828 {
2929 }
3030
3232 static int default_indicator_size = 16;
3333 static const int blank = 4;
3434
35 Glib::RefPtr<Gdk::Pixbuf> CellRendererACL::get_warning_icon(Gtk::Widget &widget) const
36 {
37 #ifdef USING_GNOME2
38 Glib::RefPtr<Gdk::Pixbuf> warning_icon = widget.render_icon(Gtk::Stock::DIALOG_WARNING,
39 Gtk::IconSize(Gtk::ICON_SIZE_SMALL_TOOLBAR),
40 "default");
41 #else
42 Glib::RefPtr<Gdk::Pixbuf> warning_icon = widget.render_icon_pixbuf(Gtk::Stock::DIALOG_WARNING,
43 Gtk::IconSize(Gtk::ICON_SIZE_SMALL_TOOLBAR));
35 Glib::RefPtr<Gdk::Pixbuf> CellRendererACL::get_warning_icon(
36 Gtk::Widget& widget) const
37 {
38 #ifdef USING_GNOME2
39 Glib::RefPtr<Gdk::Pixbuf> warning_icon = widget.render_icon(
40 Gtk::Stock::DIALOG_WARNING, Gtk::IconSize(Gtk::ICON_SIZE_SMALL_TOOLBAR),
41 "default");
42 #else
43 Glib::RefPtr<Gdk::Pixbuf> warning_icon = widget.render_icon_pixbuf(
44 Gtk::Stock::DIALOG_WARNING, Gtk::IconSize(Gtk::ICON_SIZE_SMALL_TOOLBAR));
4445 #endif
4546 return warning_icon;
4647 }
4748
48 void CellRendererACL::get_preferred_width_vfunc(
49 Gtk::Widget& widget,
50 int & minimum_width,
51 int & natural_width
52 ) const
49 void CellRendererACL::get_preferred_width_vfunc(Gtk::Widget& widget,
50 int& minimum_width,
51 int& natural_width) const
5352 {
5453 Glib::RefPtr<Gdk::Pixbuf> warning_icon = get_warning_icon(widget);
5554
5958 natural_width = minimum_width = inner_box_width;
6059 }
6160
62 void CellRendererACL::get_preferred_height_vfunc(
63 Gtk::Widget& widget,
64 int & minimum_height,
65 int & natural_height
66 ) const
61 void CellRendererACL::get_preferred_height_vfunc(Gtk::Widget& widget,
62 int& minimum_height,
63 int& natural_height) const
6764 {
6865 Glib::RefPtr<Gdk::Pixbuf> warning_icon = get_warning_icon(widget);
6966
7370 natural_height = minimum_height = inner_box_height;
7471 }
7572
76 void CellRendererACL::render_vfunc (
77 #ifdef USING_GNOME2
78 const Glib::RefPtr<Gdk::Drawable>& drawable,
79 #else
80 const Cairo::RefPtr<Cairo::Context>& cr,
81 #endif
82 Gtk::Widget& widget,
83 const Gdk::Rectangle& background_area,
84 const Gdk::Rectangle& cell_area,
85 #ifdef USING_GNOME2
86 const Gdk::Rectangle& expose_area,
87 #endif
88 Gtk::CellRendererState flags)
73 void CellRendererACL::render_vfunc(
74 #ifdef USING_GNOME2
75 const Glib::RefPtr<Gdk::Drawable>& drawable,
76 #else
77 const Cairo::RefPtr<Cairo::Context>& cr,
78 #endif
79 Gtk::Widget& widget,
80 const Gdk::Rectangle& background_area,
81 const Gdk::Rectangle& cell_area,
82 #ifdef USING_GNOME2
83 const Gdk::Rectangle& expose_area,
84 #endif
85 Gtk::CellRendererState flags)
8986 {
9087 Glib::RefPtr<Gdk::Pixbuf> warning_icon = this->get_warning_icon(widget);
9188
9289 #ifdef USING_GNOME2
93 Gtk::StateType state = Gtk::STATE_NORMAL;
90 Gtk::StateType state = Gtk::STATE_NORMAL;
9491 #else
9592 Gtk::StateFlags state = this->get_state(widget, flags);
9693 #endif
9895 #ifdef USING_GNOME2
9996 Gtk::ShadowType shadow = Gtk::SHADOW_OUT;
10097 #endif
101 if (property_active())
102 {
98 if (property_active()) {
10399 #ifdef USING_GNOME2
104100 shadow = Gtk::SHADOW_IN;
105101 #else
106 #ifdef GTK_MINOR_VERSION
107 #if GTK_MINOR_VERSION >= 14
102 #ifdef GTK_MINOR_VERSION
103 #if GTK_MINOR_VERSION >= 14
108104 // GTK+3.14 adds a new GTK_STATE_FLAG_CHECKED for checkboxes and radios
109105 state |= Gtk::STATE_FLAG_CHECKED;
110 #else
106 #else
111107 state |= Gtk::STATE_FLAG_ACTIVE;
112 #endif
113 #endif
108 #endif
109 #endif
114110 #endif
115111 }
116112
119115 Glib::RefPtr<Gdk::Window> window = Glib::RefPtr<Gdk::Window>::cast_dynamic(drawable);
120116 #else
121117 cr->save();
122 cr->rectangle(cell_area.get_x(), cell_area.get_y(), cell_area.get_width(), cell_area.get_height());
118 cr->rectangle(cell_area.get_x(), cell_area.get_y(), cell_area.get_width(),
119 cell_area.get_height());
123120 cr->clip();
124121
125122 Glib::RefPtr<Gtk::StyleContext> style_context = widget.get_style_context();
128125 #endif
129126
130127 /*
131 * The size of the icon + 4 spacing pixels + checkbox of 16x16
132 */
128 * The size of the icon + 4 spacing pixels + checkbox of 16x16
129 */
133130
134131 const int checkbox_width = default_indicator_size;
135132 const int checkbox_height = default_indicator_size;
136133 const int inner_box_width = warning_icon->get_width() + blank + checkbox_width;
137134 const int inner_box_height = std::max(warning_icon->get_height(), checkbox_height);
138135
139 // std::cerr
140 // << "--->" << std::endl
141 // << "inner_box_width= " << inner_box_width << std::endl
142 // << "inner_box_height= " << inner_box_height << std::endl
143 // << "cell_area_width= " << cell_area.get_width() << std::endl
144 // << "cell_area_height= " << cell_area.get_height() << std::endl
145 // << "<---" << std::endl;
146 // ;
136 // std::cerr
137 // << "--->" << std::endl
138 // << "inner_box_width= " << inner_box_width << std::endl
139 // << "inner_box_height= " << inner_box_height << std::endl
140 // << "cell_area_width= " << cell_area.get_width() << std::endl
141 // << "cell_area_height= " << cell_area.get_height() << std::endl
142 // << "<---" << std::endl;
143 // ;
147144
148145 /*
149 * Precondition: cell_area.get_width() >= inner_box_width
150 * cell_area.get_height() >= inner_box_height()
151 *
152 * Enforce this in the widget
153 */
146 * Precondition: cell_area.get_width() >= inner_box_width
147 * cell_area.get_height() >= inner_box_height()
148 *
149 * Enforce this in the widget
150 */
154151
155152 int inner_x = (cell_area.get_width() - inner_box_width) / 2;
156153 int inner_y = (cell_area.get_height() - inner_box_height) / 2;
162159 inner_y += cell_area.get_y();
163160
164161 int checkbox_x = inner_x + warning_icon->get_width() + blank;
165 int checkbox_y = inner_y + (warning_icon->get_height() - checkbox_height)/2;
166
167 // std::cerr
168 // << "--->" << std::endl
169 // << "checkbox_x = " << checkbox_x << std::endl
170 // << "checkbox_y = " << checkbox_y << std::endl
171 // << "<---" << std::endl;
172 // ;
173
174 #ifdef USING_GNOME2
175 style->paint_check(
176 window,
177 state,
178 shadow,
179 cell_area,
180 widget,
181 "checkbutton",
182 checkbox_x, checkbox_y, checkbox_width, checkbox_height
183 );
162 int checkbox_y = inner_y + (warning_icon->get_height() - checkbox_height) / 2;
163
164 // std::cerr
165 // << "--->" << std::endl
166 // << "checkbox_x = " << checkbox_x << std::endl
167 // << "checkbox_y = " << checkbox_y << std::endl
168 // << "<---" << std::endl;
169 // ;
170
171 #ifdef USING_GNOME2
172 style->paint_check(window, state, shadow, cell_area, widget, "checkbutton",
173 checkbox_x, checkbox_y, checkbox_width, checkbox_height);
184174 #else
185175 style_context->add_class("check");
186 style_context->render_check(
187 cr,
188 checkbox_x, checkbox_y,
189 checkbox_width, checkbox_height
190 );
191 #endif
192
193 // std::cerr << "-->"
194 // << "property = " << (bool)property_active() << std::endl
195 // << "mark-background = " << (bool)_mark_background.get_value() << std::endl
196 // << "<--" << std::endl;
197
198 if (property_active() && _mark_background.get_value())
199 {
176 style_context->render_check(cr, checkbox_x, checkbox_y, checkbox_width,
177 checkbox_height);
178 #endif
179
180 // std::cerr << "-->"
181 // << "property = " << (bool)property_active() << std::endl
182 // << "mark-background = " << (bool)_mark_background.get_value() <<
183 // std::endl
184 // << "<--" << std::endl;
185
186 if (property_active() && _mark_background.get_value()) {
200187 int icon_x = inner_x;
201188 int icon_y = inner_y;
202189 #ifdef USING_GNOME2
203190 Glib::RefPtr<Gdk::GC> graphic_context = Gdk::GC::create(drawable);
204191
205 drawable->draw_pixbuf(graphic_context,
206 warning_icon,
207 0, 0,
208 icon_x, icon_y,
209 -1, -1,
210 Gdk::RGB_DITHER_NORMAL,
211 0, 0);
192 drawable->draw_pixbuf(graphic_context, warning_icon, 0, 0, icon_x, icon_y,
193 -1, -1, Gdk::RGB_DITHER_NORMAL, 0, 0);
212194 #else
213195 Gdk::Cairo::set_source_pixbuf(cr, warning_icon, icon_x, icon_y);
214196 cr->paint();
215197 #endif
216 }
198 }
217199
218200 #ifdef USING_GNOME2
219201 ;
230212
231213 // Compatibility overrides
232214 void CellRendererACL::get_size_vfunc(Gtk::Widget& widget,
233 const Gdk::Rectangle* cell_area,
234 int * x_offset,
235 int * y_offset,
236 int * width,
237 int * height) const
215 const Gdk::Rectangle* cell_area,
216 int* x_offset,
217 int* y_offset,
218 int* width,
219 int* height) const
238220 {
239221 int dummy = 0;
240222 this->get_preferred_width_vfunc(widget, *width, dummy);
241223 this->get_preferred_height_vfunc(widget, *height, dummy);
242224 }
243
00 /*
11 Eiciel - GNOME editor of ACL file permissions.
2 Copyright (C) 2004-2014 Roger Ferrer Ibáñez
2 Copyright (C) 2004-2019 Roger Ferrer Ibáñez
33
44 This program is free software; you can redistribute it and/or modify
55 it under the terms of the GNU General Public License as published by
2121 #include <config.hpp>
2222 #include <gtkmm.h>
2323
24 class CellRendererACL : public Gtk::CellRendererToggle
25 {
26 protected:
24 class CellRendererACL : public Gtk::CellRendererToggle {
25 protected:
26 virtual void render_vfunc(
27 #ifdef USING_GNOME2
28 const Glib::RefPtr<Gdk::Drawable>& window,
29 #else
30 const Cairo::RefPtr<Cairo::Context>& cr,
31 #endif
32 Gtk::Widget& widget,
33 const Gdk::Rectangle& background_area,
34 const Gdk::Rectangle& cell_area,
35 #ifdef USING_GNOME2
36 const Gdk::Rectangle& expose_area,
37 #endif
38 Gtk::CellRendererState flags);
2739
28 virtual void render_vfunc (
29 #ifdef USING_GNOME2
30 const Glib::RefPtr<Gdk::Drawable>& window,
31 #else
32 const Cairo::RefPtr<Cairo::Context>& cr,
33 #endif
34 Gtk::Widget& widget,
35 const Gdk::Rectangle& background_area,
36 const Gdk::Rectangle& cell_area,
37 #ifdef USING_GNOME2
38 const Gdk::Rectangle& expose_area,
39 #endif
40 Gtk::CellRendererState flags
41 );
40 virtual void get_preferred_width_vfunc(Gtk::Widget& widget,
41 int& minimum_width,
42 int& natural_width) const;
4243
43 virtual void get_preferred_width_vfunc(
44 Gtk::Widget& widget,
45 int & minimum_width,
46 int & natural_width
47 ) const;
44 virtual void get_preferred_height_vfunc(Gtk::Widget& widget,
45 int& minimum_width,
46 int& natural_width) const;
4847
49 virtual void get_preferred_height_vfunc(
50 Gtk::Widget& widget,
51 int & minimum_width,
52 int & natural_width
53 ) const;
48 private:
49 Glib::Property<bool> _mark_background;
5450
55 private:
56 Glib::Property<bool> _mark_background;
51 Glib::RefPtr<Gdk::Pixbuf> get_warning_icon(Gtk::Widget& widget) const;
5752
58 Glib::RefPtr<Gdk::Pixbuf> get_warning_icon(Gtk::Widget& widget) const;
53 public:
54 CellRendererACL();
55 Glib::PropertyProxy<bool> mark_background();
5956
60 public:
61 CellRendererACL();
62 Glib::PropertyProxy<bool> mark_background();
63
64 protected:
65 // Compatibility overrides
66 virtual void get_size_vfunc(Gtk::Widget& widget,
67 const Gdk::Rectangle* cell_area,
68 int * x_offset,
69 int * y_offset,
70 int * width,
71 int * height) const;
72
57 protected:
58 // Compatibility overrides
59 virtual void get_size_vfunc(Gtk::Widget& widget,
60 const Gdk::Rectangle* cell_area,
61 int* x_offset,
62 int* y_offset,
63 int* width,
64 int* height) const;
7365 };
7466
7567 #endif
0 /*
1 Eiciel - GNOME editor of ACL file permissions.
2 Copyright (C) 2019 Roger Ferrer Ibáñez
3
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation; either version 2 of the License, or
7 (at your option) any later version.
8
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
13
14 You should have received a copy of the GNU General Public License
15 along with this program; if not, write to the Free Software
16 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
17 */
18
19 #include "eiciel_acl_list.hpp"
20 #include "eiciel_acl_list_controller.hpp"
21
22 // Constructor
23 EicielACLList::EicielACLList(EicielACLListController* cont)
24 : Gtk::Box(Gtk::ORIENTATION_VERTICAL)
25 /* GUI */
26 , _main_box(Gtk::ORIENTATION_VERTICAL)
27 , _listview_acl_container()
28 , _listview_acl()
29 , _warning_hbox()
30 , _warning_icon(Gtk::Stock::DIALOG_WARNING,
31 Gtk::IconSize(Gtk::ICON_SIZE_SMALL_TOOLBAR))
32 , _warning_label(_("There are ineffective permissions"))
33 , _middle_button_group()
34 , _b_remove_acl(_("Remove participant from ACL"))
35 , _cb_modify_default_acl(_("Edit default participants"))
36 /* Non GUI */
37 , _readonly_mode(false)
38 , _toggling_default_acl(false)
39 , _controller(cont) // Assign _controller to _window
40 {
41 // Let know the controller we are its view.
42 _controller->set_view(this);
43
44 this->set_margin_top(12);
45 this->set_margin_bottom(12);
46 this->set_margin_start(12);
47 this->set_margin_end(12);
48
49 this->pack_start(_main_box);
50
51 _main_box.set_spacing(4);
52
53 #ifndef USING_GNOME2
54 _middle_button_group.set_spacing(2);
55 #endif
56
57 // Open icons
58 _user_icon = Gdk::Pixbuf::create_from_file(PKGDATADIR "/img/user.png");
59 _user_icon_acl = Gdk::Pixbuf::create_from_file(PKGDATADIR "/img/user-acl.png");
60 _group_icon = Gdk::Pixbuf::create_from_file(PKGDATADIR "/img/group.png");
61 _group_icon_acl = Gdk::Pixbuf::create_from_file(PKGDATADIR "/img/group-acl.png");
62 _others_icon = Gdk::Pixbuf::create_from_file(PKGDATADIR "/img/others.png");
63 _mask_icon = Gdk::Pixbuf::create_from_file(PKGDATADIR "/img/mask.png");
64
65 _default_user_icon = Gdk::Pixbuf::create_from_file(PKGDATADIR "/img/user-default.png");
66 _default_group_icon = Gdk::Pixbuf::create_from_file(PKGDATADIR "/img/group-default.png");
67 _default_others_icon = Gdk::Pixbuf::create_from_file(PKGDATADIR "/img/others-default.png");
68 _default_user_icon_acl = Gdk::Pixbuf::create_from_file(PKGDATADIR "/img/user-acl-default.png");
69 _default_group_icon_acl = Gdk::Pixbuf::create_from_file(PKGDATADIR "/img/group-acl-default.png");
70 _default_mask_icon = Gdk::Pixbuf::create_from_file(PKGDATADIR "/img/mask-default.png");
71
72 // ACL list
73 _ref_acl_list = create_acl_list_store();
74
75 // Set columns in the ACL list
76 _listview_acl.set_model(_ref_acl_list);
77 _listview_acl.append_column("", _acl_list_model._icon);
78 _listview_acl.append_column(_("Entry"), _acl_list_model._entry_name);
79
80 CellRendererACL* renderRead = Gtk::manage(new CellRendererACL());
81 int numColumns = _listview_acl.append_column(_("Read"), *renderRead);
82 Gtk::TreeViewColumn* reading_column = _listview_acl.get_column(numColumns - 1);
83
84 if (reading_column != NULL) {
85 reading_column->add_attribute(renderRead->property_active(),
86 _acl_list_model._reading_permission);
87 reading_column->add_attribute(renderRead->mark_background(),
88 _acl_list_model._reading_ineffective);
89 reading_column->set_cell_data_func(
90 *renderRead, mem_fun(*this, &EicielACLList::acl_cell_data_func));
91 }
92
93 CellRendererACL* renderWrite = Gtk::manage(new CellRendererACL());
94 numColumns = _listview_acl.append_column(_("Write"), *renderWrite);
95 Gtk::TreeViewColumn* writing_column = _listview_acl.get_column(numColumns - 1);
96 if (writing_column != NULL) {
97 writing_column->add_attribute(renderWrite->property_active(),
98 _acl_list_model._writing_permission);
99 writing_column->add_attribute(renderWrite->mark_background(),
100 _acl_list_model._writing_ineffective);
101 writing_column->set_cell_data_func(
102 *renderWrite, mem_fun(*this, &EicielACLList::acl_cell_data_func));
103 }
104
105 CellRendererACL* renderExecute = Gtk::manage(new CellRendererACL());
106 numColumns = _listview_acl.append_column(_("Execute"), *renderExecute);
107 Gtk::TreeViewColumn* execution_column = _listview_acl.get_column(numColumns - 1);
108 if (execution_column != NULL) {
109 execution_column->add_attribute(renderExecute->property_active(),
110 _acl_list_model._execution_permission);
111 execution_column->add_attribute(renderExecute->mark_background(),
112 _acl_list_model._execution_ineffective);
113 execution_column->set_cell_data_func(
114 *renderExecute, mem_fun(*this, &EicielACLList::acl_cell_data_func));
115 }
116
117 // Aesthetic column completely useless
118 _listview_acl.append_column("", _acl_list_model._empty);
119
120 _listview_acl_container.add(_listview_acl);
121 _listview_acl_container.set_policy(Gtk::POLICY_NEVER, Gtk::POLICY_AUTOMATIC);
122
123 _listview_acl_container.set_size_request(-1, 150);
124 _listview_acl_container.set_shadow_type(Gtk::SHADOW_IN);
125
126 _main_box.pack_start(_listview_acl_container);
127
128 _warning_hbox.set_spacing(4);
129 _warning_icon.set_halign(Gtk::ALIGN_START);
130 _warning_hbox.pack_start(_warning_icon, Gtk::PACK_SHRINK);
131 _warning_label.set_halign(Gtk::ALIGN_START);
132 _warning_hbox.pack_start(_warning_label, Gtk::PACK_SHRINK);
133
134 _main_box.pack_start(_warning_hbox, Gtk::PACK_SHRINK);
135
136 // Add 'move up' 'move down' buttons
137 _middle_button_group.pack_end(_b_remove_acl, Gtk::PACK_SHRINK);
138 _middle_button_group.pack_end(_cb_modify_default_acl, Gtk::PACK_SHRINK);
139
140 _main_box.pack_start(_middle_button_group, Gtk::PACK_SHRINK);
141
142 // Signal binding
143 Glib::RefPtr<Gtk::TreeSelection> acl_list_selection_reference = _listview_acl.get_selection();
144
145 // Filter function this time only for _readonly_mode
146 acl_list_selection_reference->set_select_function(
147 sigc::mem_fun(*this, &EicielACLList::acl_selection_function));
148
149 // ACL selection change event
150 acl_list_selection_reference->signal_changed().connect(
151 sigc::mem_fun(*this, &EicielACLList::acl_selection_change));
152
153 // Remove ACL button
154 _b_remove_acl.signal_clicked().connect(
155 sigc::mem_fun(*this, &EicielACLList::remove_selected_acl));
156
157 // Change of default acl toggle button
158 _cb_modify_default_acl.signal_clicked().connect(
159 sigc::mem_fun(*this, &EicielACLList::toggle_edit_default_acl));
160
161 // Column edition event
162 Gtk::TreeViewColumn* col = _listview_acl.get_column(2);
163 #ifdef USING_GNOME2
164 Gtk::CellRenderer* render = col->get_first_cell_renderer(); // Only one
165 #else
166 Gtk::CellRenderer* render = col->get_first_cell(); // Only one
167 #endif
168 CellRendererACL* toggle_render = dynamic_cast<CellRendererACL*>(render);
169
170 toggle_render->signal_toggled().connect(sigc::bind<PermissionKind>(
171 sigc::mem_fun(*this, &EicielACLList::change_permissions), PK_READING));
172
173 col = _listview_acl.get_column(3);
174 #ifdef USING_GNOME2
175 render = col->get_first_cell_renderer();
176 #else
177 render = col->get_first_cell();
178 #endif
179 toggle_render = dynamic_cast<CellRendererACL*>(render);
180
181 toggle_render->signal_toggled().connect(sigc::bind<PermissionKind>(
182 sigc::mem_fun(*this, &EicielACLList::change_permissions), PK_WRITING));
183
184 col = _listview_acl.get_column(4);
185 #ifdef USING_GNOME2
186 render = col->get_first_cell_renderer();
187 #else
188 render = col->get_first_cell();
189 #endif
190 toggle_render = dynamic_cast<CellRendererACL*>(render);
191
192 toggle_render->signal_toggled().connect(sigc::bind<PermissionKind>(
193 sigc::mem_fun(*this, &EicielACLList::change_permissions), PK_EXECUTION));
194
195 show_all();
196 }
197
198 Glib::RefPtr<Gtk::ListStore> EicielACLList::create_acl_list_store()
199 {
200 return Gtk::ListStore::create(_acl_list_model);
201 }
202
203 void EicielACLList::set_exist_ineffective_permissions(bool b)
204 {
205 if (b) {
206 _warning_label.show();
207 _warning_icon.show();
208 } else {
209 _warning_icon.hide();
210 _warning_label.hide();
211 }
212 }
213
214 EicielACLList::~EicielACLList()
215 {
216 }
217
218 void EicielACLList::set_active(bool b)
219 {
220 _main_box.set_sensitive(b);
221 }
222
223 void EicielACLList::set_readonly(bool b)
224 {
225 _readonly_mode = b;
226 if (b) {
227 _cb_modify_default_acl.set_sensitive(false);
228 }
229 }
230
231 bool EicielACLList::acl_selection_function(
232 const Glib::RefPtr<Gtk::TreeModel>& model,
233 const Gtk::TreeModel::Path& path,
234 bool)
235 {
236 return !_readonly_mode;
237 }
238
239 void EicielACLList::empty_acl_list()
240 {
241 _ref_acl_list->clear();
242 }
243
244 void EicielACLList::replace_acl_store(Glib::RefPtr<Gtk::ListStore> ref_acl_list)
245 {
246 _listview_acl.set_model(ref_acl_list);
247 _ref_acl_list = ref_acl_list;
248 }
249
250 Glib::RefPtr<Gtk::ListStore> EicielACLList::get_acl_store()
251 {
252 return _ref_acl_list;
253 }
254
255 void EicielACLList::acl_selection_change()
256 {
257 Glib::RefPtr<Gtk::TreeSelection> selection_list_reference = _listview_acl.get_selection();
258 Gtk::TreeModel::iterator iter = selection_list_reference->get_selected();
259 if (!iter || _readonly_mode) {
260 there_is_no_acl_selection();
261 } else {
262 if (!(*iter)[_acl_list_model._removable])
263 there_is_no_acl_selection();
264 else
265 there_is_acl_selection();
266 }
267 }
268
269 void EicielACLList::remove_selected_acl()
270 {
271 Glib::RefPtr<Gtk::TreeSelection> selection_list_reference = _listview_acl.get_selection();
272 Gtk::TreeModel::iterator iter = selection_list_reference->get_selected();
273 if (iter) {
274 Gtk::TreeModel::Row row(*iter);
275 if (row[_acl_list_model._removable]) {
276 Gtk::TreeModel::Row row(*iter);
277 _controller->remove_acl(Glib::ustring(row[_acl_list_model._entry_name]),
278 ElementKind(row[_acl_list_model._entry_kind]));
279 }
280 }
281 }
282
283 void EicielACLList::there_is_no_acl_selection()
284 {
285 _b_remove_acl.set_sensitive(false);
286 }
287
288 void EicielACLList::there_is_acl_selection()
289 {
290 _b_remove_acl.set_sensitive(true);
291 }
292
293 void EicielACLList::add_non_selectable(
294 Glib::RefPtr<Gtk::ListStore> ref_acl_list,
295 Glib::ustring title,
296 bool reading,
297 bool writing,
298 bool execution,
299 ElementKind e)
300 {
301 Gtk::TreeModel::iterator iter = ref_acl_list->append();
302 Gtk::TreeModel::Row row(*iter);
303
304 add_element(title, reading, writing, execution, e, row);
305 row[_acl_list_model._removable] = false;
306 }
307
308 void EicielACLList::add_selectable(
309 Glib::RefPtr<Gtk::ListStore> ref_acl_list,
310 Glib::ustring title,
311 bool reading,
312 bool writing,
313 bool execution,
314 ElementKind e)
315 {
316 Gtk::TreeModel::iterator iter = ref_acl_list->append();
317 Gtk::TreeModel::Row row(*iter);
318
319 add_element(title, reading, writing, execution, e, row);
320 row[_acl_list_model._removable] = true;
321 }
322
323 void EicielACLList::add_element(Glib::ustring title,
324 bool reading,
325 bool writing,
326 bool execution,
327 ElementKind e,
328 Gtk::TreeModel::Row& row)
329 {
330 row[_acl_list_model._entry_kind] = e;
331 row[_acl_list_model._icon] = get_proper_icon(e);
332 row[_acl_list_model._entry_name] = title;
333 row[_acl_list_model._reading_permission] = reading;
334 row[_acl_list_model._writing_permission] = writing;
335 row[_acl_list_model._execution_permission] = execution;
336 }
337
338 void EicielACLList::insert_before(const std::string& s, ElementKind new_element_kind, ElementKind before_element_kind, bool selectable)
339 {
340 Gtk::TreeModel::Children children = _ref_acl_list->children();
341
342 // Check first if was already inserted
343 for (Gtk::TreeModel::iterator iter = children.begin(); iter != children.end(); iter++) {
344 Gtk::TreeModel::Row row(*iter);
345 if (row[_acl_list_model._entry_kind] == new_element_kind
346 && row[_acl_list_model._entry_name] == s)
347 return;
348 // TODO: It should be possible to stop once before_element_kind has been seen
349 }
350
351 // If not found add it
352 for (Gtk::TreeModel::iterator iter = children.begin(); iter != children.end(); iter++) {
353 Gtk::TreeModel::Row row(*iter);
354 if (row[_acl_list_model._entry_kind] == before_element_kind) {
355 Gtk::TreeModel::Row new_row(*_ref_acl_list->insert(iter));
356 add_element(s, /* reading */ true, /* writing */ true, /* execution */ true, new_element_kind, new_row);
357 new_row[_acl_list_model._removable] = selectable;
358 break;
359 }
360 }
361 }
362
363 void EicielACLList::populate_required_nondefault_entries()
364 {
365 insert_before(_("Mask"), EK_MASK, EK_OTHERS, /* selectable */ false);
366 }
367
368 void EicielACLList::populate_required_default_entries()
369 {
370 Gtk::TreeModel::Children children = _ref_acl_list->children();
371
372 std::string user_owner, group_owner;
373 for (Gtk::TreeModel::iterator iter = children.begin(); iter != children.end(); iter++) {
374 Gtk::TreeModel::Row row(*iter);
375 switch (row[_acl_list_model._entry_kind]) {
376 default:
377 break;
378 case EK_USER:
379 user_owner = Glib::ustring(row[_acl_list_model._entry_name]);
380 break;
381 case EK_GROUP:
382 group_owner = Glib::ustring(row[_acl_list_model._entry_name]);
383 break;
384 case EK_DEFAULT_OTHERS:
385 // We assume that an EK_DEFAULT_OTHERS means we are including default entries
386 // so give up if already found.
387 return;
388 }
389 }
390
391 // EK_DEFAULT_OTHERS must be the last, so we handle it here manually
392 add_non_selectable(_ref_acl_list, _("Default Other"),
393 /* reading */ true,
394 /* writing */ true,
395 /* execution */ true,
396 EK_DEFAULT_OTHERS);
397
398 insert_before(_("Default Mask"), EK_DEFAULT_MASK, EK_DEFAULT_OTHERS, /* selectable */ false);
399
400 insert_before(group_owner, EK_DEFAULT_GROUP, EK_DEFAULT_MASK, /* selectable */ false);
401 insert_before(user_owner, EK_DEFAULT_USER, EK_DEFAULT_GROUP, /* selectable */ false);
402
403 default_acl_are_being_edited(true);
404 }
405
406 void EicielACLList::remove_all_default_entries()
407 {
408 Gtk::TreeModel::Children children = _ref_acl_list->children();
409 // The ACL is empty, remove irrelevant entries now
410 for (Gtk::TreeModel::iterator iter = children.begin(); iter != children.end();) {
411 Gtk::TreeModel::Row row(*iter);
412 switch (row[_acl_list_model._entry_kind]) {
413 case EK_DEFAULT_ACL_USER:
414 case EK_DEFAULT_ACL_GROUP:
415 case EK_DEFAULT_USER:
416 case EK_DEFAULT_GROUP:
417 case EK_DEFAULT_MASK:
418 case EK_DEFAULT_OTHERS:
419 iter = _ref_acl_list->erase(iter);
420 break;
421 default:
422 iter++;
423 }
424 }
425 }
426
427 void EicielACLList::insert_user(const std::string& s)
428 {
429 populate_required_nondefault_entries();
430 insert_before(s, EK_ACL_USER, EK_GROUP, /* selectable */ true);
431 }
432
433 void EicielACLList::insert_group(const std::string& s)
434 {
435 populate_required_nondefault_entries();
436 insert_before(s, EK_ACL_GROUP, EK_MASK, /* selectable */ true);
437 }
438
439 void EicielACLList::insert_default_user(const std::string& s)
440 {
441 populate_required_default_entries();
442 insert_before(s, EK_DEFAULT_ACL_USER, EK_DEFAULT_GROUP, /* selectable */ true);
443 }
444
445 void EicielACLList::insert_default_group(const std::string& s)
446 {
447 populate_required_default_entries();
448 insert_before(s, EK_DEFAULT_ACL_GROUP, EK_DEFAULT_MASK, /* selectable */ true);
449 }
450
451 bool EicielACLList::nondefault_acl_is_empty()
452 {
453 Gtk::TreeModel::Children children = _ref_acl_list->children();
454
455 for (Gtk::TreeModel::iterator iter = children.begin(); iter != children.end(); iter++) {
456 Gtk::TreeModel::Row row(*iter);
457 switch (row[_acl_list_model._entry_kind])
458 {
459 case EK_ACL_USER:
460 case EK_ACL_GROUP:
461 return false;
462 default:
463 break;
464 }
465 }
466
467 return true;
468 }
469
470 void EicielACLList::remove_unneeded_entries()
471 {
472 if (nondefault_acl_is_empty()) {
473 Gtk::TreeModel::Children children = _ref_acl_list->children();
474 // The ACL is empty, remove irrelevant entries now
475 for (Gtk::TreeModel::iterator iter = children.begin(); iter != children.end();) {
476 Gtk::TreeModel::Row row(*iter);
477 switch (row[_acl_list_model._entry_kind]) {
478 case EK_MASK:
479 iter = _ref_acl_list->erase(iter);
480 return;
481 default:
482 iter++;
483 }
484 }
485 }
486 // Default entries are handled in a manual fashion
487 }
488
489 void EicielACLList::remove_entry(const std::string &s, ElementKind e)
490 {
491 Gtk::TreeModel::Children children = _ref_acl_list->children();
492
493 for (Gtk::TreeModel::iterator iter = children.begin(); iter != children.end(); iter++) {
494 Gtk::TreeModel::Row row(*iter);
495 if (row[_acl_list_model._entry_kind] == e
496 && row[_acl_list_model._entry_name] == s)
497 {
498 _ref_acl_list->erase(iter);
499 break;
500 }
501 }
502
503 remove_unneeded_entries();
504 }
505
506 Glib::RefPtr<Gdk::Pixbuf> EicielACLList::get_proper_icon(ElementKind e)
507 {
508 switch (e) {
509 case EK_USER:
510 return _user_icon;
511 case EK_GROUP:
512 return _group_icon;
513 case EK_OTHERS:
514 return _others_icon;
515 case EK_MASK:
516 return _mask_icon;
517 case EK_ACL_USER:
518 return _user_icon_acl;
519 case EK_ACL_GROUP:
520 return _group_icon_acl;
521 case EK_DEFAULT_USER:
522 return _default_user_icon;
523 case EK_DEFAULT_GROUP:
524 return _default_group_icon;
525 case EK_DEFAULT_OTHERS:
526 return _default_others_icon;
527 case EK_DEFAULT_ACL_USER:
528 return _default_user_icon_acl;
529 case EK_DEFAULT_ACL_GROUP:
530 return _default_group_icon_acl;
531 case EK_DEFAULT_MASK:
532 return _default_mask_icon;
533 default:
534 return _others_icon;
535 }
536 }
537
538 void EicielACLList::change_permissions(const Glib::ustring& str,
539 PermissionKind p)
540 {
541 if (_readonly_mode)
542 return;
543
544 Gtk::TreeModel::iterator i = _ref_acl_list->get_iter(str);
545 Gtk::TreeModel::Row row(*i);
546
547 switch (p) {
548 case PK_READING:
549 row[_acl_list_model._reading_permission] = !row[_acl_list_model._reading_permission];
550 break;
551 case PK_WRITING:
552 row[_acl_list_model._writing_permission] = !row[_acl_list_model._writing_permission];
553 break;
554 case PK_EXECUTION:
555 row[_acl_list_model._execution_permission] = !row[_acl_list_model._execution_permission];
556 break;
557 }
558
559 _controller->update_acl_entry(row[_acl_list_model._entry_kind],
560 Glib::ustring(row[_acl_list_model._entry_name]),
561 row[_acl_list_model._reading_permission],
562 row[_acl_list_model._writing_permission],
563 row[_acl_list_model._execution_permission]);
564 }
565
566 void EicielACLList::can_edit_default_acl(bool b)
567 {
568 // Show we hide it instead?
569 _cb_modify_default_acl.set_sensitive(b);
570 }
571
572 void EicielACLList::default_acl_are_being_edited(bool b)
573 {
574 _toggling_default_acl = true;
575 _cb_modify_default_acl.set_active(b);
576 _toggling_default_acl = false;
577 }
578
579 void EicielACLList::update_acl_ineffective(permissions_t effective_permissions, permissions_t effective_default_permissions)
580 {
581 Gtk::TreeModel::Children children = _ref_acl_list->children();
582
583 bool exist_ineffective_permissions = false;
584 for (Gtk::TreeModel::iterator iter = children.begin(); iter != children.end(); iter++) {
585 Gtk::TreeModel::Row row(*iter);
586 switch (row[_acl_list_model._entry_kind]) {
587 case EK_GROUP:
588 case EK_ACL_USER:
589 case EK_ACL_GROUP:
590 row[_acl_list_model._reading_ineffective] = !effective_permissions.reading;
591 row[_acl_list_model._writing_ineffective] = !effective_permissions.writing;
592 row[_acl_list_model._execution_ineffective] = !effective_permissions.execution;
593 exist_ineffective_permissions = exist_ineffective_permissions || ((!effective_permissions.reading && row[_acl_list_model._reading_permission]) || (!effective_permissions.writing && row[_acl_list_model._writing_permission]) || (!effective_permissions.execution && row[_acl_list_model._execution_permission]));
594 break;
595 case EK_DEFAULT_GROUP:
596 case EK_DEFAULT_ACL_USER:
597 case EK_DEFAULT_ACL_GROUP:
598 row[_acl_list_model._reading_ineffective] = !effective_default_permissions.reading;
599 row[_acl_list_model._writing_ineffective] = !effective_default_permissions.writing;
600 row[_acl_list_model._execution_ineffective] = !effective_default_permissions.execution;
601 exist_ineffective_permissions = exist_ineffective_permissions || ((!effective_default_permissions.reading && row[_acl_list_model._reading_permission]) || (!effective_default_permissions.writing && row[_acl_list_model._writing_permission]) || (!effective_default_permissions.execution && row[_acl_list_model._execution_permission]));
602 break;
603 // These don't change
604 case EK_USER:
605 case EK_OTHERS:
606 case EK_MASK:
607 case EK_DEFAULT_USER:
608 case EK_DEFAULT_MASK:
609 case EK_DEFAULT_OTHERS:
610 break;
611 }
612 }
613 set_exist_ineffective_permissions(exist_ineffective_permissions);
614 }
615
616 void EicielACLList::choose_acl(const std::string& s, ElementKind e)
617 {
618 Glib::RefPtr<Gtk::TreeModel> list_model = _listview_acl.get_model();
619 Gtk::TreeModel::Children children = list_model->children();
620 bool found = false;
621 for (Gtk::TreeModel::Children::iterator iter = children.begin();
622 (iter != children.end()) && !found; ++iter) {
623 Gtk::TreeModel::Row row(*iter);
624 if ((row[_acl_list_model._entry_kind] == e) && (row[_acl_list_model._entry_name] == s)) {
625 found = true;
626 Gtk::TreePath p = list_model->get_path(iter);
627 _listview_acl.set_cursor(p);
628 _listview_acl.scroll_to_row(p, 0.5);
629 _listview_acl.grab_focus();
630 }
631 }
632 }
633
634 void EicielACLList::toggle_edit_default_acl()
635 {
636 // This triggers some nasty reentrancy that we can stop here.
637 if (_toggling_default_acl)
638 return;
639 _toggling_default_acl = true;
640
641 // Because this is fired after the button has been pressed and release, the value
642 // read is always the opposite. Perhaps there is a better way.
643 bool changed = _controller->toggle_edit_default_acl(!_cb_modify_default_acl.get_active());
644 if (!changed)
645 {
646 _cb_modify_default_acl.set_active(!_cb_modify_default_acl.get_active());
647 }
648
649 _toggling_default_acl = false;
650 }
651
652 void EicielACLList::acl_cell_data_func(Gtk::CellRenderer* rend,
653 const Gtk::TreeModel::iterator& itr) {}
654
655 void EicielACLList::disable_default_acl_editing()
656 {
657 _middle_button_group.remove(_cb_modify_default_acl);
658 }
659
660 void EicielACLList::get_textual_representation(std::string& access_acl, std::string &default_acl)
661 {
662 access_acl.clear();
663 default_acl.clear();
664
665 Glib::RefPtr<Gtk::TreeModel> list_model = _listview_acl.get_model();
666 Gtk::TreeModel::Children children = list_model->children();
667 for (Gtk::TreeModel::iterator iter = children.begin(); iter != children.end(); iter++) {
668 Gtk::TreeModel::Row row(*iter);
669 permissions_t p(row[_acl_list_model._reading_permission],
670 row[_acl_list_model._writing_permission],
671 row[_acl_list_model._execution_permission]);
672
673 // FIXME: the entry name may not exist and may have to be rendered using (id) syntax
674 switch (row[_acl_list_model._entry_kind]) {
675 case EK_USER:
676 access_acl += "u::" + ACLManager::permission_to_str(p) + "\n";
677 break;
678 case EK_ACL_USER:
679 access_acl += "u:" + row[_acl_list_model._entry_name] + ":" + ACLManager::permission_to_str(p) + "\n";
680 break;
681 case EK_GROUP:
682 access_acl += "g::" + ACLManager::permission_to_str(p) + "\n";
683 break;
684 case EK_ACL_GROUP:
685 access_acl += "g:" + row[_acl_list_model._entry_name] + ":" + ACLManager::permission_to_str(p) + "\n";
686 break;
687 case EK_MASK:
688 access_acl += "m::" + ACLManager::permission_to_str(p) + "\n";
689 break;
690 case EK_OTHERS:
691 access_acl += "o::" + ACLManager::permission_to_str(p) + "\n";
692 break;
693
694 case EK_DEFAULT_USER:
695 default_acl += "u::" + ACLManager::permission_to_str(p) + "\n";
696 break;
697 case EK_DEFAULT_ACL_USER:
698 default_acl += "u:" + row[_acl_list_model._entry_name] + ":" + ACLManager::permission_to_str(p) + "\n";
699 break;
700 case EK_DEFAULT_GROUP:
701 default_acl += "g::" + ACLManager::permission_to_str(p) + "\n";
702 break;
703 case EK_DEFAULT_ACL_GROUP:
704 default_acl += "g:" + row[_acl_list_model._entry_name] + ":" + ACLManager::permission_to_str(p) + "\n";
705 break;
706 case EK_DEFAULT_MASK:
707 default_acl += "m::" + ACLManager::permission_to_str(p) + "\n";
708 break;
709 case EK_DEFAULT_OTHERS:
710 default_acl += "o::" + ACLManager::permission_to_str(p) + "\n";
711 break;
712 }
713 }
714 }
715
716 permissions_t EicielACLList::get_mask_permissions()
717 {
718 permissions_t p(7);
719
720 Glib::RefPtr<Gtk::TreeModel> list_model = _listview_acl.get_model();
721 Gtk::TreeModel::Children children = list_model->children();
722 for (Gtk::TreeModel::iterator iter = children.begin(); iter != children.end(); iter++) {
723 Gtk::TreeModel::Row row(*iter);
724 if (row[_acl_list_model._entry_kind] == EK_MASK)
725 return permissions_t(row[_acl_list_model._reading_permission],
726 row[_acl_list_model._writing_permission],
727 row[_acl_list_model._execution_permission]);
728 }
729
730 return p;
731 }
732
733 permissions_t EicielACLList::get_default_mask_permissions()
734 {
735 permissions_t p(7);
736
737 Glib::RefPtr<Gtk::TreeModel> list_model = _listview_acl.get_model();
738 Gtk::TreeModel::Children children = list_model->children();
739 for (Gtk::TreeModel::iterator iter = children.begin(); iter != children.end(); iter++) {
740 Gtk::TreeModel::Row row(*iter);
741 if (row[_acl_list_model._entry_kind] == EK_DEFAULT_MASK)
742 return permissions_t(row[_acl_list_model._reading_permission],
743 row[_acl_list_model._writing_permission],
744 row[_acl_list_model._execution_permission]);
745 }
746
747 return p;
748 }
0 /*
1 Eiciel - GNOME editor of ACL file permissions.
2 Copyright (C) 2019 Roger Ferrer Ibáñez
3
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation; either version 2 of the License, or
7 (at your option) any later version.
8
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
13
14 You should have received a copy of the GNU General Public License
15 along with this program; if not, write to the Free Software
16 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
17 */
18 #ifndef EICIEL_ACL_LIST_HPP
19 #define EICIEL_ACL_LIST_HPP
20
21 #include "acl_element_kind.hpp"
22 #include "acl_list.hpp"
23 #include "acl_manager.hpp"
24 #include "participant_list.hpp"
25 #include <config.hpp>
26 #include <glib/gi18n-lib.h>
27 #include <gtkmm.h>
28 #include <set>
29 #include <string>
30
31 class EicielACLListController;
32
33 class EicielACLList : public Gtk::Box {
34 public:
35 EicielACLList(EicielACLListController* cont);
36 virtual ~EicielACLList();
37
38 void disable_default_acl_editing();
39
40 private:
41 /* GUI components */
42 /* */ Gtk::Box _main_box;
43 /* |- */ Gtk::ScrolledWindow _listview_acl_container;
44 /* | |- */ Gtk::TreeView _listview_acl;
45 /* |- */ Gtk::Box _warning_hbox;
46 /* | |- */ Gtk::Image _warning_icon;
47 /* | |- */ Gtk::Label _warning_label;
48 /* |- */ Gtk::Box _middle_button_group;
49 /* |- */ Gtk::Button _b_remove_acl;
50 /* |- */ Gtk::CheckButton _cb_modify_default_acl;
51
52 /* Non GUI */
53 Glib::RefPtr<Gdk::Pixbuf> _user_icon;
54 Glib::RefPtr<Gdk::Pixbuf> _group_icon;
55 Glib::RefPtr<Gdk::Pixbuf> _others_icon;
56 Glib::RefPtr<Gdk::Pixbuf> _mask_icon;
57
58 Glib::RefPtr<Gdk::Pixbuf> _user_icon_acl;
59 Glib::RefPtr<Gdk::Pixbuf> _group_icon_acl;
60
61 Glib::RefPtr<Gdk::Pixbuf> _default_user_icon;
62 Glib::RefPtr<Gdk::Pixbuf> _default_group_icon;
63 Glib::RefPtr<Gdk::Pixbuf> _default_others_icon;
64 Glib::RefPtr<Gdk::Pixbuf> _default_user_icon_acl;
65 Glib::RefPtr<Gdk::Pixbuf> _default_group_icon_acl;
66 Glib::RefPtr<Gdk::Pixbuf> _default_mask_icon;
67
68 Glib::RefPtr<Gtk::ListStore> _ref_acl_list;
69
70 ACLListModel _acl_list_model;
71
72 bool _readonly_mode;
73 bool _toggling_default_acl;
74
75 EicielACLListController* _controller;
76
77 void acl_selection_change();
78 void there_is_acl_selection();
79 void there_is_no_acl_selection();
80
81 Glib::RefPtr<Gdk::Pixbuf> get_proper_icon(ElementKind e);
82 void add_element(Glib::ustring title,
83 bool reading,
84 bool writing,
85 bool execution,
86 ElementKind e,
87 Gtk::TreeModel::Row& row);
88 void remove_selected_acl();
89 void change_permissions(const Glib::ustring& str, PermissionKind p);
90
91 bool acl_selection_function(const Glib::RefPtr<Gtk::TreeModel>& model,
92 const Gtk::TreeModel::Path& path,
93 bool);
94
95 void update_acl_ineffective(permissions_t effective_permissions, permissions_t effective_default_permissions);
96 void acl_cell_data_func(Gtk::CellRenderer*, const Gtk::TreeModel::iterator&);
97
98 void add_non_selectable(
99 Glib::RefPtr<Gtk::ListStore> ref_acl_list,
100 Glib::ustring title,
101 bool reading,
102 bool writing,
103 bool execution,
104 ElementKind e);
105 void add_selectable(
106 Glib::RefPtr<Gtk::ListStore> ref_acl_list,
107 Glib::ustring title,
108 bool reading,
109 bool writing,
110 bool execution,
111 ElementKind e);
112 void empty_acl_list();
113 void default_acl_are_being_edited(bool b);
114 void can_edit_default_acl(bool b);
115
116 void set_active(bool b);
117 void set_readonly(bool b);
118
119 void set_exist_ineffective_permissions(bool b);
120 void choose_acl(const std::string& s, ElementKind e);
121
122 Glib::RefPtr<Gtk::ListStore> create_acl_list_store();
123 Glib::RefPtr<Gtk::ListStore> get_acl_store();
124 void replace_acl_store(Glib::RefPtr<Gtk::ListStore> ref_acl_list);
125
126 void toggle_edit_default_acl();
127
128 void populate_required_nondefault_entries();
129 void populate_required_default_entries();
130 void remove_all_default_entries();
131 bool nondefault_acl_is_empty();
132 void remove_unneeded_entries();
133
134 void insert_before(const std::string& s, ElementKind new_element_kind, ElementKind before_element_kind, bool selectable);
135 void insert_user(const std::string& s);
136 void insert_group(const std::string& s);
137 void insert_default_user(const std::string& s);
138 void insert_default_group(const std::string& s);
139 void remove_entry(const std::string& s, ElementKind e);
140
141 void get_textual_representation(std::string& access_acl, std::string &default_acl);
142
143 permissions_t get_mask_permissions();
144 permissions_t get_default_mask_permissions();
145
146 friend class EicielACLListController;
147 };
148
149 #endif
0 /*
1 Eiciel - GNOME editor of ACL file permissions.
2 Copyright (C) 2019 Roger Ferrer Ibáñez
3
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation; either version 2 of the License, or
7 (at your option) any later version.
8
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
13
14 You should have received a copy of the GNU General Public License
15 along with this program; if not, write to the Free Software
16 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
17 */
18
19 #include "eiciel_acl_list_controller.hpp"
20 #include "eiciel_acl_list.hpp"
21
22 EicielACLListController ::~EicielACLListController() {}
23
24 void EicielACLListController::update_acl_ineffective(permissions_t effective_permissions, permissions_t effective_default_permissions)
25 {
26 return _view->update_acl_ineffective(effective_permissions, effective_default_permissions);
27 }
28
29 Glib::RefPtr<Gtk::ListStore> EicielACLListController::create_acl_list_store()
30 {
31 return _view->create_acl_list_store();
32 }
33
34 void EicielACLListController::empty_acl_list()
35 {
36 return _view->empty_acl_list();
37 }
38
39 void EicielACLListController::add_non_selectable(
40 Glib::RefPtr<Gtk::ListStore> ref_acl_list,
41 Glib::ustring title,
42 bool reading,
43 bool writing,
44 bool execution,
45 ElementKind e)
46 {
47 return _view->add_non_selectable(ref_acl_list, title, reading, writing, execution, e);
48 }
49
50 void EicielACLListController::add_selectable(
51 Glib::RefPtr<Gtk::ListStore> ref_acl_list,
52 Glib::ustring title,
53 bool reading,
54 bool writing,
55 bool execution,
56 ElementKind e)
57 {
58 return _view->add_selectable(ref_acl_list, title, reading, writing, execution, e);
59 }
60
61 void EicielACLListController::can_edit_default_acl(bool b)
62 {
63 return _view->can_edit_default_acl(b);
64 }
65
66 void EicielACLListController::default_acl_are_being_edited(bool b)
67 {
68 return _view->default_acl_are_being_edited(b);
69 }
70
71 void EicielACLListController::replace_acl_store(Glib::RefPtr<Gtk::ListStore> ref_acl_list)
72 {
73 return _view->replace_acl_store(ref_acl_list);
74 }
75
76 void EicielACLListController::choose_acl(const std::string& s, ElementKind e)
77 {
78 return _view->choose_acl(s, e);
79 }
80
81 void EicielACLListController::set_readonly(bool b)
82 {
83 return _view->set_readonly(b);
84 }
85
86 void EicielACLListController::set_active(bool b)
87 {
88 return _view->set_active(b);
89 }
90
91 void EicielACLListController::insert_user(const std::string& s)
92 {
93 return _view->insert_user(s);
94 }
95
96 void EicielACLListController::insert_group(const std::string& s)
97 {
98 return _view->insert_group(s);
99 }
100
101 void EicielACLListController::insert_default_user(const std::string& s)
102 {
103 return _view->insert_default_user(s);
104 }
105
106 void EicielACLListController::insert_default_group(const std::string& s)
107 {
108 return _view->insert_default_group(s);
109 }
110
111 void EicielACLListController::remove_entry(const std::string& s, ElementKind e)
112 {
113 return _view->remove_entry(s, e);
114 }
115
116 void EicielACLListController::remove_all_default_entries()
117 {
118 return _view->remove_all_default_entries();
119 }
120
121 void EicielACLListController::populate_required_default_entries()
122 {
123 return _view->populate_required_default_entries();
124 }
125
126 void EicielACLListController::get_textual_representation(std::string &access_acl, std::string& default_acl)
127 {
128 return _view->get_textual_representation(access_acl, default_acl);
129 }
130
131 permissions_t EicielACLListController::get_mask_permissions() {
132 return _view->get_mask_permissions();
133 }
134
135 permissions_t EicielACLListController::get_default_mask_permissions() {
136 return _view->get_default_mask_permissions();
137 }
0 /*
1 Eiciel - GNOME editor of ACL file permissions.
2 Copyright (C) 2019 Roger Ferrer Ibáñez
3
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation; either version 2 of the License, or
7 (at your option) any later version.
8
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
13
14 You should have received a copy of the GNU General Public License
15 along with this program; if not, write to the Free Software
16 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
17 */
18
19 #ifndef EICIEL_ACL_LIST_CONTROLLER_HPP
20 #define EICIEL_ACL_LIST_CONTROLLER_HPP
21
22 #include "acl_element_kind.hpp"
23 #include "acl_manager.hpp"
24 #include <gtkmm.h>
25 #include <string>
26
27 class EicielACLList;
28
29 class EicielACLListController {
30 public:
31 virtual ~EicielACLListController();
32
33 void update_acl_ineffective(permissions_t effective_permissions, permissions_t effective_default_permissions);
34 Glib::RefPtr<Gtk::ListStore> create_acl_list_store();
35 void empty_acl_list();
36 void add_non_selectable(
37 Glib::RefPtr<Gtk::ListStore> ref_acl_list,
38 Glib::ustring title,
39 bool reading,
40 bool writing,
41 bool execution,
42 ElementKind e);
43 void add_selectable(
44 Glib::RefPtr<Gtk::ListStore> ref_acl_list,
45 Glib::ustring title,
46 bool reading,
47 bool writing,
48 bool execution,
49 ElementKind e);
50 void can_edit_default_acl(bool b);
51 void default_acl_are_being_edited(bool b);
52 void replace_acl_store(Glib::RefPtr<Gtk::ListStore> ref_acl_list);
53 void choose_acl(const std::string& s, ElementKind e);
54 void set_readonly(bool b);
55 void set_active(bool b);
56
57 void insert_user(const std::string& s);
58 void insert_group(const std::string& s);
59 void insert_default_user(const std::string& s);
60 void insert_default_group(const std::string& s);
61 void remove_entry(const std::string &s, ElementKind e);
62 void populate_required_default_entries();
63 void remove_all_default_entries();
64
65 void get_textual_representation(std::string& access_acl, std::string& default_acl);
66
67 permissions_t get_mask_permissions();
68 permissions_t get_default_mask_permissions();
69
70 // Events
71 virtual bool toggle_edit_default_acl(bool default_acl_were_being_edited) = 0;
72 virtual void remove_acl(const std::string& entry_name, ElementKind e) = 0;
73 virtual void update_acl_entry(ElementKind e,
74 const std::string& name,
75 bool reading,
76 bool writing,
77 bool execution) = 0;
78
79 void set_view(EicielACLList *view) { _view = view; }
80 private:
81 EicielACLList* _view;
82 };
83
84 #endif
00 /*
11 Eiciel - GNOME editor of ACL file permissions.
2 Copyright (C) 2004-2014 Roger Ferrer Ibáñez
2 Copyright (C) 2004-2019 Roger Ferrer Ibáñez
33
44 This program is free software; you can redistribute it and/or modify
55 it under the terms of the GNU General Public License as published by
1818 #include "eiciel_container.hpp"
1919
2020 EicielContainer::EicielContainer()
21 : _main_container(Gtk::ORIENTATION_VERTICAL),
22 _ACL_tabpage(Gtk::ORIENTATION_VERTICAL),
23 _XAttr_tabpage(Gtk::ORIENTATION_VERTICAL),
24 _open_file(Gtk::Stock::OPEN),
25 _file_label(_("<b>File name</b>")),
26 _file_name(_("No file opened")),
27 _exit_button(Gtk::Stock::QUIT),
28 _help(Gtk::Stock::HELP),
29 _about(_("About..."))
21 : _main_container(Gtk::ORIENTATION_VERTICAL)
22 , _ACL_tabpage(Gtk::ORIENTATION_VERTICAL)
23 , _XAttr_tabpage(Gtk::ORIENTATION_VERTICAL)
24 , _open_file(Gtk::Stock::OPEN)
25 , _file_label(_("<b>File name</b>"))
26 , _file_name(_("No file opened"))
27 , _exit_button(Gtk::Stock::QUIT)
28 , _help(Gtk::Stock::HELP)
29 , _about(_("About..."))
3030 {
31
3231 set_title("Eiciel");
3332 set_border_width(4);
3433
4645 _main_container.pack_start(_notebook);
4746 _notebook.append_page(_ACL_tabpage, _("Access Control List"));
4847
49 _widget_controller = new EicielMainController();
50 _main_widget = new EicielWindow(_widget_controller);
48 _widget_controller = new EicielACLWindowController();
49 _main_widget = new EicielACLWindow(_widget_controller);
50 _widget_controller->set_active(false);
5151
5252 _ACL_tabpage.pack_start(*_main_widget, Gtk::PACK_EXPAND_WIDGET, 0);
5353
5656
5757 _xattr_controller = new EicielXAttrController();
5858 _xattr_widget = new EicielXAttrWindow(_xattr_controller);
59 _xattr_controller->set_active(false);
5960
6061 _XAttr_tabpage.pack_start(*_xattr_widget, Gtk::PACK_EXPAND_WIDGET, 0);
61 #endif
62 #endif
6263
6364 _main_container.pack_start(_bottom, Gtk::PACK_SHRINK, 2);
6465 _bottom.set_spacing(4);
6768 _bottom.pack_end(_exit_button);
6869
6970 _exit_button.signal_clicked().connect(
70 sigc::mem_fun(*this, &EicielContainer::quit_application)
71 );
71 sigc::mem_fun(*this, &EicielContainer::quit_application));
7272
73 _about.signal_clicked().connect (
74 sigc::mem_fun(*this, &EicielContainer::show_about)
75 );
73 _about.signal_clicked().connect(
74 sigc::mem_fun(*this, &EicielContainer::show_about));
7675
77 _help.signal_clicked().connect (
78 sigc::mem_fun(*this, &EicielContainer::show_help)
79 );
76 _help.signal_clicked().connect(
77 sigc::mem_fun(*this, &EicielContainer::show_help));
8078
8179 _open_file.signal_clicked().connect(
82 sigc::mem_fun(*this, &EicielContainer::open_file_)
83 );
80 sigc::mem_fun(*this, &EicielContainer::open_file_));
8481
85 show_all_children();
82 show_all();
8683 }
8784
8885 void EicielContainer::show_help()
9289 #ifdef USING_GNOME2
9390 gnome_help_display("eiciel", NULL, &error);
9491 #else
95 gtk_show_uri_on_window(this->gobj(), "ghelp:eiciel", GDK_CURRENT_TIME, &error);
92 gtk_show_uri_on_window(this->gobj(), "ghelp:eiciel", GDK_CURRENT_TIME,
93 &error);
9694 #endif
97 if (error != NULL)
98 {
95 if (error != NULL) {
9996 g_warning(_("Could not show the help file: %s"), error->message);
10097 g_error_free(error);
10198 }
119116
120117 void EicielContainer::open_file_()
121118 {
122 Gtk::FileChooserDialog dialog(_("Choose a file or a directory"),
123 Gtk::FILE_CHOOSER_ACTION_OPEN);
119 Gtk::FileChooserDialog dialog(_("Choose a file or a directory"),
120 Gtk::FILE_CHOOSER_ACTION_OPEN);
124121 dialog.set_local_only(true);
125122 dialog.add_button(Gtk::Stock::CANCEL, Gtk::RESPONSE_CANCEL);
126123 dialog.add_button(Gtk::Stock::OK, Gtk::RESPONSE_NONE);
127124 dialog.set_transient_for(*this);
128125
129 dialog.signal_file_activated().connect(
130 sigc::bind<Gtk::FileChooserDialog*>(
131 sigc::mem_fun(*this, &EicielContainer::chooser_file_activated), &dialog)
132 );
133
126 dialog.signal_file_activated().connect(sigc::bind<Gtk::FileChooserDialog*>(
127 sigc::mem_fun(*this, &EicielContainer::chooser_file_activated), &dialog));
128
134129 int result = dialog.run();
135130 dialog.hide();
136 switch (result)
137 {
138 case(Gtk::RESPONSE_NONE):
139 {
140 if (!this->open_file(dialog.get_filename()))
141 {
142 Gtk::MessageDialog message(
143 *this,
144 _("Could not open the file \"")
145 + Glib::locale_to_utf8(dialog.get_filename()) + Glib::ustring("\" ")
146 + Glib::ustring("(") + _widget_controller->last_error() + Glib::ustring(")"),
147 false, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK, true);
148 message.run();
149 }
150 break;
151 }
152 case(Gtk::RESPONSE_CANCEL):
153 {
154 break;
155 }
156 default:
157 {
158 break;
159 }
131 switch (result) {
132 case (Gtk::RESPONSE_NONE): {
133 if (!this->open_file(dialog.get_filename())) {
134 Gtk::MessageDialog message(
135 *this,
136 _("Could not open the file \"") + Glib::locale_to_utf8(dialog.get_filename()) + Glib::ustring("\" ") + Glib::ustring("(") + _widget_controller->last_error() + Glib::ustring(")"),
137 false, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK, true);
138 message.run();
139 }
140 break;
141 }
142 case (Gtk::RESPONSE_CANCEL): {
143 break;
144 }
145 default: {
146 break;
147 }
160148 }
161149 }
162150
163 bool EicielContainer::open_file(Glib::ustring nom)
151 bool EicielContainer::open_file(Glib::ustring name)
164152 {
165153 bool result;
166 _widget_controller->open_file(nom);
154 _widget_controller->open_file(name);
167155
168156 result = _widget_controller->opened_file();
169157
170158 #ifdef ENABLE_USER_XATTR
171 _xattr_controller->open_file(nom);
159 _xattr_controller->open_file(name);
172160
173161 result |= _xattr_controller->opened_file();
174162 #endif
175163
176 if (result)
177 {
178 _file_name.set_text(nom);
179 }
180 else
181 {
164 if (result) {
165 _file_name.set_text(name);
166 } else {
182167 _file_name.set_text(_("No file opened"));
183168 }
184169
188173 /* About box */
189174 EicielAboutBox::EicielAboutBox(Gtk::Window& parent)
190175 #ifdef USING_GNOME2
191 : Gtk::Dialog (_("About..."), parent, true, true),
176 : Gtk::Dialog(_("About..."), parent, true, true)
177 ,
192178 #else
193 : Gtk::Dialog (_("About..."), parent, true),
179 : Gtk::Dialog(_("About..."), parent, true)
180 ,
194181 #endif
195 _title("<span size=\"xx-large\"><b>Eiciel " PACKAGE_VERSION "</b></span>"),
196 _author("<small>Copyright © 2004-2005 Roger Ferrer Ibáñez</small>")
182 _title("<span size=\"xx-large\"><b>Eiciel " PACKAGE_VERSION
183 "</b></span>")
184 , _author("<small>Copyright © 2004-2020 Roger Ferrer Ibáñez</small>")
197185 {
198186 set_border_width(4);
199187 get_vbox()->set_spacing(4);
202190 get_vbox()->add(_title);
203191 get_vbox()->add(_author);
204192 add_button(Gtk::Stock::OK, 0);
205 show_all_children();
193 show_all();
206194 }
00 /*
11 Eiciel - GNOME editor of ACL file permissions.
2 Copyright (C) 2004-2014 Roger Ferrer Ibáñez
2 Copyright (C) 2004-2019 Roger Ferrer Ibáñez
33
44 This program is free software; you can redistribute it and/or modify
55 it under the terms of the GNU General Public License as published by
1515 along with this program; if not, write to the Free Software
1616 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
1717 */
18 #ifndef EICIEL_CONTAINER_HPP
19 #define EICIEL_CONTAINER_HPP
20
1821 #include <config.hpp>
1922 #include <gtkmm.h>
2023 #ifdef USING_GNOME2
2225 #endif
2326 #include <glib/gi18n-lib.h>
2427
25 #include "eiciel_main_controller.hpp"
28 #include "eiciel_main_window_controller.hpp"
2629 #include "eiciel_main_window.hpp"
2730
2831 #ifdef ENABLE_USER_XATTR
3033 #include "eiciel_xattr_window.hpp"
3134 #endif
3235
33 class EicielContainer : public Gtk::Window
34 {
35 private:
36 Gtk::Box _main_container;
37 Gtk::Box _ACL_tabpage;
38 Gtk::Box _XAttr_tabpage;
39 Gtk::Box _top;
40 Gtk::Box _bottom;
41 Gtk::Button _open_file;
42 Gtk::Label _file_label;
43 Gtk::Label _file_name;
44 Gtk::Button _exit_button;
45 Gtk::Button _help;
46 Gtk::Button _about;
36 class EicielContainer : public Gtk::Window {
37 private:
38 Gtk::Box _main_container;
39 Gtk::Box _ACL_tabpage;
40 Gtk::Box _XAttr_tabpage;
41 Gtk::Box _top;
42 Gtk::Box _bottom;
43 Gtk::Button _open_file;
44 Gtk::Label _file_label;
45 Gtk::Label _file_name;
46 Gtk::Button _exit_button;
47 Gtk::Button _help;
48 Gtk::Button _about;
4749
48 Gtk::Notebook _notebook;
50 Gtk::Notebook _notebook;
4951
50 EicielWindow* _main_widget;
51 EicielMainController* _widget_controller;
52 EicielACLWindow* _main_widget;
53 EicielACLWindowController* _widget_controller;
5254
5355 #ifdef ENABLE_USER_XATTR
54 EicielXAttrWindow* _xattr_widget;
55 EicielXAttrController* _xattr_controller;
56 EicielXAttrWindow* _xattr_widget;
57 EicielXAttrController* _xattr_controller;
5658 #endif
57 void quit_application();
58 void open_file_();
59 Glib::ustring error_message();
60 void show_about();
61 void show_help();
59 void quit_application();
60 void open_file_();
61 Glib::ustring error_message();
62 void show_about();
63 void show_help();
6264
63 // FileChooser stuff
64 void chooser_file_activated(Gtk::FileChooserDialog* dialog);
65 // FileChooser stuff
66 void chooser_file_activated(Gtk::FileChooserDialog* dialog);
6567
66 public:
67 EicielContainer();
68 bool open_file(Glib::ustring nom);
68 public:
69 EicielContainer();
70 bool open_file(Glib::ustring name);
6971 };
7072
71 class EicielAboutBox : public Gtk::Dialog
72 {
73 private:
74 Gtk::Label _title;
75 Gtk::Label _author;
76 public:
77 EicielAboutBox(Gtk::Window& parent);
73 class EicielAboutBox : public Gtk::Dialog {
74 private:
75 Gtk::Label _title;
76 Gtk::Label _author;
77
78 public:
79 EicielAboutBox(Gtk::Window& parent);
7880 };
81
82 #endif // EICIEL_CONTAINER_HPP
0 /*
1 Eiciel - GNOME editor of ACL file permissions.
2 Copyright (C) 2019 Roger Ferrer Ibáñez
3
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation; either version 2 of the License, or
7 (at your option) any later version.
8
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
13
14 You should have received a copy of the GNU General Public License
15 along with this program; if not, write to the Free Software
16 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
17 */
18
19 #include "eiciel_enclosed_editor_window.hpp"
20 #include "eiciel_enclosed_editor_window_controller.hpp"
21
22 EicielEnclosedEditor::EicielEnclosedEditor(Gtk::Window& parent, EicielEnclosedEditorController* cont)
23 : Gtk::Dialog(_("Edit ACLs for enclosed files"), parent, Gtk::DIALOG_MODAL | Gtk::DIALOG_USE_HEADER_BAR)
24 , _cancel_changes(_("_Cancel"), /* mnemonic */ true)
25 , _apply_changes(_("_Apply"), /* mnemonic */ true)
26 , _main_box(Gtk::ORIENTATION_VERTICAL)
27 , _acl_editors_hbox(Gtk::ORIENTATION_HORIZONTAL)
28 , _left_box(Gtk::ORIENTATION_VERTICAL)
29 , _label_acl_directories(_("<b>Participants in ACL for enclosed directories</b>"))
30 , _acl_list_directories(cont->get_acl_list_directory_controller())
31 , _right_box(Gtk::ORIENTATION_VERTICAL)
32 , _label_acl_files(_("<b>Participants in ACL for enclosed files</b>"))
33 , _acl_list_files(cont->get_acl_list_file_controller())
34 , _participants_box(Gtk::ORIENTATION_VERTICAL)
35 , _label_participants(_("<b>Available participants</b>"))
36 , _participant_list(cont->get_participant_list_controller())
37 , _controller(cont)
38 {
39 _controller->_window = this;
40
41 set_deletable(false);
42
43 get_vbox()->set_margin_top(12);
44 get_vbox()->set_margin_bottom(12);
45 get_vbox()->set_margin_start(12);
46 get_vbox()->set_margin_end(12);
47
48 get_vbox()->pack_start(_main_box);
49 _main_box.pack_start(_acl_editors_hbox);
50
51 // ACL editors
52 _label_acl_directories.set_use_markup(true);
53 _label_acl_directories.set_alignment(Gtk::ALIGN_START, Gtk::ALIGN_START);
54
55 _acl_editors_hbox.pack_start(_left_box);
56 _left_box.pack_start(_label_acl_directories, Gtk::PACK_SHRINK);
57 _left_box.pack_start(_acl_list_directories);
58
59 _label_acl_files.set_use_markup(true);
60 _label_acl_files.set_alignment(Gtk::ALIGN_START, Gtk::ALIGN_START);
61
62 _acl_editors_hbox.pack_start(_right_box);
63 _right_box.pack_start(_label_acl_files, Gtk::PACK_SHRINK);
64 _right_box.pack_start(_acl_list_files);
65 _acl_list_files.disable_default_acl_editing();
66
67 // Participants box
68 _main_box.pack_start(_participants_box);
69
70 _label_participants.set_use_markup(true);
71 _label_participants.set_alignment(Gtk::ALIGN_START, Gtk::ALIGN_START);
72
73 _participants_box.pack_start(_label_participants, Gtk::PACK_SHRINK);
74 _participants_box.pack_start(_participant_list);
75 _participant_list.set_mode(EicielParticipantList::ENCLOSED_FILES_EDITOR);
76
77 // Headerbar
78 Gtk::HeaderBar *hbar = get_header_bar();
79 hbar->pack_start(_cancel_changes);
80 _cancel_changes.signal_clicked().connect(
81 sigc::bind<0>(sigc::mem_fun(this, &Gtk::Dialog::response), Gtk::RESPONSE_CANCEL));
82 hbar->pack_end(_apply_changes);
83 _apply_changes.signal_clicked().connect(
84 sigc::mem_fun(this, &EicielEnclosedEditor::apply_changes));
85
86 show_all();
87 }
88
89 EicielEnclosedEditor::~EicielEnclosedEditor() {}
90
91 void EicielEnclosedEditor::apply_changes()
92 {
93 _controller->apply_changes();
94 }
0 /*
1 Eiciel - GNOME editor of ACL file permissions.
2 Copyright (C) 2019 Roger Ferrer Ibáñez
3
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation; either version 2 of the License, or
7 (at your option) any later version.
8
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
13
14 You should have received a copy of the GNU General Public License
15 along with this program; if not, write to the Free Software
16 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
17 */
18
19 #ifndef EICIEL_ENCLOSED_EDITOR_WINDOW_HPP
20 #define EICIEL_ENCLOSED_EDITOR_WINDOW_HPP
21
22 #include <config.hpp>
23 #include <gtkmm.h>
24 #include <glib/gi18n-lib.h>
25 #include "eiciel_acl_list.hpp"
26 #include "eiciel_participant_list.hpp"
27
28 class EicielEnclosedEditorController;
29
30 class EicielEnclosedEditor : public Gtk::Dialog {
31 public:
32 EicielEnclosedEditor(Gtk::Window& parent, EicielEnclosedEditorController* cont);
33 virtual ~EicielEnclosedEditor();
34
35 private:
36 /* GUI components */
37 // dialog headerbar
38 Gtk::Button _cancel_changes;
39 // headerbar title
40 Gtk::Button _apply_changes;
41 // dialog vbox
42 /* |- */ Gtk::Box _main_box;
43 /* |- */ Gtk::Box _acl_editors_hbox;
44 /* | |- */ Gtk::Box _left_box;
45 /* | | |- */ Gtk::Label _label_acl_directories;
46 /* | | |- */ EicielACLList _acl_list_directories;
47 /* | |- */ Gtk::Box _right_box;
48 /* | |- */ Gtk::Label _label_acl_files;
49 /* | |- */ EicielACLList _acl_list_files;
50 /* |- */ Gtk::Box _participants_box;
51 /* |- */ Gtk::Label _label_participants;
52 /* |- */ EicielParticipantList _participant_list;
53
54 EicielEnclosedEditorController* _controller;
55
56 void apply_changes();
57 };
58
59 #endif // EICIEL_ENCLOSED_EDITOR_WINDOW_HPP
0 /*
1 Eiciel - GNOME editor of ACL file permissions.
2 Copyright (C) 2019 Roger Ferrer Ibáñez
3
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation; either version 2 of the License, or
7 (at your option) any later version.
8
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
13
14 You should have received a copy of the GNU General Public License
15 along with this program; if not, write to the Free Software
16 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
17 */
18
19 #include "eiciel_enclosed_editor_window_controller.hpp"
20
21 EicielEnclosedEditorController::EicielEnclosedEditorController()
22 : _acl_list_directory_controller(this)
23 , _acl_list_file_controller(this)
24 , _participant_list_controller(this)
25 {
26 }
27
28 bool EicielEnclosedEditorController::ACLListDirectoryController::toggle_edit_default_acl(bool default_acl_were_being_edited)
29 {
30 if (default_acl_were_being_edited) {
31 Glib::ustring s(
32 _("Are you sure you want to remove all ACL default entries?"));
33 Gtk::Container* toplevel = _editor_controller->_window->get_toplevel();
34 int result;
35 if (toplevel == NULL || !toplevel->get_is_toplevel()) {
36 Gtk::MessageDialog remove_acl_message(s, false, Gtk::MESSAGE_QUESTION,
37 Gtk::BUTTONS_YES_NO);
38 result = remove_acl_message.run();
39 } else {
40 Gtk::MessageDialog remove_acl_message(*(Gtk::Window*)toplevel, s, false,
41 Gtk::MESSAGE_QUESTION,
42 Gtk::BUTTONS_YES_NO);
43 result = remove_acl_message.run();
44 }
45 if (result == Gtk::RESPONSE_NO)
46 return false;
47 remove_all_default_entries();
48 } else {
49 populate_required_default_entries();
50 }
51 return true;
52 }
53
54 void EicielEnclosedEditorController::ACLListDirectoryController::remove_acl(const std::string& entry_name, ElementKind e)
55 {
56 remove_entry(entry_name, e);
57 }
58
59 void EicielEnclosedEditorController::ACLListDirectoryController::update_acl_entry(ElementKind e,
60 const std::string& name,
61 bool reading,
62 bool writing,
63 bool execution)
64 {
65 update_acl_ineffective(get_mask_permissions(), get_default_mask_permissions());
66 }
67
68 bool EicielEnclosedEditorController::ACLListFileController::toggle_edit_default_acl(bool)
69 {
70 // This should never run but just in case
71 return false;
72 }
73
74 void EicielEnclosedEditorController::ACLListFileController::remove_acl(const std::string& entry_name, ElementKind e)
75 {
76 remove_entry(entry_name, e);
77 }
78
79 void EicielEnclosedEditorController::ACLListFileController::update_acl_entry(ElementKind e,
80 const std::string& name,
81 bool reading,
82 bool writing,
83 bool execution)
84 {
85 update_acl_ineffective(get_mask_permissions(), get_default_mask_permissions());
86 }
87
88 void EicielEnclosedEditorController::ParticipantListController::add_acl_entry(AddParticipantTarget target, const std::string& s, ElementKind e, bool is_default)
89 {
90 EicielACLListController* acl_controller;
91 switch (target) {
92 default:
93 // FIXME: Emit a warnign
94 return;
95 case AddParticipantTarget::ADD_PARTICIPANT_TO_DIRECTORY:
96 acl_controller = _editor_controller->get_acl_list_directory_controller();
97 break;
98 case AddParticipantTarget::ADD_PARTICIPANT_TO_FILE:
99 acl_controller = _editor_controller->get_acl_list_file_controller();
100 break;
101 }
102
103 if (is_default) {
104 if (e == EK_ACL_USER) {
105 e = EK_DEFAULT_ACL_USER;
106 } else if (e == EK_ACL_GROUP) {
107 e = EK_DEFAULT_ACL_GROUP;
108 }
109 }
110
111 switch (e) {
112 case EK_ACL_USER: {
113 acl_controller->insert_user(s);
114 break;
115 }
116 case EK_ACL_GROUP: {
117 acl_controller->insert_group(s);
118 break;
119 }
120 case EK_DEFAULT_ACL_USER: {
121 acl_controller->insert_default_user(s);
122 break;
123 }
124 case EK_DEFAULT_ACL_GROUP: {
125 acl_controller->insert_default_group(s);
126 break;
127 }
128 default:
129 break;
130 }
131
132 acl_controller->choose_acl(s, e);
133 }
134
135 void EicielEnclosedEditorController::apply_changes()
136 {
137 _acl_list_directory_controller.get_textual_representation(_directory_access_acl_text, _directory_default_acl_text);
138 std::string dummy; // Files do not have default ACL
139 _acl_list_file_controller.get_textual_representation(_file_access_acl_text, dummy);
140 _window->response(Gtk::RESPONSE_APPLY);
141 }
0 /*
1 Eiciel - GNOME editor of ACL file permissions.
2 Copyright (C) 2019 Roger Ferrer Ibáñez
3
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation; either version 2 of the License, or
7 (at your option) any later version.
8
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
13
14 You should have received a copy of the GNU General Public License
15 along with this program; if not, write to the Free Software
16 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
17 */
18
19 #ifndef EICIEL_ENCLOSED_EDITOR_WINDOW_CONTROLLER_HPP
20 #define EICIEL_ENCLOSED_EDITOR_WINDOW_CONTROLLER_HPP
21
22 #include "eiciel_acl_list_controller.hpp"
23 #include "eiciel_enclosed_editor_window.hpp"
24 #include "eiciel_participant_list_controller.hpp"
25
26 class EicielEnclosedEditorController {
27 public:
28 EicielEnclosedEditorController();
29
30 EicielACLListController* get_acl_list_directory_controller() { return &_acl_list_directory_controller; }
31 EicielACLListController* get_acl_list_file_controller() { return &_acl_list_file_controller; }
32 EicielParticipantListController* get_participant_list_controller() { return &_participant_list_controller; }
33
34 std::string get_directory_access_acl_text() { return _directory_access_acl_text; }
35 std::string get_directory_default_acl_text() { return _directory_default_acl_text; }
36 std::string get_file_access_acl_text() { return _file_access_acl_text; }
37
38 private:
39 class ACLListDirectoryController : public EicielACLListController {
40 public:
41 ACLListDirectoryController(EicielEnclosedEditorController* editor_controller)
42 : _editor_controller(editor_controller)
43 {
44 }
45
46 virtual ~ACLListDirectoryController() {}
47
48 bool toggle_edit_default_acl(bool default_acl_were_being_edited) override;
49 void remove_acl(const std::string& entry_name, ElementKind e) override;
50 void update_acl_entry(ElementKind e,
51 const std::string& name,
52 bool reading,
53 bool writing,
54 bool execution)
55 override;
56
57 private:
58 EicielEnclosedEditorController* _editor_controller;
59 };
60
61 class ACLListFileController : public EicielACLListController {
62 public:
63 ACLListFileController(EicielEnclosedEditorController* editor_controller)
64 : _editor_controller(editor_controller)
65 {
66 }
67
68 virtual ~ACLListFileController() {}
69
70 bool toggle_edit_default_acl(bool default_acl_were_being_edited) override;
71 void remove_acl(const std::string& entry_name, ElementKind e) override;
72 void update_acl_entry(ElementKind e,
73 const std::string& name,
74 bool reading,
75 bool writing,
76 bool execution)
77 override;
78
79 private:
80 EicielEnclosedEditorController* _editor_controller;
81 };
82
83 class ParticipantListController : public EicielParticipantListController {
84 public:
85 ParticipantListController(EicielEnclosedEditorController* editor_controller)
86 : _editor_controller(editor_controller)
87 {
88 }
89 virtual ~ParticipantListController() {}
90
91 void add_acl_entry(AddParticipantTarget target, const std::string& s, ElementKind e, bool is_default) override;
92
93 private:
94 EicielEnclosedEditorController* _editor_controller;
95 };
96
97 ACLListDirectoryController _acl_list_directory_controller;
98 ACLListFileController _acl_list_file_controller;
99 ParticipantListController _participant_list_controller;
100 EicielEnclosedEditor* _window;
101
102 std::string _directory_access_acl_text;
103 std::string _directory_default_acl_text;
104 std::string _file_access_acl_text;
105
106 void apply_changes();
107
108 friend class EicielEnclosedEditor;
109 };
110
111 #endif // EICIEL_ENCLOSED_EDITOR_WINDOW_CONTROLLER_HPP
+0
-602
src/eiciel_main_controller.cpp less more
0 /*
1 Eiciel - GNOME editor of ACL file permissions.
2 Copyright (C) 2004-2014 Roger Ferrer Ibáñez
3
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation; either version 2 of the License, or
7 (at your option) any later version.
8
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
13
14 You should have received a copy of the GNU General Public License
15 along with this program; if not, write to the Free Software
16 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
17 */
18 #include "config.hpp"
19 #include <iostream>
20 #include <pwd.h>
21 #include <grp.h>
22
23 #include "eiciel_main_controller.hpp"
24 #include "acl_element_kind.hpp"
25
26
27 using namespace std;
28
29 EicielMainController::EicielMainController()
30 : _ACL_manager(NULL), _is_file_opened(false),
31 _last_error_message(""), _list_must_be_updated(true),
32 _show_system(false)
33 {
34 fill_lists();
35 }
36
37 EicielMainController::~EicielMainController()
38 {
39 delete _ACL_manager;
40 }
41
42 void EicielMainController::fill_lists()
43 {
44 if (!_list_must_be_updated)
45 return;
46
47 // Create the list of users
48 _users_list.clear();
49 struct passwd* u;
50 setpwent();
51 while((u = getpwent()) != NULL)
52 {
53 if (_show_system || (u->pw_uid >= 1000))
54 {
55 _users_list.insert(u->pw_name);
56 }
57 }
58 endpwent();
59
60 // Create the list of groups
61 _groups_list.clear();
62 struct group* g;
63 setgrent();
64 while ((g = getgrent()) != NULL)
65 {
66 if (_show_system || (g->gr_gid >= 1000))
67 {
68 _groups_list.insert(g->gr_name);
69 }
70 }
71 endgrent();
72
73 _list_must_be_updated = false;
74 }
75
76 void EicielMainController::show_system_participants(bool b)
77 {
78 if (b != _show_system)
79 {
80 _show_system = b;
81 _list_must_be_updated = true;
82 }
83 }
84
85 void EicielMainController::open_file(string s)
86 {
87 try
88 {
89 ACLManager* new_manager;
90 new_manager = new ACLManager(s);
91
92 delete _ACL_manager;
93 _ACL_manager = new_manager;
94
95 update_acl_list();
96 _window->set_filename(s);
97 _window->set_active(true);
98
99 // This checks if file can be edited
100 check_editable();
101
102 _is_file_opened = true;
103 }
104 catch (ACLManagerException e)
105 {
106 _is_file_opened = false;
107 _window->set_active(false);
108 _window->empty_acl_list();
109 _last_error_message = e.getMessage();
110 }
111 }
112
113 void EicielMainController::update_acl_list()
114 {
115 _updating_window = true;
116 _window->empty_acl_list();
117 // The owner user
118 permissions_t perms = _ACL_manager->get_user();
119 bool show_exclamation_mark = false;
120
121 permissions_t effective_permissions(7);
122 if (_ACL_manager->has_mask())
123 {
124 effective_permissions = _ACL_manager->get_mask();
125 }
126
127 vector<acl_entry> vACL;
128 _window->add_non_selectable(Glib::locale_to_utf8(_ACL_manager->get_owner_name()), perms.reading,
129 perms.writing, perms.execution, EK_USER);
130 vACL = _ACL_manager->get_acl_user();
131 for (vector<acl_entry>::iterator i = vACL.begin();
132 i != vACL.end(); i++)
133 {
134 _window->add_selectable(Glib::locale_to_utf8(i->name), i->reading,
135 i->writing, i->execution, EK_ACL_USER,
136 effective_permissions.reading,
137 effective_permissions.writing,
138 effective_permissions.execution);
139 show_exclamation_mark |= (!effective_permissions.reading && i->reading) ||
140 (!effective_permissions.writing && i->writing) ||
141 (!effective_permissions.execution && i->execution);
142 }
143
144 perms = _ACL_manager->get_group();
145 _window->add_non_selectable(Glib::locale_to_utf8(_ACL_manager->get_group_name()), perms.reading,
146 perms.writing, perms.execution, EK_GROUP,
147 effective_permissions.reading,
148 effective_permissions.writing,
149 effective_permissions.execution);
150 show_exclamation_mark |= (!effective_permissions.reading && perms.reading) ||
151 (!effective_permissions.writing && perms.writing) ||
152 (!effective_permissions.execution && perms.execution);
153
154 vACL = _ACL_manager->get_acl_group();
155 for (vector<acl_entry>::iterator i = vACL.begin();
156 i != vACL.end(); i++)
157 {
158 _window->add_selectable(Glib::locale_to_utf8(i->name), i->reading,
159 i->writing, i->execution, EK_ACL_GROUP,
160 effective_permissions.reading,
161 effective_permissions.writing,
162 effective_permissions.execution);
163 show_exclamation_mark |= (!effective_permissions.reading && i->reading) ||
164 (!effective_permissions.writing && i->writing) ||
165 (!effective_permissions.execution && i->execution);
166 }
167
168 if (_ACL_manager->has_mask())
169 {
170 perms = _ACL_manager->get_mask();
171 _window->add_non_selectable(_("Mask"), perms.reading,
172 perms.writing, perms.execution, EK_MASK);
173 }
174
175 perms = _ACL_manager->get_other();
176 _window->add_non_selectable(_("Other"), perms.reading,
177 perms.writing, perms.execution, EK_OTHERS);
178
179 _window->enable_default_acl_button(_ACL_manager->is_directory());
180 _window->there_is_default_acl(false);
181
182 if (_ACL_manager->is_directory())
183 {
184 bool there_is_default_acl = false;
185 permissions_t effective_default_permissions(7);
186 if (_ACL_manager->has_default_mask())
187 {
188 effective_default_permissions = _ACL_manager->get_mask_default();
189 }
190
191 if (_ACL_manager->has_default_user())
192 {
193 perms = _ACL_manager->get_user_default();
194 _window->add_non_selectable(Glib::locale_to_utf8(_ACL_manager->get_owner_name()), perms.reading,
195 perms.writing, perms.execution, EK_DEFAULT_USER);
196 there_is_default_acl = true;
197 }
198
199 vACL = _ACL_manager->get_acl_user_default();
200
201 there_is_default_acl |= (vACL.size() > 0);
202 for (vector<acl_entry>::iterator i = vACL.begin();
203 i != vACL.end(); i++)
204 {
205 _window->add_selectable(Glib::locale_to_utf8(i->name), i->reading,
206 i->writing, i->execution, EK_DEFAULT_ACL_USER,
207 effective_default_permissions.reading,
208 effective_default_permissions.writing,
209 effective_default_permissions.execution);
210 show_exclamation_mark |= (!effective_default_permissions.reading && i->reading) ||
211 (!effective_default_permissions.writing && i->writing) ||
212 (!effective_default_permissions.execution && i->execution);
213 }
214
215
216 if (_ACL_manager->has_default_group())
217 {
218 perms = _ACL_manager->get_group_default();
219 _window->add_non_selectable(Glib::locale_to_utf8(_ACL_manager->get_group_name()), perms.reading,
220 perms.writing, perms.execution, EK_DEFAULT_GROUP,
221 effective_default_permissions.reading,
222 effective_default_permissions.writing,
223 effective_default_permissions.execution);
224 show_exclamation_mark |= (!effective_default_permissions.reading && perms.reading) ||
225 (!effective_default_permissions.writing && perms.writing) ||
226 (!effective_default_permissions.execution && perms.execution);
227 there_is_default_acl |= true;
228 }
229
230 vACL = _ACL_manager->get_acl_group_default();
231
232 there_is_default_acl |= (vACL.size() > 0);
233 for (vector<acl_entry>::iterator i = vACL.begin();
234 i != vACL.end(); i++)
235 {
236 _window->add_selectable(Glib::locale_to_utf8(i->name), i->reading,
237 i->writing, i->execution, EK_DEFAULT_ACL_GROUP,
238 effective_default_permissions.reading,
239 effective_default_permissions.writing,
240 effective_default_permissions.execution);
241 show_exclamation_mark |= (!effective_default_permissions.reading && i->reading) ||
242 (!effective_default_permissions.writing && i->writing) ||
243 (!effective_default_permissions.execution && i->execution);
244 }
245
246 if (_ACL_manager->has_default_mask())
247 {
248 perms = _ACL_manager->get_mask_default();
249 _window->add_non_selectable(_("Default Mask"), perms.reading,
250 perms.writing, perms.execution, EK_DEFAULT_MASK);
251 there_is_default_acl |= true;
252 }
253
254 if (_ACL_manager->has_default_other())
255 {
256 perms = _ACL_manager->get_other_default();
257 _window->add_non_selectable(_("Default Other"), perms.reading,
258 perms.writing, perms.execution, EK_DEFAULT_OTHERS);
259 there_is_default_acl |= true;
260 }
261 _window->there_is_default_acl(there_is_default_acl);
262 }
263
264 _window->show_exclamation_mark(show_exclamation_mark);
265
266 _updating_window = false;
267 }
268
269 bool EicielMainController::is_directory()
270 {
271 if (_ACL_manager == NULL)
272 return false;
273
274 return _ACL_manager->is_directory();
275 }
276
277 void EicielMainController::add_acl_entry(string s, ElementKind e, bool is_default)
278 {
279 permissions_t p(7);
280
281 if (is_default)
282 {
283 if (e == EK_ACL_USER)
284 {
285 e = EK_DEFAULT_ACL_USER;
286 }
287 else if (e == EK_ACL_GROUP)
288 {
289 e = EK_DEFAULT_ACL_GROUP;
290 }
291 }
292
293 try
294 {
295 switch(e)
296 {
297 case EK_ACL_USER :
298 {
299 _ACL_manager->modify_acl_user(s, p);
300 break;
301 }
302 case EK_ACL_GROUP :
303 {
304 _ACL_manager->modify_acl_group(s, p);
305 break;
306 }
307 case EK_DEFAULT_ACL_USER :
308 {
309 _ACL_manager->modify_acl_default_user(s, p);
310 break;
311 }
312 case EK_DEFAULT_ACL_GROUP :
313 {
314 _ACL_manager->modify_acl_default_group(s, p);
315 break;
316 }
317 default:
318 break;
319 }
320
321 update_acl_list();
322
323 _window->choose_acl(s, e);
324 }
325 catch (ACLManagerException e)
326 {
327 Glib::ustring s = _("Could not add ACL entry: ") + e.getMessage();
328 Gtk::Container* toplevel = _window->get_toplevel();
329 if (toplevel == NULL
330 || !toplevel->get_is_toplevel())
331 {
332 Gtk::MessageDialog add_acl_message(
333 s, false,
334 Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK);
335 add_acl_message.run();
336 }
337 else
338 {
339 Gtk::MessageDialog add_acl_message(
340 *(Gtk::Window*)toplevel,
341 s, false,
342 Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK);
343 add_acl_message.run();
344 }
345 _last_error_message = s;
346 return;
347 }
348 }
349
350 void EicielMainController::remove_acl(string entry_name, ElementKind e)
351 {
352 bool updated = true;
353 try
354 {
355 switch(e)
356 {
357 case EK_ACL_USER :
358 {
359 _ACL_manager->remove_acl_user(entry_name);
360 break;
361 }
362 case EK_ACL_GROUP :
363 {
364 _ACL_manager->remove_acl_group(entry_name);
365 break;
366 }
367 case EK_DEFAULT_ACL_USER :
368 {
369 _ACL_manager->remove_acl_user_default(entry_name);
370 break;
371 }
372 case EK_DEFAULT_ACL_GROUP :
373 {
374 _ACL_manager->remove_acl_group_default(entry_name);
375 break;
376 }
377 default:
378 updated = false;
379 break;
380 }
381
382 if (updated)
383 {
384 update_acl_list();
385 }
386 }
387 catch(ACLManagerException e)
388 {
389 Glib::ustring s = _("Could not remove ACL entry: ") + e.getMessage();
390 Gtk::Container* toplevel = _window->get_toplevel();
391 if (toplevel == NULL
392 || !toplevel->get_is_toplevel())
393 {
394 Gtk::MessageDialog remove_acl_message(s, false,
395 Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK);
396 remove_acl_message.run();
397 }
398 else
399 {
400 Gtk::MessageDialog remove_acl_message(
401 *(Gtk::Window*)toplevel,
402 s, false,
403 Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK);
404 remove_acl_message.run();
405 }
406 _last_error_message = s;
407 }
408 }
409
410 void EicielMainController::update_acl_entry(ElementKind e, string s,
411 bool reading, bool writing, bool execution)
412 {
413 permissions_t p(reading, writing, execution);
414
415 try
416 {
417 switch(e)
418 {
419 case EK_MASK :
420 {
421 _ACL_manager->modify_mask(p);
422 break;
423 }
424 case EK_DEFAULT_MASK :
425 {
426 _ACL_manager->modify_mask_default(p);
427 break;
428 }
429 case EK_USER :
430 {
431 _ACL_manager->modify_owner_perms(p);
432 break;
433 }
434 case EK_GROUP :
435 {
436 _ACL_manager->modify_group_perms(p);
437 break;
438 }
439 case EK_OTHERS :
440 {
441 _ACL_manager->modify_others_perms(p);
442 break;
443 }
444 case EK_DEFAULT_USER :
445 {
446 _ACL_manager->modify_owner_perms_default(p);
447 break;
448 }
449 case EK_DEFAULT_GROUP :
450 {
451 _ACL_manager->modify_group_perms_default(p);
452 break;
453 }
454 case EK_DEFAULT_OTHERS :
455 {
456 _ACL_manager->modify_others_perms_default(p);
457 break;
458 }
459 case EK_ACL_USER :
460 {
461 _ACL_manager->modify_acl_user(s, p);
462 break;
463 }
464 case EK_ACL_GROUP :
465 {
466 _ACL_manager->modify_acl_group(s, p);
467 break;
468 }
469 case EK_DEFAULT_ACL_USER :
470 {
471 _ACL_manager->modify_acl_default_user(s, p);
472 break;
473 }
474 case EK_DEFAULT_ACL_GROUP :
475 {
476 _ACL_manager->modify_acl_default_group(s, p);
477 break;
478 }
479 default:
480 break;
481 }
482 update_acl_list();
483 }
484 catch (ACLManagerException e)
485 {
486 Glib::ustring s = _("Could not modify ACL entry: ") + e.getMessage();
487 Gtk::Container* toplevel = _window->get_toplevel();
488 if (toplevel == NULL
489 || !toplevel->get_is_toplevel())
490 {
491 Gtk::MessageDialog modify_acl_message(s, false,
492 Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK);
493 modify_acl_message.run();
494 }
495 else
496 {
497 Gtk::MessageDialog modify_acl_message(
498 *(Gtk::Window*)toplevel,
499 s, false,
500 Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK);
501 modify_acl_message.run();
502 }
503 _last_error_message = s;
504 }
505 }
506
507 void EicielMainController::change_default_acl()
508 {
509 if (_updating_window) return;
510
511 try
512 {
513 if (!_window->give_default_acl())
514 {
515 Glib::ustring s(_("Are you sure you want to remove all ACL default entries?"));
516 Gtk::Container* toplevel = _window->get_toplevel();
517 int result;
518 if (toplevel == NULL
519 || !toplevel->get_is_toplevel())
520 {
521 Gtk::MessageDialog remove_acl_message(s, false,
522 Gtk::MESSAGE_QUESTION, Gtk::BUTTONS_YES_NO);
523 result = remove_acl_message.run();
524 }
525 else
526 {
527 Gtk::MessageDialog remove_acl_message(
528 *(Gtk::Window*)toplevel,
529 s, false,
530 Gtk::MESSAGE_QUESTION, Gtk::BUTTONS_YES_NO);
531 result = remove_acl_message.run();
532 }
533 if (result == Gtk::RESPONSE_YES)
534 {
535 _ACL_manager->clear_default_acl();
536 }
537 }
538 else
539 {
540 _ACL_manager->create_default_acl();
541 }
542 update_acl_list();
543 }
544 catch (ACLManagerException e)
545 {
546 _last_error_message = e.getMessage();
547 }
548 }
549
550 set<string> EicielMainController::get_users_list()
551 {
552 fill_lists();
553 return _users_list;
554 }
555
556 set<string> EicielMainController::get_groups_list()
557 {
558 fill_lists();
559 return _groups_list;
560 }
561
562 bool EicielMainController::opened_file()
563 {
564 return _is_file_opened;
565 }
566
567 void EicielMainController::check_editable()
568 {
569 /*
570 * In Linux we should check CAP_FOWNER capability. At the moment give a
571 * rough approach where whe check whether the user is the owner or root.
572 *
573 * I've not looked for what should be checked in FreeBSD
574 */
575 uid_t real_user = getuid();
576 if ((real_user != 0) && (real_user != _ACL_manager->get_owner_uid()))
577 {
578 _window->set_readonly(true);
579 }
580 else
581 {
582 _window->set_readonly(false);
583 }
584 }
585
586 Glib::ustring EicielMainController::last_error()
587 {
588 return _last_error_message;
589 }
590
591 bool EicielMainController::lookup_user(const std::string& str)
592 {
593 struct passwd * p = getpwnam(str.c_str());
594 return (p != NULL);
595 }
596
597 bool EicielMainController::lookup_group(const std::string& str)
598 {
599 struct group * g = getgrnam(str.c_str());
600 return (g != NULL);
601 }
+0
-74
src/eiciel_main_controller.hpp less more
0 /*
1 Eiciel - GNOME editor of ACL file permissions.
2 Copyright (C) 2004-2014 Roger Ferrer Ibáñez
3
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation; either version 2 of the License, or
7 (at your option) any later version.
8
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
13
14 You should have received a copy of the GNU General Public License
15 along with this program; if not, write to the Free Software
16 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
17 */
18 #ifndef EICIEL_MAIN_CONTROLER_HPP
19 #define EICIEL_MAIN_CONTROLER_HPP
20
21 #include <config.hpp>
22 #include <set>
23 #include <glib/gi18n-lib.h>
24 #include "eiciel_main_window.hpp"
25 #include "acl_manager.hpp"
26 #include "acl_element_kind.hpp"
27
28 using namespace std;
29
30 class EicielWindow;
31
32 class EicielMainController : public sigc::trackable
33 {
34 private:
35 ACLManager* _ACL_manager;
36 EicielWindow* _window;
37 set<string> _users_list;
38 set<string> _groups_list;
39 bool _is_file_opened;
40 bool _updating_window;
41 Glib::ustring _last_error_message;
42
43 bool _list_must_be_updated;
44 bool _show_system;
45
46 void update_acl_list();
47 void update_acl_entry(ElementKind e, string name,
48 bool reading, bool writing, bool execution);
49 void remove_acl(string entry_name, ElementKind e);
50 void add_acl_entry(string s, ElementKind e, bool is_default);
51 void change_default_acl();
52
53 void fill_lists();
54 void show_system_participants(bool b);
55 void check_editable();
56
57 set<string> get_users_list();
58 set<string> get_groups_list();
59
60 bool lookup_user(const std::string& str);
61 bool lookup_group(const std::string& str);
62
63 bool is_directory();
64 public:
65 void open_file(string s);
66 Glib::ustring last_error();
67 bool opened_file();
68 friend class EicielWindow;
69 EicielMainController();
70 ~EicielMainController();
71 };
72
73 #endif
00 /*
11 Eiciel - GNOME editor of ACL file permissions.
2 Copyright (C) 2004-2014 Roger Ferrer Ibáñez
2 Copyright (C) 2004-2019 Roger Ferrer Ibáñez
33
44 This program is free software; you can redistribute it and/or modify
55 it under the terms of the GNU General Public License as published by
1818 #include "eiciel_main_window.hpp"
1919
2020 // Constructor
21 EicielWindow::EicielWindow(EicielMainController* cont)
22 : Gtk::Box(Gtk::ORIENTATION_VERTICAL),
21 EicielACLWindow::EicielACLWindow(EicielACLWindowController* cont)
22 : Gtk::Box(Gtk::ORIENTATION_VERTICAL)
2323 /* GUI */
24 _main_box(Gtk::ORIENTATION_VERTICAL),
25 _label_current_acl(_("<b>Current participants in ACL</b>")),
26 _top_box(Gtk::ORIENTATION_VERTICAL),
27 _listview_acl_container(),
28 _listview_acl(),
29 _middle_button_group(),
30 _warning_icon(Gtk::Stock::DIALOG_WARNING, Gtk::IconSize(Gtk::ICON_SIZE_SMALL_TOOLBAR)),
31 _bottom_label(_("There are ineffective permissions")),
32 _b_remove_acl(_("Remove participant from ACL")),
33 _tb_modify_default_acl(_("Edit default participants")),
34 _label_participants(_("<b>Available participants</b>")),
35 _bottom_box(Gtk::ORIENTATION_VERTICAL),
36 _participant_chooser(),
37 _rb_acl_user(_("User")),
38 _rb_acl_group(_("Group")),
39 _cb_acl_default(_("Default participant")),
40 _filter_entry(),
41 _listview_participants_container(),
42 _listview_participants(),
43 _below_participant_list(),
44 _b_add_acl(_("Add participant to ACL")),
45 _advanced_features_expander(_("Advanced features")),
46 _advanced_features_box(Gtk::ORIENTATION_VERTICAL),
47 _participant_entry_label(_("Name of participant")),
48 _participant_entry_query_button(Gtk::Stock::FIND),
49 _cb_show_system_participants(_("Also show system participants")),
24 , _info_bar()
25 , _info_bar_vbox(Gtk::ORIENTATION_VERTICAL)
26 , _info_bar_label("Applying ACLs to enclosed files")
27 , _info_bar_progress()
28 , _main_box(Gtk::ORIENTATION_VERTICAL)
29 , _label_current_acl(_("<b>Current participants in ACL</b>"))
30 , _acl_list(cont)
31 , _label_participants(_("<b>Available participants</b>"))
32 , _participant_list(cont)
33 , _edit_enclosed_files(_("Edit ACLs for enclosed files..."))
5034
5135 /* Non GUI */
52 _readonly_mode(false),
53 _pending_filter_updates(0),
54 _controller(cont) // Assign _controller to _window
36 , _controller(cont) // Assign _controller to _window
5537 {
5638 // Set the window to the controller
5739 _controller->_window = this;
6244 this->set_margin_end(12);
6345
6446 this->pack_start(_main_box);
65 _main_box.set_spacing(4);
6647
6748 _label_current_acl.set_use_markup(true);
6849 _label_current_acl.set_alignment(Gtk::ALIGN_START, Gtk::ALIGN_START);
6950 _main_box.pack_start(_label_current_acl, Gtk::PACK_SHRINK);
7051
71 _top_box.set_margin_start(12);
72 _top_box.set_border_width(4);
73 _top_box.set_spacing(4);
74 _main_box.pack_start(_top_box);
52 _main_box.pack_start(_acl_list);
7553
7654 _label_participants.set_use_markup(true);
7755 _label_participants.set_alignment(Gtk::ALIGN_START, Gtk::ALIGN_START);
7856 _main_box.pack_start(_label_participants, Gtk::PACK_SHRINK);
7957
80 _bottom_box.set_margin_start(12);
81 _bottom_box.set_border_width(4);
82 _bottom_box.set_spacing(4);
83 _main_box.pack_start(_bottom_box);
58 _main_box.pack_start(_participant_list);
8459
85 #ifndef USING_GNOME2
86 _middle_button_group.set_spacing(2);
87 #endif
60 _edit_enclosed_files.set_margin_top(12);
61 _edit_enclosed_files.set_halign(Gtk::ALIGN_START);
62 _edit_enclosed_files.signal_clicked().connect(
63 sigc::mem_fun(this, &EicielACLWindow::edit_enclosed_files));
64 _main_box.pack_start(_edit_enclosed_files, Gtk::PACK_SHRINK);
8865
89 // Open icons
90 _user_icon = Gdk::Pixbuf::create_from_file(PKGDATADIR "/img/user.png");
91 _user_icon_acl = Gdk::Pixbuf::create_from_file(PKGDATADIR "/img/user-acl.png");
92 _group_icon = Gdk::Pixbuf::create_from_file(PKGDATADIR "/img/group.png");
93 _group_icon_acl = Gdk::Pixbuf::create_from_file(PKGDATADIR "/img/group-acl.png");
94 _others_icon = Gdk::Pixbuf::create_from_file(PKGDATADIR "/img/others.png");
95 _mask_icon = Gdk::Pixbuf::create_from_file(PKGDATADIR "/img/mask.png");
66 // Note we insert and remove _info_bar manually to work around
67 // https://bugzilla.gnome.org/show_bug.cgi?id=710888
68 _info_bar_label.set_halign(Gtk::ALIGN_START);
69 _info_bar_vbox.pack_start(_info_bar_label, Gtk::PACK_SHRINK);
9670
97 _default_user_icon = Gdk::Pixbuf::create_from_file(PKGDATADIR "/img/user-default.png");
98 _default_group_icon = Gdk::Pixbuf::create_from_file(PKGDATADIR "/img/group-default.png");
99 _default_others_icon = Gdk::Pixbuf::create_from_file(PKGDATADIR "/img/others-default.png");
100 _default_user_icon_acl = Gdk::Pixbuf::create_from_file(PKGDATADIR "/img/user-acl-default.png");
101 _default_group_icon_acl = Gdk::Pixbuf::create_from_file(PKGDATADIR "/img/group-acl-default.png");
102 _default_mask_icon = Gdk::Pixbuf::create_from_file(PKGDATADIR "/img/mask-default.png");
71 _info_bar_progress.set_fraction(0.0);
72 _info_bar_progress.set_hexpand(true);
10373
104 // ACL list
105 _ref_acl_list = Gtk::ListStore::create(_acl_list_model);
74 _info_bar_vbox.pack_start(_info_bar_progress, Gtk::PACK_SHRINK);
10675
107 // Set columns in the ACL list
108 _listview_acl.set_reallocate_redraws();
109 _listview_acl.set_model(_ref_acl_list);
110 _listview_acl.append_column("", _acl_list_model._icon);
111 _listview_acl.append_column(_("Entry"), _acl_list_model._entry_name);
112
113 CellRendererACL* renderRead = Gtk::manage(new CellRendererACL());
114 int numColumns = _listview_acl.append_column(_("Read"), *renderRead);
115 Gtk::TreeViewColumn* reading_column = _listview_acl.get_column(numColumns - 1);
116
117 if (reading_column != NULL)
118 {
119 reading_column->add_attribute(renderRead->property_active(), _acl_list_model._reading_permission);
120 reading_column->add_attribute(renderRead->mark_background(), _acl_list_model._reading_ineffective);
121 reading_column->set_cell_data_func(*renderRead, mem_fun(*this, &EicielWindow::acl_cell_data_func));
122 }
123
124 CellRendererACL* renderWrite = Gtk::manage(new CellRendererACL());
125 numColumns = _listview_acl.append_column(_("Write"), *renderWrite);
126 Gtk::TreeViewColumn* writing_column = _listview_acl.get_column(numColumns - 1);
127 if (writing_column != NULL)
128 {
129 writing_column->add_attribute(renderWrite->property_active(), _acl_list_model._writing_permission);
130 writing_column->add_attribute(renderWrite->mark_background(), _acl_list_model._writing_ineffective);
131 writing_column->set_cell_data_func(*renderWrite, mem_fun(*this, &EicielWindow::acl_cell_data_func));
132 }
133
134 CellRendererACL* renderExecute = Gtk::manage(new CellRendererACL());
135 numColumns = _listview_acl.append_column(_("Execute"), *renderExecute);
136 Gtk::TreeViewColumn* execution_column = _listview_acl.get_column(numColumns - 1);
137 if (execution_column != NULL)
138 {
139 execution_column->add_attribute(renderExecute->property_active(), _acl_list_model._execution_permission);
140 execution_column->add_attribute(renderExecute->mark_background(), _acl_list_model._execution_ineffective);
141 execution_column->set_cell_data_func(*renderExecute, mem_fun(*this, &EicielWindow::acl_cell_data_func));
142 }
143
144 // TODO - Implement recursion policies
145 #if 0
146 // Recursion policy
147 _recursion_policy_list = Gtk::ListStore::create(_recursion_policy_model);
148 _dummy_recursion_policy_list = Gtk::ListStore::create(_recursion_policy_model);
149 {
150 Gtk::TreeModel::Row row = *(_recursion_policy_list->append());
151 row[_recursion_policy_model._recursion_policy] = _("None");
152 row = *(_recursion_policy_list->append());
153 row[_recursion_policy_model._recursion_policy] = _("Only files");
154 row = *(_recursion_policy_list->append());
155 row[_recursion_policy_model._recursion_policy] = _("Only directories");
156 row = *(_recursion_policy_list->append());
157 row[_recursion_policy_model._recursion_policy] = _("Both files and directories");
158
159 // Dummy
160 row = *(_dummy_recursion_policy_list->append());
161 row[_recursion_policy_model._recursion_policy] = _("None");
162 }
163
164 Gtk::CellRendererCombo* renderRecursion = Gtk::manage(new Gtk::CellRendererCombo());
165 numColumns = _listview_acl.append_column(_("Recursion"), *renderRecursion);
166 Gtk::TreeViewColumn* recursion_column = _listview_acl.get_column(numColumns - 1);
167
168 recursion_column->add_attribute(renderRecursion->property_text(), _acl_list_model._current_recursion_policy);
169 recursion_column->add_attribute(renderRecursion->property_model(), _acl_list_model._recursion_policies);
170 renderRecursion->property_text_column() = 0;
171 renderRecursion->property_editable() = true;
172 renderRecursion->property_has_entry() = false;
173
174 renderRecursion->signal_edited().connect( sigc::mem_fun(*this, &EicielWindow::recursion_policy_change) );
175 #endif
176
177 // Aesthetic column completely useless
178 _listview_acl.append_column("", _acl_list_model._empty);
179
180 _listview_acl_container.add(_listview_acl);
181 _listview_acl_container.set_policy(Gtk::POLICY_NEVER, Gtk::POLICY_AUTOMATIC);
182
183 _listview_acl_container.set_size_request(-1, 150);
184 _listview_acl_container.set_shadow_type(Gtk::SHADOW_IN);
185
186 _top_box.pack_start(_listview_acl_container);
187
188 // Add 'move up' 'move down' buttons
189 _middle_button_group.pack_start(_warning_icon, Gtk::PACK_SHRINK);
190 _middle_button_group.pack_start(_bottom_label, Gtk::PACK_SHRINK);
191 _middle_button_group.pack_end(_b_remove_acl, Gtk::PACK_SHRINK);
192 _middle_button_group.pack_end(_tb_modify_default_acl, Gtk::PACK_SHRINK);
193
194 _top_box.pack_start(_middle_button_group, Gtk::PACK_SHRINK);
195
196 // Group buttons of ACL kind
197 Gtk::RadioButton::Group tipusACL = _rb_acl_user.get_group();
198 _rb_acl_group.set_group(tipusACL);
199
200 _filter_entry.set_placeholder_text(_("Filter participants"));
201 _filter_entry.property_secondary_icon_name() = "gtk-clear";
202 _filter_entry.signal_changed().connect(sigc::mem_fun(*this, &EicielWindow::filter_entry_text_changed));
203 _filter_entry.signal_icon_press().connect(sigc::mem_fun(*this, &EicielWindow::on_clear_icon_pressed));
204 _filter_entry.set_margin_left(12);
205
206 // Row above the participants list
207 _participant_chooser.pack_start(_rb_acl_user, Gtk::PACK_SHRINK);
208 _participant_chooser.pack_start(_rb_acl_group, Gtk::PACK_SHRINK);
209 _participant_chooser.pack_start(_cb_acl_default, Gtk::PACK_SHRINK);
210 _participant_chooser.pack_end(_filter_entry, Gtk::PACK_SHRINK);
211
212 // Participants list
213 _ref_participants_list = Gtk::ListStore::create(_participant_list_model);
214 _ref_participants_list_filter = Gtk::TreeModelFilter::create(_ref_participants_list);
215 _ref_participants_list_filter->set_visible_func(sigc::mem_fun(*this, &EicielWindow::filter_participant_row));
216
217 _listview_participants.set_headers_visible(false);
218 _listview_participants.set_reallocate_redraws();
219 _listview_participants.set_model(_ref_participants_list_filter);
220 _listview_participants.append_column("", _participant_list_model._icon);
221 _listview_participants.append_column(_("Participant"), _participant_list_model._participant_name);
222
223 _listview_participants_container.add(_listview_participants);
224 _listview_participants_container.set_policy(Gtk::POLICY_NEVER, Gtk::POLICY_AUTOMATIC);
225
226 _participant_entry_box.set_spacing(4);
227 _participant_entry_box.pack_start(_participant_entry_label, Gtk::PACK_SHRINK);
228 _participant_entry_box.pack_start(_participant_entry);
229 _participant_entry_box.pack_start(_participant_entry_query_button, Gtk::PACK_SHRINK);
230
231 _participant_entry.signal_changed().connect(sigc::mem_fun(*this, &EicielWindow::participant_entry_box_changed));
232 _participant_entry.signal_activate().connect(sigc::mem_fun(*this, &EicielWindow::participant_entry_box_activate));
233 _participant_entry_query_button.set_sensitive(false);
234
235 _participant_entry_query_button.signal_clicked().connect(sigc::mem_fun(*this, &EicielWindow::participant_entry_box_activate));
236
237 // Row below the participant list
238 _below_participant_list.pack_end(_b_add_acl, Gtk::PACK_SHRINK);
239
240 _advanced_features_box.set_margin_left(12);
241 _advanced_features_box.set_margin_right(12);
242 _advanced_features_box.set_spacing(4);
243 _advanced_features_box.pack_start(_participant_entry_box, Gtk::PACK_SHRINK);
244 _advanced_features_box.pack_start(_cb_show_system_participants, Gtk::PACK_SHRINK);
245 _advanced_features_expander.add(_advanced_features_box);
246
247 _bottom_box.pack_start(_participant_chooser, Gtk::PACK_SHRINK);
248 _bottom_box.pack_start(_listview_participants_container);
249 _bottom_box.pack_start(_below_participant_list, Gtk::PACK_SHRINK);
250 _bottom_box.pack_start(_advanced_features_expander, Gtk::PACK_SHRINK);
251
252 _cb_show_system_participants.signal_toggled().connect(sigc::mem_fun(*this, &EicielWindow::toggle_system_show));
253
254 _listview_participants_container.set_size_request(-1, 100);
255 _listview_participants_container.set_shadow_type(Gtk::SHADOW_IN);
256
257 // Drag & Drop stuff
258 #ifdef USING_GNOME2
259 std::list<Gtk::TargetEntry> list_targets;
260 #else
261 std::vector<Gtk::TargetEntry> list_targets;
262 #endif
263 list_targets.push_back( Gtk::TargetEntry("participant_acl") );
264
265 // _listview_participants es the source of the drag
266 _listview_participants.drag_source_set(list_targets);
267
268 _listview_participants.signal_drag_begin().connect(
269 sigc::mem_fun(*this, &EicielWindow::start_drag_and_drop)
270 );
271
272 _listview_participants.signal_drag_data_get().connect(
273 sigc::mem_fun(*this, &EicielWindow::set_value_drag_and_drop)
274 );
275
276 // _listview_acl is the target of the drag
277 _listview_acl.drag_dest_set(list_targets);
278
279 _listview_acl.signal_drag_data_received().connect(
280 sigc::mem_fun(*this, &EicielWindow::get_value_drag_and_drop)
281 );
282
283 // Signal binding
284 Glib::RefPtr<Gtk::TreeSelection> acl_list_selection_reference = _listview_acl.get_selection();
285
286 // Filter function this time only for _readonly_mode
287 acl_list_selection_reference->set_select_function(
288 sigc::mem_fun(*this, &EicielWindow::acl_selection_function)
289 );
290
291 // ACL selection change event
292 acl_list_selection_reference->signal_changed().connect(
293 sigc::mem_fun(*this, &EicielWindow::acl_selection_change)
294 );
295
296 // Participants selection change event
297 Glib::RefPtr<Gtk::TreeSelection> acl_list_participants_reference = _listview_participants.get_selection();
298 acl_list_participants_reference->signal_changed().connect(
299 sigc::mem_fun(*this, &EicielWindow::change_participant_selection)
300 );
301
302 // Double click in ACL list
303 _listview_acl.signal_row_activated().connect(
304 sigc::mem_fun(*this, &EicielWindow::acl_list_double_click)
305 );
306
307 // Double click in participants list
308 _listview_participants.signal_row_activated().connect(
309 sigc::mem_fun(*this, &EicielWindow::participants_list_double_click)
310 );
311
312 // Remove ACL button
313 _b_remove_acl.signal_clicked().connect(
314 sigc::mem_fun(*this, &EicielWindow::remove_selected_acl)
315 );
316
317 // Add ACL button
318 _b_add_acl.signal_clicked().connect(
319 sigc::mem_fun(*this, &EicielWindow::add_selected_participant)
320 );
321
322 // Change of default acl toggle button
323 _tb_modify_default_acl.signal_clicked().connect (
324 sigc::mem_fun(*_controller, &EicielMainController::change_default_acl)
325 );
326
327 // Column edition event
328 Gtk::TreeViewColumn* col = _listview_acl.get_column(2);
329 #ifdef USING_GNOME2
330 Gtk::CellRenderer* render = col->get_first_cell_renderer(); // Only one
331 #else
332 Gtk::CellRenderer* render = col->get_first_cell(); // Only one
333 #endif
334 CellRendererACL* toggle_render = dynamic_cast<CellRendererACL*>(render);
335
336 toggle_render->signal_toggled().connect(
337 sigc::bind<PermissionKind>( sigc::mem_fun(*this, &EicielWindow::change_permissions), PK_READING)
338 );
339
340 col = _listview_acl.get_column(3);
341 #ifdef USING_GNOME2
342 render = col->get_first_cell_renderer();
343 #else
344 render = col->get_first_cell();
345 #endif
346 toggle_render = dynamic_cast<CellRendererACL*>(render);
347
348 toggle_render->signal_toggled().connect(
349 sigc::bind<PermissionKind>( sigc::mem_fun(*this, &EicielWindow::change_permissions), PK_WRITING)
350 );
351
352 col = _listview_acl.get_column(4);
353 #ifdef USING_GNOME2
354 render = col->get_first_cell_renderer();
355 #else
356 render = col->get_first_cell();
357 #endif
358 toggle_render = dynamic_cast<CellRendererACL*>(render);
359
360 toggle_render->signal_toggled().connect(
361 sigc::bind<PermissionKind>( sigc::mem_fun(*this, &EicielWindow::change_permissions), PK_EXECUTION)
362 );
363
364 there_is_no_file();
365 there_is_no_acl_selection();
366 there_is_no_participant_selection();
367
368 _users_list = _controller->get_users_list();
369 _groups_list = _controller->get_groups_list();
370
371 _rb_acl_user.signal_clicked().connect(
372 sigc::bind< set<string>*,
373 ElementKind,
374 Glib::RefPtr<Gdk::Pixbuf>,
375 Glib::RefPtr<Gdk::Pixbuf> > (
376 sigc::mem_fun(*this, &EicielWindow::fill_participants),
377 &_users_list,
378 EK_ACL_USER,
379 _user_icon_acl,
380 _default_user_icon_acl)
381 );
382
383 _rb_acl_group.signal_clicked().connect(
384 sigc::bind< set<string>*,
385 ElementKind,
386 Glib::RefPtr<Gdk::Pixbuf>,
387 Glib::RefPtr<Gdk::Pixbuf> > (
388 sigc::mem_fun(*this, &EicielWindow::fill_participants),
389 &_groups_list,
390 EK_ACL_GROUP,
391 _group_icon_acl,
392 _default_group_icon_acl)
393 );
394
395 _cb_acl_default.signal_clicked().connect(
396 sigc::mem_fun(*this, &EicielWindow::change_participant_kind)
397 );
398
399 _rb_acl_user.set_active();
400 _rb_acl_user.clicked();
76 _info_bar_vbox.set_spacing(12);
77 Gtk::Container* info_bar_content_area = dynamic_cast<Gtk::Container*>(_info_bar.get_content_area());
78 info_bar_content_area->add(_info_bar_vbox);
40179
40280 show_all();
403
404 show_exclamation_mark(false);
40581 }
40682
83 EicielACLWindow::~EicielACLWindow() {}
40784
408 void EicielWindow::show_exclamation_mark(bool b)
85 void EicielACLWindow::set_filename(const std::string& str)
40986 {
410 if (b)
411 {
412 _bottom_label.show();
413 _warning_icon.show();
414 }
415 else
416 {
417 _warning_icon.hide();
418 _bottom_label.hide();
419 }
87 _main_box.set_sensitive(true);
42088 }
42189
422 EicielWindow::~EicielWindow()
423 {
424 delete _controller;
425 }
426
427 void EicielWindow::initialize(string s)
428 {
429 _controller->open_file(s);
430 }
431
432 void EicielWindow::set_active(bool b)
90 void EicielACLWindow::set_active(bool b)
43391 {
43492 _main_box.set_sensitive(b);
43593 }
43694
437 void EicielWindow::set_readonly(bool b)
95 void EicielACLWindow::show_info_bar()
43896 {
439 _readonly_mode = b;
440 if (b)
441 {
442 _tb_modify_default_acl.set_sensitive(false);
443 }
444 _bottom_box.set_sensitive(!b);
97 this->pack_start(_info_bar);
98 this->reorder_child(_info_bar, 0);
99 _info_bar.show_all();
445100 }
446101
447 bool EicielWindow::acl_selection_function(const Glib::RefPtr<Gtk::TreeModel>& model,
448 const Gtk::TreeModel::Path& path, bool)
102 void EicielACLWindow::hide_info_bar()
449103 {
450 return !_readonly_mode;
104 this->remove(_info_bar);
451105 }
452106
453 void EicielWindow::there_is_no_file()
107 void EicielACLWindow::set_recursive_progress(double d)
454108 {
455 _main_box.set_sensitive(false);
109 _info_bar_progress.set_fraction(d);
456110 }
457111
458 void EicielWindow::empty_acl_list()
112 void EicielACLWindow::can_edit_enclosed_files(bool b)
459113 {
460 _ref_acl_list->clear();
114 _edit_enclosed_files.set_sensitive(b);
461115 }
462116
463 void EicielWindow::acl_selection_change()
117 void EicielACLWindow::edit_enclosed_files()
464118 {
465 Glib::RefPtr<Gtk::TreeSelection> selection_list_reference = _listview_acl.get_selection();
466 Gtk::TreeModel::iterator iter = selection_list_reference->get_selected();
467 if (!iter || _readonly_mode)
468 {
469 there_is_no_acl_selection();
470 }
471 else
472 {
473 if ( !(*iter)[_acl_list_model._removable] )
474 there_is_no_acl_selection();
475 else
476 there_is_acl_selection();
477 }
119 _controller->edit_enclosed_files();
478120 }
479121
480 void EicielWindow::change_participant_selection()
481 {
482 Glib::RefPtr<Gtk::TreeSelection> selection_list_reference = _listview_participants.get_selection();
483 Gtk::TreeModel::iterator iter = selection_list_reference->get_selected();
484 if (!iter)
485 {
486 there_is_no_participant_selection();
487 }
488 else
489 {
490 there_is_participant_selection();
491 }
492 }
493
494 void EicielWindow::remove_selected_acl()
495 {
496 Glib::RefPtr<Gtk::TreeSelection> selection_list_reference = _listview_acl.get_selection();
497 Gtk::TreeModel::iterator iter = selection_list_reference->get_selected();
498 if (iter)
499 {
500 Gtk::TreeModel::Row row(*iter);
501 if (row[_acl_list_model._removable])
502 {
503 Gtk::TreeModel::Row row(*iter);
504 _controller->remove_acl(Glib::ustring(row[_acl_list_model._entry_name]),
505 ElementKind(row[_acl_list_model._entry_kind]));
506 }
507 }
508 }
509
510 void EicielWindow::add_selected_participant()
511 {
512 Glib::RefPtr<Gtk::TreeSelection> selection_list_reference = _listview_participants.get_selection();
513 Gtk::TreeModel::iterator iter = selection_list_reference->get_selected();
514 if (iter)
515 {
516 Gtk::TreeModel::Row row(*iter);
517 _controller->add_acl_entry(Glib::ustring(row[_participant_list_model._participant_name]),
518 ElementKind(row[_participant_list_model._entry_kind]), _cb_acl_default.get_active());
519 }
520 }
521
522 void EicielWindow::there_is_no_acl_selection()
523 {
524 _b_remove_acl.set_sensitive(false);
525 }
526
527 void EicielWindow::there_is_no_participant_selection()
528 {
529 _b_add_acl.set_sensitive(false);
530 }
531
532 void EicielWindow::there_is_acl_selection()
533 {
534 _b_remove_acl.set_sensitive(true);
535 }
536
537 void EicielWindow::there_is_participant_selection()
538 {
539 _b_add_acl.set_sensitive(true);
540 }
541
542 void EicielWindow::add_non_selectable(Glib::ustring title,
543 bool reading, bool writing, bool execution, ElementKind e,
544 bool effective_reading, bool effective_writing, bool effective_execution)
545 {
546 Gtk::TreeModel::iterator iter = _ref_acl_list->append();
547 Gtk::TreeModel::Row row(*iter);
548
549 add_element(title, reading, writing, execution, e, row,
550 effective_reading, effective_writing, effective_execution,
551 _controller->is_directory());
552 row[_acl_list_model._removable] = false;
553 }
554
555 void EicielWindow::add_selectable(Glib::ustring title,
556 bool reading, bool writing, bool execution, ElementKind e,
557 bool effective_reading, bool effective_writing, bool effective_execution)
558 {
559 Gtk::TreeModel::iterator iter = _ref_acl_list->append();
560 Gtk::TreeModel::Row row(*iter);
561
562 add_element(title, reading, writing, execution, e, row,
563 effective_reading, effective_writing, effective_execution,
564 _controller->is_directory());
565 row[_acl_list_model._removable] = true;
566 }
567
568 void EicielWindow::add_element(Glib::ustring title,
569 bool reading, bool writing, bool execution,
570 ElementKind e, Gtk::TreeModel::Row& row,
571 bool effective_reading,
572 bool effective_writing,
573 bool effective_execution,
574 bool can_be_recursed)
575 {
576 row[_acl_list_model._entry_kind] = e;
577 row[_acl_list_model._icon] = get_proper_icon(e);
578 row[_acl_list_model._entry_name] = title;
579 row[_acl_list_model._reading_permission] = reading;
580 row[_acl_list_model._writing_permission] = writing;
581 row[_acl_list_model._execution_permission] = execution;
582
583 row[_acl_list_model._reading_ineffective] = !effective_reading;
584 row[_acl_list_model._writing_ineffective] = !effective_writing;
585 row[_acl_list_model._execution_ineffective] = !effective_execution;
586
587 // TODO - Implement recursion policies
588 #if 0
589 row[_acl_list_model._current_recursion_policy] = _("None");
590 if (can_be_recursed)
591 {
592 row[_acl_list_model._recursion_policies] = _recursion_policy_list;
593 }
594 else
595 {
596 row[_acl_list_model._recursion_policies] = _dummy_recursion_policy_list;
597 }
598 #endif
599 }
600
601 Glib::RefPtr<Gdk::Pixbuf> EicielWindow::get_proper_icon(ElementKind e)
602 {
603 switch(e)
604 {
605 case EK_USER :
606 return _user_icon;
607 case EK_GROUP :
608 return _group_icon;
609 case EK_OTHERS :
610 return _others_icon;
611 case EK_MASK :
612 return _mask_icon;
613 case EK_ACL_USER :
614 return _user_icon_acl;
615 case EK_ACL_GROUP :
616 return _group_icon_acl;
617 case EK_DEFAULT_USER :
618 return _default_user_icon;
619 case EK_DEFAULT_GROUP :
620 return _default_group_icon;
621 case EK_DEFAULT_OTHERS :
622 return _default_others_icon;
623 case EK_DEFAULT_ACL_USER :
624 return _default_user_icon_acl;
625 case EK_DEFAULT_ACL_GROUP :
626 return _default_group_icon_acl;
627 case EK_DEFAULT_MASK :
628 return _default_mask_icon;
629 default :
630 return _others_icon;
631 }
632 }
633
634 void EicielWindow::set_filename(string filename)
635 {
636 _main_box.set_sensitive(true);
637 }
638
639 void EicielWindow::change_permissions(const Glib::ustring& str, PermissionKind p)
640 {
641 Gtk::TreeModel::iterator i = _ref_acl_list->get_iter(str);
642 Gtk::TreeModel::Row row(*i);
643
644 if (_readonly_mode) return;
645
646 switch (p)
647 {
648 case PK_READING:
649 row[_acl_list_model._reading_permission] = !row[_acl_list_model._reading_permission];
650 break;
651 case PK_WRITING:
652 row[_acl_list_model._writing_permission] = !row[_acl_list_model._writing_permission];
653 break;
654 case PK_EXECUTION:
655 row[_acl_list_model._execution_permission] = !row[_acl_list_model._execution_permission];
656 break;
657 }
658
659 _controller->update_acl_entry(row[_acl_list_model._entry_kind],
660 Glib::ustring(row[_acl_list_model._entry_name]), row[_acl_list_model._reading_permission],
661 row[_acl_list_model._writing_permission], row[_acl_list_model._execution_permission]);
662 }
663
664 void EicielWindow::enable_default_acl_button(bool b)
665 {
666 _tb_modify_default_acl.set_sensitive(b);
667 _cb_acl_default.set_sensitive(b);
668 if (!b)
669 {
670 _cb_acl_default.set_active(false);
671 }
672 }
673
674 void EicielWindow::there_is_default_acl(bool b)
675 {
676 _tb_modify_default_acl.set_active(b);
677 }
678
679 bool EicielWindow::give_default_acl()
680 {
681 return _tb_modify_default_acl.get_active();
682 }
683
684 void EicielWindow::fill_participants(set<string>* participants,
685 ElementKind kind,
686 Glib::RefPtr<Gdk::Pixbuf> normal_icon,
687 Glib::RefPtr<Gdk::Pixbuf> default_icon)
688 {
689 _ref_participants_list->clear();
690 Gtk::TreeModel::iterator iter;
691
692 bool enable_by_default = _cb_acl_default.get_active();
693
694 for (set<string>::iterator i = participants->begin(); i != participants->end(); i++)
695 {
696 iter = _ref_participants_list->append();
697 Gtk::TreeModel::Row row(*iter);
698 row[_participant_list_model._icon] =
699 enable_by_default ? default_icon : normal_icon;
700 row[_participant_list_model._participant_name] = *i;
701 row[_participant_list_model._entry_kind] = kind;
702 }
703 }
704
705 bool EicielWindow::opened_file()
706 {
707 return _controller->opened_file();
708 }
709
710 Glib::ustring EicielWindow::last_error()
711 {
712 return _controller->last_error();
713 }
714
715 void EicielWindow::participants_list_double_click(const Gtk::TreeModel::Path& p,
716 Gtk::TreeViewColumn* c)
717 {
718 Glib::RefPtr<Gtk::TreeModel> list_model = _listview_participants.get_model();
719 Gtk::TreeModel::iterator iter = list_model->get_iter(p);
720
721 if (iter)
722 {
723 Gtk::TreeModel::Row row(*iter);
724 _controller->add_acl_entry(Glib::ustring(row[_participant_list_model._participant_name]),
725 ElementKind(row[_participant_list_model._entry_kind]), _cb_acl_default.get_active());
726 }
727 }
728
729 void EicielWindow::acl_list_double_click(const Gtk::TreeModel::Path& p,
730 Gtk::TreeViewColumn* c)
731 {
732 Glib::RefPtr<Gtk::TreeModel> list_model = _listview_acl.get_model();
733 Gtk::TreeModel::iterator iter = list_model->get_iter(p);
734
735 if (_readonly_mode) return;
736
737 if (iter)
738 {
739 Gtk::TreeModel::Row row(*iter);
740 if (row[_acl_list_model._removable])
741 {
742 _controller->remove_acl(Glib::ustring(row[_acl_list_model._entry_name]),
743 ElementKind(row[_acl_list_model._entry_kind]));
744 }
745 }
746 }
747
748 void EicielWindow::choose_acl(string s, ElementKind e)
749 {
750 Glib::RefPtr<Gtk::TreeModel> list_model = _listview_acl.get_model();
751 Gtk::TreeModel::Children children = list_model->children();
752 bool found = false;
753 for(Gtk::TreeModel::Children::iterator iter = children.begin();
754 (iter != children.end()) && !found; ++iter)
755 {
756 Gtk::TreeModel::Row row(*iter);
757 if ((row[_acl_list_model._entry_kind] == e) &&
758 (row[_acl_list_model._entry_name] == s))
759 {
760 found = true;
761 Gtk::TreePath p = list_model->get_path(iter);
762 _listview_acl.set_cursor(p);
763 _listview_acl.scroll_to_row(p, 0.5);
764 _listview_acl.grab_focus();
765 }
766 }
767 }
768
769 bool EicielWindow::enable_participant(string participant_name)
770 {
771 Glib::RefPtr<Gtk::TreeModel> list_model = _listview_participants.get_model();
772 Gtk::TreeModel::Children children = list_model->children();
773 bool found = false;
774
775 for(Gtk::TreeModel::Children::iterator iter = children.begin();
776 (iter != children.end()) && !found; ++iter)
777 {
778 Gtk::TreeModel::Row row(*iter);
779 if (row[_participant_list_model._participant_name] == participant_name)
780 {
781 found = true;
782 Gtk::TreePath p = list_model->get_path(iter);
783 _listview_participants.set_cursor(p);
784 _listview_participants.scroll_to_row(p, 0.5);
785 _listview_participants.grab_focus();
786 }
787 }
788
789 return found;
790 }
791
792
793 void EicielWindow::set_value_drag_and_drop(const Glib::RefPtr<Gdk::DragContext>&,
794 Gtk::SelectionData& selection_data, guint, guint)
795 {
796 selection_data.set("participant_acl", "");
797 }
798
799 void EicielWindow::get_value_drag_and_drop(const Glib::RefPtr<Gdk::DragContext>& context,
800 int, int, const Gtk::SelectionData& selection_data, guint, guint time)
801 {
802 add_selected_participant();
803 context->drag_finish(true, false, time);
804 }
805
806 void EicielWindow::start_drag_and_drop(const Glib::RefPtr<Gdk::DragContext>& context)
807 {
808 Glib::RefPtr<Gtk::TreeSelection> selection_list_reference = _listview_participants.get_selection();
809 Gtk::TreeModel::iterator iter = selection_list_reference->get_selected();
810 if (iter)
811 {
812 Gtk::TreeModel::Row row(*iter);
813 Glib::RefPtr<Gdk::Pixbuf> imatge = row[_participant_list_model._icon];
814 context->set_icon(imatge, -4, -4);
815 }
816 }
817
818 void EicielWindow::change_participant_kind()
819 {
820 Glib::RefPtr<Gtk::TreeModel> list_model = _listview_participants.get_model();
821
822 Gtk::TreeModel::Children children = list_model->children();
823
824 bool enable_default = _cb_acl_default.get_active();
825
826 for(Gtk::TreeModel::Children::iterator iter = children.begin();
827 iter != children.end(); ++iter)
828 {
829 Gtk::TreeModel::Row row(*iter);
830 if (_rb_acl_user.get_active())
831 {
832 row[_participant_list_model._icon] =
833 enable_default ? _default_user_icon_acl : _user_icon_acl;
834 }
835 else
836 {
837 row[_participant_list_model._icon] =
838 enable_default ? _default_group_icon_acl : _group_icon_acl;
839 }
840 }
841 }
842
843 void EicielWindow::toggle_system_show()
844 {
845 _controller->show_system_participants(_cb_show_system_participants.get_active());
846 _users_list = _controller->get_users_list();
847 _groups_list = _controller->get_groups_list();
848
849 // Force the event without having to know the exact list kind
850 if (_rb_acl_user.get_active())
851 _rb_acl_user.clicked();
852
853 if (_rb_acl_group.get_active())
854 _rb_acl_group.clicked();
855 }
856
857
858 void EicielWindow::acl_cell_data_func(Gtk::CellRenderer* rend,
859 const Gtk::TreeModel::iterator& itr)
860 {
861 }
862
863 void EicielWindow::recursion_policy_change(const Glib::ustring& path_string, const Glib::ustring& new_text)
864 {
865 Gtk::TreePath path(path_string);
866
867 Gtk::TreeModel::iterator iter = _ref_acl_list->get_iter(path);
868 if (iter)
869 {
870 Gtk::TreeRow row = *iter;
871 row[_acl_list_model._current_recursion_policy] = new_text;
872 }
873 }
874
875 void EicielWindow::participant_entry_box_activate()
876 {
877 bool participant_exists = false;
878
879 participant_exists = enable_participant(_participant_entry.get_text());
880
881 if (!participant_exists)
882 {
883 // Request for an explicit query in the system database
884 if (_rb_acl_user.get_active())
885 {
886 participant_exists = _controller->lookup_user(_participant_entry.get_text());
887 if (participant_exists)
888 {
889 _users_list.insert(_participant_entry.get_text());
890 _rb_acl_user.clicked();
891 enable_participant(_participant_entry.get_text());
892 }
893 }
894
895 if (_rb_acl_group.get_active())
896 {
897 participant_exists = _controller->lookup_group(_participant_entry.get_text());
898 if (participant_exists)
899 {
900 _groups_list.insert(_participant_entry.get_text());
901 _rb_acl_group.clicked();
902 enable_participant(_participant_entry.get_text());
903 }
904 }
905 }
906
907 if (!participant_exists)
908 {
909 _participant_entry.set_icon_from_stock(Gtk::Stock::DIALOG_ERROR);
910 _participant_entry.set_icon_activatable(false);
911 _participant_entry.set_icon_tooltip_text(_("Participant not found"));
912 }
913 else
914 {
915 _participant_entry.set_icon_from_pixbuf(Glib::RefPtr<Gdk::Pixbuf>(NULL));
916 }
917 }
918
919 void EicielWindow::participant_entry_box_changed()
920 {
921 _participant_entry_query_button.set_sensitive( _participant_entry.get_text_length() != 0 );
922 }
923
924 bool EicielWindow::refilter()
925 {
926 if (g_atomic_int_dec_and_test(&_pending_filter_updates))
927 {
928 _ref_participants_list_filter->refilter();
929 }
930 return false;
931 }
932
933 void EicielWindow::on_clear_icon_pressed(Gtk::EntryIconPosition icon_position, const GdkEventButton* event)
934 {
935 _filter_entry.set_text("");
936 }
937
938 void EicielWindow::filter_entry_text_changed()
939 {
940 // wait filter_delay ms after each change to filter
941 static const unsigned filter_delay = 500;
942
943 g_atomic_int_inc(&_pending_filter_updates);
944 Glib::signal_timeout().connect(sigc::mem_fun(*this, &EicielWindow::refilter), filter_delay);
945 }
946
947 bool EicielWindow::filter_participant_row(const Gtk::TreeModel::const_iterator& iter)
948 {
949 Glib::ustring filter_text = _filter_entry.get_text();
950 if (!filter_text.empty())
951 {
952 Glib::ustring current_text = (*iter)[_participant_list_model._participant_name];
953 // check if current row text contains filter_text
954 return current_text.find(filter_text) != Glib::ustring::npos;
955 }
956 return true;
957 }
00 /*
11 Eiciel - GNOME editor of ACL file permissions.
2 Copyright (C) 2004-2014 Roger Ferrer Ibáñez
2 Copyright (C) 2004-2019 Roger Ferrer Ibáñez
33
44 This program is free software; you can redistribute it and/or modify
55 it under the terms of the GNU General Public License as published by
1818 #ifndef EICIEL_MAIN_WINDOW_HPP
1919 #define EICIEL_MAIN_WINDOW_HPP
2020
21 #include "acl_element_kind.hpp"
22 #include "acl_list.hpp"
23 #include "eiciel_acl_list.hpp"
24 #include "eiciel_main_window_controller.hpp"
25 #include "eiciel_participant_list.hpp"
26 #include "participant_list.hpp"
2127 #include <config.hpp>
28 #include <glib/gi18n-lib.h>
29 #include <gtkmm.h>
30 #include <set>
2231 #include <string>
23 #include <gtkmm.h>
24 #include <glib/gi18n-lib.h>
25 #include "acl_list.hpp"
26 #include "participant_list.hpp"
27 #include "eiciel_main_controller.hpp"
28 #include "acl_element_kind.hpp"
2932
30 using namespace std;
33 class EicielACLWindowController;
3134
32 class EicielMainController;
35 class EicielACLWindow : public Gtk::Box {
36 public:
37 EicielACLWindow(EicielACLWindowController* cont);
38 virtual ~EicielACLWindow();
3339
34 class EicielWindow : public Gtk::Box
35 {
36 public:
37 EicielWindow(EicielMainController* cont);
38 virtual ~EicielWindow();
40 void set_filename(const std::string& filename);
3941
40 void add_non_selectable(Glib::ustring titol, bool reading, bool writing, bool execution, ElementKind e,
41 bool effective_reading = true, bool effective_writing = true, bool effective_execution = true);
42 void add_selectable(Glib::ustring titol, bool reading, bool writing, bool execution, ElementKind e,
43 bool effective_reading = true, bool effective_writing = true, bool effective_execution = true);
44 void empty_acl_list();
45 void set_filename(string filename);
46 void enable_default_acl_button(bool b);
47 void there_is_default_acl(bool b);
48 bool give_default_acl();
42 void initialize(const std::string& s);
43 bool opened_file();
4944
50 void initialize(string s);
51 bool opened_file();
45 void set_active(bool b);
5246
53 void set_active(bool b);
47 Glib::ustring last_error();
5448
55 void set_readonly(bool b);
49 void show_info_bar();
50 void hide_info_bar();
5651
57 void show_exclamation_mark(bool b);
58 void choose_acl(string s, ElementKind e);
59 void toggle_system_show();
52 void can_edit_enclosed_files(bool b);
53 void set_recursive_progress(double);
6054
61 Glib::ustring last_error();
55 private:
56 /* GUI components */
57 /* |- */ Gtk::InfoBar _info_bar;
58 /* (content area) */
59 /* |- */ Gtk::Box _info_bar_vbox;
60 /* |- */ Gtk::Label _info_bar_label;
61 /* |- */ Gtk::ProgressBar _info_bar_progress;
62 /* |- */ Gtk::Box _main_box;
63 /* |- */ Gtk::Label _label_current_acl;
64 /* |- */ EicielACLList _acl_list;
65 /* |- */ Gtk::Label _label_participants;
66 /* |- */ EicielParticipantList _participant_list;
67 /* |- */ Gtk::Button _edit_enclosed_files;
6268
63 private:
64 /* GUI components */
65 /* |- */ Gtk::Box _main_box;
66 /* |- */ Gtk::Label _label_current_acl;
67 /* |- */ Gtk::Box _top_box;
68 /* | |- */ Gtk::ScrolledWindow _listview_acl_container;
69 /* | | |- */ Gtk::TreeView _listview_acl;
70 /* | |- */ Gtk::Box _middle_button_group;
71 /* | | |- */ Gtk::Image _warning_icon;
72 /* | | |- */ Gtk::Label _bottom_label;
73 /* | | |- */ Gtk::Button _b_remove_acl;
74 /* | | |- */ Gtk::ToggleButton _tb_modify_default_acl;
75 /* |- */ Gtk::Label _label_participants;
76 /* |- */ Gtk::Box _bottom_box;
77 /* |- */ Gtk::Box _participant_chooser;
78 /* | |- */ Gtk::RadioButton _rb_acl_user;
79 /* | |- */ Gtk::RadioButton _rb_acl_group;
80 /* | |- */ Gtk::CheckButton _cb_acl_default;
81 /* | |- */ Gtk::Entry _filter_entry;
82 /* |- */ Gtk::ScrolledWindow _listview_participants_container;
83 /* | |- */ Gtk::TreeView _listview_participants;
84 /* |- */ Gtk::Box _below_participant_list;
85 /* | |- */ Gtk::Button _b_add_acl;
86 /* |- */ Gtk::Expander _advanced_features_expander;
87 /* |- */ Gtk::Box _advanced_features_box;
88 /* |- */ Gtk::Box _participant_entry_box;
89 /* | |- */ Gtk::Label _participant_entry_label;
90 /* | |- */ Gtk::Entry _participant_entry;
91 /* | |- */ Gtk::Button _participant_entry_query_button;
92 /* |- */ Gtk::CheckButton _cb_show_system_participants;
69 EicielACLWindowController* _controller;
9370
94 /* Non GUI */
95 Glib::RefPtr<Gdk::Pixbuf> _user_icon;
96 Glib::RefPtr<Gdk::Pixbuf> _group_icon;
97 Glib::RefPtr<Gdk::Pixbuf> _others_icon;
98 Glib::RefPtr<Gdk::Pixbuf> _mask_icon;
71 void there_is_no_file();
9972
100 Glib::RefPtr<Gdk::Pixbuf> _user_icon_acl;
101 Glib::RefPtr<Gdk::Pixbuf> _group_icon_acl;
102
103 Glib::RefPtr<Gdk::Pixbuf> _default_user_icon;
104 Glib::RefPtr<Gdk::Pixbuf> _default_group_icon;
105 Glib::RefPtr<Gdk::Pixbuf> _default_others_icon;
106 Glib::RefPtr<Gdk::Pixbuf> _default_user_icon_acl;
107 Glib::RefPtr<Gdk::Pixbuf> _default_group_icon_acl;
108 Glib::RefPtr<Gdk::Pixbuf> _default_mask_icon;
109
110 Glib::RefPtr<Gtk::ListStore> _ref_acl_list;
111 Glib::RefPtr<Gtk::ListStore> _ref_participants_list;
112 Glib::RefPtr<Gtk::TreeModelFilter> _ref_participants_list_filter;
113
114 ACLListModel _acl_list_model;
115 ModelLlistaParticipant _participant_list_model;
116
117 // TODO - Implement recursion policies
118 #if 0
119 RecursionPolicyModel _recursion_policy_model;
120 Glib::RefPtr<Gtk::ListStore> _recursion_policy_list;
121 Glib::RefPtr<Gtk::ListStore> _dummy_recursion_policy_list;
122 #endif
123
124 bool _readonly_mode;
125 int _pending_filter_updates;
126
127 EicielMainController* _controller;
128
129 set<string> _users_list;
130 set<string> _groups_list;
131
132 void there_is_no_file();
133 void acl_selection_change();
134 void there_is_acl_selection();
135 void there_is_no_acl_selection();
136
137 void change_participant_selection();
138 void there_is_participant_selection();
139 void there_is_no_participant_selection();
140 Glib::RefPtr<Gdk::Pixbuf> get_proper_icon(ElementKind e);
141 void add_element(Glib::ustring title, bool reading, bool writing, bool execution,
142 ElementKind e, Gtk::TreeModel::Row& row,
143 bool effective_reading, bool effective_writing, bool effective_execution,
144 bool can_be_recursed);
145 void remove_selected_acl();
146 void add_selected_participant();
147 void change_permissions(const Glib::ustring& str, PermissionKind p);
148
149 void fill_participants(set<string>* participants,
150 ElementKind kind,
151 Glib::RefPtr<Gdk::Pixbuf> normal_icon,
152 Glib::RefPtr<Gdk::Pixbuf> default_icon);
153
154
155 void participants_list_double_click(const Gtk::TreeModel::Path& p, Gtk::TreeViewColumn* c);
156 void acl_list_double_click(const Gtk::TreeModel::Path& p, Gtk::TreeViewColumn* c);
157
158
159 bool acl_selection_function(const Glib::RefPtr<Gtk::TreeModel>& model,
160 const Gtk::TreeModel::Path& path, bool);
161
162 void acl_cell_data_func(Gtk::CellRenderer*, const Gtk::TreeModel::iterator&);
163
164 void set_value_drag_and_drop(const Glib::RefPtr<Gdk::DragContext>&,
165 Gtk::SelectionData& selection_data, guint, guint);
166 void get_value_drag_and_drop(const Glib::RefPtr<Gdk::DragContext>& context,
167 int, int, const Gtk::SelectionData& selection_data, guint, guint time);
168
169 void start_drag_and_drop(const Glib::RefPtr<Gdk::DragContext>&);
170
171 void change_participant_kind();
172
173 void recursion_policy_change(const Glib::ustring& path_string, const Glib::ustring& new_text);
174
175 bool refilter();
176 void on_clear_icon_pressed(Gtk::EntryIconPosition icon_position, const GdkEventButton* event);
177 void filter_entry_text_changed();
178 bool filter_participant_row(const Gtk::TreeModel::const_iterator&);
179
180 void participant_entry_box_changed();
181 void participant_entry_box_activate();
182
183 bool enable_participant(string participant_name);
73 void edit_enclosed_files();
18474 };
18575
18676 #endif
0 /*
1 Eiciel - GNOME editor of ACL file permissions.
2 Copyright (C) 2004-2019 Roger Ferrer Ibáñez
3
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation; either version 2 of the License, or
7 (at your option) any later version.
8
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
13
14 You should have received a copy of the GNU General Public License
15 along with this program; if not, write to the Free Software
16 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
17 */
18 #include "config.hpp"
19
20 #include "acl_element_kind.hpp"
21 #include "eiciel_enclosed_editor_window.hpp"
22 #include "eiciel_enclosed_editor_window_controller.hpp"
23 #include "eiciel_main_window_controller.hpp"
24 #include <giomm.h>
25 #include <thread>
26
27 EicielACLWindowController::EicielACLWindowController()
28 : _ACL_manager(NULL)
29 , _is_file_opened(false)
30 , _last_error_message("")
31 {
32 }
33
34 EicielACLWindowController::~EicielACLWindowController()
35 {
36 delete _ACL_manager;
37 }
38
39 void EicielACLWindowController::open_file(const std::string& s)
40 {
41 try {
42 ACLManager* new_manager;
43 new_manager = new ACLManager(s);
44
45 delete _ACL_manager;
46 _ACL_manager = new_manager;
47
48 redraw_acl_list();
49 _window->set_filename(s);
50
51 set_active(true);
52
53 check_editable();
54
55 _is_file_opened = true;
56 _current_filename = s;
57 } catch (ACLManagerException e) {
58 _is_file_opened = false;
59 _current_filename.clear();
60 set_active(false);
61 this->empty_acl_list();
62 _last_error_message = e.getMessage();
63 }
64 }
65
66 void EicielACLWindowController::update_acl_list()
67 {
68 permissions_t effective_permissions(7);
69 if (_ACL_manager->has_mask()) {
70 effective_permissions = _ACL_manager->get_mask();
71 }
72 permissions_t effective_default_permissions(7);
73 if (_ACL_manager->has_default_mask()) {
74 effective_default_permissions = _ACL_manager->get_mask_default();
75 }
76
77 this->update_acl_ineffective(effective_permissions, effective_default_permissions);
78 }
79
80 void EicielACLWindowController::fill_acl_list(Glib::RefPtr<Gtk::ListStore> ref_acl_list, bool include_default_entries)
81 {
82 permissions_t perms = _ACL_manager->get_user();
83 std::vector<acl_entry> vACL;
84 this->add_non_selectable(
85 ref_acl_list,
86 Glib::locale_to_utf8(_ACL_manager->get_owner_name()), perms.reading,
87 perms.writing, perms.execution, EK_USER);
88
89 vACL = _ACL_manager->get_acl_user();
90 for (std::vector<acl_entry>::iterator i = vACL.begin(); i != vACL.end();
91 i++) {
92 this->add_selectable(
93 ref_acl_list,
94 Glib::locale_to_utf8(i->name), i->reading, i->writing, i->execution,
95 EK_ACL_USER);
96 }
97
98 perms = _ACL_manager->get_group();
99 this->add_non_selectable(
100 ref_acl_list,
101 Glib::locale_to_utf8(_ACL_manager->get_group_name()), perms.reading,
102 perms.writing, perms.execution, EK_GROUP);
103
104 vACL = _ACL_manager->get_acl_group();
105 for (std::vector<acl_entry>::iterator i = vACL.begin(); i != vACL.end();
106 i++) {
107 this->add_selectable(
108 ref_acl_list,
109 Glib::locale_to_utf8(i->name), i->reading, i->writing, i->execution,
110 EK_ACL_GROUP);
111 }
112
113 if (_ACL_manager->has_mask()) {
114 perms = _ACL_manager->get_mask();
115 this->add_non_selectable(
116 ref_acl_list,
117 _("Mask"), perms.reading, perms.writing,
118 perms.execution, EK_MASK);
119 }
120
121 perms = _ACL_manager->get_other();
122 this->add_non_selectable(
123 ref_acl_list,
124 _("Other"), perms.reading, perms.writing,
125 perms.execution, EK_OTHERS);
126
127 this->EicielACLListController::can_edit_default_acl(_ACL_manager->is_directory());
128 can_edit_enclosed_files(_ACL_manager->is_directory());
129 this->EicielParticipantListController::can_edit_default_acl(_ACL_manager->is_directory());
130 this->default_acl_are_being_edited(false);
131
132 if (include_default_entries && _ACL_manager->is_directory()) {
133 bool there_is_default_acl = false;
134 permissions_t effective_default_permissions(7);
135 if (_ACL_manager->has_default_mask()) {
136 effective_default_permissions = _ACL_manager->get_mask_default();
137 }
138
139 if (_ACL_manager->has_default_user()) {
140 perms = _ACL_manager->get_user_default();
141 this->add_non_selectable(
142 ref_acl_list,
143 Glib::locale_to_utf8(_ACL_manager->get_owner_name()), perms.reading,
144 perms.writing, perms.execution, EK_DEFAULT_USER);
145 there_is_default_acl = true;
146 }
147
148 vACL = _ACL_manager->get_acl_user_default();
149
150 there_is_default_acl |= (vACL.size() > 0);
151 for (std::vector<acl_entry>::iterator i = vACL.begin(); i != vACL.end();
152 i++) {
153 this->add_selectable(
154 ref_acl_list,
155 Glib::locale_to_utf8(i->name), i->reading,
156 i->writing, i->execution, EK_DEFAULT_ACL_USER);
157 }
158
159 if (_ACL_manager->has_default_group()) {
160 perms = _ACL_manager->get_group_default();
161 this->add_non_selectable(
162 ref_acl_list,
163 Glib::locale_to_utf8(_ACL_manager->get_group_name()), perms.reading,
164 perms.writing, perms.execution, EK_DEFAULT_GROUP);
165 there_is_default_acl |= true;
166 }
167
168 vACL = _ACL_manager->get_acl_group_default();
169
170 there_is_default_acl |= (vACL.size() > 0);
171 for (std::vector<acl_entry>::iterator i = vACL.begin(); i != vACL.end();
172 i++) {
173 this->add_selectable(
174 ref_acl_list,
175 Glib::locale_to_utf8(i->name), i->reading,
176 i->writing, i->execution, EK_DEFAULT_ACL_GROUP);
177 }
178
179 if (_ACL_manager->has_default_mask()) {
180 perms = _ACL_manager->get_mask_default();
181 this->add_non_selectable(ref_acl_list, _("Default Mask"), perms.reading,
182 perms.writing, perms.execution,
183 EK_DEFAULT_MASK);
184 there_is_default_acl |= true;
185 }
186
187 if (_ACL_manager->has_default_other()) {
188 perms = _ACL_manager->get_other_default();
189 this->add_non_selectable(ref_acl_list, _("Default Other"), perms.reading,
190 perms.writing, perms.execution,
191 EK_DEFAULT_OTHERS);
192 there_is_default_acl |= true;
193 }
194 this->default_acl_are_being_edited(there_is_default_acl);
195 }
196 }
197
198 void EicielACLWindowController::redraw_acl_list()
199 {
200 Glib::RefPtr<Gtk::ListStore> ref_acl_list = this->create_acl_list_store();
201
202 fill_acl_list(ref_acl_list, /* include_default_entries */ true);
203
204 this->replace_acl_store(ref_acl_list);
205
206 permissions_t effective_permissions(7);
207 if (_ACL_manager->has_mask()) {
208 effective_permissions = _ACL_manager->get_mask();
209 }
210 permissions_t effective_default_permissions(7);
211 if (_ACL_manager->has_default_mask()) {
212 effective_default_permissions = _ACL_manager->get_mask_default();
213 }
214 this->update_acl_ineffective(effective_permissions, effective_default_permissions);
215 }
216
217 bool EicielACLWindowController::is_directory()
218 {
219 if (_ACL_manager == NULL)
220 return false;
221
222 return _ACL_manager->is_directory();
223 }
224
225 void EicielACLWindowController::add_acl_entry(AddParticipantTarget target,
226 const std::string& s,
227 ElementKind e,
228 bool is_default)
229 {
230 permissions_t p(7);
231
232 if (is_default) {
233 if (e == EK_ACL_USER) {
234 e = EK_DEFAULT_ACL_USER;
235 } else if (e == EK_ACL_GROUP) {
236 e = EK_DEFAULT_ACL_GROUP;
237 }
238 }
239
240 try {
241 switch (e) {
242 case EK_ACL_USER: {
243 _ACL_manager->modify_acl_user(s, p);
244 break;
245 }
246 case EK_ACL_GROUP: {
247 _ACL_manager->modify_acl_group(s, p);
248 break;
249 }
250 case EK_DEFAULT_ACL_USER: {
251 _ACL_manager->modify_acl_default_user(s, p);
252 break;
253 }
254 case EK_DEFAULT_ACL_GROUP: {
255 _ACL_manager->modify_acl_default_group(s, p);
256 break;
257 }
258 default:
259 break;
260 }
261
262 redraw_acl_list();
263
264 this->choose_acl(s, e);
265 } catch (ACLManagerException e) {
266 Glib::ustring s = _("Could not add ACL entry: ") + e.getMessage();
267 Gtk::Container* toplevel = _window->get_toplevel();
268 if (toplevel == NULL || !toplevel->get_is_toplevel()) {
269 Gtk::MessageDialog add_acl_message(s, false, Gtk::MESSAGE_ERROR,
270 Gtk::BUTTONS_OK);
271 add_acl_message.run();
272 } else {
273 Gtk::MessageDialog add_acl_message(*(Gtk::Window*)toplevel, s, false,
274 Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK);
275 add_acl_message.run();
276 }
277 _last_error_message = s;
278 return;
279 }
280 }
281
282 void EicielACLWindowController::remove_acl(const std::string& entry_name,
283 ElementKind e)
284 {
285 bool updated = true;
286 try {
287 switch (e) {
288 case EK_ACL_USER: {
289 _ACL_manager->remove_acl_user(entry_name);
290 break;
291 }
292 case EK_ACL_GROUP: {
293 _ACL_manager->remove_acl_group(entry_name);
294 break;
295 }
296 case EK_DEFAULT_ACL_USER: {
297 _ACL_manager->remove_acl_user_default(entry_name);
298 break;
299 }
300 case EK_DEFAULT_ACL_GROUP: {
301 _ACL_manager->remove_acl_group_default(entry_name);
302 break;
303 }
304 default:
305 updated = false;
306 break;
307 }
308
309 if (updated) {
310 redraw_acl_list();
311 }
312 } catch (ACLManagerException e) {
313 Glib::ustring s = _("Could not remove ACL entry: ") + e.getMessage();
314 Gtk::Container* toplevel = _window->get_toplevel();
315 if (toplevel == NULL || !toplevel->get_is_toplevel()) {
316 Gtk::MessageDialog remove_acl_message(s, false, Gtk::MESSAGE_ERROR,
317 Gtk::BUTTONS_OK);
318 remove_acl_message.run();
319 } else {
320 Gtk::MessageDialog remove_acl_message(*(Gtk::Window*)toplevel, s, false,
321 Gtk::MESSAGE_ERROR,
322 Gtk::BUTTONS_OK);
323 remove_acl_message.run();
324 }
325 _last_error_message = s;
326 }
327 }
328
329 void EicielACLWindowController::update_acl_entry(ElementKind e,
330 const std::string& s,
331 bool reading,
332 bool writing,
333 bool execution)
334 {
335 permissions_t p(reading, writing, execution);
336
337 try {
338 switch (e) {
339 case EK_MASK: {
340 _ACL_manager->modify_mask(p);
341 break;
342 }
343 case EK_DEFAULT_MASK: {
344 _ACL_manager->modify_mask_default(p);
345 break;
346 }
347 case EK_USER: {
348 _ACL_manager->modify_owner_perms(p);
349 break;
350 }
351 case EK_GROUP: {
352 _ACL_manager->modify_group_perms(p);
353 break;
354 }
355 case EK_OTHERS: {
356 _ACL_manager->modify_others_perms(p);
357 break;
358 }
359 case EK_DEFAULT_USER: {
360 _ACL_manager->modify_owner_perms_default(p);
361 break;
362 }
363 case EK_DEFAULT_GROUP: {
364 _ACL_manager->modify_group_perms_default(p);
365 break;
366 }
367 case EK_DEFAULT_OTHERS: {
368 _ACL_manager->modify_others_perms_default(p);
369 break;
370 }
371 case EK_ACL_USER: {
372 _ACL_manager->modify_acl_user(s, p);
373 break;
374 }
375 case EK_ACL_GROUP: {
376 _ACL_manager->modify_acl_group(s, p);
377 break;
378 }
379 case EK_DEFAULT_ACL_USER: {
380 _ACL_manager->modify_acl_default_user(s, p);
381 break;
382 }
383 case EK_DEFAULT_ACL_GROUP: {
384 _ACL_manager->modify_acl_default_group(s, p);
385 break;
386 }
387 default:
388 break;
389 }
390 update_acl_list();
391 } catch (ACLManagerException e) {
392 Glib::ustring s = _("Could not modify ACL entry: ") + e.getMessage();
393 Gtk::Container* toplevel = _window->get_toplevel();
394 if (toplevel == NULL || !toplevel->get_is_toplevel()) {
395 Gtk::MessageDialog modify_acl_message(s, false, Gtk::MESSAGE_ERROR,
396 Gtk::BUTTONS_OK);
397 modify_acl_message.run();
398 } else {
399 Gtk::MessageDialog modify_acl_message(*(Gtk::Window*)toplevel, s, false,
400 Gtk::MESSAGE_ERROR,
401 Gtk::BUTTONS_OK);
402 modify_acl_message.run();
403 }
404 _last_error_message = s;
405 }
406 }
407
408 typedef std::pair<std::string, bool> FileListItem;
409
410 static std::vector<FileListItem> get_all_files_recursively(Glib::RefPtr<Gio::File> directory)
411 {
412 std::vector<FileListItem> result;
413 if (!directory)
414 return result;
415
416 result.push_back(std::make_pair(directory->get_path(), true));
417
418 Glib::RefPtr<Gio::FileEnumerator> file_enumerator = directory->enumerate_children(G_FILE_ATTRIBUTE_STANDARD_NAME, Gio::FILE_QUERY_INFO_NOFOLLOW_SYMLINKS);
419 for (Glib::RefPtr<Gio::FileInfo> file_info = file_enumerator->next_file(); file_info; file_info = file_enumerator->next_file()) {
420 bool is_dir = file_info->get_file_type() == Gio::FILE_TYPE_DIRECTORY;
421 Glib::RefPtr<Gio::File> child = directory->get_child(file_info->get_name());
422 if (!child)
423 continue;
424 if (is_dir) {
425 std::vector<std::pair<std::string, bool>> result_children = get_all_files_recursively(child);
426 result.insert(result.end(), result_children.begin(), result_children.end());
427 } else {
428 result.push_back(std::make_pair(child->get_path(), is_dir));
429 }
430 }
431 return result;
432 }
433
434 void EicielACLWindowController::can_edit_enclosed_files(bool b)
435 {
436 _window->can_edit_enclosed_files(b);
437 }
438
439 void EicielACLWindowController::edit_enclosed_files()
440 {
441 EicielEnclosedEditorController enclosed_editor_controller;
442
443 Gtk::Window* toplevel_window = (Gtk::Window*)_window->get_toplevel();
444 EicielEnclosedEditor enclosed_editor(*toplevel_window, &enclosed_editor_controller);
445
446 {
447 EicielACLListController* acl_list_directory_controller = enclosed_editor_controller.get_acl_list_directory_controller();
448 Glib::RefPtr<Gtk::ListStore> ref_acl_list_dirs = acl_list_directory_controller->create_acl_list_store();
449 fill_acl_list(ref_acl_list_dirs, /* include_default_entries */ true);
450 acl_list_directory_controller->replace_acl_store(ref_acl_list_dirs);
451
452 permissions_t effective_permissions(7);
453 if (_ACL_manager->has_mask()) {
454 effective_permissions = _ACL_manager->get_mask();
455 }
456 permissions_t effective_default_permissions(7);
457 if (_ACL_manager->has_default_mask()) {
458 effective_default_permissions = _ACL_manager->get_mask_default();
459 }
460 acl_list_directory_controller->update_acl_ineffective(effective_permissions, effective_default_permissions);
461 acl_list_directory_controller->can_edit_default_acl(true);
462 }
463 {
464 EicielACLListController* acl_list_files_controller = enclosed_editor_controller.get_acl_list_file_controller();
465 Glib::RefPtr<Gtk::ListStore> ref_acl_list_files = acl_list_files_controller->create_acl_list_store();
466 fill_acl_list(ref_acl_list_files, /* include_default_entries */ false);
467 acl_list_files_controller->replace_acl_store(ref_acl_list_files);
468
469 permissions_t effective_permissions(7);
470 if (_ACL_manager->has_mask()) {
471 effective_permissions = _ACL_manager->get_mask();
472 }
473 permissions_t effective_default_permissions(7);
474 if (_ACL_manager->has_default_mask()) {
475 effective_default_permissions = _ACL_manager->get_mask_default();
476 }
477 acl_list_files_controller->update_acl_ineffective(effective_permissions, effective_default_permissions);
478 acl_list_files_controller->can_edit_default_acl(false);
479 }
480
481 int response = enclosed_editor.run();
482 if (response != Gtk::RESPONSE_APPLY)
483 return;
484
485 std::string directory_access_acl_text = enclosed_editor_controller.get_directory_access_acl_text();
486 std::string directory_default_acl_text = enclosed_editor_controller.get_directory_default_acl_text();
487 std::string file_access_acl_text = enclosed_editor_controller.get_file_access_acl_text();
488
489 Glib::RefPtr<Gdk::Display> display = toplevel_window->get_display();
490 Glib::RefPtr<Gdk::Cursor> clock_cursor = Gdk::Cursor::create(display, "wait");
491 toplevel_window->get_window()->set_cursor(clock_cursor);
492 set_active(false);
493
494 _window->show_info_bar();
495
496 std::thread apply_changes_thread(
497 [this, toplevel_window, directory_access_acl_text, directory_default_acl_text, file_access_acl_text]() {
498 // Now iterate all the files
499 Glib::RefPtr<Gio::File> current_dir = Gio::File::create_for_path(_current_filename);
500 if (!current_dir)
501 return;
502
503 // Recursively build list (including _current_filename)
504 std::vector<FileListItem> all_filenames = get_all_files_recursively(current_dir);
505
506 int current_file_num = 1, num_files = all_filenames.size();
507 for (std::vector<FileListItem>::iterator it = all_filenames.begin();
508 it != all_filenames.end();
509 it++, current_file_num++) {
510 std::string& filename = it->first;
511 bool is_directory = it->second;
512 try {
513 if (is_directory) {
514 ACLManager::set_file_acl(filename, directory_access_acl_text, directory_default_acl_text);
515 } else {
516 ACLManager::set_file_acl(filename, file_access_acl_text, "");
517 }
518 } catch (ACLManagerException e) {
519 // FIXME: Can't do much here
520 std::cerr << "Exception when setting ACL of file '" << filename << "': " << e.getMessage() << "\n";
521 } catch (...) {
522 // Catch-all to avoid crashing nautilus
523 ;
524 }
525
526 double percentage = (double)current_file_num / (double)num_files;
527 Glib::signal_idle().connect_once([this, percentage]() {
528 _window->set_recursive_progress(percentage);
529 });
530 }
531 Glib::signal_idle().connect_once([this, toplevel_window]() {
532 toplevel_window->get_window()->set_cursor();
533 // Update file
534 open_file(_current_filename);
535 _window->hide_info_bar();
536 });
537 });
538 apply_changes_thread.detach();
539 }
540
541 // Returns true if the changed happened
542 bool EicielACLWindowController::toggle_edit_default_acl(bool default_acl_were_being_edited)
543 {
544 try {
545 if (default_acl_were_being_edited) {
546 Glib::ustring s(
547 _("Are you sure you want to remove all ACL default entries?"));
548 Gtk::Container* toplevel = _window->get_toplevel();
549 int result;
550 if (toplevel == NULL || !toplevel->get_is_toplevel()) {
551 Gtk::MessageDialog remove_acl_message(s, false, Gtk::MESSAGE_QUESTION,
552 Gtk::BUTTONS_YES_NO);
553 result = remove_acl_message.run();
554 } else {
555 Gtk::MessageDialog remove_acl_message(*(Gtk::Window*)toplevel, s, false,
556 Gtk::MESSAGE_QUESTION,
557 Gtk::BUTTONS_YES_NO);
558 result = remove_acl_message.run();
559 }
560 if (result == Gtk::RESPONSE_NO)
561 return false;
562 _ACL_manager->clear_default_acl();
563 } else {
564 _ACL_manager->create_default_acl();
565 }
566 redraw_acl_list();
567 return true;
568 } catch (ACLManagerException e) {
569 _last_error_message = e.getMessage();
570 return false;
571 }
572 }
573
574 bool EicielACLWindowController::opened_file()
575 {
576 return _is_file_opened;
577 }
578
579 void EicielACLWindowController::set_readonly(bool b)
580 {
581 this->EicielACLListController::set_readonly(b);
582 this->EicielParticipantListController::set_readonly(b);
583 }
584
585 void EicielACLWindowController::check_editable()
586 {
587 /*
588 * In Linux we should check CAP_FOWNER capability. At the moment give a
589 * rough approach where whe check whether the user is the owner or root.
590 *
591 * I've not looked for what should be checked in FreeBSD
592 */
593 uid_t real_user = getuid();
594 if ((real_user != 0) && (real_user != _ACL_manager->get_owner_uid())) {
595 this->set_readonly(true);
596 } else {
597 this->set_readonly(false);
598 }
599 }
600
601 Glib::ustring EicielACLWindowController::last_error()
602 {
603 return _last_error_message;
604 }
605
606 void EicielACLWindowController::set_active(bool b)
607 {
608 EicielACLListController::set_active(b);
609 EicielParticipantListController::set_active(b);
610 _window->set_active(b);
611 }
0 /*
1 Eiciel - GNOME editor of ACL file permissions.
2 Copyright (C) 2004-2019 Roger Ferrer Ibáñez
3
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation; either version 2 of the License, or
7 (at your option) any later version.
8
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
13
14 You should have received a copy of the GNU General Public License
15 along with this program; if not, write to the Free Software
16 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
17 USA
18 */
19 #ifndef EICIEL_MAIN_WINDOW_CONTROLLER_HPP
20 #define EICIEL_MAIN_WINDOW_CONTROLLER_HPP
21
22 #include "acl_element_kind.hpp"
23 #include "acl_manager.hpp"
24 #include "eiciel_acl_list.hpp"
25 #include "eiciel_participant_target.hpp"
26 // TODO: Remove
27 #include "eiciel_acl_list_controller.hpp"
28 #include "eiciel_main_window.hpp"
29 #include "eiciel_participant_list_controller.hpp"
30 #include <config.hpp>
31 #include <glib/gi18n-lib.h>
32 #include <set>
33
34 class EicielACLWindow;
35
36 class EicielACLWindowController : public sigc::trackable, public EicielACLListController, public EicielParticipantListController {
37 private:
38 ACLManager* _ACL_manager;
39 EicielACLWindow* _window;
40 bool _is_file_opened;
41 std::string _current_filename;
42 Glib::ustring _last_error_message;
43
44 void update_acl_list();
45 void redraw_acl_list();
46
47 void check_editable();
48
49 bool is_directory();
50
51 void set_readonly(bool b);
52
53 void fill_acl_list(Glib::RefPtr<Gtk::ListStore> ref_acl_list, bool include_default_entries);
54
55 void can_edit_enclosed_files(bool b);
56
57 public:
58 void open_file(const std::string& s);
59 Glib::ustring last_error();
60 bool opened_file();
61 // TODO: Remove
62 friend class EicielACLWindow;
63
64 EicielACLWindowController();
65 ~EicielACLWindowController();
66
67 void set_active(bool);
68
69 // EicielACLListController
70 bool toggle_edit_default_acl(bool default_acl_were_being_edited) override;
71 void remove_acl(const std::string& entry_name, ElementKind e) override;
72 void update_acl_entry(ElementKind e,
73 const std::string& name,
74 bool reading,
75 bool writing,
76 bool execution) override;
77
78 void edit_enclosed_files();
79
80 // EicielParticipantListController
81 void add_acl_entry(AddParticipantTarget target, const std::string& s, ElementKind e, bool is_default) override;
82 };
83
84 #endif
00 /*
11 Eiciel - GNOME editor of ACL file permissions.
2 Copyright (C) 2004-2014 Roger Ferrer Ibáñez
2 Copyright (C) 2004-2019 Roger Ferrer Ibáñez
33
44 This program is free software; you can redistribute it and/or modify
55 it under the terms of the GNU General Public License as published by
1717 */
1818
1919 #include <config.hpp>
20 #include <gtkmm.h>
21 #include <gtk/gtk.h>
22 #include <libnautilus-extension/nautilus-property-page.h>
23 #include <libnautilus-extension/nautilus-property-page-provider.h>
2420 #include <gio/gio.h>
2521 #include <glib/gi18n-lib.h>
26
27 #include "eiciel_main_controller.hpp"
22 #include <gtk/gtk.h>
23 #include <gtkmm.h>
24 extern "C" {
25 #include <nautilus-extension.h>
26 }
27
2828 #include "eiciel_main_window.hpp"
29 #include "eiciel_main_window_controller.hpp"
2930 #include "eiciel_nautilus_page.hpp"
3031
3132 #ifdef ENABLE_USER_XATTR
32 #include "eiciel_xattr_controller.hpp"
33 #include "eiciel_xattr_window.hpp"
33 #include "eiciel_xattr_controller.hpp"
34 #include "eiciel_xattr_window.hpp"
3435 #endif
3536
3637 struct NautilusEicielPropertiesPageDetails {
3738 };
3839
3940 typedef struct {
40 GObject parent;
41 GObject parent;
4142 } NautilusEicielPropertiesPageProvider;
4243
4344 typedef struct {
44 GObjectClass parent;
45 GObjectClass parent;
4546 } NautilusEicielPropertiesPageProviderClass;
4647
47
4848 static GObjectClass* parent_class = NULL;
4949
50 static void nautilus_eiciel_property_page_provider_iface_init (NautilusPropertyPageProviderIface* iface);
51
52 static GList* nautilus_get_property_pages (NautilusPropertyPageProvider *provider,
53 GList *files);
54
55
56 static void nautilus_eiciel_property_page_provider_iface_init (NautilusPropertyPageProviderIface* iface)
50 static void nautilus_eiciel_property_page_provider_iface_init(
51 NautilusPropertyPageProviderIface* iface);
52
53 static GList* nautilus_get_property_pages(
54 NautilusPropertyPageProvider* provider,
55 GList* files);
56
57 static void nautilus_eiciel_property_page_provider_iface_init(
58 NautilusPropertyPageProviderIface* iface)
5759 {
5860 iface->get_pages = nautilus_get_property_pages;
5961 }
6062
61 static void nautilus_eiciel_properties_page_finalize (GObject* object)
62 {
63 }
64
65 void nautilus_eiciel_properties_page_class_init(NautilusEicielPropertiesPageClass* neppc)
66 {
67 parent_class = (GObjectClass*)g_type_class_peek_parent (neppc);
68 G_OBJECT_CLASS (neppc)->finalize = nautilus_eiciel_properties_page_finalize;
69 }
70
63 static void nautilus_eiciel_properties_page_finalize(GObject* object) {}
64
65 void nautilus_eiciel_properties_page_class_init(
66 NautilusEicielPropertiesPageClass* neppc)
67 {
68 parent_class = (GObjectClass*)g_type_class_peek_parent(neppc);
69 G_OBJECT_CLASS(neppc)->finalize = nautilus_eiciel_properties_page_finalize;
70 }
7171
7272 // Returns a GList wit the pages we're going to provide
73 // to Nautilus
74 static GList* nautilus_get_property_pages (NautilusPropertyPageProvider *provider,
75 GList *files)
76 {
77 GList *pages = NULL;
73 // to Nautilus
74 static GList* nautilus_get_property_pages(
75 NautilusPropertyPageProvider* provider,
76 GList* files)
77 {
78 GList* pages = NULL;
7879 char* uri;
7980 char* local_file;
80 NautilusPropertyPage *real_page;
81 NautilusPropertyPage* real_page;
8182 NautilusFileInfo* file;
8283
8384 // Check that only one file has been selected
84 if (!files || files->next != NULL)
85 {
85 if (!files || files->next != NULL) {
8686 return NULL;
8787 }
8888 file = (NautilusFileInfo*)files->data;
8989
9090 // Get the uri from nautilus
91 uri = nautilus_file_info_get_uri (file);
92
93 if (uri == NULL)
94 {
91 uri = nautilus_file_info_get_uri(file);
92
93 if (uri == NULL) {
9594 return NULL;
9695 }
9796
9897 GFile* guri = g_file_new_for_uri(uri);
9998
10099 // and check that it is local
101 if (!g_file_has_uri_scheme(guri, "file"))
102 {
100 if (!g_file_has_uri_scheme(guri, "file")) {
103101 g_object_unref(guri);
104102 return NULL;
105103 }
109107 g_object_unref(guri);
110108
111109 // Well, some files are local but do not have a real file behind them
112 if (local_file == NULL)
113 {
110 if (local_file == NULL) {
114111 return NULL;
115112 }
116113
119116 Gtk::Main::init_gtkmm_internals();
120117
121118 // Now create the controller and the view
122 EicielMainController* main_controller = new EicielMainController();
123 EicielWindow* eiciel_window = Gtk::manage(new EicielWindow(main_controller));
119 EicielACLWindowController* main_controller = new EicielACLWindowController();
120 EicielACLWindow* eiciel_window = Gtk::manage(new EicielACLWindow(main_controller));
124121 // and open the file
125122 main_controller->open_file(std::string(local_file));
126123
127 if (!main_controller->opened_file())
128 {
124 if (!main_controller->opened_file()) {
129125 delete eiciel_window;
130 }
131 else
132 {
133 real_page = nautilus_property_page_new
134 ("EicielPropertyPage::property_page",
135 gtk_label_new (_("Access Control List")),
136 GTK_WIDGET(eiciel_window->gobj()));
137 pages = g_list_append (pages, real_page);
126 } else {
127 real_page = nautilus_property_page_new("EicielPropertyPage::property_page",
128 gtk_label_new(_("Access Control List")),
129 GTK_WIDGET(eiciel_window->gobj()));
130 pages = g_list_append(pages, real_page);
138131 }
139132
140133 // Likewise for user_xattr
144137
145138 xattr_controller->open_file(std::string(local_file));
146139
147 if (!xattr_controller->opened_file())
148 {
140 if (!xattr_controller->opened_file()) {
149141 delete xattr_window;
150 }
151 else
152 {
153 real_page = nautilus_property_page_new
154 ("EicielPropertyPage::property_page",
155 gtk_label_new (_("Extended user attributes")),
156 GTK_WIDGET(xattr_window->gobj()));
157 pages = g_list_append (pages, real_page);
142 } else {
143 real_page = nautilus_property_page_new("EicielPropertyPage::property_page",
144 gtk_label_new(_("Extended user attributes")),
145 GTK_WIDGET(xattr_window->gobj()));
146 pages = g_list_append(pages, real_page);
158147 }
159148 #endif
160
161149
162150 g_free(local_file);
163151
166154
167155 static GType nautilus_eiciel_type = 0;
168156
169 static void nautilus_eiciel_register_type (GTypeModule *module)
157 static void nautilus_eiciel_register_type(GTypeModule* module)
170158 {
171159 static const GTypeInfo info = {
172 sizeof (NautilusEicielPropertiesPageClass),
173 (GBaseInitFunc) NULL,
174 (GBaseFinalizeFunc) NULL,
175 (GClassInitFunc) NULL,
176 // (GClassInitFunc) nautilus_eiciel_properties_page_class_init,
177 NULL,
178 NULL,
179 sizeof (NautilusEicielPropertiesPage),
180 0,
181 (GInstanceInitFunc) NULL,
182 };
160 sizeof(NautilusEicielPropertiesPageClass),
161 (GBaseInitFunc)NULL,
162 (GBaseFinalizeFunc)NULL,
163 (GClassInitFunc)NULL,
164 // (GClassInitFunc) nautilus_eiciel_properties_page_class_init,
165 NULL,
166 NULL,
167 sizeof(NautilusEicielPropertiesPage),
168 0,
169 (GInstanceInitFunc)NULL,
170 };
183171
184172 static const GInterfaceInfo property_page_provider_iface_info = {
185 (GInterfaceInitFunc) nautilus_eiciel_property_page_provider_iface_init,
186 NULL,
187 NULL
173 (GInterfaceInitFunc)nautilus_eiciel_property_page_provider_iface_init,
174 NULL, NULL
188175 };
189
190 nautilus_eiciel_type = g_type_module_register_type (module,
191 G_TYPE_OBJECT,
192 "EicielNautilus",
193 &info, (GTypeFlags)0);
194 g_type_module_add_interface (module,
195 nautilus_eiciel_type,
196 NAUTILUS_TYPE_PROPERTY_PAGE_PROVIDER,
197 &property_page_provider_iface_info);
176
177 nautilus_eiciel_type = g_type_module_register_type(
178 module, G_TYPE_OBJECT, "EicielNautilus", &info, (GTypeFlags)0);
179 g_type_module_add_interface(module, nautilus_eiciel_type,
180 NAUTILUS_TYPE_PROPERTY_PAGE_PROVIDER,
181 &property_page_provider_iface_info);
198182 }
199183
200184 /*
201185 * Routines called by the Nautilus loader
202186 */
203 extern void nautilus_module_initialize (GTypeModule *module)
204 {
205 // g_print ("Initializing Eiciel property page\n");
187 extern void nautilus_module_initialize(GTypeModule* module)
188 {
189 g_print ("Initializing Eiciel property page\n");
206190 nautilus_eiciel_register_type(module);
207 // g_print ("Initialization done\n");
191 g_print ("Initialization done\n");
208192 #ifdef ENABLE_NLS
209193 setlocale(LC_ALL, "");
210194 bindtextdomain("eiciel", DATADIR "/locale");
211
195
212196 // We want translations in UTF-8, regardless
213197 // of the actual encoding used for translation
214 bind_textdomain_codeset ("eiciel", "UTF-8");
198 bind_textdomain_codeset("eiciel", "UTF-8");
215199 #endif
216200 }
217201
218202 /* Perform module-specific shutdown. */
219 extern void nautilus_module_shutdown (void)
220 {
221 // g_print ("Ending Eiciel property page\n");
203 extern void nautilus_module_shutdown(void)
204 {
205 g_print ("Ending Eiciel property page\n");
222206 }
223207
224208 /* List all the extension types. */
225 extern void nautilus_module_list_types (const GType **types,
226 int *num_types)
209 extern void nautilus_module_list_types(const GType** types, int* num_types)
227210 {
228211 static GType type_list[1];
229
212
230213 type_list[0] = nautilus_eiciel_type;
231214
232215 *types = type_list;
233216 *num_types = 1;
234217 }
235
00 /*
11 Eiciel - GNOME editor of ACL file permissions.
2 Copyright (C) 2004-2014 Roger Ferrer Ibáñez
2 Copyright (C) 2004-2019 Roger Ferrer Ibáñez
33
44 This program is free software; you can redistribute it and/or modify
55 it under the terms of the GNU General Public License as published by
1919 #ifndef EICIEL_NAUTILUS_PAGE_HPP
2020 #define EICIEL_NAUTILUS_PAGE_HPP
2121
22 #define NAUTILUS_TYPE_EICIEL_PROPERTIES_PAGE (nautilus_eiciel_properties_page_get_type ())
23 #define NAUTILUS_EICIEL_PROPERTIES_PAGE(obj) (GTK_CHECK_CAST ((obj), NAUTILUS_TYPE_EICIEL_PROPERTIES_PAGE, NautilusEicielPropertiesPage))
24 #define NAUTILUS_EICIEL_PROPERTIES_PAGE_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), NAUTILUS_TYPE_EICIEL_PROPERTIES_PAGE, NautilusEicielPropertiesPageClass))
25 #define NAUTILUS_IS_EICIEL_PROPERTIES_PAGE(obj) (GTK_CHECK_TYPE ((obj), NAUTILUS_TYPE_EICIEL_PROPERTIES_PAGE))
26 #define NAUTILUS_IS_EICIEL_PROPERTIES_PAGE_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), NAUTILUS_TYPE_EICIEL_PROPERTIES_PAGE))
22 #define NAUTILUS_TYPE_EICIEL_PROPERTIES_PAGE \
23 (nautilus_eiciel_properties_page_get_type())
24 #define NAUTILUS_EICIEL_PROPERTIES_PAGE(obj) \
25 (GTK_CHECK_CAST((obj), NAUTILUS_TYPE_EICIEL_PROPERTIES_PAGE, \
26 NautilusEicielPropertiesPage))
27 #define NAUTILUS_EICIEL_PROPERTIES_PAGE_CLASS(klass) \
28 (GTK_CHECK_CLASS_CAST((klass), NAUTILUS_TYPE_EICIEL_PROPERTIES_PAGE, \
29 NautilusEicielPropertiesPageClass))
30 #define NAUTILUS_IS_EICIEL_PROPERTIES_PAGE(obj) \
31 (GTK_CHECK_TYPE((obj), NAUTILUS_TYPE_EICIEL_PROPERTIES_PAGE))
32 #define NAUTILUS_IS_EICIEL_PROPERTIES_PAGE_CLASS(klass) \
33 (GTK_CHECK_CLASS_TYPE((klass), NAUTILUS_TYPE_EICIEL_PROPERTIES_PAGE))
2734
2835 G_BEGIN_DECLS
2936
30 typedef struct NautilusEicielPropertiesPageDetails NautilusEicielPropertiesPageDetails;
37 typedef struct NautilusEicielPropertiesPageDetails
38 NautilusEicielPropertiesPageDetails;
3139
3240 typedef struct {
3341 GtkVBox parent;
0 /*
1 Eiciel - GNOME editor of ACL file permissions.
2 Copyright (C) 2019 Roger Ferrer Ibáñez
3
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation; either version 2 of the License, or
7 (at your option) any later version.
8
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
13
14 You should have received a copy of the GNU General Public License
15 along with this program; if not, write to the Free Software
16 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
17 */
18 #include "eiciel_participant_list.hpp"
19 #include "eiciel_participant_list_controller.hpp"
20 #include "eiciel_participant_target.hpp"
21
22 // Constructor
23 EicielParticipantList::EicielParticipantList(EicielParticipantListController* cont)
24 : Gtk::Box(Gtk::ORIENTATION_VERTICAL)
25 ,
26 /* GUI */
27 _main_box(Gtk::ORIENTATION_VERTICAL)
28 , _participant_chooser()
29 , _rb_acl_user(_("User"))
30 , _rb_acl_group(_("Group"))
31 , _cb_acl_default(_("Default participant"))
32 , _filter_entry()
33 , _listview_participants_container()
34 , _listview_participants()
35 , _below_participant_list()
36 , _b_add_acl(_("Add participant to ACL"))
37 , _b_add_acl_directory(_("Add participant to directory ACL"))
38 , _b_add_acl_file(_("Add participant to file ACL"))
39 , _advanced_features_expander(_("Advanced features"))
40 , _advanced_features_box(Gtk::ORIENTATION_VERTICAL)
41 , _participant_entry_label(_("Name of participant"))
42 , _participant_entry_query_button(Gtk::Stock::FIND)
43 , _cb_show_system_participants(_("Also show system participants"))
44
45 /* Non GUI */
46 , _pending_filter_updates(0)
47 , _controller(cont) // Assign _controller to _window
48 {
49 _controller->set_view(this);
50
51 this->set_margin_top(12);
52 this->set_margin_bottom(12);
53 this->set_margin_start(12);
54 this->set_margin_end(12);
55
56 this->pack_start(_main_box);
57
58 _main_box.set_spacing(4);
59
60 // Open icons
61 _user_icon = Gdk::Pixbuf::create_from_file(PKGDATADIR "/img/user.png");
62 _user_icon_acl = Gdk::Pixbuf::create_from_file(PKGDATADIR "/img/user-acl.png");
63 _group_icon = Gdk::Pixbuf::create_from_file(PKGDATADIR "/img/group.png");
64 _group_icon_acl = Gdk::Pixbuf::create_from_file(PKGDATADIR "/img/group-acl.png");
65 _others_icon = Gdk::Pixbuf::create_from_file(PKGDATADIR "/img/others.png");
66 _mask_icon = Gdk::Pixbuf::create_from_file(PKGDATADIR "/img/mask.png");
67
68 _default_user_icon = Gdk::Pixbuf::create_from_file(PKGDATADIR "/img/user-default.png");
69 _default_group_icon = Gdk::Pixbuf::create_from_file(PKGDATADIR "/img/group-default.png");
70 _default_others_icon = Gdk::Pixbuf::create_from_file(PKGDATADIR "/img/others-default.png");
71 _default_user_icon_acl = Gdk::Pixbuf::create_from_file(PKGDATADIR "/img/user-acl-default.png");
72 _default_group_icon_acl = Gdk::Pixbuf::create_from_file(PKGDATADIR "/img/group-acl-default.png");
73 _default_mask_icon = Gdk::Pixbuf::create_from_file(PKGDATADIR "/img/mask-default.png");
74
75 // Group buttons of ACL kind
76 Gtk::RadioButton::Group ACLKind = _rb_acl_user.get_group();
77 _rb_acl_group.set_group(ACLKind);
78
79 _filter_entry.set_placeholder_text(_("Filter participants"));
80 _filter_entry.property_secondary_icon_name() = "gtk-clear";
81 _filter_entry.signal_changed().connect(
82 sigc::mem_fun(*this, &EicielParticipantList::filter_entry_text_changed));
83 _filter_entry.signal_icon_press().connect(
84 sigc::mem_fun(*this, &EicielParticipantList::on_clear_icon_pressed));
85 _filter_entry.set_margin_left(12);
86
87 // Row above the participants list
88 _participant_chooser.pack_start(_rb_acl_user, Gtk::PACK_SHRINK);
89 _participant_chooser.pack_start(_rb_acl_group, Gtk::PACK_SHRINK);
90 _participant_chooser.pack_start(_cb_acl_default, Gtk::PACK_SHRINK);
91 _participant_chooser.pack_end(_filter_entry, Gtk::PACK_SHRINK);
92
93 // Participants list
94 _ref_participants_list = Gtk::ListStore::create(_participant_list_model);
95 _ref_participants_list_filter = Gtk::TreeModelFilter::create(_ref_participants_list);
96 _ref_participants_list_filter->set_visible_func(
97 sigc::mem_fun(*this, &EicielParticipantList::filter_participant_row));
98
99 _listview_participants.set_headers_visible(false);
100 _listview_participants.set_reallocate_redraws();
101 _listview_participants.set_model(_ref_participants_list_filter);
102 _listview_participants.append_column("", _participant_list_model._icon);
103 _listview_participants.append_column(
104 _("Participant"), _participant_list_model._participant_name);
105
106 _listview_participants_container.add(_listview_participants);
107 _listview_participants_container.set_policy(Gtk::POLICY_NEVER,
108 Gtk::POLICY_AUTOMATIC);
109
110 _participant_entry_box.set_spacing(4);
111 _participant_entry_box.pack_start(_participant_entry_label, Gtk::PACK_SHRINK);
112 _participant_entry_box.pack_start(_participant_entry);
113 _participant_entry_box.pack_start(_participant_entry_query_button,
114 Gtk::PACK_SHRINK);
115
116 _participant_entry.signal_changed().connect(
117 sigc::mem_fun(*this, &EicielParticipantList::participant_entry_box_changed));
118 _participant_entry.signal_activate().connect(
119 sigc::mem_fun(*this, &EicielParticipantList::participant_entry_box_activate));
120 _participant_entry_query_button.set_sensitive(false);
121
122 _participant_entry_query_button.signal_clicked().connect(
123 sigc::mem_fun(*this, &EicielParticipantList::participant_entry_box_activate));
124
125 // Row below the participant list
126 _below_participant_list.set_spacing(4);
127 _below_participant_list.pack_end(_b_add_acl, Gtk::PACK_SHRINK);
128
129 _advanced_features_box.set_margin_left(12);
130 _advanced_features_box.set_margin_right(12);
131 _advanced_features_box.set_spacing(4);
132 _advanced_features_box.pack_start(_participant_entry_box, Gtk::PACK_SHRINK);
133 _advanced_features_box.pack_start(_cb_show_system_participants,
134 Gtk::PACK_SHRINK);
135 _advanced_features_expander.add(_advanced_features_box);
136
137 _advanced_features_expander.property_expanded().signal_changed().connect(
138 sigc::mem_fun(*this, &EicielParticipantList::advanced_features_box_expanded));
139
140 _main_box.pack_start(_participant_chooser, Gtk::PACK_SHRINK);
141 _main_box.pack_start(_listview_participants_container);
142 _main_box.pack_start(_below_participant_list, Gtk::PACK_SHRINK);
143 _main_box.pack_start(_advanced_features_expander, Gtk::PACK_SHRINK);
144
145 _cb_show_system_participants.signal_toggled().connect(
146 sigc::mem_fun(*this, &EicielParticipantList::toggle_system_show));
147
148 _listview_participants_container.set_size_request(-1, 100);
149 _listview_participants_container.set_shadow_type(Gtk::SHADOW_IN);
150
151 // Drag & Drop stuff
152 #ifdef USING_GNOME2
153 std::list<Gtk::TargetEntry> list_targets;
154 #else
155 std::vector<Gtk::TargetEntry> list_targets;
156 #endif
157 list_targets.push_back(Gtk::TargetEntry("participant_acl"));
158
159 // Participants selection change event
160 Glib::RefPtr<Gtk::TreeSelection> acl_list_participants_reference = _listview_participants.get_selection();
161 acl_list_participants_reference->signal_changed().connect(
162 sigc::mem_fun(*this, &EicielParticipantList::change_participant_selection));
163
164 // Double click in participants list
165 _listview_participants.signal_row_activated().connect(
166 sigc::bind<0>(
167 sigc::mem_fun(*this, &EicielParticipantList::participants_list_double_click),
168 AddParticipantTarget::ADD_PARTICIPANT));
169
170 // Add ACL button
171 _b_add_acl.signal_clicked().connect(
172 sigc::bind<0>(
173 sigc::mem_fun(*this, &EicielParticipantList::add_selected_participant),
174 AddParticipantTarget::ADD_PARTICIPANT));
175 _b_add_acl_directory.signal_clicked().connect(
176 sigc::bind<0>(
177 sigc::mem_fun(*this, &EicielParticipantList::add_selected_participant),
178 AddParticipantTarget::ADD_PARTICIPANT_TO_DIRECTORY));
179 _b_add_acl_file.signal_clicked().connect(
180 sigc::bind<0>(
181 sigc::mem_fun(*this, &EicielParticipantList::add_selected_participant),
182 AddParticipantTarget::ADD_PARTICIPANT_TO_FILE));
183
184 there_is_no_participant_selection();
185
186 _users_list = _controller->get_users_list();
187 _groups_list = _controller->get_groups_list();
188
189 _rb_acl_user.signal_clicked().connect(
190 sigc::bind<std::set<std::string>*, ElementKind, Glib::RefPtr<Gdk::Pixbuf>,
191 Glib::RefPtr<Gdk::Pixbuf>>(
192 sigc::mem_fun(*this, &EicielParticipantList::fill_participants), &_users_list,
193 EK_ACL_USER, _user_icon_acl, _default_user_icon_acl));
194
195 _rb_acl_group.signal_clicked().connect(
196 sigc::bind<std::set<std::string>*, ElementKind, Glib::RefPtr<Gdk::Pixbuf>,
197 Glib::RefPtr<Gdk::Pixbuf>>(
198 sigc::mem_fun(*this, &EicielParticipantList::fill_participants), &_groups_list,
199 EK_ACL_GROUP, _group_icon_acl, _default_group_icon_acl));
200
201 _cb_acl_default.signal_clicked().connect(
202 sigc::mem_fun(*this, &EicielParticipantList::change_participant_kind));
203
204 _rb_acl_user.set_active();
205 _rb_acl_user.clicked();
206
207 show_all();
208 }
209
210 EicielParticipantList::~EicielParticipantList() { }
211
212 void EicielParticipantList::change_participant_selection()
213 {
214 Glib::RefPtr<Gtk::TreeSelection> selection_list_reference = _listview_participants.get_selection();
215 Gtk::TreeModel::iterator iter = selection_list_reference->get_selected();
216 if (!iter) {
217 there_is_no_participant_selection();
218 } else {
219 if (_cb_acl_default.get_active()) {
220 there_is_participant_selection_default();
221 } else {
222 there_is_participant_selection();
223 }
224 }
225 }
226
227 void EicielParticipantList::add_selected_participant(AddParticipantTarget target)
228 {
229 Glib::RefPtr<Gtk::TreeSelection> selection_list_reference = _listview_participants.get_selection();
230 Gtk::TreeModel::iterator iter = selection_list_reference->get_selected();
231 if (iter) {
232 Gtk::TreeModel::Row row(*iter);
233 _controller->add_acl_entry(
234 target,
235 Glib::ustring(row[_participant_list_model._participant_name]),
236 ElementKind(row[_participant_list_model._entry_kind]),
237 _cb_acl_default.get_active());
238 }
239 }
240
241 void EicielParticipantList::there_is_no_participant_selection()
242 {
243 _b_add_acl.set_sensitive(false);
244 _b_add_acl_directory.set_sensitive(false);
245 _b_add_acl_file.set_sensitive(false);
246 }
247
248 void EicielParticipantList::there_is_participant_selection()
249 {
250 _b_add_acl.set_sensitive(true);
251 _b_add_acl_directory.set_sensitive(true);
252 _b_add_acl_file.set_sensitive(true);
253 }
254
255 void EicielParticipantList::there_is_participant_selection_default()
256 {
257 _b_add_acl.set_sensitive(true);
258 _b_add_acl_directory.set_sensitive(true);
259 _b_add_acl_file.set_sensitive(false);
260 }
261
262 Glib::RefPtr<Gdk::Pixbuf> EicielParticipantList::get_proper_icon(ElementKind e)
263 {
264 switch (e) {
265 case EK_USER:
266 return _user_icon;
267 case EK_GROUP:
268 return _group_icon;
269 case EK_OTHERS:
270 return _others_icon;
271 case EK_MASK:
272 return _mask_icon;
273 case EK_ACL_USER:
274 return _user_icon_acl;
275 case EK_ACL_GROUP:
276 return _group_icon_acl;
277 case EK_DEFAULT_USER:
278 return _default_user_icon;
279 case EK_DEFAULT_GROUP:
280 return _default_group_icon;
281 case EK_DEFAULT_OTHERS:
282 return _default_others_icon;
283 case EK_DEFAULT_ACL_USER:
284 return _default_user_icon_acl;
285 case EK_DEFAULT_ACL_GROUP:
286 return _default_group_icon_acl;
287 case EK_DEFAULT_MASK:
288 return _default_mask_icon;
289 default:
290 return _others_icon;
291 }
292 }
293
294 void EicielParticipantList::fill_participants(std::set<std::string>* participants,
295 ElementKind kind,
296 Glib::RefPtr<Gdk::Pixbuf> normal_icon,
297 Glib::RefPtr<Gdk::Pixbuf> default_icon)
298 {
299 _ref_participants_list->clear();
300 Gtk::TreeModel::iterator iter;
301
302 bool enable_by_default = _cb_acl_default.get_active();
303
304 for (std::set<std::string>::iterator i = participants->begin();
305 i != participants->end(); i++) {
306 iter = _ref_participants_list->append();
307 Gtk::TreeModel::Row row(*iter);
308 row[_participant_list_model._icon] = enable_by_default ? default_icon : normal_icon;
309 row[_participant_list_model._participant_name] = *i;
310 row[_participant_list_model._entry_kind] = kind;
311 }
312 }
313
314 void EicielParticipantList::participants_list_double_click(AddParticipantTarget target,
315 const Gtk::TreeModel::Path& p,
316 Gtk::TreeViewColumn* c)
317 {
318 if (_mode != MAIN_EDITOR)
319 return;
320
321 Glib::RefPtr<Gtk::TreeModel> list_model = _listview_participants.get_model();
322 Gtk::TreeModel::iterator iter = list_model->get_iter(p);
323
324 if (iter) {
325 Gtk::TreeModel::Row row(*iter);
326 _controller->add_acl_entry(
327 target,
328 Glib::ustring(row[_participant_list_model._participant_name]),
329 ElementKind(row[_participant_list_model._entry_kind]),
330 _cb_acl_default.get_active());
331 }
332 }
333
334 bool EicielParticipantList::enable_participant(const std::string& participant_name)
335 {
336 Glib::RefPtr<Gtk::TreeModel> list_model = _listview_participants.get_model();
337 Gtk::TreeModel::Children children = list_model->children();
338 bool found = false;
339
340 for (Gtk::TreeModel::Children::iterator iter = children.begin();
341 (iter != children.end()) && !found; ++iter) {
342 Gtk::TreeModel::Row row(*iter);
343 if (row[_participant_list_model._participant_name] == participant_name) {
344 found = true;
345 Gtk::TreePath p = list_model->get_path(iter);
346 _listview_participants.set_cursor(p);
347 _listview_participants.scroll_to_row(p, 0.5);
348 _listview_participants.grab_focus();
349 }
350 }
351
352 return found;
353 }
354
355 void EicielParticipantList::change_participant_kind()
356 {
357 Glib::RefPtr<Gtk::TreeModel> list_model = _listview_participants.get_model();
358
359 Gtk::TreeModel::Children children = list_model->children();
360
361 bool enable_default = _cb_acl_default.get_active();
362
363 for (Gtk::TreeModel::Children::iterator iter = children.begin();
364 iter != children.end(); ++iter) {
365 Gtk::TreeModel::Row row(*iter);
366 if (_rb_acl_user.get_active()) {
367 row[_participant_list_model._icon] = enable_default ? _default_user_icon_acl : _user_icon_acl;
368 } else {
369 row[_participant_list_model._icon] = enable_default ? _default_group_icon_acl : _group_icon_acl;
370 }
371 }
372
373 change_participant_selection();
374 }
375
376 void EicielParticipantList::toggle_system_show()
377 {
378 _controller->show_system_participants(
379 _cb_show_system_participants.get_active());
380 _users_list = _controller->get_users_list();
381 _groups_list = _controller->get_groups_list();
382
383 // Force the event without having to know the exact list kind
384 if (_rb_acl_user.get_active())
385 _rb_acl_user.clicked();
386
387 if (_rb_acl_group.get_active())
388 _rb_acl_group.clicked();
389 }
390
391 void EicielParticipantList::participant_entry_box_activate()
392 {
393 bool participant_exists = false;
394
395 participant_exists = enable_participant(_participant_entry.get_text());
396
397 if (!participant_exists) {
398 // Request for an explicit query in the system database
399 if (_rb_acl_user.get_active()) {
400 participant_exists = _controller->lookup_user(_participant_entry.get_text());
401 if (participant_exists) {
402 _users_list.insert(_participant_entry.get_text());
403 _rb_acl_user.clicked();
404 enable_participant(_participant_entry.get_text());
405 }
406 }
407
408 if (_rb_acl_group.get_active()) {
409 participant_exists = _controller->lookup_group(_participant_entry.get_text());
410 if (participant_exists) {
411 _groups_list.insert(_participant_entry.get_text());
412 _rb_acl_group.clicked();
413 enable_participant(_participant_entry.get_text());
414 }
415 }
416 }
417
418 if (!participant_exists) {
419 _participant_entry.set_icon_from_stock(Gtk::Stock::DIALOG_ERROR);
420 _participant_entry.set_icon_activatable(false);
421 _participant_entry.set_icon_tooltip_text(_("Participant not found"));
422 } else {
423 _participant_entry.set_icon_from_pixbuf(Glib::RefPtr<Gdk::Pixbuf>(NULL));
424 }
425 }
426
427 void EicielParticipantList::participant_entry_box_changed()
428 {
429 _participant_entry_query_button.set_sensitive(
430 _participant_entry.get_text_length() != 0);
431 }
432
433 bool EicielParticipantList::refilter()
434 {
435 if (g_atomic_int_dec_and_test(&_pending_filter_updates)) {
436 _ref_participants_list_filter->refilter();
437 }
438 return false;
439 }
440
441 void EicielParticipantList::on_clear_icon_pressed(Gtk::EntryIconPosition icon_position,
442 const GdkEventButton* event)
443 {
444 _filter_entry.set_text("");
445 }
446
447 void EicielParticipantList::filter_entry_text_changed()
448 {
449 // wait filter_delay ms after each change to filter
450 static const unsigned filter_delay = 500;
451
452 g_atomic_int_inc(&_pending_filter_updates);
453 Glib::signal_timeout().connect(sigc::mem_fun(*this, &EicielParticipantList::refilter),
454 filter_delay);
455 }
456
457 bool EicielParticipantList::filter_participant_row(
458 const Gtk::TreeModel::const_iterator& iter)
459 {
460 Glib::ustring filter_text = _filter_entry.get_text();
461 if (!filter_text.empty()) {
462 Glib::ustring current_text = (*iter)[_participant_list_model._participant_name];
463 // check if current row text contains filter_text
464 return current_text.find(filter_text) != Glib::ustring::npos;
465 }
466 return true;
467 }
468
469 void EicielParticipantList::set_readonly(bool b)
470 {
471 this->set_sensitive(!b);
472 }
473
474 void EicielParticipantList::can_edit_default_acl(bool b)
475 {
476 _cb_acl_default.set_sensitive(b);
477 }
478
479 void EicielParticipantList::set_mode(ParticipantListActionMode mode)
480 {
481 if (mode == _mode)
482 return;
483
484 switch (mode) {
485 default:
486 // TODO: at least print a warning if crashing nautilus is not an option
487 return;
488 case ENCLOSED_FILES_EDITOR:
489 _below_participant_list.remove(_b_add_acl);
490 _below_participant_list.pack_end(_b_add_acl_file, Gtk::PACK_SHRINK);
491 _below_participant_list.pack_end(_b_add_acl_directory, Gtk::PACK_SHRINK);
492 break;
493 case MAIN_EDITOR:
494 _below_participant_list.remove(_b_add_acl_directory);
495 _below_participant_list.remove(_b_add_acl_file);
496 _below_participant_list.pack_end(_b_add_acl);
497 break;
498 }
499
500 _mode = mode;
501 }
502
503 void EicielParticipantList::advanced_features_box_expanded()
504 {
505 // This is a workaround for a weird behaviour observed with the expander
506 // in which the hidden components are still sensitive once the expander
507 // is folded. Hiding all the widgets manually seems to fix this.
508 if (!_advanced_features_expander.get_expanded()) {
509 _advanced_features_box.foreach([](Gtk::Widget& w) { w.hide(); });
510 } else {
511 _advanced_features_box.show_all();
512 }
513 }
0 /*
1 Eiciel - GNOME editor of ACL file permissions.
2 Copyright (C) 2019 Roger Ferrer Ibáñez
3
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation; either version 2 of the License, or
7 (at your option) any later version.
8
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
13
14 You should have received a copy of the GNU General Public License
15 along with this program; if not, write to the Free Software
16 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
17 */
18 #ifndef EICIEL_PARTICIPANT_LIST_HPP
19 #define EICIEL_PARTICIPANT_LIST_HPP
20
21 #include "acl_element_kind.hpp"
22 #include "acl_list.hpp"
23 #include "eiciel_participant_target.hpp"
24 #include "participant_list.hpp"
25 #include <config.hpp>
26 #include <glib/gi18n-lib.h>
27 #include <gtkmm.h>
28 #include <set>
29 #include <string>
30
31 class EicielParticipantListController;
32
33 class EicielParticipantList : public Gtk::Box {
34 public:
35 EicielParticipantList(EicielParticipantListController* cont);
36 virtual ~EicielParticipantList();
37
38 enum ParticipantListActionMode
39 {
40 MAIN_EDITOR = 0,
41 ENCLOSED_FILES_EDITOR
42 };
43
44 // FIXME: could this be a parameter in the constructor instead?
45 void set_mode(ParticipantListActionMode mode);
46
47 private:
48 /* GUI components */
49 /* |- */ Gtk::Box _main_box;
50 /* |- */ Gtk::Box _participant_chooser;
51 /* | |- */ Gtk::RadioButton _rb_acl_user;
52 /* | |- */ Gtk::RadioButton _rb_acl_group;
53 /* | |- */ Gtk::CheckButton _cb_acl_default;
54 /* | |- */ Gtk::Entry _filter_entry;
55 /* |- */ Gtk::ScrolledWindow _listview_participants_container;
56 /* | |- */ Gtk::TreeView _listview_participants;
57 /* |- */ Gtk::Box _below_participant_list;
58 /* | |- */ Gtk::Button _b_add_acl;
59 /* | |- */ Gtk::Button _b_add_acl_directory;
60 /* | |- */ Gtk::Button _b_add_acl_file;
61 /* |- */ Gtk::Expander _advanced_features_expander;
62 /* |- */ Gtk::Box _advanced_features_box;
63 /* |- */ Gtk::Box _participant_entry_box;
64 /* | |- */ Gtk::Label _participant_entry_label;
65 /* | |- */ Gtk::Entry _participant_entry;
66 /* | |- */ Gtk::Button _participant_entry_query_button;
67 /* |- */ Gtk::CheckButton _cb_show_system_participants;
68
69 /* Non GUI */
70 Glib::RefPtr<Gdk::Pixbuf> _user_icon;
71 Glib::RefPtr<Gdk::Pixbuf> _group_icon;
72 Glib::RefPtr<Gdk::Pixbuf> _others_icon;
73 Glib::RefPtr<Gdk::Pixbuf> _mask_icon;
74
75 Glib::RefPtr<Gdk::Pixbuf> _user_icon_acl;
76 Glib::RefPtr<Gdk::Pixbuf> _group_icon_acl;
77
78 Glib::RefPtr<Gdk::Pixbuf> _default_user_icon;
79 Glib::RefPtr<Gdk::Pixbuf> _default_group_icon;
80 Glib::RefPtr<Gdk::Pixbuf> _default_others_icon;
81 Glib::RefPtr<Gdk::Pixbuf> _default_user_icon_acl;
82 Glib::RefPtr<Gdk::Pixbuf> _default_group_icon_acl;
83 Glib::RefPtr<Gdk::Pixbuf> _default_mask_icon;
84
85 Glib::RefPtr<Gtk::ListStore> _ref_participants_list;
86 Glib::RefPtr<Gtk::TreeModelFilter> _ref_participants_list_filter;
87
88 ParticipantListModel _participant_list_model;
89
90 int _pending_filter_updates;
91
92 EicielParticipantListController* _controller;
93
94 std::set<std::string> _users_list;
95 std::set<std::string> _groups_list;
96
97 ParticipantListActionMode _mode;
98
99 void toggle_system_show();
100
101 void change_participant_selection();
102 void there_is_participant_selection();
103 void there_is_participant_selection_default();
104 void there_is_no_participant_selection();
105 Glib::RefPtr<Gdk::Pixbuf> get_proper_icon(ElementKind e);
106 void add_element(Glib::ustring title,
107 bool reading,
108 bool writing,
109 bool execution,
110 ElementKind e,
111 Gtk::TreeModel::Row& row);
112 void add_selected_participant(AddParticipantTarget target);
113 void change_permissions(const Glib::ustring& str, PermissionKind p);
114
115 void fill_participants(std::set<std::string>* participants,
116 ElementKind kind,
117 Glib::RefPtr<Gdk::Pixbuf> normal_icon,
118 Glib::RefPtr<Gdk::Pixbuf> default_icon);
119
120 void participants_list_double_click(
121 AddParticipantTarget target,
122 const Gtk::TreeModel::Path& p,
123 Gtk::TreeViewColumn* c);
124
125 void change_participant_kind();
126
127 bool refilter();
128 void on_clear_icon_pressed(Gtk::EntryIconPosition icon_position,
129 const GdkEventButton* event);
130 void filter_entry_text_changed();
131 bool filter_participant_row(const Gtk::TreeModel::const_iterator&);
132
133 void participant_entry_box_changed();
134 void participant_entry_box_activate();
135
136 bool enable_participant(const std::string& participant_name);
137
138 void set_readonly(bool b);
139 void can_edit_default_acl(bool b);
140
141 void advanced_features_box_expanded();
142
143 friend class EicielParticipantListController;
144 };
145
146 #endif
0 /*
1 Eiciel - GNOME editor of Participant file permissions.
2 Copyright (C) 2019 Roger Ferrer Ibáñez
3
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation; either version 2 of the License, or
7 (at your option) any later version.
8
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
13
14 You should have received a copy of the GNU General Public License
15 along with this program; if not, write to the Free Software
16 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
17 */
18
19 #include "eiciel_participant_list_controller.hpp"
20 #include "eiciel_participant_list.hpp"
21 #include <grp.h>
22 #include <pwd.h>
23
24 EicielParticipantListController::EicielParticipantListController()
25 : _list_must_be_updated(true), _show_system(false)
26 {
27 fill_lists();
28 }
29
30 EicielParticipantListController::~EicielParticipantListController() {}
31
32 void EicielParticipantListController::can_edit_default_acl(bool b)
33 {
34 _view->can_edit_default_acl(b);
35 }
36
37 void EicielParticipantListController::set_readonly(bool b)
38 {
39 _view->set_readonly(b);
40 }
41
42 void EicielParticipantListController::set_active(bool b)
43 {
44 set_readonly(!b);
45 }
46
47 void EicielParticipantListController::fill_lists()
48 {
49 if (!_list_must_be_updated)
50 return;
51
52 // Create the list of users
53 _users_list.clear();
54 struct passwd* u;
55 setpwent();
56 while ((u = getpwent()) != NULL) {
57 if (_show_system || (u->pw_uid >= 1000)) {
58 _users_list.insert(u->pw_name);
59 }
60 }
61 endpwent();
62
63 // Create the list of groups
64 _groups_list.clear();
65 struct group* g;
66 setgrent();
67 while ((g = getgrent()) != NULL) {
68 if (_show_system || (g->gr_gid >= 1000)) {
69 _groups_list.insert(g->gr_name);
70 }
71 }
72 endgrent();
73
74 _list_must_be_updated = false;
75 }
76
77 std::set<std::string> EicielParticipantListController::get_users_list()
78 {
79 fill_lists();
80 return _users_list;
81 }
82
83 std::set<std::string> EicielParticipantListController::get_groups_list()
84 {
85 fill_lists();
86 return _groups_list;
87 }
88
89 void EicielParticipantListController::show_system_participants(bool b)
90 {
91 if (b != _show_system) {
92 _show_system = b;
93 _list_must_be_updated = true;
94 }
95 }
96
97 bool EicielParticipantListController::lookup_user(const std::string& str)
98 {
99 struct passwd* p = getpwnam(str.c_str());
100 return (p != NULL);
101 }
102
103 bool EicielParticipantListController::lookup_group(const std::string& str)
104 {
105 struct group* g = getgrnam(str.c_str());
106 return (g != NULL);
107 }
108
0 /*
1 Eiciel - GNOME editor of Participant file permissions.
2 Copyright (C) 2019 Roger Ferrer Ibáñez
3
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation; either version 2 of the License, or
7 (at your option) any later version.
8
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
13
14 You should have received a copy of the GNU General Public License
15 along with this program; if not, write to the Free Software
16 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
17 */
18
19 #ifndef EICIEL_PARTICIPANT_LIST_CONTROLLER_HPP
20 #define EICIEL_PARTICIPANT_LIST_CONTROLLER_HPP
21
22 #include "acl_element_kind.hpp"
23 #include "eiciel_participant_target.hpp"
24 #include <set>
25 #include <string>
26
27 class EicielParticipantList;
28
29 class EicielParticipantListController {
30 public:
31
32 EicielParticipantListController();
33 virtual ~EicielParticipantListController();
34
35 void set_readonly(bool b);
36 void set_active(bool b);
37 void can_edit_default_acl(bool b);
38
39 std::set<std::string> get_users_list();
40 std::set<std::string> get_groups_list();
41
42 void show_system_participants(bool b);
43
44 bool lookup_user(const std::string& str);
45 bool lookup_group(const std::string& str);
46
47 void set_view(EicielParticipantList* view) { _view = view; }
48
49 // Events
50 virtual void add_acl_entry(AddParticipantTarget target, const std::string& s, ElementKind e, bool is_default) = 0;
51
52 private:
53 bool _list_must_be_updated;
54 bool _show_system;
55 std::set<std::string> _users_list;
56 std::set<std::string> _groups_list;
57
58 EicielParticipantList* _view;
59
60 void fill_lists();
61 };
62
63 #endif
64
00 /*
11 Eiciel - GNOME editor of ACL file permissions.
2 Copyright (C) 2004-2014 Roger Ferrer Ibáñez
2 Copyright (C) 2004-2019 Roger Ferrer Ibáñez
33
44 This program is free software; you can redistribute it and/or modify
55 it under the terms of the GNU General Public License as published by
3030 textdomain("eiciel");
3131
3232 // We want translations in UTF-8
33 bind_textdomain_codeset ("eiciel", "UTF-8");
33 bind_textdomain_codeset("eiciel", "UTF-8");
3434 #endif
3535 #ifdef USING_GNOME2
36 GnomeProgram *my_app;
37 my_app = gnome_program_init(PACKAGE, VERSION,
38 LIBGNOME_MODULE, argc, argv,
39 GNOME_PARAM_HUMAN_READABLE_NAME, "Eiciel",
40 GNOME_PARAM_APP_DATADIR, DATADIR,
41 NULL);
36 GnomeProgram* my_app;
37 my_app = gnome_program_init(PACKAGE, VERSION, LIBGNOME_MODULE, argc, argv,
38 GNOME_PARAM_HUMAN_READABLE_NAME, "Eiciel",
39 GNOME_PARAM_APP_DATADIR, DATADIR, NULL);
4240 #else
4341 bool version_called = false;
4442 Glib::OptionEntry version_entry;
5452 oc.set_main_group(main_group);
5553 oc.add_group(gtk_group);
5654 oc.parse(argc, argv);
57 if (version_called)
58 {
55 if (version_called) {
5956 std::cerr << "GNOME " PACKAGE " " VERSION << std::endl;
6057 return 0;
6158 }
6562
6663 EicielContainer w;
6764
68 if (argc > 1)
69 {
65 if (argc > 1) {
7066 w.open_file(argv[1]);
7167 }
7268
7470
7571 return 0;
7672 }
77
00 /*
11 Eiciel - GNOME editor of ACL file permissions.
2 Copyright (C) 2004-2014 Roger Ferrer Ibáñez
2 Copyright (C) 2004-2019 Roger Ferrer Ibáñez
33
44 This program is free software; you can redistribute it and/or modify
55 it under the terms of the GNU General Public License as published by
1919 #include "eiciel_xattr_controller.hpp"
2020
2121 EicielXAttrController::EicielXAttrController()
22 : _xattr_manager(NULL), _window(NULL), _opened_file(false)
22 : _xattr_manager(NULL)
23 , _window(NULL)
24 , _opened_file(false)
2325 {
2426 }
2527
26 void EicielXAttrController::open_file(const Glib::ustring& filename) throw (XAttrManagerException)
28 void EicielXAttrController::open_file(const Glib::ustring& filename)
2729 {
28 if (_xattr_manager != NULL)
29 {
30 if (_xattr_manager != NULL) {
3031 delete _xattr_manager;
3132 _xattr_manager = NULL;
3233 }
3334
34 try
35 {
35 try {
3636 _xattr_manager = new XAttrManager(filename);
3737 _opened_file = true;
3838
39 _window->set_active(true);
39 set_active(true);
4040
4141 check_editable();
4242
4343 _window->fill_attributes(_xattr_manager->get_attributes_list());
44 }
45 catch (XAttrManagerException e)
46 {
44 } catch (XAttrManagerException e) {
4745 delete _xattr_manager;
4846 _xattr_manager = NULL;
4947 _opened_file = false;
50 _window->set_active(false);
48 set_active(false);
5149 }
5250 }
5351
54 void EicielXAttrController::remove_attribute(const Glib::ustring& nomAtrib) throw (XAttrManagerException)
52 void EicielXAttrController::remove_attribute(const Glib::ustring& attrib_name)
5553 {
56 _xattr_manager->remove_attribute(nomAtrib);
54 _xattr_manager->remove_attribute(attrib_name);
5755 }
5856
59 void EicielXAttrController::add_attribute(const Glib::ustring& nomAtrib, const Glib::ustring& valorAtrib) throw (XAttrManagerException)
57 void EicielXAttrController::add_attribute(
58 const Glib::ustring& attrib_name,
59 const Glib::ustring& attrib_value)
6060 {
61 _xattr_manager->add_attribute(nomAtrib, valorAtrib);
61 _xattr_manager->add_attribute(attrib_name, attrib_value);
6262 }
6363
64 void EicielXAttrController::update_attribute_value(const Glib::ustring& nomAtrib, const Glib::ustring& valorNouAtrib) throw (XAttrManagerException)
64 void EicielXAttrController::update_attribute_value(
65 const Glib::ustring& attrib_name,
66 const Glib::ustring& attrib_new_value)
6567 {
66 _xattr_manager->add_attribute(nomAtrib, valorNouAtrib);
68 _xattr_manager->add_attribute(attrib_name, attrib_new_value);
6769 }
6870
69 void EicielXAttrController::update_attribute_name(const Glib::ustring& nomAnticAtribut, const Glib::ustring& nomNouAtribut) throw (XAttrManagerException)
71 void EicielXAttrController::update_attribute_name(
72 const Glib::ustring& old_attribute_name,
73 const Glib::ustring& new_attribute_name)
7074 {
71 _xattr_manager->change_attribute_name(nomAnticAtribut, nomNouAtribut);
75 _xattr_manager->change_attribute_name(old_attribute_name, new_attribute_name);
7276 }
7377
7478 void EicielXAttrController::check_editable()
7579 {
76 /*
77 * Comprovem que es el propietari o root
78 */
80 // Check that it is the owner or root.
7981 uid_t real_user = getuid();
80 if ((real_user != 0) && (real_user != _xattr_manager->get_owner_uid()))
81 {
82 if ((real_user != 0) && (real_user != _xattr_manager->get_owner_uid())) {
8283 _window->set_readonly(true);
83 }
84 else
85 {
84 } else {
8685 _window->set_readonly(false);
8786 }
88
8987 }
88
89 void EicielXAttrController::set_active(bool b)
90 {
91 _window->set_active(b);
92 }
00 /*
11 Eiciel - GNOME editor of ACL file permissions.
2 Copyright (C) 2004-2014 Roger Ferrer Ibáñez
2 Copyright (C) 2004-2019 Roger Ferrer Ibáñez
33
44 This program is free software; you can redistribute it and/or modify
55 it under the terms of the GNU General Public License as published by
1818 #ifndef EICIEL_XATTR_CONTROLER_HPP
1919 #define EICIEL_XATTR_CONTROLER_HPP
2020
21 #include <sys/types.h>
2221 #include "eiciel_xattr_window.hpp"
2322 #include "xattr_manager.hpp"
23 #include <sys/types.h>
2424
2525 class EicielXAttrWindow;
2626
27 class EicielXAttrController : public sigc::trackable
28 {
29 private:
30 XAttrManager* _xattr_manager;
31 EicielXAttrWindow* _window;
32 bool _opened_file;
27 class EicielXAttrController : public sigc::trackable {
28 private:
29 XAttrManager* _xattr_manager;
30 EicielXAttrWindow* _window;
31 bool _opened_file;
3332
34 void remove_attribute(const Glib::ustring& attrib_name) throw (XAttrManagerException);
33 void remove_attribute(const Glib::ustring& attrib_name);
3534
36 void add_attribute(const Glib::ustring& attrib_name,
37 const Glib::ustring& attrib_value) throw (XAttrManagerException);
38 void update_attribute_value(const Glib::ustring& attrib_name,
39 const Glib::ustring& attrib_new_value) throw (XAttrManagerException) ;
40 void update_attribute_name(const Glib::ustring& old_attribute_name,
41 const Glib::ustring& new_attribute_name) throw (XAttrManagerException);
35 void add_attribute(
36 const Glib::ustring& attrib_name,
37 const Glib::ustring& attrib_value);
38 void update_attribute_value(
39 const Glib::ustring& attrib_name,
40 const Glib::ustring& attrib_new_value);
41 void update_attribute_name(
42 const Glib::ustring& old_attribute_name,
43 const Glib::ustring& new_attribute_name);
4244
43 void check_editable();
44 public:
45 EicielXAttrController();
46 bool opened_file() { return _opened_file; };
45 void check_editable();
4746
48 void open_file(const Glib::ustring& filename) throw (XAttrManagerException);
47 public:
48 EicielXAttrController();
49 bool opened_file() { return _opened_file; };
4950
50 friend class EicielXAttrWindow;
51 }
52 ;
51 void open_file(const Glib::ustring& filename);
52
53 void set_active(bool b);
54
55 friend class EicielXAttrWindow;
56 };
5357
5458 #endif
00 /*
11 Eiciel - GNOME editor of ACL file permissions.
2 Copyright (C) 2004-2014 Roger Ferrer Ibáñez
2 Copyright (C) 2004-2019 Roger Ferrer Ibáñez
33
44 This program is free software; you can redistribute it and/or modify
55 it under the terms of the GNU General Public License as published by
1919 #include "eiciel_xattr_window.hpp"
2020
2121 EicielXAttrWindow::EicielXAttrWindow(EicielXAttrController* contr)
22 : _controller(contr),
23 _b_add_attribute(Gtk::Stock::ADD),
24 _b_remove_attribute(Gtk::Stock::REMOVE)
22 : _controller(contr)
23 , _b_add_attribute(Gtk::Stock::ADD)
24 , _b_remove_attribute(Gtk::Stock::REMOVE)
2525 {
2626 _ref_xattr_list = Gtk::ListStore::create(_xattr_list_model);
2727
2929
3030 set_border_width(4);
3131
32 _ref_xattr_list->set_sort_column(_xattr_list_model._attribute_name, Gtk::SORT_ASCENDING);
32 _ref_xattr_list->set_sort_column(_xattr_list_model._attribute_name,
33 Gtk::SORT_ASCENDING);
3334
3435 _xattr_listview.set_reallocate_redraws();
3536 _xattr_listview.set_model(_ref_xattr_list);
4849 cellRendererText->property_editable() = true;
4950
5051 cellRendererText->signal_edited().connect(
51 sigc::mem_fun(*this, &EicielXAttrWindow::set_name_edited_attribute)
52 );
53
54 _xattr_listview.append_column_editable(_("Value"), _xattr_list_model._attribute_value);
52 sigc::mem_fun(*this, &EicielXAttrWindow::set_name_edited_attribute));
53
54 _xattr_listview.append_column_editable(_("Value"),
55 _xattr_list_model._attribute_value);
5556
5657 col = _xattr_listview.get_column(1);
5758 #ifdef USING_GNOME2
6364 cellRendererText->property_editable() = true;
6465
6566 cellRendererText->signal_edited().connect(
66 sigc::mem_fun(*this, &EicielXAttrWindow::set_value_edited_attribute)
67 );
67 sigc::mem_fun(*this, &EicielXAttrWindow::set_value_edited_attribute));
6868
6969 _xattr_listview_container.set_size_request(-1, 100);
7070 _xattr_listview_container.add(_xattr_listview);
71 _xattr_listview_container.set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC);
71 _xattr_listview_container.set_policy(Gtk::POLICY_AUTOMATIC,
72 Gtk::POLICY_AUTOMATIC);
7273
7374 pack_start(_xattr_listview_container, Gtk::PACK_EXPAND_WIDGET, 2);
7475
8283
8384 // Selection change in XAttr
8485 referenciaSeleccioLlistaXAttr->signal_changed().connect(
85 sigc::mem_fun(*this, &EicielXAttrWindow::_xattr_selection_change)
86 );
86 sigc::mem_fun(*this, &EicielXAttrWindow::_xattr_selection_change));
8787
8888 // Remove button
8989 _b_remove_attribute.signal_clicked().connect(
90 sigc::mem_fun(*this, &EicielXAttrWindow::remove_selected_attribute)
91 );
92
90 sigc::mem_fun(*this, &EicielXAttrWindow::remove_selected_attribute));
91
9392 // Edit button
9493 _b_add_attribute.signal_clicked().connect(
95 sigc::mem_fun(*this, &EicielXAttrWindow::add_selected_attribute)
96 );
94 sigc::mem_fun(*this, &EicielXAttrWindow::add_selected_attribute));
9795
9896 show_all();
99
100 set_active(false);
10197 }
10298
10399 void EicielXAttrWindow::set_active(bool b)
114110 {
115111 Glib::RefPtr<Gtk::TreeSelection> referenciaSeleccioLlista = _xattr_listview.get_selection();
116112 Gtk::TreeModel::iterator iter = referenciaSeleccioLlista->get_selected();
117 if (!iter)
118 {
113 if (!iter) {
119114 there_is_no_xattr_selection();
120 }
121 else
122 {
115 } else {
123116 there_is_xattr_selection();
124117 }
125118 }
131124
132125 void EicielXAttrWindow::there_is_xattr_selection()
133126 {
134 if (!this->_readonly)
135 {
127 if (!this->_readonly) {
136128 _b_remove_attribute.set_sensitive(true);
137129 }
138130 }
139131
140 void EicielXAttrWindow::set_name_edited_attribute(const Glib::ustring& path, const Glib::ustring& value)
132 void EicielXAttrWindow::set_name_edited_attribute(const Glib::ustring& path,
133 const Glib::ustring& value)
141134 {
142135 Gtk::TreeModel::iterator iter = _ref_xattr_list->get_iter(path);
143136
144 if (iter)
145 {
137 if (iter) {
146138 Gtk::TreeModel::Row row(*iter);
147139
148140 // Can't be empty
149 if (value.empty())
150 {
141 if (value.empty()) {
151142 return;
152143 }
153144
154145 // We do not allow repeated
155146 Gtk::TreeModel::Children children = _ref_xattr_list->children();
156147
157 for(Gtk::TreeModel::Children::iterator iter = children.begin();
158 iter != children.end(); ++iter)
159 {
148 for (Gtk::TreeModel::Children::iterator iter = children.begin();
149 iter != children.end(); ++iter) {
160150 Gtk::TreeModel::Row irow(*iter);
161151
162 if (irow[_xattr_list_model._attribute_name] == value)
163 {
152 if (irow[_xattr_list_model._attribute_name] == value) {
164153 return;
165154 }
166155 }
167156
168 try
169 {
170 _controller->update_attribute_name(row[_xattr_list_model._attribute_name], value);
157 try {
158 _controller->update_attribute_name(row[_xattr_list_model._attribute_name],
159 value);
171160 row[_xattr_list_model._attribute_name] = value;
172 }
173 catch (XAttrManagerException e)
174 {
161 } catch (XAttrManagerException e) {
175162 Glib::ustring s = _("Could not rename attribute name: ") + e.getMessage();
176163 Gtk::Container* toplevel = this->get_toplevel();
177 if (toplevel == NULL
178 || !toplevel->get_is_toplevel())
179 {
180 Gtk::MessageDialog renameXAttr(s, false,
181 Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK);
164 if (toplevel == NULL || !toplevel->get_is_toplevel()) {
165 Gtk::MessageDialog renameXAttr(s, false, Gtk::MESSAGE_ERROR,
166 Gtk::BUTTONS_OK);
182167 renameXAttr.run();
183 }
184 else
185 {
186 Gtk::MessageDialog renameXAttr(
187 *(Gtk::Window*)toplevel,
188 s, false,
189 Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK);
168 } else {
169 Gtk::MessageDialog renameXAttr(*(Gtk::Window*)toplevel, s, false,
170 Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK);
190171 renameXAttr.run();
191172 }
192173 }
193174 }
194175 }
195176
196 void EicielXAttrWindow::set_value_edited_attribute(const Glib::ustring& path, const Glib::ustring& value)
177 void EicielXAttrWindow::set_value_edited_attribute(const Glib::ustring& path,
178 const Glib::ustring& value)
197179 {
198180 Gtk::TreeModel::iterator iter = _ref_xattr_list->get_iter(path);
199181
200 if (iter)
201 {
182 if (iter) {
202183 Gtk::TreeModel::Row row(*iter);
203 try
204 {
205 _controller->update_attribute_value(row[_xattr_list_model._attribute_name], value);
184 try {
185 _controller->update_attribute_value(
186 row[_xattr_list_model._attribute_name], value);
206187 row[_xattr_list_model._attribute_value] = value;
207 }
208 catch (XAttrManagerException e)
209 {
188 } catch (XAttrManagerException e) {
210189 Glib::ustring s = _("Could not change attribute value: ") + e.getMessage();
211190 Gtk::Container* toplevel = this->get_toplevel();
212 if (toplevel == NULL
213 || !toplevel->get_is_toplevel())
214 {
215 Gtk::MessageDialog editXAttr(s, false,
216 Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK);
191 if (toplevel == NULL || !toplevel->get_is_toplevel()) {
192 Gtk::MessageDialog editXAttr(s, false, Gtk::MESSAGE_ERROR,
193 Gtk::BUTTONS_OK);
217194 editXAttr.run();
218 }
219 else
220 {
221 Gtk::MessageDialog editXAttr(
222 *(Gtk::Window*)toplevel,
223 s, false,
224 Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK);
195 } else {
196 Gtk::MessageDialog editXAttr(*(Gtk::Window*)toplevel, s, false,
197 Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK);
225198 editXAttr.run();
226199 }
227200 }
233206 Glib::RefPtr<Gtk::TreeSelection> referenciaSeleccioLlista = _xattr_listview.get_selection();
234207 Gtk::TreeModel::iterator iter = referenciaSeleccioLlista->get_selected();
235208
236 if (iter)
237 {
209 if (iter) {
238210 Gtk::TreeModel::Row row(*iter);
239211
240 try
241 {
212 try {
242213 _controller->remove_attribute(row[_xattr_list_model._attribute_name]);
243214 _ref_xattr_list->erase(iter);
244 }
245 catch (XAttrManagerException e)
246 {
215 } catch (XAttrManagerException e) {
247216 Glib::ustring s = _("Could not remove attribute: ") + e.getMessage();
248217 Gtk::Container* toplevel = this->get_toplevel();
249 if (toplevel == NULL
250 || !toplevel->get_is_toplevel())
251 {
252 Gtk::MessageDialog removeXAttr(s, false,
253 Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK);
218 if (toplevel == NULL || !toplevel->get_is_toplevel()) {
219 Gtk::MessageDialog removeXAttr(s, false, Gtk::MESSAGE_ERROR,
220 Gtk::BUTTONS_OK);
254221 removeXAttr.run();
255 }
256 else
257 {
258 Gtk::MessageDialog removeXAttr(
259 *(Gtk::Window*)toplevel,
260 s, false,
261 Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK);
222 } else {
223 Gtk::MessageDialog removeXAttr(*(Gtk::Window*)toplevel, s, false,
224 Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK);
262225 removeXAttr.run();
263226 }
264227 }
274237 Glib::ustring new_name;
275238
276239 do {
277 if (num_times == 0)
278 {
240 if (num_times == 0) {
279241 new_name = _("New attribute");
280 }
281 else
282 {
242 } else {
283243 char* num_timesStr = new char[20];
284244
285245 snprintf(num_timesStr, 20, " (%d)", num_times);
295255 Gtk::TreeModel::Children children = _ref_xattr_list->children();
296256
297257 repeated = false;
298 for(Gtk::TreeModel::Children::iterator iter = children.begin();
299 iter != children.end(); ++iter)
300 {
258 for (Gtk::TreeModel::Children::iterator iter = children.begin();
259 iter != children.end(); ++iter) {
301260 Gtk::TreeModel::Row irow(*iter);
302261
303 if (irow[_xattr_list_model._attribute_name] == new_name)
304 {
262 if (irow[_xattr_list_model._attribute_name] == new_name) {
305263 repeated = true;
306264 break;
307265 }
308266 }
309 }
310 while (repeated);
311
267 } while (repeated);
268
312269 Gtk::TreeModel::iterator iter = _ref_xattr_list->append();
313270 Gtk::TreeModel::Row row;
314271 row = *iter;
316273 row[_xattr_list_model._attribute_name] = new_name;
317274 row[_xattr_list_model._attribute_value] = _("New value");
318275
319 try
320 {
276 try {
321277 _controller->add_attribute(row[_xattr_list_model._attribute_name],
322 row[_xattr_list_model._attribute_value]);
278 row[_xattr_list_model._attribute_value]);
323279
324280 Gtk::TreePath path = _ref_xattr_list->get_path(iter);
325281 Gtk::TreeViewColumn* col = _xattr_listview.get_column(0);
326282
327283 _xattr_listview.set_cursor(path, *col, true);
328 }
329 catch (XAttrManagerException e)
330 {
284 } catch (XAttrManagerException e) {
331285 _ref_xattr_list->erase(iter);
332286 Glib::ustring s = _("Could not add attribute: ") + e.getMessage();
333287 Gtk::Container* toplevel = this->get_toplevel();
334 if (toplevel == NULL
335 || !toplevel->get_is_toplevel())
336 {
337 Gtk::MessageDialog addXAttr_message(s, false,
338 Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK);
288 if (toplevel == NULL || !toplevel->get_is_toplevel()) {
289 Gtk::MessageDialog addXAttr_message(s, false, Gtk::MESSAGE_ERROR,
290 Gtk::BUTTONS_OK);
339291 addXAttr_message.run();
340 }
341 else
342 {
343 Gtk::MessageDialog addXAttr_message(
344 *(Gtk::Window*)toplevel,
345 s, false,
346 Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK);
292 } else {
293 Gtk::MessageDialog addXAttr_message(*(Gtk::Window*)toplevel, s, false,
294 Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK);
347295 addXAttr_message.run();
348296 }
349297 }
356304
357305 Gtk::TreeModel::iterator iter;
358306 Gtk::TreeModel::Row row;
359
360 for (it = llista.begin(); it != llista.end(); it++)
361 {
307
308 for (it = llista.begin(); it != llista.end(); it++) {
362309 iter = _ref_xattr_list->append();
363310 row = *iter;
364
311
365312 row[_xattr_list_model._attribute_name] = it->first;
366313 row[_xattr_list_model._attribute_value] = it->second;
367314 }
00 /*
11 Eiciel - GNOME editor of ACL file permissions.
2 Copyright (C) 2004-2014 Roger Ferrer Ibáñez
2 Copyright (C) 2004-2019 Roger Ferrer Ibáñez
33
44 This program is free software; you can redistribute it and/or modify
55 it under the terms of the GNU General Public License as published by
1919 #ifndef EICIEL_XATTR_WINDOW_HPP
2020 #define EICIEL_XATTR_WINDOW_HPP
2121
22 #include "eiciel_xattr_controller.hpp"
23 #include "xattr_list_model.hpp"
24 #include "xattr_manager.hpp"
2225 #include <config.hpp>
26 #include <glib/gi18n-lib.h>
2327 #include <gtkmm.h>
24 #include <glib/gi18n-lib.h>
2528 #include <sstream>
26 #include "xattr_manager.hpp"
27 #include "xattr_list_model.hpp"
28 #include "eiciel_xattr_controller.hpp"
2929
3030 class EicielXAttrController;
3131
32 class EicielXAttrWindow : public Gtk::VBox
33 {
34 public:
35 EicielXAttrWindow(EicielXAttrController* _controller);
36 virtual ~EicielXAttrWindow();
32 class EicielXAttrWindow : public Gtk::VBox {
33 public:
34 EicielXAttrWindow(EicielXAttrController* _controller);
35 virtual ~EicielXAttrWindow();
3736
38 void fill_attributes(XAttrManager::attributes_t llista);
39 void set_readonly(bool b);
37 void fill_attributes(XAttrManager::attributes_t llista);
38 void set_readonly(bool b);
4039
41 void set_active(bool b);
40 void set_active(bool b);
4241
43 private:
44 EicielXAttrController* _controller;
42 private:
43 EicielXAttrController* _controller;
4544
46 Glib::RefPtr<Gtk::ListStore> _ref_xattr_list;
47 XAttrListModel _xattr_list_model;
45 Glib::RefPtr<Gtk::ListStore> _ref_xattr_list;
46 XAttrListModel _xattr_list_model;
4847
49 Gtk::ScrolledWindow _xattr_listview_container;
50 Gtk::TreeView _xattr_listview;
48 Gtk::ScrolledWindow _xattr_listview_container;
49 Gtk::TreeView _xattr_listview;
5150
52 Gtk::Button _b_add_attribute;
53 Gtk::Button _b_remove_attribute;
51 Gtk::Button _b_add_attribute;
52 Gtk::Button _b_remove_attribute;
5453
55 Gtk::Box _bottom_buttonbox;
54 Gtk::Box _bottom_buttonbox;
5655
57 void _xattr_selection_change();
56 void _xattr_selection_change();
5857
59 void there_is_no_xattr_selection();
60 void there_is_xattr_selection();
58 void there_is_no_xattr_selection();
59 void there_is_xattr_selection();
6160
62 void set_name_edited_attribute(const Glib::ustring& vell, const Glib::ustring& nou);
63 void set_value_edited_attribute(const Glib::ustring& vell, const Glib::ustring& nou);
61 void set_name_edited_attribute(const Glib::ustring& vell,
62 const Glib::ustring& nou);
63 void set_value_edited_attribute(const Glib::ustring& vell,
64 const Glib::ustring& nou);
6465
65 void remove_selected_attribute();
66 void add_selected_attribute();
66 void remove_selected_attribute();
67 void add_selected_attribute();
6768
68 bool _readonly;
69 }
70 ;
69 bool _readonly;
70 };
7171
7272 #endif
00 /*
11 Eiciel - GNOME editor of ACL file permissions.
2 Copyright (C) 2004-2014 Roger Ferrer Ibáñez
2 Copyright (C) 2004-2019 Roger Ferrer Ibáñez
33
44 This program is free software; you can redistribute it and/or modify
55 it under the terms of the GNU General Public License as published by
2121
2222 #include "acl_element_kind.hpp"
2323
24 class ModelLlistaParticipant : public Gtk::TreeModel::ColumnRecord
25 {
26 public:
27 ModelLlistaParticipant()
28 {
29 add(_icon);
30 add(_participant_name);
31 add(_entry_kind);
32 }
33 Gtk::TreeModelColumn<Glib::RefPtr<Gdk::Pixbuf> > _icon;
34 Gtk::TreeModelColumn<Glib::ustring> _participant_name;
35 Gtk::TreeModelColumn<ElementKind> _entry_kind;
24 class ParticipantListModel : public Gtk::TreeModel::ColumnRecord {
25 public:
26 ParticipantListModel()
27 {
28 add(_icon);
29 add(_participant_name);
30 add(_entry_kind);
31 }
32 Gtk::TreeModelColumn<Glib::RefPtr<Gdk::Pixbuf>> _icon;
33 Gtk::TreeModelColumn<Glib::ustring> _participant_name;
34 Gtk::TreeModelColumn<ElementKind> _entry_kind;
3635 };
3736
3837 #endif
00 /*
11 Eiciel - GNOME editor of ACL file permissions.
2 Copyright (C) 2004-2014 Roger Ferrer Ibáñez
2 Copyright (C) 2004-2019 Roger Ferrer Ibáñez
33
44 This program is free software; you can redistribute it and/or modify
55 it under the terms of the GNU General Public License as published by
2121 #include <config.hpp>
2222 #include <gtkmm.h>
2323
24 class XAttrListModel : public Gtk::TreeModel::ColumnRecord
25 {
26 public:
27 XAttrListModel()
28 {
29 add(_attribute_name);
30 add(_attribute_value);
31 }
24 class XAttrListModel : public Gtk::TreeModel::ColumnRecord {
25 public:
26 XAttrListModel()
27 {
28 add(_attribute_name);
29 add(_attribute_value);
30 }
3231
33 Gtk::TreeModelColumn<Glib::ustring> _attribute_name;
34 Gtk::TreeModelColumn<Glib::ustring> _attribute_value;
32 Gtk::TreeModelColumn<Glib::ustring> _attribute_name;
33 Gtk::TreeModelColumn<Glib::ustring> _attribute_value;
3534 };
3635
3736 #endif
00 /*
11 Eiciel - GNOME editor of ACL file permissions.
2 Copyright (C) 2004-2014 Roger Ferrer Ibáñez
2 Copyright (C) 2004-2019 Roger Ferrer Ibáñez
33
44 This program is free software; you can redistribute it and/or modify
55 it under the terms of the GNU General Public License as published by
1717 */
1818 #include "xattr_manager.hpp"
1919
20 XAttrManager::XAttrManager(const Glib::ustring& filename) throw (XAttrManagerException)
20 XAttrManager::XAttrManager(const Glib::ustring& filename)
2121 : _filename(filename)
2222 {
2323 // Check it is an ordinary file or a directory
2424 struct stat buffer;
25 if (stat(_filename.c_str(), &buffer) == -1)
26 {
27 throw XAttrManagerException(Glib::locale_to_utf8(strerror(errno)));
28 }
29
30 if (!S_ISREG(buffer.st_mode) && !S_ISDIR(buffer.st_mode))
31 {
32 throw XAttrManagerException(_("Only regular files or directories supported"));
25 if (stat(_filename.c_str(), &buffer) == -1) {
26 throw XAttrManagerException(Glib::locale_to_utf8(strerror(errno)));
27 }
28
29 if (!S_ISREG(buffer.st_mode) && !S_ISDIR(buffer.st_mode)) {
30 throw XAttrManagerException(
31 _("Only regular files or directories supported"));
3332 }
3433
3534 this->_owner = buffer.st_uid;
36
35
3736 // FIXME Crappy way to detect if we can modify xattrs,
3837 // it will thrown a exception if they cannot be read
3938 read_test();
4039 }
4140
4241 // We should find better ways to test xattr support
43 void XAttrManager::read_test() throw (XAttrManagerException)
42 void XAttrManager::read_test()
4443 {
4544 Glib::ustring qualified_attr_name = "user.test";
4645 int buffer_length;
4746 int size = 30;
4847 char* buffer = new char[size];
4948
50 buffer_length = getxattr (_filename.c_str(), qualified_attr_name.c_str(),
51 buffer, size);
52
53 if (buffer_length == -1 &&
54 errno != ENOATTR &&
55 errno != ERANGE)
56 {
49 buffer_length = getxattr(_filename.c_str(), qualified_attr_name.c_str(), buffer, size);
50
51 if (buffer_length == -1 && errno != ENOATTR && errno != ERANGE) {
5752 delete[] buffer;
5853 throw XAttrManagerException(Glib::locale_to_utf8(strerror(errno)));
5954 }
6156 delete[] buffer;
6257 }
6358
64 std::vector<std::string> XAttrManager::get_xattr_list() throw (XAttrManagerException)
59 std::vector<std::string> XAttrManager::get_xattr_list()
6560 {
6661 std::vector<std::string> result;
6762
6863 int size = listxattr(_filename.c_str(), NULL, 0);
6964
7065 // Assume at first that the length of every element will be at most 30 chars
71 size = size*30;
66 size = size * 30;
7267 char* buffer = new char[size];
7368
7469 int num_elems;
7570 num_elems = listxattr(_filename.c_str(), buffer, size);
7671
77 while ((num_elems == -1) && (errno == ERANGE))
78 {
79 delete[] buffer;
80 size = size*2;
72 while ((num_elems == -1) && (errno == ERANGE)) {
73 delete[] buffer;
74 size = size * 2;
8175 buffer = new char[size];
8276 num_elems = listxattr(_filename.c_str(), buffer, size);
8377 }
8478
8579 // num_elems == -1 && errno != ERANGE
86 if (num_elems == -1)
87 {
88 delete[] buffer;
89 throw XAttrManagerException(Glib::locale_to_utf8(strerror(errno)));
90 }
91
92 for (int begin = 0, current = 0; current < num_elems; current++)
93 {
94 if (buffer[current] == '\0')
95 {
80 if (num_elems == -1) {
81 delete[] buffer;
82 throw XAttrManagerException(Glib::locale_to_utf8(strerror(errno)));
83 }
84
85 for (int begin = 0, current = 0; current < num_elems; current++) {
86 if (buffer[current] == '\0') {
9687 // Get the value
9788 std::string attr_name(&buffer[begin]);
9889
9990 // Some filesystems give too small results
100 if (attr_name.size() > 5)
101 {
102 std::string prefix = attr_name.substr(0, 5);
91 if (attr_name.size() > 5) {
92 std::string prefix = attr_name.substr(0, 5);
10393 std::string postfix = attr_name.substr(5);
10494
10595 // Check the prefix, we only want user_xattr
106 if (prefix == "user.")
107 {
96 if (prefix == "user.") {
10897 bool is_empty = false;
10998
110 try
111 {
99 try {
112100 std::string attribute_value = get_attribute_value(postfix);
113 }
114 catch (XAttrManagerException e)
115 {
101 } catch (XAttrManagerException e) {
116102 is_empty = true;
117103 }
118104
119 if (!is_empty)
120 {
105 if (!is_empty) {
121106 result.push_back(postfix);
122107 }
123108 }
124109 }
125
110
126111 begin = current + 1;
127112 }
128113 }
129
114
130115 delete[] buffer;
131116
132117 return result;
133118 }
134119
135 std::string XAttrManager::get_attribute_value(const std::string& attr_name) throw (XAttrManagerException)
120 std::string XAttrManager::get_attribute_value(const std::string& attr_name)
136121 {
137122 int size = 30;
138123 char* buffer = new char[size];
139124
140125 std::string qualified_attr_name = "user." + attr_name;
141126
142 int length_buffer = getxattr (_filename.c_str(), qualified_attr_name.c_str(),
143 buffer, size);
144
145 while ((length_buffer == -1) && (errno == ERANGE))
146 {
147 delete[] buffer;
148 size = size*2;
127 int length_buffer = getxattr(_filename.c_str(), qualified_attr_name.c_str(), buffer, size);
128
129 while ((length_buffer == -1) && (errno == ERANGE)) {
130 delete[] buffer;
131 size = size * 2;
149132 buffer = new char[size];
150133
151 length_buffer = getxattr (_filename.c_str(), qualified_attr_name.c_str(),
152 buffer, size);
153 }
154
155 if (length_buffer == -1)
156 {
134 length_buffer = getxattr(_filename.c_str(), qualified_attr_name.c_str(), buffer, size);
135 }
136
137 if (length_buffer == -1) {
157138 delete[] buffer;
158139 throw XAttrManagerException(Glib::locale_to_utf8(strerror(errno)));
159140 }
161142 char* new_buffer = new char[length_buffer + 1];
162143 new_buffer[length_buffer] = '\0';
163144
164 for (int i = 0; i < length_buffer; i++)
165 {
145 for (int i = 0; i < length_buffer; i++) {
166146 new_buffer[i] = buffer[i];
167147 }
168148
183163
184164 attributes_t result;
185165
186 for (it = attributes.begin(); it != attributes.end(); it++)
187 {
166 for (it = attributes.begin(); it != attributes.end(); it++) {
188167 std::string attr_value = get_attribute_value(*it);
189168
190169 result[*it] = attr_value;
193172 return result;
194173 }
195174
196 void XAttrManager::remove_attribute(std::string attr_name)
175 void XAttrManager::remove_attribute(const std::string& attr_name)
197176 {
198177 std::string qualified_name = "user." + attr_name;
199 int result = removexattr (_filename.c_str(), qualified_name.c_str());
200
201 if (result != 0)
202 {
203 throw XAttrManagerException(Glib::locale_to_utf8(strerror(errno)));
204 }
205 }
206
207 void XAttrManager::add_attribute(std::string attr_name, std::string attr_value)
178 int result = removexattr(_filename.c_str(), qualified_name.c_str());
179
180 if (result != 0) {
181 throw XAttrManagerException(Glib::locale_to_utf8(strerror(errno)));
182 }
183 }
184
185 void XAttrManager::add_attribute(const std::string& attr_name,
186 const std::string& attr_value)
208187 {
209188 std::string qualified_attr_name = "user." + attr_name;
210 int result = setxattr (_filename.c_str(), qualified_attr_name.c_str(),
211 attr_value.c_str(), attr_value.size(), 0);
212
213 if (result != 0)
214 {
215 throw XAttrManagerException(Glib::locale_to_utf8(strerror(errno)));
216 }
217 }
218
219 void XAttrManager::change_attribute_name(std::string old_attr_name, std::string new_attr_name)
189 int result = setxattr(_filename.c_str(), qualified_attr_name.c_str(),
190 attr_value.c_str(), attr_value.size(), 0);
191
192 if (result != 0) {
193 throw XAttrManagerException(Glib::locale_to_utf8(strerror(errno)));
194 }
195 }
196
197 void XAttrManager::change_attribute_name(const std::string& old_attr_name,
198 const std::string& new_attr_name)
220199 {
221200 std::string attribute_value = get_attribute_value(old_attr_name);
222201 add_attribute(new_attr_name, attribute_value);
00 /*
11 Eiciel - GNOME editor of ACL file permissions.
2 Copyright (C) 2004-2014 Roger Ferrer Ibáñez
2 Copyright (C) 2004-2019 Roger Ferrer Ibáñez
33
44 This program is free software; you can redistribute it and/or modify
55 it under the terms of the GNU General Public License as published by
2121
2222 #include <config.hpp>
2323
24 #include <sys/stat.h>
2425 #include <sys/types.h>
25 #include <sys/stat.h>
2626 #include <unistd.h>
2727
28 #include <attr/xattr.h>
28 #include <sys/xattr.h>
29 #ifndef ENOATTR
30 #define ENOATTR ENODATA
31 #endif
2932
33 #include <cstring>
34 #include <glib/gi18n-lib.h>
35 #include <glibmm.h>
36 #include <iostream>
37 #include <map>
3038 #include <string>
31 #include <cstring>
3239 #include <vector>
33 #include <map>
34 #include <glibmm.h>
35 #include <glib/gi18n-lib.h>
36 #include <iostream>
3740
41 class XAttrManagerException {
42 public:
43 XAttrManagerException(Glib::ustring missatge)
44 : missatge(missatge)
45 {
46 }
3847
39 class XAttrManagerException
40 {
41 public:
42 XAttrManagerException(Glib::ustring missatge) : missatge(missatge)
43 {
44 }
48 Glib::ustring getMessage() const { return missatge; }
4549
46 Glib::ustring getMessage() const
47 {
48 return missatge;
49 }
50 private:
51 Glib::ustring missatge;
50 private:
51 Glib::ustring missatge;
5252 };
5353
5454 class XAttrManager {
55 public:
56 typedef std::map<std::string, std::string> attributes_t;
5557
56 public:
57 typedef std::map<std::string, std::string> attributes_t;
58 XAttrManager(const Glib::ustring& filename);
5859
59 XAttrManager(const Glib::ustring& filename) throw (XAttrManagerException);
60 attributes_t get_attributes_list();
61 void remove_attribute(const std::string& attr_name);
62 void set_attribute(attributes_t atributes);
63 void add_attribute(const std::string& attr_name,
64 const std::string& attr_value);
65 void change_attribute_name(const std::string& old_attr_name,
66 const std::string& new_attr_name);
6067
61 attributes_t get_attributes_list();
62 void remove_attribute(std::string attr_name);
63 void set_attribute(attributes_t atributes);
64 void add_attribute(std::string attr_name, std::string attr_value);
65 void change_attribute_name(std::string old_attr_name, std::string new_attr_name);
68 uid_t get_owner_uid() { return this->_owner; }
6669
67 uid_t get_owner_uid()
68 {
69 return this->_owner;
70 }
70 private:
71 std::vector<std::string> get_xattr_list();
72 std::string get_attribute_value(const std::string& attr_name);
7173
72 private:
73 std::vector<std::string> get_xattr_list() throw (XAttrManagerException);
74 std::string get_attribute_value(const std::string& attr_name) throw (XAttrManagerException);
74 void read_test();
7575
76 void read_test() throw (XAttrManagerException);
76 Glib::ustring _filename;
7777
78 Glib::ustring _filename;
79
80 uid_t _owner;
81 }
82 ;
78 uid_t _owner;
79 };
8380
8481 #endif