System: OpenBSD -current

| t20$ head -n 1 /etc/motd
| OpenBSD 6.5-current (GENERIC.MP) #132: Sat Jul 20 15:23:46 MDT 2019

| t20$ uname -a
| OpenBSD t20 6.5 GENERIC.MP#132 amd64

| t20$ arch
| OpenBSD.amd64

1. What exactly are you doing? (minimal test case, if possible)

| t20$ pwd
| /home/user20/ybtra-t20/gencat-test23

| t20$ ls -l 
| total 16
| -rw-r--r--  1 user20  user20  43 Jul 23 15:35 foo1.msg
| -rw-r--r--  1 user20  user20  50 Jul 23 15:37 foo2.msg

| t20$ head -n 1000 *msg
| ==> foo1.msg <==
| $ comment
| $quote "
| 1 "foo"
| 2 "bar"
| 3 "baz"
| 
| ==> foo2.msg <==
| $ comment
| $quote "
| $set 1
| 1 "foo"
| 2 "bar"
| 3 "baz"

| t20$ gencat foo1.cat foo1.msg
| gencat: can't specify a message when no set exists on line 3
| 1 "foo

| t20$ gencat foo2.cat foo2.msg

| t20$ ls -l
| total 24
| -rw-r--r--  1 user20  user20  43 Jul 23 15:35 foo1.msg
| -rw-r--r--  1 user20  user20  80 Jul 23 22:03 foo2.cat
| -rw-r--r--  1 user20  user20  50 Jul 23 15:37 foo2.msg

2. What do you expect to happen?

"gencat foo1.cat foo1.msg" working, i. e. producing the file "foo1.cat".

3. What happens instead?

"gencat: can't specify a message when no set exists on line 3"

Error description:

According to POSIX [1] and according to the man page of "gencat" [2]
it should work also without "$set":

| If no $set directive is specified in a message text source file,
| all messages shall be located in an implementation-defined
| default message set NL_SETD [...] [1]

| If no $set directive is specified in a given source file, all
| messages will be located in the default message set NL_SETD. [2]

[1] 
<https://pubs.opengroup.org/onlinepubs/9699919799/utilities/gencat.html#tag_20_51_13>
[2] <https://man.openbsd.org/OpenBSD-current/man1/gencat.1>

Reply via email to