Welcome to The Document Foundation Planet

This is a feed aggregator that collects what LibreOffice and Document Foundation contributors are writing in their respective blogs.

To have your blog added to this aggregator, please mail the website@global.libreoffice.org mailinglist or file a ticket in Redmine.


Thursday
02 October, 2025


face

LibreOffice strives to be accessible for people with special needs or limitations, such as visual impairment or limited motor abilities. How does the software work towards this? What accessibility features are in the pipeline? And how can all users help out? We talk to Michael Weghorn about these topics – and more. (This episode is also available on PeerTube.)

Please confirm that you want to play a YouTube video. By accepting, you will be accessing content from YouTube, a service provided by an external third party.

YouTube privacy policy

If you accept this notice, your choice will be saved and the page will refresh.


Wednesday
01 October, 2025


face
  • Mail, admin, deeper copy-paste training & discussion with Miklos and the QA team for special focus - there is a thousands-wide potential test matrix there.
  • Sync with Italo on marketing, lunch, catch up with Pedro.
  • Published the next strip on the joy of win-wins, and mutual benefits:
    The Open Road to Freedom - strip#37 - Mutual benefits
  • Plugged away at the Product Management backlog.

face

The Document Foundation's team

Love LibreOffice development? Want to turn your passion into a paid job? We are The Document Foundation (TDF), the non-profit entity behind LibreOffice. We’re passionate about free software, the open source culture and about bringing new companies and people with fresh ideas into our community.

To improve the Base database application of LibreOffice, the office productivity suite for over 200 million users around the globe, we’re searching for a developer (m/f/d) to start work (from home) as soon as possible. This is what you’ll do:

  • Work on the LibreOffice codebase (mostly C++)
  • Focus on Base, its frontend and backend features and all the ways databases are used elsewhere in the software
  • Fix bugs, implement new features, and improve the quality of database code in LibreOffice
  • Document what you do, actively share knowledge in public with volunteers and contributors via blog posts, workshops and conference talks, so other developers and users have an easier time learning about your work

Examples of tasks:

  • Polish the Firebird integration
  • Improve the tool for migrating databases from HSQLDB to Firebird
  • Make the new C++-based Report Builder production-ready
  • Add support for SQLite databases

What we want from you:

  • Very good C++ development skills
  • Proven experience working with databases
  • Good team-playing skills
  • Speaking and writing English

Previous contributions to FOSS projects (show us your repos!) are a plus. A previously established relationship within the developer community, as well as with other teams such as QA is a plus, but it is not mandatory at the start and can be achieved during the work itself.

As always, TDF will give some preference to individuals who have previously shown a commitment to TDF, including but not limited to members of TDF. Not being a member does not exclude any applicants from consideration.

Join us!

All jobs at The Document Foundation are remote jobs, where you can work from your home office or a co-working space. The work time during the day is flexible, apart from a few fixed meetings. The role is offered as full-time (ideally 40 hours per week). While we prefer full-time for the role, part-time applications, or proposals to grow the hours over time, will be considered. Candidates that are resident in (or willing to relocate to) Germany will be employed directly by TDF. Otherwise, external payroll services will be used if available in the candidate’s country of residence.

Are you interested? Get in touch! We aim to schedule the first interview within two weeks of your application. You can also approach us any time for an informal chat, to learn about the role or in case of questions.

TDF welcomes applications from all suitably qualified persons regardless of their race, sex, gender, disability, religion/belief, sexual orientation or age. Don’t be afraid to be different, and stay true to yourself. We like you that way! 😊

We’re looking forward to receiving your application, including information about you (your resume), when you are available for the job, and


Tuesday
30 September, 2025


face
  • Up early; train to the airport, software failure causing massive queues, fun.
  • Some coding on the plane, back after lunch, call with Dave, got some hacking done - got my Proxy Protocol unit test finished.
  • Lovely to see the family again.

face

Logo of Bundesheer

