The GI scanner decides if an `enum` is really a `bitfield` if it finds
any values that have left shifts. With an `enumeration`, the
introspecting language may error or convert to a different type if the
user tries to combine values. Change all Flags `enum`s to use
left-shifted values so that they're represented as `bitfield`s in the
GIR.
The primary bug here is that you can't combine `REFS_ONLY` and
`NO_PRUNE` when calling `OSTree.Repo.prune()` from an introspected
language.
This is an IABI break since the typelib will change from `enumeration`
to `bitfield`. `OstreeRepoImportFlags` is internal but the change is
included here to prepare for a subsequent name that would require bit
shifting to operate correctly as a flag.
* for future variations.
**/
typedef enum {
- OSTREE_GPG_SIGNATURE_FORMAT_DEFAULT = 0
+ OSTREE_GPG_SIGNATURE_FORMAT_DEFAULT = (0 << 0),
} OstreeGpgSignatureFormatFlags;
_OSTREE_PUBLIC
#endif /* OSTREE_DISABLE_GPGME */
typedef enum {
- _OSTREE_REPO_IMPORT_FLAGS_NONE,
- _OSTREE_REPO_IMPORT_FLAGS_TRUSTED,
- _OSTREE_REPO_IMPORT_FLAGS_VERIFY_BAREUSERONLY,
+ _OSTREE_REPO_IMPORT_FLAGS_NONE = 0,
+ _OSTREE_REPO_IMPORT_FLAGS_TRUSTED = (1 << 0),
+ _OSTREE_REPO_IMPORT_FLAGS_VERIFY_BAREUSERONLY = (1 << 1),
} OstreeRepoImportFlags;
gboolean
* @OSTREE_REPO_PRUNE_FLAGS_REFS_ONLY: Do not traverse individual commit objects, only follow refs
*/
typedef enum {
- OSTREE_REPO_PRUNE_FLAGS_NONE,
- OSTREE_REPO_PRUNE_FLAGS_NO_PRUNE,
- OSTREE_REPO_PRUNE_FLAGS_REFS_ONLY
+ OSTREE_REPO_PRUNE_FLAGS_NONE = 0,
+ OSTREE_REPO_PRUNE_FLAGS_NO_PRUNE = (1 << 0),
+ OSTREE_REPO_PRUNE_FLAGS_REFS_ONLY = (1 << 1),
} OstreeRepoPruneFlags;
_OSTREE_PUBLIC