为什么 abiword 告诉用户要得到生活?

des*_*ert 4 command-line gui headless

当在abiword无头机器上调用文字处理器时,发出的警告之一如下(强调我的):

** (abiword:2020): WARNING **: clutter failed 0, get a life.
Run Code Online (Sandbox Code Playgroud)

这个警告是什么意思?这是复活节彩蛋吗?为什么abiword要说这种尖酸刻薄的话?没有 GUI 会话,没有生命——这是暗示吗?

Abiword 的 SVN 存储库可以在abisource.com找到

Jde*_*eBP 7

AbiWord 使用名为Clutter、GTK+ 和 Clutter-GTK 的编程库。后一个库将前两个库粘合在一起。它的必要部分之一是调用名为gtk_clutter_init(). 如果初始化失败,这将返回一个错误代码,如果没有显示,它确实会这样做。

忽略调用此函数的结果并继续执行而不考虑潜在错误的程序,在编译时会发出编译器警告。程序员以不同的方式解决了这个问题。 Colin Watson 让 GNOME Shell 发出相当平淡的致命错误消息Hubert Figuière 让 AbiWord发出您看到的信息。这两条消息对最终用户都没有真正的帮助,他们确实需要被告知在初始化 GUI 时存在某种问题,并且可能不知道“Clutter”指的是什么。

有趣的是,根据您的错误消息,结果代码为零。根据doco,错误结果应该是非零负整数。事实上,有一个未记录的“未知”错误条件,既不是成功(值为 1)也不是负数失败代码;这是由于gtk_init_check()库函数无法初始化 GUI 造成的。

  • 好的,但它不能解释“get a life”错误字符串。正如你所说,它来自 Abiword 的 `src/wp/ap/gtk/ap_UnixApp.cpp` 文件,根据 https://gitlab.gnome.org/World/AbiWord.git 它是在 2013 年或之前作为 git 添加的存储库是从以前的 SVN 存储库创建的。 (2认同)