Like we’re seeing in Schleswig-Holstein, Denmark and many other government bodies and organisations, the Austrian military (Bundesheer) has migrated 16,000 PCs from Microsoft Office to LibreOffice.

As Heise reports, the main reasons behind the switch are to:

  • strengthen digital sovereignty
  • maintain independence of IT infrastructure
  • ensure that data is processed in-house

The initial plan to move to LibreOffice was formed in 2020, and detailed planning and training of internal developers for improvements began in 2022. In 2023, a company in Germany was contracted to provide technical support and additional development.

The Austrian military’s migration reflects a growing demand for independence from single vendors. With free and open source software like LibreOffice, anyone can study and modify the source code to make improvements specifically for their setup and workflow. Government bodies and organisations can free themselves from vendor lock-in, spending taxpayer’s money on local companies to provide support and further development – rather than paying for license fees from overseas companies.

At the recent LibreOffice Conference 2025, representatives from the Austrian armed forces gave a talk about their switch from Microsoft Office, highlighting some of the new features and improvements that they have sponsored:

Presentation slide of improvements in LibreOffice, such as notes pane, and import of pivot table protected sheets

Click here to view the slides


Monday
29 September, 2025


face
  • To the venue; brainstorming how to improve, more 1:1 chats with people. Lunch with the Office team, more conversations.
  • Bid 'bye to everyone, and off for dinner with Frank and the openDesk team, kindly hosted by B1, great to see them all & see Lily.

Sunday
28 September, 2025


face
  • Enjoyed Monty's talk in the morning, lots of other talks & conversations with friends old & new, dinner with Philippe & team nearby.

face

Fifteen years ago, we announced our ambitious plan to provide the world with a fully free and open office suite created by and for the community. Today, we are celebrating 15 years of LibreOffice — a milestone not only for the software itself, but also for the global movement that it represents.

LibreOffice was born on 28 September 2010 when it was launched as a fork of OpenOffice. This was not just a technical split, but also a declaration of independence, transparency, and freedom. LibreOffice would be free: free to use, free to modify, and free from corporate constraints.

From day one, our mission has been clear: to empower people through open technology.

A community like no other

LibreOffice has never been alone. Throughout its journey, it has been supported by a community of thousands of contributors and dozens of companies who have contributed to development, design, localisation, quality assurance and other services to support its growth. Many have simply dedicated their time, skills and passion to creating something unique and better for everyone.

Over the years, the community has:

  • Released dozens of major versions, each more powerful and significantly better than the last;
  • Localised LibreOffice into over 120 languages, some of which are rare or at risk of disappearing, making it accessible to more than 5 billion people;
  • Kept the source code open, making it more modern and secure thanks to countless improvements and rewrites;
  • Organised conferences, workshops, and hackfests that have stimulated innovation and mentoring.

This is not just software. It is a living project, fuelled by real people and companies who are committed to its daily growth.

Why LibreOffice is more important than ever

In an era of cloud lock-in, creeping surveillance and disappearing ownership, LibreOffice remains a bastion of digital autonomy. It gives individuals, schools, non-profit organisations and governments the opportunity to own their tools rather than “renting” them under licence.

It supports ODF (Open Document Format), the only open document standard, which guarantees users transparent access to and management of their documents and perpetual control over their content. No subscriptions. No forced updates. No strings attached.

Looking back, moving forward

Fifteen years is a significant milestone, but LibreOffice is not slowing down. Thanks to continuous improvements to the user interface, increased compatibility, and greater integration with modern systems (including the cloud), the project is moving forward with the same energy with which it was launched.

Here’s what the future looks like:

  • More powerful collaboration tools for teams and organisations
  • Ever-improving compatibility with proprietary formats and native handling of the open document format standard
  • A flexible user interface and user experience to meet the compatibility needs of users accustomed to the rigid interface of proprietary software
  • Continuous performance and security improvements at all levels
  • An ever-expanding network of volunteer contributors and partner companies around the world.

Join the celebrations!

This anniversary is about more than just LibreOffice; it’s about you too: the users, volunteer contributors, ecosystem companies, supporters and everyone who believes in open-source software


Saturday
27 September, 2025


face
  • Up early, to the bUm venue, briefed by Maria on Hub 25 Autumn announcement, lots of friends and colleagues arrived from left & right.
  • Took part in the announcement, enjoyed lots of conversations, gave a lighting talk, pizza in the evening, chatted with people, late drinks with my team at the hotel.

face

The post, published on 18 July 2025, which explained why an artificially complex XML schema, such as that used by Microsoft 365 (formerly Microsoft Office) files, is in fact a subtle tool for locking in users because it is invisible and impossible to detect without in-depth study, was picked up by various IT media outlets. This was probably because it explained a problem that everyone faces without having the tools to solve it in a way that was accessible to everyone.

Some of these articles sparked a debate between those who supported my thesis and those who defended Microsoft, the true champions of lock-in, who claimed that the complexity of the XML schema was not artificial but rather a reflection of the complexity of the documents themselves.

This complexity relates to various factors, such as size (number of pages), structure (text, tables, graphs and images), content management (data entry by multiple people and systems) and customisation through metadata. These factors influence the management, classification and storage of the document itself.

The different approaches to complexity management between ODF and OOXML

However, the ODF and OOXML formats handle this complexity in completely different ways. In the first case, the XML schema seeks to simplify the work of developers and users by ensuring that both sets of requirements are met. Developers have all the descriptive tools related to document complexity at their disposal, and users can distinguish between descriptive elements and content because the two are almost always separate. The content is also consistent in syntax with the document.

In the second case, the XML schema does nothing to simplify the developer’s task and complicates the user’s task by putting all the elements – description and content – together without any apparent logic. This makes the two difficult or even impossible to distinguish.

The complexity of the OOXML format is linked to its design and was deliberately created to make the format more difficult for non-Microsoft software developers to implement. Compatibility issues are caused by a veritable “maze” of tags used even for the simplest content, which binds users to the Microsoft ecosystem in the first example of standard-based lock-in.

Added to this is the widespread use of convoluted descriptions, such as those relating to dates, which are linked to a bug introduced by Visicalc and still present in Excel 67 years after it was discovered, and the arbitrary separation of content, such as sentences or even words that are broken between two content elements. The format reflects the internal data structures and legacy features of Microsoft Office. It uses non-standard language encodings and units of measurement, as well as inconsistent naming conventions and rules between modules. It also uses abstruse tag names that are difficult to decipher.

The XLSX case

To illustrate the difference in complexity between the ODF and OOXML XML schemas, I created a simple spreadsheet containing dates from my life that are either significant or ironic. These include the date I broke my nose, the date it was


Friday
26 September, 2025


face
  • Up early, bid 'bye to E. and H. and J.
  • Sync with Dave, admin, drove, plane to Berlin.
  • Hacked on richdocuments code Proxy issues on the plane, and until rather late at night with Rash's help - fixed several rather annoying short-read/write issues.

Thursday
25 September, 2025


face
  • Up early, mail, tech-planning call, tested latest CODE on share left & right. Lunch.
  • Published the next strip: on the excitement of delivering against a tender:
    The Open Road to Freedom - strip#36 - deliverint
  • Sync with Lily.
  • Collabora Productivity is looking to hire a(nother) Open Source clueful UX Designer to further accelerate our UX research and improvements. Some recent examples of the big wins there.

Wednesday
24 September, 2025


face
  • Mail chew, sync with Dave, catch up with Aron, admin, lunch. All-hands meeting, sales call, visited the Dentist.

Tuesday
23 September, 2025


face
  • Up early, mail chew, planning call, quick UX stand-up. Monthly management meeting.
  • Tested software left & right call with Anna & Joao & Caolan.
  • Partner call in the evening. Worked on a Cooper's Triangle trivet with H. in the garage - lots of band-sawing.

face

Opening slide of Suraj's talk

Updates from the Nepalese LibreOffice community:

Recent protests and stress in Nepal have disrupted regular activities. Almost everything was affected, including in-person events being canceled rapidly. For open source software users, Software Freedom Day 2025 was a big celebration. But many felt disillusioned about the event.

Despite all this, our community members in Nepal tuned in to an online call and turned Software Freedom Day 2025 into a success. Birendra Open Source Club – one of the student clubs and LibreOffice project contributors in Nepal, with support from Liaison Suraj Bhattarai and other key open source clubs, hopped onto Discord on 20 September. They carried out a series of talks among new and old enthusiasts and learners. The talks ranged from the importance of community and good first contributions, all the way up to open source in cybersecurity and open source pieces of hardware.

Suraj shared a short talk about Open Formats and added a little fun with the Easter hunt available on the LibreOffice Asia site.

Participants learned that a sense of freedom for software is only true when all the components, including formats or what we generally call “extensions,” share the same freedom as speech. It matters most in the case of canvas-based software and What You See Is What You Get (WYSIWYG) software, where there are different options to export or save the work in progress.

He emphasized that open formats are essential to software freedom because they let free software and users interoperate without barriers. Also, he highlighted the difference between open formats and closed formats.

TDF says: thanks to the Nepalese community for all their work! Click here to see Suraj’s presentation slides.


Monday
22 September, 2025


face
  • Up early, bid 'bye to H. - off to her new job at XJTAG.
  • Mail chew, sync with Laser, catch up with Miklos, then Thorsten & Oliver, UX stand-up, snatched some lunch.
  • Marketing contente review, sync with Naomi, then Eloy, poked at some code, TDF board meeting.
  • Worked late, while H. tutored E. at maths. Watched home-made videos with the babes.

face

Devansh Varshney

Today we’re talking to Devansh Varshney, who added histogram chart support to LibreOffice and is working on improvements to the Basic IDE…

Tell us a bit about yourself!

I am from Mathura in India, one of the historical cities where the first image of Buddha was carved during the Kushan Empire, Jain Tirthankar Neminatha’s birthplace and the more famous Bhagwan Krishna birthplace. A city where Greek kings also ruled and whose history has been documented by many travellers, the more famous Xuanzang and Faxian.

The rich history and diverse art culture of Mathura also reflects my interests too. My interests range from history to astrophysics to economics, and from tweaking custom Android ROMs back in high school to now tweaking the LibreOffice codebase which is one of the most interesting puzzles I came across. Even the people around me noticed and back in school I was given the name “Internet” – which was quite an interesting name but really reflects my nature.

Besides working on the LibreOffice codebase, I am also planning to complete my book on ADHD which I have mapped around first principles and physics. Hopefully by next year it will be complete.

Vishram Ghat by Umang108 on Wikimedia Commons

Vishram Ghatl on the banks of river Yamuna in Mathura (image: Umang108 on Wikimedia, CC-BY-SA)

What are you working on in the LibreOffice project right now?

This year I am working on making the Basic IDE better and more powerful by introducing a new Object Browser in the IDE, which is one of the most-demanded features as users working with LibreOffice had to visit the online API webpage to refer to the details of UNO APIs. That was quite a friction, and slows down not just the work but also decreases the user experience specially for macro developers.

Along with this, there is also the Basic code suggestion which will be available to users, so that they do not have to look every time what is going to be put when the suggestion can show the list of possible parameters and variables that can be placed.

Why did you choose to join the LibreOffice project, and how was the experience?

This is an interesting question. Back in 2017-2018 I experienced a lot of challenges with the Chrome browser, and thought about fixing them. That’s when I came across the Chromium project – upon which Chrome is based – and I did try to ask how to contribute and got some reply, but it was different from what I got in the LibreOffice project.

Here I did not get silence or confusion when I picked a bug, rather people showed interest and curiosity, and helped me do what I intended to fix. I am not putting other open-source projects on a pedestal – it’s just what I experienced at LibreOffice.

I also made some small contributions to the Google Benchmark and Blockly project and Phoenix Framework previously, but the big twist came last year when Ilmari got curious and asked me why I hadn’t mentioned


Sunday
21 September, 2025


face

The Open Source Conference 2025 will take place the 1st of October 2025 in Belval, Esch-sur-Alzette, Luxembourg, following a very successful first edition in 2024 in combination with the LibreOffice Conference. Open Source software, together with data sovereignty, form the basis to achieve Digital Sovereignty as an inclusive effort where all the participants cooperate to create the tools we need to protect our data, while sharing the technologies that improve everyone’s digital lives. This year’s main tracks provide the opportunity to share the experiences of those that have chosen to produce and implement Open Source tools and platforms that improve security, resilience and data protection.

During the day, there will be several talks focused on LibreOffice or by LibreOffice community members:

  1. Open Innovation and Open Source in Schleswig-Holstein, by Sven Thomsen, CIO of the State of Schleswig-Holstein
  2. Free your mayor! Digital transformation and free software in Échirolles, by Nicolas Vivant, IT Manager of the City of Échirolles
  3. The foundation behind LibreOffice, by Florian Effenberger, Executive Director of The Document Foundation
  4. This is how it works: Open Source as competitive factor in the private (and public?) sector, by Lothar Becker, Managing Director of .riess-applications

Registration is still open: conference.opensource.lu/registration/


face
  • Up early, played violin with H. at AllSaints; home for pizza lunch with Amy-Jane & Julie.
  • Slept through some parts of the afternoon-exhaustedly. Watched TV.

Saturday
20 September, 2025


face
  • Up earlyish, some E-mail. J. drove to B&A's with H. and myself. Set to polishing a brass door-stop.
  • Out to lunch in Aldeburgh, back to try to diagnose a couple of plumbing problems - with a grim stuck tap (apparently an all-in-one casting, with un-serviceable taps), and an inadequately flushing toilet cistern - accessed through a tiny hole; had a go...
  • Tea, drove home, dinner with E. mail chew, bug comments, re-worked a pending Admin / setup diagnosis improvement patch for COOL to clean it up.

Friday
19 September, 2025


face
  • Sync with Dave & brainstorming in the morning, catch up with Lily, lunch, sync with Gabiel, admin, long overdue catch-up with a friend.
  • David Mansergh over for tea, H. diagnosed the problem with our sofa, created a fix for it, and some apple turn-overs for tea; enjoyed our time together.

Thursday
18 September, 2025


face
  • Up early, tech planning call, admin, lunch with Julia. Partner call, dug through bugs and patches, UX/Design stand-up.
  • H. back from Italy, lovely to see her again.

face

If you are working with LibreOffice code, trying to understand the code, fix bugs, or implement new features, you will need to debug the code at some point. Here are some general tips for a good debugging experience. Let’s start from the platform

Choose the Right Debug Platform

Choosing a platform to debug usually depends on the nature of the problem. If the problem is Windows-only, you need a Windows environment to build and debug the problem. But, if the problems can be reproduced everywhere, then you can choose the platform of your choice with the debugging tools that you prefer to debug the problem.

On Linux, it matters if you are running X11 or Wayland. Also, as there are multiple graphical back-ends available for LibreOffice, it matters if you are using X11, GTK3/4, or Qt5/6 back-end for your debugging. Some bugs are specific to GTK, then you should use GTK3 UI for testing. In 2025, GTK4 UI of LibreOffice is still experimental, so it is better to work with GTK3. For making the debugging easier, many developers work on X11 (gen) UI for debugging.

Debugging Tools

Various debugging tools can be used to debug the soffice.bin/soffice.exe LibreOffice binary that you have built. For the common debuggers, you can use GDB on Linux, lldb on macOS, and WinDbg or Visual Studio on Windows.

For using the above debuggers, you can use the IDE or front-end that support them. Various IDEs are usable with LibreOffice code. For a detailed explanation, refer to this Wiki article:

Make sure that you can build and debug a simple program before trying to build and debug LibreOffice.

Environment Variables

To have a better debugging experience, or to avoid problems you may have to customize the debugging session with environment variables. A complete article of the TDF Wiki is dedicated to discuss the environment variables that can be used with LibreOffice:

Here is some of the most important ones:

1) Using the X11 user interface:

If you want to use the X11 back-end that is simpler, and usually easier to work with on debug sessions, you have to set SAL_USE_VCLPLUGIN environment variable:

export SAL_USE_VCLPLUGIN=gen
That is specially useful when you are debugging graphical problems. But in some cases, you may need to avoid it or at least customize it. For example, while debugging mouse-related problems you may need to tell LibreOffice to avoid mouse grabbing this way:

export SAL_NO_MOUSEGRABS=1

2) Using GTK user interface

If you are using GTK user interface, then you may use GTK inspector to interactively debug LibreOffice GUI. You can use it this way:

export GTK_DEBUG=interactive

Pretty Printers

In solenv/gdb/ inside LibreOffice source code, you may find pretty printers for GDB. This is helpful when debugging LibreOffice with GDB, to be able to see data in a more readable way.

Dumping Data

Sometimes when you debug a LibreOffice application, it is easier to


face

Here’s a quick video recap from the recent LibreOffice Conference 2025 which took place in Budapest. Thanks to everyone who attended 😊 (The video is also available on PeerTube.)

Please confirm that you want to play a YouTube video. By accepting, you will be accessing content from YouTube, a service provided by an external third party.

YouTube privacy policy

If you accept this notice, your choice will be saved and the page will refresh.


Wednesday
17 September, 2025


face
  • Up early, good breakfast. Off to the venue, day of catch-up chats, product management bits, video recording, and more; fun.
  • Published the next strip: on the joys of deciding whom to contract in a tender
    The Open Road to Freedom - strip#35 - tendering
  • Flight back; RyanAir: pay for extra leg-room, get a different plane, and crushed into a tiny slot instead; tried to work.

face

LibreOffice in business

Companies around the world use LibreOffice to reduce costs, improve their privacy, and free themselves from dependence on single vendors. Today we’re talking to Flotte Karotte, a German company with 50 employees that recently made a generous donation to support the LibreOffice project and community:

What is Flotte Karotte?

Flotte Karotte is an organic delivery service. We have been in business since 1996. Starting out as a marketing channel for regional growers with the aim of bringing organic produce to the masses, we have since become a full-range supplier. This means that in addition to fruit and vegetables, we also deliver bread, meat and sausage, dairy products, pasta, grains/seeds, sauces, spreads, cosmetics, etc. In other words, everything you would find in an organic supermarket. However, we focus on brands that are loyal to the organic trade and are not usually sold in conventional food retail outlets. We also prioritise association products (Bioland, Demeter) over EC organic products wherever possible.

We attach great importance to seasonality and regionality. Of course, the latter cannot be achieved for all products (bananas). Wherever possible, we try to source from regional growers. We have been working with regional farmers and vegetable growers for years. What makes us special is that we can offer smaller farms in particular a secure marketing channel. This enables the farms to grow more different crops and thus promote diversity. They would not be able to sell these smaller quantities in the wholesale market.

We currently have around 50 employees working in the office, and as drivers and in packing. Sustainability is also important to us when it comes to mobility. Since 2017, we have been increasingly focusing on electric mobility and now deliver almost exclusively by electric vehicle. In the Essen Rüttenscheid district, we deliver exclusively by cargo bike with our partner Roman from Frachtradler.

Values: products, sustainability, cooperation

When did you start using free and open source software (FOSS)?

We have relied on open source from the very beginning. Among other reasons, this is of course due to cost considerations. However, it is also because, as in trade and cultivation, we are critical of the concentration of power and the associated dependence on a few providers in the software services sector.

Which apps do you use in the company?

We use Thunderbird as our email programme, Mozilla Firefox as our default browser, and LibreOffice as our office software (especially for word processing and spreadsheets). Our server runs on Linux, and we use Proxmox for virtualisation.

What have been your experiences with LibreOffice so far?

LibreOffice fully meets our requirements for office application software. There is only one compatibility issue with a public sector contractor who works with Microsoft. A formula used in their Excel spreadsheet is not supported by LibreOffice. However, the solution here should be for the public sector to become independent of proprietary software from the US.

Many thanks again to Flotte Karotte for their generous donation! We hope they continue to find LibreOffice useful for many years to come.


Tuesday
16 September, 2025


face
  • Up much too early, drove to Stansted, flight to Berlin, planning and hacking on the plane.
  • Arrived at the CIC centre, moved from the Drivery; prepped slides and practiced much of the day, caught up with the team happily.
  • Out in the evening for dinner with Jan & Fabian, good Mexican food, and good company.

face

General Activities

  1. LibreOffice 25.8.0 and LibreOffice 25.8.1 were announced on August 20 and August 29 respectively
  2. Olivier Hallot (TDF) updated help for the option to load printer settings with document, sorting blocks of cells in Calc, hyphenation, statistical functions, number of lines in charts, exponentiation operator in Calc, remote files, Edit menu in Calc, object rotation, Math options and MATCH function in Calc
  3. Celia Palacios added help for the new Intersect() method in ScriptForge
  4. Gábor Kelemen (Collabora) did many code cleanups
  5. Tomaž Vajngerl (Collabora) did many code cleanups and added OOXML test documents for text fitting / scaling
  6. Pranam Lashkari and Marco Cecchetti (Collabora) worked on LOKit used by Collabora Online. Marco also made it so hovering with the mouse over Chart data range colour palette entries in the Sidebar shows a live preview in the active chart
  7. Miklós Vajna (Collabora) added list and inline code block support for Markdown export and continued improving the handling of tracked changes that depend on each other
  8. Xisco Faulí (TDF) fixed crashes, added over a dozen new automated tests, upgraded many dependencies and did many code cleanups and optimisations
  9. Michael Stahl (Collabora) made it so pasted anchored objects are no longer selected by default while adding an expert configuration option for the behaviour, added overline support to XHTML export and worked around a dbus bug affecting the build process on some Linux systems
  10. Mike Kaganski (Collabora) fixed an issue with embedded fonts getting dropped from opened files in certain scenarios on Windows, made it so the user can choose to either discard license-restricted embedded fonts in an opened document or switch to read-only mode, improved PPTX compatibility with trailing empty lines in automatically shrinking text boxes, fixed long links getting truncated when exporting to XLSX, fixed issues with inserting hyperlinks in Calc via the API, made Calc text insertion API methods more robust, fixed inserting PDFs into spreadsheets, fixed a string handling issue in Basic’s Format function, fixed a VBA macro issue with dates and fixed processing of escaped backslashes in RTF files. He also did many code cleanups and optimisations
  11. Caolán McNamara (Collabora) fixed many issues found by static analysers and did code cleanups and optimisations
  12. Stephan Bergmann (Collabora) worked on the WASM build. He also adapted the code to compiler changes and did code cleanups
  13. Noel Grandin (Collabora) improved the scrolling speed in Writer documents with lots of comments. He also did many code cleanups and optimisations, especially in the area of transparency handling
  14. Justin Luth (Collabora) improved DOCX compatibility with margins of aligned floating objects, fixed right/left only page breaks going missing with DOC/DOCX export, fixed a DOCX indentation issue, fixed column breaks going missing in certain DOCX files, fixed an issue with numbered lists created by AutoCorrect, made it so justified text with section breaks in saved DOC files no longer triggers an MS Word bug and fixed numbering or bullets getting lost when applying a paragraph style
  15. Michael Weghorn

Monday
15 September, 2025


face

Once upon a time, there was a girl, who used WhatsApp in her iPhone. She was rather active there, and collected quite some important data in the app over time. But some things in her iPhone were inconvenient; and the phone was slowly aging. So she wanted to change her phone some day.

For her birthday, a fairy, who learned somehow about the girl’s wish, presented her a new Android phone. That was a nice new phone, and the girl was so happy! She decided to move everything from the old phone to the new one immediately.

She was worrying about how to move the precious data between the devices; but she felt a huge relief, when the phone spoke: “The fairy told me how important your data is to you; and I have magic powers to handle it all. Just connect the old phone to me with a cord”. So she did.

The new phone started its work; and the girl could see how the progress bar was gradually moving to completion; but suddenly it stopped; minutes passed, but the bar was motionless. The girl was impatient to start using her new shiny device, but she knew that she needs to wait. And she waited; and waited; but after an hour passed, she noticed something horrible: the old phone was sucking the life out of the new device through the cable!

The scared girl could only hope that the process would resume, and finish before the new phone is out of power. She searched and learned, that iPhones are known for their insatiable hunger, and whenever they are connected to anything with energy, they start sucking it. She couldn’t even ask the new phone to shine less brightly to save the energy – because it wasn’t ready for such things yet. She used her wireless charger, but its powers were fewer than the hunger of iPhone, combined with the hard work done by Android. The energy level still decreased too fast.

In the end, when the hope almost vanished, the progress resumed moving! But immediately, the new phone said: “When I collected your data from your old phone, something bad happened, and I failed to collect something. I will continue, but please check later, what’s missing!”.

Only a couple of energy drops were remaining in the new phone, when it finished its task, and could be disconnected from the vampire. But the girl was terrified, when she opened WhatsApp, connected to it (using a magic SMS confirmation), only to see that all her data is lost! She tried to open WhatsApp on the old phone to check if something is still there, and saw that the app had disconnected her. So she used the SMS magic again, and – to her great relief – everything was there!

She askes WhatsApp, how to move the data; and it answered, that if she moved from iPhone to iPhone, or from Android to Android, she could use a backup; but from


Thursday
11 September, 2025


face

C++ Standard library, which resides in std:: namespace provides common classes and functions which can be used by developers. Among them, Standard Template Library (STL) provides classes and functions to better manage data through data structures named containers. Here I discuss how to use STL functions for better processing of data, and avoid loops.

Checking Conditions

To iterate over a container to see if some specific condition is valid for all, any, or none of the elements in that container, C/C++ developers traditionally used loops.

On the other hand, since C++11, there are functions that can handle such cases: all_of, any_of and none_of. These functions process STL containers, and can replace loops. If you want to know if a function returns true for all, any, or none of the items of the container, then you can simply use these functions. This is the EasyHack dedicated to such a change:

Here is an example patch which uses any_of instead of a loop:

-    bool bFound = false;
     // convert ASCII apostrophe to the typographic one
     const OUString aText( rOrig.indexOf( '\'' ) > -1 ? rOrig.replace('\'', u'’') : rOrig );
-    size_t nCnt = aVec.size();
-    for (size_t i = 0;  !bFound && i < nCnt;  ++i)
-    {
-        if (aVec[i] == aText)
-            bFound = true;
-    }
+    const bool bFound = std::any_of(aVec.begin(), aVec.end(),
+        [&aText](const OUString& n){ return n == aText; });

As you can see, the new code is more concise, and avoids using loops.

Conditional Copying, Removing and Finding

If you want to copy, remove or simply find a value in a container which conforms to a specific functions, you may use copy_if, remove_if or find_if.

Again, this is an example patch:

-  for ( size_t i = 0; i < SAL_N_ELEMENTS( arrOEMCP ); ++i )
-        if ( arrOEMCP[i] == codepage )
-            return true;
-
-    return false;
+    return std::find(std::begin(arrOEMCP), std::end(arrOEMCP), codepage) != std::end(arrOEMCP);

Final Words

Refactoring code is a good way to improve knowledge on LibreOffice development. The above EasyHacks are among EasyHacks that everyone can try.

More information about EasyHacks, and how to start working on them can be found on TDF Wiki:

Older blog entries ->